# REV004 / split-adjust formalization + dedicated interfaces evidence(2026-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 编译 ```bash mvn -pl sw-business/sw-business-server -DskipTests compile ``` 结果:PASS ### 4.2 targeted tests(阶段一) ```bash 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(阶段二) ```bash 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 tests(approve/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