From f46e6a76cee1e4f231fab74981a87947bf84677d Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 15 十月 2024 11:02:47 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/MapCommandService.java |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 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..dfbebb8 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,5 +1,6 @@
 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;
@@ -67,12 +68,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 +89,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,6 +118,7 @@
 
         //鑾峰彇灏忚溅鑺傜偣
         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) {

--
Gitblit v1.9.1