自动化立体仓库 - WCS系统
#
Junjie
2023-10-21 841a4a870a55400e0a5fc36abe3ff8d3b8f4df7d
#
1个文件已修改
34 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2851,6 +2851,27 @@
                return false;
            }
            //*************尝试锁定目标站路径***************
            //获取目标站
            LiftStaProtocol targetLiftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo());
            if (targetLiftSta == null) {
                return false;//找不到站点
            }
            NavigateNode targetNode = NavigatePositionConvert.locNoToNode(targetLiftSta.getLocNo());//目标节点
            NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(wrkMast.getLocNo()));
            List<NavigateNode> targetNodes = new ArrayList<>();
            targetNodes.add(targetNode);
            boolean checkPathIsAvailable = NavigateUtils.checkPathIsAvailable(targetNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(wrkMast.getLocNo()), null);
            if (!checkPathIsAvailable) {
                return false;//检测目标站点路径是否未被占用
            }
            //尝试锁定目标站路径
            boolean result = navigateMapData.writeNavigateNodeToRedisMap(targetNodes, true);//所使用的路径进行锁定禁用
            if (!result) {
                return false;//路径锁定失败
            }
            //*************尝试锁定目标站路径***************
            //站点节点
            NavigateNode staNode = NavigatePositionConvert.locNoToNode(sourceLiftSta.getLocNo());
@@ -3053,6 +3074,19 @@
            if (basLift.getPoint() == null) {
                return false;//没有设置提升机点位坐标
            }
            //*************尝试解锁目标站路径***************
            NavigateNode targetNode = NavigatePositionConvert.locNoToNode(liftSta.getLocNo());//目标节点
            NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(wrkMast.getLocNo()));
            List<NavigateNode> targetNodes = new ArrayList<>();
            targetNodes.add(targetNode);
            //尝试解锁目标站路径
            boolean result = navigateMapData.writeNavigateNodeToRedisMap(targetNodes, false);//所使用的路径进行解锁
            if (!result) {
                return false;//路径解锁失败
            }
            //*************尝试解锁目标站路径***************
            NavigateNode liftNode = new NavigateNode(basLift.getPoint$().getX(), basLift.getPoint$().getY());
            liftNode.setZ(liftSta.getLev());