From a3cd273234d56c5a36bd0a793a67e533a2141d6d Mon Sep 17 00:00:00 2001
From: zc <zc@123>
Date: 星期五, 25 四月 2025 08:23:47 +0800
Subject: [PATCH] 初步调试

---
 /dev/null                                                        |    0 
 src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java   |   34 +++++++++++++----
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java      |    8 ++++
 src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java |    2 
 src/main/resources/sql/20250425082153.nb3                        |    0 
 src/main/java/com/zy/asrs/controller/TVController.java           |   46 +---------------------
 src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java  |    4 +-
 7 files changed, 40 insertions(+), 54 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/TVController.java b/src/main/java/com/zy/asrs/controller/TVController.java
index 27109c92..c8b1de2 100644
--- a/src/main/java/com/zy/asrs/controller/TVController.java
+++ b/src/main/java/com/zy/asrs/controller/TVController.java
@@ -245,49 +245,6 @@
         }
         List<LedCommand> commands = new ArrayList<>();
 
-        // 缁勮鍛戒护
-        LedCommand ledCommand = new LedCommand();
-        ledCommand.setWorkNo(wrkMast.getWmsWrkNo());
-        ledCommand.setIoType(wrkMast.getIoType());
-        // 鍑哄簱妯″紡
-        switch (wrkMast.getIoType()) {
-            case 1:
-                ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
-                break;
-            case 10:
-                ledCommand.setTitle("绌烘澘鍏ュ簱");
-                break;
-            case 101:
-                ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
-                break;
-            case 103:
-                ledCommand.setTitle("鎷f枡鍑哄簱");
-                break;
-            case 104:
-                ledCommand.setTitle("骞舵澘鍑哄簱");
-                break;
-            case 107:
-                ledCommand.setTitle("鐩樼偣鍑哄簱");
-                break;
-            case 110:
-                ledCommand.setTitle("绌烘澘鍑哄簱");
-                ledCommand.setEmptyMk(true);
-                break;
-            case 53:
-                ledCommand.setTitle("鎷f枡鍏ュ簱");
-                break;
-            case 57:
-                ledCommand.setTitle("鐩樼偣鍏ュ簱");
-                break;
-            case 54:
-                ledCommand.setTitle("骞舵澘鍏ュ簱");
-                break;
-            default:
-                break;
-        }
-        ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
-        ledCommand.setLocNo(wrkMast.getLocNo());
-        ledCommand.setStaNo(wrkMast.getStaNo());
         if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
             Map<String, Object> param = new HashMap<>();
             param.put("taskNo", wrkMast.getWmsWrkNo());
@@ -381,6 +338,9 @@
                 continue;
             }
             HashMap<String, Object> map = new HashMap<>();
+            if (Cools.isEmpty(shuttleProtocol.getErrorCode())) {
+                continue;
+            }
             int i = Integer.parseInt(shuttleProtocol.getErrorCode());
             if (i > 0) {
                 BasShuttleErr basShuttleErr = basShuttleErrService.queryByCode(i);
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 892adf2..42514ac 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.zy.asrs.domain.enums.NotifyMsgType;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
@@ -216,6 +217,9 @@
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                     if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) {
                         String barcode = staProtocol.getBarcode();
+                        if (Cools.isEmpty(barcode) || "?".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+                            continue;
+                        }
                         // 鍒ゆ柇閲嶅宸ヤ綔妗�
                         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", inSta.getStaNo()).eq("barcode", barcode));
                         if (wrkMast != null && wrkMast.getWrkSts() == WrkStsType.NEW_INBOUND.sts) {
@@ -915,6 +919,10 @@
                     ledThread.error(errMsg);
                 }
             }
