From 3a3c5f5711a57439f34e772313fcbb18ba7885bc Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期一, 14 七月 2025 10:31:15 +0800 Subject: [PATCH] 优化 --- core/WMSCore.cs | 129 ++++++++++++++++++++++++++++++++----------- 1 files changed, 96 insertions(+), 33 deletions(-) diff --git a/core/WMSCore.cs b/core/WMSCore.cs index 8135c9c..78e0e4e 100644 --- a/core/WMSCore.cs +++ b/core/WMSCore.cs @@ -1,4 +1,5 @@ -锘縰sing HH.WCS.Mobox3.pinggao.models; +锘縰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; @@ -7,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 { @@ -34,6 +36,50 @@ //WMSHelper.GetWaitingSortingOrderList(); } + + //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($"閰嶇洏鐢熸垚浣滀笟 "); @@ -47,6 +93,8 @@ var lcr = db.Queryable<LocCntrRel>().Where(c => c.S_CNTR_CODE == item.S_CNTR_CODE).First(); 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)//&& @@ -62,6 +110,7 @@ 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, @@ -120,37 +169,36 @@ } - + 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(); - - - + var list = db.Queryable<TN_Center_Inbound_Detail>().ToList(); try { foreach (var item in list) { - var cir2 = db.Queryable<CGRels>().Where(a => a.S_ITEM_CODE == item.S_ITEM_CODE).First(); + bool idadd = true; 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(); + 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_CODE == lcr.S_LOC_CODE&&it.N_B_STATE<3).First(); - if (wsc!=null) + 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(); + db.Updateable(item).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); } else { @@ -158,8 +206,6 @@ { //缁堢偣璐т綅 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 @@ -171,7 +217,8 @@ S_END_LOC = endloc.S_CODE, S_END_AREA = endloc.S_AREA_CODE, S_END_WH = endloc.S_WH_CODE, - S_TYPE = "鍑哄簱鍖�, + N_PRIORITY = 1, + S_TYPE = "鍗婃墭鍑哄簱", N_TYPE = 2, N_B_STATE = 0, S_BS_NO = "", @@ -184,44 +231,52 @@ 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); + 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 { - LogHelper.Info($"{item.S_BS_NO}閰嶇洏 搴撳尯AGVXHQ鏃犵┖璐т綅"); - + idadd = false; + LogHelper.Info($" 搴撳尯AGVXHQ鏃犵┖璐т綅"); } } else { - LogHelper.Info($"{item.S_BS_NO}閰嶇洏 搴撳尯鏃犺揣浣�); + idadd = false; + LogHelper.Info($" 搴撳尯鏃犺揣浣�); } } - - - } else { - LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟瀹瑰櫒鏈粦瀹氳揣浣�); + idadd = false; + LogHelper.Info($"鐗╂枡{item.S_ITEM_CODE}鏈壘鍒板鍣ㄥ搴旂殑璐т綅淇℃伅锛岃鑱旂郴浜哄伐缁戝畾鍏崇郴"); } + if (idadd) + { + db.Deleteable(item).ExecuteCommand(); + } } - - } catch (Exception ex) { - LogHelper.Info($"閰嶇洏鐢熸垚浣滀笟閿欒 {ex.Message}"); + LogHelper.Info($"鑷姩鐢熸垚鍑哄簱浠诲姟 {ex.Message}"); throw; } - LogHelper.Info($"鑾峰彇閰嶇洏鏁伴噺 {list.Count}"); + LogHelper.Info($"鑷姩鐢熸垚浜虹墿 {list.Count}"); } /// <summary> /// 閬嶅巻鍒嗘嫞鍗曟槑缁嗗垱寤哄嚭搴撲綔涓�@@ -519,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崟鎸囧畾浜嗙粓鐐癸紝 @@ -531,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) { //鏌ヨ鎵樼洏鎵�湪浣嶇疆 @@ -558,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, }; @@ -583,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(); -- Gitblit v1.9.1