# 涉疑交易无外部人员短路后端实施计划

## 背景

生产结果总览首屏中，`/ccdi/project/overview/suspicious-transactions` 在无外部人员项目上可能超过前端 10 秒超时。该接口的汇总 SQL 无条件拼接外部人员预警分支，导致只上传员工数据的项目仍会执行外部人员复杂关联。

## 目标

- 保持涉疑交易原有口径不变。
- 当项目不存在外部人员主体时，跳过涉疑交易中的外部人员预警分支。
- 当查询类型为 `EXTERNAL_PERSON` 且项目不存在外部人员主体时，直接返回空结果。

## 实施步骤

1. 在 `CcdiProjectSuspiciousTransactionQueryDTO` 增加内部开关 `includeExternalPerson`。
2. 在 `CcdiProjectOverviewMapper` 增加轻量外部人员主体存在性判断。
3. 在 `CcdiProjectOverviewMapper.xml` 中将 `externalSuspiciousTransactionSql` 的 `union all` 改为按 `includeExternalPerson` 条件拼接。
4. 在 `CcdiProjectOverviewServiceImpl` 中按 `suspiciousType` 设置外部人员分支开关；`EXTERNAL_PERSON` 无主体时直接返回空分页或空导出列表。
5. 补充 Mapper SQL 结构测试和 Service 行为测试。

## 验证

- 运行涉疑交易相关单测。
- 运行结果总览 Mapper SQL 结构测试。
- 验证无外部人员项目不再执行涉疑交易外部人员分支。
