From 41ace7c0738ba39750b2809d5077dd0d7640ced8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 07 四月 2026 10:03:34 +0800
Subject: [PATCH] #入库条码站异常信号点

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

diff --git a/src/main/java/com/zy/core/thread/impl/ZyStationV4Thread.java b/src/main/java/com/zy/core/thread/impl/ZyStationV4Thread.java
index a08a715..0d53791 100644
--- a/src/main/java/com/zy/core/thread/impl/ZyStationV4Thread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZyStationV4Thread.java
@@ -51,6 +51,7 @@
     private static final double DEFAULT_STATION_COMMAND_SEGMENT_ADVANCE_RATIO = 0.3d;
 
     private List<StationProtocol> statusList = new ArrayList<>();
+    private volatile List<Integer> taskNoList = new ArrayList<>();
     private DeviceConfig deviceConfig;
     private RedisUtil redisUtil;
     private ZyStationConnectDriver zyStationConnectDriver;
@@ -141,6 +142,7 @@
         }
 
         List<ZyStationStatusEntity> zyStationStatusEntities = zyStationConnectDriver.getStatus();
+        LinkedHashSet<Integer> taskNoSet = new LinkedHashSet<>();
         for (ZyStationStatusEntity statusEntity : zyStationStatusEntities) {
             for (StationProtocol stationProtocol : statusList) {
                 if (stationProtocol.getStationId().equals(statusEntity.getStationId())) {
@@ -158,9 +160,21 @@
                     stationProtocol.setBarcode(statusEntity.getBarcode());
                     stationProtocol.setRunBlock(statusEntity.isRunBlock());
                     stationProtocol.setEnableIn(statusEntity.isEnableIn());
+                    stationProtocol.setInBarcodeError(statusEntity.isInBarcodeError());
                     stationProtocol.setWeight(statusEntity.getWeight());
                     stationProtocol.setTaskWriteIdx(statusEntity.getTaskWriteIdx());
                     stationProtocol.setTaskBufferItems(statusEntity.getTaskBufferItems());
+                    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());
                 }
 
@@ -173,6 +187,7 @@
                 }
             }
         }
+        taskNoList = new ArrayList<>(taskNoSet);
 
         OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));
         StationErrLogSupport.sync(deviceConfig, redisUtil, statusList);
@@ -220,6 +235,11 @@
             map.put(stationProtocol.getStationId(), stationProtocol);
         }
         return map;
+    }
+
+    @Override
+    public List<Integer> getAllTaskNoList() {
+        return taskNoList;
     }
 
     @Override
@@ -337,7 +357,7 @@
         if (navigateUtils == null) {
             return new ArrayList<>();
         }
-        return navigateUtils.calcByStationId(startStationId, targetStationId, taskNo, pathLenFactor);
+        return navigateUtils.calcOptimalPathByStationId(startStationId, targetStationId, taskNo, pathLenFactor);
     }
 
     private void executeMoveWithSeg(StationCommand original) {

--
Gitblit v1.9.1