From e0d89637030791ce1e7dd46ca5fdec9979977960 Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期三, 11 六月 2025 17:28:41 +0800 Subject: [PATCH] 印尼佳通-硫化流程出入库流程开发 --- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 105 insertions(+), 5 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs index ff5032e..27a5a5f 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs @@ -4,6 +4,7 @@ using HH.WCS.Mobox3.YNJT_BZP.process; using HH.WCS.Mobox3.YNJT_BZP.util; using HH.WCS.Mobox3.YNJT_BZP.wms; +using MySqlX.XDevAPI.Common; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -27,16 +28,115 @@ /// </summary> public static void AutoEmptyTrayOutStock() { - Location endLoc = LocationHelper.GetLoc(Settings.baseTrayOutBufferLoc); // 姣嶆嫋鍑哄簱鎺ラ┏浣�- if (endLoc != null && endLoc.N_CURRENT_NUM == 0 && endLoc.N_LOCK_STATE == 0) + foreach (var item in Settings.baseTrayBufferLocList) { - var cst = WCSHelper.GetTaskByStartAndEnd(endLoc.S_CODE); - if (cst == null) + Location endLoc = LocationHelper.GetLoc(item.bufferOutLoc); // 姣嶆嫋鍑哄簱鎺ラ┏浣�+ if (endLoc != null && endLoc.N_CURRENT_NUM == 0 && endLoc.N_LOCK_STATE == 0) { - ApiHelper.baseTrayOutStockAgv(endLoc.S_CODE, null); + var cst = WCSHelper.GetTaskByStartAndEnd(endLoc.S_CODE); + if (cst == null) + { + ApiHelper.baseTrayOutStock(endLoc.S_CODE, null, 0); + } } } } + /// <summary> + /// 缂撳瓨绌烘墭鑷姩鍑哄簱 + /// </summary> + public static void BufferEmptyTrayOutStock() + { + var emptyTrayBuffers = WMSHelper.getEmptyTrayBufferList(); + foreach (var buffer in emptyTrayBuffers) + { + var dateTime = DateTime.Now.AddMinutes(-1); + if (buffer.T_CREATE < dateTime) + { + Location startLoc = WMSHelper.GetEmptyTrayStartLoc(buffer.TRAY_TYPE); + Location middleLoc = null; + string cntrCode = ""; + string descCntrCode = ""; + if (startLoc != null) + { + // 鏌ヨ璐т綅瀹瑰櫒缂栫爜 銆佺洰鏍囧鍣ㄧ紪鐮�+ var locCntrRels = LocationHelper.GetLocCntrRel(startLoc.S_CODE); + if (locCntrRels.Count > 0) + { + foreach (var item in locCntrRels) + { + var container = ContainerHelper.GetCntr(item.S_CNTR_CODE); + if (buffer.TRAY_TYPE == container.N_TYPE) + { + descCntrCode = item.S_CNTR_CODE; + } + cntrCode = cntrCode + "," + item.S_CNTR_CODE; + } + cntrCode = cntrCode.Substring(1, cntrCode.Length - 1); + } + + var locCodes = Settings.getAgvJBLocList( startLoc.N_ROADWAY, 2); + if (locCodes.Count > 0) + { + middleLoc = LocationHelper.GetLoc(locCodes[0]); + } + } + + Location endLoc = LocationHelper.GetLoc(buffer.END_LOC); + + if (startLoc != null && endLoc != null) + { + var wmsTask = new WMSTask() + { + S_CNTR_CODE = descCntrCode, + S_CODE = WMSHelper.GenerateTaskNo(), + S_START_LOC = startLoc.S_CODE, + S_START_AREA = startLoc.S_AREA_CODE, + S_END_LOC = endLoc.S_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_TYPE = "绌烘墭鍑哄簱浠诲姟", + S_OP_DEF_CODE = buffer.TASK_NO, + S_OP_DEF_NAME = "绌烘墭鍑哄簱浠诲姟", + N_PRIORITY = buffer.PRIORITY, + T_START_TIME = DateTime.Now, + }; + + if (WMSHelper.CreateWmsTask(wmsTask)) + { + // 鍒涘缓涓�鍑哄簱浠诲姟 + WCSTask wcsTask = new WCSTask() + { + S_OP_NAME = wmsTask.S_OP_DEF_NAME, + S_OP_CODE = wmsTask.S_CODE, + S_CODE = WCSHelper.GenerateTaskNo(), + S_CNTR_CODE = cntrCode, + S_TYPE = wmsTask.S_TYPE + "-1", + S_START_LOC = startLoc.S_CODE, + S_START_AREA = startLoc.S_AREA_CODE, + S_END_LOC = middleLoc.S_CODE, + S_END_AREA = middleLoc.S_AREA_CODE, + S_SCHEDULE_TYPE = "WCS", + N_PRIORITY = 1, + T_START_TIME = DateTime.Now, + }; + + if (WCSHelper.CreateTask(wcsTask)) + { + // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�+ LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); + LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + + // 鏇存柊浣滀笟浠诲姟鐘舵� + wmsTask.N_B_STATE = 1; + WMSHelper.UpdateTaskState(wmsTask); + + buffer.IS_CREATED = "Y"; + WMSHelper.updateEmptyTrayBuffer(buffer); + } + } + } + } + } + } } } -- Gitblit v1.9.1