From 50435a81915932eda06b7f1afd48f9ff1ae84f19 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 10 四月 2025 17:50:28 +0800
Subject: [PATCH] 1
---
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