|  |  |  | 
|---|
|  |  |  | private RedisUtil redisUtil; | 
|---|
|  |  |  | @Value("${super.pwd}") | 
|---|
|  |  |  | private String superPwd; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private NavigateMapData navigateMapData; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/system/running/status") | 
|---|
|  |  |  | @ManagerAuth(memo = "系统运行状态") | 
|---|
|  |  |  | 
|---|
|  |  |  | BasMap basMap = JSON.parseObject(data.toString(), BasMap.class); | 
|---|
|  |  |  | //解析json地图数据 | 
|---|
|  |  |  | ArrayList arrayList = JSON.parseObject(basMap.getData(), ArrayList.class); | 
|---|
|  |  |  | NavigateMapData navigateMapData = new NavigateMapData(lev); | 
|---|
|  |  |  | navigateMapData.setLev(lev); | 
|---|
|  |  |  | List<List<MapNode>> lists = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, null);//过滤地图数据 | 
|---|
|  |  |  | return R.ok().add(lists); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | br.close(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | NavigateMapData navigateMapData = new NavigateMapData(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //解析json地图数据 | 
|---|
|  |  |  | ArrayList arrayList = JSON.parseObject(stringBuffer.toString(), ArrayList.class); | 
|---|
|  |  |  | 
|---|
|  |  |  | for (int i = 1; i <= 10; i++) {//总共10层楼 | 
|---|
|  |  |  | BasMap basMap = basMapService.selectLatestMap(i); | 
|---|
|  |  |  | //载入地图 | 
|---|
|  |  |  | NavigateMapData mapData = new NavigateMapData(i); | 
|---|
|  |  |  | List<List<MapNode>> lists = mapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库) | 
|---|
|  |  |  | navigateMapData.setLev(i); | 
|---|
|  |  |  | List<List<MapNode>> lists = navigateMapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库) | 
|---|
|  |  |  | if (basMap == null) { | 
|---|
|  |  |  | //数据库中也不存在地图数据,从地图文件中获取 | 
|---|
|  |  |  | //存入数据库 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasMap basMap = basMapService.selectLatestMap(lev); | 
|---|
|  |  |  | //载入地图 | 
|---|
|  |  |  | NavigateMapData mapData = new NavigateMapData(lev); | 
|---|
|  |  |  | List<List<MapNode>> lists = mapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库) | 
|---|
|  |  |  | navigateMapData.setLev(lev); | 
|---|
|  |  |  | List<List<MapNode>> lists = navigateMapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库) | 
|---|
|  |  |  | if (basMap == null) { | 
|---|
|  |  |  | //数据库中也不存在地图数据,从地图文件中获取 | 
|---|
|  |  |  | //存入数据库 | 
|---|
|  |  |  | 
|---|
|  |  |  | private WrkDetlLogService wrkDetlLogService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MatService matService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private NavigateMapData navigateMapData; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | if (basMap == null) { | 
|---|
|  |  |  | //数据库中也不存在地图数据,从地图文件中获取 | 
|---|
|  |  |  | //载入地图 | 
|---|
|  |  |  | NavigateMapData mapData = new NavigateMapData(i); | 
|---|
|  |  |  | List<List<MapNode>> lists = mapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库) | 
|---|
|  |  |  | navigateMapData.setLev(i); | 
|---|
|  |  |  | List<List<MapNode>> lists = navigateMapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //存入数据库 | 
|---|
|  |  |  | basMap = new BasMap(); | 
|---|
|  |  |  | 
|---|
|  |  |  | WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class); | 
|---|
|  |  |  | CommonService commonService = SpringUtils.getBean(CommonService.class); | 
|---|
|  |  |  | ShuttleDispatchUtils shuttleDispatchUtils = SpringUtils.getBean(ShuttleDispatchUtils.class); | 
|---|
|  |  |  | NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (shuttleThread == null) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | NavigateMapData mapData = new NavigateMapData(z);//获取地图数据 | 
|---|
|  |  |  | int[][] data = mapData.getData(-1, null, currentShuttleId == null ? null : Utils.getShuttlePoints(0, z));//载入全部车辆 | 
|---|
|  |  |  | navigateMapData.setLev(z);//获取地图数据 | 
|---|
|  |  |  | int[][] data = navigateMapData.getData(-1, null, currentShuttleId == null ? null : Utils.getShuttlePoints(0, z));//载入全部车辆 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int moveBay = 23;//避让起始列 | 
|---|
|  |  |  | int bay = Utils.getBay(shuttleProtocol.getCurrentLocNo());//小车当前列 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Integer lev;//地图楼层 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public NavigateMapData() { | 
|---|
|  |  |  | this.lev = 1; | 
|---|
|  |  |  | public Integer getLev() { | 
|---|
|  |  |  | return lev; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public NavigateMapData(Integer lev) { | 
|---|
|  |  |  | public void setLev(Integer lev) { | 
|---|
|  |  |  | this.lev = lev; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public synchronized boolean writeNavigateNodeToRedisMap(Integer lev, Integer shuttleNo, List<NavigateNode> nodes, boolean lock) { | 
|---|
|  |  |  | RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); | 
|---|
|  |  |  | NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if (nodes.isEmpty()) { | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | NavigateMapData navigateMapData = new NavigateMapData(lev); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | navigateMapData.setLev(lev); | 
|---|
|  |  |  | Object o = redisUtil.get(RedisKeyType.MAP.key + lev); | 
|---|
|  |  |  | if (o == null) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //尝试锁定/解锁路径 | 
|---|
|  |  |  | NavigateMapData mapData = new NavigateMapData(nodes.get(0).getZ()); | 
|---|
|  |  |  | List<List<MapNode>> realMap = mapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库) | 
|---|
|  |  |  | navigateMapData.setLev(nodes.get(0).getZ()); | 
|---|
|  |  |  | List<List<MapNode>> realMap = navigateMapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库) | 
|---|
|  |  |  | for (NavigateNode node : nodes) { | 
|---|
|  |  |  | if (node.getZ() != lev) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | 
|---|
|  |  |  | package com.zy.common.utils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.core.common.SpringUtils; | 
|---|
|  |  |  | import com.zy.common.model.NavigateNode; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public NavigateSolution() { | 
|---|
|  |  |  | //载入地图 | 
|---|
|  |  |  | NavigateMapData mapData = new NavigateMapData(); | 
|---|
|  |  |  | int[][] data = mapData.getData(); | 
|---|
|  |  |  | 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 mapData = new NavigateMapData(lev); | 
|---|
|  |  |  | int[][] data = mapData.getDataFromRedis(mapType, whitePoints, shuttlePoints); | 
|---|
|  |  |  | NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); | 
|---|
|  |  |  | navigateMapData.setLev(lev); | 
|---|
|  |  |  | int[][] data = navigateMapData.getDataFromRedis(mapType, whitePoints, shuttlePoints); | 
|---|
|  |  |  | if (data == null) { | 
|---|
|  |  |  | data = mapData.getData(mapType, whitePoints, shuttlePoints); | 
|---|
|  |  |  | data = navigateMapData.getData(mapType, whitePoints, shuttlePoints); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.map = data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | package com.zy.common.utils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.core.common.SpringUtils; | 
|---|
|  |  |  | import com.zy.asrs.utils.Utils; | 
|---|
|  |  |  | import com.zy.common.model.MapNode; | 
|---|
|  |  |  | import com.zy.common.model.NavigateNode; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //获取从x点到下一点的行走距离 | 
|---|
|  |  |  | public static Integer getXToNextDistance(NavigateNode xNode) { | 
|---|
|  |  |  | NavigateMapData mapData = new NavigateMapData(); | 
|---|
|  |  |  | List<List<MapNode>> lists = mapData.getJsonData(NavigationMapType.NONE.id, null, null); | 
|---|
|  |  |  | NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); | 
|---|
|  |  |  | navigateMapData.setLev(xNode.getZ()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<List<MapNode>> lists = navigateMapData.getJsonData(NavigationMapType.NONE.id, null, null); | 
|---|
|  |  |  | if (lists != null) { | 
|---|
|  |  |  | MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY()); | 
|---|
|  |  |  | if (mapNode != null) { | 
|---|