From 61af3f1ad872e4c068a3383db74c8ed5c6acf6bf Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 31 三月 2026 22:14:16 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/ServerBootstrap.java |   41 +++++++++++++++++++++++++----------------
 1 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 62c22f5..4522b3d 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -1,18 +1,15 @@
 package com.zy.core;
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.DeviceConfig;
 import com.zy.asrs.service.DeviceConfigService;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.RedisKeyType;
 import com.zy.core.enums.SlaveType;
-import com.zy.core.thread.impl.ZySiemensCrnThread;
-import com.zy.core.thread.impl.ZySiemensDualCrnThread;
-import com.zy.core.thread.impl.ZyStationThread;
-import com.zy.core.thread.impl.ZyStationV3Thread;
-import com.zy.core.thread.impl.ZyRgvThread;
+import com.zy.core.thread.impl.*;
 
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +35,7 @@
     @Async
     public void init() throws InterruptedException {
         News.info("鏍稿績鎺у埗灞傚紑濮嬪垵濮嬪寲...............................................");
+        clearStartupRuntimeLocks();
         // 鍒濆鍖栨秷鎭槦鍒�
         initMq();
         // 鍒濆鍖栦笅浣嶆満绾跨▼
@@ -47,39 +45,44 @@
         News.info("鏍稿績鎺у埗灞傚凡鍚姩...............................................");
     }
 
+    private void clearStartupRuntimeLocks() {
+        redisUtil.del(RedisKeyType.STATION_EXECUTE_COMMAND_LOCK.key);
+//        News.info("绯荤粺鍚姩鏃跺凡娓呯悊杈撻�佺珯鍛戒护鎵ц閿侊紝key={}", RedisKeyType.STATION_EXECUTE_COMMAND_LOCK.key);
+    }
+
     private void initMq(){
         // 鍒濆鍖栧爢鍨涙満mq
-        List<DeviceConfig> crnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> crnList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Crn)));
         for (DeviceConfig crn : crnList) {
             MessageQueue.init(SlaveType.Crn, crn.getDeviceNo());
         }
         // 鍒濆鍖栧弻宸ヤ綅鍫嗗灈鏈簃q
-        List<DeviceConfig> dualCrnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> dualCrnList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.DualCrn)));
         for (DeviceConfig crn : dualCrnList) {
             MessageQueue.init(SlaveType.DualCrn, crn.getDeviceNo());
         }
         // 鍒濆鍖朢gv灏忚溅mq
-        List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> rgvList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Rgv)));
         for (DeviceConfig rgv : rgvList) {
             MessageQueue.init(SlaveType.Rgv, rgv.getDeviceNo());
         }
         // 鍒濆鍖栬緭閫佺嚎mq
-        List<DeviceConfig> devpList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> devpList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Devp)));
         for (DeviceConfig devp : devpList) {
             MessageQueue.init(SlaveType.Devp, devp.getDeviceNo());
         }
         // 鍒濆鍖栨潯鐮佹壂鎻忎华mq
-        List<DeviceConfig> barcodeList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> barcodeList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Barcode)));
         for (DeviceConfig barcode : barcodeList) {
             MessageQueue.init(SlaveType.Barcode, barcode.getDeviceNo());
         }
         // 鍒濆鍖朙ed鐏痬q
-        List<DeviceConfig> ledList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> ledList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Led)));
         for (DeviceConfig led : ledList) {
             MessageQueue.init(SlaveType.Led, led.getDeviceNo());
@@ -87,7 +90,7 @@
     }
 
     private void initThread(){
-        List<DeviceConfig> crnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> crnList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Crn)));
         if(!crnList.isEmpty()) {
             News.info("鍒濆鍖栧爢鍨涙満........................................................");
@@ -95,6 +98,8 @@
                 ThreadHandler thread = null;
                 if (deviceConfig.getThreadImpl().equals("ZySiemensCrnThread")) {
                     thread = new ZySiemensCrnThread(deviceConfig, redisUtil);
+                } else if (deviceConfig.getThreadImpl().equals("ZySiemensCrnV2Thread")) {
+                    thread = new ZySiemensCrnV2Thread(deviceConfig, redisUtil);
                 } else {
                     throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�");
                 }
@@ -107,7 +112,7 @@
             }
         }
 
-        List<DeviceConfig> dualCrnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> dualCrnList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.DualCrn)));
         if(!dualCrnList.isEmpty()) {
             News.info("鍒濆鍖栧弻宸ヤ綅鍫嗗灈鏈�........................................................");
@@ -127,7 +132,7 @@
             }
         }
 
-        List<DeviceConfig> devpList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> devpList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Devp)));
         if(!devpList.isEmpty()) {
             News.info("鍒濆鍖栬緭閫佺珯........................................................");
@@ -137,6 +142,10 @@
                     thread = new ZyStationThread(deviceConfig, redisUtil);
                 } else if (deviceConfig.getThreadImpl().equals("ZyStationV3Thread")) {
                     thread = new ZyStationV3Thread(deviceConfig, redisUtil);
+                } else if (deviceConfig.getThreadImpl().equals("ZyStationV4Thread")) {
+                    thread = new ZyStationV4Thread(deviceConfig, redisUtil);
+                } else if (deviceConfig.getThreadImpl().equals("ZyStationV5Thread")) {
+                    thread = new ZyStationV5Thread(deviceConfig, redisUtil);
                 } else {
                     throw new CoolException("鏈煡鐨勭嚎绋嬪疄鐜�");
                 }
@@ -149,7 +158,7 @@
             }
         }
 
-        List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+        List<DeviceConfig> rgvList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Rgv)));
         if(!rgvList.isEmpty()) {
             News.info("鍒濆鍖朢GV........................................................");

--
Gitblit v1.9.1