#
Junjie
2024-10-15 f43b508dda7334487a1640b0bbd908d7b3aa3cb6
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/MapCommandService.java
@@ -1,5 +1,6 @@
package com.zy.asrs.wcs.core.kernel.command;
import com.alibaba.fastjson.JSON;
import com.zy.asrs.wcs.core.entity.Motion;
import com.zy.asrs.wcs.core.model.MapNode;
import com.zy.asrs.wcs.core.model.NavigateNode;
@@ -67,12 +68,20 @@
            return false;
        }
        NavigateNode navigateNode = NavigatePositionConvert.locNoToNode(motion.getTarget());
        List<NavigateNode> nodes = new ArrayList<>();
        nodes.add(navigateNode);
        String target = motion.getTarget();
        List<String> lockPath = JSON.parseArray(target, String.class);
        Integer lev = null;
        for (String loc : lockPath) {
            NavigateNode navigateNode = NavigatePositionConvert.locNoToNode(loc);
            nodes.add(navigateNode);
            lev = Utils.getLev(loc);
        }
        //所使用的路径进行锁定/解锁
        boolean lockResult = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(motion.getTarget()), shuttleProtocol.getShuttleNo(), nodes, lock);//所使用的路径进行锁定/解锁
        boolean lockResult = navigateMapUtils.writeNavigateNodeToRedisMap(lev, shuttleProtocol.getShuttleNo(), nodes, lock);//所使用的路径进行锁定/解锁
        if (!lockResult) {
            return false;//锁定/解锁失败
        }
@@ -80,11 +89,17 @@
    }
    private boolean checkLockPath(Motion motion, boolean lock) {
        NavigateNode navigateNode = NavigatePositionConvert.locNoToNode(motion.getTarget());
        List<NavigateNode> nodes = new ArrayList<>();
        nodes.add(navigateNode);
        int lev = Utils.getLev(motion.getTarget());
        String target = motion.getTarget();
        List<String> lockPath = JSON.parseArray(target, String.class);
        Integer lev = null;
        for (String loc : lockPath) {
            NavigateNode navigateNode = NavigatePositionConvert.locNoToNode(loc);
            nodes.add(navigateNode);
            lev = Utils.getLev(loc);
        }
        Object o = redisUtil.get(DeviceRedisConstant.MAP + lev);
        if (o == null) {
@@ -103,6 +118,7 @@
        //获取小车节点
        List<int[]> shuttlePoints = Utils.getShuttlePoints(shuttleProtocol.getShuttleNo(), lev);
        navigateMapData.setLev(lev);
        List<List<MapNode>> map = navigateMapData.getJsonData(NavigationMapType.DFX.id, null, shuttlePoints);
        for (NavigateNode node : nodes) {