Files
ccdi/docs/reports/implementation/2026-03-20-model-info-xlsx-update-record.md

6.7 KiB
Raw Blame History

模型信息 XLSX 更新实施记录

修改目标

  • 直接更新 assets/模型信息.xlsx
  • 按“已有真实 SQL 或真实结果产出逻辑才算已实现”的口径,区分跳过模型和待补充模型
  • 对未实现模型新增 SQL 可执行性结论列,并补齐可从项目和数据库明确推出的缺失字段

判定口径

  • 已实现并跳过:
    • 仅认定 CcdiBankTagServiceImpl 已接入且 CcdiBankTagAnalysisMapper.xml 中存在真实查询逻辑的模型
    • 本次跳过的是大额交易前 8 条规则:
      • HOUSE_OR_CAR_EXPENSE
      • TAX_EXPENSE
      • SINGLE_LARGE_INCOME
      • CUMULATIVE_INCOME
      • ANNUAL_TURNOVER
      • LARGE_CASH_DEPOSIT
      • FREQUENT_CASH_DEPOSIT
      • LARGE_TRANSFER
  • 未实现并处理:
    • 虽然项目已挂规则入口,但 CcdiBankTagAnalysisMapper.xml 中仍是 where 1 = 0 的占位 SQL
    • 原始 SQL 引用了当前环境不存在的外部库表、字段或不兼容语法
    • 原始 SQL 为空

XLSX 修改内容

  • Sheet1 末尾新增两列:
    • 当前环境是否可执行SQL
    • 当前缺少内容
  • 对未实现模型补齐了以下信息:
    • 指标英文名统一补到当前项目规则编码风格,如 ABNORMAL_CUSTOMER_TRANSACTIONWITHDRAW_AMTSALARY_UNUSED
    • 少量技术口径按当前库表字段修正为真实表结构描述,例如:
      • 房产相关规则由历史描述中的 ccdi_family_liability 调整为当前实际存在的 ccdi_asset_info
      • 采购规则技术口径改为基于 ccdi_purchase_transaction.actual_amount
    • 将 SQL 片段中引用的交易时间字段统一由 trx_time 修正为当前表结构实际字段 TRX_DATE
    • 将资产信息 SQL 中引用的更新时间字段统一由 updated_at 修正为当前表结构实际字段 update_time
    • 将“供应商集中度”原始 SQL 中的 WITH 公共表达式改写为当前 MySQL 可执行的派生表写法
    • 将剩余未实现 SQL 中缺少派生表别名的子查询统一补齐别名
    • 将剩余 SQL 中不兼容 MySQL 的 add_months(current_date(), -12) 统一替换为 DATE_SUB(CURDATE(), INTERVAL 12 MONTH)
    • $$$$ 类占位符按 ccdi_model_paramBankTagRuleConfigResolver 核对为模型参数占位,并补齐对应参数编码说明
    • 已确认匹配的参数编码包括:
      • LARGE_CASH_DEPOSIT
      • FREQUENT_TRANSFER
      • MULTI_PARTY_AMT_MIN / MULTI_PARTY_AMT_MAX
      • MONTHLY_FIXED_INCOME
      • FIXED_COUNTERPARTY_TRANSFER_MIN / FIXED_COUNTERPARTY_TRANSFER_MAX
      • SINGLE_PURCHASE_AMOUNT
      • SINGLE_SETTLEMENT_AMOUNT
      • STOCK_TFR_LARGE
    • 对缺少原始 SQL 的行保留原业务口径同时在新增列中明确写明“缺少原始SQL”

