From f476ec010c22cd4e3c6a119eea035cbf4594bfbb Mon Sep 17 00:00:00 2001 From: kyy <3283105747@qq.com> Date: 星期五, 12 九月 2025 19:32:00 +0800 Subject: [PATCH] 1\修正收料通知单 --- MES.Service/service/BasicData/MesItemTypeManager.cs | 131 ++++++++++++++++++++++++------------------- 1 files changed, 74 insertions(+), 57 deletions(-) diff --git a/MES.Service/service/BasicData/MesItemTypeManager.cs b/MES.Service/service/BasicData/MesItemTypeManager.cs index 6f74c23..351d87d 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( @@ -30,27 +31,56 @@ } } - private bool InsertItemType(MesItemType entity) + /// <summary> + /// 鐢熸垚鏂扮殑ID锛岀‘淇濅笉閲嶅 + /// </summary> + private decimal GenerateNewId() { - // 鍏堟牴鎹甀D鍒犻櫎鐜版湁璁板綍 - try + // 澶勭悊绌鸿〃鐨勬儏鍐碉紝浠�1寮�濮� + var maxId = Db.Queryable<MesItemType>().Max(x => (decimal?)x.Id) ?? 0; + var newId = maxId + 1; + + // 鍙岄噸妫�鏌ワ紝纭繚鐢熸垚鐨処D涓嶅瓨鍦� + while (Db.Queryable<MesItemType>().Where(x => x.Id == newId).Any()) { - Db.Deleteable<MesItemType>() - .Where(it => it.Id == entity.Id).ExecuteCommand(); + newId++; } - catch (Exception) - { - // 鍒犻櫎澶辫触鍙兘鏄洜涓鸿褰曚笉瀛樺湪锛岀户缁墽琛屾彃鍏ユ搷浣� - } - - var insert = base.Insert(entity); - if (insert) - return true; - - throw new NotImplementedException("鎻掑叆澶辫触"); + + return newId; } - private bool DeleteItemType(long? id) + private bool InsertItemType(MesItemType entity) + { + if (entity.Id == 0) + { + // 鏂板鎯呭喌锛氱敓鎴愭柊ID骞舵彃鍏� + var newId = GenerateNewId(); + entity.Id = newId; + return base.Insert(entity); + } + else + { + // 鏇存柊鎯呭喌锛氬垹闄ゅ悗閲嶆柊鎻掑叆锛屼繚鎸佸師鏈塈D + var originalId = entity.Id; + + // 鍏堝垹闄ゅ師璁板綍锛堝鏋滃瓨鍦級 + try + { + Db.Deleteable<MesItemType>() + .Where(it => it.Id == originalId).ExecuteCommand(); + } + catch (Exception) + { + // 鍒犻櫎澶辫触鍙兘鏄洜涓鸿褰曚笉瀛樺湪锛岀户缁墽琛屾彃鍏ユ搷浣� + } + + // 閲嶆柊鎻掑叆锛屼繚鎸佸師鏈塈D + entity.Id = originalId; + return base.Insert(entity); + } + } + + private bool DeleteItemType(decimal? id) { var deleteById = Db.Deleteable<MesItemType>() .Where(it => it.Id == id).ExecuteCommand(); @@ -62,11 +92,8 @@ private MesItemType GetMesItemType(ErpItemType department) { - return new MesItemType + var entity = new MesItemType { - Id = string.IsNullOrEmpty(department.Id) - ? DateTimeOffset.UtcNow.ToUnixTimeSeconds() - : long.Parse(department.Id), Pgroup = department.FParentId, Tcode = department.FNumber, Tname = department.FName, @@ -76,47 +103,37 @@ Company = "1000", Factory = "1000" }; + + // 鏌ユ壘鏄惁宸插瓨鍦ㄧ浉鍚岀被鍨嬬紪鐮佺殑璁板綍 + var existingItemType = Db.Queryable<MesItemType>() + .Where(it => it.Tcode == entity.Tcode) + .First(); + + if (existingItemType != null) + { + // 濡傛灉瀛樺湪锛屼娇鐢ㄧ幇鏈夌殑ID锛屽悗缁皢鍒犻櫎鍚庨噸鏂版彃鍏� + entity.Id = existingItemType.Id; + } + else + { + // 濡傛灉涓嶅瓨鍦紝璁句负0锛孖nsertOrUpdate鏂规硶灏嗙敓鎴愭柊ID + entity.Id = 0; + } + + return entity; } 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) -- Gitblit v1.9.3