# FT546 WCS 中心调度与交通管制 Demo 这是一个独立的 Java 8 Maven Demo。它保留 FT546 WCS 的 LEGACY 调度模拟,并旁路提供 P0-B1 离线 SHADOW 交通决策内核。 ## 安全边界 - 仅使用内存车辆、任务、队列和地图。 - 不启动 Spring,不连接 SQL Server、PLC 或 WMS。 - 不发送真实设备命令。 - 不修改生产 `ruoyi-*` 模块。 - SHADOW 仅在离线内存中计算、记录和回放,写端口会直接拒绝调用。 - 不启用现场 SHADOW、HIL、LIMITED_ACTIVE、ACTIVE 或 PRODUCTION。 - 不把离线模拟结果作为现场证据。 ## 已覆盖行为 - 每个调度周期只执行一次业务任务准入。 - 在线、自动、空闲、允许下发且电量大于 30 的车辆才可参与分配。 - 同层、楼层差、Y 距离、X 距离、车辆编号的稳定选车规则。 - 其他车辆剩余路径和离线车辆当前位置锁定。 - 同通道阻挡、高优先级避让任务和避让去重。 - 模拟协议失败、下一周期重试。 - 队列 `0/1 → 1/3 → 1/4` 状态流转、完成归档和占用释放。 - 无路可达时返回 HOLD,而不是抛出空指针。 ## P0-B1 离线 SHADOW 覆盖 - 带版本、区域确认和基础地图校验和的不可变交通地图。 - `NODE`、规范化无向 `EDGE` 和显式 `CONFLICT` 资源及容量。 - `SOFT/COMMIT_GUARD/HARD/UNKNOWN_HARD/RELEASED` 资源保护契约。 - 区段 Prepare/Commit 状态机及非法跳转拒绝。 - 带 `plcBootId/heartbeatSeq/snapshotSeq` 的不可变复合快照。 - 陈旧、序号倒退、PLC 重启、失联和人工模式的 fail-closed 检查。 - 确定性 `GRANT/HOLD/YIELD`、等待图环拒绝及安全让行点门禁。 - 匹配反馈逐步释放;重复、跳点、版本错配和 ACK 未知不释放。 - SHADOW PLC、业务状态和权威预约三类禁写端口。 - JSON 黄金决策事件、SHA-256 输入哈希和离线回放。 - 固定种子 `546001` 至 `546010` 的容量、无环和确定性不变量回归。 `com.ft546.wcs.demo` 是 LEGACY 演示;新增能力位于 `com.ft546.wcs.shadow`,交通区段状态不会写入 LEGACY 业务队列。 ## 运行测试 ```bash mvn clean test ``` 测试必须由 Maven Surefire 实际发现并执行;验收标准为测试数大于 0、Failures 为 0、Errors 为 0。 ## 运行控制台模拟 ```bash mvn exec:java ``` 输出事件包括: - `CYCLE`:调度周期开始 - `ASSIGN`:任务选车和裁决理由 - `PATH`:规划成功的路径 - `AVOID`:创建避让队列 - `HOLD`:交通或协议原因导致等待 - `SEND`:模拟协议下发成功 - `MOVE`:模拟车辆推进 - `COMPLETE`:队列完成并归档 - `SUMMARY`:最终周期、活动队列、历史和协议尝试次数 - `SHADOW-SUMMARY`:离线 SHADOW 的 GRANT/HOLD 数量和零写入声明 ## 未覆盖的生产门槛 本项目不包含 SQL Server 事务与 Outbox、真实 PLC Prepare/Commit、CRC 与寄存器布局、提升机物理信号、深位真实执行、硬件在环、现场 SHADOW 样本或区域 ACTIVE 回退。相关能力仍以 `docs/WCS算法优化` 的外部签字和验收门禁为准。