Files
ccdi/docs/reports/implementation/2026-07-16-suspicious-transactions-external-short-circuit-implementation.md

1.8 KiB

涉疑交易无外部人员短路实施记录

修改内容

  • 为涉疑交易查询 DTO 增加 includeExternalPerson 内部开关。
  • 新增 selectExternalPersonSubjectExistsByProjectId,使用 limit 1 轻量判断项目是否存在外部人员主体。
  • 将涉疑交易 SQL 中外部人员预警 union all 改为按 includeExternalPerson 条件拼接。
  • 在涉疑交易分页和导出服务入口设置外部人员分支开关;EXTERNAL_PERSON 且无外部人员主体时直接返回空结果。
  • 补充 Service 单测和 Mapper SQL 结构测试。

影响范围

  • 影响接口:
    • GET /ccdi/project/overview/suspicious-transactions
    • 涉疑交易导出相关服务调用
  • 不改变员工本人、员工亲属、模型规则、名单命中等涉疑交易原有查询口径。
  • 不修改前端逻辑和数据库表结构。

验证情况

  • 首次执行以下命令时,未带 -am 编译依赖模块,ccdi-project 使用本地旧版 ccdi-lsfx 依赖,导致编译阶段出现 LSFX 接口签名不一致报错,未进入测试阶段:
mvn -pl ccdi-project "-Dtest=CcdiProjectOverviewServiceSuspiciousTransactionTest,CcdiProjectOverviewMapperSqlTest" test
  • 已使用 -am 重新构建依赖模块并执行定向单测:
mvn -pl ccdi-project -am "-Dtest=CcdiProjectOverviewServiceSuspiciousTransactionTest,CcdiProjectOverviewMapperSqlTest" "-Dsurefire.failIfNoSpecifiedTests=false" test
  • 结果:通过,Tests run: 14, Failures: 0, Errors: 0, Skipped: 0
  • 覆盖测试:
    • CcdiProjectOverviewServiceSuspiciousTransactionTest
    • CcdiProjectOverviewMapperSqlTest

备注

本次修复针对无外部人员项目的性能短路,避免为了计算“没有外部人员”而执行外部人员预警复杂关联。