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 | 152 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 139 insertions(+), 13 deletions(-) diff --git a/core/WMSCore.cs b/core/WMSCore.cs index 81845a2..8135c9c 100644 --- a/core/WMSCore.cs +++ b/core/WMSCore.cs @@ -1,4 +1,5 @@ -锘縰sing HH.WCS.Mobox3.pinggao.util; +锘縰sing HH.WCS.Mobox3.pinggao.models; +using HH.WCS.Mobox3.pinggao.util; using HH.WCS.Mobox3.pinggao.wms; using System; using System.Collections.Generic; @@ -33,7 +34,8 @@ //WMSHelper.GetWaitingSortingOrderList(); } - internal static void CheckDistributionCNTROrder() { + internal static void CheckDistributionCNTROrder() + { LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟 "); var db = new SqlHelper<object>().GetInstance(); //鑾峰彇閰嶇洏鍗�@@ -43,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 { @@ -81,30 +83,137 @@ 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 { - LogHelper.Info($"{item.S_BS_NO}閰嶇洏 搴撳尯{item.S_AREA_CODE}璐т綅鎵句笉鍒�); + LogHelper.Info($"{item.S_BS_NO}閰嶇洏 搴撳尯AGVXHQ鏃犵┖璐т綅"); } } 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) @@ -507,6 +616,23 @@ a.S_B_STATE = "鎵ц"; WMSHelper.UpdateTaskState(a); } + + var detail = db.Queryable<TN_Distribution_CNTR_Detail>().Where(s => s.S_DC_NO == a.S_BS_NO).ToList(); + List<TN_DPRECORD> listdp=new List<TN_DPRECORD>(); + foreach (var item in detail) + { + TN_DPRECORD tN_DPRECORD = new TN_DPRECORD(); + tN_DPRECORD.S_WLBM=item.S_ITEM_CODE; + tN_DPRECORD.S_WLMC = item.S_ITEM_NAME; + tN_DPRECORD.S_NO= wcsTask.S_CODE; + tN_DPRECORD.N_COUNT= item.F_QTY; + tN_DPRECORD.S_LOCATION= end.S_CODE; + listdp.Add(tN_DPRECORD); + } + if (listdp.Count()>0) + { + db.Insertable<TN_DPRECORD>(listdp).ExecuteCommand(); + } } else { -- Gitblit v1.9.1