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