From cd40ada4efe0d0a4036714cf597ce170b8cf5a54 Mon Sep 17 00:00:00 2001 From: pengmn <pmn@HanInfo> Date: 星期五, 30 五月 2025 17:29:17 +0800 Subject: [PATCH] 测试 --- HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs | 80 +++++++++++++++++++++++---------------- 1 files changed, 47 insertions(+), 33 deletions(-) diff --git a/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs b/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs index 724875c..d86ece3 100644 --- a/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs @@ -235,7 +235,7 @@ return db.Updateable<WMSTask>(a).UpdateColumns(it => new { it.S_END_LOC, it.T_MODIFY }).ExecuteCommand() > 0; } - + internal static void CreateSortingOrderDetail(string so_no) @@ -1064,16 +1064,17 @@ // 闃舵1: 鏍囪鏈潵闇�淇濈暀鐨勮揣浣� MarkReservedLocations(outbound); var tasks = new List<WCSTask>(); + var outboundLocCodes = outbound.Select(o => o.locCode).ToHashSet(); foreach (var outboundItem in outbound) { // 1. 鏌ユ壘鐩爣璐т綅 var targetLoc = FindTargetLocation(outboundItem.locCode); if (targetLoc == null) continue; var wmsTask = WMSHelper.GetWmsTaskList("鎵ц", outboundItem.trayCode); - if (wmsTask == null) + if (wmsTask != null) { //LogHelper.Info($"鏈煡璇㈠埌鍦ㄦ墽琛屼腑鐨勪綔涓�{outboundItem.trayCode}锛�, "鏉哀"); - outboundItem.opCode = ""; + outboundItem.opCode = wmsTask.S_CODE; } // 2. 澶勭悊鍙屾繁浣嶉�杈戯紙绗�鎺掓垨绗�鎺掞級 @@ -1087,36 +1088,46 @@ //濡傛灉璐т綅宸叉弧锛屽垯鐢熸垚绉诲簱浠诲姟 if (outerLoc.N_CURRENT_NUM == outerLoc.N_CAPACITY) { - // 浼樺厛绉诲埌娣变綅锛屽叾娆″渚�- var bestTarget = FindBestRelocationTarget(outerLoc); - if (bestTarget != null) + if (outboundLocCodes.Contains(outerLoc.S_CODE)) { - //璁$畻鍒颁簡澶栦晶鎶婂渚х殑璐т綅閿佸畾 - _allLocations - .Where(x => x.S_CODE == outerLoc.S_CODE) - .ToList() - .ForEach(x => x.N_LOCK_STATE = 3); - var trayCode = ContainerHelper.GetLocCntr(outerLoc.S_CODE); - tasks.Add(new WCSTask - { - S_CODE = GenerateTaskNo(), - S_START_AREA = outerLoc.S_AREA_CODE, - S_END_AREA = bestTarget.S_AREA_CODE, - S_START_LOC = outerLoc.S_CODE, - S_END_LOC = bestTarget.S_CODE, - S_TYPE = "娣变綅绉诲簱", - S_OP_CODE = wmsTask.S_CODE, - N_PRIORITY = 1, - N_SCHEDULE_TYPE = 1, - N_B_STATE = 0, - S_B_STATE = WCSTask.GetStateStr(0), - S_CNTR_CODE = trayCode.S_CNTR_CODE, - N_START_LAYER = 1, - N_END_LAYER = 1, - N_CNTR_COUNT = 1 - }); + // 鏂规1锛氬悎骞朵换鍔★紙鐩存帴鍑哄簱澶栦晶璐т綅锛�+ tasks.Add(CreateOutboundTask(outerLoc, + outbound.First(o => o.locCode == outerLoc.S_CODE),"1")); } - else continue; + else + { + // 浼樺厛绉诲埌娣变綅锛屽叾娆″渚�+ var bestTarget = FindBestRelocationTarget(outerLoc); + if (bestTarget != null) + { + //璁$畻鍒颁簡澶栦晶鎶婂渚х殑璐т綅閿佸畾 + _allLocations + .Where(x => x.S_CODE == outerLoc.S_CODE) + .ToList() + .ForEach(x => x.N_LOCK_STATE = 3); + var trayCode = ContainerHelper.GetLocCntr(outerLoc.S_CODE); + tasks.Add(new WCSTask + { + S_CODE = GenerateTaskNo(), + S_START_AREA = outerLoc.S_AREA_CODE, + S_END_AREA = bestTarget.S_AREA_CODE, + S_START_LOC = outerLoc.S_CODE, + S_END_LOC = bestTarget.S_CODE, + S_TYPE = "娣变綅绉诲簱", + S_OP_CODE = outboundItem.opCode, + N_PRIORITY = 1, + N_SCHEDULE_TYPE = 1, + N_B_STATE = 0, + S_B_STATE = WCSTask.GetStateStr(0), + S_CNTR_CODE = trayCode.S_CNTR_CODE, + N_START_LAYER = 1, + N_END_LAYER = 1, + N_CNTR_COUNT = 1 + }); + } + else continue; + } + } } else @@ -1168,7 +1179,7 @@ .FirstOrDefault(); } - private WCSTask CreateOutboundTask(Location loc, Outbound outbound) => + private WCSTask CreateOutboundTask(Location loc, Outbound outbound,string priority = "") => new WCSTask { S_CODE = GenerateTaskNo(), @@ -1178,7 +1189,7 @@ S_END_LOC = outbound.endBit, S_TYPE = outbound.taskType, S_OP_CODE = outbound.opCode, - N_PRIORITY = 0, + N_PRIORITY = string.IsNullOrEmpty(priority) ? 0 : int.Parse(priority), N_SCHEDULE_TYPE = 1, N_B_STATE = 0, S_B_STATE = WCSTask.GetStateStr(0), @@ -1228,6 +1239,9 @@ } } + /// <summary> + /// 绌烘墭鍑哄簱灏佽绠楁硶 + /// </summary> public class EmptyPalletOutboundScheduler { private readonly List<Location> _allLocations; -- Gitblit v1.9.1