zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
@@ -24,6 +24,8 @@ import com.zy.asrs.wcs.rcs.service.DeviceService; import com.zy.asrs.wcs.rcs.thread.ShuttleThread; import com.zy.asrs.wcs.system.controller.BaseController; import com.zy.asrs.wcs.system.entity.Dict; import com.zy.asrs.wcs.system.service.DictService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -50,6 +52,8 @@ private DeviceService deviceService; @Autowired private LocService locService; @Autowired private DictService dictService; //生成入库任务 @PostMapping("/createInTask") @@ -67,7 +71,14 @@ return R.error("库位号不存在"); } if (!loc.getLocStsFlag().equals("O")) { //获取严格模式参数 boolean mapStrict = true;//默认严格模式 Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); if (dict != null) { mapStrict = Boolean.parseBoolean(dict.getValue()); } if (mapStrict && !loc.getLocStsFlag().equals("O")) { return R.error("库位状态不满足入库条件"); } @@ -118,7 +129,14 @@ return R.error("库位号不存在"); } if (!loc.getLocStsFlag().equals("F")) { //获取严格模式参数 boolean mapStrict = true;//默认严格模式 Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); if (dict != null) { mapStrict = Boolean.parseBoolean(dict.getValue()); } if (mapStrict && !loc.getLocStsFlag().equals("F")) { return R.error("库位状态不满足出库条件"); } zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
@@ -46,49 +46,7 @@ } public int[][] getData() { return getData(NavigationMapType.NONE.id, null, null);//默认读取无过滤的全部地图数据 } public int[][] getData(Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) { try { String mapFilename = "map_" + lev + ".json"; String fileName = this.getClass().getClassLoader().getResource(mapFilename).getPath();//获取文件路径 File file = new File(fileName); 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);//过滤地图数据 int[][] map = new int[lists.size()][]; int j = 0; for (List<MapNode> list : lists) { int[] tmp = new int[list.size()]; int i = 0; for (MapNode mapNode : list) { //将数据添加进二维数组 tmp[i++] = mapNode.getValue(); } //数据添加进一维数组 map[j++] = tmp; } return map; } else { System.out.println("文件不存在!"); } } catch (IOException ioException) { ioException.printStackTrace(); } return null; return getDataFromRedis(NavigationMapType.NONE.id, null, null);//默认读取无过滤的全部地图数据 } /** @@ -310,6 +268,14 @@ lists.add(list); } //获取严格模式参数 boolean mapStrict = true;//默认严格模式 Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); if (dict != null) { mapStrict = Boolean.parseBoolean(dict.getValue()); } if (mapStrict) {//严格模式下,载入库位状态 //过滤数据 //获取当前楼层库位数据 List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>() @@ -359,6 +325,7 @@ list.set(bay, mapNode); lists.set(row, list); } } //加载车辆坐标到地图中 if (shuttlePoints != null) { zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.framework.common.SpringUtils; import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wcs.core.model.NavigateNode; import com.zy.asrs.wcs.system.entity.Dict; import com.zy.asrs.wcs.system.service.DictService; @@ -34,7 +35,7 @@ mapData.setLev(lev); int[][] data = mapData.getDataFromRedis(mapType, whitePoints, shuttlePoints); if (data == null) { data = mapData.getData(mapType, whitePoints, shuttlePoints); throw new CoolException("地图未载入!"); } this.map = data; }