From a93b0e99036c24b9bd58c79bf5e7364b1ba28bae Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期二, 01 七月 2025 16:02:33 +0800 Subject: [PATCH] 福建佳通-流程优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs | 104 ++++++++++++++++++++++------------------------------ 1 files changed, 44 insertions(+), 60 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs index 1a802e0..c5e9168 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs @@ -11,6 +11,7 @@ using System.Web.Http; using static HH.WCS.Mobox3.FJJT.api.ApiHelper; using static HH.WCS.Mobox3.FJJT.api.ApiModel; +using HH.WCS.Mobox3.FJJT.util; namespace HH.WCS.Mobox3.FJJT.core { internal class WCSCore { @@ -53,7 +54,7 @@ case 3: WCSHelper.UpdateStatus(cst, "寮�鍙栬揣"); var locCntrRels = LocationHelper.GetLocCntr(cst.S_START_LOC); - if (locCntrRels.Count > 0) + if (locCntrRels.Count > 0) { cst.S_CNTR_CODE = locCntrRels[0].S_CNTR_CODE; WCSHelper.UpdateWcsTask(cst); @@ -61,6 +62,7 @@ break; case 4: WCSHelper.UpdateStatus(cst, "鍙栬揣瀹屾垚"); + LocationHelper.UnLockLoc(cst.S_START_LOC); TaskProcess.OperateStatus(cst, 4); break; case 5: @@ -68,6 +70,7 @@ break; case 6: WCSHelper.UpdateStatus(cst, "鍗歌揣瀹屾垚"); + LocationHelper.UnLockLoc(cst.S_END_LOC); TaskProcess.OperateStatus(cst, 6); break; #endregion @@ -83,26 +86,13 @@ else if (model.State == 1012) { LogHelper.Info("寮�杩涜RFID鎵弿", "AGV"); + ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 1); + WMSHelper.addRfidAnomalyRecord(cst.S_CNTR_CODE, 2, cst.S_START_LOC, null); // 鏌ヨ鎵弿鐨凴FID // 鍙戦� 00 04 71 02鍒版壂鐮佸櫒 锛屾帴鍙楄繑鍥炴暟鎹苟瑙f瀽 - /* string hexString = TcpClient.SendHexOnce("127.0.0.1", 8080, "00 04 71 02"); - var rfid = hexString.Substring(6, 8);*/ - string rfid = ""; - LogHelper.Info($"鎵弿缁撴潫锛孯FID锛歿rfid}", "AGV"); - if (rfid == cst.S_CNTR_CODE) - { - LogHelper.Info($"鎵弿RFID锛歿rfid}涓庝换鍔FID涓�嚧", "AGV"); - // 淇敼1012鐨勫弬鏁�涓� - /* NDCApi.ChangeOrderParam(cst.S_CODE, 6, "1");*/ - } - else - { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"鎵弿RFID锛歿rfid}涓庝换鍔FID:{cst.S_CNTR_CODE}涓嶄竴鑷�, "AGV"); - // 淇敼鍙傛暟6涓� - /* NDCApi.ChangeOrderParam(cst.S_CODE, 6, "3");*/ - // 淇敼瀹瑰櫒寮傚父鐘舵� - ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 2,$"{model.ForkliftNo}AGV鎵爜鍣�鎵弿RFID:{rfid}涓庝换鍔FID:{cst.S_CNTR_CODE}涓嶄竴鑷�); - } + /* byte[] bytes = new byte[] { 00, 04, 71, 02 }; + var plc = Settings.carDeviceInfos.Where(a => a.deviceNo == model.ForkliftNo && a.enable == 1).FirstOrDefault(); + TcpServer.TcpServerSend(plc.address, bytes);*/ } else if (model.State == 1002) { @@ -113,28 +103,26 @@ if (container != null) { LogHelper.Info($"瀹瑰櫒鐨勫紓甯哥姸鎬佷负锛歿container.N_E_STATE}", "AGV"); - string agvEndLoc = null; if (container.N_E_STATE == 0) { - agvEndLoc = ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "1"); + ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "1"); } else { - agvEndLoc = ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "2"); + ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "2"); } - ChangeParamModel paramModel = new ChangeParamModel() + ChangeParamModel paramModel = new ChangeParamModel() { task_no = model.No, param_no = 0, param = $"{model.No};{cst.S_START_LOC};{cst.S_END_LOC};4;512;0;1" }; NDCApi.ChangeOrderParam(paramModel); - LogHelper.Info($"鑾峰彇AGV缁堢偣锛歿agvEndLoc}", "AGV"); } else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"AGV浠诲姟鍥炴姤,浠诲姟瀹瑰櫒缂栫爜:{cst.S_CNTR_CODE}鐨勫鍣ㄦ病鏈夊綍鍏ュ埌WMS绯荤粺","AGV"); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"AGV浠诲姟鍥炴姤,浠诲姟瀹瑰櫒缂栫爜:{cst.S_CNTR_CODE}鐨勫鍣ㄦ病鏈夊綍鍏ュ埌WMS绯荤粺", "AGV"); } } else @@ -146,35 +134,9 @@ // AGV浠诲姟瀹屾垚 if (model.State == 2) { - // 妫�祴鐗╂枡鏄惁鍚堟牸,濡備笉鍚堟牸锛�- // 鍒ゆ柇鐗╂枡鏄惁鏄幆甯﹀簱鐗╂枡锛屾槸鍒欏洖鐜甫搴擄紝骞惰鐜甫涓嬪彂鏂扮殑鐗╂枡 - // 闈炵幆甯﹀簱鐗╂枡锛屽垯閫�嚭绔嬪簱锛屽悓鏃朵笅鍙戞柊鐨勭墿鏂欏嚭搴撲换鍔�- if (cst.S_TYPE.Contains("鍙枡鍑哄簱浠诲姟")) - { - var cntrItemRels = ContainerHelper.GetCntrItemRel(cst.S_CNTR_CODE); - if (cntrItemRels != null && cntrItemRels.Count > 0) - { - if (cntrItemRels[0].S_ITEM_STATE == "2") - { - // 涓嶅悎鏍煎搧鍥炲簱 - ApiHelper.rejectReturnStock(mst, cst); - } - } - } - - // 妫�祴鏄惁鏄鐮佷綅锛岄潪璇荤爜浣嶏紝鍙互婵�椿棰勫垱寤轰换鍔�- var transfe = WMSHelper.GetTransfeRelevance(cst.S_END_LOC); // 鎺ラ┏浣嶅睘鎬�- if ((transfe == null || transfe.N_READ_LOC == 0)) - { - if (cst.S_TYPE.Contains("銆愬紓甯搞�")) - { - WCSHelper.ActivatePreCreateTask(mst.S_CODE,1); - } - else - { - WCSHelper.ActivatePreCreateTask(mst.S_CODE); - } - } + // 婵�椿棰勫垱寤轰换鍔�+ // 鍦烘櫙锛�.璇荤爜浣嶆縺娲婚鍒涘缓浠诲姟 2.绌哄伐瑁呭嚭搴撴縺娲绘弧鏂欎笅绾夸换鍔�闈炵洿杩� + WCSHelper.ActivatePreCreateTask(mst.S_CODE); // 鏌ヨ鏄惁鏈夋湭瀹屾垚鐨勪换鍔� if (WMSHelper.isFinishTask(mst.S_CODE)) @@ -186,18 +148,40 @@ // 鏇存柊浠诲姟涓棿琛ㄧ姸鎬� WMSHelper.updateMesTaskStatus(mst.S_CODE, "3"); - - // 濡傛灉浣滀笟鍚嶇О涓烘垚鍨嬫満鍙枡鍑哄簱浠诲姟锛屽垯瑙﹀彂浣欐枡/绌烘墭鎼繍浠诲姟 - string locCode = WMSHelper.getReturnMaterialLocCode(mst.S_END_LOC); - ApiHelper.returnMaterialOrEmptyTray(locCode); } - + // 妫�祴鐗╂枡鏄惁鍚堟牸,濡備笉鍚堟牸锛�+ // 鍒ゆ柇鐗╂枡鏄惁鏄幆甯﹀簱鐗╂枡锛屾槸鍒欏洖鐜甫搴擄紝骞惰鐜甫涓嬪彂鏂扮殑鐗╂枡 + // 闈炵幆甯﹀簱鐗╂枡锛屽垯閫�嚭绔嬪簱锛屽悓鏃朵笅鍙戞柊鐨勭墿鏂欏嚭搴撲换鍔�+ if (cst.S_TYPE.Contains("鍙枡鍑哄簱浠诲姟")) + { + var bo = int.TryParse(mst.S_OP_DEF_CODE, out int mesId); + if (bo) + { + var mesTask = WMSHelper.GetLjMesTaskById(mesId); + var cntrItemRels = ContainerHelper.GetCntrItemRel(cst.S_CNTR_CODE); + if (cntrItemRels != null && cntrItemRels.Count > 0) + { + if (cntrItemRels[0].S_ITEM_STATE == "2") + { + mesTask.AWAIT_MSG = "鐗╂枡妫�獙鐘舵�涓轰笉鍚堟牸锛岄噸鏂板彨鏂欎腑"; + WMSHelper.updateLjMesTask(mesTask); + + // 涓嶅悎鏍煎搧鍥炲簱 + ApiHelper.rejectReturnStock(mst, cst); + } + } + + // 濡傛灉浣滀笟鍚嶇О涓烘垚鍨嬫満鍙枡鍑哄簱浠诲姟锛屽垯瑙﹀彂浣欐枡/绌烘墭鎼繍浠诲姟 + var sideLocConfig = WMSHelper.getReturnMaterialLocCode(mst.S_END_LOC); + ApiHelper.returnMaterialOrEmptyTray(sideLocConfig.S_RETURN_LOC_CODE, sideLocConfig.EQP); + } + } } } else { - WMSHelper.addAlarmRecord("绯荤粺閿欒", "楂�, $"AGV浠诲姟鐘舵�鍥炴姤锛屼綔涓氬彿:{cst.S_OP_CODE}锛屾湭鏌ヨ鍒颁綔涓�,"AGV"); + WMSHelper.addAlarmRecord("绯荤粺閿欒", "楂�, $"AGV浠诲姟鐘舵�鍥炴姤锛屼綔涓氬彿:{cst.S_OP_CODE}锛屾湭鏌ヨ鍒颁綔涓�, "AGV"); } } else -- Gitblit v1.9.1