From 1edc46cc37adb14e30c80c22491d770bfe9214d1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 29 六月 2023 11:35:59 +0800
Subject: [PATCH] 优化寻车,出库问题

---
 src/main/java/com/zy/core/thread/ShuttleThread.java |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index d6b95ac..029180e 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -729,6 +729,9 @@
 //            }
 //        }
 
+        LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
+        LiftProtocol liftProtocol = liftThread.getLiftProtocol();
+
         List<ShuttleCommand> commands = redisCommand.getAssignCommand().getCommands();
         //褰撳墠姝ュ簭
         int commandStep = redisCommand.getCommandStep();
@@ -744,6 +747,14 @@
                 if (command.getDistCodeNum().intValue() == shuttleProtocol.getCurrentCode().intValue()) {
                     //涓婁竴鏉℃寚浠ょ殑鐩爣浣嶇疆鍜屽綋鍓嶅皬杞︿綅缃浉鍚岋紝鍒欒瀹氫笂涓�鏉′换鍔″畬鎴�
                     command.setComplete(true);
+
+                    //涓婁竴鏉℃寚浠よ捣鐐规槸鎻愬崌鏈轰簩缁寸爜锛屽垯娓呴浂鎻愬崌鏈轰换鍔″彿
+                    if (command.getStartCodeNum().intValue() == liftProtocol.getBarcode().intValue()) {
+                        //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庣┖闂�
+                        if (liftProtocol.isIdleNoTask()) {
+                            liftProtocol.setTaskNo((short) 0);//娓呯┖浠诲姟鍙�
+                        }
+                    }
                 }
             } else if (command.getCommandWord().intValue() == 2) {
                 //鎵樼洏椤跺崌鍛戒护
@@ -793,6 +804,10 @@
             }
         }
 
+        if (commands.size() == 0) {
+            return false;
+        }
+
         //鍙栧嚭鍛戒护
         ShuttleCommand command = commands.get(commandStep);
 
@@ -805,9 +820,6 @@
             }
         }
 
-        LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
-        LiftProtocol liftProtocol = liftThread.getLiftProtocol();
-        
 
         //鍒ゆ柇灏忚溅褰撳墠浜岀淮鐮佹槸鍚︿负鎻愬崌鏈轰簩缁寸爜
         if (shuttleProtocol.getCurrentCode().intValue() == liftProtocol.getBarcode().intValue()) {
@@ -844,6 +856,9 @@
                 if (!staProtocol.isLiftArrival()) {
                     return false;//绔欑偣鎻愬崌鏈哄埌浣嶄俊鍙穎alse锛岀姝笅鍙戝懡浠�
                 }
+
+                //鏉′欢婊¤冻锛屽崰鐢ㄦ彁鍗囨満
+                liftProtocol.setTaskNo(wrkNo);
             }
         }
 
@@ -1046,6 +1061,7 @@
                 return true;
             }else {
                 if (liftProtocol.getPositionArrivalFeedback$() == shuttleLocNoLev) {
+                    liftProtocol.setTaskNo(wrkNo);//缁欐彁鍗囨満鍐欏伐浣滃彿锛岄槻姝㈣鍗犵敤
                     return true;//鎻愬崌鏈哄埌浣�
                 }
                 executeLift(liftThread, liftProtocol, redisCommand, shuttleLocNoLev);//璋冨害鎻愬崌鏈�
@@ -1057,8 +1073,13 @@
     }
 
     private boolean executeLift(LiftThread liftThread, LiftProtocol liftProtocol, ShuttleRedisCommand redisCommand, Integer shuttleLocNoLev) {//璋冨害鎻愬崌鏈�
-        if (liftProtocol.getRunning()) {
-            //鎻愬崌鏈鸿繍琛屼腑锛岀姝笅鍙�
+        if (!liftProtocol.isIdle()) {
+            //鎻愬崌鏈轰笉绌洪棽绂佹涓嬪彂
+            return false;
+        }
+
+        if (liftProtocol.getPlatShuttleCheck()) {
+            //鎻愬崌鏈哄唴鏈夎溅绂佹涓嬪彂
             return false;
         }
 

--
Gitblit v1.9.1