From 8b8a2086509e28bb902166aa35e4c287eb906621 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 30 六月 2025 15:28:39 +0800
Subject: [PATCH] #禁止跨层

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 41 insertions(+), 18 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index a0abfe3..66eacea 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -23,10 +23,7 @@
 import com.zy.asrs.wcs.core.model.command.LiftCommand;
 import com.zy.asrs.wcs.core.model.enums.*;
 import com.zy.asrs.wcs.core.service.*;
-import com.zy.asrs.wcs.core.utils.OpenUtils;
-import com.zy.asrs.wcs.core.utils.RedisUtil;
-import com.zy.asrs.wcs.core.utils.ShuttleDispatcher;
-import com.zy.asrs.wcs.core.utils.Utils;
+import com.zy.asrs.wcs.core.utils.*;
 import com.zy.asrs.wcs.rcs.News;
 import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
 import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
@@ -95,6 +92,8 @@
     private OpenUtils openUtils;
     @Autowired
     private LiftAction liftAction;
+    @Autowired
+    private NavigateUtils navigateUtils;
 
     /**
      * 缁勬墭
@@ -102,6 +101,10 @@
      */
     public synchronized void generateInboundWrk() {
         try {
+            List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskCtg,7));
+            if (!Cools.isEmpty(tasks)){
+                return;
+            }
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             List<Device> list = deviceService.list(new LambdaQueryWrapper<Device>()
                     .eq(Device::getDeviceType, DeviceCtgType.CONVEYOR.val())
@@ -169,6 +172,7 @@
                     if (staProtocol.isAutoing() && staProtocol.isLoading()
                             && staProtocol.isInEnable()
                             && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
+                            && staProtocol.getIsIn() == (short)1
                             && staProtocol.isPakMk()
                     ) {
 
@@ -668,6 +672,11 @@
                             // generate motion list
                             List<Motion> motionList = analyzeService.generateMotion(task);
                             if (motionList.isEmpty()) {
+                                task.setShuttleNo(null);//淇濆瓨绌挎杞﹀彿
+                                task.setUpdateTime(new Date());
+                                if (!taskService.updateById(task)) {
+                                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                                }
                                 continue;
                             }
                             motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
@@ -806,15 +815,13 @@
 //                    continue;
 //                }
 
-//                //鍚屽簱浣嶇粍鏍¢獙
-//                List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo());
-//                List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc);
-//                if (!outerLocMasts.isEmpty()) {
-//                    News.info("{}浠诲姟锛屾祬搴撲綅瀛樺湪璐х墿锛岀郴缁熺瓑寰呬腑", wrkMast.getWrkNo());
-//                    continue;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟
-//                }
+                //妫�娴嬭揣鐗╂槸鍚﹀彲鍑�
+                boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(task.getOriginLoc(), task.getHostId());
+                if(!checkLocPathIsAvailable) {
+                    continue;
+                }
 
-                if (Cools.isEmpty(task.getShuttleNo())) {
+                if (Cools.isEmpty(task.getShuttleNo()) || task.getShuttleNo() ==0) {
                     //鍒嗛厤灏忚溅
                     //鎼滅储绌洪棽杞�
                     ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task);
@@ -834,6 +841,11 @@
                 // generate motion list
                 List<Motion> motionList = analyzeService.generateMotion(task);
                 if (Cools.isEmpty(motionList)) {
+                    task.setShuttleNo(0);//淇濆瓨绌挎杞﹀彿
+                    task.setUpdateTime(new Date());
+                    if (!taskService.updateById(task)) {
+                        News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                    }
                     log.error("鍑哄簱 ===>> 鏆傛椂娌℃湁绌洪棽灏忚溅, 浠诲姟鍙�={}", task.getTaskNo());
                     continue;
                 }
@@ -873,6 +885,11 @@
             // generate motion list
             List<Motion> motionList = analyzeService.generateShuttleMoveMotion(task);
             if (motionList.isEmpty()) {
+                task.setShuttleNo(null);//淇濆瓨绌挎杞﹀彿
+                task.setUpdateTime(new Date());
+                if (!taskService.updateById(task)) {
+                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                }
                 continue;
             }
             motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
@@ -934,12 +951,12 @@
             }
 
             //鎼滅储鍏朵粬妤煎眰鍏呯數妗�
-            List<ShuttleChargeSta> list2 = shuttleChargeStaService.list(new LambdaQueryWrapper<ShuttleChargeSta>()
-                    .notIn(ShuttleChargeSta::getDeviceLev, lev)
-                    .eq(ShuttleChargeSta::getStatus, 1));
-            if (!list2.isEmpty()) {
-                allChargeLoc.addAll(list2);
-            }
+//            List<ShuttleChargeSta> list2 = shuttleChargeStaService.list(new LambdaQueryWrapper<ShuttleChargeSta>()
+//                    .notIn(ShuttleChargeSta::getDeviceLev, lev)
+//                    .eq(ShuttleChargeSta::getStatus, 1));
+//            if (!list2.isEmpty()) {
+//                allChargeLoc.addAll(list2);
+//            }
 
             //娌℃湁鎵惧埌鍏呯數妗�
             if (allChargeLoc.isEmpty()) {
@@ -1293,6 +1310,12 @@
     // 瑙f瀽灏忚溅杞借揣绉诲姩宸ヤ綔妗�
     public synchronized void analyzeLadenMoveTask() {
         for (Task task : taskService.selectWaitAnalyzeLadenMoveTask()) {
+            //妫�娴嬭揣鐗╂槸鍚﹀彲鍑�
+            boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(task.getOriginLoc(), task.getHostId());
+            if(!checkLocPathIsAvailable) {
+                continue;
+            }
+
             if (Cools.isEmpty(task.getShuttleNo())) {
                 //鍒嗛厤灏忚溅
                 //鎼滅储绌洪棽杞�

--
Gitblit v1.9.1