# 风险仪表盘总人数修复实施记录

**日期**: 2026-03-19
**范围**: 后端

## 问题现象

- 风险仪表盘中的“总人数”始终显示 `0`
- 真实数据库中多个项目已存在流水数据，但 `ccdi_project.target_count` 未被维护

## 根因

- 结果总览接口按既定口径直接读取 `ccdi_project.target_count`
- 项目创建时将 `target_count` 初始化为 `0`
- 后续在银行流水导入成功、删除上传记录成功后，都没有重新统计并回写 `target_count`

## 本次修改

1. 在 `CcdiFileUploadServiceImpl` 中新增项目目标人数刷新逻辑
2. 在银行流水入库成功后，按 `ccdi_bank_statement` 中去重身份证号数量回写 `ccdi_project.target_count`
3. 在删除上传记录并清理项目流水后，同步刷新 `ccdi_project.target_count`
4. 新增增量脚本 `sql/migration/2026-03-19-backfill-project-target-count.sql`，用于回填历史项目的目标人数
5. 补充单元测试，覆盖：
   - 流水入库成功后刷新目标人数
   - 删除上传记录后刷新目标人数
   - 目标人数刷新按去重身份证号统计

## 验证

- 执行：`mvn -pl ccdi-project -Dtest=CcdiFileUploadServiceImplTest test`
- 结果：通过
