# 第二期银行流水规则元数据修复验证记录

## 执行命令

```bash
mvn test -pl ccdi-project -Dtest=CcdiBankTagRuleSqlMetadataTest
bin/mysql_utf8_exec.sh sql/migration/2026-03-20-sync-bank-tag-phase2-rule-metadata.sql
python3 - <<'PY'
# 查询 ccdi_bank_tag_rule 第二期 10 条规则的 indicator_code、business_caliber、remark
PY
mvn test -pl ccdi-project -Dtest=CcdiBankTagRuleSqlMetadataTest,CcdiBankTagAnalysisMapperXmlTest,BankTagRuleConfigResolverTest,CcdiBankTagServiceImplTest,CcdiBankTagServiceRiskCountRefreshTest,CcdiProjectOverviewServiceStructureTest,CcdiProjectOverviewMapperSqlTest,CcdiProjectOverviewServiceImplTest,CcdiProjectOverviewControllerTest
```

## 执行时间
- 2026-03-20 16:29 执行 `mvn test -pl ccdi-project -Dtest=CcdiBankTagRuleSqlMetadataTest` 红灯验证，确认第二期迁移脚本缺失，测试报 `NoSuchFileException`。
- 2026-03-20 16:30 重新执行 `mvn test -pl ccdi-project -Dtest=CcdiBankTagRuleSqlMetadataTest`，结果 `BUILD SUCCESS`，`Tests run: 2, Failures: 0, Errors: 0, Skipped: 0`。
- 2026-03-20 16:30 执行 `bin/mysql_utf8_exec.sh sql/migration/2026-03-20-sync-bank-tag-phase2-rule-metadata.sql`，脚本落库成功，无报错、无乱码输出。
- 2026-03-20 16:30 查询 `ccdi_bank_tag_rule` 第二期 10 条规则元数据，确认数据库已与真实规则状态对齐。
- 2026-03-20 16:30 执行最终回归命令 `mvn test -pl ccdi-project -Dtest=CcdiBankTagRuleSqlMetadataTest,CcdiBankTagAnalysisMapperXmlTest,BankTagRuleConfigResolverTest,CcdiBankTagServiceImplTest,CcdiBankTagServiceRiskCountRefreshTest,CcdiProjectOverviewServiceStructureTest,CcdiProjectOverviewMapperSqlTest,CcdiProjectOverviewServiceImplTest,CcdiProjectOverviewControllerTest`，结果 `BUILD SUCCESS`，`Tests run: 49, Failures: 0, Errors: 0, Skipped: 0`，完成时间 `2026-03-20T16:30:53+08:00`。

## 结果摘要
- 已补第二期元数据迁移脚本与 SQL 校验测试。
- 修复后已确认：
  - 第二期 10 条规则 `remark` 均已变为真实规则说明
  - `FIXED_COUNTERPARTY_TRANSFER.indicator_code` 已变为 `NULL`
  - `SALARY_UNUSED.business_caliber` 乱码已修复为“工资发放后除代扣项目外，连续30天无消费或转账支出记录。”
  - `TAX_ASSET_REGISTRATION_MISMATCH.business_caliber` 已更新为“员工及关系人有5000元以上的纳税记录，但当前资产登记口径下无房产登记。”
  - `MONTHLY_FIXED_INCOME.indicator_code` 继续保持 `MONTHLY_FIXED_INCOME`
- 测试日志中的 `threshold missing` 与 `refresh failed` 为既有异常路径断言产生的预期日志，不代表最终回归失败。

## 结论
- 第二期规则元数据修复已完成，仓库脚本与当前数据库均已对齐到真实规则状态。
- 当前验证仅执行 Maven 单元测试与数据库只读复核，未启动额外前后端进程，因此无需执行进程清理。
