fujian_water_biz_doc/docs/evidence/rev004-split-adjust-formalization-implementation-2026-04-14.md

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