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

41 lines
1.8 KiB
Markdown

# 涉疑交易无外部人员短路实施记录
## 修改内容
- 为涉疑交易查询 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`
## 备注
本次修复针对无外部人员项目的性能短路,避免为了计算“没有外部人员”而执行外部人员预警复杂关联。