# 涉疑交易无外部人员短路实施记录 ## 修改内容 - 为涉疑交易查询 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 接口签名不一致报错,未进入测试阶段: ```bash mvn -pl ccdi-project "-Dtest=CcdiProjectOverviewServiceSuspiciousTransactionTest,CcdiProjectOverviewMapperSqlTest" test ``` - 已使用 `-am` 重新构建依赖模块并执行定向单测: ```bash mvn -pl ccdi-project -am "-Dtest=CcdiProjectOverviewServiceSuspiciousTransactionTest,CcdiProjectOverviewMapperSqlTest" "-Dsurefire.failIfNoSpecifiedTests=false" test ``` - 结果:通过,`Tests run: 14, Failures: 0, Errors: 0, Skipped: 0`。 - 覆盖测试: - `CcdiProjectOverviewServiceSuspiciousTransactionTest` - `CcdiProjectOverviewMapperSqlTest` ## 备注 本次修复针对无外部人员项目的性能短路,避免为了计算“没有外部人员”而执行外部人员预警复杂关联。