From e4b92180e4336d777ac323c0395a043bde1285d3 Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期五, 30 五月 2025 17:18:13 +0800 Subject: [PATCH] 印尼佳通-胚胎到硫化的出入库功能开发 --- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs | 152 ++++++++++++++++++++++++++++---------------------- 1 files changed, 84 insertions(+), 68 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs index d3584ad..07d5df7 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs @@ -11,6 +11,7 @@ using System.Linq; using System.Reflection; using System.Security.Cryptography; +using static HH.WCS.Mobox3.YNJT_BZP.util.Settings; namespace HH.WCS.Mobox3.YNJT_BZP.process { internal class TaskProcess { @@ -41,7 +42,6 @@ internal static void CacheBitCancelUpdate(WCSTask mst) { //浠诲姟鍙栨秷锛屽彇璐у畬鎴愬墠鐨勶紝璧风偣鐨刲oadingCount鍜岀粓鐐箄nLoadingCount閮芥竻闄わ紝鍙栬揣瀹屾垚鐨勫彧澶勭悊缁堢偣 if (WCSHelper.CheckActionRecordExist(mst.S_CODE, 4) ) { - //鏍规嵁瀹㈡埛鐜板満瑕佹眰锛屽鏋滃彇璐у畬鎴愪换鍔″け璐ヤ汉宸ユ媺鍒扮粓鐐癸紝鎴戜滑灏卞綋鍗歌揣瀹屾垚澶勭悊锛涘鏋滄槸浜哄伐鎷夎蛋鍒板叾瀹冨尯鍩燂紝鎴戜滑灏辫В閿佺粓鐐癸紝鍒犻櫎鎵樼洏銆� //缁堢偣缁戝畾 if (!WCSHelper.CheckActionRecordExist(mst.S_CODE, 5)) { CacheBitUpdate(mst, false); @@ -52,9 +52,6 @@ //璧风偣缁堢偣瑙i攣 LocationHelper.UnLockLoc(mst.S_START_LOC); LocationHelper.UnLockLoc(mst.S_END_LOC); - //璐т綅瀹瑰櫒瑙g粦 - LocationHelper.UnBindingLoc(mst.S_START_LOC, new List<string> { mst.S_CNTR_CODE }); - } } @@ -67,88 +64,107 @@ /// <param name="forkliftNo"></param> /// <param name="extData"></param> internal static void OperateReq(string no, int state, string forkliftNo, string extData) { + LogHelper.Info($"寮�瀹夊叏璇锋眰锛屼换鍔″彿:{no},璇锋眰鐮�{state},灏忚溅鍙凤細{forkliftNo}", "AGV"); var cst = WCSHelper.GetTask(no); + var mst = WMSHelper.GetWmsTask(cst.S_OP_CODE); var endLoc = LocationHelper.GetLoc(cst.S_END_LOC); - if (state == 1101) { - //璇锋眰鍙栬揣锛�- - } - if (state == 1102) { - //璇锋眰鍗歌揣锛�- bool isCan = false; - - - if (endLoc != null) + var taskAction = WCSHelper.getActionRecord(no, state); + if (taskAction != null) + { + LogHelper.Info($"鍐嶆瀹夊叏璇锋眰锛屾煡璇㈣澶囨槸鍚﹀弽棣�, "AGV"); + if (taskAction.N_S_STATUS == 1) { - // 1.鏌ョ湅缁堢偣璐т綅鏀捐揣鏉′欢鏄惁婊¤冻 - var waitLoc = Settings.getAgvWaitLoc(endLoc.S_CODE); - if (waitLoc != null) + LogHelper.Info($"鍐嶆瀹夊叏璇锋眰锛岃澶囧凡鍙嶉", "AGV"); + /* NDCApi.ChangeOrderParam(no, 6, "1");*/ + } + } + else + { + LogHelper.Info($"棣栨杩涜瀹夊叏璇锋眰锛屼换鍔″彿:{no},璇锋眰鐮�{state},灏忚溅鍙凤細{forkliftNo}", "AGV"); + bool result = false; + if (state == 1101) + { + LogHelper.Info("鍚慦CS鍙戦�鍙栬揣鐢宠淇″彿", "AGV"); + /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "1"); //鍙栬揣鐢宠锛�/ + result = true; + } + if (state == 1102) + { + LogHelper.Info("鍚慦CS鍙戦�鍙栬揣瀹屾垚瀹夊叏閫�嚭淇″彿", "AGV"); + /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2"); //鍙栬揣瀹屾垚瀹夊叏閫�嚭*/ + result = true; + } + if (state == 1103) //鍗歌揣鐢宠锛�+ { + var container = ContainerHelper.GetCntr(cst.S_CNTR_CODE); + // 鑳庡湀鍏ュ簱锛屼笅鍙戞瘝鎷栧嚭搴撲换鍔�\ 甯樺竷銆佸唴琛叆搴擄紝涓嬪彂鎵樼洏鍥炲簱浠诲姟 + if (cst.S_TYPE.Contains("鍏ュ簱") && endLoc.N_LOCK_STATE == 0) { - //鏍规嵁缁堢偣鍒ゆ柇锛屾槸cb02鐨勫叆鍙o紝鍒ゆ柇鍐呭瓨涓姸鎬侊紙瑕佺姸鎬佹椂闂达級锛屽厑璁稿嵏璐э紝閫氱煡agv鏀瑰弬鏁�- var dic = new Dictionary<string, string>(); - //< Req >< Order No = 'TN2302020002' ParamNo = '18' Param1 = '12' /></ Req > - dic.Add("No", no); - dic.Add("ParamNo", "8"); - dic.Add("Param1", "1"); - NDC.ChangeOrder(dic); - } - else - { - var container = ContainerHelper.GetCntr(cst.S_CNTR_CODE); - if (container != null && container.N_TYPE == 6) + if (container.N_TYPE != 6 ) { - isCan = false; - var locCntrs = LocationHelper.GetLocCntr(endLoc.S_CODE); - if (endLoc.N_CURRENT_NUM == 1 && locCntrs.Count > 0) + if (endLoc.N_CURRENT_NUM == 1) { - var container1 = ContainerHelper.GetCntr(locCntrs[0].S_CNTR_CODE); - if (container1.N_TYPE == 0) + var locCntrRels = LocationHelper.GetLocCntr(endLoc.S_CODE); + if (locCntrRels != null && locCntrRels.Count > 0) { - isCan = true; + var container1 = ContainerHelper.GetCntr(locCntrRels[0].S_CNTR_CODE); + if (container1.N_TYPE == 0) + { + LogHelper.Info("闈炶儙鍦堝叆搴擄紝鎺ラ┏浣嶅瓨鍦ㄦ瘝鎷栵紝涓嬪彂姣嶆嫋鍏ュ簱浠诲姟", "AGV"); + ApiHelper.baseTrayInStockAgv(endLoc.S_CODE, mst.S_CODE); + } } } - if (!isCan) + else { - LogHelper.Info("鑳庡湀璇锋眰鏀捐揣澶辫触锛屾瘝鎷栨病鏈夊埌浣�, "AGV"); + result = true; + } + } + else + { + // 鑳庡湀鍏ュ簱 + if (endLoc.N_CURRENT_NUM == 0) + { + LogHelper.Info("鑳庡湀鍏ュ簱锛屾帴椹充綅缂哄皯姣嶆嫋锛屼笅鍙戞瘝鎷栧嚭搴撲换鍔�, "AGV"); + ApiHelper.baseTrayOutStockAgv(endLoc.S_CODE, mst.S_CODE); + } + else if (endLoc.N_CURRENT_NUM == 1) + { + var locCntrRels = LocationHelper.GetLocCntr(endLoc.S_CODE); + if (locCntrRels != null && locCntrRels.Count > 0) + { + var container1 = ContainerHelper.GetCntr(locCntrRels[0].S_CNTR_CODE); + if (container1.N_TYPE == 0) + { + result = true; + } + } } } } - // 2.鏌ヨ杈撻�绾�鏄惁鍏佽鏀捐揣 - - } - - if (isCan) - { - //鏍规嵁缁堢偣鍒ゆ柇锛屾槸cb02鐨勫叆鍙o紝鍒ゆ柇鍐呭瓨涓姸鎬侊紙瑕佺姸鎬佹椂闂达級锛屽厑璁稿嵏璐э紝閫氱煡agv鏀瑰弬鏁�- var dic = new Dictionary<string, string>(); - //< Req >< Order No = 'TN2302020002' ParamNo = '18' Param1 = '12' /></ Req > - dic.Add("No", no); - dic.Add("ParamNo", "8"); - dic.Add("Param1", "1"); - NDC.ChangeOrder(dic); - //鏀瑰畬鍙傛暟杞﹀瓙灏变細鑷繁鍗歌揣 - } - } - if (state == 1103) - { - // 鍙栬揣瀹屾垚璇锋眰绂诲紑 - // 瀹夊叏閫�嚭 - // 鑳庡湀鍑哄簱锛屼笅鍙戞瘝鎷栧洖搴撲换鍔�- var locCntrRels = LocationHelper.GetLocCntrRel(cst.S_START_LOC); - if (locCntrRels.Count > 0) - { - var container = ContainerHelper.GetCntr(locCntrRels[0].S_CNTR_CODE); - if (container != null && container.N_TYPE == 0) + // 璇锋眰WCS鏄惁鍏佽鏀捐揣 + if (result) { - ApiHelper.baseTrayInStockAgv(cst.S_START_LOC, cst.S_OP_CODE); + LogHelper.Info("鍚慦CS鍙戦�璇锋眰鏀捐揣淇″彿", "AGV"); + /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "3"); // 璇锋眰鏀捐揣*/ + result = true; } } - } - if (state == 1104) - { - // 鏀捐揣瀹屾垚璇锋眰绂诲紑 + + if (state == 1104) + { + LogHelper.Info("鍚慦CS鍙戦�鍗歌揣瀹屾垚瀹夊叏閫�嚭淇″彿", "AGV"); + /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "4"); //鍗歌揣瀹屾垚瀹夊叏閫�嚭*/ + result = true; + } + // 瀹夊叏璇锋眰鍙戦�鎴愬姛锛屾坊鍔犱换鍔″姩浣滆褰�+ if (result) + { + WCSHelper.AddActionRecord(no, state, forkliftNo, extData); + LogHelper.Info($"棣栨杩涜瀹夊叏璇锋眰鎴愬姛", "AGV"); + } } } -- Gitblit v1.9.1