From 7456b57c9d11052643a30ea1e559d7cb09c11e8c Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 12 二月 2025 15:07:25 +0800
Subject: [PATCH] 111

---
 StandardPda/MES.Service/service/BasicData/MesStaffManager.cs |  320 +++-------------------------------------------------
 1 files changed, 21 insertions(+), 299 deletions(-)

diff --git a/StandardPda/MES.Service/service/BasicData/MesStaffManager.cs b/StandardPda/MES.Service/service/BasicData/MesStaffManager.cs
index 6848f8f..a832cfb 100644
--- a/StandardPda/MES.Service/service/BasicData/MesStaffManager.cs
+++ b/StandardPda/MES.Service/service/BasicData/MesStaffManager.cs
@@ -12,25 +12,14 @@
     {
         var entity = GetMesStaff(unit); // 灏� ErpStaff 杞崲涓� MesStaff
         var sysUser = GetUser(unit); // 鑾峰彇 SysUser 瀹炰緥
-        var mesStaffPositionLink =
-            GetMesStaffPositionLink(unit); // 鑾峰彇 MesStaffPositionLink 瀹炰緥
 
         return UseTransaction(db =>
         {
             switch (unit.Type)
             {
-                case "0":
-                    if (UpdateStaffStatus(db, entity.Id, "A")) // 鍚敤鍛樺伐
-                        return 1;
-                    break;
-                case "1":
-                    if (UpdateStaffStatus(db, entity.Id, "B")) // 绂佺敤鍛樺伐
-                        return 1;
-                    break;
                 case "2":
                 case "4":
-                    if (InsertOrUpdateStaff(db, sysUser, entity,
-                            mesStaffPositionLink)) // 鎻掑叆鎴栨洿鏂板憳宸�
+                    if (InsertOrUpdateStaff(db, sysUser, entity)) // 鎻掑叆鎴栨洿鏂板憳宸�
                         return 1;
                     break;
                 case "3":
@@ -60,52 +49,6 @@
         throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
     }
 
-    /// <summary>
-    /// "鎻掑叆鎴栨洿鏂板憳宸ョ殑鏂规硶"璋冩暣锛氫慨鏀逛负鍏堝垹闄ゅ啀鎻掑叆锛屽悓鏃剁敤id鍜孭ositionCode浣滀负鍒ゆ柇渚濇嵁
-    /// </summary>
-    /// <remarks>
-    /// 淇敼浜猴細姹犲崡楠�
-    /// 淇敼鏃ユ湡锛�2024-12-30
-    /// 淇敼璇存槑锛歚
-    /// </remarks>
-
-    //// - 鍘熶唬鐮侊細
-    // 鎻掑叆鎴栨洿鏂板憳宸ョ殑鏂规硶
-    //private bool InsertOrUpdateStaff(SqlSugarScope db, SysUser sysUser,
-    //    MesStaff entity)
-    //{
-    //    var exists = db.Queryable<SysUser>().Any(u => u.Sid == sysUser.Sid);
-    //    if (exists)
-    //    {
-    //        var updateUser = db.Updateable<SysUser>()
-    //            .SetColumns(s => s.Fcode == sysUser.Fcode)
-    //            .SetColumns(s => s.Fname == sysUser.Fname)
-    //            .Where(s => s.Sid == sysUser.Sid)
-    //            .ExecuteCommand();
-    //        if (updateUser > 0)
-    //        {
-    //            var updateStaff = db.Updateable(entity).ExecuteCommand();
-    //            if (updateStaff > 0)
-    //                return true;
-    //        }
-    //    }
-    //    else
-    //    {
-    //        var insertUser = db.Insertable(sysUser).ExecuteCommand();
-    //        if (insertUser > 0)
-    //        {
-    //            var insertStaff = db.Insertable(entity).ExecuteCommand();
-    //            if (insertStaff > 0)
-    //                return true;
-    //        }
-    //    }
-
-    //    return false;
-    //}
-
-    // 鎻掑叆鎴栨洿鏂板憳宸ョ殑鏂规硶
-
-    /// 鏂颁唬鐮�
     // 鎻掑叆鎴栨洿鏂板憳宸ョ殑鏂规硶
     /// <summary>
     ///     鎺ュ彛瀛楁璋冩暣锛氫慨鏀瑰弬鏁帮紝鏂板List<MesStaffPositionLink>鐨勫弬鏁�
@@ -116,15 +59,14 @@
     ///     淇敼璇存槑锛氫负浜嗗簲涓轰竴涓憳宸ュ宀椾綅鐨勬儏鍐�
     /// </remarks>
     private bool InsertOrUpdateStaff(SqlSugarScope db, SysUser sysUser,
-        MesStaff entity, List<MesStaffPositionLink> mesStaffPositionLink)
+        MesStaff entity)
     {
         var exists = db.Queryable<SysUser>().Any(u => u.Sid == sysUser.Sid);
         if (!exists)
         {
-            var insertUser = db.Insertable(sysUser).ExecuteCommand();
+            db.Insertable(sysUser).ExecuteCommand();
         }
-
-
+        
         db.Deleteable<MesStaff>()
             .Where(s => s.Id == entity.Id)
             .ExecuteCommand();
@@ -132,24 +74,7 @@
         var insertStaff =
             db.Insertable(entity).IgnoreColumns(true).ExecuteCommand();
 
-
-        var insertPosition = 1;
-        if (mesStaffPositionLink != null && mesStaffPositionLink.Count > 0)
-        {
-            //鍏堝垹闄わ紝鍐嶆柊澧�
-            db.Deleteable<MesStaffPositionLink>()
-                .Where(s =>
-                    mesStaffPositionLink.Any(m => m.StaffId == s.StaffId))
-                .ExecuteCommand();
-
-
-            //鎵归噺鎻掑叆鏃讹紝蹇界暐绌哄瓧娈�
-            insertPosition = db.Insertable(mesStaffPositionLink).PageSize(1)
-                .IgnoreColumnsNull().ExecuteCommand();
-        }
-
-
-        return insertStaff > 0 && insertPosition > 0;
+        return insertStaff > 0;
     }
 
     /// <summary>
@@ -160,26 +85,6 @@
     /// 淇敼鏃ユ湡锛�2024-12-30
     /// 淇敼璇存槑锛歚
     /// </remarks>
-
-    //// 鍘熶唬鐮�
-    // 鍒犻櫎鍛樺伐鐨勬柟娉�
-    //private bool DeleteStaff(SqlSugarScope db, SysUser sysUser, decimal staffId)
-    //{
-    //    var deleteUser = db.Deleteable<SysUser>()
-    //        .Where(s => s.Sid == sysUser.Sid).ExecuteCommand();
-    //    if (deleteUser > 0)
-    //    {
-    //        var deleteStaff =
-    //            db.Deleteable<MesStaff>().In(staffId).ExecuteCommand();
-    //        if (deleteStaff > 0)
-    //            return true;
-    //    }
-
-    //    throw new NotImplementedException("鍙嶅鏍稿け璐�");
-    //}
-
-    /// 鏂颁唬鐮�
-    // 鍒犻櫎鍛樺伐鐨勬柟娉�
     private bool DeleteStaff(SqlSugarScope db, SysUser sysUser, MesStaff entity)
     {
         var deleteUser = db.Deleteable<SysUser>()
@@ -192,11 +97,6 @@
                         s.Id == entity.Id &&
                         s.PositionCode == entity.PositionCode)
                     .ExecuteCommand();
-
-            //鍒犻櫎瀵瑰簲鍛樺伐宀椾綅淇℃伅鍏宠仈琛� 姹犲崡楠� 2025-01-02
-            var insertPosition = db.Deleteable<MesStaffPositionLink>()
-                .Where(s => s.StaffId == entity.Id)
-                .ExecuteCommand();
 
             if (deleteStaff > 0)
                 return true;
@@ -213,97 +113,34 @@
             Id = Convert.ToDecimal(staff.Id),
             StaffNo = staff.FStaffNumber,
             StaffName = staff.FName,
-            //鍒犻櫎  2025-01-04  姹犲崡楠�
-            //DepartmentNo = staff.FPostDept,
-
-            /// <summary>
-            /// 鎺ュ彛瀛楁璋冩暣锛氬皢FPost瀛楁閲嶅懡鍚嶄负FPostId銆�
-            /// </summary>
-            /// <remarks>
-            /// 淇敼浜猴細姹犲崡楠�
-            /// 淇敼鏃ユ湡锛�2024-12-25
-            /// 淇敼璇存槑锛�
-            /// - 鍘熶唬鐮侊細`PositionCode = staff.FPost,
-            /// - 淇敼鍚庯細`PositionCode = staff.FPostId,
-            /// - 浜屾淇敼锛屽垹闄�
-            /// </remarks>
-            //PositionCode = staff.FPostId,
-            PhoneNumber = staff.FMobile,
-            CreateOrg = Convert.ToDecimal(staff.FCreateOrgId),
-            UseOrg = Convert.ToDecimal(staff.FUseOrgId),
-            CreateDate = DateTime.Now,
-            Remark = staff.FDescription,
-            FDOCUMENTSTATUS = staff.FDocumentStatus,
-            FforbidStatus = staff.FForbidStatus
+            PositionCode = staff.FPostId,
+            KeyPosts = staff.KeyPosts,
+            StartDate = staff.FStaffStartDate != null
+                ? DateTime.ParseExact(staff.FStaffStartDate,
+                    "yyyy-MM-dd HH:mm:ss", null)
+                : null,
+            SeparationTime = staff.SeparationTime != null
+                ? DateTime.ParseExact(staff.SeparationTime,
+                    "yyyy-MM-dd HH:mm:ss", null)
+                : null,
+            FforbidStatus = staff.FforbidStatus,
+            DepartmentName = staff.DepartmentName,
+            UseOrg = staff.FUseOrgId,
+            Remark = staff.Remark
         };
 
-        //鍒犻櫎  2025-01-04  姹犲崡楠�
-        //if (staff.FStaffStartDate != null)
-        //    entity.StartDate = DateTime.ParseExact(staff.FStaffStartDate,
-        //        "yyyy-MM-dd HH:mm:ss", null);
-
         return entity;
-    }
-
-    /// <summary>
-    ///     鎺ュ彛瀛楁璋冩暣锛氭牴鎹甹son鏍煎紡锛屽湪MesStaffPositionLink<List>涓瓨鍏ユ暟鎹��
-    /// </summary>
-    /// <remarks>
-    ///     淇敼浜猴細姹犲崡楠�
-    ///     淇敼鏃ユ湡锛�2025-01-02 鈥斺�斻�� 2025-01-05 浜屾淇敼
-    ///     淇敼璇存槑锛�
-    ///     - 鏂板浠g爜
-    /// </remarks>
-    private List<MesStaffPositionLink> GetMesStaffPositionLink(ErpStaff staff)
-    {
-        List<MesStaffPositionLink> staffDetails = new();
-
-        if (staff.ErpStaffDetails != null && staff.ErpStaffDetails.Count > 0)
-            staffDetails = staff.ErpStaffDetails.Select(staffDetail =>
-                new MesStaffPositionLink
-                {
-                    StaffId = Convert.ToDecimal(staff.Id),
-                    PositionId =
-                        string.IsNullOrEmpty(staffDetail.fPostId.ToString())
-                            ? null
-                            : Convert.ToDecimal(staffDetail.fPostId),
-                    FPostDeptId =
-                        string.IsNullOrEmpty(staffDetail.fPostDeptid.ToString())
-                            ? null
-                            : Convert.ToDecimal(staffDetail.fPostDeptid),
-                    FStaffStartDate =
-                        string.IsNullOrEmpty(staffDetail.fStaffStartDate
-                            .ToString())
-                            ? null
-                            : DateTime.ParseExact(staffDetail.fStaffStartDate,
-                                "yyyy-MM-dd HH:mm:ss", null)
-                }).ToList();
-        //postIds.AddRange(links);
-
-        return staffDetails;
     }
 
     // 灏� ErpStaff 瀵硅薄杞崲涓� SysUser 瀵硅薄鐨勬柟娉�
     private SysUser GetUser(ErpStaff staff)
     {
-        //鑾峰彇褰撳墠鐢ㄦ埛浣跨敤缁勭粐瀵瑰簲鐨勭粍缁囧悕绉�
-        var db = SqlSugarHelper.GetInstance();
-        var organize = db.Queryable<Organize>()
-            .Where(it =>
-                it.Id ==
-                Convert.ToDecimal(staff.FUseOrgId)) // 浣跨敤 Where 鏂规硶鏍规嵁鍗曚釜 ID 鏌ヨ
-            .Select(it => it.Fname) // 閫夋嫨 Fname 灞炴��
-            .Single(); // 浣跨敤 Single 鍥犱负鎴戜滑鏈熸湜鍙湁涓�涓尮閰嶉」
-
-        //string organizeName = organize.f;
-
         return new SysUser
         {
             Sid = Convert.ToDecimal(staff.Id),
             Fcode = staff.FStaffNumber,
             Fname = staff.FName,
             Fpassword = "8+()./,", // 鍒濆瀵嗙爜
-            Fsystem = organize,
             Lever = 0,
             Fcompany = "1000",
             Ffactory = "1000",
@@ -328,122 +165,7 @@
     // SaveList 鏂规硶鐢ㄤ簬淇濆瓨澶氫釜鍛樺伐璁板綍锛屾牴鎹被鍨嬫壒閲忔墽琛屼笉鍚岀殑鎿嶄綔
     public bool SaveList(List<ErpStaff> departments)
     {
-        var list = new List<MesStaff>();
-        var userList = new List<SysUser>();
-        var mesStaffPositionLinkList = new List<MesStaffPositionLink>();
-
-        departments.ForEach(s =>
-        {
-            var entity = GetMesStaff(s);
-            entity.Type = s.Type;
-            list.Add(entity);
-
-            var sysUser = GetUser(s);
-            sysUser.Type = s.Type;
-            userList.Add(sysUser);
-
-            var mesStaffPositionLink =
-                GetMesStaffPositionLink(s); // 鑾峰彇 SysUser 瀹炰緥
-            mesStaffPositionLinkList.AddRange(mesStaffPositionLink);
-        });
-
-        var groupBy = list.GroupBy(s => s.Type)
-            .ToDictionary(g => g.Key, g => g.ToList());
-        return UseTransaction(db =>
-        {
-            foreach (var staffGroup in groupBy)
-                switch (staffGroup.Key)
-                {
-                    case "0":
-                        if (!UpdateStaffStatusBatch(db, staffGroup.Value,
-                                "A")) // 鎵归噺鍚敤鍛樺伐
-                            throw new NotImplementedException("鍚敤澶辫触");
-                        break;
-                    case "1":
-                        if (!UpdateStaffStatusBatch(db, staffGroup.Value,
-                                "B")) // 鎵归噺绂佺敤鍛樺伐
-                            throw new NotImplementedException("绂佺敤澶辫触");
-                        break;
-                    case "3":
-                        if (!DeleteStaffBatch(db, userList,
-                                staffGroup.Value)) // 鎵归噺鍒犻櫎鍛樺伐
-                            throw new NotImplementedException("鍒犻櫎澶辫触");
-                        break;
-                    case "2":
-                    case "4":
-                        if (!InsertOrUpdateBatch(db, userList,
-                                staffGroup.Value,
-                                mesStaffPositionLinkList)) // 鎵归噺鎻掑叆鎴栨洿鏂板憳宸�
-                            throw new NotImplementedException("鍚屾澶辫触");
-                        break;
-                    default:
-                        throw new ArgumentNullException(
-                            $"type娌℃湁{staffGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�");
-                }
-
-            return 1;
-        }) > 0;
-    }
-
-    // 鎵归噺鏇存柊鍛樺伐鐘舵�佺殑鏂规硶
-    private bool UpdateStaffStatusBatch(SqlSugarScope db,
-        List<MesStaff> staffList, string status)
-    {
-        var ids = staffList.Select(it => it.Id).ToArray();
-        var result = db.Updateable<MesStaff>()
-            .SetColumns(s => s.FforbidStatus == status)
-            .Where(s => ids.Contains(s.Id)).ExecuteCommand();
-
-        if (result > 0)
-            return true;
-
-        throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
-    }
-
-    // 鎵归噺鎻掑叆鍛樺伐鐨勬柟娉�
-    private bool InsertStaffBatch(SqlSugarScope db, List<SysUser> userList,
-        List<MesStaff> staffList)
-    {
-        var userInsert = userList.FindAll(s => s.Type == "INSERT");
-        var executeCommand = db.Insertable(userInsert).ExecuteCommand();
-        if (executeCommand > 0)
-            if (db.Insertable(staffList).ExecuteCommand() > 0)
-                return true;
-
-        throw new ArgumentNullException("瀹℃牳澶辫触");
-    }
-
-    // 鎵归噺鍒犻櫎鍛樺伐鐨勬柟娉�
-    private bool DeleteStaffBatch(SqlSugarScope db, List<SysUser> userList,
-        List<MesStaff> staffList)
-    {
-        var sid = userList.FindAll(s => s.Type == "DELETE").Select(s => s.Sid)
-            .ToArray();
-        var result = db.Deleteable<SysUser>()
-            .Where(s => sid.Contains(s.Sid)).ExecuteCommand();
-
-        if (result > 0)
-        {
-            var ids = staffList.Select(it => it.Id).ToArray();
-            if (db.Deleteable<MesStaff>().In(ids).ExecuteCommand() > 0)
-                return true;
-        }
-
-        throw new ArgumentNullException("鍙嶅鏍稿け璐�");
-    }
-
-    // 鎵归噺鎻掑叆鎴栨洿鏂板憳宸ョ殑鏂规硶
-    private bool InsertOrUpdateBatch(SqlSugarScope db, List<SysUser> userList,
-        List<MesStaff> staffList,
-        List<MesStaffPositionLink> mesStaffPositionLink)
-    {
-        foreach (var sysUser in userList)
-        {
-            var entity = staffList.First(s => s.Id == sysUser.Sid);
-            if (!InsertOrUpdateStaff(db, sysUser, entity, mesStaffPositionLink))
-                return false;
-        }
-
-        return true;
+        var result = departments.Select(Save).ToList();
+        return result.All(b => b);
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3