3.7 KiB
3.7 KiB
与客户之间非正常资金往来实施记录
本次修改
- 调整
ABNORMAL_CUSTOMER_TRANSACTION模型执行 SQL。 - 调整“涉疑交易明细 -> 名单库命中” SQL。
- 调整涉疑交易明细前端标签展示。
- 补充 SQL 口径测试,不改表结构。
模型 SQL 口径
- 位置:
ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagAnalysisMapper.xml - 主体范围:员工本人、
ccdi_staff_fmy_relation.status = 1的有效亲属。 - 金额口径:
GREATEST(IFNULL(amount_dr, 0), IFNULL(amount_cr, 0)) > 1000。 - 信贷客户命中:对手方账号命中
ccdi_account_info.owner_type = 'CREDIT_CUSTOMER'。 - 中介账号命中:对手方账号命中
ccdi_account_info.owner_type = 'INTERMEDIARY'。 - 中介企业命中:对手方名称精确命中
ccdi_enterprise_base_info.enterprise_name,且企业来源为中介。 - 中介人员精确命中:对手方名称精确命中
ccdi_biz_intermediary.name。 - 中介人员模糊命中:对手方名称包含
ccdi_biz_intermediary.name,仅限bank in ('ALIPAY', 'WECHAT')。 - 明确不再使用对手方证件号、对手方统一社会信用代码命中。
名单库命中口径
- 位置:
ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml - 信贷客户账号命中时,
nameListHitType返回“信贷客户”。 - 中介账号、人员名称、企业名称命中时,
nameListHitType返回“中介”。 - 名单库命中同样要求交易金额大于 1000。
- 涉疑交易明细和 PDF 导出按
bank_statement_id聚合,避免同一流水因“模型规则命中”和“名单库命中”重复展示。
前端展示
- 位置:
ruoyi-ui/src/views/ccdiProject/components/detail/RiskDetailSection.vue ABNORMAL_CUSTOMER_TRANSACTION在异常标签中优先展示。- 如果同一流水名单库类型为“中介”,该标签展示为“疑似与中介往来”。
- 如果同一流水名单库类型为“信贷客户”,该标签展示为“与信贷客户之间非正常资金往来”。
- 如果没有名单库类型,兜底展示为“与客户之间非正常资金往来”。
- 不再把“中介/信贷客户”追加成额外异常标签,避免重复展示。
报告展示
- 结果总览 PDF 报告中的涉疑交易明细表同步使用上述标签展示口径。
- 同一条流水只替换
ABNORMAL_CUSTOMER_TRANSACTION的展示文案,不额外追加“中介/信贷客户”标签。
影响文件
ccdi-project/src/main/resources/mapper/ccdi/project/CcdiBankTagAnalysisMapper.xmlccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xmlccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectSuspiciousTransactionItemVO.javaccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiBankTagAnalysisMapperXmlTest.javaccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiProjectOverviewMapperSqlTest.javaruoyi-ui/src/views/ccdiProject/components/detail/RiskDetailSection.vuedocs/reports/implementation/2026-05-21-abnormal-customer-transaction-implementation.md
验证情况
mvn -pl ccdi-project -am -DskipTests compile通过。mvn -pl ccdi-project "-Dtest=CcdiBankTagAnalysisMapperXmlTest,CcdiProjectOverviewMapperSqlTest" test通过,21 个测试。- 测试覆盖的伪造场景口径:
- 信贷客户账号命中。
- 中介账号命中。
- 中介人员名称精确命中。
- 中介人员名称模糊命中仅限
ALIPAY/WECHAT。 - 名单库命中金额门槛大于 1000。
- 涉疑交易明细按
bank_statement_id聚合去重。 - 涉疑交易明细和 PDF 报告按名单库类型细分展示异常标签,且不重复展示。