From 3c8b4f87fa61885f3c28d00eb6b9c9abde9bd462 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 01 八月 2023 16:25:02 +0800 Subject: [PATCH] 检测穿梭车是否在提升机内 --- src/main/java/com/zy/core/thread/NyShuttleThread.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java index b2c39da..f829281 100644 --- a/src/main/java/com/zy/core/thread/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java @@ -17,11 +17,13 @@ import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.*; +import com.zy.core.model.LiftSlave; import com.zy.core.model.ShuttleSlave; import com.zy.core.model.Task; import com.zy.core.model.command.*; import com.zy.core.model.protocol.LiftProtocol; import com.zy.core.model.protocol.NyShuttleProtocol; +import com.zy.core.properties.SlaveProperties; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -356,6 +358,11 @@ return false; } + //妫�娴嬬┛姊溅鏄惁鍦ㄦ彁鍗囨満鍐� + if (!checkShuttleInTheLift(wrkNo)) { + return false; + } + //妫�鏌ヨ矾寰勬槸鍚﹀彲琛岃蛋(妫�鏌ヨ矾寰勯攣瀹氱姸鎬侊紝妫�娴嬭矾寰勬槸鍚︽湁鍏朵粬灏忚溅) //妫�娴嬪綋鍓嶈璧拌矾寰勶紝鍜屼笅涓�姝ヨ矾寰� boolean checkPathIsAvailable = NavigateUtils.checkPathIsAvailable(command.getNodes(), shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo())); @@ -496,4 +503,46 @@ return false;//榛樿涓嶆斁琛� } + /** + * 妫�娴嬬┛姊溅鏄惁鍦ㄦ彁鍗囨満鍐� + * 濡傜┛姊溅鍦ㄦ彁鍗囨満鍐咃紝蹇呴』绛夊緟鎻愬崌鏈虹┖闂叉墠鍙墽琛岀┛姊溅鍛戒护 + */ + private boolean checkShuttleInTheLift(Short wrkNo) { + //璇诲彇redis鏁版嵁 + if (wrkNo == null) { + return false; + } + + Object o = redisUtil.get("shuttle_wrk_no_" + wrkNo); + if (o == null) { + return false; + } + + SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class); + BasLiftService liftService = SpringUtils.getBean(BasLiftService.class); + for (LiftSlave liftSlave : slaveProperties.getLift()) { + BasLift basLift = liftService.selectById(liftSlave.getId()); + if (basLift == null) { + continue; + } + if (basLift.getPoint().equals(shuttleProtocol.getPoint())) { + //灏忚溅鍦ㄦ彁鍗囨満鍐� + //鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂� + LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftSlave.getId()); + if (liftThread == null) { + return false; + } + LiftProtocol liftProtocol = liftThread.getLiftProtocol(); + if (liftProtocol == null) { + return false; + } + if (liftProtocol.isIdle()) { + //鎻愬崌鏈哄浜庣┖闂诧紝鏀捐 + return true; + } + } + } + return false;//榛樿涓嶆斁琛� + } + } -- Gitblit v1.9.1