From 51379a2115bc090832c7a79c069a1a646d9e0d10 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 18 三月 2026 14:47:46 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NavigateUtils.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 1529d69..56e7fd5 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -89,6 +89,12 @@
 //            throw new CoolException("鏈壘鍒拌璺緞");
             return new ArrayList<>();
         }
+        Map<Integer, StationProtocol> statusMap = loadStationStatusMap();
+        allList = filterNonAutoStationPaths(allList, statusMap);
+        if (allList.isEmpty()) {
+            News.info("[WCS Debug] 绔欑偣璺緞鍊欓�夊叏閮ㄨ杩囨护锛屽瓨鍦ㄩ潪鑷姩绔欑偣,startStationId={},endStationId={}", startStationId, endStationId);
+            return new ArrayList<>();
+        }
         News.info("[WCS Debug] 绔欑偣璺緞璁$畻瀹屾垚锛岃�楁椂锛歿}ms", System.currentTimeMillis() - startTime);
 
         startTime = System.currentTimeMillis();
@@ -573,6 +579,35 @@
         return stationIdList;
     }
 
+    private List<List<NavigateNode>> filterNonAutoStationPaths(List<List<NavigateNode>> allList,
+                                                               Map<Integer, StationProtocol> statusMap) {
+        if (allList == null || allList.isEmpty() || statusMap == null || statusMap.isEmpty()) {
+            return allList;
+        }
+
+        List<List<NavigateNode>> result = new ArrayList<>();
+        for (List<NavigateNode> path : allList) {
+            if (path == null || path.isEmpty()) {
+                continue;
+            }
+            if (containsNonAutoStation(path, statusMap)) {
+                continue;
+            }
+            result.add(path);
+        }
+        return result;
+    }
+
+    private boolean containsNonAutoStation(List<NavigateNode> path, Map<Integer, StationProtocol> statusMap) {
+        for (Integer stationId : extractStationIdList(path)) {
+            StationProtocol protocol = statusMap.get(stationId);
+            if (protocol != null && !protocol.isAutoing()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     private Map<Integer, StationProtocol> loadStationStatusMap() {
         Map<Integer, StationProtocol> statusMap = new HashMap<>();
         try {

--
Gitblit v1.9.1