# 外部人员预警后端实施计划

## 目标

在不改变结果总览员工主口径的前提下，新增外部人员预警查询与导出能力，使中介、客户、其他外部人员作为本方流水导入后，也能在结果总览中形成预警结果。

## 实施范围

1. 新增外部人员预警分页接口。
2. 新增外部人员预警导出接口。
3. 新增外部人员模型统计接口。
4. 新增外部人员模型命中人员分页接口。
5. 扩展涉疑交易明细筛选，支持外部人员相关流水。
6. 补充外部人员预警测试数据 SQL。

## 业务口径

1. 本方 `cret_no` 命中员工身份证号时，归入员工。
2. 本方 `cret_no` 命中员工亲属证件号时，归入员工亲属。
3. 本方 `cret_no` 未命中员工和员工亲属时，归入外部人员。
4. 外部人员 `cret_no` 命中中介库本人证件号时，主体类型为中介。
5. 外部人员 `cret_no` 命中信贷客户证件号时，主体类型为客户。
6. 其他外部人员统一显示为外部人员。
7. 外部人员只跑交易和关系类模型，不套用员工资产、负面征信、岗位部门类模型。

## 模型范围

1. `EXTERNAL_LARGE_TRANSACTION`：外部人员大额交易。
2. `EXTERNAL_ABNORMAL_TRANSACTION`：外部人员异常交易。
3. `EXTERNAL_SUSPICIOUS_GAMBLING`：外部人员可疑赌博。
4. `EXTERNAL_SUSPICIOUS_RELATION`：外部人员可疑关系。

## 数据实现

本轮采用直接聚合现有流水和标签结果的最短路径，不新增结果快照表：

1. 外部人员主体来自 `ccdi_bank_statement.cret_no`。
2. 命中模型来自 `ccdi_bank_statement_tag_result` 中外部人员模型编码。
3. 与员工或员工亲属的关系来自交易对手证件号、交易对手姓名、账户库命中结果。
4. 中介识别优先使用中介库 `person_id`，不使用姓名作为主体识别依据。

## 验证

1. 执行新增测试数据 SQL。
2. 运行 `mvn test -pl ccdi-project` 相关测试或至少编译 `ccdi-project`。
3. 启动后端后验证新增接口返回外部人员预警列表、模型统计和导出接口。
