From a72c3844450381a872e4f0f149210e480679984a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 24 三月 2026 16:57:24 +0800
Subject: [PATCH] refactor: unify station out-order reroute flow

---
 src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java b/src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
index 690c13f..e24c92d 100644
--- a/src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
+++ b/src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
@@ -104,6 +104,39 @@
         assertEquals("buffer-has-current-task", result.skipReason());
     }
 
+    @Test
+    void outOrderAndWatchCircle_shareDecisionFlow() {
+        StationOperateProcessUtils utils = new StationOperateProcessUtils();
+        WrkMast wrkMast = buildWrkMast(100, 20);
+
+        StationOperateProcessUtils.RerouteContext outOrderContext = StationOperateProcessUtils.RerouteContext.create(
+                StationOperateProcessUtils.RerouteSceneType.OUT_ORDER,
+                buildBasDevp(1),
+                mock(StationThread.class),
+                buildStationProtocol(10, 100, 10),
+                wrkMast,
+                Collections.emptyList(),
+                0.0d,
+                "checkStationOutOrder"
+        );
+        StationOperateProcessUtils.RerouteContext watchCircleContext = StationOperateProcessUtils.RerouteContext.create(
+                StationOperateProcessUtils.RerouteSceneType.WATCH_CIRCLE,
+                buildBasDevp(1),
+                mock(StationThread.class),
+                buildStationProtocol(10, 100, 10),
+                wrkMast,
+                Collections.emptyList(),
+                0.0d,
+                "watchCircleStation"
+        );
+
+        StationOperateProcessUtils.RerouteDecision outOrderDecision = utils.resolveSharedRerouteDecision(outOrderContext);
+        StationOperateProcessUtils.RerouteDecision watchCircleDecision = utils.resolveSharedRerouteDecision(watchCircleContext);
+
+        assertEquals(20, outOrderDecision.targetStationId());
+        assertEquals(20, watchCircleDecision.targetStationId());
+    }
+
     private static BasDevp buildBasDevp(int devpNo) {
         BasDevp basDevp = new BasDevp();
         basDevp.setDevpNo(devpNo);

--
Gitblit v1.9.1