From 9a516a0f650c3192071a20431789ea3942fbba8d Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 06 二月 2025 16:52:20 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NavigateMapUtils.java |   13 +++++++------
 src/main/java/com/zy/common/model/NavigateNode.java     |    1 +
 src/main/java/com/zy/common/utils/NavigateUtils.java    |   10 ++++++++--
 src/main/java/com/zy/common/utils/NavigateSolution.java |   12 ++++++++++--
 4 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/common/model/NavigateNode.java b/src/main/java/com/zy/common/model/NavigateNode.java
index dbe37d6..744fec3 100644
--- a/src/main/java/com/zy/common/model/NavigateNode.java
+++ b/src/main/java/com/zy/common/model/NavigateNode.java
@@ -20,6 +20,7 @@
     private Boolean isInflectionPoint;//鏄惁涓烘嫄鐐�
     private String direction;//琛岃蛋鏂瑰悜
     private Integer moveDistance;//琛岃蛋璺濈
+    private Integer nodeValue;//鑺傜偣鏁版嵁
 
     public NavigateNode(int x, int y) {
         this.x = x;
diff --git a/src/main/java/com/zy/common/utils/NavigateMapUtils.java b/src/main/java/com/zy/common/utils/NavigateMapUtils.java
index 1308af1..308cd55 100644
--- a/src/main/java/com/zy/common/utils/NavigateMapUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateMapUtils.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasMap;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.MapNode;
@@ -42,7 +43,11 @@
             ArrayList arrayList = JSON.parseObject(basMap.getData(), ArrayList.class);
             //甯﹀皬杞﹀湴鍥�
             List<List<MapNode>> listsHasShuttle = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, shuttlePoints);//鑾峰彇甯﹀皬杞﹀湴鍥炬暟鎹�
-            List<List<MapNode>> lists = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, null);//鑾峰彇鍏ㄩ儴鍦板浘鏁版嵁
+
+            //鑾峰彇鍏ㄩ儴鍦板浘鏁版嵁
+            List<List<MapNode>> lists = navigateMapData.rebuildData(arrayList);
+            //杞藉叆搴撲綅淇℃伅
+            lists = navigateMapData.loadLocMast(NavigationMapType.NONE.id, lists, lev, null);
 
             //妫�娴嬭矾寰勬槸鍚﹁閿佸畾
             if (lock) {
@@ -59,7 +64,6 @@
             }
 
             //灏濊瘯閿佸畾/瑙i攣璺緞
-            List<List<MapNode>> realMap = navigateMapData.getJsonData(nodes.get(0).getZ(), -1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
             for (NavigateNode node : nodes) {
                 if (node.getZ() != lev) {
                     continue;
@@ -70,10 +74,7 @@
                 if (lock) {
                     mapNode.setValue(MapNodeType.LOCK.id);//绂佺敤搴撲綅
                 } else {
-                    //鑾峰彇鍘熷鑺傜偣鏁版嵁
-                    List<MapNode> rows = realMap.get(node.getX());
-                    MapNode col = rows.get(node.getY());
-                    mapNode.setValue(col.getValue());//鎭㈠搴撲綅
+                    mapNode.setValue(node.getNodeValue());//鎭㈠鍘熷鑺傜偣鏁版嵁
                 }
 
                 listX.set(node.getY(), mapNode);
diff --git a/src/main/java/com/zy/common/utils/NavigateSolution.java b/src/main/java/com/zy/common/utils/NavigateSolution.java
index 13df2e2..1967be1 100644
--- a/src/main/java/com/zy/common/utils/NavigateSolution.java
+++ b/src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -195,11 +195,13 @@
                 if (is_valid(x + 1, y))
                 {
                     NavigateNode node = new NavigateNode(x + 1, y);
+                    node.setNodeValue(map[x + 1][y]);
                     neighbour_node.add(node);
                 }
                 if (is_valid(x - 1, y))
                 {
-                    NavigateNode node = new NavigateNode(x -1, y);
+                    NavigateNode node = new NavigateNode(x - 1, y);
+                    node.setNodeValue(map[x - 1][y]);
                     neighbour_node.add(node);
                 }
             }
@@ -209,11 +211,13 @@
                 if (is_valid(x, y + 1))
                 {
                     NavigateNode node = new NavigateNode(x, y + 1);
+                    node.setNodeValue(map[x][y + 1]);
                     neighbour_node.add(node);
                 }
                 if (is_valid(x, y - 1))
                 {
                     NavigateNode node = new NavigateNode(x, y - 1);
+                    node.setNodeValue(map[x][y - 1]);
                     neighbour_node.add(node);
                 }
             }
@@ -223,11 +227,13 @@
                 if (is_valid(x, y + 1))
                 {
                     NavigateNode node = new NavigateNode(x, y + 1);
+                    node.setNodeValue(map[x][y + 1]);
                     neighbour_node.add(node);
                 }
                 if (is_valid(x, y - 1))
                 {
                     NavigateNode node = new NavigateNode(x, y - 1);
+                    node.setNodeValue(map[x][y - 1]);
                     neighbour_node.add(node);
                 }
             }
@@ -237,11 +243,13 @@
                 if (is_valid(x + 1, y))
                 {
                     NavigateNode node = new NavigateNode(x + 1, y);
+                    node.setNodeValue(map[x + 1][y]);
                     neighbour_node.add(node);
                 }
                 if (is_valid(x - 1, y))
                 {
-                    NavigateNode node = new NavigateNode(x -1, y);
+                    NavigateNode node = new NavigateNode(x - 1, y);
+                    node.setNodeValue(map[x - 1][y]);
                     neighbour_node.add(node);
                 }
             }
diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 22d5fab..cb21ea1 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -48,14 +48,17 @@
 
         //鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑
         int lev = Utils.getLev(startPoint);
+        NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
+        int[][] map = solution.map;
 
         //鍒濆鍖栧紑濮嬭妭鐐�
         NavigateNode start = new NavigateNode(startArr[0], startArr[1]);
         //寮�濮嬭妭鐐规棤鐖惰妭鐐�
         start.setFather(null);
+        start.setNodeValue(map[startArr[0]][startArr[1]]);
 
         NavigateNode end = new NavigateNode(endArr[0], endArr[1]);
-        NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
+        end.setNodeValue(map[endArr[0]][endArr[1]]);
         //寮�濮嬭妭鐐癸紝涓嶇撼鍏ョ鐢ㄨ妭鐐瑰唴璁$畻
 
         NavigateNode res_node = solution.astarSearchJava(start, end);
@@ -118,14 +121,17 @@
 
         //鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑
         int lev = Utils.getLev(startPoint);
+        NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
+        int[][] map = solution.map;
 
         //鍒濆鍖栧紑濮嬭妭鐐�
         NavigateNode start = new NavigateNode(startArr[0], startArr[1]);
+        start.setNodeValue(map[startArr[0]][startArr[1]]);
         //寮�濮嬭妭鐐规棤鐖惰妭鐐�
         start.setFather(null);
 
         NavigateNode end = new NavigateNode(endArr[0], endArr[1]);
-        NavigateSolution solution = new NavigateSolution(mapType, lev, whiteList, shuttlePoints);
+        end.setNodeValue(map[endArr[0]][endArr[1]]);
         //寮�濮嬭妭鐐癸紝涓嶇撼鍏ョ鐢ㄨ妭鐐瑰唴璁$畻
 
         String pathStr = solution.astarSearchPython(start, end, pythonCalcPath);

--
Gitblit v1.9.1