# REV004 prestorage process/attachments strict formal-first(2026-04-17) ## 目标 收口: - `GET /admin-api/business/accounting-adjust/prestorage-process` - `GET /admin-api/business/accounting-adjust/prestorage-attachments` 使其优先读取 prestorage formal-table,而不是继续主要依赖 legacy/unified fallback。 ## 代码变更 核心变更位于: - `AccountingAdjustProcessServiceImpl` - `AccountingAdjustProcessServiceImplTest` 策略: 1. `getProcess(adjustmentNo)` 先尝试 `PrestorageFormalizationService.getView(adjustmentNo)` 2. 命中 formal view 时,直接组装 `AccountingAdjustProcessRespVO` 3. `getAttachments(adjustmentNo)` 先尝试读取 formal `attachmentRefs` 4. 仅在 formal 不存在时才回退到 synthetic / unified 口径 ## 验证 ### compile ```bash mvn -pl sw-business/sw-business-server -DskipTests compile ``` 结果:**PASS** ### targeted tests ```bash mvn -pl sw-business/sw-business-server -Dtest=AccountingAdjustProcessServiceImplTest,AccountingAdjustPrestorageProcessServiceImplTest test ``` 结果:**PASS** - Tests run: 23 - Failures: 0 - Errors: 0 ## fresh jar smoke(port 48098) ### health - `GET /actuator/health` -> `{"status":"UP"}` ### smoke 数据 手工 seed: - `adjustmentNo = REV004-PTR-993001-SEED` - formal main:`biz_prestorage_adjust` - formal detail:`biz_prestorage_adjust_detail` - attachment refs:`101,proof-raw` ### process 调用: - `GET /admin-api/business/accounting-adjust/prestorage-process?adjustmentNo=REV004-PTR-993001-SEED` 结果:**PASS** 返回关键字段: - `objectType = LEGACY_PRESTORAGE_TRANSFER` - `adjustType = TRANSFER` - `actionAmount = 20.0` - `resultStatus = SUCCESS` - `approvalStatus = NOT_REQUIRED` - `writeBackStatus = UPDATED` - `attachmentRefs = ["101", "proof-raw"]` - `applicant = 王五` - `contactMobile = 13700000000` - `latestMessage = 预存转账成功,目标户号=C-993002` 说明:process 已命中 formal main,而不是再走 unified detail 兜底。 ### attachments 调用: - `GET /admin-api/business/accounting-adjust/prestorage-attachments?adjustmentNo=REV004-PTR-993001-SEED` 结果:**PASS** 返回: - ref=`101` -> 数值 ID 解析,当前附件实体不存在,返回 `resolved=false, message=附件不存在` - ref=`proof-raw` -> 非数值引用,返回 `resolved=false, message=附件引用不是数值ID,保留原始引用` 说明:attachments 已优先读取 formal `attachmentRefs`,并保留现有解析策略。 ## 清理 已删除: - `biz_prestorage_adjust / detail` seed 数据 回读结果: - `prestorage_main_left=0` - `prestorage_detail_left=0` 运行态: - `48098` 已停止 ## 当前结论 本轮 prestorage 剩余查询缺口已完成 strict formal-first 收口: 1. `prestorage-process` 优先命中 formal 2. `prestorage-attachments` 优先命中 formal attachment refs 3. formal 缺失时仍可继续 fallback 4. 主链路 schema / 写路径无变更