From bcfa42da27aa99ac2673892499b697cc415dcaa7 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 29 三月 2026 17:59:13 +0800
Subject: [PATCH] #

---
 /dev/null |  159 -----------------------------------------------------
 1 files changed, 0 insertions(+), 159 deletions(-)

diff --git a/docs/superpowers/plans/2026-03-24-station-reroute-refactor.md b/docs/superpowers/plans/2026-03-24-station-reroute-refactor.md
deleted file mode 100644
index d69fca0..0000000
--- a/docs/superpowers/plans/2026-03-24-station-reroute-refactor.md
+++ /dev/null
@@ -1,337 +0,0 @@
-# Station Reroute Refactor Implementation Plan
-
-> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
-
-**Goal:** Refactor `StationOperateProcessUtils` so run-block reroute, idle recover reroute, out-order dispatch, and watch-circle dispatch all execute through one shared reroute pipeline without changing current business behavior.
-
-**Architecture:** Keep the four public scan methods as entry points, but move shared reroute work into one internal pipeline inside `StationOperateProcessUtils`: context loading, decision resolution, command-plan building, execution guards, and post-dispatch effects. Keep `ZyStationV5Thread`, `StationMoveCoordinator`, Redis key usage, and current dispatch semantics unchanged; only reorganize code paths and add focused regression tests around the new seams.
-
-**Tech Stack:** Java 17, Spring Boot 3.5, MyBatis-Plus, RedisUtil, JUnit 5, Mockito
-
----
-
-## File Map
-
-- Modify: `pom.xml`
-  - Add the minimal test dependency required to run focused JUnit 5 / Mockito tests.
-- Modify: `src/main/java/com/zy/core/utils/StationOperateProcessUtils.java`
-  - Introduce shared reroute context / decision / command-plan structures and move the repeated flow into one pipeline.
-- Create: `src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java`
-  - Cover the new package-private reroute seams and guard ordering with focused unit tests.
-
-### Task 1: Add Test Harness For The New Reroute Seams
-
-**Files:**
-- Modify: `pom.xml`
-- Create: `src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java`
-
-- [ ] **Step 1: Write the failing test file for the reroute seam**
-
-```java
-package com.zy.core.utils;
-
-import org.junit.jupiter.api.Test;
-
-class StationOperateProcessUtilsReroutePipelineTest {
-
-    @Test
-    void choosesRunBlockCommandBuilderForRunBlockRerouteScene() {
-        // compile-time failing seam: package-private helper does not exist yet
-        StationOperateProcessUtils.RerouteSceneType scene =
-                StationOperateProcessUtils.RerouteSceneType.RUN_BLOCK_REROUTE;
-    }
-}
-```
-
-- [ ] **Step 2: Run the test to verify it fails**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest test`
-Expected: FAIL because JUnit test dependency and/or the new reroute seam types are missing.
-
-- [ ] **Step 3: Add minimal test dependency and keep scope tight**
-
-```xml
-<dependency>
-    <groupId>org.springframework.boot</groupId>
-    <artifactId>spring-boot-starter-test</artifactId>
-    <scope>test</scope>
-</dependency>
-```
-
-- [ ] **Step 4: Re-run the same test to verify it still fails for the right reason**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest test`
-Expected: FAIL because `RerouteSceneType` and the package-private reroute seam types do not exist yet.
-
-- [ ] **Step 5: Commit the harness-only change**
-
-```bash
-git add pom.xml src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
-git commit -m "test: add station reroute pipeline harness"
-```
-
-### Task 2: Extract Shared Reroute Types And The First Decision Seam
-
-**Files:**
-- Modify: `src/main/java/com/zy/core/utils/StationOperateProcessUtils.java`
-- Modify: `src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java`
-
-- [ ] **Step 1: Write a failing test for the first shared decision seam**
-
-```java
-@Test
-void resolveExecutionTarget_skipsWhenTargetEqualsCurrentStation() {
-    StationOperateProcessUtils.RerouteDecision decision =
-            StationOperateProcessUtils.RerouteDecision.skip("same-station");
-
-    assert decision.skip();
-    assert "same-station".equals(decision.skipReason());
-}
-```
-
-- [ ] **Step 2: Run the focused test to verify it fails**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest#resolveExecutionTarget_skipsWhenTargetEqualsCurrentStation test`
-Expected: FAIL because `RerouteDecision` and its skip contract do not exist yet.
-
-- [ ] **Step 3: Add the minimal shared reroute types in `StationOperateProcessUtils.java`**
-
-```java
-static enum RerouteSceneType {
-    RUN_BLOCK_REROUTE,
-    IDLE_RECOVER,
-    OUT_ORDER,
-    WATCH_CIRCLE
-}
-
-static final class RerouteDecision {
-    private final boolean skip;
-    private final String skipReason;
-    private final Integer targetStationId;
-
-    static RerouteDecision skip(String reason) {
-        return new RerouteDecision(true, reason, null);
-    }
-}
-```
-
-Implementation notes:
-- Keep these types inside `StationOperateProcessUtils.java`.
-- Make them package-private or static nested so tests in the same package can reach them without creating a new runtime component.
-- Do not change public behavior yet.
-
-- [ ] **Step 4: Re-run the focused test to verify it passes**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest#resolveExecutionTarget_skipsWhenTargetEqualsCurrentStation test`
-Expected: PASS
-
-- [ ] **Step 5: Commit the shared-type extraction**
-
-```bash
-git add src/main/java/com/zy/core/utils/StationOperateProcessUtils.java src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
-git commit -m "refactor: add station reroute shared types"
-```
-
-### Task 3: Build The Shared Execution Guards And Command Plan
-
-**Files:**
-- Modify: `src/main/java/com/zy/core/utils/StationOperateProcessUtils.java`
-- Modify: `src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java`
-
-- [ ] **Step 1: Write failing tests for guard behavior and command-builder selection**
-
-```java
-@Test
-void buildCommandPlan_usesRunBlockCommandBuilderForRunBlockScene() {
-    // arrange mocked StationThread and context
-    // assert getRunBlockRerouteCommand is chosen
-}
-
-@Test
-void executePlan_skipsWhenCurrentTaskStillExistsInBuffer() {
-    // arrange task buffer with current taskNo
-    // assert executePlan returns skipped result and does not dispatch
-}
-```
-
-- [ ] **Step 2: Run the focused tests to verify they fail**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest#buildCommandPlan_usesRunBlockCommandBuilderForRunBlockScene,StationOperateProcessUtilsReroutePipelineTest#executePlan_skipsWhenCurrentTaskStillExistsInBuffer test`
-Expected: FAIL because shared plan/guard methods do not exist yet.
-
-- [ ] **Step 3: Add the package-private execution helpers and keep order explicit**
-
-```java
-RerouteCommandPlan buildRerouteCommandPlan(RerouteContext context, RerouteDecision decision) { ... }
-
-RerouteExecutionResult executeReroutePlan(RerouteContext context, RerouteCommandPlan plan) { ... }
-```
-
-Implementation notes:
-- Keep buffer guard, recent-dispatch idle guard, out-order lock, and short-term dedup in one place.
-- Preserve current order:
-  - cancel session when the scene requires it
-  - reset segment commands when the scene requires it
-  - clear idle-issued commands only for idle recover
-  - dispatch command
-  - apply post-dispatch effects only after successful dispatch
-- Do not migrate the four public entry methods yet; only make the shared helpers real.
-
-- [ ] **Step 4: Re-run the focused tests to verify they pass**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest#buildCommandPlan_usesRunBlockCommandBuilderForRunBlockScene,StationOperateProcessUtilsReroutePipelineTest#executePlan_skipsWhenCurrentTaskStillExistsInBuffer test`
-Expected: PASS
-
-- [ ] **Step 5: Commit the shared plan/guard layer**
-
-```bash
-git add src/main/java/com/zy/core/utils/StationOperateProcessUtils.java src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
-git commit -m "refactor: add station reroute execution pipeline"
-```
-
-### Task 4: Migrate `checkStationOutOrder` And `watchCircleStation` To The Shared Pipeline
-
-**Files:**
-- Modify: `src/main/java/com/zy/core/utils/StationOperateProcessUtils.java`
-- Modify: `src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java`
-
-- [ ] **Step 1: Write failing tests for the shared out-order / watch-circle flow**
-
-```java
-@Test
-void outOrderAndWatchCircle_shareDecisionAndPostDispatchEffects() {
-    // arrange equivalent contexts with different scene types
-    // assert both use shared decision flow and sync watch state correctly
-}
-```
-
-- [ ] **Step 2: Run the focused test to verify it fails**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest#outOrderAndWatchCircle_shareDecisionAndPostDispatchEffects test`
-Expected: FAIL because the entry methods still duplicate their own execution logic.
-
-- [ ] **Step 3: Migrate the two entry methods to the shared pipeline**
-
-```java
-public synchronized void checkStationOutOrder() {
-    // scan candidates
-    // build context
-    // executeReroute(context)
-}
-
-public synchronized void watchCircleStation() {
-    // scan candidates
-    // build context
-    // executeReroute(context)
-}
-```
-
-Implementation notes:
-- Keep the candidate scan conditions exactly as they are today.
-- Do not change `resolveOutboundDispatchDecision`.
-- Keep `syncOutOrderWatchState` and `recordDispatch` conditions identical.
-
-- [ ] **Step 4: Re-run the focused test to verify it passes**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest#outOrderAndWatchCircle_shareDecisionAndPostDispatchEffects test`
-Expected: PASS
-
-- [ ] **Step 5: Commit the out-order migration**
-
-```bash
-git add src/main/java/com/zy/core/utils/StationOperateProcessUtils.java src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
-git commit -m "refactor: unify station out-order reroute flow"
-```
-
-### Task 5: Migrate `checkStationRunBlock` And `checkStationIdleRecover` To The Shared Pipeline
-
-**Files:**
-- Modify: `src/main/java/com/zy/core/utils/StationOperateProcessUtils.java`
-- Modify: `src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java`
-
-- [ ] **Step 1: Write failing tests for run-block and idle-recover specific behavior**
-
-```java
-@Test
-void runBlockReroute_keepsDirectReassignAndNormalRerouteSeparate() {
-    // assert inbound run-block reassign does not use the normal reroute command path
-}
-
-@Test
-void idleRecover_skipsWhenLastDispatchIsTooRecent() {
-    // assert the existing recent-dispatch protection still short-circuits the reroute
-}
-```
-
-- [ ] **Step 2: Run the focused tests to verify they fail**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest#runBlockReroute_keepsDirectReassignAndNormalRerouteSeparate,StationOperateProcessUtilsReroutePipelineTest#idleRecover_skipsWhenLastDispatchIsTooRecent test`
-Expected: FAIL because the public methods still own their own scene-specific flow.
-
-- [ ] **Step 3: Migrate the two entry methods without changing semantics**
-
-```java
-public synchronized void checkStationRunBlock() {
-    // keep candidate scan and lock acquisition
-    // delegate each candidate to executeReroute(context)
-}
-
-private void checkStationIdleRecover(...) {
-    // keep candidate scan and idle-track touch
-    // delegate the reroute execution to executeReroute(context)
-}
-```
-
-Implementation notes:
-- Keep inbound run-block reassign flow intact, including WMS call, source/target loc updates, and task update order.
-- Keep idle recover command cleanup count and log message intact.
-- Preserve run-block lock and idle lock behavior.
-
-- [ ] **Step 4: Re-run the focused tests to verify they pass**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest#runBlockReroute_keepsDirectReassignAndNormalRerouteSeparate,StationOperateProcessUtilsReroutePipelineTest#idleRecover_skipsWhenLastDispatchIsTooRecent test`
-Expected: PASS
-
-- [ ] **Step 5: Commit the final migration**
-
-```bash
-git add src/main/java/com/zy/core/utils/StationOperateProcessUtils.java src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
-git commit -m "refactor: unify station run-block and idle reroute flow"
-```
-
-### Task 6: Run Full Verification And Clean Up The Diff
-
-**Files:**
-- Modify: `src/main/java/com/zy/core/utils/StationOperateProcessUtils.java`
-- Modify: `src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java`
-- Modify: `pom.xml`
-
-- [ ] **Step 1: Run the focused regression test class**
-
-Run: `mvn -q -Dtest=StationOperateProcessUtilsReroutePipelineTest test`
-Expected: PASS
-
-- [ ] **Step 2: Run compile verification**
-
-Run: `mvn -q -DskipTests compile`
-Expected: PASS
-
-- [ ] **Step 3: If test runtime is stable, run the full test command**
-
-Run: `mvn test`
-Expected: PASS, or document the exact blocker if legacy environment/test setup prevents it.
-
-- [ ] **Step 4: Review the final diff against the approved spec**
-
-Checklist:
-- The four public entry methods still exist.
-- `ZyStationV5Thread`, `StationMoveCoordinator`, Redis key names, and WMS interactions are unchanged.
-- Shared reroute flow is centralized.
-- No unrelated business behavior was added.
-
-- [ ] **Step 5: Commit the verified implementation**
-
-```bash
-git add pom.xml src/main/java/com/zy/core/utils/StationOperateProcessUtils.java src/test/java/com/zy/core/utils/StationOperateProcessUtilsReroutePipelineTest.java
-git commit -m "refactor: unify station reroute execution flow"
-```
diff --git a/docs/superpowers/specs/2026-03-24-station-reroute-refactor-design.md b/docs/superpowers/specs/2026-03-24-station-reroute-refactor-design.md
deleted file mode 100644
index caefb04..0000000
--- a/docs/superpowers/specs/2026-03-24-station-reroute-refactor-design.md
+++ /dev/null
@@ -1,314 +0,0 @@
-# 杈撻�佺珯閲嶈鍒掓墽琛岀閬撻噸鏋勮璁�
-
-## 1. 鐩爣
-
-鏈鏀瑰姩鍙鐞� `StationOperateProcessUtils` 涓緭閫佺珯閲嶆柊璁$畻璺緞銆佸牭濉炴仮澶嶃�佹帓搴忔斁琛屻�佺粫鍦堢洃鎺х浉鍏抽�昏緫鐨勭粨鏋勯噸鏋勩��
-
-鐩爣濡備笅锛�
-
-- 缁熶竴 `checkStationRunBlock`銆乣checkStationIdleRecover`銆乣checkStationOutOrder`銆乣watchCircleStation` 鍥涙潯閾捐矾涓殑閲嶈鍒掓墽琛屾祦绋嬨��
-- 鎶娾�滅洰鏍囩珯鍐崇瓥鈥濆拰鈥滃懡浠ゆ淳鍙戝壇浣滅敤鈥濅粠鍏ュ彛鎵弿閫昏緫涓媶寮�锛岄檷浣庡悗缁淮鎶ゅ鏉傚害銆�
-- 鍦ㄤ笉鏀瑰彉鐜版湁涓氬姟璇箟鐨勫墠鎻愪笅锛屽浐瀹氶噸瑙勫垝鐨勬墽琛岄『搴忥紝鍑忓皯閬楁紡鏍¢獙銆侀仐婕忔竻鐞嗐�侀仐婕忕姸鎬佸悓姝ョ殑椋庨櫓銆�
-- 淇濇寔鐜版湁 `ZyStationV5Thread`銆乣StationMoveCoordinator`銆丷edis key銆乄MS 浜や簰銆佸嚭搴撴帓搴�/缁曞湀瑙勫垯涓嶅彉銆�
-
-## 2. 闈炵洰鏍�
-
-浠ヤ笅鍐呭涓嶅湪鏈鑼冨洿鍐咃細
-
-- 涓嶄慨鏀� `ZyStationV5Thread#getRunBlockRerouteCommand` 鐨勫�欓�夎矾寰勯�夋嫨绠楁硶銆�
-- 涓嶄慨鏀� `resolveOutboundDispatchDecision` 鐨勪笟鍔″垽鏂粨鏋滐紝鍙厑璁搁噸鏋勫叾璋冪敤鏂瑰紡銆�
-- 涓嶈皟鏁� `StationMoveCoordinator` 鐨勪細璇濇ā鍨嬩笌 Redis 缁撴瀯銆�
-- 涓嶆柊澧炴柊鐨勮繍琛屾椂鏈嶅姟绫伙紝涓嶆妸閫昏緫鎷嗗嚭 `StationOperateProcessUtils` 鍒扮嫭绔嬬粍浠躲��
-- 涓嶅�熸湰娆¢噸鏋勪慨澶嶆綔鍦ㄤ笟鍔¢棶棰樻垨琛ュ厖鏂扮殑鍏滃簳鍒嗘敮銆�
-
-## 3. 鐜扮姸
-
-褰撳墠 `StationOperateProcessUtils` 宸茶秴杩� 2200 琛岋紝浠ヤ笅鍥涙潯閾捐矾瀛樺湪鏄庢樉閲嶅锛�
-
-- `checkStationRunBlock`
-- `checkStationIdleRecover`
-- `checkStationOutOrder`
-- `watchCircleStation`
-
-杩欎簺鏂规硶鍐呴儴閮藉湪鍋氱浉浼肩殑浜嬫儏锛�
-
-- 鍔犺浇 `WrkMast`銆乣pathLenFactor`銆乣outOrderList`
-- 瑙f瀽涓嬩竴鐩爣绔�
-- 鍒ゆ柇鏄惁璺宠繃鏈閲嶈鍒�
-- 鐢熸垚鍛戒护
-- 娓呯悊鏃� session / 鏃у垎娈靛懡浠� / idle 鏈熼棿鏃т笅鍙戝懡浠�
-- 娲惧彂鍛戒护
-- 鍚屾缁曞湀瑙傚療鐘舵��
-- 璁板綍 `StationMoveCoordinator` 娲惧彂浼氳瘽
-
-浣嗘槸瀹冧滑鎶娾�滄壂鎻忓�欓�夌珯鐐光�濆拰鈥滄墽琛岄噸瑙勫垝鈥濇贩鍐欏湪涓�璧凤紝瀵艰嚧锛�
-
-- 鐩稿悓淇濇姢鏉′欢鍑虹幇鍦ㄥ涓叆鍙d腑锛屽悗缁彉鏇村鏄撴紡鏀广��
-- 娲惧彂鍓嶅悗鐨勫壇浣滅敤椤哄簭鍒嗘暎鍦ㄤ笉鍚屾柟娉曢噷锛岄毦浠ョ‘璁や竴鑷存�с��
-- 杩愯鍫靛銆佸仠鐣欒秴鏃躲�佹帓搴忔斁琛屻�佺粫鍦堢洃鎺т箣闂寸殑宸紓鐐硅娣规病鍦ㄩ噸澶嶆祦绋嬮噷銆�
-
-## 4. 閫夋嫨鏂规
-
-閲囩敤鈥滅粺涓�閲嶈鍒掓墽琛岀閬撯�濈殑鏂规锛�
-
-- 鍥涗釜鍏ュ彛鏂规硶缁х画淇濈暀锛屽悇鑷彧璐熻矗鎵弿绗﹀悎鏉′欢鐨勫�欓�夌珯鐐广��
-- 鏂板涓�濂楀唴閮ㄤ笂涓嬫枃涓庢墽琛岃鍒掓ā鍨嬶紝鎶婇噸瑙勫垝杩囩▼缁熶竴鎴愬浐瀹氭祦绋嬶細
-  - `loadContext`
-  - `resolveDecision`
-  - `buildCommandPlan`
-  - `executePlan`
-  - `applyEffects`
-- 鍦烘櫙宸紓閫氳繃鍐呴儴鏋氫妇鍜屼笂涓嬫枃瀛楁琛ㄨ揪锛屼笉閫氳繃鏂板缓澶氫釜瀵瑰鏈嶅姟绫昏〃杈俱��
-
-涓嶉噰鐢ㄢ�滃彧鎶藉嚑涓鏈夋柟娉曗�濈殑鏂规锛屽洜涓洪偅鏍锋棤娉曠湡姝f敹鍙f祦绋嬮『搴忥紝鍙細鎶婇噸澶嶄唬鐮佹崲涓�绉嶄綅缃户缁瓨鍦ㄣ��
-
-涓嶉噰鐢ㄢ�滄媶鎴愬涓嫭绔� service鈥濈殑鏂规锛屽洜涓哄綋鍓嶄粨搴撶己灏戞棦鏈夋祴璇曟姢鏍忥紝杩欑鎷嗗垎浼氭斁澶у彉鏇撮潰锛屼笉绗﹀悎鏈鈥滅幇鏈夎涓哄敖閲忎笉鍙樸�佸彧閲嶆瀯缁撴瀯鈥濈殑鐩爣銆�
-
-## 5. 璁捐
-
-### 5.1 鎬讳綋缁撴瀯
-
-`StationOperateProcessUtils` 鍐呴儴鏂板浠ヤ笅绉佹湁缁撴瀯锛�
-
-- `RerouteSceneType`
-  - 琛ㄧず鍥涚鍦烘櫙锛�
-    - 杩愯鍫靛閲嶇畻
-    - 鍋滅暀瓒呮椂閲嶇畻
-    - 鍑哄簱鎺掑簭閲嶇畻
-    - 缁曞湀鐩戞帶閲嶇畻
-- `RerouteContext`
-  - 鏀跺彛褰撳墠鍦烘櫙鎵ц鎵�闇�鐨勮緭鍏ワ紝鍖呮嫭锛�
-    - `BasDevp`
-    - `StationThread`
-    - `StationProtocol`
-    - `WrkMast`
-    - `outOrderList`
-    - `pathLenFactor`
-    - 褰撳墠鍦烘櫙绫诲瀷
-    - 鏄惁闇�瑕� runBlock 涓撶敤鍛戒护
-    - 鏄惁闇�瑕侀噸缃垎娈靛懡浠�
-    - 鏄惁闇�瑕佹竻鐞� idle 鏈熼棿鏃у懡浠�
-    - 娲惧彂鍦烘櫙鍚嶄笌鏃ュ織涓婁笅鏂�
-- `RerouteDecision`
-  - 琛ㄧず鏈鏄惁缁х画鎵ц閲嶈鍒掞紝浠ュ強瑙f瀽寰楀埌鐨勭洰鏍囦俊鎭細
-    - `targetStationId`
-    - 鏄惁缁曞湀
-    - `OutOrderDispatchDecision`
-    - `StationTaskLoopService.LoopEvaluation`
-    - 鏄惁搴旇褰� loop issue
-- `RerouteCommandPlan`
-  - 琛ㄧず鍛戒护鐢熸垚涓庢淳鍙戣鍒掞細
-    - 鏈�缁� `StationCommand`
-    - 娲惧彂鍓嶅姩浣�
-    - 娲惧彂鍚庡姩浣�
-    - 鏃ュ織鍐呭
-
-杩欎簺缁撴瀯鍙湪 `StationOperateProcessUtils` 鍐呴儴浣跨敤锛屼笉鏂板鏂扮殑瀵瑰鎺ュ彛銆�
-
-### 5.2 缁熶竴涓绘祦绋�
-
-缁熶竴鍚庣殑閲嶈鍒掓墽琛屾祦绋嬪浐瀹氫负浜旀锛�
-
-1. `loadContext`
-   - 鐢卞叆鍙f柟娉曞畬鎴愭渶灏忕瓫閫夊悗鏋勯�� `RerouteContext`
-   - 琛ラ綈 `WrkMast`銆乣pathLenFactor`銆乣outOrderList`
-   - 璁板綍褰撳墠鍦烘櫙鍚庣画闇�瑕佺殑鎺у埗鏍囧織
-
-2. `resolveDecision`
-   - 缁熶竴鍒ゆ柇鏈鏄惁搴旇缁х画鎵ц
-   - 缁熶竴瑙f瀽涓嬩竴鐩爣绔�
-   - 缁熶竴闄勫甫缁曞湀/loop 淇℃伅
-   - 瀵硅繍琛屽牭濉炲満鏅繚鐣欎袱鏉″師鏈夎矾寰勶細
-     - 鍏ュ簱閲嶅垎閰嶅簱浣�
-     - 鏅�氬牭濉為噸绠楄矾绾�
-
-3. `buildCommandPlan`
-   - 鏍规嵁鍦烘櫙鍐冲畾鍛戒护鐢熸垚鏂瑰紡锛�
-     - 鏅�氳繍琛屽牭濉為噸绠楃户缁娇鐢� `getRunBlockRerouteCommand`
-     - 鍏跺畠鍦烘櫙缁х画浣跨敤 `buildOutboundMoveCommand`
-   - 鏀跺彛娲惧彂鍓嶅姩浣滐細
-     - 鏄惁 `cancelSession`
-     - 鏄惁 `resetSegmentMoveCommandsBeforeReroute`
-     - 鏄惁娓呯悊 idle 鏈熼棿鏃т笅鍙戝懡浠�
-
-4. `executePlan`
-   - 缁熶竴澶勭悊鍏叡淇濇姢锛�
-     - 褰撳墠 buffer 鏄惁浠嶅惈鏈换鍔″懡浠�
-     - idle recover 鏄惁鍥犳渶杩戝垰娲惧彂鑰岃烦杩�
-     - 鏄惁闇�瑕佺敵璇� out-order dispatch lock
-     - 鏄惁鍛戒腑鐭椂鍘婚噸娲惧彂
-
-5. `applyEffects`
-   - 缁熶竴澶勭悊娲惧彂鎴愬姛鍚庣殑鍓綔鐢細
-     - `syncOutOrderWatchState`
-     - `stationMoveCoordinator.recordDispatch`
-     - idle track 鍥炲啓
-     - 鍦烘櫙涓撳睘鏃ュ織
-
-### 5.3 鍥涗釜鍏ュ彛鏂规硶鐨勮亴璐h竟鐣�
-
-鍥涗釜鍏ュ彛鏂规硶淇濈暀锛屼絾鍙礋璐b�滅瓫閫夊�欓�夌珯鐐光�濓紝涓嶅啀鍚勮嚜鎷艰瀹屾暣閲嶈鍒掓祦绋嬨��
-
-#### `checkStationRunBlock`
-
-璐熻矗锛�
-
-- 鎵弿 `autoing + loading + taskNo > 0 + runBlock = true` 鐨勭珯鐐�
-- 鑾峰彇浠诲姟涓� runBlock 閿�
-- 鎶婂�欓�夌珯鐐归�佸叆缁熶竴绠¢亾
-
-鍦烘櫙鍐呴儴淇濈暀鍘熸湁宸紓锛�
-
-- 鍏ュ簱涓旂珯鐐逛綅浜� `runBlockReassignLocStationList` 鏃讹紝缁х画璧扳�滈噸鏂板垎閰嶅簱浣嶅苟鐩磋繛娲惧彂鈥濆垎鏀��
-- 鍏跺畠鎯呭喌缁х画璧扳�滈噸鏂拌绠楄矾绾库�濆垎鏀��
-
-#### `checkStationIdleRecover`
-
-璐熻矗锛�
-
-- 鎵弿 `autoing + loading + taskNo > 0 + !runBlock` 鐨勭珯鐐�
-- 浠呭湪褰撳墠绔欑偣宸插埌杈惧綋鍓嶅喅绛栫偣鏃惰繘鍏ュ悗缁垽瀹�
-- 鎶婂�欓�夌珯鐐归�佸叆缁熶竴绠¢亾
-
-淇濈暀鍘熻涓猴細
-
-- 浣跨敤 `StationTaskIdleTrack`
-- 浣跨敤鈥滄渶杩戝垰娲惧彂鍒欒烦杩団�濈殑淇濇姢
-- 娲惧彂鍓嶆竻鐞� idle 鏈熼棿鏃� `BasStationOpt`
-
-#### `checkStationOutOrder`
-
-璐熻矗锛�
-
-- 鎵弿閰嶇疆鍦� `outOrderList` 涓�佸綋鍓嶅仠鍦ㄦ帓搴忓喅绛栫偣涓斾粛闇�缁х画鏀捐鐨勭珯鐐�
-- 鎶婂�欓�夌珯鐐归�佸叆缁熶竴绠¢亾
-
-淇濈暀鍘熻涓猴細
-
-- 浣跨敤 `resolveOutboundDispatchDecision`
-- 浣跨敤 out-order dispatch lock
-- 杩涘叆鍏叡鍓綔鐢ㄦ椂鍚屾缁曞湀瑙傚療鐘舵��
-
-#### `watchCircleStation`
-
-璐熻矗锛�
-
-- 鎵弿褰撳墠鍛戒腑 `WATCH_CIRCLE_STATION_` 瑙傚療鐩爣鐨勭珯鐐�
-- 鍙湁鍦ㄧ湡姝e埌杈句笅涓�鍐崇瓥鐐规椂鎵嶇户缁墽琛�
-- 鎶婂�欓�夌珯鐐归�佸叆缁熶竴绠¢亾
-
-淇濈暀鍘熻涓猴細
-
-- 缁х画浣跨敤 `resolveOutboundDispatchDecision`
-- 缁х画澶嶇敤鍑哄簱鎺掑簭鐨勬淳鍙戜笌瑙傚療鐘舵�佸悓姝ラ�昏緫
-
-### 5.4 鍦烘櫙宸紓鐨勮〃杈炬柟寮�
-
-缁熶竴鎵ц楠ㄦ灦涓嶆剰鍛崇潃鎶瑰钩鍦烘櫙宸紓锛屽樊寮傚彧鍦ㄤ互涓嬩綅缃繚鐣欙細
-
-- 鍐崇瓥鏉ユ簮涓嶅悓锛�
-  - runBlock 鍏ュ簱閲嶅垎閰嶅簱浣嶆潵鑷� WMS 杩斿洖缁撴灉
-  - 鍏跺畠鍦烘櫙鏉ヨ嚜 `resolveOutboundDispatchDecision` 鎴栦换鍔″師鐩爣绔�
-- 鍛戒护鏋勫缓鏂瑰紡涓嶅悓锛�
-  - runBlock 鏅�氶噸绠椾娇鐢� `getRunBlockRerouteCommand`
-  - 鍏跺畠鍦烘櫙浣跨敤 `buildOutboundMoveCommand`
-- 娲惧彂鍓嶅姩浣滀笉鍚岋細
-  - idle recover 棰濆娓呯悊 idle 鏈熼棿鏃т笅鍙戝懡浠�
-  - outOrder / watchCircle 闇�瑕� out-order dispatch lock
-- 娲惧彂鍚庡壇浣滅敤涓嶅悓锛�
-  - runBlock 鍏ュ簱閲嶅垎閰嶉渶瑕佹洿鏂板簱浣嶄笌浠诲姟
-  - idle recover 闇�瑕佸洖鍐� `StationTaskIdleTrack`
-  - outOrder / watchCircle 闇�瑕佸悓姝ョ粫鍦堣瀵熺姸鎬�
-
-宸紓鍙瓨鍦ㄤ簬鍦烘櫙绛栫暐锛屼笉鍐嶆暎钀戒簬鍚勫叆鍙d富娴佺▼涓��
-
-## 6. 閾捐矾妫�鏌�
-
-### 6.1 杈撳叆
-
-- `BasDevp` 涓殑鍑哄簱鎺掑簭绔欑偣閰嶇疆涓庤繍琛屽牭濉為噸鍒嗛厤绔欑偣閰嶇疆
-- `StationThread` 褰撳墠绔欑偣鐘舵��
-- `StationProtocol` 褰撳墠绔欑偣浠诲姟銆佸牭濉炪�佽杞界姸鎬�
-- `WrkMast` 褰撳墠浠诲姟鐘舵��
-- `StationMoveCoordinator` 褰撳墠浼氳瘽
-- Redis 涓殑 runBlock / idle / outOrder / watchCircle 杈呭姪鐘舵��
-
-### 6.2 澶勭悊娴佺▼
-
-- 鍏ュ彛鏂规硶鎵弿鍊欓�夌珯鐐�
-- 鏋勫缓 `RerouteContext`
-- 瑙f瀽 `RerouteDecision`
-- 鐢熸垚 `RerouteCommandPlan`
-- 鎵ц鍏叡淇濇姢
-- 娲惧彂鍛戒护
-- 搴旂敤娲惧彂鍚庣殑鍦烘櫙鍓綔鐢�
-
-### 6.3 鐘舵�佸彉鍖�
-
-- 鍛戒护娲惧彂鍓嶇殑 session 鍙栨秷銆佸垎娈靛懡浠ら噸缃�佹棫鍛戒护娓呯悊椤哄簭鍥哄畾鍖�
-- 瑙傚療鐘舵�佷笌 move session 璁板綍浠嶅湪鍘熸湁 Redis / coordinator 缁撴瀯涓彉鍖�
-- 涓嶆柊澧炴柊鐨勬寔涔呭寲琛ㄤ笌 Redis key 绫诲瀷
-
-### 6.4 杈撳嚭
-
-- 鎴愬姛鏃惰緭鍑轰笌褰撳墠鍦烘櫙涓�鑷寸殑 `StationCommand`
-- 淇濇寔鍘熸湁鏃ュ織璇箟
-- 淇濇寔鍘熸湁 `StationMoveCoordinator` 鍜� `WATCH_CIRCLE_STATION_` 鐩稿叧鐘舵�佹帹杩�
-
-### 6.5 涓婁笅娓稿奖鍝�
-
-- 涓婃父鎻掍欢璋冪敤鐐逛笉鍙橈紝浠嶇敱 `NormalProcess`銆乣GslProcess`銆乣XiaosongProcess`銆乣FakeProcess` 璋冪敤鍘熷叆鍙f柟娉�
-- 涓嬫父 `StationThread`銆乣ZyStationV5Thread`銆乣MessageQueue` 鎺ュ彛涓嶅彉
-- `StationMoveCoordinator`銆乣StationTaskLoopService`銆乣BasStationOptService` 鎺ュ彛涓嶅彉
-
-## 7. 椋庨櫓涓庝繚鎶�
-
-### 7.1 椋庨櫓
-
-- 濡傛灉閲嶆瀯鏃舵妸鈥滃叆鍙g瓫閫夆�濆拰鈥滃満鏅墽琛屸�濊竟鐣屽垏閿欙紝鍙兘瀵艰嚧鏌愪簺绔欑偣鎻愬墠杩涘叆閲嶈鍒掓祦绋嬨��
-- 濡傛灉娲惧彂鍓嶅壇浣滅敤椤哄簭鏀瑰彉锛屽彲鑳藉紩鍏� session 鐘舵�併�佹棫鍒嗘鍛戒护銆乮dle 娓呯悊涓嶄竴鑷寸殑闂銆�
-- 濡傛灉鍏叡灞傞敊璇惛鏀朵簡鍦烘櫙宸紓锛屽彲鑳芥敼鍙� runBlock 鍏ュ簱閲嶅垎閰嶄笌鏅�� reroute 鐨勮涓恒��
-
-### 7.2 淇濇姢
-
-- 鍏ュ彛鎵弿鏉′欢淇濇寔鍘熸牱锛屽厛鍙仛鎼縼锛屼笉鍋氬垽瀹氭敹绱ф垨鏀惧銆�
-- runBlock 鍏ュ簱閲嶅垎閰嶅満鏅崟鐙繚鐣欙紝涓嶅己琛屽苟鍏ユ櫘閫� reroute 鍛戒护鐢熸垚銆�
-- 娲惧彂鍓嶅悗鍓綔鐢ㄩ『搴忕敱缁熶竴妯℃澘鍥哄畾锛屼絾姝ラ鍐呭娌跨敤鐜版湁瀹炵幇銆�
-- 涓嶆敼绾跨▼渚ц矾寰勯噸瑙勫垝绠楁硶锛屼笉鏀� Redis key 鍛藉悕锛屼笉鏀� WMS 鎺ュ彛浜や簰銆�
-
-## 8. 楠岃瘉
-
-褰撳墠浠撳簱宸茬‘璁ゆ病鏈夌幇鎴� `src/test/java` 涓庢祴璇曚緷璧栵紝鍥犳楠岃瘉鍒嗕负涓ゅ眰锛�
-
-1. 鏂板鏈�灏忔祴璇曞熀寤�
-   - 琛ュ厖 `spring-boot-starter-test`
-   - 涓虹粺涓�閲嶈鍒掓墽琛岄鏋惰ˉ瀹氬悜鍗曟祴
-
-2. 瀹氬悜鍥炲綊楠岃瘉
-   - 杩愯鍫靛鏅�氶噸绠椾粛浣跨敤 `getRunBlockRerouteCommand`
-   - idle recover 鍦ㄢ�滄渶杩戝垰娲惧彂鈥濆満鏅粛浼氳烦杩�
-   - outOrder / watchCircle 杩涘叆鍚屼竴鎵ц楠ㄦ灦锛屼絾鍊欓�夌瓫閫夋潯浠朵笉鍚�
-   - buffer 涓粛鏈夊綋鍓嶄换鍔″懡浠ゆ椂涓嶄細閲嶅娲惧彂
-   - 娲惧彂鎴愬姛鍚� `syncOutOrderWatchState` 涓� `recordDispatch` 鐨勮Е鍙戞潯浠朵繚鎸佷笉鍙�
-
-3. 缂栬瘧涓庢祴璇曞懡浠�
-   - `mvn -q -DskipTests compile`
-   - 鏂板鐨勫畾鍚戞祴璇曞懡浠�
-   - 濡傜幆澧冨厑璁革紝鍐嶆墽琛� `mvn test`
-
-## 9. 瀹炴柦娓呭崟
-
-- 閲嶆瀯 `src/main/java/com/zy/core/utils/StationOperateProcessUtils.java`
-- 鍦ㄧ被鍐呮柊澧炵粺涓�閲嶈鍒掍笂涓嬫枃銆佸喅绛栥�佸懡浠よ鍒掔粨鏋�
-- 鏀跺彛 `checkStationRunBlock`
-- 鏀跺彛 `checkStationIdleRecover`
-- 鏀跺彛 `checkStationOutOrder`
-- 鏀跺彛 `watchCircleStation`
-- 琛ュ厖鏈�灏忔祴璇曚緷璧栦笌瀹氬悜娴嬭瘯
-
-## 10. 鍋囪涓庢湭楠岃瘉鍓嶆彁
-
-- 鐢ㄦ埛宸叉槑纭‘璁ゆ湰娆′互鈥滅幇鏈夎涓哄敖閲忎笉鍙樸�佸彧閲嶆瀯缁撴瀯鈥濅负涓汇��
-- 鐢ㄦ埛宸叉槑纭‘璁� `checkStationRunBlock`銆乣checkStationIdleRecover`銆乣checkStationOutOrder`銆乣watchCircleStation` 鍥涙潯閾捐矾涓�璧风粺涓�銆�
-- 褰撳墠鏈獙璇佹墍鏈夌幇鍦� Redis 鐘舵�佷笌鍘嗗彶寮傚父鏁版嵁鍒嗗竷锛岃璁℃寜鐜版湁姝e父娴佺▼缁勭粐銆�
-- 褰撳墠鏈獙璇佹湰鍦板畬鏁存祴璇曞熀寤烘槸鍚﹀凡瀛樺湪锛岄渶鍦ㄥ疄鏂介樁娈靛疄闄呰ˉ鍏呭苟鎵ц鍚庣‘璁ゃ��
diff --git a/docs/superpowers/specs/2026-03-24-station-v5-replace-v4-design.md b/docs/superpowers/specs/2026-03-24-station-v5-replace-v4-design.md
deleted file mode 100644
index a8a1cac..0000000
--- a/docs/superpowers/specs/2026-03-24-station-v5-replace-v4-design.md
+++ /dev/null
@@ -1,159 +0,0 @@
-# 杈撻�佺珯绾跨▼鐗堟湰鍚堝苟璁捐
-
-## 1. 鐩爣
-
-鏈鏀瑰姩鍙鐞嗚緭閫佺珯绾跨▼鐗堟湰鍚堝苟锛屾槑纭互 `ZyStationV5Thread` 鍏ㄩ噺鏇夸唬 `ZyStationV4Thread`銆�
-
-鐩爣濡備笅锛�
-
-- 杈撻�佺珯鍦ㄤ唬鐮佸眰鍙繚鐣� `ZyStationV5Thread` 杩欎竴鏉′富瀹炵幇銆�
-- `device_config.thread_impl` 瀵硅緭閫佺珯缁熶竴鏀跺彛鍒� `ZyStationV5Thread`銆�
-- 淇濈暀褰撳墠 V5 宸插叿澶囩殑鍒嗘涓嬪彂銆佽建杩硅褰曘�乣routeVersion` 鍗忓悓銆佸牭濉為噸瑙勫垝涓庣幆绾胯瘑鍒涓恒��
-- 鍒犻櫎 `ZyStationV4Thread` 鍙婂叾娈嬬暀鏃ч�昏緫锛屼笉淇濈暀杩愯鏃跺吋瀹瑰垎鏀��
-
-## 2. 闈炵洰鏍�
-
-浠ヤ笅鍐呭涓嶅湪鏈鑼冨洿鍐咃細
-
-- 涓嶆敼 `ZyStationV3Thread`銆�
-- 涓嶆敼 `ZyStationV4RealConnect`銆乣ZyStationV4FakeSegConnect` 鐨勭被鍚嶆垨鍗忚瀹炵幇銆�
-- 涓嶉噸鏋� `StationSegmentExecutor` 鐜版湁鍒嗘绠楁硶涓庣姸鎬佹祦杞��
-- 涓嶆敼鍓嶇 `deviceConfig` 椤甸潰浜や簰褰㈠紡锛岄櫎闈炰负缂栬瘧閫氳繃蹇呴』鑱斿姩銆�
-- 涓嶇粺璁℃暟鎹簱閲岀幇鏈夊灏戞潯 `ZyStationV4Thread` 閰嶇疆锛岀洿鎺ュ仛骞傜瓑杩佺Щ銆�
-
-## 3. 鐜扮姸
-
-褰撳墠杈撻�佺珯绾跨▼瀛樺湪浠ヤ笅鐘舵�侊細
-
-- [ServerBootstrap.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/ServerBootstrap.java) 鍚屾椂鏀寔 `ZyStationV4Thread` 鍜� `ZyStationV5Thread` 涓や釜 Devp 鐗堟湰鍒嗘敮銆�
-- [ZyStationConnectDriver.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/network/ZyStationConnectDriver.java) 鐪熷疄璁惧鍜� fake 璁惧閮芥妸 `ZyStationV4Thread` 涓� `ZyStationV5Thread` 瑙嗕负鍚屼竴鍗忚鏃忋��
-- [ZyStationV4Thread.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/thread/impl/ZyStationV4Thread.java) 宸茬粡涓嶅啀璧拌嚜鏈夊垎娈典富閾捐矾锛屽疄闄呴�氳繃鎵ц鍣ㄤ笅鍙戯紝浣嗙被鍐呬粛娈嬬暀鏃х増鍒嗘瀹炵幇銆�
-- [ZyStationV5Thread.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java) 鏄� V4 鐨勫姛鑳借秴闆嗭紝闄ゅ叡鐢ㄧ殑鐘舵�佽鍙栥�佸缓鍛戒护銆佷笅鍙戞棩蹇楀锛岃繕鎵挎媴鍫靛閲嶈鍒掋�佺幆绾胯瘑鍒笌鏇村畬鏁寸殑浼氳瘽鍗忓悓銆�
-
-鍩轰簬褰撳墠浠g爜锛宍V5` 宸茬粡鏄洿鍚堢悊鐨勫敮涓�鍩虹嚎锛岀户缁繚鐣� `V4` 鍙細閫犳垚鐗堟湰杈圭晫娣蜂贡銆�
-
-## 4. 閫夋嫨鏂规
-
-閲囩敤鈥滀互 V5 涓哄敮涓�鐗堟湰鈥濈殑鏂规锛�
-
-- 鍒犻櫎 `ZyStationV4Thread`銆�
-- 鍚姩鍏ュ彛鍙繚鐣� `ZyStationV5Thread` 浣滀负杈撻�佺珯鏂扮増鏈疄鐜般��
-- 杩炴帴椹卞姩瀵规柊鐗堟湰鍙瘑鍒� `ZyStationV5Thread`銆�
-- 閫氳繃 SQL 杩佺Щ鎶婃棫閰嶇疆鍊� `ZyStationV4Thread` 缁熶竴鏀规垚 `ZyStationV5Thread`銆�
-
-涓嶉噰鐢ㄢ�滆繍琛屾椂鍏煎 V4/V5 鍙岄厤缃�尖�濈殑鏂规锛屽洜涓鸿繖浼氱户缁繚鐣欏弻鐗堟湰鍋囪薄锛屼笌鈥淰5 鍏ㄩ噺鏇夸唬 V4鈥濈殑鐩爣鍐茬獊銆�
-
-## 5. 璁捐
-
-### 5.1 杩愯瀹炵幇
-
-杈撻�佺珯杩愯閾捐矾缁熶竴涓猴細
-
-1. `device_config.thread_impl = ZyStationV5Thread`
-2. `ServerBootstrap` 涓� Devp 鍒涘缓璁惧绾跨▼鏃跺彧瀹炰緥鍖� `ZyStationV5Thread`
-3. `ZyStationV5Thread` 璐熻矗锛�
-   - 璁惧杩炴帴涓庣姸鎬佽鍙�
-   - 浠� `MessageQueue` 鑾峰彇杈撻�佺珯浠诲姟
-   - 濮旀墭鍒嗘鎵ц鍣ㄥ鐞� `MOVE` 鍛戒护
-   - 閫氳繃 `sendCommand` 瀹為檯涓嬪彂鍛戒护骞惰褰� `BasStationOpt`
-4. `StationSegmentExecutor` 缁х画璐熻矗锛�
-   - 璺緞鍒囨
-   - 棣栨鍜屽悗缁垎娈电殑閲嶈瘯涓嬪彂
-   - 鍩轰簬褰撳墠浣嶇疆鍒ゆ柇鎻愬墠涓嬪彂鏃舵満
-   - 澶勭悊涓柇銆佽秴鏃躲�佸牭濉炪�佸畬鎴�
-   - 鏇存柊 trace 鍜� move coordinator
-
-### 5.2 V4 娓呯悊
-
-鍒犻櫎 `ZyStationV4Thread` 鏁翠釜绫伙紝鑰屼笉鏄彧鍒犳畫鐣欐柟娉曘�傚師鍥犳槸鏈鐩爣宸蹭粠鈥滄竻鐞� V4 娈嬬暀鈥濆崌绾т负鈥淰5 鍏ㄩ噺鏇夸唬 V4鈥濓紝淇濈暀绫绘枃浠跺彧浼氬舰鎴愰敊璇殑鍙敤鎬ф殫绀恒��
-
-### 5.3 鍚姩涓庤繛鎺ュ垎鏀敹鍙�
-
-闇�瑕佸悓姝ユ敹鍙d互涓嬩唬鐮佸垎鏀細
-
-- [ServerBootstrap.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/ServerBootstrap.java)
-  - 鍒犻櫎 `ZyStationV4Thread` 鍒嗘敮
-  - Devp 鐗堟湰鍒ゆ柇鍙繚鐣� `ZyStationThread`銆乣ZyStationV3Thread`銆乣ZyStationV5Thread`
-
-- [ZyStationConnectDriver.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/network/ZyStationConnectDriver.java)
-  - 鐪熷疄璁惧杩炴帴鏃跺彧瀵� `ZyStationV5Thread` 璧� `ZyStationV4RealConnect`
-  - fake 璁惧杩炴帴鏃跺彧瀵� `ZyStationV5Thread` 璧� `ZyStationV4FakeSegConnect`
-  - 閿欒鎻愮ず涓嶅啀鎻愬埌 `ZyStationV4Thread`
-
-杩欓噷鍗忚瀹炵幇绫诲悕浠嶄繚鎸� `V4`锛屽洜涓哄畠琛ㄨ揪鐨勬槸 PLC/杩炴帴鍗忚鏃忥紝鑰屼笉鏄嚎绋嬬増鏈�傜嚎绋嬬増鏈悎骞朵笉瑕佹眰鍚屾閲嶅懡鍚嶅崗璁疄鐜般��
-
-### 5.4 閰嶇疆杩佺Щ
-
-鏂板涓�鏉″箓绛� SQL 鑴氭湰锛屾妸鏃� Devp 閰嶇疆缁熶竴杩佺Щ鍒� `ZyStationV5Thread`锛�
-
-- 鏉′欢锛歚device_type = 'Devp'` 涓� `thread_impl = 'ZyStationV4Thread'`
-- 鍔ㄤ綔锛氭洿鏂� `thread_impl = 'ZyStationV5Thread'`
-
-璇ヨ剼鏈笉渚濊禆浜嬪墠缁熻锛屽厑璁哥┖璺戙��
-
-## 6. 閾捐矾妫�鏌�
-
-### 6.1 杈撳叆
-
-- Devp 璁惧閰嶇疆涓殑 `thread_impl`
-- 杩愯鏃惰繘鍏ヨ緭閫佺珯绾跨▼鐨� `StationCommand`
-
-### 6.2 澶勭悊娴佺▼
-
-- 鍚姩鏃舵寜缁熶竴鍚庣殑 `thread_impl` 鍒涘缓 `ZyStationV5Thread`
-- 绾跨▼璇诲彇璁惧鐘舵�併�佹秷璐逛换鍔°�佹瀯閫犲懡浠ゆ垨璋冪敤閲嶈鍒掑叆鍙�
-- 鍒嗘鎵ц鍣ㄦ墽琛屽垎娈典笅鍙戜笌鐘舵�佹帹杩�
-
-### 6.3 鐘舵�佸彉鍖�
-
-- 浠g爜缁撴瀯浠� V4/V5 鍙岀嚎绋嬬増鏈敹鍙d负 V5 鍗曠増鏈�
-- 鏁版嵁搴撻厤缃�间粠 `ZyStationV4Thread` 鏀跺彛涓� `ZyStationV5Thread`
-- `routeVersion`銆乣traceVersion`銆佸牭濉為噸瑙勫垝鐘舵�併�丷edis key 涓嶅彉
-
-### 6.4 杈撳嚭
-
-- 杈撻�佺珯杩愯琛屼负浠ュ綋鍓� `ZyStationV5Thread` 涓哄噯
-- 鏂颁换鍔¤建杩逛腑鐨� `threadImpl` 灏嗙ǔ瀹氭樉绀轰负 `ZyStationV5Thread`
-
-### 6.5 涓婁笅娓稿奖鍝�
-
-- 涓婃父 `StationOperateProcessUtils` 缁х画閫氳繃 `StationThread` 鎺ュ彛璋冪敤锛屼笉闇�瑕佹敼鎺ュ彛
-- 涓嬫父璁惧杩炴帴浠嶄娇鐢ㄧ幇鏈� `V4` 鍗忚瀹炵幇绫伙紝涓嶅鍔犳柊鐨勫崗璁垎鏀�
-- V3銆佸墠绔建杩归〉闈€�佸垎娈佃建杩规暟鎹粨鏋勪笉闇�瑕佹敼鍔�
-
-## 7. 椋庨櫓涓庝繚鎶�
-
-### 7.1 椋庨櫓
-
-- 濡傛灉鍙垹浠g爜鍒嗘敮銆佷笉鏀规暟鎹簱閰嶇疆锛屾棫 `thread_impl = ZyStationV4Thread` 浼氬湪鍚姩鏃跺け鏁堛��
-- 濡傛灉鍚屾椂鏀圭嚎绋嬬増鏈拰鍗忚绫诲悕锛屼細鎵╁ぇ鑼冨洿骞舵彁楂樺洖褰掗闄┿��
-
-### 7.2 淇濇姢
-
-- 鐢� SQL 杩佺Щ鍏堟敹鍙i厤缃�硷紝鍐嶅垹闄� V4 鍚姩鍒嗘敮銆�
-- 淇濇寔鍗忚瀹炵幇绫讳笉鍔紝闄愬埗鍙樻洿鑼冨洿銆�
-- 涓嶆敼 `StationSegmentExecutor` 鐨勬棦鏈夎涓猴紝閬垮厤鎶婄増鏈悎骞跺拰绠楁硶璋冩暣鑰﹀悎銆�
-
-## 8. 楠岃瘉
-
-鑷冲皯鎵ц浠ヤ笅楠岃瘉锛�
-
-1. 鏂囨湰妫�绱㈢‘璁よ繍琛屾椂浠g爜涓嶅啀鎶� `ZyStationV4Thread` 褰撴垚鍙惎鍔ㄥ垎鏀��
-2. 鏂囨湰妫�绱㈢‘璁� `ZyStationConnectDriver` 鐨勬柊鐗堟湰璇嗗埆鍙繚鐣� `ZyStationV5Thread`銆�
-3. 鏂囨湰妫�绱㈢‘璁や粨搴撳唴涓嶅啀鏈変笟鍔′唬鐮佸紩鐢� `ZyStationV4Thread`锛岃縼绉� SQL 涓殑鏃у�煎紩鐢ㄩ櫎澶栥��
-4. 鎵ц `mvn -q -DskipTests compile` 杩涜缂栬瘧鏍¢獙銆�
-5. 濡傜幆澧冨厑璁革紝琛ュ厖涓�娆� `mvn -q -DskipTests package` 鎵撳寘鏍¢獙銆�
-
-## 9. 瀹炴柦娓呭崟
-
-- 鍒犻櫎 `src/main/java/com/zy/core/thread/impl/ZyStationV4Thread.java`
-- 淇敼 `src/main/java/com/zy/core/ServerBootstrap.java`
-- 淇敼 `src/main/java/com/zy/core/network/ZyStationConnectDriver.java`
-- 鏂板涓�鏉� Devp `thread_impl` 杩佺Щ SQL
-
-## 10. 鍋囪涓庢湭楠岃瘉鍓嶆彁
-
-- 鐢ㄦ埛纭閲囩敤 鈥淰5 鍏ㄩ噺鏇夸唬 V4鈥濓紝涓嶄繚鐣欒繍琛屾椂鍏煎銆�
-- 鐢ㄦ埛纭涓嶉渶瑕佺粺璁℃暟鎹簱閲岀幇鏈夊灏戞潯 V4 閰嶇疆銆�
-- 褰撳墠鏈獙璇佹暟鎹簱瀹為檯鏁版嵁鍒嗗竷锛岃縼绉昏剼鏈寜骞傜瓑鏂瑰紡璁捐銆�
-- 褰撳墠鏈獙璇佹墦鍖呯幆澧冩槸鍚﹀畬鏁达紝缂栬瘧鍜屾墦鍖呯粨鏋滈渶鍦ㄥ疄鏂介樁娈靛疄闄呮墽琛屽悗纭銆�

--
Gitblit v1.9.1