src/main/java/com/zy/asrs/controller/ConsoleController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/Utils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/utils/NavigateMapData.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/utils/NavigateMapUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/utils/NavigateSolution.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/utils/NavigateUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -342,7 +342,6 @@ BasMap basMap = JSON.parseObject(data.toString(), BasMap.class); //解析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) { //数据库中也不存在地图数据,从地图文件中获取 //存入数据库 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(); 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());//小车当前列 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); @@ -119,7 +115,7 @@ /** * 尝试从redis获取数据 */ 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); } /** * 从List数据中获取地图 */ 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; //// } //// //// //解析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(); // // //解析json地图数据 // ArrayList arrayList = JSON.parseObject(object.toString(), ArrayList.class); // 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; 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(); //解析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; } // } 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) { 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 @@ } //尝试锁定/解锁路径 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; 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; } src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -177,9 +177,8 @@ //获取从x点到下一点的行走距离 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) {