From 2074f1e03c9b2e2ff1d0b57de05becb7f6e0ffb8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 21 十二月 2024 11:57:54 +0800
Subject: [PATCH] #地图文件bug尝试修复

---
 src/main/java/com/zy/asrs/controller/ConsoleController.java |    7 -
 src/main/java/com/zy/common/utils/NavigateMapUtils.java     |    4 -
 src/main/java/com/zy/asrs/utils/Utils.java                  |    3 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |    5 -
 src/main/java/com/zy/common/utils/NavigateUtils.java        |    3 
 src/main/java/com/zy/common/utils/NavigateMapData.java      |  132 +++++++++++++++++++++----------------------
 src/main/java/com/zy/common/utils/NavigateSolution.java     |   13 ---
 7 files changed, 73 insertions(+), 94 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index 3b9c31b..24f9529 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -342,7 +342,6 @@
         BasMap basMap = JSON.parseObject(data.toString(), BasMap.class);
         //瑙f瀽json鍦板浘鏁版嵁
         ArrayList arrayList = JSON.parseObject(basMap.getData(), ArrayList.class);
-        navigateMapData.setLev(lev);
         List<List<MapNode>> lists = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, null);//杩囨护鍦板浘鏁版嵁
         return R.ok().add(lists);
     }
@@ -398,8 +397,7 @@
         for (int i = 1; i <= 10; i++) {//鎬诲叡10灞傛ゼ
             BasMap basMap = basMapService.selectLatestMap(i);
             //杞藉叆鍦板浘
-            navigateMapData.setLev(i);
-            List<List<MapNode>> lists = navigateMapData.getJsonData(-1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
+            List<List<MapNode>> lists = navigateMapData.getJsonData(i, -1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
             if (basMap == null) {
                 //鏁版嵁搴撲腑涔熶笉瀛樺湪鍦板浘鏁版嵁锛屼粠鍦板浘鏂囦欢涓幏鍙�
                 //瀛樺叆鏁版嵁搴�
@@ -447,8 +445,7 @@
 
         BasMap basMap = basMapService.selectLatestMap(lev);
         //杞藉叆鍦板浘
-        navigateMapData.setLev(lev);
-        List<List<MapNode>> lists = navigateMapData.getJsonData(-1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
+        List<List<MapNode>> lists = navigateMapData.getJsonData(lev, -1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
         if (basMap == null) {
             //鏁版嵁搴撲腑涔熶笉瀛樺湪鍦板浘鏁版嵁锛屼粠鍦板浘鏂囦欢涓幏鍙�
             //瀛樺叆鏁版嵁搴�
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 292b860..0e18857 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -890,7 +890,7 @@
 //////                            devpThread.setPakMk(staProtocol.getSiteId(), false);
 //////                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
 //////                            if (!result) {
-//////                                News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+//////                                News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿{}]", devp.getId());
 //////                            }
 ////
 ////                            barcodeThread.setBarcode("");//娓呯悊鏉$爜
@@ -940,8 +940,7 @@
                     if (basMap == null) {
                         //鏁版嵁搴撲腑涔熶笉瀛樺湪鍦板浘鏁版嵁锛屼粠鍦板浘鏂囦欢涓幏鍙�
                         //杞藉叆鍦板浘
-                        navigateMapData.setLev(i);
-                        List<List<MapNode>> lists = navigateMapData.getJsonData(-1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
+                        List<List<MapNode>> lists = navigateMapData.getJsonData(i, -1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
 
                         //瀛樺叆鏁版嵁搴�
                         basMap = new BasMap();
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index da59ddd..a7d6ced 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -452,8 +452,7 @@
             return false;
         }
 
-        navigateMapData.setLev(z);//鑾峰彇鍦板浘鏁版嵁
-        int[][] data = navigateMapData.getData(-1, null, currentShuttleId == null ? null : Utils.getShuttlePoints(0, z));//杞藉叆鍏ㄩ儴杞﹁締
+        int[][] data = navigateMapData.getData(z, -1, null, currentShuttleId == null ? null : Utils.getShuttlePoints(0, z));//杞藉叆鍏ㄩ儴杞﹁締
 
         int moveBay = 23;//閬胯璧峰鍒�
         int bay = Utils.getBay(shuttleProtocol.getCurrentLocNo());//灏忚溅褰撳墠鍒�
diff --git a/src/main/java/com/zy/common/utils/NavigateMapData.java b/src/main/java/com/zy/common/utils/NavigateMapData.java
index 7b73bf1..a81489e 100644
--- a/src/main/java/com/zy/common/utils/NavigateMapData.java
+++ b/src/main/java/com/zy/common/utils/NavigateMapData.java
@@ -27,21 +27,17 @@
 @Component
 public class NavigateMapData {
 
-    private Integer lev;//鍦板浘妤煎眰
+//    private Integer lev;//鍦板浘妤煎眰
+//
+//    public Integer getLev() {
+//        return lev;
+//    }
+//
+//    public void setLev(Integer lev) {
+//        this.lev = lev;
+//    }
 
-    public Integer getLev() {
-        return lev;
-    }
-
-    public void setLev(Integer lev) {
-        this.lev = lev;
-    }
-
-    public int[][] getData() {
-        return getData(NavigationMapType.NONE.id, null, null);//榛樿璇诲彇鏃犺繃婊ょ殑鍏ㄩ儴鍦板浘鏁版嵁
-    }
-
-    public int[][] getData(Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+    public int[][] getData(Integer lev, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         try {
 //            RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
 //            Object object = redisUtil.get(RedisKeyType.BASIC_MAP.key + lev);
@@ -72,7 +68,7 @@
             InputStream inputStream = classPathResource.getInputStream();
             byte[] buffer = new byte[inputStream.available()];
             inputStream.read(buffer);
-            File file = File.createTempFile("prefix","suffix");
+            File file = File.createTempFile("prefix", "suffix");
             try (OutputStream outStream = new FileOutputStream(file)) {
                 outStream.write(buffer);
             }
@@ -119,7 +115,7 @@
     /**
      * 灏濊瘯浠巖edis鑾峰彇鏁版嵁
      */
-    public int[][] getDataFromRedis(Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+    public int[][] getDataFromRedis(Integer lev, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
         Object o = redisUtil.get(RedisKeyType.MAP.key + lev);
         if (o == null) {
@@ -127,13 +123,13 @@
         }
 
         BasMap basMap = JSON.parseObject(o.toString(), BasMap.class);
-        return this.getDataFormString(basMap.getData(), mapType, whitePoints, shuttlePoints);
+        return this.getDataFormString(lev, basMap.getData(), mapType, whitePoints, shuttlePoints);
     }
 
     /**
      * 浠嶭ist鏁版嵁涓幏鍙栧湴鍥�
      */
-    public int[][] getDataFormString(String data, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+    public int[][] getDataFormString(Integer lev, String data, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         ArrayList arrayList = JSON.parseObject(data, ArrayList.class);
         List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
         int[][] map = new int[lists.size()][];
@@ -152,58 +148,58 @@
         return map;
     }
 
-    //鑾峰彇JSON鏍煎紡鏁版嵁
-    public List<List<MapNode>> getJsonData(Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
-        try {
-//            RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
-//            Object object = redisUtil.get(RedisKeyType.BASIC_MAP.key + lev);
-//            if (object == null) {
-//                return null;
+//    //鑾峰彇JSON鏍煎紡鏁版嵁
+//    public List<List<MapNode>> getJsonData(Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+//        try {
+////            RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
+////            Object object = redisUtil.get(RedisKeyType.BASIC_MAP.key + lev);
+////            if (object == null) {
+////                return null;
+////            }
+////
+////            //瑙f瀽json鍦板浘鏁版嵁
+////            ArrayList arrayList = JSON.parseObject(object.toString(), ArrayList.class);
+////            List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
+////            return lists;
+//
+//
+//            String mapFilename = "map_" + lev + ".json";
+//            ClassPathResource classPathResource = new ClassPathResource(mapFilename);
+//            InputStream inputStream = classPathResource.getInputStream();
+//            byte[] buffer = new byte[inputStream.available()];
+//            inputStream.read(buffer);
+//            File file = File.createTempFile("prefix","suffix");
+//            try (OutputStream outStream = new FileOutputStream(file)) {
+//                outStream.write(buffer);
 //            }
 //
-//            //瑙f瀽json鍦板浘鏁版嵁
-//            ArrayList arrayList = JSON.parseObject(object.toString(), ArrayList.class);
-//            List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
-//            return lists;
-
-
-            String mapFilename = "map_" + lev + ".json";
-            ClassPathResource classPathResource = new ClassPathResource(mapFilename);
-            InputStream inputStream = classPathResource.getInputStream();
-            byte[] buffer = new byte[inputStream.available()];
-            inputStream.read(buffer);
-            File file = File.createTempFile("prefix","suffix");
-            try (OutputStream outStream = new FileOutputStream(file)) {
-                outStream.write(buffer);
-            }
-
-            StringBuffer stringBuffer = new StringBuffer();
-            if (file.isFile() && file.exists()) {
-                InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK");
-                BufferedReader br = new BufferedReader(isr);
-                String lineTxt = null;
-                while ((lineTxt = br.readLine()) != null) {
-                    stringBuffer.append(lineTxt);
-                }
-                br.close();
-
-                //瑙f瀽json鍦板浘鏁版嵁
-                ArrayList arrayList = JSON.parseObject(stringBuffer.toString(), ArrayList.class);
-                List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
-
-                if (!file.delete()) {
-                    System.out.println("涓存椂鏂囦欢鍒犻櫎澶辫触");
-                }
-
-                return lists;
-            } else {
-                System.out.println("鏂囦欢涓嶅瓨鍦�!");
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
+//            StringBuffer stringBuffer = new StringBuffer();
+//            if (file.isFile() && file.exists()) {
+//                InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK");
+//                BufferedReader br = new BufferedReader(isr);
+//                String lineTxt = null;
+//                while ((lineTxt = br.readLine()) != null) {
+//                    stringBuffer.append(lineTxt);
+//                }
+//                br.close();
+//
+//                //瑙f瀽json鍦板浘鏁版嵁
+//                ArrayList arrayList = JSON.parseObject(stringBuffer.toString(), ArrayList.class);
+//                List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
+//
+//                if (!file.delete()) {
+//                    System.out.println("涓存椂鏂囦欢鍒犻櫎澶辫触");
+//                }
+//
+//                return lists;
+//            } else {
+//                System.out.println("鏂囦欢涓嶅瓨鍦�!");
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        return null;
+//    }
 
     //鑾峰彇JSON鏍煎紡鏁版嵁
     public List<List<MapNode>> getJsonData(Integer lev, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
diff --git a/src/main/java/com/zy/common/utils/NavigateMapUtils.java b/src/main/java/com/zy/common/utils/NavigateMapUtils.java
index 6bfd954..d6f3cc3 100644
--- a/src/main/java/com/zy/common/utils/NavigateMapUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateMapUtils.java
@@ -29,7 +29,6 @@
                 return true;
             }
 
-            navigateMapData.setLev(lev);
             Object o = redisUtil.get(RedisKeyType.MAP.key + lev);
             if (o == null) {
                 return false;
@@ -59,8 +58,7 @@
             }
 
             //灏濊瘯閿佸畾/瑙i攣璺緞
-            navigateMapData.setLev(nodes.get(0).getZ());
-            List<List<MapNode>> realMap = navigateMapData.getJsonData(-1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
+            List<List<MapNode>> realMap = navigateMapData.getJsonData(nodes.get(0).getZ(), -1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
             for (NavigateNode node : nodes) {
                 if (node.getZ() != lev) {
                     continue;
diff --git a/src/main/java/com/zy/common/utils/NavigateSolution.java b/src/main/java/com/zy/common/utils/NavigateSolution.java
index d377c8b..79c530b 100644
--- a/src/main/java/com/zy/common/utils/NavigateSolution.java
+++ b/src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -16,21 +16,12 @@
 
     int[][] map = {{}};
 
-    public NavigateSolution() {
-        //杞藉叆鍦板浘
-        NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
-        navigateMapData.setLev(1);
-        int[][] data = navigateMapData.getData();
-        this.map = data;
-    }
-
     public NavigateSolution(Integer mapType, Integer lev, List<int[]> whitePoints, List<int[]> shuttlePoints) {
         //杞藉叆鍦板浘鎸囧畾灞傞珮鍦板浘
         NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
-        navigateMapData.setLev(lev);
-        int[][] data = navigateMapData.getDataFromRedis(mapType, whitePoints, shuttlePoints);
+        int[][] data = navigateMapData.getDataFromRedis(lev, mapType, whitePoints, shuttlePoints);
         if (data == null) {
-            data = navigateMapData.getData(mapType, whitePoints, shuttlePoints);
+            data = navigateMapData.getData(lev, mapType, whitePoints, shuttlePoints);
         }
         this.map = data;
     }
diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 9bf8643..8db9603 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -177,9 +177,8 @@
     //鑾峰彇浠巟鐐瑰埌涓嬩竴鐐圭殑琛岃蛋璺濈
     public static Integer getXToNextDistance(NavigateNode xNode) {
         NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
-        navigateMapData.setLev(xNode.getZ());
 
-        List<List<MapNode>> lists = navigateMapData.getJsonData(NavigationMapType.NONE.id, null, null);
+        List<List<MapNode>> lists = navigateMapData.getJsonData(xNode.getZ(), NavigationMapType.NONE.id, null, null);
         if (lists != null) {
             MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY());
             if (mapNode != null) {

--
Gitblit v1.9.1