From 03c3ae747f82ad22c761c79e7b1c0e0031c57d41 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 06 四月 2026 20:28:35 +0800
Subject: [PATCH] #出库站点命令下发

---
 src/main/java/com/zy/core/thread/impl/v5/StationV5StatusReader.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/v5/StationV5StatusReader.java b/src/main/java/com/zy/core/thread/impl/v5/StationV5StatusReader.java
index fdd6f3a..a053956 100644
--- a/src/main/java/com/zy/core/thread/impl/v5/StationV5StatusReader.java
+++ b/src/main/java/com/zy/core/thread/impl/v5/StationV5StatusReader.java
@@ -18,11 +18,13 @@
 import com.zy.core.network.ZyStationConnectDriver;
 import com.zy.core.network.entity.ZyStationStatusEntity;
 import com.zy.core.thread.support.RecentStationArrivalTracker;
+import com.zy.core.thread.support.StationErrLogSupport;
 import com.zy.core.utils.DeviceLogRedisKeyBuilder;
 
 import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.LinkedHashSet;
 import java.util.List;
 
 public class StationV5StatusReader {
@@ -31,6 +33,7 @@
     private final RedisUtil redisUtil;
     private final RecentStationArrivalTracker recentArrivalTracker;
     private final List<StationProtocol> statusList = new ArrayList<>();
+    private volatile List<Integer> taskNoList = new ArrayList<>();
     private boolean initialized = false;
     private long deviceDataLogTime = System.currentTimeMillis();
 
@@ -74,6 +77,7 @@
 
         int deviceLogCollectTime = initialized ? Utils.getDeviceLogCollectTime() : 200;
         List<ZyStationStatusEntity> zyStationStatusEntities = zyStationConnectDriver.getStatus();
+        LinkedHashSet<Integer> taskNoSet = new LinkedHashSet<>();
         for (ZyStationStatusEntity statusEntity : zyStationStatusEntities) {
             for (StationProtocol stationProtocol : statusList) {
                 if (stationProtocol.getStationId().equals(statusEntity.getStationId())) {
@@ -94,6 +98,18 @@
                     stationProtocol.setWeight(statusEntity.getWeight());
                     stationProtocol.setTaskWriteIdx(statusEntity.getTaskWriteIdx());
                     stationProtocol.setTaskBufferItems(statusEntity.getTaskBufferItems());
+                    stationProtocol.setIoMode(statusEntity.getIoMode());
+                    if (statusEntity.getTaskNo() != null && statusEntity.getTaskNo() > 0) {
+                        taskNoSet.add(statusEntity.getTaskNo());
+                    }
+                    if (statusEntity.getTaskBufferItems() != null) {
+                        statusEntity.getTaskBufferItems().forEach(item -> {
+                            Integer bufferTaskNo = item == null ? null : item.getTaskNo();
+                            if (bufferTaskNo != null && bufferTaskNo > 0) {
+                                taskNoSet.add(bufferTaskNo);
+                            }
+                        });
+                    }
                     recentArrivalTracker.observe(statusEntity.getStationId(), statusEntity.getTaskNo(), statusEntity.isLoading());
                 }
 
@@ -104,9 +120,11 @@
                 }
             }
         }
+        taskNoList = new ArrayList<>(taskNoSet);
 
         OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",
                 DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));
+        StationErrLogSupport.sync(deviceConfig, redisUtil, statusList);
 
         if (System.currentTimeMillis() - deviceDataLogTime > deviceLogCollectTime) {
             DeviceDataLog deviceDataLog = new DeviceDataLog();
@@ -124,4 +142,8 @@
     public List<StationProtocol> getStatusList() {
         return statusList;
     }
+
+    public List<Integer> getTaskNoList() {
+        return taskNoList;
+    }
 }

--
Gitblit v1.9.1