From f653130e5df936041f7a5ae005e10c91415b64b1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 10 七月 2025 15:54:33 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java |   58 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 3f6b511..454a799 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -4,17 +4,19 @@
 import com.core.common.Arith;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
+import com.zy.asrs.entity.DeviceConfig;
 import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.DeviceConfigService;
 import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.common.model.NavigateNode;
 import com.zy.common.model.enums.NavigationMapType;
 import com.zy.common.utils.NavigatePositionConvert;
 import com.zy.common.utils.NavigateUtils;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
-import com.zy.core.model.ShuttleSlave;
 import com.zy.core.model.protocol.ShuttleProtocol;
-import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.ShuttleThread;
 import java.text.DecimalFormat;
 import java.util.*;
@@ -107,15 +109,18 @@
 
     //鑾峰彇闄ょ櫧鍚嶅崟澶栫殑鎸囧畾妤煎眰鍏ㄩ儴绌挎杞y鍧愭爣鐐�
     public static List<int[]> getShuttlePoints(Integer whiteShuttle, Integer lev) {
-        SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
+        DeviceConfigService deviceConfigService = SpringUtils.getBean(DeviceConfigService.class);
         ArrayList<int[]> list = new ArrayList<>();
-        for (ShuttleSlave slave : slaveProperties.getShuttle()) {
-            if (slave.getId().intValue() == whiteShuttle) {
+
+        List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.Shuttle)));
+        for (DeviceConfig device : shuttleList) {
+            if (device.getDeviceNo().intValue() == whiteShuttle) {
                 continue;//璺宠繃鐧藉悕鍗�
             }
 
             //鑾峰彇绌挎杞︽墍鍦ㄨ妭鐐逛綅缃�
-            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
+            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
             if (shuttleThread == null) {
                 continue;
             }
@@ -142,12 +147,16 @@
         return list;
     }
 
-    //妫�娴嬫ゼ灞傛槸鍚︽湁绌挎杞�
+    //妫�娴嬫ゼ灞傛槸鍚︽湁鍙敤绌挎杞�
     public static boolean checkLevHasShuttle(Integer lev) {
-        SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
-        for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
+        DeviceConfigService deviceConfigService = SpringUtils.getBean(DeviceConfigService.class);
+        WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
+
+        List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.Shuttle)));
+        for (DeviceConfig device : shuttleList) {
             //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
-            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
+            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
             if (shuttleThread == null) {
                 continue;
             }
@@ -157,6 +166,22 @@
             }
             String currentLocNo = shuttleProtocol.getCurrentLocNo();
             if (currentLocNo == null) {
+                continue;
+            }
+
+            //灏忚溅姝e湪鍏呯數
+            if (shuttleThread.isCharging()) {
+                continue;
+            }
+
+            //灏忚溅鏈夊厖鐢典换鍔�
+            WrkMast chargeWorking = wrkMastService.selectChargeWorking(shuttleProtocol.getShuttleNo());
+            if (chargeWorking != null) {//宸叉湁鍏呯數浠诲姟
+                continue;
+            }
+
+            //灏忚溅澶勪簬鏁呴殰鐘舵��
+            if (shuttleThread.isFault()) {
                 continue;
             }
 
@@ -178,14 +203,17 @@
             return null;
         }
 
-        SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
-        if (slaveProperties == null) {
+        DeviceConfigService deviceConfigService = SpringUtils.getBean(DeviceConfigService.class);
+        if (deviceConfigService == null) {
             return null;
         }
 
+        List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.Shuttle)));
+
         for (String loc : groupLoc) {
-            for (ShuttleSlave slave : slaveProperties.getShuttle()) {
-                ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
+            for (DeviceConfig device : shuttleList) {
+                ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
                 if (shuttleThread == null) {
                     continue;
                 }
@@ -201,7 +229,7 @@
 
                 if (shuttleProtocol.getCurrentLocNo().equals(loc)) {
                     //瀛樺湪灏忚溅
-                    return slave.getId();
+                    return device.getDeviceNo();
                 }
             }
         }

--
Gitblit v1.9.1