From 076b32f9fa1dc8dc39ca345b2b94a58c8e50040e Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期四, 26 六月 2025 14:40:48 +0800 Subject: [PATCH] 出库 分拣逻辑修改 --- core/WMSCore.cs | 130 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 118 insertions(+), 12 deletions(-) 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) -- Gitblit v1.9.1