From 67c7f0449f57933c26d785c277ddcd539c899b25 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期五, 04 七月 2025 17:39:39 +0800 Subject: [PATCH] 出库审核逻辑修改 --- core/WMSCore.cs | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 205 insertions(+), 16 deletions(-) diff --git a/core/WMSCore.cs b/core/WMSCore.cs index 81845a2..78e0e4e 100644 --- a/core/WMSCore.cs +++ b/core/WMSCore.cs @@ -1,4 +1,6 @@ -锘縰sing HH.WCS.Mobox3.pinggao.util; +锘縰sing HH.WCS.Mobox3.pinggao.api; +using HH.WCS.Mobox3.pinggao.models; +using HH.WCS.Mobox3.pinggao.util; using HH.WCS.Mobox3.pinggao.wms; using System; using System.Collections.Generic; @@ -6,6 +8,7 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; +using static HH.WCS.Mobox3.pinggao.api.ApiModel; namespace HH.WCS.Mobox3.pinggao.core { @@ -33,7 +36,52 @@ //WMSHelper.GetWaitingSortingOrderList(); } - internal static void CheckDistributionCNTROrder() { + + //internal static async Task<SimpleResult> SendSap() + //{ + // var result = new SimpleResult(); + // LogHelper.Info($"涓嬪彂sap "); + // var db = new SqlHelper<object>().GetInstance(); + // //鑾峰彇閰嶇洏鍗�+ // var list = db.Queryable<TN_Outbound_Order>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); ; + // try + // { + // foreach (var po in list) { + + // if (po.S_OUT_TYPE == "鍐查攢鍑哄簱") + // { + // result = await WmsSpaHelper.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, start); + // } + // else if (po.S_OUT_TYPE == "璁″垝澶栧彂鏂欏嚭搴�) + // { + // 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, start); + // } + + // } + + + // } + // catch (Exception ex) + // { + // LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟閿欒 {ex.Message}"); + // throw; + // } + // LogHelper.Info($"鑾峰彇閰嶇洏鏁伴噺 {list.Count}"); + //} + + + internal static void CheckDistributionCNTROrder() + { LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟 "); var db = new SqlHelper<object>().GetInstance(); //鑾峰彇閰嶇洏鍗�@@ -43,23 +91,26 @@ 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 yxj = db.Queryable<TN_Outbound_Order>().Where(it => it.S_NO == item.S_BS_NO).First(); + //璧峰搴撲綅 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 { S_CODE = WMSHelper.GenerateTaskNo(), S_START_LOC = item.S_LOC_CODE, S_START_AREA = startloc.S_AREA_CODE, + N_PRIORITY = yxj.N_PRIORITY, S_START_WH = startloc.S_WH_CODE, S_END_LOC = endloc.S_CODE, S_END_AREA = endloc.S_AREA_CODE, @@ -81,30 +132,32 @@ 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) @@ -113,6 +166,117 @@ throw; } LogHelper.Info($"鑾峰彇閰嶇洏鏁伴噺 {list.Count}"); + } + + + + internal static void podetailSend() + { + LogHelper.Info($"鑷姩鐢熸垚鍑哄簱浠诲姟 "); + var db = new SqlHelper<object>().GetInstance(); + //鑾峰彇鍏ュ簱鏄庣粏鍗�+ + var list = db.Queryable<TN_Center_Inbound_Detail>().ToList(); + try + { + foreach (var item in list) + { + bool idadd = true; + var S_CNTR_CODE = ""; + var lcr = db.Queryable<LocCntrRel>() + .InnerJoin<CGRels>((l, c) => l.S_CNTR_CODE == c.S_CNTR_CODE) + .Where((l, c) => c.S_ITEM_CODE == item.S_ITEM_CODE && c.S_CNTR_TYPE == "鍗婃墭") + .OrderByDescending((l, c) => l.T_CREATE) + .Select((l, c) => l).ToList() + .FirstOrDefault(); + S_CNTR_CODE = lcr.S_CNTR_CODE; + 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_CNTR_CODE == S_CNTR_CODE && it.S_TYPE.Contains("鍑哄簱") && 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(); + 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, + N_PRIORITY = 1, + 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(); + var models = db.Queryable<Location>().Where(a => a.S_CODE == endloc.S_CODE).First(); + if (models != null && models.N_LOCK_STATE == 0) + { + models.N_LOCK_STATE = 1; + models.S_LOCK_STATE = Location.GetLockStateStr(1); + res = db.Updateable(models).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0; + } + item.N_B_STATE = 2; + db.Updateable(item).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + + + } + LocationHelper.LockLoc(endloc.S_CODE, 1); + } + else + { + idadd = false; + LogHelper.Info($" 搴撳尯AGVXHQ鏃犵┖璐т綅"); + } + } + else + { + idadd = false; + LogHelper.Info($" 搴撳尯鏃犺揣浣�); + } + } + + } + else + { + idadd = false; + LogHelper.Info($"鐗╂枡{item.S_ITEM_CODE}鏈壘鍒板鍣ㄥ搴旂殑璐т綅淇℃伅锛岃鑱旂郴浜哄伐缁戝畾鍏崇郴"); + } + if (idadd) + { + db.Deleteable(item).ExecuteCommand(); + + } + } + } + catch (Exception ex) + { + LogHelper.Info($"鑷姩鐢熸垚鍑哄簱浠诲姟 {ex.Message}"); + throw; + } + LogHelper.Info($"鑷姩鐢熸垚浜虹墿 {list.Count}"); } /// <summary> /// 閬嶅巻鍒嗘嫞鍗曟槑缁嗗垱寤哄嚭搴撲綔涓�@@ -410,10 +574,10 @@ /// </summary> internal static void Start() { - //LogHelper.Info($"浣滀笟鍚姩 鍒涘缓瀛愪换鍔�); + LogHelper.Info($"浣滀笟鍚姩 鍒涘缓瀛愪换鍔�); var db = new SqlHelper<object>().GetInstance(); List<WMSTask> list = WMSHelper.GetWaitingOperationList(); - //LogHelper.Info($"鑾峰彇浠诲姟鏁版嵁 鏁伴噺{list.Count}"); + LogHelper.Info($"鑾峰彇浠诲姟鏁版嵁 鏁伴噺{list.Count}"); if (list.Count > 0) { //濡傛灉鏄嚭搴撶殑浣滀笟閿佸畾鎵樼洏鐨勬椂鍊欏凡缁忔槑纭捣鐐逛簡锛屽鏋滃彂璐у崟鎴栧垎鎷e崟鎸囧畾浜嗙粓鐐癸紝 @@ -422,6 +586,13 @@ { try { + LogHelper.Info($"鑾峰彇浠诲姟鐘舵� {a.N_B_STATE}"); + var WCSTasks = db.Queryable<WCSTask>().Where(it => it.S_OP_CODE == a.S_CODE).First(); + if (WCSTasks!=null) + { + continue; + } + if (a.N_TYPE == 1) { //鏌ヨ鎵樼洏鎵�湪浣嶇疆 @@ -449,6 +620,7 @@ S_END_AREA = endinfo.S_AREA_CODE, S_END_WH = endinfo.S_WH_CODE, S_SCHEDULE_TYPE = "NDC", + N_PRIORITY = a.N_PRIORITY, //N_CNTR_COUNT = 1, S_CNTR_CODE = a.S_CNTR_CODE, }; @@ -474,7 +646,7 @@ { WMSHelper.UpdateTaskEnd(a); LocationHelper.LockLoc(end.S_CODE, 1); - + var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == a.S_START_LOC).First(); @@ -507,6 +679,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