From 706eabba4750cf92282378ae5d2414f497a4578c Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 08 一月 2026 12:51:23 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 6fd6c90..f2c7d43 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -11,9 +11,11 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasCrnp;
 import com.zy.asrs.entity.BasDualCrnp;
+import com.zy.asrs.entity.BasStationDevice;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.BasCrnpService;
 import com.zy.asrs.service.BasDualCrnpService;
+import com.zy.asrs.service.BasStationDeviceService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.common.model.NavigateNode;
 import com.zy.common.utils.NavigateUtils;
@@ -168,6 +170,18 @@
             NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
             WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
             BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+            BasStationDeviceService basStationDeviceService = SpringUtils.getBean(BasStationDeviceService.class);
+
+            List<BasStationDevice> stationDevices = basStationDeviceService.selectList(new EntityWrapper<BasStationDevice>().eq("station_id", stationId));
+            boolean hasConfig = !stationDevices.isEmpty();
+            List<Integer> allowedCrnNos = new ArrayList<>();
+            if (hasConfig) {
+                for (BasStationDevice sd : stationDevices) {
+                    if (SlaveType.Crn.toString().equals(sd.getDeviceType())) {
+                        allowedCrnNos.add(sd.getDeviceNo());
+                    }
+                }
+            }
 
             Integer currentCircleTaskCrnNo = null;
             Object object = redisUtil.get(RedisKeyType.CURRENT_CIRCLE_TASK_CRN_NO.key);
@@ -216,6 +230,9 @@
 
             List<BasCrnp> enabledCrnps = new ArrayList<>();
             for (BasCrnp basCrnp : baseList) {
+                if (hasConfig && !allowedCrnNos.contains(basCrnp.getCrnNo())) {
+                    continue;
+                }
                 CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
                 if (crnThread == null) {
                     continue;
@@ -277,6 +294,18 @@
             NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
             WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
             BasDualCrnpService basDualCrnpService = SpringUtils.getBean(BasDualCrnpService.class);
+            BasStationDeviceService basStationDeviceService = SpringUtils.getBean(BasStationDeviceService.class);
+
+            List<BasStationDevice> stationDevices = basStationDeviceService.selectList(new EntityWrapper<BasStationDevice>().eq("station_id", stationId));
+            boolean hasConfig = !stationDevices.isEmpty();
+            List<Integer> allowedCrnNos = new ArrayList<>();
+            if (hasConfig) {
+                for (BasStationDevice sd : stationDevices) {
+                    if (SlaveType.Crn.toString().equals(sd.getDeviceType())) {
+                        allowedCrnNos.add(sd.getDeviceNo());
+                    }
+                }
+            }
 
             Wrapper<BasDualCrnp> wrapper = new EntityWrapper<BasDualCrnp>()
                     .eq("in_enable", "Y")
@@ -304,6 +333,10 @@
 
             List<BasDualCrnp> enabledCrnps = new ArrayList<>();
             for (BasDualCrnp basDualCrnp : baseList) {
+                if (hasConfig && !allowedCrnNos.contains(basDualCrnp.getCrnNo())) {
+                    continue;
+                }
+
                 DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, basDualCrnp.getCrnNo());
                 if (dualCrnThread == null) {
                     continue;

--
Gitblit v1.9.1