From 707f8db2227a6031f230e35895ea1c5f7ff03bd6 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 18 十二月 2025 14:43:52 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/network/fake/ZyRgvFakeConnect.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 51 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/core/network/fake/ZyRgvFakeConnect.java b/src/main/java/com/zy/core/network/fake/ZyRgvFakeConnect.java
index eca22e9..ac8cb73 100644
--- a/src/main/java/com/zy/core/network/fake/ZyRgvFakeConnect.java
+++ b/src/main/java/com/zy/core/network/fake/ZyRgvFakeConnect.java
@@ -4,16 +4,15 @@
 import com.alibaba.fastjson.JSONObject;
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.DeviceConfig;
+import com.zy.asrs.service.BasMapService;
 import com.zy.common.model.NavigateNode;
 import com.zy.common.utils.NavigateUtils;
-import com.zy.core.enums.RgvModeType;
 import com.zy.core.enums.RgvStatusType;
 import com.zy.core.enums.RgvTaskModeType;
 import com.zy.core.model.CommandResponse;
 import com.zy.core.model.command.RgvCommand;
 import com.zy.core.network.api.ZyRgvConnectApi;
 import com.zy.core.network.entity.ZyRgvStatusEntity;
-import com.zy.core.network.entity.ZyStationStatusEntity;
 
 import java.util.List;
 import java.util.concurrent.ExecutorService;
@@ -38,6 +37,7 @@
 
     @Override
     public boolean disconnect() {
+        try { executor.shutdownNow(); } catch (Exception ignore) {}
         return true;
     }
 
@@ -73,9 +73,21 @@
             return;
         }
 
+        BasMapService basMapService = SpringUtils.getBean(BasMapService.class);
+        if (basMapService == null) {
+            return;
+        }
+
+        List<Integer> levList = basMapService.getLevList();
+
         List<NavigateNode> navigateNodes = null;
         try {
-            navigateNodes = navigateUtils.calcByTrackSiteNo(status.getRgvPos(), sourcePos);
+            for (Integer lev : levList) {
+                navigateNodes = navigateUtils.calcByTrackSiteNo(lev, status.getRgvPos(), sourcePos);
+                if (navigateNodes != null) {
+                    break;
+                }
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -86,7 +98,12 @@
 
         List<NavigateNode> targetNavigateNodes = null;
         try {
-            targetNavigateNodes = navigateUtils.calcByTrackSiteNo(sourcePos, targetPos);
+            for (Integer lev : levList) {
+                targetNavigateNodes = navigateUtils.calcByTrackSiteNo(lev, sourcePos, targetPos);
+                if (targetNavigateNodes != null) {
+                    break;
+                }
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -104,11 +121,17 @@
 
             status.setRgvPos(currentTrackSiteNo);
             sleep(1000);
+            if (Thread.currentThread().isInterrupted()) {
+                return;
+            }
         }
 
         status.setStatus(RgvStatusType.PUTTING.id);
         status.setLoaded(1);
         sleep(1000);
+        if (Thread.currentThread().isInterrupted()) {
+            return;
+        }
 
         for (int i = 0; i < targetNavigateNodes.size(); i++) {
             NavigateNode navigateNode = targetNavigateNodes.get(i);
@@ -117,9 +140,15 @@
 
             status.setRgvPos(currentTrackSiteNo);
             sleep(1000);
+            if (Thread.currentThread().isInterrupted()) {
+                return;
+            }
         }
 
         sleep(1000);
+        if (Thread.currentThread().isInterrupted()) {
+            return;
+        }
         status.setStatus(RgvStatusType.WAITING.id);
     }
 
@@ -133,9 +162,21 @@
             return;
         }
 
+        BasMapService basMapService = SpringUtils.getBean(BasMapService.class);
+        if (basMapService == null) {
+            return;
+        }
+
+        List<Integer> levList = basMapService.getLevList();
+
         List<NavigateNode> navigateNodes = null;
         try {
-            navigateNodes = navigateUtils.calcByTrackSiteNo(status.getRgvPos(), targetPos);
+            for (Integer lev : levList) {
+                navigateNodes = navigateUtils.calcByTrackSiteNo(lev, status.getRgvPos(), targetPos);
+                if (navigateNodes != null) {
+                    break;
+                }
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -153,6 +194,9 @@
 
             status.setRgvPos(currentTrackSiteNo);
             sleep(1000);
+            if (Thread.currentThread().isInterrupted()) {
+                return;
+            }
         }
         status.setStatus(RgvStatusType.WAITING.id);
     }
@@ -166,7 +210,7 @@
         try {
             Thread.sleep(ms);
         } catch (InterruptedException e) {
-            e.printStackTrace();
+            Thread.currentThread().interrupt();
         }
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.1