From dc3483f84d517bfa2cbcc96a0c965f26d63aa3c3 Mon Sep 17 00:00:00 2001
From: zc <zc@123>
Date: 星期三, 07 五月 2025 14:01:51 +0800
Subject: [PATCH] 解决提升机在本层,而没有锁提升机的问题

---
 src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java          |   10 +++++-----
 src/main/java/com/zy/asrs/service/impl/TransportLiftInServiceImpl.java  |    1 +
 src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java        |   39 ++++++++++++++++++++-------------------
 src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java         |    1 +
 src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java |    1 +
 src/main/resources/application.yml                                      |    2 +-
 6 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java
index 1629e74..174618d 100644
--- a/src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java
@@ -383,6 +383,7 @@
                 //鎻愬崌鏈哄湪灏忚溅妤煎眰
                 wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_6.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓�  灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
                 wrkMast.setModiTime(now);
+                wrkMast.setLiftNo(1);
                 wrkMastService.updateById(wrkMast);
                 return false;
             }
diff --git a/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
index 56da49f..2956c01 100644
--- a/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
@@ -219,13 +219,13 @@
             //鑾峰彇绌挎杞︽渶杩戜笖绌洪棽鐨勬彁鍗囨満
             LiftThread liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo());
             if (liftThread == null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}鍙峰皬杞︼紝{}灏忚溅搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂叉彁鍗囨満", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}鍙峰皬杞︼紝{}灏忚溅搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂叉彁鍗囨満", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
                 return false;//娌℃湁鍙敤涓旂┖闂茬殑鎻愬崌鏈�
             }
 
             LiftProtocol liftProtocol = liftThread.getStatus();
             if (liftProtocol == null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", wrkMast.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", wrkMast.getLiftNo());
                 return false;
             }
 
@@ -284,13 +284,13 @@
             //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
             ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
             if (shuttleThread == null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅绾跨▼涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅绾跨▼涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
                 return false;
             }
 
             ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
             if (shuttleProtocol == null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅瀵硅薄涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅瀵硅薄涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
                 return false;
             }
 
@@ -301,38 +301,38 @@
             //鑾峰彇绌挎杞︽渶杩戜笖绌洪棽鐨勬彁鍗囨満
             liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo());
             if (liftThread == null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}鍙峰皬杞︼紝{}鐩爣搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂叉彁鍗囨満", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}鍙峰皬杞︼紝{}鐩爣搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂叉彁鍗囨満", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
                 return false;//娌℃湁鍙敤涓旂┖闂茬殑鎻愬崌鏈�
             }
 
             liftProtocol = liftThread.getStatus();
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
             if (liftProtocol.getHasCar()) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;
             }
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夋墭鐩�
             if (liftProtocol.getHasTray()) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;
             }
 
 
             if (!liftThread.isIdle()) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
                 return false;
             }
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
             if (liftProtocol.getHasCar()) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;//鎻愬崌鏈哄唴鏃犲皬杞�
             }
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夋墭鐩�
             if (liftProtocol.getHasTray()) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;//鎻愬崌鏈哄唴鏃犲皬杞�
             }
 
@@ -341,6 +341,7 @@
                 //鎻愬崌鏈哄湪灏忚溅妤煎眰
                 wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_5.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓�  灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
                 wrkMast.setModiTime(now);
+                wrkMast.setLiftNo(1);
                 wrkMastService.updateById(wrkMast);
                 return false;
             }
@@ -367,7 +368,7 @@
             //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
             WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
             if (liftWrkMast != null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
                 return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
             }
 
@@ -399,44 +400,44 @@
             //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
             ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
             if (shuttleThread == null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅绾跨▼涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅绾跨▼涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
                 return false;
             }
 
             ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
             if (shuttleProtocol == null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅瀵硅薄涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅瀵硅薄涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
                 return false;
             }
 
-            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
+            LiftThread liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo());
             LiftProtocol liftProtocol = liftThread.getStatus();
             if (liftProtocol == null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", 1);
+                News.taskInfo(wrkMast.getWrkNo(), "{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", 1);
                 return false;
             }
 
             //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
             WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
             if (liftWrkMast != null) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), 1);
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), 1);
                 return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
             }
 
             if (!liftThread.isIdle()) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), 1);
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), 1);
                 return false;
             }
 
             //灏忚溅澶勪簬绌洪棽鐘舵��
             if (!shuttleThread.isIdle()) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
                 return false;
             }
 
             //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
             if (liftProtocol.getHasCar()) {
-                 News.taskInfo(wrkMast.getWrkNo(),"{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
                 return false;//鎻愬崌鏈哄唴鏃犲皬杞�
             }
 
diff --git a/src/main/java/com/zy/asrs/service/impl/TransportLiftInServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TransportLiftInServiceImpl.java
index 8b3e275..f29cf9a 100644
--- a/src/main/java/com/zy/asrs/service/impl/TransportLiftInServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TransportLiftInServiceImpl.java
@@ -263,6 +263,7 @@
                 //鎻愬崌鏈哄湪灏忚溅妤煎眰
                 wrkMast.setWrkSts(WrkStsType.MOVE_LIFT_TO_SHUTTLE_COMPLETE_TRANSPORT_LIFT.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓�  灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
                 wrkMast.setModiTime(now);
+                wrkMast.setLiftNo(liftProtocol.getLiftNo());//鎻愬墠閿佸畾鎻愬崌鏈�
                 wrkMastService.updateById(wrkMast);
                 return false;
             }
diff --git a/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
index 8f1d367..00ab94f 100644
--- a/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
@@ -308,6 +308,7 @@
                 //鎻愬崌鏈哄湪灏忚溅妤煎眰
                 wrkMast.setWrkSts(WrkStsType.MOVE_LIFT_TO_SHUTTLE_COMPLETE_TRANSPORT_LIFT_OUT.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓�  灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
                 wrkMast.setModiTime(now);
+                wrkMast.setLiftNo(liftProtocol.getLiftNo());//鎻愬墠閿佸畾鎻愬崌鏈�
                 wrkMastService.updateById(wrkMast);
                 return false;
             }
diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
index 68a2f30..b743284 100644
--- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -423,11 +423,11 @@
 
 
                 //妫�娴嬬洰鏍囨ゼ灞傝溅鏁伴噺鏄惁灏忎簬鍏佽鐨勬渶澶ф暟閲�
-                boolean checkDispatchMaxNum = checkDispatchMaxNum(lev);
-                if (!checkDispatchMaxNum) {
-                    News.info("{}浠诲姟锛寋}灞傦紝宸茬粡杈惧埌褰撳墠妤煎眰璋冨害杞﹁締鏈�澶у��", wrkMast1.getWrkNo(), lev);
-                    return false;
-                }
+//                boolean checkDispatchMaxNum = checkDispatchMaxNum(lev);
+//                if (!checkDispatchMaxNum) {
+//                    News.info("{}浠诲姟锛寋}灞傦紝宸茬粡杈惧埌褰撳墠妤煎眰璋冨害杞﹁締鏈�澶у��", wrkMast1.getWrkNo(), lev);
+//                    return false;
+//                }
 
                 for (ShuttleThread shuttleThread : diffLev) {
                     ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 93cf05c..b5fe763 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -11,7 +11,7 @@
       validation-timeout: 3000
       connection-test-query: select 1
     driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://192.168.10.201:3306/fyxc_shuttle?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://127.0.0.1:3306/fyxc_shuttle?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
     password: root
   mvc:

--
Gitblit v1.9.1