SQL 可执行性结论

  • 判定标准:
    • 以当前 ccdi 库真实表结构为准
    • 以当前 MySQL 能力为准
    • 不假设外部 schema、外部表和临时表已经准备好
    • PROJECT_ID 视为后续改造成 MyBatis 传参,不单独作为不可执行原因
  • 本次结论概况:
    • 标记为 的 19 行:
      • 2.2 低收入亲属大额交易 / LOW_INCOME_RELATIVE_LARGE_TRANSACTION
      • 3.1 疑似赌博交易 / MULTI_PARTY_AMT_MIN / MULTI_PARTY_AMT_MAX
      • 3.2 疑似敏感交易 / GAMBLING_SENSITIVE_KEYWORD
      • 4 可疑关系 / SPECIAL_AMOUNT_TRANSACTION
      • 5.1 疑似兼职 / MONTHLY_FIXED_INCOME
      • 5.2 疑似兼职 / FIXED_COUNTERPARTY_TRANSFER_MIN / FIXED_COUNTERPARTY_TRANSFER_MAX
      • 5.3 疑似兼职关键词收入 / SUSPICIOUS_INCOME_KEYWORD
      • 6.1 可疑财产 / HOUSE_REGISTRATION_MISMATCH
      • 6.2 可疑财产 / PROPERTY_FEE_REGISTRATION_MISMATCH
      • 6.3 可疑财产 / TAX_ASSET_REGISTRATION_MISMATCH
      • 7 可疑外汇交易-购汇 / SINGLE_PURCHASE_AMOUNT
      • 7 可疑外汇交易-结汇 / SINGLE_SETTLEMENT_AMOUNT
      • 9.1 可疑采购 / LARGE_PURCHASE_TRANSACTION
      • 9.2 供应商集中度 / SUPPLIER_CONCENTRATION
      • 10.1 可疑银证大额转账 / STOCK_TFR_LARGE
      • 10.2 微信支付宝频繁提现 / WITHDRAW_CNT
      • 10.3 工资快速转出 / SALARY_QUICK_TRANSFER
      • 异常行为-工资无使用记录 / SALARY_UNUSED
      • 10.4 大额炒股 / LARGE_STOCK_TRADING
    • 标记为 的未实现行,主要原因包括:
      • 缺少外部表,如 odsdb.blfmconfsjfx_pro.bdfmhqaa_orcxdzx.*
      • 原始 SQL 为空
    • 码值补正依据:
      • relation_type 已通过 sys_dict_data.dict_type = 'ccdi_relation_type'ccdi_staff_fmy_relation 现网样例值确认,当前环境实际存储值为 配偶子女 等中文值,因此 4 可疑关系 改为 not in ('配偶','子女')
      • asset_status 已通过 sys_dict_data.dict_type = 'ccdi_asset_status' 确认为中文值,当前环境使用 正常
      • assetMainTypeassetSubType 在前端页面中为自由录入文本,不走字典;结合 ccdi_asset_info 当前样例数据,房产记录使用 房产 / 住宅 / 正常,因此 6.16.26.3 改为字符串字面量并判定为可执行

验证记录

  • 已执行工作簿结构校验,确认当前工作簿为 14 列,新增的 当前环境是否可执行SQL当前缺少内容 两列仍在表尾
  • 已重新核对“码值不明确”的 4 行,确认 SPECIAL_AMOUNT_TRANSACTIONHOUSE_REGISTRATION_MISMATCHPROPERTY_FEE_REGISTRATION_MISMATCHTAX_ASSET_REGISTRATION_MISMATCH 当前均为 是 /
  • 已再次扫描整表,确认 当前缺少内容 中已不存在“码值”“枚举”“引号”“中文常量”等剩余原因
  • 已抽样回读以下关键行,确认新增列和补齐字段已写入:
    • 第 10 行:异常交易 2.1
    • 第 12 行:疑似赌博 3.1
    • 第 15 行:可疑兼职 5.1
    • 第 18 行:可疑财产 6.1
    • 第 21 行:可疑财产 收入资产不符
    • 第 24 行:可疑外汇交易 跨境汇款
    • 第 26 行:可疑采购 9.1
    • 第 27 行:可疑采购 9.2
    • 第 30 行:异常行为 微信支付宝提现超额
    • 第 32 行:异常行为 工资无使用记录
    • 第 34 行:异常行为 疑似代理他人账户

本次涉及文件