+            String barcode = staProtocol.getBarcode();
+            if (Cools.isEmpty(barcode) || "?".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+                return false;
+            }
             if (!staProtocol.isAutoing()) {
                 News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 return false;
diff --git a/src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java
index 7e401d1..fe36b16 100644
--- a/src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java
@@ -489,7 +489,7 @@
             assignCommand.setAuto(true);//鑷姩妯″紡
 
             //鑾峰彇灏忚溅鍒版彁鍗囨満琛岃蛋鍛戒护
-            List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftThread.getLiftLocNo(Utils.getLev(shuttleProtocol.getCurrentLocNo())), NavigationMapType.NORMAL.id, assignCommand, shuttleThread);
+            List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftThread.getLiftLocNo(Utils.getLev(shuttleProtocol.getCurrentLocNo())), NavigationMapType.DFX.id, assignCommand, shuttleThread);
             if (commands == null) {
                 News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
                 return false;
@@ -861,7 +861,7 @@
             assignCommand.setLocNo(wrkMast.getLocNo());//鐩爣搴撲綅
 
             List<ShuttleCommand> commands = new ArrayList<>();
-            Integer mapType = NavigationMapType.NORMAL.id;
+            Integer mapType = NavigationMapType.DFX.id;
 
             List<ShuttleCommand> moveCommands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), wrkMast.getLocNo(), mapType, assignCommand, shuttleThread);
             if (moveCommands == null) {
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 ee64ceb..1013d93 100644
--- a/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
@@ -465,7 +465,7 @@
             assignCommand.setAuto(true);//鑷姩妯″紡
 
             //鑾峰彇灏忚溅鍒版彁鍗囨満琛岃蛋鍛戒护
-            List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftThread.getLiftLocNo(Utils.getLev(shuttleProtocol.getCurrentLocNo())), NavigationMapType.NORMAL.id, assignCommand, shuttleThread);
+            List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftThread.getLiftLocNo(Utils.getLev(shuttleProtocol.getCurrentLocNo())), NavigationMapType.DFX.id, assignCommand, shuttleThread);
             if (commands == null) {
                 News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
                 return false;
diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
index 5fb8a40..bcbe6e4 100644
--- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -30,6 +30,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.rmi.CORBA.Util;
 import java.util.*;
 
 /**
@@ -251,7 +252,7 @@
                 if (wrkMast1 != null) {
                     wrkMast1.setShuttleNo(shuttleProtocol.getShuttleNo());
                     wrkMastService.updateById(wrkMast1);
-                    sameLev.add(0,shuttleThread);
+                    sameLev.add(0, shuttleThread);
                     //return true;
                 }
                 break;
@@ -364,7 +365,8 @@
      */
     public boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) {
         ArrayList<ShuttleThread> diffLev = new ArrayList<>();//涓嶅悓妤煎眰鐨勭┛姊溅
-
+        int lev1 = 0;
+        boolean tongLev = false;
         for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
             //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
             ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
@@ -388,6 +390,13 @@
                 }
             }
             diffLev.add(shuttleThread);
+            if (lev1 != 0) {
+                if (lev1 == Utils.getLev(shuttleProtocol.getCurrentLocNo())) {
+                    tongLev = true;
+                }
+            } else {
+                lev1 = Utils.getLev(shuttleProtocol.getCurrentLocNo());
+            }
         }
 
         //瀵绘壘绂讳换鍔℃ゼ灞傛渶杩戠殑绌挎杞�(涓嶈�冭檻璺ㄦゼ灞傚皬杞︾Щ鍔ㄨ窛绂�)
@@ -422,18 +431,27 @@
                     //褰撳墠绌挎杞﹀簱浣嶅彿
                     String currentLocNo = shuttleProtocol.getCurrentLocNo();
                     int currentLev = Utils.getLev(currentLocNo);
-
                     if (wrkMast1.getIoType() == 101 && currentLocNo.equals(locNo)) {
                         //杞﹁締褰撳墠浣嶇疆宸茬粡鏄洰鏍囧簱浣嶏紝璋冨害璇ヨ溅
                         //缁欏伐浣滄。缁戝畾灏忚溅鍙�
                         diffShuttles.put(-1, shuttleThread);
                     } else {
-                        //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊�
-                        int currentValue = Math.abs(lev - currentLev);
-                        if (diffShuttles.get(currentValue) != null) {
-                            diffShuttles.put(currentValue + 1, shuttleThread);
+                        if (tongLev) {
+                            //褰撳墠绌挎杞︾嚎绋嬪埌鐩爣鍦扮偣璺濈
+                            List<NavigateNode> currentShuttlePath = navigateUtils.calc(currentLocNo, locNo, NavigationMapType.NORMAL.id, Utils.getShuttlePoints(shuttleProtocol.getShuttleNo(), Utils.getLev(currentLocNo)), null);//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘
+                            if (currentShuttlePath == null) {
+                                continue;
+                            }
+                            Integer currentAllDistance = navigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
+                            diffShuttles.put(currentAllDistance, shuttleThread);
                         } else {
-                            diffShuttles.put(currentValue, shuttleThread);
+                            //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊�
+                            int currentValue = Math.abs(lev - currentLev);
+                            if (diffShuttles.get(currentValue) != null) {
+                                diffShuttles.put(currentValue + 1, shuttleThread);
+                            } else {
+                                diffShuttles.put(currentValue, shuttleThread);
+                            }
                         }
                     }
                 }
diff --git a/src/main/resources/sql/20250419211417.nb3 b/src/main/resources/sql/20250419211417.nb3
deleted file mode 100644
index c01c1f8..0000000
--- a/src/main/resources/sql/20250419211417.nb3
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/sql/20250425082153.nb3 b/src/main/resources/sql/20250425082153.nb3
new file mode 100644
index 0000000..2638934
--- /dev/null
+++ b/src/main/resources/sql/20250425082153.nb3
Binary files differ

--
Gitblit v1.9.1