From 7f8a8351ecb3634f3decb58057daf24e59dd8d49 Mon Sep 17 00:00:00 2001
From: czkh <czkh@163.com>
Date: 星期二, 18 十一月 2025 13:28:35 +0800
Subject: [PATCH] 修复解决双工位堆垛机移库任务下发后瞬间完成问题

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   45 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 32 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 74ec644..6cb4231 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -60,7 +60,6 @@
  */
 @Slf4j
 @Service("mainService")
-@Transactional
 public class MainServiceImpl {
 
     public static final long COMMAND_TIMEOUT = 5 * 1000;
@@ -864,7 +863,14 @@
 //            }
 
             // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
-            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getForkPos() == 0 && crnProtocol.getTaskNo() == 0 && crnProtocol.getTaskNoTwo() == 0) {
+            if (
+                    crnProtocol.getStatusType() == CrnStatusType.IDLE
+                    && crnProtocol.getModeType() == CrnModeType.AUTO
+                    && crnProtocol.getForkPos() == 0
+                    && crnProtocol.getTaskNo() == 0
+                    && crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
+                    && crnProtocol.getForkPosTwo() == 0
+                    && crnProtocol.getTaskNoTwo() == 0) {
                 News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
                 if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 0) {
                     //News.error("宸ヤ綅1鏃犵墿锛屽伐浣�2鏃犵墿");
@@ -2006,11 +2012,6 @@
             return;
         }
 
-        // 鍫嗗灈鏈烘帶鍒惰繃婊�
-        if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-            return;
-        }
-
         // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
         if (wrkMastMapper.selectWorking(slave.getId()) != null) {
             return;
@@ -2042,7 +2043,20 @@
             }
         }
 
-
+        if (crnStation == 0) {
+            return;
+        }else if(crnStation == 1) {
+            // 鍫嗗灈鏈烘帶鍒惰繃婊�
+            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+                return;
+            }
+        }else if(crnStation == 2) {
+            // 鍫嗗灈鏈烘帶鍒惰繃婊�
+            if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+                return;
+            }
+        }else {
+            }
 
         News.warnNoLog("" + mark + " - 3" + " - 3" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), sta.getRow1().shortValue(), sta.getBay1().shortValue(), sta.getLev1().shortValue());
 
@@ -2093,16 +2107,21 @@
             }
             //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
             if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
-                if ((System.currentTimeMillis() - crnProtocol.getLastCommandTime()) < 1000 * 60) {
+                if (crnProtocol.getTaskNo() == 9999) {
+                    crnThread.setResetFlag(true);
+                    continue;
+                }
+
+                if ((System.currentTimeMillis() - crnProtocol.getLastCommandTime()) < 1000 * 6) {
                     News.error("" + mark + " - 0" + " - 鍫嗗灈鏈烘寚浠ょ瓑寰呯‘璁ゅ畬鎴愯繃蹇紓甯革紝浠诲姟鍙�:" + crnProtocol.getTaskNo());
                     continue;
                 }
 
                 News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
-                if (crnProtocol.getTaskNo() == 9999) {
-                    crnThread.setResetFlag(true);
-                    continue;
-                }
+//                if (crnProtocol.getTaskNo() == 9999) {
+//                    crnThread.setResetFlag(true);
+//                    continue;
+//                }
                 // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
                 WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
                 if (wrkMast == null) {

--
Gitblit v1.9.1