From 63b01db83d9aad8a15276b4236a9a22e4aeef065 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 05 五月 2026 12:30:59 +0800
Subject: [PATCH] # Agent数据分析V3.0.1.7
---
src/main/java/com/zy/core/utils/StationOperateProcessUtils.java | 38 ++++++++++++++++++++++++++++++--------
1 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java b/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
index 75e9350..9a2f7ff 100644
--- a/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
@@ -32,6 +32,7 @@
import org.springframework.stereotype.Component;
import java.util.Date;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -301,22 +302,43 @@
public void submitCrnStationOutTasks(MainProcessLane lane, long minIntervalMs) {
List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>()
.eq("wrk_sts", WrkStsType.OUTBOUND_RUN_COMPLETE.sts)
- .isNotNull("crn_no"));
+ .isNotNull("crn_no")
+ .orderByAsc("io_time", "wrk_no"));
+ MainProcessLane pendingConfirmLane = resolveStationOutPendingConfirmLane(lane);
+ LinkedHashSet<Integer> sourceStationIdSet = new LinkedHashSet<>();
for (WrkMast wrkMast : wrkMasts) {
- Integer laneKey = wrkMast == null ? null : wrkMast.getSourceStaNo();
- if (laneKey == null) {
- laneKey = wrkMast == null ? null : wrkMast.getWrkNo();
+ if (wrkMast == null || wrkMast.getWrkNo() == null) {
+ continue;
}
mainProcessTaskSubmitter.submitKeyedSerialTask(
- lane,
- laneKey,
- "crnStationOutExecute",
+ pendingConfirmLane,
+ wrkMast.getWrkNo(),
+ "confirmPendingCrnStationOutDispatch",
minIntervalMs,
- () -> crnStationOutExecute(wrkMast)
+ () -> stationOutboundDispatchProcessor.confirmPendingCrnStationOutDispatch(wrkMast)
+ );
+ if (wrkMast.getSourceStaNo() != null) {
+ sourceStationIdSet.add(wrkMast.getSourceStaNo());
+ }
+ }
+ for (Integer sourceStationId : sourceStationIdSet) {
+ mainProcessTaskSubmitter.submitKeyedSerialTask(
+ lane,
+ sourceStationId,
+ "dispatchNextCrnStationOutTask",
+ minIntervalMs,
+ () -> stationOutboundDispatchProcessor.dispatchNextCrnStationOutTask(sourceStationId)
);
}
}
+ private MainProcessLane resolveStationOutPendingConfirmLane(MainProcessLane lane) {
+ if (lane == MainProcessLane.FAKE_STATION_OUT) {
+ return MainProcessLane.FAKE_STATION_OUT_PENDING_CONFIRM;
+ }
+ return MainProcessLane.STATION_OUT_PENDING_CONFIRM;
+ }
+
public void submitDualCrnStationOutTasks(long minIntervalMs) {
submitDualCrnStationOutTasks(MainProcessLane.DUAL_STATION_OUT, minIntervalMs);
}
--
Gitblit v1.9.1