From d193355c76cfbec572408f9a256c970699c9a542 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 18 三月 2026 15:12:55 +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