From cbb00d4729243e4949b3c921fc2f94cb03ca8aaa Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 27 三月 2026 18:47:43 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java b/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java
index d2d97e6..1e8f4c4 100644
--- a/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java
@@ -34,6 +34,7 @@
 import com.zy.core.network.entity.ZyStationStatusEntity;
 import com.zy.core.service.StationTaskLoopService;
 import com.zy.core.thread.impl.v5.StationV5SegmentExecutor;
+import com.zy.core.thread.support.RecentStationArrivalTracker;
 import com.zy.core.trace.StationTaskTraceRegistry;
 import com.zy.core.utils.DeviceLogRedisKeyBuilder;
 import lombok.Data;
@@ -73,10 +74,12 @@
     private long deviceDataLogTime = System.currentTimeMillis();
     private ExecutorService executor = Executors.newFixedThreadPool(9999);
     private StationV5SegmentExecutor segmentExecutor;
+    private final RecentStationArrivalTracker recentArrivalTracker;
 
     public ZyStationV5Thread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
         this.deviceConfig = deviceConfig;
         this.redisUtil = redisUtil;
+        this.recentArrivalTracker = new RecentStationArrivalTracker(redisUtil);
         this.segmentExecutor = new StationV5SegmentExecutor(deviceConfig, redisUtil, this::sendCommand);
     }
 
@@ -173,6 +176,7 @@
                     stationProtocol.setWeight(statusEntity.getWeight());
                     stationProtocol.setTaskWriteIdx(statusEntity.getTaskWriteIdx());
                     stationProtocol.setTaskBufferItems(statusEntity.getTaskBufferItems());
+                    recentArrivalTracker.observe(statusEntity.getStationId(), statusEntity.getTaskNo(), statusEntity.isLoading());
                 }
 
                 if (!Cools.isEmpty(stationProtocol.getSystemWarning())) {
@@ -232,6 +236,11 @@
             map.put(stationProtocol.getStationId(), stationProtocol);
         }
         return map;
+    }
+
+    @Override
+    public boolean hasRecentArrival(Integer stationId, Integer taskNo) {
+        return recentArrivalTracker.hasRecentArrival(stationId, taskNo);
     }
 
     @Override
@@ -385,9 +394,11 @@
                     log.warn("杈撻�佺珯缂撳瓨鍖烘畫鐣欒矾寰勬竻鐞嗗け璐ャ�俿tationId={}, slotIdx={}, taskNo={}",
                             stationId, item.getSlotIdx(), item.getTaskNo());
                     continue;
+                }else {
+                    success = true;
+                    log.warn("杈撻�佺珯缂撳瓨鍖烘畫鐣欒矾寰勬竻鐞嗘垚鍔熴�俿tationId={}, slotIdx={}, taskNo={}",
+                            stationId, item.getSlotIdx(), item.getTaskNo());
                 }
-                item.setTaskNo(0);
-                item.setTargetStaNo(0);
             }
         }
         return found && success;

--
Gitblit v1.9.1