From dad4b7fd3a7fcaed73d28f0ebd9e90d86ca21225 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 22 七月 2025 12:34:51 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NavigateMapData.java |   63 ++++++++++++++++++++++++++++++-
 1 files changed, 60 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigateMapData.java b/src/main/java/com/zy/common/utils/NavigateMapData.java
index c8e72b9..3df92d7 100644
--- a/src/main/java/com/zy/common/utils/NavigateMapData.java
+++ b/src/main/java/com/zy/common/utils/NavigateMapData.java
@@ -22,7 +22,9 @@
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * A*绠楁硶鍦板浘鑾峰彇绫�
@@ -30,6 +32,8 @@
 @Component
 public class NavigateMapData {
 
+    @Autowired
+    private RedisUtil redisUtil;
     @Autowired
     private DeviceConfigService deviceConfigService;
     @Autowired
@@ -67,7 +71,6 @@
      * 灏濊瘯浠巖edis鑾峰彇鏁版嵁
      */
     public int[][] getDataFromRedis(Integer lev, List<NavigationMapType> mapTypes, List<int[]> whitePoints, List<int[]> shuttlePoints) {
-        RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
         Object o = redisUtil.get(RedisKeyType.MAP.key + lev);
         if (o == null) {
             return null;
@@ -99,8 +102,27 @@
         return map;
     }
 
-    //鑾峰彇JSON鏍煎紡鏁版嵁
+    //鑾峰彇瀹炴椂鍦板浘-JSON鏍煎紡鏁版嵁
     public List<List<MapNode>> getJsonData(Integer lev, List<NavigationMapType> mapTypes, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+        try {
+            Object data = redisUtil.get(RedisKeyType.MAP.key + lev);
+            if (data == null) {
+                return null;
+            }
+
+            BasMap basMap = JSON.parseObject(data.toString(), BasMap.class);
+            //瑙f瀽json鍦板浘鏁版嵁
+            ArrayList arrayList = JSON.parseObject(basMap.getData(), ArrayList.class);
+            List<List<MapNode>> lists = filterMap(mapTypes, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
+            return lists;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    //鑾峰彇鍘熷鍦板浘-JSON鏍煎紡鏁版嵁
+    public List<List<MapNode>> getJsonOriginData(Integer lev, List<NavigationMapType> mapTypes, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         try {
             BasMap basMap = basMapService.selectLatestMap(lev);
             String originData = basMap.getOriginData();
@@ -158,9 +180,14 @@
                 lists = loadShuttle(lists, shuttlePoints);
             }
 
-            if (mapType.equals(NavigationMapType.SHUTTLE)) {
+            if (mapType.equals(NavigationMapType.LIFT)) {
                 //鍔犺浇璐у弶鎻愬崌鏈虹偣浣�
                 lists = loadForkLift(lists, lev);
+            }
+
+            if(mapType.equals(NavigationMapType.PATH_LOCK)) {
+                //鍔犺浇璺緞閿�
+                lists = loadPathLock(lists, lev);
             }
         }
 
@@ -339,4 +366,34 @@
         return lists;
     }
 
+    //鍔犺浇璺緞閿�
+    public List<List<MapNode>> loadPathLock(List<List<MapNode>> lists, Integer lev) {
+        try {
+            HashMap<String, Object> lockMap = new HashMap<>();
+            Object o = redisUtil.get(RedisKeyType.LOCK_MAP_NODES.key + lev);
+            if (o != null) {
+                lockMap = (HashMap<String, Object>) o;
+            }
+
+            for (Map.Entry<String, Object> entry : lockMap.entrySet()) {
+                String key = entry.getKey();
+                int row = Utils.getRow(key);
+                int bay = Utils.getBay(key);
+
+                List<MapNode> list = lists.get(row);
+                MapNode mapNode = list.get(bay);
+
+                //鑺傜偣璁剧疆鎴愯矾寰勯攣
+                mapNode.setValue(MapNodeType.LOCK.id);
+
+                //鏇存柊list
+                list.set(bay, mapNode);
+                lists.set(row, list);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return lists;
+    }
+
 }

--
Gitblit v1.9.1