From 89fa5f03903ed6161474dcbe8528503f69f804d1 Mon Sep 17 00:00:00 2001
From: CRZ <1278080563@qq.com>
Date: 星期二, 16 十二月 2025 17:08:34 +0800
Subject: [PATCH] 人员信息修改

---
 MES.Service/service/BasicData/MesStaffManager.cs |  104 ++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 76 insertions(+), 28 deletions(-)

diff --git a/MES.Service/service/BasicData/MesStaffManager.cs b/MES.Service/service/BasicData/MesStaffManager.cs
index 746abd7..4ac8060 100644
--- a/MES.Service/service/BasicData/MesStaffManager.cs
+++ b/MES.Service/service/BasicData/MesStaffManager.cs
@@ -60,7 +60,7 @@
                 .SetColumns(s => s.Isdeparture == isDeparture)
                 .Where(s => s.Fcode == staffId)
                 .ExecuteCommand();
-            
+
             return true;
         }
 
@@ -71,34 +71,68 @@
     private bool InsertOrUpdateStaff(SqlSugarScope db, SysUser sysUser,
         MesStaff entity)
     {
-        var exists = db.Queryable<SysUser>().Any(u => u.Fcode == sysUser.Fcode);
-        if (exists)
+        try
         {
-            var updateUser = db.Updateable<SysUser>()   
-                .SetColumns(s => s.Fname == sysUser.Fname)
-                .SetColumns(s => s.Departmentid == sysUser.Departmentid) // 鏇存柊閮ㄩ棬淇℃伅
-                .SetColumns(s => s.Isdeparture == sysUser.Isdeparture) // 鏇存柊绂昏亴鐘舵��
-                .Where(s => s.Fcode == sysUser.Fcode)
-                .ExecuteCommand();
-            if (updateUser > 0)
+            var exists = db.Queryable<SysUser>().Any(u => u.Fcode == sysUser.Fcode);
+            if (exists)
             {
-                var updateStaff = db.Updateable(entity).ExecuteCommand();
-                if (updateStaff > 0)
-                    return true;
+                // 鐢ㄦ埛宸插瓨鍦紝鎵ц鏇存柊鎿嶄綔
+                var updateUser = db.Updateable<SysUser>()
+                    .SetColumns(s => s.Fname == sysUser.Fname)
+                    .SetColumns(s => s.Departmentid == sysUser.Departmentid) // 鏇存柊閮ㄩ棬淇℃伅
+                    .SetColumns(s => s.Isdeparture == sysUser.Isdeparture) // 鏇存柊绂昏亴鐘舵��
+                    .Where(s => s.Fcode == sysUser.Fcode)
+                    .ExecuteCommand();
+                if (updateUser > 0)
+                {
+                    // 妫�鏌� MesStaff 鏄惁宸插瓨鍦�
+                    var staffExists = db.Queryable<MesStaff>().Any(s => s.StaffNo == entity.StaffNo);
+                    if (staffExists)
+                    {
+                        // 鍛樺伐宸插瓨鍦紝鎵ц鏇存柊
+                        var updateStaff = db.Updateable(entity)
+                            .Where(s => s.StaffNo == entity.StaffNo)
+                            .ExecuteCommand();
+                        if (updateStaff > 0)
+                            return true;
+                        throw new NotImplementedException(
+                            $"MES_STAFF琛ㄦ洿鏂板け璐ワ細鍛樺伐 {entity.StaffNo}({entity.StaffName})");
+                    }
+                    else
+                    {
+                        // 鍛樺伐涓嶅瓨鍦紝鎵ц鎻掑叆
+                        var insertStaff = db.Insertable(entity).ExecuteCommand();
+                        if (insertStaff > 0)
+                            return true;
+                        throw new NotImplementedException(
+                            $"MES_STAFF琛ㄦ彃鍏ュけ璐ワ細鍛樺伐 {entity.StaffNo}({entity.StaffName})");
+                    }
+                }
+                throw new NotImplementedException(
+                    $"SYS_USER琛ㄦ洿鏂板け璐ワ細鐢ㄦ埛 {sysUser.Fcode}({sysUser.Fname})");
+            }
+            else
+            {
+                // 鐢ㄦ埛涓嶅瓨鍦紝鎵ц鎻掑叆鎿嶄綔
+                var insertUser = db.Insertable(sysUser).ExecuteCommand();
+                if (insertUser > 0)
+                {
+                    var insertStaff = db.Insertable(entity).ExecuteCommand();
+                    if (insertStaff > 0)
+                        return true;
+                    throw new NotImplementedException(
+                        $"MES_STAFF琛ㄦ彃鍏ュけ璐ワ細鍛樺伐 {entity.StaffNo}({entity.StaffName})");
+                }
+                throw new NotImplementedException(
+                    $"SYS_USER琛ㄦ彃鍏ュけ璐ワ細鐢ㄦ埛 {sysUser.Fcode}({sysUser.Fname})");
             }
         }
-        else
+        catch (Exception ex)
         {
-            var insertUser = db.Insertable(sysUser).ExecuteCommand();
-            if (insertUser > 0)
-            {
-                var insertStaff = db.Insertable(entity).ExecuteCommand();
-                if (insertStaff > 0)
-                    return true;
-            }
+            // 鎹曡幏骞舵姏鍑鸿缁嗙殑寮傚父淇℃伅
+            throw new NotImplementedException(
+                $"鍛樺伐 {entity.StaffNo}({entity.StaffName}) 鍚屾澶辫触锛歿ex.Message}", ex);
         }
-
-        return false;
     }
 
     // 鍒犻櫎鍛樺伐鐨勬柟娉�
