# 项目详情风险明细统一导出后端实施记录

**日期**: 2026-03-30  
**范围**: 项目详情 - 结果总览 - 风险明细统一导出后端

## 1. 本次实施内容

本次后端完成以下改动：

- 在 `CcdiProjectOverviewController` 新增统一导出接口：
  - `POST /ccdi/project/overview/risk-details/export`
- 在 `ICcdiProjectOverviewService`、`CcdiProjectOverviewServiceImpl` 中新增统一导出主流程
- 新增 `CcdiProjectEmployeeCreditNegativeExcel`，用于 `员工负面征信信息` sheet 行导出
- 在 `CcdiProjectOverviewMapper` 与 `CcdiProjectOverviewMapper.xml` 中新增 `selectEmployeeCreditNegativeList`
- 新增 `CcdiProjectRiskDetailWorkbookExporter`，统一生成 3 个 sheet：
  - `涉疑交易明细`
  - `员工负面征信信息`
  - `异常账户人员信息`

## 2. 导出实现口径

### 2.1 涉疑交易明细

- 复用现有 `exportSuspiciousTransactions` 查询链路
- 在统一导出主流程中固定传入 `suspiciousType=ALL`
- 导出当前项目全部命中记录

### 2.2 员工负面征信信息

- 复用现有项目员工范围口径
- 新增非分页导出 SQL：`selectEmployeeCreditNegativeList`
- 只导出存在负面征信记录的员工

### 2.3 异常账户人员信息

- 本轮不开发真实查询
- 统一导出文件中保留 `异常账户人员信息` sheet
- sheet 仅输出表头：
  - `账号`
  - `开户人`
  - `银行`
  - `异常类型`
  - `异常发生时间`
  - `状态`

## 3. 测试补充

新增或扩展了以下测试：

- `CcdiProjectOverviewControllerContractTest`
  - 校验统一导出接口路径和注解
- `CcdiProjectOverviewControllerTest`
  - 校验控制器对统一导出服务的委托
- `CcdiProjectOverviewMapperSqlTest`
  - 校验员工负面征信导出 SQL 的表、关联和排序
- `CcdiProjectOverviewServiceEmployeeCreditNegativeTest`
  - 校验员工负面征信导出列表映射与项目校验
- `CcdiProjectOverviewServiceImplTest`
  - 校验统一导出主流程会查询两类真实数据并调用工作簿导出器
- `CcdiProjectRiskDetailWorkbookExporterTest`
  - 校验 3 个 sheet 的顺序和空白异常账户 sheet 表头

## 4. 验证命令

执行命令：

```bash
mvn -pl ccdi-project -am -Dsurefire.failIfNoSpecifiedTests=false \
  -Dtest=CcdiProjectOverviewControllerTest,CcdiProjectOverviewControllerContractTest,\
CcdiProjectOverviewMapperSqlTest,CcdiProjectOverviewServiceEmployeeCreditNegativeTest,\
CcdiProjectOverviewServiceImplTest,CcdiProjectRiskDetailWorkbookExporterTest test
```

验证结果：

- 42 个定向测试全部通过
- 统一导出接口、数据查询、工作簿生成链路全部通过定向验证

## 5. 结果说明

本次后端已满足设计目标：

- 提供统一导出接口
- 导出文件固定包含 3 个 sheet
- 涉疑交易与员工负面征信导出真实数据
- 异常账户 sheet 保留空白模板，不伪造数据

未完成项：

- 未开发异常账户真实查询链路
- 未进行真实浏览器下载联调，等待与前端统一按钮联调时一起验证
