From f886fe7c00267539242b6bdd8a465ad950fe8493 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 10 八月 2023 09:49:22 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/NyShuttleThread.java |   33 +++++++++++++++++++++++++++------
 1 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java
index f829281..73dd3ae 100644
--- a/src/main/java/com/zy/core/thread/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java
@@ -298,12 +298,13 @@
             return false;
         }
 
-        WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
+        WrkMastMapper wrkMastMapper = SpringUtils.getBean(WrkMastMapper.class);
 
         Object o = redisUtil.get("shuttle_wrk_no_" + wrkNo);
         if (o == null) {
             return false;
         }
+
         ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class);
         List<NyShuttleHttpCommand> commands = redisCommand.getAssignCommand().getCommands();
         ShuttleAssignCommand assignCommand = redisCommand.getAssignCommand();
@@ -363,13 +364,11 @@
             return false;
         }
 
-        //妫�鏌ヨ矾寰勬槸鍚﹀彲琛岃蛋(妫�鏌ヨ矾寰勯攣瀹氱姸鎬侊紝妫�娴嬭矾寰勬槸鍚︽湁鍏朵粬灏忚溅)
-        //妫�娴嬪綋鍓嶈璧拌矾寰勶紝鍜屼笅涓�姝ヨ矾寰�
-        boolean checkPathIsAvailable = NavigateUtils.checkPathIsAvailable(command.getNodes(), shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo()));
-        boolean checkPathIsAvailable2 = NavigateUtils.checkPathIsAvailable(nextNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo()));
-        if (!checkPathIsAvailable && !checkPathIsAvailable2) {
+        //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋
+        if (!checkPath(command.getNodes(), nextNodes)) {
             return false;
         }
+
         //閿佸畾璺緞锛岄攣瀹氬綋鍓嶈矾寰勫拰涓嬩竴姝ヨ矾寰�
         List<NavigateNode> nodes = command.getNodes();
         nodes.addAll(nextNodes);
@@ -442,6 +441,8 @@
             return false;
         }
 
+        WrkMastMapper wrkMastMapper = SpringUtils.getBean(WrkMastMapper.class);
+
         ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class);
         //褰撳墠姝ュ簭
         int commandStep = redisCommand.getCommandStep();
@@ -482,6 +483,12 @@
 
         if (liftProtocol.getLev().intValue() == Utils.getLev(shuttleProtocol.getCurrentLocNo())) {
             return true;//鎻愬崌鏈鸿揪鍒板皬杞︽ゼ灞傦紝鏀捐
+        }
+
+        //鎼滅储鏄惁鏈夊叾浠栦换鍔″崰鐢ㄤ簡鎻愬崌鏈猴紝濡傛灉鍗犵敤鎻愬崌鏈虹殑浠诲姟鍜屽綋鍓嶄换鍔$浉鍚岋紝鍒欒繍琛屾墽琛�
+        WrkMast wrkMast1 = wrkMastMapper.selectLiftWrkMast(liftProtocol.getLiftNo().intValue());
+        if (wrkMast1 != null && wrkMast1.getWrkNo() != wrkNo.intValue()) {
+            return false;
         }
 
         //鎻愬崌鏈烘湭鍒拌揪灏忚溅妤煎眰锛屽懠鍙彁鍗囨満
@@ -545,4 +552,18 @@
         return false;//榛樿涓嶆斁琛�
     }
 
+    /**
+     * 妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋
+     */
+    private boolean checkPath(List<NavigateNode> currentNodes, List<NavigateNode> nextNodes) {
+        //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋(妫�鏌ヨ矾寰勯攣瀹氱姸鎬侊紝妫�娴嬭矾寰勬槸鍚︽湁鍏朵粬灏忚溅)
+        //妫�娴嬪綋鍓嶈璧拌矾寰勶紝鍜屼笅涓�姝ヨ矾寰�
+        boolean checkPathIsAvailable = NavigateUtils.checkPathIsAvailable(currentNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo()));
+        boolean checkPathIsAvailable2 = NavigateUtils.checkPathIsAvailable(nextNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo()));
+        if (checkPathIsAvailable && checkPathIsAvailable2) {
+            return true;//鍙璧�
+        }
+        return false;//涓嶅彲琛岃蛋
+    }
+
 }

--
Gitblit v1.9.1