# 银行流水占位规则后端实施记录

## 变更概述

- 按 `assets/模型信息.xlsx` 补齐银行流水打标缺失的 25 条规则初始化数据。
- 为新增规则补齐 `CcdiBankTagAnalysisMapper` 方法声明与 `CcdiBankTagAnalysisMapper.xml` 占位 SQL。
- 在 `CcdiBankTagServiceImpl` 中补齐新增规则分发，保证空结果规则也能正常执行完成。
- 为占位规则补充 XML、Service、参数解析回归测试。

## 涉及文件

- `sql/2026-03-16-bank-tagging.sql`
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagAnalysisMapper.java`
- `ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagAnalysisMapper.xml`
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiBankTagServiceImpl.java`
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagAnalysisMapperXmlTest.java`
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiBankTagServiceImplTest.java`
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/BankTagRuleConfigResolverTest.java`

## 实施结果

- 初始化 SQL 中规则总数补齐为 33 条，覆盖 10 个模型组。
- 数字占位 `rule_code` 已按业务语义改为可读编码，例如 `ABNORMAL_CUSTOMER_TRANSACTION`、`SUPPLIER_CONCENTRATION`、`SALARY_QUICK_TRANSFER`。
- 规则元数据中的 `rule_code`、`indicator_code` 已统一为全大写；默认参数脚本中的相关 `param_code` 也已同步切换为全大写，并同步调整了解析映射。
- 新增 25 个占位 Mapper 方法与对应 XML `select`，全部使用独立 `where 1 = 0` 空结果 SQL。
- Service 已按 `rule_code` 分发到新增占位方法，空结果不会触发批量写入，任务状态可正常收敛为 `SUCCESS`。
- 参数解析器现有逻辑已可安全处理无参数映射的占位规则，因此本次未修改 `BankTagRuleConfigResolver.java`。

## 验证记录

- `mvn test -pl ccdi-project -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiBankTagAnalysisMapperXmlTest`
- `mvn test -pl ccdi-project -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiBankTagServiceImplTest`
- `mvn test -pl ccdi-project -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=BankTagRuleConfigResolverTest`
- `mvn test -pl ccdi-project -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiBankTagAnalysisMapperXmlTest,BankTagRuleConfigResolverTest,CcdiBankTagServiceImplTest`
- `mvn -pl ccdi-project -am -DskipTests compile`

## 注意事项

- 计划中的 Maven 单测命令在当前多模块 Reactor 下需要补 `-Dsurefire.failIfNoSpecifiedTests=false`，否则上游无匹配测试的模块会提前失败。
- `assets/模型信息.xlsx` 中“工资无使用记录”对应业务口径原始单元格存在乱码，本次按源数据原样落库，后续若拿到修正版设计数据建议同步修正。
