# 2026-03-30 项目详情风险人员导出后端验证记录

## 设计文档

- 已核对设计文档路径：`docs/design/2026-03-30-project-detail-risk-people-export-design.md`

## 执行命令

```bash
mvn -pl ccdi-project -Dtest=CcdiProjectOverviewControllerTest test
```

## 验证结果

- 本次 Maven 验证未能进入本需求测试断言阶段，编译阶段被仓库内既有无关问题阻塞。
- 阻塞信息为：
  - `ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/excel/CcdiIdCardExcelRow.java`
  - `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImpl.java`
  - 缺少 `com.alibaba.excel` / `com.alibaba.excel.annotation.ExcelProperty`
- 因此当前无法在本地完成计划中的 `CcdiProjectOverviewControllerTest`、`CcdiProjectOverviewMapperSqlTest`、`CcdiProjectOverviewServiceImplTest` Maven 回归。

## 已完成的静态核对

- 导出接口路径已接通为 `POST /ccdi/project/overview/risk-people/export`。
- Service 已新增 `exportRiskPeopleOverview(Long projectId)`。
- 导出查询 `selectRiskPeopleOverviewList` 已与分页查询共用字段片段 `riskPeopleOverviewSelectColumns` 和排序片段 `riskPeopleOverviewOrderBy`。
- 导出字段顺序与页面表格字段保持一致：姓名、身份证号、所属部门、疑似违规数、风险等级、命中模型数、核心异常点。

## 结论

- 需求代码已补齐，但后端自动化回归仍受仓库现有 EasyExcel 编译问题影响，待该阻塞解除后需重新执行：

```bash
mvn -pl ccdi-project -Dtest=CcdiProjectOverviewControllerTest,CcdiProjectOverviewMapperSqlTest,CcdiProjectOverviewServiceImplTest test
```

## 2026-03-30 真机接口补充验证

### 执行命令

```bash
./bin/restart_java_backend.sh restart
curl -sS -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"admin123"}' \
  http://127.0.0.1:62318/login/test
curl -sS -H 'Authorization: Bearer <token>' \
  'http://127.0.0.1:62318/ccdi/project/overview/risk-people?projectId=62&pageNum=1&pageSize=5'
curl -sS -D /tmp/risk_people_export_headers.txt \
  -o /tmp/risk_people_export.xlsx \
  -H 'Authorization: Bearer <token>' \
  -X POST 'http://127.0.0.1:62318/ccdi/project/overview/risk-people/export?projectId=62'
```

### 结果

- 后端已成功重启并监听 `62318`。
- `POST /login/test` 使用 JSON 请求体可成功返回 token。
- `GET /ccdi/project/overview/risk-people?projectId=62&pageNum=1&pageSize=5` 返回 `200`，分页结果为 `total = 17`、`pageNum = 1`、`pageSize = 5`，首行数据为 `郑强`。
- `POST /ccdi/project/overview/risk-people/export?projectId=62` 返回 `200`，响应头 `Content-Type` 为 `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8`。
- 导出文件 `/tmp/risk_people_export.xlsx` 成功生成，sheet 维度为 `A1:G18`，包含 1 行表头 + 17 行数据。
- 抽样核对导出表头为：`姓名`、`身份证号`、`所属部门`、`疑似违规数`、`风险等级`、`命中模型数`、`核心异常点`。
- 抽样核对导出首行数据为 `郑强 / 180516198412041355 / 若依科技 / 23 / 高风险 / 8`，与页面列表口径一致。
- 后端日志确认导出请求命中 `selectRiskPeopleOverviewList`，并返回 `17` 条记录。
