fujian_water_biz_doc/docs/evidence/rev004-accounting/rev004-split-adjust-formalization-implementation-2026-04-14.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.2 KiB
Raw Blame History

REV004 / split-adjust formalization + dedicated interfaces evidence2026-04-14

1. 本轮实现范围

  • 保持旧接口兼容:
    • POST /admin-api/business/accounting-adjust/unsold-split-submit
    • GET /admin-api/business/accounting-adjust/get
    • GET /admin-api/business/accounting-adjust/log-detail
  • 新增 split 专属接口族:
    • POST /admin-api/business/split-adjust/submit
    • GET /admin-api/business/split-adjust/page
    • GET /admin-api/business/split-adjust/detail
    • GET /admin-api/business/split-adjust/result
  • split 执行真值升级为:
    • splitItems[{seqNo, splitWater}]
  • splitCount 作为兼容口径保留,并在旧入口适配阶段转译为 splitItems

2. 本轮代码落点

新增

  • sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/splitadjust/SplitAdjustController.java
  • .../controller/admin/splitadjust/vo/SplitAdjustSubmitReqVO.java
  • .../controller/admin/splitadjust/vo/SplitAdjustSubmitRespVO.java
  • .../controller/admin/splitadjust/vo/SplitAdjustDetailRespVO.java
  • .../controller/admin/splitadjust/vo/SplitAdjustPageReqVO.java
  • .../controller/admin/splitadjust/vo/SplitAdjustPageRespVO.java
  • .../service/splitadjust/SplitAdjustService.java
  • .../service/splitadjust/SplitAdjustServiceImpl.java

继续增强

  • SplitAdjustFormalizationService
  • AccountingAdjustActionServiceImpl
  • AccountingAdjustProcessServiceImpl
  • AccountingAdjustLogProcessServiceImpl
  • AccountingAdjustDetailRespVO
  • AccountingAdjustLogDetailRespVO
  • ChargeDO
  • sql/rev004/REV004_accounting_adjustments_ddl.sql
  • Rev004AccountProcessCanaryQueryIntegrationTest
  • AccountingAdjustActionServiceImplTest
  • Rev004AccountProcessLiveDbReadinessTest
  • sql/rev004/accountprocess/00_reset.sql

3. 关键实现结论

  1. 新 split submit 入口已经支持显式 splitItems[{seqNo, splitWater}]
  2. splitItems 成为 formal 明细真值,审批通过执行会按明细水量比例分配子账单金额/水量
  3. unsold-split-submit 已兼容接入新 split 主链,可直接传 splitItems
  4. 新增 split 专属 detail/result/page 接口
  5. log-detail 对新 split 专属单据也可 fallback 回看
  6. biz_charge 已承接最小追溯字段:
    • source_charge_id
    • split_adjust_id
    • charge_origin_type
    • split_status

4. 验证命令与结果

4.1 编译

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

结果PASS

4.2 targeted tests阶段一

REV004_IT_DB_URL='jdbc:postgresql://192.168.10.130:5436/sw_system' \
REV004_IT_DB_USERNAME='sw_system' \
REV004_IT_DB_PASSWORD='Em@123456' \
mvn -pl sw-business/sw-business-server \
  -Dtest=Rev004AccountProcessCanaryQueryIntegrationTest#splitAdjustSubmit_shouldAcceptSplitItemsAndExposeDedicatedDetailRoute,AccountingAdjustActionServiceImplTest \
  test

结果PASS

  • Tests run: 10
  • Failures: 0
  • Errors: 0
  • Skipped: 0

4.3 targeted tests阶段二

REV004_IT_DB_URL='jdbc:postgresql://192.168.10.130:5436/sw_system' \
REV004_IT_DB_USERNAME='sw_system' \
REV004_IT_DB_PASSWORD='Em@123456' \
mvn -pl sw-business/sw-business-server \
  -Dtest=Rev004AccountProcessCanaryQueryIntegrationTest#splitAdjustSubmit_shouldAcceptSplitItemsAndExposeDedicatedDetailRoute+legacyUnsoldSplitSubmit_shouldCompatToSplitItemsFlow+splitAdjustPage_shouldReturnDedicatedRows+splitAdjustResult_shouldReturnSuccessAfterApprove,AccountingAdjustActionServiceImplTest \
  test

结果PASS

  • Tests run: 13
  • Failures: 0
  • Errors: 0
  • Skipped: 0

5. 场景覆盖

已覆盖

  • 新 split submit -> dedicated detail
  • 新 split submit -> old log-detail fallback
  • 旧 split submit -> new split detail
  • dedicated page query
  • dedicated result query after approve
  • split action service unit testsapprove/reject/write-back

仍待补强

  • dedicated page + approval status filter 组合查询
  • dedicated process 专属接口(如果最终保留)
  • split 执行失败/回滚路径的 real-db targeted integration

6. 风险与后续

  1. 旧接口兼容已接主链,但还需要继续做更完整的批量兼容覆盖
  2. 当前仍未进入 BY_COMPONENT / ItemStr 真执行
  3. 若要最终收口,还应补一轮 architect verification + deslop + regression rerun