109 lines
4.2 KiB
Markdown
109 lines
4.2 KiB
Markdown
# 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
|