修复金综流水多文件拉取处理

This commit is contained in:
wjj
2026-07-21 16:42:45 +08:00
parent ffaa2fb2a0
commit 2bcba71259
4 changed files with 156 additions and 20 deletions

View File

@@ -0,0 +1,20 @@
# 金综流水多 logId 处理后端实施计划
## 背景
金综 `dataChannelCode=JZL` 拉取链路可能在一次请求中返回多个 XML 文件对应的多个 `logId`。接入端如果只处理首个 `logId`,会导致同一证件号下后续金综 XML 文件未进入解析状态轮询、上传状态查询和流水明细落库。
## 实施内容
- 将金综拉取响应处理从单个 `logId` 改为遍历 `response.data` 中全部非空 `logId`
- 第一个 `logId` 复用拉取提交时创建的上传记录。
- 第二个及后续 `logId` 自动创建独立上传记录,避免多个 XML 的文件名、账号、解析状态相互覆盖。
- 每个 `logId` 独立执行解析状态轮询、文件状态查询、流水明细获取和落库。
- 继续沿用最新代码中的 `CallerContext`,确保流水平台调用仍写入外部接口日志。
- 单个 `logId` 失败只标记对应记录失败,不中断其余 `logId`;本次证件号任务至少一个 `logId` 成功即视为成功。
## 验证计划
- 补充单元测试模拟金综返回 3 个 `logId`
- 验证 3 个 `logId` 均调用解析状态轮询和流水明细查询。
- 验证后续 `logId` 会新增独立上传记录,并保留证件号、上传人和上传中状态。