From fb5c3be6709ba89053dc75c9fabfb94cb89c6be1 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期三, 18 六月 2025 16:14:18 +0800 Subject: [PATCH] 修改重点逻辑修改 定时充电优化 --- api/WmsSpaHelper.cs | 142 ++++++++++++++++++++++++++++++++--------------- 1 files changed, 96 insertions(+), 46 deletions(-) diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs index 2a8c992..4a2f148 100644 --- a/api/WmsSpaHelper.cs +++ b/api/WmsSpaHelper.cs @@ -56,7 +56,7 @@ bool panduan = true; var db = new SqlHelper<object>().GetInstance(); - var po = db.Queryable<TN_Material_KC>().Where(a => a.S_ITEM_CODE == ItemCode).First(); + var po = db.Queryable<TN_Material_KC>().Where(a => a.S_ITEM_CODE== ItemCode).First(); var po1 = db.Queryable<CntrItemRel>().Where(a => a.S_ITEM_CODE == ItemCode).First(); if (po != null) @@ -893,8 +893,8 @@ db.BeginTran(); List<WLReturnRoot.ITEM> list = new List<WLReturnRoot.ITEM>(); - - var itemCodes = model.ROOT.ITEM.Select(item => item.WLBM).ToList(); + List<TN_Material> tN_Materials = new List<TN_Material>(); + var itemCodes = model.ROOT.ITEM.Select(item => item.WLBM).Distinct().ToList(); var itemlist = db.Queryable<TN_Material>() .Where(it => itemCodes.Contains(it.S_ITEM_CODE)) .ToList(); @@ -903,10 +903,8 @@ { try { - var result = new WLReturnRoot.ITEM(); - - var materlist = itemlist.Where(it => it.S_ITEM_CODE == item.WLBM).First(); + var materlist = itemlist.Where(it => it.S_ITEM_CODE == item.WLBM).FirstOrDefault(); if (materlist == null) { TN_Material tN_Material = new TN_Material(); @@ -923,7 +921,8 @@ tN_Material.S_CPZ = item.CPZ; tN_Material.S_CPZMS = item.CPZMS; tN_Material.S_ITEM_NAME = item.VTEXT; - db.Insertable<TN_Material>(tN_Material).ExecuteCommand(); + tN_Materials.Add(tN_Material); + //db.Insertable<TN_Material>(tN_Material).ExecuteCommand(); result.MSGDESP = "鎴愬姛"; result.MSGCODE = 0; result.GCBM = item.GCBM; @@ -966,6 +965,24 @@ } } response.ROOT.ITEM = list; + if (tN_Materials.Count()>0) + { + db.Insertable<TN_Material>(tN_Materials).ExecuteCommand(); + //using (var bulkCopy = new SqlBulkCopy(util.Settings.SqlServer)) + //{ + // bulkCopy.DestinationTableName = "TN_Material"; + // bulkCopy.BatchSize = 500; + // var dataTable = new DataTable(); + // dataTable = list.ToDataTable(); + // // 娣诲姞鍒楁槧灏勶紙纭繚鍚嶇О鍖归厤锛�+ // foreach (DataColumn col in dataTable.Columns) + // { + // bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName); + // } + // bulkCopy.WriteToServer(tN_Materials.ToDataTable()); + //} + } + //db.Insertable<TN_Material>(list).ExecuteCommand(); db.CommitTran(); @@ -1878,11 +1895,16 @@ } else if (!string.IsNullOrEmpty(model.item_code)) { - var starts = db.Queryable<CntrItemRel>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault(); - if (starts!=null) + var khsta= db.Queryable<CGRels>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault(); + + + + + + if (khsta != null) { - LogHelper.Info($"starts{starts}"); - var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == starts.S_CNTR_CODE).ToList().FirstOrDefault(); + LogHelper.Info($"starts{khsta}"); + var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == khsta.S_CNTR_CODE).ToList().FirstOrDefault(); LogHelper.Info($"starts1{starts12}"); start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE == starts12.S_LOC_CODE).ToList().FirstOrDefault(); LogHelper.Info($"starts2{start}"); @@ -1891,17 +1913,27 @@ } else { - var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray(); - var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray(); - start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault(); + var starts = db.Queryable<CntrItemRel>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault(); + + if (starts!=null) + { + LogHelper.Info($"{model.cntr_code}瀹瑰櫒璐у搧瀛樺湪璇ョ墿鏂欙紝璇烽厤缃墿鏂欏鍣�); + result.resultMsg = $"瀹瑰櫒璐у搧瀛樺湪璇ョ墿鏂欙紝璇烽厤缃墿鏂欏鍣�; + result.resultCode = 1; + return result; + + } + else + { + var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray(); + var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray(); + start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault(); + var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault(); - - - var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault(); - - - model.cntr_code = starts12?.S_CNTR_CODE; + model.cntr_code = starts12?.S_CNTR_CODE; + } + } } @@ -3126,6 +3158,23 @@ #endregion if (cntr != null) { + #region 瀹㈡埛鎸囧畾瀹瑰櫒琛�+ var cir2 = db.Queryable<CGRels>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code && a.N_BS_ROW_NO == item.N_ROW_NO ).First(); + + if (cir2 != null) + { + cir2.S_CNTR_TYPE = S_CNTR_TYPE; + db.Updateable(cir2).UpdateColumns(it => new { it.S_CNTR_TYPE }).ExecuteCommand(); + } + else + { + //2.鎻掑叆鏂扮殑瀹瑰櫒鐗╂枡淇℃伅锛堝鍣ㄥ彿涓嶅彉S_SERIAL_NO = item.S_SERIAL_NO,锛�+ cir2 = new CGRels { S_CNTR_TYPE = S_CNTR_TYPE, S_CNTR_CODE = cntr.S_CODE.Trim(), N_BS_ROW_NO = item.N_ROW_NO, S_ITEM_CODE = item.item_code }; + db.Insertable<CGRels>(cir2).ExecuteCommand(); + } + #endregion + + #region 1.鏌ョ湅鏄惁鏈夌浉鍚岀墿鏂欐壒娆$殑淇℃伅锛屽鏋滄湁瑕佺疮鍔狅紝涓嶅悓鎵规鐨勫彲浠ュ垎寮� var cir = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code && a.S_BATCH_NO == item.S_BATCH_NO && a.N_BS_ROW_NO == item.N_ROW_NO && a.S_BS_NO == item.arrival_no).First(); if (cir != null) @@ -3235,7 +3284,7 @@ S_DO_NO = itemscddll.LLDH, S_AREA_CODE = "HJQ", N_ROW_NO = "", - S_ITEM_CODE = a.WLBM, + S_ITEM_CODE = a.ZJBM, S_ITEM_NAME = "", F_QTY = a.XQSL, S_ZJBM = a.ZJBM, @@ -3337,7 +3386,7 @@ db.BeginTran(); foreach (var itemscddll in model.ROOT.SCDDLL) { - var wlbmList = itemscddll.ITEM.Select(x => x.WLBM).Distinct().ToList(); + var wlbmList = itemscddll.ITEM.Select(x => x.ZJBM).Distinct().ToList(); var itemlist = db.Queryable<TN_Material>() .Where(it => wlbmList.Contains(it.S_ITEM_CODE)) // 浣跨敤 IN 鏌ヨ .ToList(); @@ -3360,13 +3409,13 @@ { foreach (var a in itemscddll.ITEM) { - var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault(); if (item == null) { lLDReturnRoots.GC = itemscddll.GC; lLDReturnRoots.LLDH = itemscddll.LLDH; lLDReturnRoots.MSGCODE = 1; - lLDReturnRoots.MSGDESP = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; + lLDReturnRoots.MSGDESP = $"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; iTEMs.Add(lLDReturnRoots); continue; @@ -3376,7 +3425,7 @@ S_DO_NO = itemscddll.LLDH, S_AREA_CODE = "HJQ", N_ROW_NO = "", - S_ITEM_CODE = a.WLBM, + S_ITEM_CODE = a.ZJBM, S_ITEM_NAME = item?.S_ITEM_NAME, F_QTY = a.XQSL, S_ZJBM = a.ZJBM, @@ -3451,21 +3500,21 @@ lLDReturnRoots.GC = itemscddll.GC; lLDReturnRoots.LLDH = itemscddll.LLDH; lLDReturnRoots.MSGCODE = 1; - lLDReturnRoots.MSGDESP = $"鎵ц涓鏂欏崟锛岀墿鏂檣a.WLBM}鐗╂枡涓嶅厑璁稿垹闄�; + lLDReturnRoots.MSGDESP = $"鎵ц涓鏂欏崟锛岀墿鏂檣a.ZJBM}鐗╂枡涓嶅厑璁稿垹闄�; iTEMs.Add(lLDReturnRoots); continue; } - var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList(); + var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).ToList(); if (po1.Count() == 0) //鏃犲垯鏂板鐗╂枡鏄庣粏 { - var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault(); if (item == null) { ; lLDReturnRoots.GC = itemscddll.GC; lLDReturnRoots.LLDH = itemscddll.LLDH; lLDReturnRoots.MSGCODE = 1; - lLDReturnRoots.MSGDESP = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; + lLDReturnRoots.MSGDESP = $"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; iTEMs.Add(lLDReturnRoots); continue; } @@ -3474,7 +3523,7 @@ S_DO_NO = itemscddll.LLDH, S_AREA_CODE = "HJQ", N_ROW_NO = "", - S_ITEM_CODE = a.WLBM, + S_ITEM_CODE = a.ZJBM, S_ITEM_NAME = item.S_ITEM_NAME, F_QTY = a.XQSL, S_ZJBM = a.ZJBM, @@ -3507,7 +3556,7 @@ lLDReturnRoots.GC = itemscddll.GC; lLDReturnRoots.LLDH = itemscddll.LLDH; lLDReturnRoots.MSGCODE = 1; - lLDReturnRoots.MSGDESP = $"鏇存柊澶辫触锛屾洿鏂版暟閲忓繀椤诲ぇ浜庡綋鍓嶇墿鏂欐暟閲弡a.WLBM}"; + lLDReturnRoots.MSGDESP = $"鏇存柊澶辫触锛屾洿鏂版暟閲忓繀椤诲ぇ浜庡綋鍓嶇墿鏂欐暟閲弡a.ZJBM}"; iTEMs.Add(lLDReturnRoots); continue; } @@ -3521,40 +3570,40 @@ { if (a.LLDSCBS == "Y")//濡傛灉鏄垹闄ゆ爣璇嗗垯鍒犻櫎褰撳墠鎵�睘鍑哄簱鍗曟槑缁�涓嶆槸鍒犻櫎鏍囪 鍒欒繘琛屽鏀瑰垽鏂� { - var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).FirstOrDefault(); + var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).FirstOrDefault(); if (po1 != null) //鏃犲垯鏂板鐗╂枡鏄庣粏 { tN_Ll_Details.Add(po1); - // db.Deleteable<TN_Ll_detail>().Where(it => it.S_ITEM_CODE == a.WLBM && it.S_DO_NO == po1.First().S_DO_NO).ExecuteCommand(); + // db.Deleteable<TN_Ll_detail>().Where(it => it.S_ITEM_CODE == a.ZJBM && it.S_DO_NO == po1.First().S_DO_NO).ExecuteCommand(); } else { //result.code = 1; - //result.msg = $"鐗╂枡{a.WLBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎"; - //throw new Exception($"鐗╂枡{a.WLBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎"); + //result.msg = $"鐗╂枡{a.ZJBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎"; + //throw new Exception($"鐗╂枡{a.ZJBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎"); lLDReturnRoots.GC = itemscddll.GC; lLDReturnRoots.LLDH = itemscddll.LLDH; lLDReturnRoots.MSGCODE = 1; - lLDReturnRoots.MSGDESP = $"鍒犻櫎鐨勭墿鏂檣a.WLBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎"; + lLDReturnRoots.MSGDESP = $"鍒犻櫎鐨勭墿鏂檣a.ZJBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎"; iTEMs.Add(lLDReturnRoots); continue; } } else { - var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList(); + var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).ToList(); if (po1.Count() == 0) //鏃犲垯鏂板鐗╂枡鏄庣粏 { - var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault(); + var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault(); if (item == null) { //result.code = 1; - //result.msg = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; - //throw new Exception($"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�); + //result.msg = $"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; + //throw new Exception($"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�); lLDReturnRoots.GC = itemscddll.GC; lLDReturnRoots.LLDH = itemscddll.LLDH; lLDReturnRoots.MSGCODE = 1; - lLDReturnRoots.MSGDESP = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; + lLDReturnRoots.MSGDESP = $"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�; iTEMs.Add(lLDReturnRoots); continue; } @@ -3563,7 +3612,7 @@ S_DO_NO = itemscddll.LLDH, S_AREA_CODE = "HJQ", N_ROW_NO = "", - S_ITEM_CODE = a.WLBM, + S_ITEM_CODE = a.ZJBM, S_ITEM_NAME = item.S_ITEM_NAME, F_QTY = a.XQSL, S_ZJBM = a.ZJBM, @@ -3694,10 +3743,11 @@ 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>(); - var list = po.Details.Where(s => s.F_QTY > s.F_ACC_D_QTY).Select(s => s.S_ITEM_CODE).Distinct().ToArray(); - var Sitemlist = db.Queryable<CntrItemRel>().Where(s => list.Contains(s.S_ITEM_CODE)).Select(s => s.S_ITEM_CODE).ToArray(); - - po.Details = po.Details.Where(s => s.F_QTY > s.F_ACC_D_QTY && Sitemlist.Contains(s.S_ITEM_CODE)).ToList(); + var list = po.Details.Where(s => s.F_QTY > s.F_ACC_D_QTY&&s.S_ERP_WH_CODE=="4004").Select(s => s.S_ITEM_CODE).Distinct().ToArray(); + + var Sitemlist = db.Queryable<CntrItemRel>().Where(s => list.Contains(s.S_ITEM_CODE)).Select(s => s.S_ITEM_CODE).ToArray().Select(x => x.Trim()).ToArray(); ; + + po.Details = po.Details.Where(s => Sitemlist.Contains(s.S_ITEM_CODE)).ToList(); if (po.Details.Count() > 0) { -- Gitblit v1.9.1