BE-04 终态、幂等与乱序优先级交付记录
BE-04 终态、幂等与乱序优先级交付记录
修改范围
BE-03-delivery.md:以 UTF-8 无 BOM 重新写入,内容和语义不变。BookingReconciliationTerminalStateTest:新增 STATE-01 至 STATE-08,锁定建单和查单入口的终态、幂等和乱序优先级。BookingReconciliationService:未修改;新增测试证明当前纯领域实现已经满足本轮安全规则。
行为保证
- 重复确认保持
CONFIRMED,动作为NOOP;MANUAL_REVIEW对建单和查单事件均保持粘性。 - 供应商订单号或确认号冲突均先进入人工审核,即使供应商事件更旧,也不会回填或覆盖本地标识。
- 已确认订单收到旧的
PENDING、FAILED、CANCELLED事件保持确认;同时或更新的相同标识状态进入人工审核。 FAILED_FINAL收到重复白名单拒绝保持终态且不重新授权创建;随后出现完整或不完整的供应商订单证据均进入人工审核。- 相同输入和显式
now产生相等决策;不引入数据库、调度、供应商客户端或 Repository。
验证
mvn -f backend/pom.xml -Dtest=BookingReconciliationTerminalStateTest test
mvn -f backend/pom.xml test
定向测试:8 tests,0 failures,0 errors,0 skipped,BUILD SUCCESS(2026-07-20 11:02:14 +08:00)。
完整测试:52 tests,0 failures,0 errors,0 skipped,BUILD SUCCESS(2026-07-20 11:03:32 +08:00)。