供应商订单安全对账后端执行报告(最终)

report
2026年7月20日2 min read277 words

Updated 2026年7月20日

供应商订单安全对账后端执行报告

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_REVIEWorderresultnow 的非空契约校验后立即返回 NOOP / MANUAL_REVIEW_REQUIRED;不再因为后续事件字段、引用或匹配数据异常改变人工审核结论。新增 afterCreateafterQuery 两个入口的回归断言。
  • 根据本轮规格的纯决策边界,移除 Spring Boot 启动类、apiweb 包、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、数据库、网络或调度,未修改根目录交付文档。

未解决风险

当前任务按边界保持纯决策模块,因此事件持久化去重、并发控制、跨实例一致性、供应商调用与可观测性仍需在生产应用层实现;本轮没有用进程内状态或基础设施占位实现这些能力。