Junjie
2024-11-22 a2d6371396f74e4fb30a4c79e91c6b371a77d0b5
#读取地图文件优化
7个文件已修改
59 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/ConsoleController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/NavigateMapData.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/NavigateMapUtils.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/NavigateSolution.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/NavigateUtils.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -75,6 +75,8 @@
    private RedisUtil redisUtil;
    @Value("${super.pwd}")
    private String superPwd;
    @Autowired
    private NavigateMapData navigateMapData;
    @PostMapping("/system/running/status")
    @ManagerAuth(memo = "系统运行状态")
@@ -340,7 +342,7 @@
        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);
    }
@@ -365,8 +367,6 @@
                }
                br.close();
            }
            NavigateMapData navigateMapData = new NavigateMapData();
            //解析json地图数据
            ArrayList arrayList = JSON.parseObject(stringBuffer.toString(), ArrayList.class);
@@ -398,8 +398,8 @@
        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) {
                //数据库中也不存在地图数据,从地图文件中获取
                //存入数据库
@@ -447,8 +447,8 @@
        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) {
            //数据库中也不存在地图数据,从地图文件中获取
            //存入数据库
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -114,6 +114,8 @@
    private WrkDetlLogService wrkDetlLogService;
    @Autowired
    private MatService matService;
    @Autowired
    private NavigateMapData navigateMapData;
    /**
@@ -938,8 +940,8 @@
                    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();
src/main/java/com/zy/asrs/utils/Utils.java
@@ -442,6 +442,7 @@
        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;
@@ -451,8 +452,8 @@
            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());//小车当前列
src/main/java/com/zy/common/utils/NavigateMapData.java
@@ -29,11 +29,11 @@
    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;
    }
src/main/java/com/zy/common/utils/NavigateMapUtils.java
@@ -23,13 +23,13 @@
     */
    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;
@@ -59,8 +59,8 @@
            }
            //尝试锁定/解锁路径
            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;
src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -1,5 +1,6 @@
package com.zy.common.utils;
import com.core.common.SpringUtils;
import com.zy.common.model.NavigateNode;
import java.util.ArrayList;
@@ -17,17 +18,19 @@
    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;
    }
src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -1,5 +1,6 @@
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;
@@ -175,8 +176,10 @@
    //获取从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) {