From 5a2bd164d3a831e39bf0defaddf181a97de36993 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 05 四月 2026 23:28:42 +0800
Subject: [PATCH] #缓存数据清理

---
 src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java |   49 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 41 insertions(+), 8 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 09e1b79..04f30fe 100644
--- a/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java
@@ -265,7 +265,7 @@
 
     @Override
     public boolean clearPath(Integer taskNo) {
-        if (taskNo == null || taskNo <= 0) {
+        if (taskNo == null) {
             return false;
         }
         if (zyStationConnectDriver == null) {
@@ -289,24 +289,57 @@
                     continue;
                 }
                 found = true;
+                Integer clearedTaskNo = item.getTaskNo();
                 if (!zyStationConnectDriver.clearTaskBufferSlot(stationId, item.getSlotIdx())) {
                     success = false;
                     log.warn("杈撻�佺珯缂撳瓨鍖烘畫鐣欒矾寰勬竻鐞嗗け璐ャ�俿tationId={}, slotIdx={}, taskNo={}",
-                            stationId, item.getSlotIdx(), item.getTaskNo());
+                            stationId, item.getSlotIdx(), clearedTaskNo);
                     continue;
-                }else {
-                    item.setTaskNo(0);
-                    item.setTargetStaNo(0);
-                    success = true;
-                    log.warn("杈撻�佺珯缂撳瓨鍖烘畫鐣欒矾寰勬竻鐞嗘垚鍔熴�俿tationId={}, slotIdx={}, taskNo={}",
-                            stationId, item.getSlotIdx(), item.getTaskNo());
                 }
+                item.setTaskNo(0);
+                item.setTargetStaNo(0);
+                log.warn("杈撻�佺珯缂撳瓨鍖烘畫鐣欒矾寰勬竻鐞嗘垚鍔熴�俿tationId={}, slotIdx={}, taskNo={}",
+                        stationId, item.getSlotIdx(), clearedTaskNo);
             }
         }
         return found && success;
     }
 
     @Override
+    public boolean clearPathByStationSlot(Integer stationId, Integer slotIdx) {
+        if (stationId == null || slotIdx == null || zyStationConnectDriver == null) {
+            return false;
+        }
+        List<StationProtocol> status = getStatus();
+        if (status == null || status.isEmpty()) {
+            return false;
+        }
+
+        for (StationProtocol stationProtocol : status) {
+            if (stationProtocol == null || !Objects.equals(stationId, stationProtocol.getStationId())) {
+                continue;
+            }
+            if (!zyStationConnectDriver.clearTaskBufferSlot(stationId, slotIdx)) {
+                log.warn("杈撻�佺珯缂撳瓨鍖烘畫鐣欒矾寰勬寜绔欑偣妲戒綅娓呯悊澶辫触銆俿tationId={}, slotIdx={}", stationId, slotIdx);
+                return false;
+            }
+            List<StationTaskBufferItem> taskBufferItems = stationProtocol.getTaskBufferItems();
+            if (taskBufferItems != null) {
+                for (StationTaskBufferItem item : taskBufferItems) {
+                    if (item != null && Objects.equals(slotIdx, item.getSlotIdx())) {
+                        item.setTaskNo(0);
+                        item.setTargetStaNo(0);
+                        break;
+                    }
+                }
+            }
+            log.warn("杈撻�佺珯缂撳瓨鍖烘畫鐣欒矾寰勬寜绔欑偣妲戒綅娓呯悊鎴愬姛銆俿tationId={}, slotIdx={}", stationId, slotIdx);
+            return true;
+        }
+        return false;
+    }
+
+    @Override
     public CommandResponse sendCommand(StationCommand command) {
         CommandResponse commandResponse = null;
         try {

--
Gitblit v1.9.1