From 6c8ee211ae63de5f4ce0bd13b9c34f0524cd656f Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 06 五月 2026 19:11:49 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/utils/StationOperateProcessUtils.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 47 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java b/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
index cdfb920..9a2f7ff 100644
--- a/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
@@ -32,8 +32,10 @@
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;
@Component
public class StationOperateProcessUtils {
@@ -199,9 +201,24 @@
if (wrkMast == null) {
return;
}
+ if (!Objects.equals(wrkMast.getStaNo(), stationObjModel.getStationId())) {
+ News.info("鍏ュ簱绔欑偣鍒拌揪鎵弿蹇界暐锛屽伐浣滃彿={}锛屾壂鎻忕珯鐐�={}锛屼换鍔$洰鏍囩珯={}锛屽師鍥�=target_mismatch",
+ wrkMast.getWrkNo(), stationObjModel.getStationId(), wrkMast.getStaNo());
+ return;
+ }
+ if (!Objects.equals(wrkMast.getWrkSts(), WrkStsType.INBOUND_STATION_RUN.sts)) {
+ News.info("鍏ュ簱绔欑偣鍒拌揪鎵弿蹇界暐锛屽伐浣滃彿={}锛屾壂鎻忕珯鐐�={}锛屼换鍔$姸鎬�={}锛屽師鍥�=wrk_sts_mismatch",
+ wrkMast.getWrkNo(), stationObjModel.getStationId(), wrkMast.getWrkSts());
+ return;
+ }
+ News.info("鍏ュ簱绔欑偣鍒拌揪鎵弿鍛戒腑锛屽伐浣滃彿={}锛屾壂鎻忕珯鐐�={}锛岀洰鏍囩珯={}锛岀珯鐐箃askNo={}锛屽噯澶囪浆鐘舵��3",
+ wrkMast.getWrkNo(), stationObjModel.getStationId(), wrkMast.getStaNo(), stationProtocol.getTaskNo());
boolean updated = wrkAnalysisService.completeInboundStationRun(wrkMast, new Date());
if (updated) {
- News.info("鍏ュ簱绔欑偣鍒拌揪鎵弿鍛戒腑锛屽伐浣滃彿={}锛岀洰鏍囩珯={}", wrkMast.getWrkNo(), wrkMast.getStaNo());
+ News.info("鍏ュ簱绔欑偣鍒拌揪鎵弿瀹屾垚锛屽伐浣滃彿={}锛岀洰鏍囩珯={}锛岀粨鏋�=updated_to_3", wrkMast.getWrkNo(), wrkMast.getStaNo());
+ }
+ else {
+ News.info("鍏ュ簱绔欑偣鍒拌揪鎵弿缁撴潫锛屽伐浣滃彿={}锛岀洰鏍囩珯={}锛岀粨鏋�=skip_update", wrkMast.getWrkNo(), wrkMast.getStaNo());
}
}
@@ -285,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