feat: 定时推送按认领人串行处理——查完该认领人公告并推完名下流水再轮到下一个

This commit is contained in:
刘泉佳
2026-09-29 11:52:42 +08:00
parent fe7a940201
commit 331ea0466f
2 changed files with 57 additions and 36 deletions
@@ -145,9 +145,9 @@ claimed 累计有效认领 == unclaimed_amount(且 > 0) ← 「认领
**A301-2 重查的认领人问题**:A301-2 的 `claimusers` 必填且为单个用户姓名(`BfiClaimAnnounceQueryDTO` L50-52),定时任务没有登录用户上下文。处理:
1. 取候选流水的有效认领主单 `claimer_name` 去重集合;
2. 逐人调 `BfiUtil.queryAllPages(queryClaimAnnounce)`(时间窗沿用 `thirdParty.bfi.claimAnnounce.months`,默认 6 个月);
3. 按公告 `id == 流水.bill_id` 匹配刷新,再走 §4.2 ③-⑦;
4. 单流水推送失败 try/catch 独立消化,不影响同批其他流水。
2. **按认领人串行处理**:先调 `BfiUtil.queryAllPages(queryClaimAnnounce)` 查该认领人的公告(时间窗沿用 `thirdParty.bfi.claimAnnounce.months`,默认 6 个月),推完其名下全部流水后再处理下一个认领人;
3. 该认领人名下流水按公告 `id == 流水.bill_id` 匹配刷新,再走 §4.2 ③-⑦;
4. 单流水推送失败 try/catch 独立消化,不影响同批其他流水;同一流水被多个认领人认领时只在首个覆盖它的认领人处推送一次。
> 联调确认项:`claimusers` 若支持逗号分隔多人,可合并为一次查询(见 §8)。