From eab13f60bbdc8ea275c6dd7b6424cdfc7769f6e1 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期三, 27 八月 2025 16:53:15 +0800 Subject: [PATCH] 111111 --- MES.Service/Modes/SysUser.cs | 95 +++---- MES.Service/service/BasicData/MesUnitManager.cs | 38 -- MES.Service/service/BasicData/MesStaffManager.cs | 223 +++++++++--------- MES.Service/service/BasicData/MesCustomerManager.cs | 40 -- MES.Service/service/BasicData/MesSupplierManager.cs | 40 -- MES.Service/service/BasicData/MesDepotsManager.cs | 48 --- MES.Service/service/BasicData/MesItemsManager.cs | 86 ++---- MES.Service/service/BasicData/SysDepartmentManager.cs | 49 --- MES.Service/service/BasicData/MesItemTypeManager.cs | 47 --- 9 files changed, 236 insertions(+), 430 deletions(-) diff --git a/MES.Service/Modes/SysUser.cs b/MES.Service/Modes/SysUser.cs index 3e2c920..48f0274 100644 --- a/MES.Service/Modes/SysUser.cs +++ b/MES.Service/Modes/SysUser.cs @@ -8,128 +8,127 @@ [SugarTable("SYS_USER")] public class SysUser { - - - [StringLength(20, ErrorMessage = "Sid闀垮害涓嶈兘瓒呭嚭20")] - [SugarColumn(ColumnName = "SID")] //鐢ㄤ簬SqlSugar - public decimal Sid { get; set; } - - /// <summary> - /// 涓婚敭 - /// </summary> + /// 涓婚敭 + ///</summary> [SugarColumn(ColumnName = "GUID", IsPrimaryKey = true)] public Guid Guid { get; set; } - - /// <summary> - /// 璐﹀彿 - /// </summary> + /// 璐﹀彿 + ///</summary> [SugarColumn(ColumnName = "ACCOUNT")] public string? Account { get; set; } /// <summary> - /// 瀵嗙爜 - /// </summary> + /// 瀵嗙爜 + ///</summary> [SugarColumn(ColumnName = "PASSWORD")] public string? Password { get; set; } /// <summary> - /// 鐢ㄦ埛濮撳悕 - /// </summary> + /// 鐢ㄦ埛濮撳悕 + ///</summary> [SugarColumn(ColumnName = "USER_NAME")] public string? UserName { get; set; } /// <summary> - /// 浣忓潃 - /// </summary> + /// 浣忓潃 + ///</summary> [SugarColumn(ColumnName = "ADDRESS")] public string? Address { get; set; } /// <summary> - /// 鐢佃瘽 - /// </summary> + /// 鐢佃瘽 + ///</summary> [SugarColumn(ColumnName = "TEL")] public string? Tel { get; set; } /// <summary> - /// 閭 - /// </summary> + /// 閭 + ///</summary> [SugarColumn(ColumnName = "EMAIL")] public string? Email { get; set; } /// <summary> - /// 鏈�鍚庣櫥褰曟椂闂� - /// </summary> + /// 鏈�鍚庣櫥褰曟椂闂� + ///</summary> [SugarColumn(ColumnName = "LASTLOGIN_TIME")] public DateTime? LastloginTime { get; set; } /// <summary> - /// 鏈�鍚庨��鍑烘椂闂� - /// </summary> + /// 鏈�鍚庨��鍑烘椂闂� + ///</summary> [SugarColumn(ColumnName = "LASTLOGOUT_TIME")] public DateTime? LastlogoutTime { get; set; } /// <summary> - /// 鐘舵�� - /// </summary> + /// 鐘舵�� + /// 榛樿鍊�: ((1)) + ///</summary> [SugarColumn(ColumnName = "IS_STATUS")] public bool? IsStatus { get; set; } /// <summary> - /// 寤虹珛鑰� - /// </summary> + /// 寤虹珛鑰� + ///</summary> [SugarColumn(ColumnName = "CREATE_BY")] public string? CreateBy { get; set; } /// <summary> - /// 寤虹珛鏃堕棿 - /// </summary> + /// 寤虹珛鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "CREATE_TIME")] public DateTime? CreateTime { get; set; } /// <summary> - /// 鏇存柊鏃堕棿 - /// </summary> + /// 鏇存柊鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "LASTUPDATE_TIME")] public DateTime? LastupdateTime { get; set; } /// <summary> - /// 鏇存柊浜� - /// </summary> + /// 鏇存柊浜� + ///</summary> [SugarColumn(ColumnName = "LASTUPDATE_BY")] public string? LastupdateBy { get; set; } /// <summary> - /// 鏄惁鍦ㄧ嚎 - /// </summary> + /// 鏄惁鍦ㄧ嚎 + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "FLAG_ONLINE")] - public int? FlagOnline { get; set; } + public bool? FlagOnline { get; set; } /// <summary> - /// 鐧诲綍娆℃暟 - /// </summary> + /// 鐧诲綍娆℃暟 + ///</summary> [SugarColumn(ColumnName = "LOGIN_COUNTER")] public int? LoginCounter { get; set; } /// <summary> - /// 澶囨敞 - /// </summary> + /// 澶囨敞 + ///</summary> [SugarColumn(ColumnName = "REMARK")] public string? Remark { get; set; } /// <summary> - /// 閮ㄩ棬缂栧彿 - /// </summary> + /// 閮ㄩ棬缂栧彿 + ///</summary> [SugarColumn(ColumnName = "DEPART_NO")] public string? DepartNo { get; set; } /// <summary> - /// 鏄惁绯荤粺鍐呯疆 - /// </summary> + /// 鏄惁绯荤粺鍐呯疆 + ///</summary> [SugarColumn(ColumnName = "IS_SYS")] public int? IsSys { get; set; } + /// <summary> + /// 鍏宠仈鍛樺伐 + ///</summary> + [SugarColumn(ColumnName = "STAFF_ID")] + public string? StaffId { get; set; } + [SugarColumn(IsIgnore = true)] public string? Type { get; set; } } \ No newline at end of file diff --git a/MES.Service/service/BasicData/MesCustomerManager.cs b/MES.Service/service/BasicData/MesCustomerManager.cs index 772c306..56600d6 100644 --- a/MES.Service/service/BasicData/MesCustomerManager.cs +++ b/MES.Service/service/BasicData/MesCustomerManager.cs @@ -43,41 +43,15 @@ public bool SaveList(List<ErpCustomer> customers) { - var list = customers.Select(GetSysDepartment).ToList(); - var groupBy = list.GroupBy(s => s.Type) - .ToDictionary(g => g.Key, g => g.ToList()); - - return UseTransaction(db => + if (customers == null || !customers.Any()) { - foreach (var customerGroup in groupBy) - switch (customerGroup.Key) - { - case "0": - if (!UpdateCustomerStatusBatch(db, customerGroup.Value, - "A")) - throw new NotImplementedException("鍚敤澶辫触"); - break; - case "1": - if (!UpdateCustomerStatusBatch(db, customerGroup.Value, - "B")) - throw new NotImplementedException("绂佺敤澶辫触"); - break; - case "3": - if (!DeleteCustomerBatch(db, customerGroup.Value)) - throw new NotImplementedException("鍒犻櫎澶辫触"); - break; - case "2": - case "4": - if (!InsertOrUpdateBatch(db, customerGroup.Value)) - throw new NotImplementedException("鍚屾澶辫触"); - break; - default: - throw new ArgumentNullException( - $"type娌℃湁{customerGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�"); - } + Console.WriteLine("璀﹀憡: 浼犲叆鐨勫垪琛ㄤ负绌�"); + return false; + } - return 1; - }) > 0; + // 閫愭潯澶勭悊锛屽叏閮ㄦ垚鍔熸墠杩斿洖true锛堜簨鍔″唴鎵归噺澶勭悊鏇翠紭锛屾澶勪繚鎸佸師鏈夐�昏緫锛� + var result = customers.Select(Save).ToList(); + return result.All(b => b); } private bool UpdateCustomerStatus(SqlSugarScope db, decimal customerId, diff --git a/MES.Service/service/BasicData/MesDepotsManager.cs b/MES.Service/service/BasicData/MesDepotsManager.cs index dc15001..1c5745a 100644 --- a/MES.Service/service/BasicData/MesDepotsManager.cs +++ b/MES.Service/service/BasicData/MesDepotsManager.cs @@ -130,49 +130,15 @@ // SaveList 鏂规硶鐢ㄤ簬淇濆瓨澶氫釜浠撳簱璁板綍锛屾牴鎹被鍨嬫壒閲忔墽琛屼笉鍚岀殑鎿嶄綔 public bool SaveList(List<ErpDepots> erpDepots) { - var list = new List<MesDepots>(); - erpDepots.ForEach(s => + if (erpDepots == null || !erpDepots.Any()) { - var entity = GetMesDepots(s); // 灏� ErpDepots 杞崲涓� MesDepots - entity.Type = s.Type; - list.Add(entity); - }); + Console.WriteLine("璀﹀憡: 浼犲叆鐨勫垪琛ㄤ负绌�"); + return false; + } - var groupBy = list.GroupBy(s => s.Type) - .ToDictionary(g => g.Key, g => g.ToList()); - return UseTransaction(db => - { - foreach (var depotsGroup in groupBy) - switch (depotsGroup.Key) - { - case "0": - if (!UpdateDepotStatusBatch(db, depotsGroup.Value, - "A")) // 鎵归噺鍚敤浠撳簱 - throw new NotImplementedException("鍚敤澶辫触"); - break; - case "1": - if (!UpdateDepotStatusBatch(db, depotsGroup.Value, - "B")) // 鎵归噺绂佺敤浠撳簱 - throw new NotImplementedException("绂佺敤澶辫触"); - break; - case "3": - if (!DeleteDepotBatch(db, - depotsGroup.Value)) // 鎵归噺鍒犻櫎浠撳簱 - throw new NotImplementedException("鍒犻櫎澶辫触"); - break; - case "2": - case "4": - if (!InsertOrUpdateBatch(db, - depotsGroup.Value)) // 鎵归噺鎻掑叆鎴栨洿鏂颁粨搴� - throw new NotImplementedException("鍚屾澶辫触"); - break; - default: - throw new ArgumentNullException( - $"type娌℃湁{depotsGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�"); - } - - return 1; - }) > 0; + // 閫愭潯澶勭悊锛屽叏閮ㄦ垚鍔熸墠杩斿洖true锛堜簨鍔″唴鎵归噺澶勭悊鏇翠紭锛屾澶勪繚鎸佸師鏈夐�昏緫锛� + var result = erpDepots.Select(Save).ToList(); + return result.All(b => b); } // 鎵归噺鏇存柊浠撳簱鐘舵�佺殑鏂规硶 diff --git a/MES.Service/service/BasicData/MesItemTypeManager.cs b/MES.Service/service/BasicData/MesItemTypeManager.cs index 751613d..3b5043c 100644 --- a/MES.Service/service/BasicData/MesItemTypeManager.cs +++ b/MES.Service/service/BasicData/MesItemTypeManager.cs @@ -15,9 +15,10 @@ { switch (customer.Type) { - case "0": + case "2": + case "4": return InsertItemType(entity); - case "1": + case "3": return DeleteItemType(entity.Id); default: throw new ArgumentNullException( @@ -91,43 +92,15 @@ public bool SaveList(List<ErpItemType> departments) { - var list = new List<MesItemType>(); - departments.ForEach(s => + if (departments == null || !departments.Any()) { - var entity = GetMesItemType(s); - entity.Type = s.Type; - list.Add(entity); - }); + Console.WriteLine("璀﹀憡: 浼犲叆鐨勫垪琛ㄤ负绌�"); + return false; + } - var groupBy = list.GroupBy(s => s.Type) - .ToDictionary(g => g.Key, g => g.ToList()); - var result = new List<bool>(); - - foreach (var itemTypeGroup in groupBy) - try - { - switch (itemTypeGroup.Key) - { - case "0": - result.Add(InsertItemTypeBatch(itemTypeGroup.Value)); - break; - case "1": - result.Add(DeleteItemTypeBatch(itemTypeGroup.Value)); - break; - default: - throw new ArgumentNullException( - $"type娌℃湁{itemTypeGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�"); - } - } - catch (Exception ex) - { - throw new ApplicationException($"鎵归噺鎿嶄綔澶辫触: {ex.Message}", ex); - } - - if (result.All(b => b)) - return true; - - throw new NotImplementedException("鎺ュ彛鎵ц澶辫触"); + // 閫愭潯澶勭悊锛屽叏閮ㄦ垚鍔熸墠杩斿洖true锛堜簨鍔″唴鎵归噺澶勭悊鏇翠紭锛屾澶勪繚鎸佸師鏈夐�昏緫锛� + var result = departments.Select(Save).ToList(); + return result.All(b => b); } private bool InsertItemTypeBatch(List<MesItemType> itemTypeList) diff --git a/MES.Service/service/BasicData/MesItemsManager.cs b/MES.Service/service/BasicData/MesItemsManager.cs index a8933ba..87bbcf5 100644 --- a/MES.Service/service/BasicData/MesItemsManager.cs +++ b/MES.Service/service/BasicData/MesItemsManager.cs @@ -44,39 +44,15 @@ public bool SaveList(List<ErpItems> items) { - var list = items.Select(GetMesItems).ToList(); - var groupBy = list.GroupBy(s => s.Type) - .ToDictionary(g => g.Key, g => g.ToList()); - - return UseTransaction(db => + if (items == null || !items.Any()) { - foreach (var itemGroup in groupBy) - switch (itemGroup.Key) - { - case "0": - if (!UpdateItemStatusBatch(db, itemGroup.Value, "A")) - throw new NotImplementedException("鍚敤澶辫触"); - break; - case "1": - if (!UpdateItemStatusBatch(db, itemGroup.Value, "B")) - throw new NotImplementedException("绂佺敤澶辫触"); - break; - case "3": - if (!DeleteItemBatch(db, itemGroup.Value)) - throw new NotImplementedException("鍒犻櫎澶辫触"); - break; - case "2": - case "4": - if (!InsertOrUpdateBatch(db, itemGroup.Value)) - throw new NotImplementedException("鍚屾澶辫触"); - break; - default: - throw new ArgumentNullException( - $"type娌℃湁{itemGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�"); - } - - return 1; - }) > 0; + Console.WriteLine("璀﹀憡: 浼犲叆鐨勭墿鏂欏垪琛ㄤ负绌�"); + return false; + } + + // 閫愭潯澶勭悊锛屽叏閮ㄦ垚鍔熸墠杩斿洖true锛堜簨鍔″唴鎵归噺澶勭悊鏇翠紭锛屾澶勪繚鎸佸師鏈夐�昏緫锛� + var result = items.Select(Save).ToList(); + return result.All(b => b); } private bool UpdateItemStatus(SqlSugarScope db, decimal itemId, @@ -113,36 +89,37 @@ private MesItems GetMesItems(ErpItems item) { + var id = string.IsNullOrEmpty(item.Id) + ? DateTimeOffset.UtcNow.ToUnixTimeSeconds() + : long.Parse(item.Id); var entity = new MesItems { - Id = string.IsNullOrEmpty(item.Id) - ? DateTimeOffset.UtcNow.ToUnixTimeSeconds() - : long.Parse(item.Id), + Id = id, Type = item.Type, ItemNo = item.FNumber, ItemName = item.FName, ItemModel = item.FSpecification, ItemUnit = item.FBaseUnitId, - Lowlimit = !string.IsNullOrEmpty(item.FSafeStock) - ? Convert.ToDecimal(item.FSafeStock) - : null, - Highlimit = !string.IsNullOrEmpty(item.FMaxStock) - ? Convert.ToDecimal(item.FMaxStock) - : null, - PrdPack = !string.IsNullOrEmpty(item.FMinPackCount) - ? Convert.ToDecimal(item.FMinPackCount) - : null, + // Lowlimit = !string.IsNullOrEmpty(item.FSafeStock) + // ? Convert.ToDecimal(item.FSafeStock) + // : null, + // Highlimit = !string.IsNullOrEmpty(item.FMaxStock) + // ? Convert.ToDecimal(item.FMaxStock) + // : null, + // PrdPack = !string.IsNullOrEmpty(item.FMinPackCount) + // ? Convert.ToDecimal(item.FMinPackCount) + // : null, DepotCode = item.FStockId, Fmaterialgroup = item.FMaterialGroup, Remarks = item.FDescription, - Ffinishreceiptoverrate = - !string.IsNullOrEmpty(item.FFinishReceiptOverRate) - ? Convert.ToInt32(item.FFinishReceiptOverRate) - : null, + // Ffinishreceiptoverrate = + // !string.IsNullOrEmpty(item.FFinishReceiptOverRate) + // ? Convert.ToInt32(item.FFinishReceiptOverRate) + // : null, Fissuetype = item.FIssueType, - Fisbatchmanage = !string.IsNullOrEmpty(item.FIsBatchManage) - ? Convert.ToInt32(item.FIsBatchManage) - : null, + // Fisbatchmanage = !string.IsNullOrEmpty(item.FIsBatchManage) + // ? Convert.ToInt32(item.FIsBatchManage) + // : null, Fpurchaserid = item.FPurchaserId, Fpurchaseunitid = item.FPurchaseUnitId, Storeunit = item.FStoreUnitID, @@ -161,11 +138,8 @@ LossPercent = item.FLOSSPERCENT, MnemonicCode = item.FMnemonicCode, ExpPeriod = item.FExpPeriod, - EItemId = !string.IsNullOrEmpty(item.Id) - ? long.Parse(item.Id) - : null, - ItemId = - !string.IsNullOrEmpty(item.Id) ? long.Parse(item.Id) : null, + EItemId = id, + ItemId = id, LastupdateDate = DateTime.Now, CreateDate = DateTime.Now, Company = "1000", diff --git a/MES.Service/service/BasicData/MesStaffManager.cs b/MES.Service/service/BasicData/MesStaffManager.cs index a0081d3..b9276bd 100644 --- a/MES.Service/service/BasicData/MesStaffManager.cs +++ b/MES.Service/service/BasicData/MesStaffManager.cs @@ -70,7 +70,7 @@ db.Deleteable<MesStaff>() .Where(s => s.Id == entity.Id) .ExecuteCommand(); - + var insertStaff = db.Insertable(entity).IgnoreColumns(true).ExecuteCommand(); @@ -87,13 +87,13 @@ insertPosition = db.Insertable(mesStaffPositionLink).PageSize(1) .IgnoreColumnsNull().ExecuteCommand(); } - - + + return insertStaff > 0 && insertPosition > 0; } // 鍒犻櫎鍛樺伐鐨勬柟娉� - + private bool DeleteStaff(SqlSugarScope db, SysUser sysUser, MesStaff entity) { @@ -107,16 +107,16 @@ 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; } - + throw new NotImplementedException("鍙嶅鏍稿け璐�"); } // 灏� ErpStaff 瀵硅薄杞崲涓� MesStaff 瀵硅薄鐨勬柟娉� @@ -174,7 +174,7 @@ { // 鍒濆鍖栬繑鍥炵殑鑱屼綅鍏宠仈鍒楄〃 List<MesStaffPositionLink> staffDetails = new List<MesStaffPositionLink>(); - + // 妫�鏌rpStaff鏄惁鍖呭惈鑱屼綅璇︽儏鏁版嵁 if (staff.ErpStaffDetails != null && staff.ErpStaffDetails.Count > 0) { @@ -184,19 +184,19 @@ { // 鍛樺伐ID锛氫粠ErpStaff鐨処d灞炴�ц浆鎹负decimal绫诲瀷 StaffId = Convert.ToDecimal(staff.Id), - + // 鑱屼綅ID锛� // 1. 妫�鏌PostId鏄惁涓虹┖鎴杗ull // 2. 闈炵┖鏃惰浆鎹负decimal锛屽惁鍒欒涓簄ull PositionId = string.IsNullOrEmpty(staffDetail.fPostId.ToString()) ? null : Convert.ToDecimal(staffDetail.fPostId), - + // 鑱屼綅閮ㄩ棬ID锛氶�昏緫涓庤亴浣岻D绫讳技 FPostDeptId = string.IsNullOrEmpty(staffDetail.fPostDeptid.ToString()) ? null : Convert.ToDecimal(staffDetail.fPostDeptid), - + // 鍛樺伐鍏ヨ亴鏃ユ湡锛� // 1. 妫�鏌StaffStartDate鏄惁涓虹┖鎴杗ull // 2. 闈炵┖鏃舵寜"yyyy-MM-dd HH:mm:ss"鏍煎紡瑙f瀽涓篋ateTime锛屽惁鍒欒涓簄ull @@ -322,13 +322,13 @@ if (!InsertOrUpdateStaff(db, sysUser, entity, mesStaffPositionLink)) return false; } - + return true; } } */ - - namespace MES.Service.service.BasicData; + +namespace MES.Service.service.BasicData; using MES.Service.DB; using MES.Service.Dto.webApi; @@ -346,8 +346,10 @@ if (unit == null) throw new ArgumentNullException(nameof(unit)); var entity = GetMesStaff(unit); + unit.Id = entity.Id.ToString(); var sysUser = GetUser(unit); - var mesStaffPositionLink = GetMesStaffPositionLink(unit); + //var mesStaffPositionLink = GetMesStaffPositionLink(unit); + List<MesStaffPositionLink> mesStaffPositionLink = null; return UseTransaction(db => { @@ -356,8 +358,17 @@ case "0": return UpdateStaffStatus(db, entity.Id, "A") ? 1 : 0; case "1": return UpdateStaffStatus(db, entity.Id, "B") ? 1 : 0; case "2": - case "4": return InsertOrUpdateStaff(db, new List<SysUser> { sysUser }, new List<MesStaff> { entity }, mesStaffPositionLink) ? 1 : 0; - case "3": return DeleteStaff(db, new List<SysUser> { sysUser }, new List<MesStaff> { entity }) ? 1 : 0; + case "4": + return InsertOrUpdateStaff(db, + new List<SysUser> { sysUser }, + new List<MesStaff> { entity }, mesStaffPositionLink) + ? 1 + : 0; + case "3": + return DeleteStaff(db, new List<SysUser> { sysUser }, + new List<MesStaff> { entity }) + ? 1 + : 0; default: throw new ArgumentException($"涓嶆敮鎸佺殑绫诲瀷: {unit.Type}"); } }) > 0; @@ -372,53 +383,14 @@ return false; } - var mesStaffList = new List<MesStaff>(); - var sysUserList = new List<SysUser>(); - var positionLinkList = new List<MesStaffPositionLink>(); - - // 杞崲鏁版嵁 - foreach (var erpStaff in departments) - { - mesStaffList.Add(GetMesStaff(erpStaff)); - sysUserList.Add(GetUser(erpStaff)); - positionLinkList.AddRange(GetMesStaffPositionLink(erpStaff)); - } - - // 鎸夌被鍨嬪垎缁勫鐞� - var typeGroups = mesStaffList.GroupBy(s => s.Type).ToList(); - - return UseTransaction(db => - { - foreach (var group in typeGroups) - { - var groupType = group.Key; - var groupUsers = sysUserList.Where(u => u.Type == groupType).ToList(); - - switch (groupType) - { - case "0": - UpdateStaffStatusBatch(db, group.ToList(), "A"); - break; - case "1": - UpdateStaffStatusBatch(db, group.ToList(), "B"); - break; - case "2": - case "4": - InsertOrUpdateBatch(db, groupUsers, group.ToList(), positionLinkList); - break; - case "3": - DeleteStaffBatch(db, groupUsers, group.ToList()); - break; - default: - throw new ArgumentException($"涓嶆敮鎸佺殑绫诲瀷: {groupType}"); - } - } - return 1; - }) > 0; + // 閫愭潯澶勭悊锛屽叏閮ㄦ垚鍔熸墠杩斿洖true锛堜簨鍔″唴鎵归噺澶勭悊鏇翠紭锛屾澶勪繚鎸佸師鏈夐�昏緫锛� + var result = departments.Select(Save).ToList(); + return result.All(b => b); } // 鎻掑叆鎴栨洿鏂板憳宸ワ紙鎵归噺鐗堟湰锛� - private bool InsertOrUpdateBatch(SqlSugarScope db, List<SysUser> sysUsers, List<MesStaff> entities, List<MesStaffPositionLink> positionLinks) + private bool InsertOrUpdateBatch(SqlSugarScope db, List<SysUser> sysUsers, + List<MesStaff> entities, List<MesStaffPositionLink> positionLinks) { if (!sysUsers.Any() || !entities.Any()) { @@ -430,42 +402,52 @@ { // 1. 鎵归噺鎻掑叆 SysUser锛堜粎鏂板锛� var newSysUsers = sysUsers - .Where(u => !db.Queryable<SysUser>().Any(e => e.Sid == u.Sid)) + .Where(u => + !db.Queryable<SysUser>().Any(e => e.StaffId == u.StaffId)) .ToList(); if (newSysUsers.Any()) { Console.WriteLine($"鍑嗗鎻掑叆 {newSysUsers.Count} 涓柊SysUser"); var insertCount = db.Insertable(newSysUsers).ExecuteCommand(); - + if (insertCount != newSysUsers.Count) { - throw new InvalidOperationException($"SysUser鎻掑叆澶辫触锛屾湡鏈涙彃鍏� {newSysUsers.Count} 鏉★紝瀹為檯鎻掑叆 {insertCount} 鏉�"); + throw new InvalidOperationException( + $"SysUser鎻掑叆澶辫触锛屾湡鏈涙彃鍏� {newSysUsers.Count} 鏉★紝瀹為檯鎻掑叆 {insertCount} 鏉�"); } - + Console.WriteLine($"鎴愬姛鎻掑叆 {insertCount} 涓猄ysUser"); } // 2. 鎵归噺鍒犻櫎骞舵彃鍏� MesStaff var staffIds = entities.Select(e => e.Id).ToList(); - db.Deleteable<MesStaff>().Where(s => staffIds.Contains(s.Id)).ExecuteCommand(); - - var staffInsertCount = db.Insertable(entities).IgnoreColumns(true).ExecuteCommand(); + db.Deleteable<MesStaff>().Where(s => staffIds.Contains(s.Id)) + .ExecuteCommand(); + + var staffInsertCount = db.Insertable(entities).IgnoreColumns(true) + .ExecuteCommand(); if (staffInsertCount != entities.Count) { - throw new InvalidOperationException($"MesStaff鎻掑叆澶辫触锛屾湡鏈涙彃鍏� {entities.Count} 鏉★紝瀹為檯鎻掑叆 {staffInsertCount} 鏉�"); + throw new InvalidOperationException( + $"MesStaff鎻掑叆澶辫触锛屾湡鏈涙彃鍏� {entities.Count} 鏉★紝瀹為檯鎻掑叆 {staffInsertCount} 鏉�"); } // 3. 澶勭悊宀椾綅鍏宠仈锛堝鏋滄湁锛� if (positionLinks != null && positionLinks.Any()) { - var positionStaffIds = positionLinks.Select(p => p.StaffId).Distinct().ToList(); - db.Deleteable<MesStaffPositionLink>().Where(p => positionStaffIds.Contains(p.StaffId)).ExecuteCommand(); - - var positionInsertCount = db.Insertable(positionLinks).PageSize(500).IgnoreColumnsNull().ExecuteCommand(); + var positionStaffIds = positionLinks.Select(p => p.StaffId) + .Distinct().ToList(); + db.Deleteable<MesStaffPositionLink>() + .Where(p => positionStaffIds.Contains(p.StaffId)) + .ExecuteCommand(); + + var positionInsertCount = db.Insertable(positionLinks) + .PageSize(500).IgnoreColumnsNull().ExecuteCommand(); if (positionInsertCount != positionLinks.Count) { - throw new InvalidOperationException($"MesStaffPositionLink鎻掑叆澶辫触锛屾湡鏈涙彃鍏� {positionLinks.Count} 鏉★紝瀹為檯鎻掑叆 {positionInsertCount} 鏉�"); + throw new InvalidOperationException( + $"MesStaffPositionLink鎻掑叆澶辫触锛屾湡鏈涙彃鍏� {positionLinks.Count} 鏉★紝瀹為檯鎻掑叆 {positionInsertCount} 鏉�"); } } @@ -475,52 +457,57 @@ { Console.WriteLine($"鎵归噺鎻掑叆/鏇存柊澶辫触: {ex.Message}"); Console.WriteLine($"SQL: {db.Ado.SqlExecutionTime}"); - + // 璁板綍瀹屾暣鐨勯敊璇爢鏍� Console.WriteLine($"鍫嗘爤璺熻釜: {ex.StackTrace}"); - + // 璁板綍澶辫触鐨勬暟鎹� if (sysUsers != null && sysUsers.Any()) { - Console.WriteLine($"澶辫触鐨凷ysUser鏁版嵁: {string.Join(", ", sysUsers.Select(u => u.Account))}"); + Console.WriteLine( + $"澶辫触鐨凷ysUser鏁版嵁: {string.Join(", ", sysUsers.Select(u => u.Account))}"); } - + throw; } } // 鎻掑叆鎴栨洿鏂板憳宸ワ紙鍏煎鏃х増鏈紝璋冪敤鎵归噺鏂规硶锛� - private bool InsertOrUpdateStaff(SqlSugarScope db, List<SysUser> sysUsers, List<MesStaff> entities, List<MesStaffPositionLink> positionLinks) + private bool InsertOrUpdateStaff(SqlSugarScope db, List<SysUser> sysUsers, + List<MesStaff> entities, List<MesStaffPositionLink> positionLinks) { return InsertOrUpdateBatch(db, sysUsers, entities, positionLinks); } // 鎵归噺鏇存柊鍛樺伐鐘舵�� - private bool UpdateStaffStatusBatch(SqlSugarScope db, List<MesStaff> staffList, string status) + private bool UpdateStaffStatusBatch(SqlSugarScope db, + List<MesStaff> staffList, string status) { if (!staffList.Any()) { Console.WriteLine("璀﹀憡: 鍛樺伐鍒楄〃涓虹┖锛岃烦杩囩姸鎬佹洿鏂�"); return false; } - + var ids = staffList.Select(s => s.Id).ToList(); var updateCount = db.Updateable<MesStaff>() .SetColumns(s => s.FforbidStatus == status) .Where(s => ids.Contains(s.Id)) .ExecuteCommand(); - + if (updateCount <= 0) { - throw new InvalidOperationException($"鏇存柊鍛樺伐鐘舵�佸け璐ワ紝鐘舵��: {status}锛屽奖鍝嶈鏁�: {updateCount}"); + throw new InvalidOperationException( + $"鏇存柊鍛樺伐鐘舵�佸け璐ワ紝鐘舵��: {status}锛屽奖鍝嶈鏁�: {updateCount}"); } - + Console.WriteLine($"鎴愬姛鏇存柊 {updateCount} 涓憳宸ョ姸鎬佷负 {status}"); return true; } // 鎵归噺鍒犻櫎鍛樺伐 - private bool DeleteStaffBatch(SqlSugarScope db, List<SysUser> sysUsers, List<MesStaff> entities) + private bool DeleteStaffBatch(SqlSugarScope db, List<SysUser> sysUsers, + List<MesStaff> entities) { if (!sysUsers.Any() || !entities.Any()) { @@ -532,18 +519,21 @@ { // 1. 鍒犻櫎 SysUser var userAccounts = sysUsers.Select(u => u.Account).ToList(); - var userDeleteCount = db.Deleteable<SysUser>().Where(u => userAccounts.Contains(u.Account)).ExecuteCommand(); - + var userDeleteCount = db.Deleteable<SysUser>() + .Where(u => userAccounts.Contains(u.Account)).ExecuteCommand(); + // 2. 鍒犻櫎 MesStaff var staffIds = entities.Select(e => e.Id).ToList(); - var staffDeleteCount = db.Deleteable<MesStaff>().Where(s => staffIds.Contains(s.Id)).ExecuteCommand(); - + var staffDeleteCount = db.Deleteable<MesStaff>() + .Where(s => staffIds.Contains(s.Id)).ExecuteCommand(); + // 3. 鍒犻櫎宀椾綅鍏宠仈 锛氫娇鐢ˋny鏂规硶锛堟帹鑽愶級 db.Deleteable<MesStaffPositionLink>() .Where(p => staffIds.Any(id => id == p.StaffId)) .ExecuteCommand(); - Console.WriteLine($"鎴愬姛鍒犻櫎 {userDeleteCount} 涓猄ysUser鍜� {staffDeleteCount} 涓狹esStaff"); + Console.WriteLine( + $"鎴愬姛鍒犻櫎 {userDeleteCount} 涓猄ysUser鍜� {staffDeleteCount} 涓狹esStaff"); return userDeleteCount > 0 && staffDeleteCount > 0; } catch (Exception ex) @@ -555,7 +545,8 @@ } // 鏇存柊鍛樺伐鐘舵�� - private bool UpdateStaffStatus(SqlSugarScope db, decimal staffId, string status) + private bool UpdateStaffStatus(SqlSugarScope db, decimal staffId, + string status) { var result = db.Updateable<MesStaff>() .SetColumns(s => s.FforbidStatus == status) @@ -564,14 +555,16 @@ if (result <= 0) { - throw new InvalidOperationException($"鏇存柊鍛樺伐鐘舵�佸け璐ワ紝鍛樺伐ID: {staffId}锛岀姸鎬�: {status}"); + throw new InvalidOperationException( + $"鏇存柊鍛樺伐鐘舵�佸け璐ワ紝鍛樺伐ID: {staffId}锛岀姸鎬�: {status}"); } return true; } // 鍒犻櫎鍛樺伐锛堣皟鐢ㄦ壒閲忔柟娉曪級 - private bool DeleteStaff(SqlSugarScope db, List<SysUser> sysUsers, List<MesStaff> entities) + private bool DeleteStaff(SqlSugarScope db, List<SysUser> sysUsers, + List<MesStaff> entities) { return DeleteStaffBatch(db, sysUsers, entities); } @@ -585,8 +578,8 @@ { var entity = new MesStaff { - Id = string.IsNullOrEmpty(staff.Id) - ? DateTimeOffset.UtcNow.ToUnixTimeSeconds() + Id = string.IsNullOrEmpty(staff.Id) + ? DateTimeOffset.UtcNow.ToUnixTimeSeconds() : Convert.ToDecimal(staff.Id), StaffNo = staff.FStaffNumber, StaffName = staff.FName, @@ -608,7 +601,8 @@ if (!string.IsNullOrEmpty(staff.FStaffStartDate)) { - entity.StartDate = DateTime.ParseExact(staff.FStaffStartDate, "yyyy-MM-dd HH:mm:ss", null); + entity.StartDate = DateTime.ParseExact(staff.FStaffStartDate, + "yyyy-MM-dd HH:mm:ss", null); } var mesStaff = Db.Queryable<MesStaff>() @@ -625,7 +619,8 @@ catch (Exception ex) { Console.WriteLine($"杞崲ErpStaff鍒癕esStaff澶辫触: {ex.Message}"); - Console.WriteLine($"杈撳叆鏁版嵁: {staff.Id}, {staff.FStaffNumber}, {staff.FName}"); + Console.WriteLine( + $"杈撳叆鏁版嵁: {staff.Id}, {staff.FStaffNumber}, {staff.FName}"); throw; } } @@ -639,7 +634,7 @@ { return new SysUser { - Sid = Convert.ToDecimal(staff.Id), // 纭繚Sid涓庡憳宸D涓�鑷� + StaffId = staff.Id, // 纭繚Sid涓庡憳宸D涓�鑷� IsStatus = true, Account = staff.FStaffNumber, UserName = staff.FName, @@ -652,7 +647,8 @@ catch (Exception ex) { Console.WriteLine($"杞崲ErpStaff鍒癝ysUser澶辫触: {ex.Message}"); - Console.WriteLine($"杈撳叆鏁版嵁: {staff.Id}, {staff.FStaffNumber}, {staff.FName}"); + Console.WriteLine( + $"杈撳叆鏁版嵁: {staff.Id}, {staff.FStaffNumber}, {staff.FName}"); throw; } } @@ -666,21 +662,30 @@ { var staffDetails = new List<MesStaffPositionLink>(); - if (staff.ErpStaffDetails != null && staff.ErpStaffDetails.Count > 0) + 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) + 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(); } diff --git a/MES.Service/service/BasicData/MesSupplierManager.cs b/MES.Service/service/BasicData/MesSupplierManager.cs index acb391c..bec3b07 100644 --- a/MES.Service/service/BasicData/MesSupplierManager.cs +++ b/MES.Service/service/BasicData/MesSupplierManager.cs @@ -43,41 +43,15 @@ public bool SaveList(List<ErpSupplier> suppliers) { - var list = suppliers.Select(GetMesSupplier).ToList(); - var groupBy = list.GroupBy(s => s.Type) - .ToDictionary(g => g.Key, g => g.ToList()); - - return UseTransaction(db => + if (suppliers == null || !suppliers.Any()) { - foreach (var supplierGroup in groupBy) - switch (supplierGroup.Key) - { - case "0": - if (!UpdateSupplierStatusBatch(db, supplierGroup.Value, - "A")) - throw new NotImplementedException("鍚敤澶辫触"); - break; - case "1": - if (!UpdateSupplierStatusBatch(db, supplierGroup.Value, - "B")) - throw new NotImplementedException("绂佺敤澶辫触"); - break; - case "3": - if (!DeleteSupplierBatch(db, supplierGroup.Value)) - throw new NotImplementedException("鍒犻櫎澶辫触"); - break; - case "2": - case "4": - if (!InsertOrUpdateBatch(db, supplierGroup.Value)) - throw new NotImplementedException("鍚屾澶辫触"); - break; - default: - throw new ArgumentNullException( - $"type娌℃湁{supplierGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�"); - } + Console.WriteLine("璀﹀憡: 浼犲叆鐨勫垪琛ㄤ负绌�"); + return false; + } - return 1; - }) > 0; + // 閫愭潯澶勭悊锛屽叏閮ㄦ垚鍔熸墠杩斿洖true锛堜簨鍔″唴鎵归噺澶勭悊鏇翠紭锛屾澶勪繚鎸佸師鏈夐�昏緫锛� + var result = suppliers.Select(Save).ToList(); + return result.All(b => b); } private bool UpdateSupplierStatus(SqlSugarScope db, decimal supplierId, diff --git a/MES.Service/service/BasicData/MesUnitManager.cs b/MES.Service/service/BasicData/MesUnitManager.cs index e966f28..eaa66e3 100644 --- a/MES.Service/service/BasicData/MesUnitManager.cs +++ b/MES.Service/service/BasicData/MesUnitManager.cs @@ -43,39 +43,15 @@ public bool SaveList(List<ErpUnit> units) { - var list = units.Select(GetMesUnit).ToList(); - var groupBy = list.GroupBy(s => s.Type) - .ToDictionary(g => g.Key, g => g.ToList()); - - return UseTransaction(db => + if (units == null || !units.Any()) { - foreach (var unitGroup in groupBy) - switch (unitGroup.Key) - { - case "0": - if (!UpdateUnitStatusBatch(db, unitGroup.Value, "A")) - throw new NotImplementedException("鍚敤澶辫触"); - break; - case "1": - if (!UpdateUnitStatusBatch(db, unitGroup.Value, "B")) - throw new NotImplementedException("绂佺敤澶辫触"); - break; - case "3": - if (!DeleteUnitBatch(db, unitGroup.Value)) - throw new NotImplementedException("鍒犻櫎澶辫触"); - break; - case "2": - case "4": - if (!InsertOrUpdateBatch(db, unitGroup.Value)) - throw new NotImplementedException("鍚屾澶辫触"); - break; - default: - throw new ArgumentNullException( - $"type娌℃湁{unitGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�"); - } + Console.WriteLine("璀﹀憡: 浼犲叆鐨勫垪琛ㄤ负绌�"); + return false; + } - return 1; - }) > 0; + // 閫愭潯澶勭悊锛屽叏閮ㄦ垚鍔熸墠杩斿洖true锛堜簨鍔″唴鎵归噺澶勭悊鏇翠紭锛屾澶勪繚鎸佸師鏈夐�昏緫锛� + var result = units.Select(Save).ToList(); + return result.All(b => b); } private bool UpdateUnitStatus(SqlSugarScope db, decimal unitId, diff --git a/MES.Service/service/BasicData/SysDepartmentManager.cs b/MES.Service/service/BasicData/SysDepartmentManager.cs index 3e6e181..2b87924 100644 --- a/MES.Service/service/BasicData/SysDepartmentManager.cs +++ b/MES.Service/service/BasicData/SysDepartmentManager.cs @@ -146,50 +146,15 @@ // SaveList 鏂规硶鐢ㄤ簬淇濆瓨澶氫釜閮ㄩ棬璁板綍锛屾牴鎹被鍨嬫壒閲忔墽琛屼笉鍚岀殑鎿嶄綔 public bool SaveList(List<ErpDepartment> departments) { - var list = new List<SysDepartment>(); - departments.ForEach(s => + if (departments == null || !departments.Any()) { - var entity = - GetSysDepartment(s); // 灏� ErpDepartment 杞崲涓� SysDepartment - entity.Type = s.Type; - list.Add(entity); - }); + Console.WriteLine("璀﹀憡: 浼犲叆鐨勭墿鏂欏垪琛ㄤ负绌�"); + return false; + } - var groupBy = list.GroupBy(s => s.Type) - .ToDictionary(g => g.Key, g => g.ToList()); - return UseTransaction(db => - { - foreach (var departmentGroup in groupBy) - switch (departmentGroup.Key) - { - case "0": - if (!UpdateDepartmentStatusBatch(db, - departmentGroup.Value, "A")) // 鎵归噺鍚敤閮ㄩ棬 - throw new NotImplementedException("鍚敤澶辫触"); - break; - case "1": - if (!UpdateDepartmentStatusBatch(db, - departmentGroup.Value, "B")) // 鎵归噺绂佺敤閮ㄩ棬 - throw new NotImplementedException("绂佺敤澶辫触"); - break; - case "3": - if (!DeleteDepartmentBatch(db, - departmentGroup.Value)) // 鎵归噺鍒犻櫎閮ㄩ棬 - throw new NotImplementedException("鍒犻櫎澶辫触"); - break; - case "2": - case "4": - if (!InsertOrUpdateDepartmentBatch(db, - departmentGroup.Value)) // 鎵归噺鎻掑叆鎴栨洿鏂伴儴闂� - throw new NotImplementedException("鍚屾澶辫触"); - break; - default: - throw new ArgumentNullException( - $"type娌℃湁{departmentGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�"); - } - - return 1; - }) > 0; + // 閫愭潯澶勭悊锛屽叏閮ㄦ垚鍔熸墠杩斿洖true锛堜簨鍔″唴鎵归噺澶勭悊鏇翠紭锛屾澶勪繚鎸佸師鏈夐�昏緫锛� + var result = departments.Select(Save).ToList(); + return result.All(b => b); } // 鎵归噺鏇存柊閮ㄩ棬鐘舵�佺殑鏂规硶 -- Gitblit v1.9.3