From 79e43ccffd15afcd99934ee43b706f6133398079 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期一, 07 七月 2025 15:29:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- MES.Service/service/BOM/MesBomMasterManager.cs | 101 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 74 insertions(+), 27 deletions(-) diff --git a/MES.Service/service/BOM/MesBomMasterManager.cs b/MES.Service/service/BOM/MesBomMasterManager.cs index a6fc4f9..cfa4cea 100644 --- a/MES.Service/service/BOM/MesBomMasterManager.cs +++ b/MES.Service/service/BOM/MesBomMasterManager.cs @@ -46,47 +46,94 @@ private bool UpdateData(SqlSugarScope db, MesBomMaster mesMesBom, List<MesBomDetail1> mesMesBomDatas1, List<MesBomDetail2> mesMesBomDatas2) { - var decimals1 = mesMesBomDatas1.Select(s => s.Erpid).ToArray(); - var decimals2 = mesMesBomDatas2.Select(s => s.Erpid).ToArray(); - var update = base.DeleteById(mesMesBom.Erpid); - var insertOrUpdate1 = db - .Deleteable<MesBomDetail1>().In(decimals1) - .ExecuteCommand() > 0; - var insertOrUpdate2 = db - .Deleteable<MesBomDetail2>().In(decimals2) - .ExecuteCommand() > 0; + + //鍒犻櫎鐩稿悓ERPID鐩稿悓BOM鏇存柊绫诲瀷鐨勫崟鎹� + var query = db.Queryable<MesBomMaster>() + .Where(s => s.Erpid == mesMesBom.Erpid); - if (update && insertOrUpdate1 && insertOrUpdate2) return true; - throw new NotImplementedException("鏇存柊澶辫触"); + if (mesMesBom.BomUpdateType != "1") + { + if (string.IsNullOrEmpty(mesMesBom.BomUpdateType)) + { + query = query.Where(s => string.IsNullOrEmpty(s.BomUpdateType)); + } + else + { + query = query.Where(s => s.BomUpdateType == mesMesBom.BomUpdateType); + } + + decimal? ID = query.Select(s => s.Id).First(); + + var update = base.DeleteById(ID); + + var insertOrUpdate1 = db.Deleteable<MesBomDetail1>() + .Where(s => s.Mid == ID) + .ExecuteCommand() > 0; + + var insertOrUpdate2 = true; + + if (mesMesBomDatas2.Count > 0) + { + insertOrUpdate2 = db.Deleteable<MesBomDetail2>() + .Where(s => s.Mid == ID) + .ExecuteCommand() > 0; ; + // deleted 涓� true 琛ㄧず鏈夎褰曡鍒犻櫎 + } + + if (update && insertOrUpdate1 && insertOrUpdate2) return true; + throw new NotImplementedException("鏇存柊澶辫触"); + } + return true; } // 鎻掑叆鎴栨洿鏂版暟鎹殑鏂规硶 private bool SaveOrUpdateData(SqlSugarScope db, MesBomMaster mesMesBom, List<MesBomDetail1> mesMesBomDatas1, List<MesBomDetail2> mesMesBomDatas2, string type) { - if (mesMesBom.Erpid != null) base.DeleteById(mesMesBom.Erpid); + //鐩稿悓ERPID涓嶅悓BOM鏇存柊绫诲瀷鐨勫崟鎹繚鐣� + var query = db.Queryable<MesBomMaster>() + .Where(s => s.Erpid == mesMesBom.Erpid); - if (mesMesBomDatas1.Count > 0) - db.Deleteable<MesBomDetail1>() - .Where(s => s.Erphid == mesMesBom.Erpid).ExecuteCommand(); + if (string.IsNullOrEmpty(mesMesBom.BomUpdateType)) + { + query = query.Where(s => string.IsNullOrEmpty(s.BomUpdateType)); + } + else + { + query = query.Where(s => s.BomUpdateType == mesMesBom.BomUpdateType); + } - if (mesMesBomDatas2.Count > 0) - db.Deleteable<MesBomDetail2>() - .Where(s => s.Erphid == mesMesBom.Erpid).ExecuteCommand(); + decimal? ID = query.Select(s => s.Id).First(); + + if (ID != null) + { + if (mesMesBom.Erpid != null) + db.Deleteable<MesBomMaster>() + .Where(s => s.Id == ID) + .ExecuteCommand(); + + if (mesMesBomDatas1.Count > 0) + db.Deleteable<MesBomDetail1>() + .Where(s => s.Mid == ID).ExecuteCommand(); + + if (mesMesBomDatas2.Count > 0) + db.Deleteable<MesBomDetail2>() + .Where(s => s.Mid == ID).ExecuteCommand(); + } + //var orUpdate = base.Insert(mesMesBom); //var baOrUpdate = MesBomDetail1Manager.InsertRange(mesMesBomDatas1); //if (orUpdate && baOrUpdate) return true; - var update_res = UseTransaction(db => { - - db.Insertable(mesMesBom).ExecuteCommand(); + //鑾峰彇涓昏〃鎻掑叆鍚庣殑涓婚敭 + var insertedId = db.Insertable(mesMesBom).ExecuteReturnIdentity(); for (int i = 0; i < mesMesBomDatas1.Count; i++) { var item = mesMesBomDatas1[i]; - //item.PID = id; + item.Mid = insertedId; db.Insertable(item).IgnoreColumns(true).ExecuteCommand(); } @@ -94,7 +141,7 @@ for (int i = 0; i < mesMesBomDatas2.Count; i++) { var item = mesMesBomDatas2[i]; - //item.PID = id; + item.Mid = insertedId; db.Insertable(item).IgnoreColumns(true).ExecuteCommand(); } @@ -206,9 +253,9 @@ }; - var single = MesBomDetail1Manager.GetSingle(it => + /*var single = MesBomDetail1Manager.GetSingle(it => it.Erpid == MesBomOrderSub.Erpid); - if (single != null) MesBomOrderSub.Erpid = single.Erpid; + if (single != null) MesBomOrderSub.Erpid = single.Erpid;*/ MesBomOrderSubList.Add(MesBomOrderSub); } @@ -244,9 +291,9 @@ }; - var single = MesBomDetail2Manager.GetSingle(it => + /*var single = MesBomDetail2Manager.GetSingle(it => it.Erpid == MesBomOrderSub.Erpid); - if (single != null) MesBomOrderSub.Erpid = single.Erpid; + if (single != null) MesBomOrderSub.Erpid = single.Erpid;*/ MesBomOrderSubList.Add(MesBomOrderSub); } -- Gitblit v1.9.3