From 7f42a1951c9aea0f03443c8b8f65b79df7168b36 Mon Sep 17 00:00:00 2001
From: zc <zc@123>
Date: 星期一, 05 五月 2025 09:12:53 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java   |    7 ++-
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java      |   20 +++++++---
 src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java |   36 ++++++++++++++++++
 src/main/java/com/zy/common/service/CommonService.java           |    4 +-
 4 files changed, 57 insertions(+), 10 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 27bc4e9..9215770 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -36,13 +36,11 @@
 import com.zy.core.thread.impl.FyDevpThread;
 import com.zy.core.thread.impl.NormalLedThread;
 import com.zy.system.service.ConfigService;
-import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.io.IOException;
 import java.util.*;
 
 /**
@@ -486,13 +484,22 @@
             if (staProtocol == null) {
                 continue;
             }
-
+            List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.OUTBOUND_SHUTTLE_RUN.sts, WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts).in("sta_no", 1013, 1024));
+            if (wrkMastList != null && wrkMastList.size() >= 2) {
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃烦杩囷紝瀛樺湪2鏉″伐浣滄。", wrkMast.getWrkNo());
+                continue;
+            }
             if (!staProtocol.isAutoing()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 continue;
             }
             if (!isOutEnable(devpThread, wrkMast.getStaNo())) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                continue;
+            }
+            StaProtocol staProtocol2 = station.get(wrkMast.getStaNo() + 2);
+            if (staProtocol2.isLoading()) {
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿222", wrkMast.getWrkNo(), wrkMast.getStaNo() + 2);
                 continue;
             }
             String locNo = "1200301";
@@ -502,7 +509,7 @@
 
             boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP");
             if (!dispatchShuttle) {
-                News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
                 continue;
             }
             WrkMast wrkMast2 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo());
@@ -1471,6 +1478,7 @@
                                 continue;//灏忚溅鏈埌杈剧洰鏍囧眰
                             }
                             wrkMast.setWrkSts(WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts);
+                            wrkMast.setLiftNo(null);
                             shuttleThread.setSyncTaskNo(0);
                         } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) {
                             //310.灏忚溅绉诲姩涓� ==> 311.灏忚溅绉诲姩瀹屾垚
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 1013d93..8b296a1 100644
--- a/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
@@ -34,6 +34,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Slf4j
 @Service("noLiftOutService")
@@ -65,6 +66,7 @@
 
     /**
      * 浠庢病鏈夋彁鍗囨満渚у嚭搴擄紝鏈変袱绉嶆儏鍐碉紝涓�绉�1锛�5搴撳埌鍚屽眰锛屼竴绉嶉潪1锛�5搴撳埌1锛�5锛屽垯闇�瑕佹彁鍗囨満
+     *
      * @param wrkMast
      */
     public void shuttleMoveExecute(WrkMast wrkMast, Integer staNo, Integer lev) {
@@ -744,6 +746,23 @@
                 return false;
             }
 
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            Map<Integer, StaProtocol> station = devpThread.getStation();
+            StaProtocol staProtocol2 = null;
+            if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) {
+                staProtocol2 = station.get(1015);
+                if (staProtocol2.isLoading()) {
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12432", wrkMast.getWrkNo(), 1015);
+                    return false;
+                }
+            } else {
+                staProtocol2 = station.get(1026);
+                if (staProtocol2.isLoading()) {
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12341", wrkMast.getWrkNo(), 1026);
+                    return false;
+                }
+            }
+
             ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
             assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙�
             assignCommand.setTaskMode(ShuttleTaskModeType.MOVE_LOC_NO.id);//灏忚溅绉诲簱浠诲姟
@@ -884,6 +903,23 @@
                 News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
                 return false;
             }
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            Map<Integer, StaProtocol> station = devpThread.getStation();
+            StaProtocol staProtocol2 = null;
+            if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) {
+                staProtocol2 = station.get(1015);
+                if (staProtocol2.isLoading()) {
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12432", wrkMast.getWrkNo(), 1015);
+                    return false;
+                }
+            } else {
+                staProtocol2 = station.get(1026);
+                if (staProtocol2.isLoading()) {
+                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12341", wrkMast.getWrkNo(), 1026);
+                    return false;
+                }
+            }
+
 
             if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) {
                 return false;
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 6807dbb..3695334 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -175,7 +175,7 @@
     }
 
     //鍏ュ簱浠诲姟
-    public boolean createInTask(CreateInTaskParam param) {
+    public synchronized boolean createInTask(CreateInTaskParam param) {
         Date now = new Date();
         LocMast locMast = locMastService.queryByLoc(param.getLocNo());
         if (null == locMast) {
@@ -220,7 +220,7 @@
     }
 
     //鍑哄簱浠诲姟
-    public boolean createOutTask(CreateOutTaskParam param) {
+    public synchronized boolean createOutTask(CreateOutTaskParam param) {
         Date now = new Date();
         LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
         if (null == locMast) {
diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
index 10bd959..68a2f30 100644
--- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -30,7 +30,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.rmi.CORBA.Util;
 import java.util.*;
 
 /**
@@ -363,7 +362,7 @@
     /**
      * 璋冨害杞﹁締
      */
-    public boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) {
+    public synchronized boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) {
         ArrayList<ShuttleThread> diffLev = new ArrayList<>();//涓嶅悓妤煎眰鐨勭┛姊溅
         int lev1 = 0;
         boolean tongLev = false;
@@ -389,6 +388,10 @@
                     continue;//灏忚溅琚鐢�
                 }
             }
+            WrkMast wrkMast = wrkMastService.selectByShuttleNo(basShuttle.getShuttleNo());
+            if(wrkMast!=null){
+                continue;
+            }
             diffLev.add(shuttleThread);
             if (lev1 != 0) {
                 if (lev1 == Utils.getLev(shuttleProtocol.getCurrentLocNo())) {

--
Gitblit v1.9.1