自动化立体仓库 - WCS系统
#
lsh
2024-09-13 ac6bb34756815cceea18ae27dbec3e404bcdf69b
src/main/java/com/zy/common/utils/RgvUtils.java
@@ -39,13 +39,13 @@
    }
    //锁定/解锁路径
    public static void lockPath(Integer startPath, Integer endPath, Integer rgvNo, boolean lock) {
    public static void lockPath(Integer startPath, Integer endPath, Integer rgvNo, Integer wrkNo, boolean lock) {
        List<RgvNode> pathList = getPathList(startPath, endPath);//通过起点和目标点获取行走路径
        lockPath(pathList, rgvNo, lock);
        lockPath(pathList, rgvNo, wrkNo, lock);
    }
    //锁定/解锁路径
    public static void lockPath(List<RgvNode> pathList, Integer rgvNo, boolean lock) {
    public static void lockPath(List<RgvNode> pathList, Integer rgvNo, Integer wrkNo, boolean lock) {
        RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
        Object data = redisUtil.get("rgv_map");
        List<RgvNode> rgvNodes = JSON.parseArray(data.toString(), RgvNode.class);//实时地图
@@ -59,15 +59,31 @@
                //路径相同
                if (lock) {
                    rgvNode.setLock(true);//锁定
                    rgvNode.setRgvNo(rgvNo);
                    rgvNode.setRgvNo(rgvNo);//RGV号
                    rgvNode.setWrkNo(wrkNo);//工作号
                } else {
                    rgvNode.setLock(false);//解锁
                    rgvNode.setRgvNo(0);
                    rgvNode.setRgvNo(0);
                }
            }
        }
    }
    //解锁路径,通过RGV号进行解锁。注意:调用此方法会解锁RGV号对应车辆全部路径
    public static void unLockPath(Integer rgvNo) {
        RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
        Object data = redisUtil.get("rgv_map");
        List<RgvNode> rgvNodes = JSON.parseArray(data.toString(), RgvNode.class);//实时地图
        for (RgvNode rgvNode : rgvNodes) {//遍历实时地图
            if (rgvNode.getRgvNo().equals(rgvNo)) {
                //RGV号相同
                rgvNode.setLock(false);//解锁
                rgvNode.setRgvNo(0);
            }
        }
    }
    //通过起点和目标点获取行走路径
    public static List<RgvNode> getPathList(Integer startPath, Integer endPath) {
        int result = startPath - endPath;