From b7308bba3d7ffad271ce7fc7a93c8c45d76be87d Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期五, 13 六月 2025 17:21:03 +0800 Subject: [PATCH] 优化印尼佳通-硫化胚胎出入库逻辑策略优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs | 133 +++++++++++++++++++------------------------- 1 files changed, 57 insertions(+), 76 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs index 70d1b56..889f4cc 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs @@ -23,55 +23,67 @@ /// </summary> internal class Monitor { - + /// <summary> - /// 鐩戝惉MES浠诲姟涓棿琛�- /// 1.閽㈠寘婊℃枡涓嬬嚎 - /// 2.鎴愬瀷鏈哄彨鏂�+ /// 鐩戝惉閽㈠寘婊℃枡涓嬬嚎MES浠诲姟 /// </summary> - public static void MonitorMesTask() { - LogHelper.Info("鐩戝惉MES浠诲姟涓棿琛�, "WMS"); + public static void MonitorGBOffLineMesTask() + { var mesTaskList = WMSHelper.GetLjMesTaskList("PENDING"); - foreach (var mesTask in mesTaskList) + if (mesTaskList.Count > 0) { - // 1.閽㈠寘婊℃枡涓嬬嚎 - List<string> lineLoclist = new List<string>() { }; - lineLoclist.Add("GBJTW-01"); - lineLoclist.Add("GBJTW-02"); - if (mesTask.MSG_TYPE == "1" && mesTask.PALLET_TYPE == "7" && lineLoclist.Contains(mesTask.PALLET_ID)) + mesTaskList = mesTaskList.Where(a => a.MSG_TYPE == "1" && a.PALLET_TYPE == "7").ToList(); + if (mesTaskList.Count > 0) { - LogHelper.Info("MES閽㈠寘婊℃枡涓嬬嚎浠诲姟", "WMS"); - OffLineRequest request = new OffLineRequest(){ loc = mesTask.POSITION_ID, cntrNo = mesTask.PALLET_ID}; - ApiHelper.offLineProcess(request); - } - - // 2.鎴愭柊鏈哄彨鏂�- if (mesTask.MSG_TYPE == "0") { - var lineSideLoc = WMSHelper.GetLineSideLoc(mesTask.POSITION_ID); - if (lineSideLoc != null ) + foreach (var mesTask in mesTaskList) { - LogHelper.Info("MES鎴愭柊鏈哄彨鏂欎换鍔�, "WMS"); + LogHelper.Info("MES閽㈠寘婊℃枡涓嬬嚎浠诲姟", "WMS"); + OffLineRequest request = new OffLineRequest() { loc = mesTask.POSITION_ID, cntrNo = mesTask.PALLET_ID }; + ApiHelper.offLineProcess(request); + } + } + } + } - // 2.1鎴愭柊鏈哄彨鏂�鏂滆) - if (mesTask.PALLET_TYPE == "5" || mesTask.PALLET_TYPE == "6") + /// <summary> + /// 鐩戝惉鎴愬瀷鏈哄彨鏂橫ES浠诲姟 + /// </summary> + public static void MonitorCXJCallMaterialMesTask() + { + var mesTaskList = WMSHelper.GetLjMesTaskList("PENDING"); + if (mesTaskList.Count > 0) + { + mesTaskList = mesTaskList.Where(a => a.MSG_TYPE == "0").ToList(); + if (mesTaskList.Count > 0) + { + foreach (var mesTask in mesTaskList) + { + var lineSideLoc = WMSHelper.GetLineSideLoc(mesTask.EQP); + if (lineSideLoc != null) { - var xcTask = WMSHelper.GetLjXcTaskById(mesTask.ID); - if (xcTask == null) + LogHelper.Info($"鎴愬瀷鏈哄彨鏂欎换鍔★紝MES浠诲姟ID锛歿mesTask.ID}", "WMS"); + + // 2.1鎴愭柊鏈哄彨鏂�鏂滆) + if (mesTask.PALLET_TYPE == "5" || mesTask.PALLET_TYPE == "6") { - ApiHelper.callMaterialHDK(mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID); + var xcTask = WMSHelper.GetLjXcTaskById(mesTask.ID); + if (xcTask == null) + { + ApiHelper.callMaterialXC(mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID); + } + else + { + mesTask.RETURN_CODE = xcTask.RETURN_CODE; + mesTask.RECEIVE_FLAG = xcTask.RECEIVE_FLAG; + mesTask.RECEIVE_DATE = xcTask.RECEIVE_DATE; + WMSHelper.updateLjMesTask(mesTask); + } } else { - mesTask.RETURN_CODE = xcTask.RETURN_CODE; - mesTask.RECEIVE_FLAG = xcTask.RECEIVE_FLAG; - mesTask.RECEIVE_DATE = xcTask.RECEIVE_DATE; - WMSHelper.updateLjMesTask(mesTask); + // 2.2 鎴愭柊鏈哄彨鏂�+ ApiHelper.callMaterial(mesTask.MATERIAL_CODE, mesTask.EQP, mesTask.ID); } - } - else - { - // 2.2 鎴愭柊鏈哄彨鏂�- ApiHelper.callMaterial(mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID); } } } @@ -91,12 +103,15 @@ if (mesTask != null && mesTask.RETURN_CODE == "2") { Location startLoc = LocationHelper.GetLoc(outTask.POSITION_ID); - Location endLoc = LocationHelper.GetLoc(mesTask.POSITION_ID); - - var wmsTask = WMSHelper.GetWmsTaskByCntr(outTask.PALLET_ID); - if (wmsTask == null) + if (startLoc == null) { - if (startLoc.N_LOCK_STATE == 0 && endLoc.N_LOCK_STATE == 0) + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏嚭搴�鏂滆)锛岃捣鐐�{outTask.POSITION_ID}鍦╓MS绯荤粺涓笉瀛樺湪"); + } + Location endLoc = WMSHelper.getCallMaterialLocCode(mesTask.EQP); + if (endLoc != null) + { + var wmsTask = WMSHelper.GetWmsTaskByCntr(outTask.PALLET_ID); + if (wmsTask == null) { // 1.鍒涘缓鏂滆-鎴愭柊鏈哄彨鏂欎綔涓� wmsTask = new WMSTask() @@ -142,39 +157,6 @@ } } } - else - { - LogHelper.Info($"XC鍑哄簱浠诲姟ID锛歿mesTask.ID},鏃犳硶鐢熸垚鍙枡浠诲姟,璧风偣鎴栫粓鐐逛笂閿�, "鏂滆"); - } - } - else - { - 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 = wmsTask.S_CNTR_CODE, - S_TYPE = wmsTask.S_TYPE, - 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_SCHEDULE_TYPE = "AGV", - N_PRIORITY = 10, - 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); - } } } } @@ -200,7 +182,6 @@ if (startLoc != null) { var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE); - // 1.鍒涘缓鏂滆-鎴愭柊鏈哄彨鏂欎綔涓� wmsTask = new WMSTask() { S_CNTR_CODE = locCntrRels[0].S_CNTR_CODE, @@ -209,7 +190,7 @@ S_START_AREA = startLoc.S_AREA_CODE, S_END_LOC = jbLoc.S_CODE, S_END_AREA = jbLoc.S_AREA_CODE, - S_TYPE = "绌哄伐瑁呭嚭搴�, + S_TYPE = "绌哄伐瑁呰嚜鍔ㄥ嚭搴撲换鍔�, S_OP_DEF_NAME = "鑷姩琛ュ厖绌哄伐瑁呭埌鎺ラ┏浣�, T_START_TIME = DateTime.Now, }; -- Gitblit v1.9.1