From be88bef9c7071740ee803527c8e6ccd751680d74 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 15 十月 2024 14:58:26 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java | 19 +++++++++++++++++--
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java | 4 +++-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/MapCommandService.java | 9 +++++++--
3 files changed, 27 insertions(+), 5 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 dfbebb8..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
@@ -4,6 +4,7 @@
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.*;
@@ -124,12 +125,16 @@
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;//璺緞宸查攣瀹�
}
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java
index c3125f1..8dee2e0 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java
@@ -1,6 +1,5 @@
package com.zy.asrs.wcs.core.model;
-import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
import lombok.Data;
/**
@@ -38,6 +37,9 @@
private Integer bay;
+ //鑺傜偣琚攣瀹氭椂鎵�灞炶澶囧彿
+ private Integer lockDeviceNo;
+
//**************鍏煎鐗涚溂鏂板崗璁�**************//
private Integer xBase;//x鍩哄噯
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java
index fb4052f..2b872d7 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java
@@ -53,15 +53,28 @@
List<List<MapNode>> listsHasShuttle = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, shuttlePoints);//鑾峰彇甯﹀皬杞﹀湴鍥炬暟鎹�
List<List<MapNode>> lists = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, null);//鑾峰彇鍏ㄩ儴鍦板浘鏁版嵁
+ //妫�娴嬭妭鐐规槸鍚︿负褰撳墠璁惧
+ for (NavigateNode node : nodes) {
+ List<MapNode> listX = listsHasShuttle.get(node.getX());
+ MapNode mapNode = listX.get(node.getY());
+ if (mapNode.getLockDeviceNo() == null) {
+ continue;
+ }
+
+ if (!mapNode.getLockDeviceNo().equals(shuttleNo)) {
+ return false;//璺緞鎵�灞炴潈涓嶆槸褰撳墠璁惧
+ }
+ }
+
//妫�娴嬭矾寰勬槸鍚﹁閿佸畾
if (lock) {
for (NavigateNode node : nodes) {
List<MapNode> listX = listsHasShuttle.get(node.getX());
MapNode mapNode = listX.get(node.getY());
- if (mapNode.getValue() == MapNodeType.LOCK.id) {
+ if (mapNode.getValue().equals(MapNodeType.LOCK.id)) {
return false;//璺緞琚攣瀹氳繃锛岀姝㈠啀娆¢攣瀹�
}
- if (mapNode.getValue() == MapNodeType.CAR.id) {
+ if (mapNode.getValue().equals(MapNodeType.CAR.id)) {
return false;//璺緞瀛樺湪灏忚溅锛岀姝㈤攣瀹�
}
}
@@ -79,11 +92,13 @@
MapNode mapNode = listX.get(node.getY());
if (lock) {
mapNode.setValue(MapNodeType.LOCK.id);//绂佺敤搴撲綅
+ mapNode.setLockDeviceNo(shuttleNo);
} else {
//鑾峰彇鍘熷鑺傜偣鏁版嵁
List<MapNode> rows = realMap.get(node.getX());
MapNode col = rows.get(node.getY());
mapNode.setValue(col.getValue());//鎭㈠搴撲綅
+ mapNode.setLockDeviceNo(null);
}
listX.set(node.getY(), mapNode);
--
Gitblit v1.9.1