From 26784989e73fc36c6315e54939d1b13a50eb5020 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 26 三月 2026 21:03:00 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java |   40 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 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 c0eb09e..d2d97e6 100644
--- a/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java
@@ -28,6 +28,7 @@
 import com.zy.core.model.Task;
 import com.zy.core.model.command.StationCommand;
 import com.zy.core.model.protocol.StationProtocol;
+import com.zy.core.model.protocol.StationTaskBufferItem;
 import com.zy.core.network.DeviceConnectPool;
 import com.zy.core.network.ZyStationConnectDriver;
 import com.zy.core.network.entity.ZyStationStatusEntity;
@@ -354,6 +355,45 @@
     }
 
     @Override
+    public synchronized boolean clearPath(Integer taskNo) {
+        if (taskNo == null || taskNo <= 0) {
+            return false;
+        }
+        if (zyStationConnectDriver == null) {
+            return false;
+        }
+        List<StationProtocol> status = getStatus();
+        if (status == null || status.isEmpty()) {
+            return false;
+        }
+
+        boolean found = false;
+        boolean success = true;
+        for (StationProtocol stationProtocol : status) {
+            List<StationTaskBufferItem> taskBufferItems = stationProtocol == null ? null : stationProtocol.getTaskBufferItems();
+            if (taskBufferItems == null || taskBufferItems.isEmpty()) {
+                continue;
+            }
+            Integer stationId = stationProtocol.getStationId();
+            for (StationTaskBufferItem item : taskBufferItems) {
+                if (item == null || !Objects.equals(taskNo, item.getTaskNo())) {
+                    continue;
+                }
+                found = true;
+                if (!zyStationConnectDriver.clearTaskBufferSlot(stationId, item.getSlotIdx())) {
+                    success = false;
+                    log.warn("杈撻�佺珯缂撳瓨鍖烘畫鐣欒矾寰勬竻鐞嗗け璐ャ�俿tationId={}, slotIdx={}, taskNo={}",
+                            stationId, item.getSlotIdx(), item.getTaskNo());
+                    continue;
+                }
+                item.setTaskNo(0);
+                item.setTargetStaNo(0);
+            }
+        }
+        return found && success;
+    }
+
+    @Override
     public CommandResponse sendCommand(StationCommand command) {
         CommandResponse commandResponse = null;
         try {

--
Gitblit v1.9.1