diff --git a/docs/evidence/rev004-writtenoff-formal-table-dev-db-apply-2026-04-17.md b/docs/evidence/rev004-writtenoff-formal-table-dev-db-apply-2026-04-17.md index a97a1fc..d131f3b 100644 --- a/docs/evidence/rev004-writtenoff-formal-table-dev-db-apply-2026-04-17.md +++ b/docs/evidence/rev004-writtenoff-formal-table-dev-db-apply-2026-04-17.md @@ -100,3 +100,43 @@ smoke 完成后已删除: ## 当前未完成 - writtenoff formal-first 目前仍是最小实现,后续仍可优化 page 查询性能(避免 listAll + getView N+1); - 若需要更细的 charge_detail 差异映射到 formal 明细,可在后续补强。 + + +## 最终补丁后复核(2026-04-17 14:57 +08:00) +针对本轮补加的两个可靠性修正再次执行 fresh-jar smoke: +1. `createSoldAction(...)` 补 `@Transactional`,确保 synthetic `operat_log` 与 formal pending 记录同事务提交; +2. writtenoff approve/reject 缺失 formal 主记录时改为显式报错,避免静默跳过 formal 状态更新。 + +### fresh jar +- 端口:`48094` +- 启动方式:`/usr/bin/java -jar sw-business/sw-business-server/target/sw-business-server.jar --spring.profiles.active=dev --server.port=48094` +- `GET /actuator/health` 返回:`{"status":"UP"}` + +### smoke 数据 +- charge `992105`(approve) +- charge `992106`(reject) +- submit 返回调整单: + - `REV004-SLD-992105-20260417145725` + - `REV004-SLD-992106-20260417145726` + +### HTTP 结果 +- `sold-submit`:两笔均返回 `PENDING_APPROVAL / PENDING` +- `get?adjustmentNo=REV004-SLD-992105-20260417145725`:可返回 formal detail(核销金额、账务年月等) +- `page?objectType=WRITTENOFF_ADJUST`:可返回两笔 fresh smoke formal 记录 +- `approve`:返回 `APPROVED / SUCCESS / UPDATED` +- `reject`:返回 `REJECTED / FAIL / SKIPPED` + +### DB 回读 +`biz_writtenoff_adjust`: +- `REV004-SLD-992105-20260417145725 -> APPROVED | UPDATED | SUCCESS` +- `REV004-SLD-992106-20260417145726 -> REJECTED | SKIPPED | FAIL` + +`biz_writtenoff_adjust_detail`: +- approve 明细:`SUCCESS | APPROVE_EXECUTE | approve final smoke` +- reject 明细:`REJECTED | REJECT | reject final smoke` + +`biz_charge`: +- `992105 -> pay_state=2, extended_amount=0, discount_money=120, original_money=120` +- `992106 -> pay_state=1, extended_amount=88, discount_money=0, original_money=88` + +说明:最终补丁后,writtenoff submit / get / page / approve / reject 主链路再次通过,且回写结果与预期一致。