From 7068307fa5a395b2027e9dd9ce8b2a4819d8ee9d Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期六, 16 八月 2025 15:33:14 +0800
Subject: [PATCH] 修复4号堆垛机不出一个入一个情况

---
 src/main/java/com/zy/service/impl/MainServiceImpl.java |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index f4a0b8d..4b06fd2 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -41,6 +41,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -620,15 +621,23 @@
                         crnProtocol.setLastIo("O");
                     } else if (basCrnp.getOutEnable().equals("Y")) {
                         //mark - 2 - ....
-                        this.locToCrnStn(crn, crnProtocol,mark); //  鍑哄簱
+                        AtomicInteger atomicInteger = new AtomicInteger(mark);
+                        this.locToCrnStn(crn, crnProtocol,atomicInteger); //  鍑哄簱
                         crnProtocol.setLastIo("I");
+                        if(atomicInteger.get() == 99) { // 涓嬩竴娆¤繕鏄嚭搴�
+                            crnProtocol.setLastIo("O");
+                        }
                     }
                 }
                 // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
                 else if (crnProtocol.getLastIo().equals("O")) {
                     if (basCrnp.getOutEnable().equals("Y")) {
-                        this.locToCrnStn(crn, crnProtocol,mark); //  鍑哄簱
+                        AtomicInteger atomicInteger = new AtomicInteger(mark);
+                        this.locToCrnStn(crn, crnProtocol,atomicInteger); //  鍑哄簱
                         crnProtocol.setLastIo("I");
+                        if(atomicInteger.get() == 99) { // 涓嬩竴娆¤繕鏄嚭搴�
+                            crnProtocol.setLastIo("O");
+                        }
                     } else if (basCrnp.getInEnable().equals("Y")) {
                         this.crnStnToLoc(crn, crnProtocol,mark); //  鍏ュ簱
                         crnProtocol.setLastIo("O");
@@ -749,7 +758,7 @@
                         wrkMast.setIoPri(14D);
                         wrkMastMapper.updateById(wrkMast);
                         // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                        moveLocForDeepLoc(slave, shallowLoc,mark);
+                        moveLocForDeepLoc(slave, shallowLoc,new AtomicInteger(mark));
                         // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
 //                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
                     }
@@ -827,7 +836,7 @@
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
-    public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) {
+    public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,AtomicInteger mark) {
         News.warnNoLog(""+mark+" - 2"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�");
         boolean crnAvailableOut = false;
         Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","removeCrnAvailableOut"));
@@ -999,6 +1008,7 @@
                                 wrkMast1.setSourceStaNo(1056);
                                 wrkMastService.updateById(wrkMast1);
                             }
+                            mark.set(99);
                             break;
                         }
                     }
@@ -1727,7 +1737,7 @@
      * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
      * tip锛氬悓姝�
      */
-    private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,Integer mark) {
+    private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,AtomicInteger mark) {
 
         // 鍙湁208L鑳芥斁11灞�
         String model = null;

--
Gitblit v1.9.1