From 8a1f312d9f7842bb02c97b200e017926f0af63a5 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 17 九月 2025 14:48:08 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/utils/ShuttleTaskUtils.java | 35 +++++++++++++++++++++++------------ 1 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/ShuttleTaskUtils.java b/src/main/java/com/zy/asrs/utils/ShuttleTaskUtils.java index 82b497c..2bd93fd 100644 --- a/src/main/java/com/zy/asrs/utils/ShuttleTaskUtils.java +++ b/src/main/java/com/zy/asrs/utils/ShuttleTaskUtils.java @@ -9,6 +9,7 @@ import com.zy.asrs.service.WrkMastService; import com.zy.common.utils.RedisUtil; import com.zy.core.News; +import com.zy.core.action.ShuttleAction; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.RedisKeyType; import com.zy.core.enums.ShuttleProtocolStatusType; @@ -33,11 +34,13 @@ private NotifyUtils notifyUtils; @Autowired private RedisUtil redisUtil; + @Autowired + private ShuttleAction shuttleAction; /** * 鍥涘悜绌挎杞︿换鍔″畬鎴� */ - public void shuttleFinished() { + public synchronized void shuttleFinished() { try { List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() .eq("device_type", String.valueOf(SlaveType.Shuttle))); @@ -53,46 +56,54 @@ if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id //浠诲姟瀹屾垚绛夊緟纭 && shuttleProtocol.getTaskNo() != 0 ) { + //鐢宠鍙栨秷绠″埗 + shuttleAction.cancelTrafficControl(shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo()); + //灏嗕换鍔℃。鏍囪涓哄畬鎴� WrkMast wrkMast = wrkMastService.selectByWorkNo(shuttleProtocol.getTaskNo()); if (wrkMast != null) { if (wrkMast.getWrkSts() == WrkStsType.INBOUND_SHUTTLE_RUN.sts) { //5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚 wrkMast.setWrkSts(WrkStsType.COMPLETE_INBOUND.sts); - shuttleThread.setSyncTaskNo(0); + shuttleThread.setTaskNo(0); } else if (wrkMast.getWrkSts() == WrkStsType.OUTBOUND_SHUTTLE_RUN.sts) { //102.灏忚溅鎼繍涓� ==> 103.灏忚溅鎼繍瀹屾垚 wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts); - shuttleThread.setSyncTaskNo(0); + shuttleThread.setTaskNo(0); } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_NEARBY.sts) { //302.灏忚溅绉诲姩鑷宠繎鐐逛腑 ==> 303.灏忚溅绉诲姩鑷宠繎鐐瑰畬鎴� wrkMast.setWrkSts(WrkStsType.MOVE_NEARBY_COMPLETE.sts); - shuttleThread.setSyncTaskNo(0); + shuttleThread.setTaskNo(0); } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_LIFT.sts) { //304.灏忚溅杩佸叆鎻愬崌鏈轰腑 ==> 305.灏忚溅杩佸叆鎻愬崌鏈哄畬鎴� wrkMast.setWrkSts(WrkStsType.MOVE_IN_LIFT_COMPLETE.sts); - shuttleThread.setSyncTaskNo(0); + shuttleThread.setTaskNo(0); } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_LIFT.sts) { //308.灏忚溅杩佸嚭鎻愬崌鏈轰腑 ==> 309.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(wrkMast.getLocNo())) { continue;//灏忚溅鏈埌杈剧洰鏍囧眰 } wrkMast.setWrkSts(WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts); - shuttleThread.setSyncTaskNo(0); + shuttleThread.setTaskNo(0); } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) { //310.灏忚溅绉诲姩涓� ==> 311.灏忚溅绉诲姩瀹屾垚 wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts); - shuttleThread.setSyncTaskNo(0); + shuttleThread.setTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_MOVE_COMPLETE);//瑙﹀彂閫氱煡 - } else if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_WORKING.sts) { - //204.灏忚溅鍏呯數涓� ==> 205.灏忚溅鍏呯數瀹屾垚 - wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts); - shuttleThread.setSyncTaskNo(0); + } else if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_START_CHARGING.sts) { + //204.灏忚溅寮�鍚厖鐢典腑 ==> 205.灏忚溅鍏呯數涓� + wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_CHARGING.sts); + shuttleThread.setTaskNo(0); + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 + } else if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_CHARGING.sts) { + //205.灏忚溅鍏呯數涓� ==> 206.灏忚溅鍏呯數瀹屾垚 + wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_CHARGING_COMPLETE.sts); + shuttleThread.setTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 } else if (wrkMast.getWrkSts() == WrkStsType.LOC_MOVE_SHUTTLE_RUN.sts) { //502.灏忚溅鎼繍涓� ==> 509.绉诲簱瀹屾垚 wrkMast.setWrkSts(WrkStsType.COMPLETE_LOC_MOVE.sts); - shuttleThread.setSyncTaskNo(0); + shuttleThread.setTaskNo(0); notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_DELIVERY);//瑙﹀彂閫氱煡 } else { continue; -- Gitblit v1.9.1