From 0f5a5a759221bde50ace126eae797326837f5f72 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期三, 16 十月 2024 16:15:12 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

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