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