# 银行流水打标功能测试记录

## 测试时间

- 2026-03-18

## 测试范围

- 后端规则分发与结果写入
- 手动重算接口
- 项目级重算协调逻辑
- 批量上传完成后的自动触发逻辑
- 项目 `40` 的真实重算结果校验

## 环境信息

- 本地后端服务：`http://127.0.0.1:62318`
- 测试项目：`project_id = 40`
- 项目名称：`大额交易模型测试`
- 数据库现状：
  - `ccdi_bank_statement` 中项目 `40` 现有流水 `1289` 条
  - `ccdi_bank_tag_rule` 启用规则 `33` 条，其中 `LARGE_TRANSACTION` 为 `8` 条

## 单元测试验证

- 执行命令：
  - `mvn test -pl ccdi-project -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiBankTagAnalysisMapperXmlTest,CcdiBankTagResultMapperXmlTest,CcdiBankTagControllerTest,CcdiBankTagServiceImplTest,ProjectBankTagRebuildCoordinatorTest,BankTagRuleConfigResolverTest,CcdiBankTagEntityMappingTest,CcdiFileUploadServiceImplTest`
- 执行结果：
  - `BUILD SUCCESS`
  - 共执行 `45` 个用例，`0` 失败，`0` 错误，`0` 跳过
- 覆盖点：
  - `CcdiBankTagAnalysisMapper.xml` 中 8 条大额交易规则与 25 条占位规则 SQL 存在性校验
  - 标签结果删除与批量写入 XML 校验
  - 手动重算接口参数透传与日志校验
  - 打标任务创建、规则执行、失败日志、空结果规则收敛校验
  - 运行中任务拒绝手动重算、自动重算补跑标记校验
  - 上传完成触发自动重算校验

## 接口回归验证

- 登录接口：
  - `POST /login/test`
  - 结果：成功获取测试 token
- 手动重算接口：
  - `POST /ccdi/project/tags/rebuild`
  - 请求体：`{"projectId":40,"modelCode":"LARGE_TRANSACTION"}`
  - 返回结果：`{"msg":"标签重算任务已提交","code":200}`

## 数据库校验

- 重算前：
  - 最新任务 ID：`8`
  - `LARGE_TRANSACTION` 结果数：`26`
- 重算后：
  - 新增任务 ID：`9`
  - 任务状态：`SUCCESS`
  - `success_rule_count = 8`
  - `failed_rule_count = 0`
  - `hit_count = 26`
  - 运行中任务数：`0`

## 命中结果分布

- `ANNUAL_TURNOVER`：`1`
- `CUMULATIVE_INCOME`：`1`
- `FREQUENT_CASH_DEPOSIT`：`1`
- `HOUSE_OR_CAR_EXPENSE`：`2`
- `LARGE_CASH_DEPOSIT`：`6`
- `LARGE_TRANSFER`：`3`
- `SINGLE_LARGE_INCOME`：`10`
- `TAX_EXPENSE`：`2`

## 结论

- 银行流水打标主链路测试通过。
- 手动重算接口可正常提交并完成 `LARGE_TRANSACTION` 模型重算。
- 项目 `40` 本次重算后结果总数仍为 `26`，8 条大额交易规则命中分布与历史预期一致，未发现结果漂移。

## 环境清理

- 本次未新启动前后端测试进程，复用了已在运行的本地后端服务，因此无需额外清理进程。
