From f68218d98591c1238d6f299152545b018cc31257 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期五, 06 六月 2025 13:54:45 +0800 Subject: [PATCH] 代码超时优化 --- api/WmsSpaHelper.cs | 99 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 69 insertions(+), 30 deletions(-) diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs index ca8958c..1c2fdad 100644 --- a/api/WmsSpaHelper.cs +++ b/api/WmsSpaHelper.cs @@ -798,10 +798,10 @@ try { db.BeginTran(); + List<TN_GENERATE_ORDER> tN_GENERATE_ORDERs = new List<TN_GENERATE_ORDER>(); foreach (var item in model.ROOT.SCDD) { Orderback.ITEM iTEM = new Orderback.ITEM(); - var materlist = db.Queryable<TN_GENERATE_ORDER>().Where(it => it.S_SCDDH == item.SCDDH).First(); if (materlist == null) { @@ -821,8 +821,9 @@ tnorder.S_WBS = item.WBS; tnorder.S_SHF = item.SHF; tnorder.GZLH = item.GZLH; + tN_GENERATE_ORDERs.Add(tnorder); //tnorder.S_XLH = string.Join(",", item.ITEM.Select(items => items.XLH)); - db.Insertable<TN_GENERATE_ORDER>(tnorder).ExecuteCommand(); + } else { @@ -838,6 +839,7 @@ iTEM.MSGDESP = $"鎴愬姛"; tEMs.Add(iTEM); } + db.Insertable<TN_GENERATE_ORDER>(tN_GENERATE_ORDERs).ExecuteCommand(); orderResponse.ROOT.ITEM = tEMs; db.CommitTran(); } @@ -1334,6 +1336,9 @@ try { + var itemlist = db.Queryable<TN_Material>().ToList(); + List<TN_Inbound_Detail> tN_Inbound_Details = new List<TN_Inbound_Detail>(); + List<TN_Ll_detail> tN_Ll_Details = new List<TN_Ll_detail>(); foreach (var itemwlpz in model.ROOT.WLPZ) { @@ -1435,8 +1440,8 @@ { var poq = po.Details.Where(s => s.S_ITEM_CODE == a.WLBH).FirstOrDefault(); poq.F_QTY = a.SL; - - db.Updateable(poq).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); + tN_Inbound_Details.Add(poq); + // db.Updateable(poq).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); } else { @@ -1559,7 +1564,7 @@ po.S_FACTORY = itemwlpz.ITEM[0].GC; foreach (var a in itemwlpz.ITEM) { - var item = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == a.WLBH).First(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBH).FirstOrDefault(); if (item == null) { var result12 = new SimpleResult(); @@ -1610,7 +1615,7 @@ var po1 = po.Details.Where(s => a.WLBH == s.S_ITEM_CODE).ToList(); if (po1.Count() == 0) //鏃犲垯鏂板鐗╂枡鏄庣粏 { - var item = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == a.WLBH).First(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBH).FirstOrDefault(); if (item == null) { var result12 = new SimpleResult(); @@ -1642,7 +1647,8 @@ if (po1.Where(s => s.F_ACC_D_QTY < a.SL).Count() > 0)//鏇存柊鏁伴噺澶т簬褰撳墠鐗╂枡 鏁伴噺 鏇存柊鍑哄簱鍗� { po1.First().F_QTY = a.SL; - db.Updateable(po1).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); + tN_Ll_Details.Add(po1.First()); + //db.Updateable(po1).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); } else //杩斿洖澶辫触 { @@ -1683,7 +1689,7 @@ var po1 = po.Details.Where(s => a.WLBH == s.S_ITEM_CODE).ToList(); if (po1.Count() == 0) //鏃犲垯鏂板鐗╂枡鏄庣粏 { - var item = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == a.WLBH).First(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBH).FirstOrDefault(); if (item == null) { var result12 = new SimpleResult(); @@ -1713,7 +1719,8 @@ else {//鏇存柊鏁伴噺 鏈墽琛屾椂 鐩存帴鏇存柊鏁伴噺 po1.First().F_QTY = a.SL; - db.Updateable(po1).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); + tN_Ll_Details.Add(po1.First()); + //db.Updateable(po1).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); } //} } @@ -1734,8 +1741,15 @@ result.resultCode = 0; simples.Add(result); } + if (tN_Ll_Details.Count()>0) + { - + db.Updateable(tN_Ll_Details).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); + } + if (tN_Inbound_Details.Count()>0) + { + db.Updateable(tN_Inbound_Details).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); + } db.CommitTran(); } @@ -3252,7 +3266,7 @@ } }; List<LLDReturnRoot.ITEM> iTEMs = new List<LLDReturnRoot.ITEM>(); - + var result = new WeiLiResult(); using (var db = new SqlHelper<object>().GetInstance()) @@ -3261,15 +3275,25 @@ //鍒涘缓棰嗘枡鍗� try { + var itemlist = db.Queryable<TN_Material>().ToList(); + + //鍒犻櫎鐨勯泦鍚�+ List<TN_Ll_detail> tN_Ll_Details = new List<TN_Ll_detail>(); + List<TN_Ll_detail> iuptN_Ll_Details = new List<TN_Ll_detail>(); foreach (var itemscddll in model.ROOT.SCDDLL) { LLDReturnRoot.ITEM lLDReturnRoots = new LLDReturnRoot.ITEM(); db.BeginTran(); - + // 棰勫厛缂撳瓨鐗╂枡鏁版嵁锛堜紭鍖栫偣1锛氭壒閲忔煡璇㈠噺灏戞暟鎹簱璁块棶锛�+ + var materialCache = new Dictionary<string, TN_Material>(); #region 鍒涘缓棰嗘枡鍗�- var po = db.Queryable<TN_Ll_Order>().Includes(a => a.Details).Where(s => s.S_NO == itemscddll.LLDH).First(); - + //var po = db.Queryable<TN_Ll_Order>().Includes(a => a.Details).Where(s => s.S_NO == itemscddll.LLDH).First(); + var po = db.Queryable<TN_Ll_Order>() + .Includes(a => a.Details) + .Where(s => s.S_NO == itemscddll.LLDH) + .First(); #endregion //var po = WMSHelper.GetOutboundOrder(model.ROOT.SCDDLL.LLDH); if (po == null) @@ -3280,12 +3304,9 @@ { foreach (var a in itemscddll.ITEM) { - var item = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == a.WLBM).First(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); if (item == null) { - //result.code = 1; - //result.msg = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; - //throw new Exception($"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�); lLDReturnRoots.GC = itemscddll.GC; lLDReturnRoots.LLDH = itemscddll.LLDH; lLDReturnRoots.MSGCODE = 1; @@ -3318,7 +3339,7 @@ N_ITEM_STATE = 1 }); } - if (po.Details.Count()>0) + if (po.Details.Count() > 0) { LLDReturnRoot.ITEM lLDReturnRoot1 = new LLDReturnRoot.ITEM(); lLDReturnRoot1.GC = itemscddll.GC; @@ -3364,7 +3385,7 @@ var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList(); if (po1.Count() == 0) //鏃犲垯鏂板鐗╂枡鏄庣粏 { - var item = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == a.WLBM).First(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); if (item == null) { //result.code = 1; @@ -3407,7 +3428,8 @@ if (po1.Where(s => s.F_ACC_D_QTY < a.XQSL).Count() > 0)//鏇存柊鏁伴噺澶т簬褰撳墠鐗╂枡 鏁伴噺 鏇存柊鍑哄簱鍗� { po1.First().F_QTY = a.XQSL; - db.Updateable(po1).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); + iuptN_Ll_Details.Add(po1.First()); + //db.Updateable(po1).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); } else //杩斿洖澶辫触 { @@ -3434,7 +3456,8 @@ var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList(); if (po1.Count() > 0) //鏃犲垯鏂板鐗╂枡鏄庣粏 { - db.Deleteable<TN_Ll_detail>().Where(it => it.S_ITEM_CODE == a.WLBM && it.S_DO_NO == po1.First().S_DO_NO).ExecuteCommand(); + tN_Ll_Details.AddRange(po1); + // db.Deleteable<TN_Ll_detail>().Where(it => it.S_ITEM_CODE == a.WLBM && it.S_DO_NO == po1.First().S_DO_NO).ExecuteCommand(); } else { @@ -3444,9 +3467,9 @@ lLDReturnRoots.GC = itemscddll.GC; lLDReturnRoots.LLDH = itemscddll.LLDH; lLDReturnRoots.MSGCODE = 1; - lLDReturnRoots.MSGDESP = $"鐗╂枡{a.WLBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎"; + lLDReturnRoots.MSGDESP = $"鍒犻櫎鐨勭墿鏂檣a.WLBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎"; iTEMs.Add(lLDReturnRoots); - break; + continue; } } else @@ -3454,7 +3477,7 @@ var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList(); if (po1.Count() == 0) //鏃犲垯鏂板鐗╂枡鏄庣粏 { - var item = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == a.WLBM).First(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); if (item == null) { //result.code = 1; @@ -3465,7 +3488,7 @@ lLDReturnRoots.MSGCODE = 1; lLDReturnRoots.MSGDESP = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; iTEMs.Add(lLDReturnRoots); - break; + continue; } TN_Ll_detail tN_Outbound_Detail = new TN_Ll_detail { @@ -3495,10 +3518,22 @@ else {//鏇存柊鏁伴噺 鏈墽琛屾椂 鐩存帴鏇存柊鏁伴噺 po1.First().F_QTY = a.XQSL; - db.Updateable(po1).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); + iuptN_Ll_Details.Add(po1.First()); + //db.Updateable(po1).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); } } } + if (tN_Ll_Details.Count()>0) + { + db.Deleteable<TN_Ll_detail>(tN_Ll_Details).ExecuteCommand(); + + } + if (iuptN_Ll_Details.Count() > 0) + { + db.Updateable(iuptN_Ll_Details).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand(); + + } + ; } //娣诲姞鏁版嵁 @@ -3590,7 +3625,7 @@ { //var az = db.Queryable<AZInventory>().ToList(); var po1 = new TN_Outbound_Order { S_NO = WMSHelper.GenerateShippNo(), UNAME = po.UNAME, S_FACTORY = po.S_FACTORY, S_CBZX = po.S_CBZX, S_ZZKM = po.S_ZZKM, S_LRZX = po.S_LRZX, BLDAT = po.BLDAT, BUDAT = po.BUDAT, S_OUT_TYPE = po.S_OUT_TYPE, S_BS_TYPE = po.S_BS_TYPE, S_AREA_CODE = po.S_AREA_CODE, S_BS_NO = po.S_NO }; - + List<TN_Ll_detail> tN_Ll_Details= new List<TN_Ll_detail>(); po1.Details = new List<TN_Outbound_Detail>(); if (po.Details.Count() > 0) { @@ -3626,8 +3661,9 @@ S_ERP_WH_CODE = a.S_ERP_WH_CODE, N_ITEM_STATE = a.N_ITEM_STATE }); - a.F_ACC_D_QTY += a.F_QTY - a.F_ACC_D_QTY; - db.Updateable(a).UpdateColumns(it => new { it.F_ACC_D_QTY }).ExecuteCommand(); + double difference = a.F_QTY - a.F_ACC_D_QTY; + a.F_ACC_D_QTY += difference; + tN_Ll_Details.Add(a); } else { @@ -3637,6 +3673,9 @@ } } + + + db.Updateable(tN_Ll_Details).UpdateColumns(it => new { it.F_ACC_D_QTY }).ExecuteCommand(); if (po1.Details.Count() > 0) { var result1 = db.Insertable<TN_Outbound_Order>(po1).ExecuteCommand() > 0; -- Gitblit v1.9.1