# 流水打标规则口径调整后端实施记录

## 修改背景

对现有流水打标规则进行审查后，确认需要优先处理两个后端口径问题：

1. 年流水交易额使用系统当前日期 `CURDATE()` 作为近一年锚点，历史流水项目重复跑模型时结果会随运行日期漂移。
2. 物业缴费与房产登记不匹配规则仅判断是否存在任意房产登记，且关键词口径要兼顾召回和误报控制。

外部人员夜间交易属于早期残留规则，不属于当前最终外部人员四类口径，本次不调整。

## 修改内容

1. 年流水交易额口径
   - `ANNUAL_TURNOVER` 改为以当前项目内最大交易日期作为近一年锚点。
   - `EXTERNAL_ANNUAL_TURNOVER` 同步改为以当前项目内最大交易日期作为近一年锚点。
   - 不再依赖系统当前日期 `CURDATE()`。

2. 物业缴费与房产登记不匹配口径
   - 物业候选关键词收敛为 `物业、物管、业委会、业主委员会、维修基金、住宅专项维修资金、房屋维修资金`。
   - 去掉 `中心、社区、大厦` 等泛词，降低普通转账或机构名称误命中的概率。
   - 使用 `ccdi_asset_info.asset_name` 与流水对手方名称、摘要做名称匹配。
   - 若已登记正常住宅资产名称能匹配流水对手方或摘要，则不再判定为“物业缴费与房产登记不匹配”。
   - 命中原因由“名下无房产登记”调整为“名下无匹配房产登记”。

## 影响范围

- 影响员工年流水交易额超限规则。
- 影响外部人员年流水交易额超限规则。
- 影响物业缴费与房产登记不匹配规则。
- 不新增模型参数，不改数据库结构，不改数据库脚本。
- 不调整外部人员夜间交易残留规则。

## 验证情况

- 已补充 Mapper XML 单测断言，覆盖近一年锚点和物业资产名称匹配。
- `mvn -pl ccdi-project -DskipTests compile` 执行通过。
- 已执行 Mapper 静态校验，确认年流水规则不再包含 `CURDATE()`，物业规则使用收敛关键词并保留资产名称匹配，外部夜间交易规则未被调整。
- 尝试执行 `mvn -pl ccdi-project "-Dtest=CcdiBankTagAnalysisMapperXmlTest" test`，但在 `testCompile` 阶段被既有无关测试编译错误阻断：`CcdiFileUploadServiceImplTest` 仍使用旧版 `LsfxAnalysisClient.uploadFile` 参数签名，`CcdiBankStatementTest` 仍调用当前 `BankStatementItem` 不存在的旧 setter。
