供应商订单安全对账后端执行报告(最终)
供应商订单安全对账后端执行报告
BE-01 差距映射
基线命令:mvn -f backend/pom.xml test。
基线结果:59 项测试通过,0 失败,0 错误,0 跳过。
| 规格 | 基线证据 | 结论与后续动作 |
|---|---|---|
| SAFE-01 至 SAFE-06、CREATE-01 至 CREATE-06 | BookingReconciliationServiceTest 的不确定结果、成功、白名单与非白名单拒绝、完整性测试 |
已覆盖或部分覆盖;补充 CREATE-02、CREATE-03、CREATE-07。 |
| CREATE-07 | 无拒绝携带供应商标识的直接断言 | 补充人工审核且不回填的测试。 |
| QUERY-01 至 QUERY-10 | BookingReconciliationQueryTest 覆盖多匹配优先、结果与错误冲突、唯一状态、次数边界、无匹配和查询错误 |
已完整覆盖。 |
| QUERY-11 | 仅确认号冲突有直接断言 | 补充供应商订单号冲突且不回填的测试。 |
| STATE-01 至 STATE-06、STATE-08 | BookingReconciliationTerminalStateTest 覆盖重复确认、乱序、冲突优先和人工审核粘性;最终失败后的建单证据已覆盖 |
追加最终失败后的查询证据测试。 |
| STATE-07 | state07FinalFailureRepeatedWhitelistRejectRemainsNoop |
已完整覆盖。 |
| VALID-01 至 VALID-04 | BookingReconciliationValidationTest 的构造、入口、订单和 outcome 校验 |
已完整覆盖。 |
| VALID-05 至 VALID-07 | 事件、查询、匹配的缺字段及引用不匹配测试 | 部分覆盖;补充缺少建单引用、查询事件号和匹配状态。 |
matches=null 语义 |
SupplierQueryResult 已在紧凑构造器中规范为空列表,但无直接服务测试 |
补充按零匹配重试的测试。 |
特别检查结论:QUERY_RESULT_CONFLICT 已有单匹配加错误码断言;多匹配加错误码优先级已覆盖;引用不匹配、构造与入口参数错误已覆盖;FAILED_FINAL 后订单证据现由建单和查询两条路径覆盖;仅确认号冲突已覆盖,供应商订单号冲突已补充。
BE-02 至 BE-05
初始规格核对未发现需要修改 BookingReconciliationService 或模型的失败场景。新增定向测试固定以下行为:
- 建单成功两个必填标识分别缺失,以及本地两个标识分别冲突。
- 拒绝结果携带供应商订单证据时进入人工审核。
- 查询的供应商订单号冲突和
matches=null空列表语义。 FAILED_FINAL后通过查询收到完整或不完整订单证据。- 外部建单、查询和匹配数据的其余缺字段。
QA 最终修复
MANUAL_REVIEW在order、result、now的非空契约校验后立即返回NOOP / MANUAL_REVIEW_REQUIRED;不再因为后续事件字段、引用或匹配数据异常改变人工审核结论。新增afterCreate与afterQuery两个入口的回归断言。- 根据本轮规格的纯决策边界,移除 Spring Boot 启动类、
api与web包、MVC/trace 测试和 Spring 依赖。backend现为 Java 17 + Maven + JUnit 5 模块,不提供 HTTP API。
验证
| 阶段 | 命令 | 结果 |
|---|---|---|
| BE-02 | mvn -f backend/pom.xml -Dtest=BookingReconciliationServiceTest test |
25 项通过,0 失败,0 错误,0 跳过。 |
| BE-03 | mvn -f backend/pom.xml -Dtest=BookingReconciliationQueryTest test |
15 项通过,0 失败,0 错误,0 跳过。 |
| BE-04 | mvn -f backend/pom.xml -Dtest=BookingReconciliationTerminalStateTest test |
10 项通过,0 失败,0 错误,0 跳过。 |
| BE-05 | mvn -f backend/pom.xml -Dtest=BookingReconciliationValidationTest test |
7 项通过,0 失败,0 错误,0 跳过。 |
| 全量 | mvn -f backend/pom.xml clean test |
57 项通过,0 失败,0 错误,0 跳过。 |
| 全量 | mvn -f backend/pom.xml test |
57 项通过,0 失败,0 错误,0 跳过。 |
范围:后端纯决策服务、模型、JUnit 测试和本报告;未引入 API、数据库、网络或调度,未修改根目录交付文档。
未解决风险
当前任务按边界保持纯决策模块,因此事件持久化去重、并发控制、跨实例一致性、供应商调用与可观测性仍需在生产应用层实现;本轮没有用进程内状态或基础设施占位实现这些能力。