合并第一期银行流水真实规则后端实现

This commit is contained in:
wkc
2026-03-20 14:03:33 +08:00
10 changed files with 471 additions and 59 deletions

View File

@@ -0,0 +1,76 @@
# 银行流水真实规则第一期后端实施记录
## 第一期规则范围
- `GAMBLING_SENSITIVE_KEYWORD`
- `SPECIAL_AMOUNT_TRANSACTION`
- `SUSPICIOUS_INCOME_KEYWORD`
- `FOREX_BUY_AMT`
- `FOREX_SELL_AMT`
- `LARGE_PURCHASE_TRANSACTION`
- `STOCK_TFR_LARGE`
- `WITHDRAW_CNT`
- `LARGE_STOCK_TRADING`
## 修改内容
- 补齐第一期规则参数映射
- 替换第一期 8 条明细型占位 SQL
- 接通 `WITHDRAW_CNT` 对象型真实 SQL 与阈值分发
- 对齐第一期规则元数据脚本与实施/验证文档
## 参数映射调整
-`BankTagRuleConfigResolver` 中补齐第一期阈值规则映射:
- `FOREX_BUY_AMT -> SINGLE_PURCHASE_AMOUNT`
- `FOREX_SELL_AMT -> SINGLE_SETTLEMENT_AMOUNT`
- `WITHDRAW_CNT -> WITHDRAW_CNT`
- `STOCK_TFR_LARGE -> STOCK_TFR_LARGE`
- `LARGE_STOCK_TRADING -> STOCK_TFR_LARGE`
- 明确无阈值规则仍返回空参数集,不为第一期无参规则补虚假参数。
## XML 真实 SQL 替换
-`CcdiBankTagAnalysisMapper.xml` 中将以下占位 SQL 替换为真实规则:
- 赌博敏感词支出流水
- 非配偶/子女特殊金额交易流水
- 收入关键词转入流水
- 单笔购汇超阈值流水
- 单笔结汇超阈值流水
- 单笔大额采购事项
- 银证转账超阈值流水
- 三方资管超阈值流水
- 微信/支付宝单日频繁提现对象
- 明细型规则统一继续输出 `bankStatementId/groupId/logId/reasonDetail`
- `LARGE_PURCHASE_TRANSACTION` 由于来源为采购交易表,不直接来自银行流水表,保留明细结果字段别名并在 `reasonDetail` 中输出采购事项、金额和供应商信息。
## Service 分发调整
- `CcdiBankTagServiceImpl` 为以下规则改为显式透传解析后的阈值:
- `FOREX_BUY_AMT`
- `FOREX_SELL_AMT`
- `STOCK_TFR_LARGE`
- `LARGE_STOCK_TRADING`
- `WITHDRAW_CNT`
- `WITHDRAW_CNT` 命中为空时仍保持任务成功,不回退任务状态与风险人数刷新链路。
## 元数据脚本调整
-`sql/2026-03-16-bank-tagging.sql` 中对齐第一期规则元数据:
- `FOREX_BUY_AMT.indicator_code` 改为 `SINGLE_PURCHASE_AMOUNT`
- `FOREX_SELL_AMT.indicator_code` 改为 `SINGLE_SETTLEMENT_AMOUNT`
- `LARGE_STOCK_TRADING.indicator_code` 改为 `STOCK_TFR_LARGE`
- 将第一期已落地规则的 `remark` 从“占位规则待补充真实SQL”更新为真实规则描述。
## 与第二期边界
- 第二期规则仍保持原有占位 SQL不在本次修改范围内
- `LOW_INCOME_RELATIVE_LARGE_TRANSACTION`
- `MULTI_PARTY_GAMBLING_TRANSFER`
- `MONTHLY_FIXED_INCOME`
- `FIXED_COUNTERPARTY_TRANSFER`
- `HOUSE_REGISTRATION_MISMATCH`
- `PROPERTY_FEE_REGISTRATION_MISMATCH`
- `TAX_ASSET_REGISTRATION_MISMATCH`
- `SUPPLIER_CONCENTRATION`
- `SALARY_QUICK_TRANSFER`
- `SALARY_UNUSED`
## 验证执行
- 执行 `mvn test -pl ccdi-project -Dtest=BankTagRuleConfigResolverTest`,补齐参数映射后通过。
- 执行 `mvn test -pl ccdi-project -Dtest=CcdiBankTagAnalysisMapperXmlTest`,第一期 8 条明细规则结构测试通过。
- 执行 `mvn test -pl ccdi-project -Dtest=CcdiBankTagAnalysisMapperXmlTest,CcdiBankTagServiceImplTest`,对象规则与分发测试通过。
- 执行 `mvn test -pl ccdi-project -Dtest=CcdiBankTagAnalysisMapperXmlTest,BankTagRuleConfigResolverTest,CcdiBankTagServiceImplTest,CcdiBankTagServiceRiskCountRefreshTest`,第一期回归共 27 个测试全部通过。