From d56b8093dc9e3e75f8efe1a0f1aa6d821c9c3dfb Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期二, 15 四月 2025 13:30:35 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/MapCommandService.java | 37 +++++++++++++++++++++++++++++-------- 1 files changed, 29 insertions(+), 8 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/MapCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/MapCommandService.java index 7d65d0a..7acdbac 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/MapCommandService.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/MapCommandService.java @@ -1,8 +1,10 @@ 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; +import com.zy.asrs.wcs.core.model.enums.MapNodeType; import com.zy.asrs.wcs.core.model.enums.MotionCtgType; import com.zy.asrs.wcs.core.model.enums.NavigationMapType; import com.zy.asrs.wcs.core.utils.*; @@ -67,12 +69,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); + } //鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹�/瑙i攣 - boolean lockResult = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(motion.getTarget()), shuttleProtocol.getShuttleNo(), nodes, lock);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹�/瑙i攣 + boolean lockResult = navigateMapUtils.writeNavigateNodeToRedisMap(lev, shuttleProtocol.getShuttleNo(), nodes, lock);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹�/瑙i攣 if (!lockResult) { return false;//閿佸畾/瑙i攣澶辫触 } @@ -80,11 +90,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,17 +119,22 @@ //鑾峰彇灏忚溅鑺傜偣 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) { List<MapNode> listX = map.get(node.getX()); MapNode mapNode = listX.get(node.getY()); + if (mapNode.getLockDeviceNo() != null && !mapNode.getLockDeviceNo().equals(shuttleProtocol.getShuttleNo())) { + return false;//璺緞鎵�灞炴潈涓嶆槸褰撳墠璁惧 + } + if (lock) {//妫�娴嬫槸鍚﹂攣瀹� - if (mapNode.getValue() != -999) { + if (!mapNode.getValue().equals(MapNodeType.LOCK.id)) { return false;//璺緞鏈攣瀹� } }else {//妫�娴嬫槸鍚︽湭閿佸畾 - if(mapNode.getValue() == -999) { + if(mapNode.getValue().equals(MapNodeType.LOCK.id)) { return false;//璺緞宸查攣瀹� } } -- Gitblit v1.9.1