fujian_water_biz_doc/docs/evidence/rev004-accounting/rev004-price-diff-formal-table-dev-db-apply-2026-04-17.md
tangweijie 3eccab2cf9 docs: 文档治理统一 — AGENTS.md 生命周期规则 + 模块归档 + DDL 修正
1. AGENTS.md 更新
   - water-docs: 新增 specs/ 与 docs/design/ 生命周期规则章节
   - water-backend: 更新协作引用(建设期/建成后、evidence 模块化)

2. specs/ 重复合并
   - 006-reminder-event-design 合并入 003-rev006-reminder-event-design
   - 001-rev004-accounting 删除冗余 data-model.md + contracts/
   - 002-rev005-invoice-flow 删除冗余 data-model.md + contracts/

3. evidence 按模块归档
   - 35 个 REV-004 文件归入 evidence/rev004-accounting/
   - 7 个通用 bugfix 文件归入 evidence/bugfix/ 和 bugfix/frontend/
   - 新建 rev005-invoice/、rev006-reminder/、rev007-statistics/ 目录

4. guides/ 清理
   - 14 个 REV004_*.md 移入 evidence/rev004-accounting/

5. 遗留文件处理
   - docs/research/ 归档到 Archive/06_Migration_Plans/
   - backend-check detached worktrees 清理

6. 交叉引用修复
   - 006-reminder-event-design → 003-rev006-reminder-event-design
   - docs/guides/REV004_ → docs/evidence/rev004-accounting/REV004_

7. DB 设计文档修正(01_Database_Design.md)
   - biz_invoice 明确为开票配置表,非发票记录表
   - 新增 biz_invoice_record 为发票申请/结果主表
   - 新增 biz_charge_invoice_rel 账单-发票关联说明
   - REV-005 承接口径表名全部修正

8. 发票审计证据
   - 新增 evidence/rev005-invoice/2026-06-16-invoice-document-audit.md
2026-06-16 11:47:16 +08:00

4.5 KiB
Raw Blame History

REV004 price-diff formal-table 已应用到 application-dev 测试库2026-04-17

目标库

依据:

  • sw-business/sw-business-server/src/main/resources/application-dev.yaml

解析结果:

  • Host192.168.10.130
  • Port5436
  • DBsw_system
  • Usersw_system

已执行脚本

  • sql/rev004/REV004_price_diff_formal_tables_deploy.sql

DDL 执行结果

结果:PASS

已确认存在:

  • biz_price_diff_adjust
  • biz_price_diff_adjust_detail
  • biz_price_diff_adjust_seq
  • biz_price_diff_adjust_detail_seq

已确认幂等重放通过:

  • second apply 输出 already exists, skipping
  • 无重复约束/重复索引异常

代码验证

compile

mvn -pl sw-business/sw-business-server -DskipTests compile

结果:PASS

说明:

  • 先顺手修复 develop 基线 compile blocker
    • CustApiImpl.java 去掉 updateCustPriceTemplateCode 上多余 @Override
    • CustServiceImpl.java 去掉 dept.getCode() 调用
  • 之后串行重跑 compile 成功
  • 曾出现一次 NoSuchFileException ... target/generated-sources/...,确认为 compile 与 test 并行访问同一 target/ 目录导致的竞态,不属于业务代码错误

targeted tests

mvn -pl sw-business/sw-business-server -Dtest=AccountingAdjustActionServiceImplTest,AccountingAdjustProcessServiceImplTest,AccountingAdjustQueryServiceImplTest,PriceDiffFormalizationServiceTest test

结果:PASS

  • Tests run: 43
  • Failures: 0
  • Errors: 0

HTTP smokefresh jar, port 48095

health

  • GET /actuator/health -> {"status":"UP"}

submit

  • unsold-price-diff-submit on charge 992205 -> REV004-992205-20260417153413
  • unsold-price-diff-submit on charge 992206 -> REV004-992206-20260417153414
  • 返回统一为:
    • objectType = PRICE_DIFF_ADJUST
    • approvalStatus = PENDING_APPROVAL
    • resultStatus = PENDING_APPROVAL
    • writeBackStatus = PENDING

get / page

  • GET /admin-api/business/accounting-adjust/get?adjustmentNo=REV004-992205-20260417153413
    • 可返回 formal detail
      • priceDiffAmount=15.50
      • billAmountBefore=100.00
      • billAmountAfter=115.50
      • extendedAmountBefore=100.00
      • extendedAmountAfter=115.50
  • GET /admin-api/business/accounting-adjust/page?...objectType=PRICE_DIFF_ADJUST
    • 可返回 2 条 fresh smoke formal-first 记录
    • reasonCodeLabel 已能解析为字典文本(如 用户协商 / 定价错误

approve / reject

  • approve/admin-api/business/accounting-adjust/approve
    • 返回 APPROVED / SUCCESS / UPDATED
  • reject/admin-api/business/accounting-adjust/reject
    • 返回 REJECTED / FAIL / SKIPPED

DB 回读

biz_price_diff_adjust

  • REV004-992205-20260417153413 -> APPROVED | UPDATED | SUCCESS
  • REV004-992206-20260417153414 -> REJECTED | SKIPPED | FAIL

biz_price_diff_adjust_detail

  • approve 明细:SUCCESS | APPROVE_EXECUTE | approve price diff smoke
  • reject 明细:REJECTED | REJECT | reject price diff smoke
  • approve 样例金额前后值:
    • bill_amount_before=100.00 -> bill_amount_after=115.50
    • extended_amount_before=100.00 -> extended_amount_after=115.50

biz_charge

  • 992205 -> bill_amount=115.5000, extended_amount=115.5000, original_money=115.5000
  • 992206 -> bill_amount=80.0000, extended_amount=80.0000, original_money=80.0000

测试数据清理

smoke 完成后已删除:

  • biz_operat_log / detailidentify_value = 992205, 992206
  • biz_price_diff_adjust / detail
  • biz_charge992205, 992206
  • biz_custREV004_PD_SMOKE_A, REV004_PD_SMOKE_B

回读结果:

  • pricediff_main_left=0
  • pricediff_detail_left=0
  • operat_log_left=0
  • charge_left=0
  • cust_left=0

运行态清理

用于 fresh-jar HTTP smoke 的临时实例:

  • port 48095

已停止,当前无残留 LISTEN 进程。

当前结论

本轮 price-diff formal-table 已达到:

  1. DDL 可落库且可幂等重放;
  2. unsold price-diff submit 能落 pending formal main/detail
  3. approve/reject 会同步 formal 状态;
  4. detail/page 对 PRICE_DIFF_ADJUST 已能返回 formal-first 结果;
  5. 账单回写与当前 applyPriceDiffWriteBack(...) 口径一致;
  6. fresh smoke / cleanup 证据完整。

当前仍需收口

  • 这批尚未提交 commit / PR
  • 如果后续要更贴近原系统 PM_PRICE_RECORDS / DETAILS 语义,可继续补:
    • PriceListId
    • PriceCode
    • IsLadder
    • NewFeeId
    • 更细颗粒的 old/new late fee 与账单差额字段来源收口。