From ff3b5df7015b2f2c5e24d9973a7b443309d8e579 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期六, 19 七月 2025 18:07:29 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NavigateMapData.java |   64 +++++++++++++++++++-------------
 1 files changed, 38 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigateMapData.java b/src/main/java/com/zy/common/utils/NavigateMapData.java
index f0b5cb9..c8e72b9 100644
--- a/src/main/java/com/zy/common/utils/NavigateMapData.java
+++ b/src/main/java/com/zy/common/utils/NavigateMapData.java
@@ -35,14 +35,14 @@
     @Autowired
     private BasMapService basMapService;
 
-    public int[][] getData(Integer lev, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+    public int[][] getData(Integer lev, List<NavigationMapType> mapTypes, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         try {
             BasMap basMap = basMapService.selectLatestMap(lev);
             String originData = basMap.getOriginData();
 
             //瑙f瀽json鍦板浘鏁版嵁
             ArrayList arrayList = JSON.parseObject(originData, ArrayList.class);
-            List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
+            List<List<MapNode>> lists = filterMap(mapTypes, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
             int[][] map = new int[lists.size()][];
             int j = 0;
             for (List<MapNode> list : lists) {
@@ -66,7 +66,7 @@
     /**
      * 灏濊瘯浠巖edis鑾峰彇鏁版嵁
      */
-    public int[][] getDataFromRedis(Integer lev, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+    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) {
@@ -74,15 +74,15 @@
         }
 
         BasMap basMap = JSON.parseObject(o.toString(), BasMap.class);
-        return this.getDataFormString(lev, basMap.getData(), mapType, whitePoints, shuttlePoints);
+        return this.getDataFormString(lev, basMap.getData(), mapTypes, whitePoints, shuttlePoints);
     }
 
     /**
      * 浠嶭ist鏁版嵁涓幏鍙栧湴鍥�
      */
-    public int[][] getDataFormString(Integer lev, String data, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+    public int[][] getDataFormString(Integer lev, String data, List<NavigationMapType> mapTypes, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         ArrayList arrayList = JSON.parseObject(data, ArrayList.class);
-        List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
+        List<List<MapNode>> lists = filterMap(mapTypes, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
         int[][] map = new int[lists.size()][];
         int j = 0;
         for (List<MapNode> list : lists) {
@@ -100,7 +100,7 @@
     }
 
     //鑾峰彇JSON鏍煎紡鏁版嵁
-    public List<List<MapNode>> getJsonData(Integer lev, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+    public List<List<MapNode>> getJsonData(Integer lev, List<NavigationMapType> mapTypes, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         try {
             BasMap basMap = basMapService.selectLatestMap(lev);
             String originData = basMap.getOriginData();
@@ -139,18 +139,30 @@
      * @param whitePoints 鐧藉悕鍗曡妭鐐癸紝涓嶉渶瑕佽杩囨护
      * @param shuttlePoints 绌挎杞﹁妭鐐癸紝闇�瑕佸姞杞借繘鍦板浘
      */
-    public List<List<MapNode>> filterMap(Integer mapType, List arrayList, Integer lev, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+    public List<List<MapNode>> filterMap(List<NavigationMapType> mapTypes, List arrayList, Integer lev, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         //閲嶅缓鏁版嵁鏍煎紡
         List<List<MapNode>> lists = rebuildData(arrayList);
 
-        //杞藉叆搴撲綅淇℃伅
-        lists = loadLocMast(mapType, lists, lev, whitePoints);
+        List<NavigationMapType> locMapType = new ArrayList<>();
+        locMapType.add(NavigationMapType.NONE);
+        locMapType.add(NavigationMapType.DFX);
+        locMapType.add(NavigationMapType.NORMAL);
+        for (NavigationMapType mapType : mapTypes) {
+            if(locMapType.contains(mapType)) {
+                //杞藉叆搴撲綅淇℃伅
+                lists = loadLocMast(mapType.id, lists, lev, whitePoints);
+            }
 
-        //鍔犺浇杞﹁締
-        lists = loadShuttle(lists, shuttlePoints);
+            if (mapType.equals(NavigationMapType.SHUTTLE)) {
+                //鍔犺浇杞﹁締
+                lists = loadShuttle(lists, shuttlePoints);
+            }
 
-        //鍔犺浇璐у弶鎻愬崌鏈虹偣浣�
-        lists = loadForkLift(lists, mapType, lev);
+            if (mapType.equals(NavigationMapType.SHUTTLE)) {
+                //鍔犺浇璐у弶鎻愬崌鏈虹偣浣�
+                lists = loadForkLift(lists, lev);
+            }
+        }
 
         //鍔犺浇鐧藉悕鍗曡妭鐐�
         lists = loadWhite(lists, lev, whitePoints);
@@ -262,7 +274,7 @@
     public List<List<MapNode>> loadWhite(List<List<MapNode>> lists, Integer lev, List<int[]> whitePoints) {
         //鍔犺浇鐧藉悕鍗曡妭鐐�
         if (whitePoints != null) {
-            List<List<MapNode>> realMap = getJsonData(lev, -1, null, null);//鑾峰彇瀹屾暣鍦板浘
+            List<List<MapNode>> realMap = getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//鑾峰彇瀹屾暣鍦板浘
             for (int[] points : whitePoints) {
                 //鑾峰彇鍘熷鑺傜偣鏁版嵁
                 int x = points[0];
@@ -283,7 +295,7 @@
     }
 
     //鍔犺浇璐у弶鎻愬崌鏈虹偣浣�
-    public List<List<MapNode>> loadForkLift(List<List<MapNode>> lists, Integer mapType, Integer lev) {
+    public List<List<MapNode>> loadForkLift(List<List<MapNode>> lists, Integer lev) {
         try {
             //鍔犺浇璐у弶鎻愬崌鏈烘斁璐х偣浣嶆暟鎹�
             List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
@@ -304,16 +316,16 @@
                     List<MapNode> list = lists.get(row);
                     MapNode mapNode = list.get(bay);
 
-                    if (mapType == NavigationMapType.DFX.id) {
-                        //杞﹁締鏈夎揣
-                        if (staProtocol.getHasTray() != null && staProtocol.getHasTray()) {
-                            mapNode.setValue(MapNodeType.DISABLE.id);
-                        }
-                    } else {
-                        if (staProtocol.getHasCar() != null && staProtocol.getHasCar()) {
-                            mapNode.setValue(MapNodeType.CAR.id);
-                        }
-                    }
+//                    if (mapType == NavigationMapType.DFX.id) {
+//                        //杞﹁締鏈夎揣
+//                        if (staProtocol.getHasTray() != null && staProtocol.getHasTray()) {
+//                            mapNode.setValue(MapNodeType.DISABLE.id);
+//                        }
+//                    } else {
+//                        if (staProtocol.getHasCar() != null && staProtocol.getHasCar()) {
+//                            mapNode.setValue(MapNodeType.CAR.id);
+//                        }
+//                    }
 
                     //鏇存柊list
                     list.set(bay, mapNode);

--
Gitblit v1.9.1