From 8b60bf565eb475c13e39caa305c4415b34d8ec02 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 05 十二月 2025 08:49:19 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NavigateSolution.java |   64 +++++++++++++++++++++++++++++++-
 1 files changed, 62 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigateSolution.java b/src/main/java/com/zy/common/utils/NavigateSolution.java
index b76e86f..e6cb942 100644
--- a/src/main/java/com/zy/common/utils/NavigateSolution.java
+++ b/src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -23,9 +23,9 @@
     //鐢ㄦ潵瀛樻斁宸茬粡鍑虹幇杩囩殑缁撶偣銆�
     Map<String, Integer> bestGMap = new HashMap<>();
 
-    public List<List<NavigateNode>> getStationMap() {
+    public List<List<NavigateNode>> getStationMap(int lev) {
         BasMapService basMapService = SpringUtils.getBean(BasMapService.class);
-        BasMap basMap = basMapService.selectOne(new EntityWrapper<BasMap>().eq("lev", 1));
+        BasMap basMap = basMapService.selectOne(new EntityWrapper<BasMap>().eq("lev", lev));
         if (basMap == null) {
             throw new CoolException("鍦板浘涓嶅瓨鍦�");
         }
@@ -48,6 +48,51 @@
 
                     JSONObject valueObj = JSON.parseObject(map.getString("value"));
                     List<String> directionList = valueObj.getJSONArray("direction").toJavaList(String.class);
+                    navigateNode.setDirectionList(directionList);
+                }else {
+                    navigateNode.setValue(MapNodeType.DISABLE.id);
+                }
+
+                navigateNode.setNodeType(nodeType);
+                navigateNode.setNodeValue(map.getString("value"));
+                navigateNodeRow.add(navigateNode);
+            }
+            navigateNodeList.add(navigateNodeRow);
+        }
+
+        return navigateNodeList;
+    }
+
+    public List<List<NavigateNode>> getRgvTrackMap(int lev) {
+        BasMapService basMapService = SpringUtils.getBean(BasMapService.class);
+        BasMap basMap = basMapService.selectOne(new EntityWrapper<BasMap>().eq("lev", lev));
+        if (basMap == null) {
+            throw new CoolException("鍦板浘涓嶅瓨鍦�");
+        }
+
+        List<List<JSONObject>> dataList = JSON.parseObject(basMap.getData(), List.class);
+
+        List<List<NavigateNode>> navigateNodeList = new ArrayList<>();
+        for (int i = 0; i < dataList.size(); i++) {
+            List<JSONObject> row = dataList.get(i);
+            List<NavigateNode> navigateNodeRow = new ArrayList<>();
+            for (int j = 0; j < row.size(); j++) {
+                JSONObject map = row.get(j);
+                NavigateNode navigateNode = new NavigateNode(i, j);
+
+                String nodeType = map.getString("type");
+                if(nodeType == null) {
+                    navigateNode.setValue(MapNodeType.DISABLE.id);
+                }else if(nodeType.equals("rgv")){
+                    navigateNode.setValue(MapNodeType.NORMAL_PATH.id);
+                    JSONObject valueObj = JSON.parseObject(map.getString("value"));
+
+                    //RGV鏆備笉鎺у埗琛岃蛋鏂瑰悜锛岄粯璁や笂涓嬪乏鍙抽兘鍙蛋
+                    List<String> directionList = new ArrayList<>();
+                    directionList.add("top");
+                    directionList.add("bottom");
+                    directionList.add("left");
+                    directionList.add("right");
                     navigateNode.setDirectionList(directionList);
                 }else {
                     navigateNode.setValue(MapNodeType.DISABLE.id);
@@ -184,6 +229,21 @@
         return null;
     }
 
+    public NavigateNode findTrackSiteNoNavigateNode(List<List<NavigateNode>> map, int trackSiteNo) {
+        for(int x = 0; x < map.size(); x++) {
+            for(int y = 0; y < map.get(0).size(); y++) {
+                NavigateNode node = map.get(x).get(y);
+                if("rgv".equals(node.getNodeType())) {
+                    JSONObject valueObj = JSON.parseObject(node.getNodeValue());
+                    if(valueObj.getInteger("trackSiteNo") == trackSiteNo) {
+                        return node;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
     //------------------A*鍚彂鍑芥暟------------------//
 
     //璁$畻閫氳繃鐜板湪鐨勭粨鐐圭殑浣嶇疆鍜屾渶缁堢粨鐐圭殑浣嶇疆璁$畻H鍊�(鏇煎搱椤挎硶锛氬潗鏍囧垎鍒彇宸�肩浉鍔�)

--
Gitblit v1.9.1