# Standard Four-Way Shuttle WCS Roadmap 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:** 在 FT546 的 `optimize/wcs` 工作树中,以 RuoYi 为基础逐步交付可独立运行的标准四向车 WCS,并最终由标准内核承担 FT546 的任务、调度、设备协同和恢复。 **Architecture:** 实施拆成五份可独立验收的子计划,依赖顺序固定为“内核基础 → 拓扑与交通 → 执行与恢复 → FT546 适配 → 产品验收”。每份计划结束时都产生可运行代码、自动化测试和独立提交;后续计划只依赖前一计划声明的稳定接口。 **Tech Stack:** Java 8, Spring Boot 2.5.15, RuoYi 3.8.9, Maven Reactor, MyBatis/MyBatis-Plus, SQL Server, JUnit 5, ArchUnit, Vue 2, Element UI. ## Global Constraints - 继续使用 RuoYi;新增 `ruoyi-wcs` Maven 模块,不另建 FT546 专用中间模块。 - Maven 依赖只能是 `ruoyi-admin -> ruoyi-wcs -> ruoyi-common`;`ruoyi-wcs` 不依赖 `ruoyi-admin`。 - 一个部署只运行一个项目和一个仓库,不建设多租户平台。 - Java 版本固定为 1.8,Spring Boot 固定为 2.5.15。 - 首版不修改 FT546 PLC 控制流程、安全联锁和既有寄存器语义。 - 项目 PLC 地址、IP、站点编码、WMS 字段和业务 URL 只能存在于 Admin 适配器或项目配置中。 - Admin 不得直接写 WCS 核心表,设备适配器不得推进任务状态或释放资源。 - `UNKNOWN` 命令禁止自动重发;未知资源禁止按超时释放。 - 业务订单、执行步骤、设备命令和资源预约保持独立状态机。 - 现有 FT546 代码、表和 `javaTest` 只作为证据与验收语料,不作为新内核包结构模板。 - 本计划只描述目标版本实现和验收,不设计旧表迁移、灰度切换或双写流程。 - 每个行为先写失败测试,确认 RED 后再写最小实现。 - 每个任务完成后运行聚焦测试、相关模块测试和 `git diff --check`,然后独立提交。 - 保留用户现有未跟踪 HTML 文件,不暂存、不修改、不删除。 --- ## Plan Sequence ### Plan 1: WCS Core Foundation and Task Workflow 文件:`docs/superpowers/plans/2026-08-04-standard-wcs-core-foundation.md` 交付: - `ruoyi-wcs` Maven 模块和测试基础。 - 架构依赖门禁。 - `TransportOrder`、`WorkflowInstance`、`TaskStep` 状态机。 - WMS 标准入站用例和出站事件端口。 - 第一版核心表脚本和持久化边界。 验收命令: ```bash mvn -pl ruoyi-wcs -am test mvn -pl ruoyi-admin -am test ``` ### Plan 2: Topology, Dispatch, and Traffic Control 文件:`docs/superpowers/plans/2026-08-04-standard-wcs-topology-dispatch-traffic.md` 依赖:Plan 1 的订单、步骤、仓储端口和模块边界。 交付: - 版本化拓扑和设备能力模型。 - 路径规划、车辆选择和稳定评分。 - 资源账本、预约、死锁预防、HOLD/YIELD。 - 调度应用服务和决策审计。 验收命令: ```bash mvn -pl ruoyi-wcs -am -Dtest='*Topology*,*Assignment*,*Traffic*,*Dispatch*' test ``` ### Plan 3: Execution, Equipment Coordination, and Recovery 文件:`docs/superpowers/plans/2026-08-04-standard-wcs-execution-recovery.md` 依赖:Plan 2 的车辆绑定、路线和资源预约。 交付: - `DeviceCommand`、Outbox、设备事件和快照对账。 - 四向车、提升机、输送线和充电协同状态机。 - `RecoveryCase`、启动恢复、局部隔离和人工接管审计。 - 核心查询 DTO、指标和关联日志。 验收命令: ```bash mvn -pl ruoyi-wcs -am -Dtest='*Command*,*Coordinator*,*Recovery*,*Outbox*' test ``` ### Plan 4: FT546 Project Adapters and Operations UI 文件:`docs/superpowers/plans/2026-08-04-standard-wcs-ft546-adapters.md` 依赖:Plan 3 的设备端口、恢复端口和 QueryService。 交付: - FT546 WMS 适配器,保留既有接口 URL 和回调语义。 - 四向车、提升机、输送线和充电桩旧 PLC Profile 与适配器。 - 项目配置表、协议样本测试和启动 wiring。 - 标准任务、设备、资源、命令和恢复页面。 - 新调度入口接管,旧 `BaseSRgvThread` 不再创建、调度或完成标准任务。 验收命令: ```bash mvn -pl ruoyi-admin -am test cd ruoyi-ui && npm run build:prod ``` ### Plan 5: Simulation, Historical Replay, and Product Acceptance 文件:`docs/superpowers/plans/2026-08-04-standard-wcs-simulation-acceptance.md` 依赖:Plan 4 的完整 FT546 适配链和真实核心构建产物。 交付: - 使用真实 Adapter 契约的确定性模拟器与故障注入。 - 第二套合成仓库配置,证明不修改核心即可运行。 - FT546 历史任务与 PLC 报文回放。 - 真实 PLC/HIL 的受控协议门禁与能力证据。 - 重启恢复、性能基线和 72 小时/100000 任务验收入口。 - 人工接管审计、可观测性证据、可审计报告、manifest 和最终验收索引。 验收命令: ```bash mvn -pl ruoyi-wcs,ruoyi-admin -am test cd javaTest && mvn clean test ``` ## Release Gates 1. Plan 1 未通过时,不创建真实设备适配器。 2. Plan 2 的资源容量和非法状态指标非零时,不进入执行协同。 3. Plan 3 的 `UNKNOWN`、恢复和 Outbox 测试未通过时,不接 FT546 PLC。 4. Plan 4 的协议回归未通过时,不允许旧调度入口退出。 5. Plan 5 的安全不变量、第二仓配置、历史回放、能力证据和 FT546 HIL 门禁未通过时,不宣称标准产品完成或 FT546 可投产。 ## Approved Design Coverage Map | 总体设计章节 | 实施落点 | | --- | --- | | 1-4 背景、目标、边界、首版范围 | 本路线图全局约束;Plan 1 模块边界;Plan 4 FT546 项目边界 | | 5 总体架构与 Maven 依赖 | Plan 1 Task 1、Task 7 | | 6 六个核心领域 | Plan 1 任务/流程;Plan 2 拓扑/调度/交通;Plan 3 协同/执行/恢复 | | 7 核心安全不变量 | Plan 1 状态机与幂等;Plan 2 资源容量/等待图;Plan 3 UNKNOWN/恢复;Plan 5 全量不变量验收 | | 8 端到端任务流 | Plan 1 Task 5;Plan 2 Task 7;Plan 3 Task 3;Plan 4 Task 6、Task 8 | | 9 核心状态机 | Plan 1 Task 3-4;Plan 2 Task 5;Plan 3 Task 1、Task 6 | | 10 数据所有权 | Plan 1 Task 6-7;Plan 2 Task 7;Plan 3 Task 7;Plan 4 Task 1 | | 11 适配器契约 | Plan 1 WMS 端口;Plan 2 ConfigurationUseCase;Plan 3 设备端口;Plan 4 全部项目 Adapter | | 12 PLC 能力策略 | Plan 4 Task 1、Task 3;Plan 5 Task 4-5 | | 13 调度、交通、提升机、输送线、充电 | Plan 2 Task 2-7;Plan 3 Task 4-5 | | 14 恢复、人工接管、可观测性 | Plan 3 Task 6-8;Plan 4 Task 7;Plan 5 Task 6、Task 8 | | 15 测试与模拟器 | Plan 5 Task 1-6 | | 16 验收门槛与产物 | Plan 5 Task 7-8;本路线图 Final Definition of Done | | 17 建议代码结构 | 五份子计划各 Task 的精确 Files 清单 | | 18 与现有 FT546 文档关系 | 本路线图“旧代码仅作证据”和“不讨论迁移”约束;Plan 4 Legacy Profile 边界 | | 19 设计完成定义 | 本路线图 Release Gates 和 Final Definition of Done | ## Final Definition of Done - `ruoyi-wcs` 构建产物在 FT546 和第二套合成仓库配置下完全相同。 - FT546 Admin 只包含项目接口、协议、流程定义、策略、配置和页面。 - 旧调度线程不再拥有标准任务创建、选车、路径、完成和充电调度权。 - 所有核心表只由 `ruoyi-wcs` Repository 写入。 - 所有安全不变量测试为 0 违规。 - FT546 历史回放、PLC 样本契约、真实 PLC/HIL、重启恢复、人工接管、可观测性和性能报告齐全。