自动化立体仓库 - WCS系统
#
Junjie
2025-01-17 95872bb822de6a4510f7708ebb1ec5ea3aed35db
src/main/java/com/zy/common/utils/NavigateMapData.java
@@ -233,7 +233,8 @@
                //解析json地图数据
                ArrayList arrayList = JSON.parseObject(stringBuffer.toString(), ArrayList.class);
                List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//过滤地图数据
                //重建数据格式
                List<List<MapNode>> lists = rebuildData(arrayList);
                if (!file.delete()) {
                    System.out.println("临时文件删除失败");
@@ -257,6 +258,26 @@
     * @param shuttlePoints 穿梭车节点,需要加载进地图
     */
    public List<List<MapNode>> filterMap(Integer mapType, List arrayList, Integer lev, List<int[]> whitePoints, List<int[]> shuttlePoints) {
        //重建数据格式
        List<List<MapNode>> lists = rebuildData(arrayList);
        //载入库位信息
        lists = loadLocMast(mapType, lists, lev, whitePoints);
        //加载车辆
        lists = loadShuttle(lists, shuttlePoints);
        //加载货叉提升机点位
        lists = loadForkLift(lists, mapType, lev);
        //加载白名单节点
        lists = loadWhite(lists, lev, whitePoints);
        return lists;
    }
    //重建数据格式
    public List<List<MapNode>> rebuildData(List arrayList) {
        List<List<MapNode>> lists = new ArrayList<>();
        //重建数据格式
@@ -270,6 +291,11 @@
            lists.add(list);
        }
        return lists;
    }
    //载入库位信息
    public List<List<MapNode>> loadLocMast(Integer mapType, List<List<MapNode>> lists, Integer lev, List<int[]> whitePoints) {
        //过滤数据
        LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
        try {
@@ -325,6 +351,11 @@
            e.printStackTrace();
        }
        return lists;
    }
    //加载车辆
    public List<List<MapNode>> loadShuttle(List<List<MapNode>> lists, List<int[]> shuttlePoints) {
        //加载车辆坐标到地图中
        if (shuttlePoints != null) {
            for (int[] points : shuttlePoints) {
@@ -339,6 +370,11 @@
            }
        }
        return lists;
    }
    //加载白名单节点
    public List<List<MapNode>> loadWhite(List<List<MapNode>> lists, Integer lev, List<int[]> whitePoints) {
        //加载白名单节点
        if (whitePoints != null) {
            List<List<MapNode>> realMap = getJsonData(lev, -1, null, null);//获取完整地图
@@ -358,7 +394,11 @@
                lists.set(x, list);
            }
        }
        return lists;
    }
    //加载货叉提升机点位
    public List<List<MapNode>> loadForkLift(List<List<MapNode>> lists, Integer mapType, Integer lev) {
        try {
            //加载货叉提升机放货点位数据
            for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLift()) {
@@ -368,6 +408,9 @@
                }
                for (ForkLiftStaProtocol staProtocol : forkLiftThread.getForkLiftStaProtocols()) {
                    if (staProtocol.getLev() != lev) {
                        continue;
                    }
                    int row = Utils.getRow(staProtocol.getLocNo());
                    int bay = Utils.getBay(staProtocol.getLocNo());
@@ -379,7 +422,7 @@
                        if (staProtocol.getHasTray() != null && staProtocol.getHasTray()) {
                            mapNode.setValue(MapNodeType.DISABLE.id);
                        }
                    }else {
                    } else {
                        if (staProtocol.getHasCar() != null && staProtocol.getHasCar()) {
                            mapNode.setValue(MapNodeType.CAR.id);
                        }
@@ -391,10 +434,9 @@
                }
            }
        }catch (Exception e) {
        } catch (Exception e) {
            e.printStackTrace();
        }
        return lists;
    }