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

109 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 编译
```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 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