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