@@ -128,7 +162,8 @@
             DepartmentName = staff.FPostDept,
             PositionName = staff.FPost,
             PhoneNumber = staff.FMobile,
-            Remark = staff.FDescription,
+            // 灏� "None" 瀛楃涓茶浆鎹负 null锛岄伩鍏嶆暟鎹簱绾︽潫闂
+            Remark = staff.FDescription == "None" ? null : staff.FDescription,
             FforbidStatus = staff.FForbidStatus
         };
 
@@ -149,7 +184,7 @@
     {
         // 濡傛灉 FForbidStatus='B'锛屽垯 Isdeparture=1锛屽惁鍒欎负0
         var isDeparture = staff.FForbidStatus == "B" ? 1 : 0;
-        
+
         return new SysUser
         {
             //Sid = Convert.ToDecimal(staff.Id),
@@ -252,7 +287,7 @@
                 .SetColumns(s => s.Isdeparture == isDeparture)
                 .Where(s => ids.Contains(s.Fcode))
                 .ExecuteCommand();
-            
+
             return true;
         }
 
@@ -297,8 +332,21 @@
     {
         foreach (var sysUser in userList)
         {
-            var entity = staffList.First(s => s.StaffNo == sysUser.Fcode);
-            if (!InsertOrUpdateStaff(db, sysUser, entity)) return false;
+            try
+            {
+                var entity = staffList.First(s => s.StaffNo == sysUser.Fcode);
+                if (!InsertOrUpdateStaff(db, sysUser, entity))
+                {
+                    throw new NotImplementedException(
+                        $"鍚屾澶辫触锛氬憳宸ョ紪鍙� {entity.StaffNo}({entity.StaffName}) 鏇存柊鎴栨彃鍏ユ搷浣滃け璐�");
+                }
+            }
+            catch (Exception ex)
+            {
+                // 鎶涘嚭璇︾粏鐨勫紓甯镐俊鎭紝鍖呭惈鍛樺伐缂栧彿鍜屽叿浣撻敊璇�
+                throw new NotImplementedException(
+                    $"鍚屾澶辫触锛氬憳宸ョ紪鍙� {sysUser.Fcode}({sysUser.Fname}) 澶勭悊寮傚父 - {ex.Message}", ex);
+            }
         }
 
         return true;

--
Gitblit v1.9.3