From 9c3ec76e415cd709939da617e020af13e0d98008 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期三, 18 三月 2026 11:15:50 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   49 ++++++++++++++++++++++++++++---------------------
 1 files changed, 28 insertions(+), 21 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 d235049..89cf71f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -863,31 +863,36 @@
             // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
                     && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
+                if (crn.getId() == 5){
+                    continue;
+                }
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
                 if (crnProtocol.getLastIo().equals("I")) {
                     if (basCrnp.getInEnable().equals("Y")) {
-                        if (crn.getId() == 5){
-                            continue;
+                        log.info("杩涘叆鍏ュ簱绋嬪簭,crn:"+crn.getId());
+                        if (this.crnStnToLoc(crn, crnProtocol)){
+                            crnProtocol.setLastIo("O");
                         }
-                        this.crnStnToLoc(crn, crnProtocol); //  鍏ュ簱
-                        crnProtocol.setLastIo("O");
                     } else if (basCrnp.getOutEnable().equals("Y")) {
-                        this.locToCrnStn(crn, crnProtocol); //  鍑哄簱
-                        crnProtocol.setLastIo("I");
+                        log.info("杩涘叆鍑哄簱绋嬪簭,crn:"+crn.getId());
+                        if (this.locToCrnStn(crn, crnProtocol)){
+                            crnProtocol.setLastIo("I");
+                        }
+
                     }
                 }
                 // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
                 else if (crnProtocol.getLastIo().equals("O")) {
                     if (basCrnp.getOutEnable().equals("Y")) {
-                        this.locToCrnStn(crn, crnProtocol); //  鍑哄簱
-                        crnProtocol.setLastIo("I");
-                    } else if (basCrnp.getInEnable().equals("Y")) {
-                        if (crn.getId() == 5){
-                            continue;
+                        log.info("杩涘叆鍑哄簱绋嬪簭,crn:"+crn.getId());
+                        if (this.locToCrnStn(crn, crnProtocol)){
+                            crnProtocol.setLastIo("I");
                         }
-
-                        this.crnStnToLoc(crn, crnProtocol); //  鍏ュ簱
-                        crnProtocol.setLastIo("O");
+                    } else if (basCrnp.getInEnable().equals("Y")) {
+                        log.info("杩涘叆鍏ュ簱绋嬪簭,crn:"+crn.getId());
+                        if (this.crnStnToLoc(crn, crnProtocol)){
+                            crnProtocol.setLastIo("O");
+                        }
                     }
                 }
             }
@@ -958,7 +963,7 @@
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
      */
-    public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
+    public synchronized boolean crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
         for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
             boolean flag = false;
             // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
@@ -1001,12 +1006,12 @@
 
             // 鍫嗗灈鏈烘帶鍒惰繃婊�
             if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-                continue;
+                return false;
             }
 
             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
             if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                continue;
+                return false;
             }
 
             // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
@@ -1087,13 +1092,14 @@
                 }
             }
         }
+        return true;
     }
 
     /**
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
-    public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
+    public synchronized boolean locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
 //            WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
@@ -1143,7 +1149,7 @@
                     // 鍫嗗灈鏈烘帶鍒惰繃婊�
                     if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
 //                        continue;
-                        break;
+                      return false;
                     }
 
                     // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
@@ -1194,7 +1200,7 @@
 
                     // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
                     if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                        break;
+                        return false;
 //                        return;
                     }
 
@@ -1227,6 +1233,7 @@
                 }
             }
         }
+        return true;
     }
 
 //    /**
@@ -3540,7 +3547,7 @@
             }
         }
         if (command.getTaskNo2() > 0){
-            List<WrkMastSta> wrkMastSta1 = wrkMastStaService.selectBywrkNoHistoricalTasks2(command.getRgvNo(),command.getTaskNo2());
+            List<WrkMastSta> wrkMastSta1 = wrkMastStaService.selectBywrkNoHistoricalTasks(command.getRgvNo(),command.getTaskNo2());
             if (!Cools.isEmpty(wrkMastSta1)){
                 for (WrkMastSta wrkMastSta :wrkMastSta1){
                     wrkMastStaService.deleteById(wrkMastSta);

--
Gitblit v1.9.1