From 076b32f9fa1dc8dc39ca345b2b94a58c8e50040e Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期四, 26 六月 2025 14:40:48 +0800 Subject: [PATCH] 出库 分拣逻辑修改 --- api/WmsSpaHelper.cs | 48 +++++++---- api/ApiModel.cs | 2 process/TaskProcess.cs | 14 +- core/WMSCore.cs | 130 +++++++++++++++++++++++++++++--- 4 files changed, 156 insertions(+), 38 deletions(-) diff --git a/api/ApiModel.cs b/api/ApiModel.cs index 0c80903..34c0be6 100644 --- a/api/ApiModel.cs +++ b/api/ApiModel.cs @@ -385,7 +385,7 @@ public string cntr_code { get; set; }//瀹瑰櫒 public string cntr_type { get; set; }//瀹瑰櫒 - public string start { get; set; }//瀹瑰櫒 + //public string start { get; set; }//瀹瑰櫒 public bool IsHK { get; set; }//瀹瑰櫒 public string arrival_no { get; set; } public List<Mater> MaterList { get; set; } diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs index 6589bf4..05cf173 100644 --- a/api/WmsSpaHelper.cs +++ b/api/WmsSpaHelper.cs @@ -1750,10 +1750,10 @@ using (var db = new SqlHelper<object>().GetInstance()) { Location endloc = new Location(); - var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); + var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); if (hwbd!=null) { - endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE).First(); + endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); if (endloc?.N_LOCK_STATE != 0) { result.resultCode = 3; @@ -2025,10 +2025,10 @@ if (!string.IsNullOrEmpty(model.cntr_code)) { - var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); + var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); if (hwbd!=null) { - end = db.Queryable<Location>().Where(s => s.S_CODE == hwbd.S_LOC_CODE).First(); + end = db.Queryable<Location>().Where(s => s.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); } else { @@ -2127,16 +2127,25 @@ { var result = new SimpleResult(); - // var db = new SqlHelper<object>().GetInstance(); using (var db = new SqlHelper<object>().GetInstance()) { try { - - - result.resultMsg = "鎴愬姛"; + var start = ""; + var startloc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); + if (startloc!=null) + { + start = startloc.S_LOC_CODE; + } + else + { + result.resultMsg = "鍑哄簱鍗曞彿涓嶈兘涓虹┖"; + result.resultCode = 1; + return result; + } + result.resultMsg = "鎴愬姛"; result.resultCode = 0; if (string.IsNullOrEmpty(model.arrival_no)) { @@ -2159,27 +2168,27 @@ //鏍规嵁涓嶅悓鍑哄簱绫诲瀷 鍥炶皟sap if (po.S_OUT_TYPE == "鍐查攢鍑哄簱") { - result = await CXAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); + result = await CXAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "鍑哄簱")//鏅�鍑哄簱 { LogHelper.Info($"S_OUT_TYPE{po.S_OUT_TYPE}"); - result = await AddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); + result = await AddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "璁″垝澶栧彂鏂欏嚭搴�) { - result = await jhwtlAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); + result = await jhwtlAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "鎴愭湰涓績鍑哄簱") { - result = await CBAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); + result = await CBAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); } //閫氱敤鎺ュ彛 瀵瑰鍣ㄨ揣鍝佺殑鍒犲噺 鍜岀敓鎴愬洖搴撳崟 閮借鐢ㄧ殑鎺ュ彛 - result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, model.start, po.S_OUT_TYPE, model.cntr_type); + result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, start, po.S_OUT_TYPE, model.cntr_type); if (result.resultCode == 1) - { + { return result; } #region 鍗囬檷閲�@@ -2316,9 +2325,10 @@ //鍥炲弬鐗╂枡淇℃伅 List<OutboundRecord> records = new List<OutboundRecord>(); - var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).First(); + var pzlist = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).ToList(); foreach (var item in MaterList) { + var pz=pzlist.Where(s=>s.S_WLBM== item.item_code).FirstOrDefault(); // 鎻掑叆鍒版墭鐩樻槑缁嗚〃 var cntr = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr_code).ToList(); if (cntr.Count() > 0) @@ -2388,10 +2398,12 @@ return result; } Location endloc = new Location(); - var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == cntr_code).First(); + + LogHelper.Info($"鑾峰彇鎵樼洏淇℃伅{cntr_code}瀹瑰櫒"); + var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == cntr_code).First(); if (hwbd != null) { - endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE).First(); + endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); if (endloc?.N_LOCK_STATE != 0) { result.resultCode = 3; @@ -4569,7 +4581,7 @@ } string combinedIds = string.Join(",", po.Details.Select(x => x.N_ROW_NO)); var KEY = WCSHelper.Generate13DigitIds(); - var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).First(); + var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).ToList().FirstOrDefault(); if (s_key != null) { KEY = s_key.S_KEY; diff --git a/core/WMSCore.cs b/core/WMSCore.cs index ac7c71e..8135c9c 100644 --- a/core/WMSCore.cs +++ b/core/WMSCore.cs @@ -34,7 +34,8 @@ //WMSHelper.GetWaitingSortingOrderList(); } - internal static void CheckDistributionCNTROrder() { + internal static void CheckDistributionCNTROrder() + { LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟 "); var db = new SqlHelper<object>().GetInstance(); //鑾峰彇閰嶇洏鍗�@@ -44,17 +45,17 @@ foreach (var item in list) { var lcr = db.Queryable<LocCntrRel>().Where(c => c.S_CNTR_CODE == item.S_CNTR_CODE).First(); - if (lcr!=null) + if (lcr != null) { //璧峰搴撲綅 var startloc = db.Queryable<Location>().Where(it => it.S_CODE == lcr.S_LOC_CODE).First(); - if (startloc != null )//&& + if (startloc != null)//&& { //缁堢偣璐т綅 var endloc = db.Queryable<Location>().Where(it => it.S_AREA_CODE == "AGVXHQ" && it.N_LOCK_STATE == 0 && it.N_CURRENT_NUM == 0).First(); - // var endloc = db.Queryable<Location>().Where(it => it.S_CODE == item.S_END_LOC).First(); - if (endloc != null ) + // var endloc = db.Queryable<Location>().Where(it => it.S_CODE == item.S_END_LOC).First(); + if (endloc != null) { var optask = new WMSTask { @@ -82,9 +83,9 @@ item.N_B_STATE = 2; item.S_B_STATE = "浣滀笟鍚姩"; item.S_SORT_TYPE = "寰呭垎鎷�; - db.Updateable(item).UpdateColumns(it => new { it.S_B_STATE, it.N_B_STATE,it.S_SORT_TYPE }).ExecuteCommand(); + db.Updateable(item).UpdateColumns(it => new { it.S_B_STATE, it.N_B_STATE, it.S_SORT_TYPE }).ExecuteCommand(); - + } } else @@ -95,19 +96,124 @@ } else { - LogHelper.Info($"{item.S_BS_NO}閰嶇洏 搴撳尯{item.S_AREA_CODE}鏃犺揣浣�); + LogHelper.Info($"{item.S_BS_NO}閰嶇洏 搴撳尯{item.S_AREA_CODE}鏃犺揣浣�); } - - } + + } else { LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟瀹瑰櫒鏈粦瀹氳揣浣�); } - + } - + + + } + catch (Exception ex) + { + LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟閿欒 {ex.Message}"); + throw; + } + LogHelper.Info($"鑾峰彇閰嶇洏鏁伴噺 {list.Count}"); + } + + + + internal static void podetailSend() + { + LogHelper.Info($"鑷姩鐢熸垚鍑哄簱浠诲姟 "); + var db = new SqlHelper<object>().GetInstance(); + //鑾峰彇鍏ュ簱鏄庣粏鍗�+ + var list = db.Queryable<TN_Inbound_Detail>().Where(a => a.N_B_STATE == 1).ToList(); + + + + try + { + foreach (var item in list) + { + var cir2 = db.Queryable<CGRels>().Where(a => a.S_ITEM_CODE == item.S_ITEM_CODE).First(); + var S_CNTR_CODE = ""; + if (cir2 != null) + { + S_CNTR_CODE=cir2.S_CNTR_CODE; + } + var lcr = db.Queryable<LocCntrRel>().Where(c => c.S_CNTR_CODE == S_CNTR_CODE).First(); + if (lcr != null) + { + //璧峰搴撲綅 + var startloc = db.Queryable<Location>().Where(it => it.S_CODE == lcr.S_LOC_CODE).First(); + var wsc= db.Queryable<WCSTask>().Where(it => it.S_CODE == lcr.S_LOC_CODE&&it.N_B_STATE<3).First(); + if (wsc!=null) + { + item.N_B_STATE = 2; + db.Updateable(item).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + } + else + { + if (startloc != null)//&& + { + //缁堢偣璐т綅 + var endloc = db.Queryable<Location>().Where(it => it.S_AREA_CODE == "QYQXHQ" && it.N_LOCK_STATE == 0 && it.N_CURRENT_NUM == 0).First(); + + // var endloc = db.Queryable<Location>().Where(it => it.S_CODE == item.S_END_LOC).First(); + if (endloc != null) + { + var optask = new WMSTask + { + S_CODE = WMSHelper.GenerateTaskNo(), + S_START_LOC = startloc.S_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_START_WH = startloc.S_WH_CODE, + S_END_LOC = endloc.S_CODE, + S_END_AREA = endloc.S_AREA_CODE, + S_END_WH = endloc.S_WH_CODE, + S_TYPE = "鍑哄簱鍖�, + N_TYPE = 2, + N_B_STATE = 0, + S_BS_NO = "", + S_CNTR_CODE = S_CNTR_CODE, + S_OP_DEF_NAME = item.S_BS_TYPE + }; + var res = db.Insertable(optask).ExecuteCommand() > 0; + if (res) + { + startloc.N_LOCK_STATE = 2; + startloc.S_LOCK_STATE = "鍑哄簱閿�; + db.Updateable(startloc).UpdateColumns(it => new { it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand(); + LocationHelper.LockLoc(endloc.S_CODE, 1); + item.N_B_STATE = 2; + db.Updateable(item).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + + + } + } + else + { + LogHelper.Info($"{item.S_BS_NO}閰嶇洏 搴撳尯AGVXHQ鏃犵┖璐т綅"); + + } + } + else + { + LogHelper.Info($"{item.S_BS_NO}閰嶇洏 搴撳尯鏃犺揣浣�); + } + } + + + + + } + else + { + LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟瀹瑰櫒鏈粦瀹氳揣浣�); + } + + } + } catch (Exception ex) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index bf342fc..8d0199a 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -766,14 +766,14 @@ dic1.Add("From", start); dic1.Add("To", end); dic1.Add("Func", "0"); - if (mst.S_TYPE.Contains("鍏ュ簱")) - { - dic1.Add("Data", "512"); - } - else - { + //if (mst.S_TYPE.Contains("鍏ュ簱")) + //{ + // dic1.Add("Data", "0"); + //} + //else + //{ dic1.Add("Data", "0"); - } + //} dic1.Add("FRow", "0"); LogHelper.Info($"鎺ㄩ�{start}{end}"); //鍒ゆ柇 -- Gitblit v1.9.1