From 959139e7a5d89e8498d731082a949310ae1c6fcf Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 05 十二月 2025 14:32:29 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/ZyStationThread.java |   62 +++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/ZyStationThread.java b/src/main/java/com/zy/core/thread/impl/ZyStationThread.java
index 5cfe421..9552cc0 100644
--- a/src/main/java/com/zy/core/thread/impl/ZyStationThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZyStationThread.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.utils.Utils;
 import com.zy.core.network.DeviceConnectPool;
 import com.zy.core.thread.StationThread;
 import com.alibaba.fastjson.JSON;
@@ -11,6 +12,8 @@
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.DeviceConfig;
 import com.zy.asrs.entity.DeviceDataLog;
+import com.zy.asrs.entity.BasStationOpt;
+import com.zy.asrs.service.BasStationOptService;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.network.ZyStationConnectDriver;
 import com.zy.core.cache.MessageQueue;
@@ -40,6 +43,7 @@
     private DeviceConfig deviceConfig;
     private RedisUtil redisUtil;
     private ZyStationConnectDriver zyStationConnectDriver;
+    private int deviceLogCollectTime = 200;
     private long deviceDataLogTime = System.currentTimeMillis();
 
     public ZyStationThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
@@ -51,6 +55,21 @@
     @SuppressWarnings("InfiniteLoopStatement")
     public void run() {
         this.connect();
+        deviceLogCollectTime = Utils.getDeviceLogCollectTime();
+
+        //璁惧璇诲彇
+        Thread readThread = new Thread(() -> {
+            while (true) {
+                try {
+                    readStatus();
+                    Thread.sleep(200);
+                } catch (Exception e) {
+                    log.error("StationThread Fail", e);
+                }
+            }
+        });
+        readThread.start();
+
         while (true) {
             try {
                 int step = 1;
@@ -59,10 +78,6 @@
                     step = task.getStep();
                 }
                 switch (step) {
-                    // 璇绘暟鎹�
-                    case 1:
-                        readStatus();
-                        break;
                     case 2:
                         sendCommand((StationCommand) task.getData());
                         break;
@@ -122,7 +137,7 @@
 
         OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));
 
-        if (System.currentTimeMillis() - deviceDataLogTime > 1000 * 1) {
+        if (System.currentTimeMillis() - deviceDataLogTime > deviceLogCollectTime) {
             //淇濆瓨鏁版嵁璁板綍
             DeviceDataLog deviceDataLog = new DeviceDataLog();
             deviceDataLog.setOriginData(JSON.toJSONString(zyStationStatusEntities));
@@ -166,8 +181,41 @@
 
     @Override
     public CommandResponse sendCommand(StationCommand command) {
-       CommandResponse commandResponse = zyStationConnectDriver.sendCommand(command);
-       return commandResponse;
+       CommandResponse commandResponse = null;
+       try {
+           commandResponse = zyStationConnectDriver.sendCommand(command);
+           return commandResponse;
+       } finally {
+           BasStationOptService optService = SpringUtils.getBean(BasStationOptService.class);
+           List<ZyStationStatusEntity> statusListEntity = zyStationConnectDriver.getStatus();
+           ZyStationStatusEntity matched = null;
+           if (statusListEntity != null) {
+               for (ZyStationStatusEntity e : statusListEntity) {
+                   if (e.getStationId() != null && e.getStationId().equals(command.getStationId())) {
+                       matched = e;
+                       break;
+                   }
+               }
+           }
+           BasStationOpt basStationOpt = new BasStationOpt(
+                   command.getTaskNo(),
+                   command.getStationId(),
+                   new Date(),
+                   "MOVE",
+                   command.getStationId(),
+                   command.getTargetStaNo(),
+                   null,
+                   null,
+                   null,
+                   JSON.toJSONString(command),
+                   JSON.toJSONString(matched),
+                   1,
+                   JSON.toJSONString(commandResponse)
+           );
+           if (optService != null) {
+               optService.insert(basStationOpt);
+           }
+       }
     }
 
     @Override

--
Gitblit v1.9.1