# 风险明细员工负面征信实施记录

## 本次改动

### 后端

- 新增项目员工负面征信查询 DTO：
  - `ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/CcdiProjectEmployeeCreditNegativeQueryDTO.java`
- 新增项目员工负面征信分页 VO：
  - `ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectEmployeeCreditNegativeItemVO.java`
  - `ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectEmployeeCreditNegativePageVO.java`
- 在结果总览链路新增接口：
  - `GET /ccdi/project/overview/employee-credit-negative`
- 在 `CcdiProjectOverviewMapper.xml` 新增 `selectEmployeeCreditNegativePage`
- 查询口径固定为：
  - 员工范围来自 `ccdi_project_overview_employee_result`
  - 仅关联 `ccdi_credit_negative_info`
  - 不接入 `ccdi_debts_info`
  - 排序按 `query_date desc, person_id asc`

### 前端

- 在 `ruoyi-ui/src/api/ccdi/projectOverview.js` 新增 `getOverviewEmployeeCreditNegative`
- 在 `PreliminaryCheck.vue` 初次加载时并行拉取员工负面征信初始数据
- 在 `preliminaryCheck.mock.js` 补齐员工负面征信 mock 结构与归一化函数
- 在 `RiskDetailSection.vue` 新增 `员工负面征信信息` 区块
- 新区块支持独立分页、空态和金额展示
- 不新增详情弹窗，不做展开，不混入负债明细

## 测试与验证

### 后端验证

执行命令：

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

结果：

- 通过

### 前端验证

执行命令：

```bash
node ruoyi-ui/tests/unit/project-overview-api.test.js
node ruoyi-ui/tests/unit/preliminary-check-api-integration.test.js
node ruoyi-ui/tests/unit/preliminary-check-credit-negative-load.test.js
node ruoyi-ui/tests/unit/risk-detail-employee-credit-negative-layout.test.js
node ruoyi-ui/tests/unit/risk-detail-employee-credit-negative-pagination.test.js
node ruoyi-ui/tests/unit/risk-detail-suspicious-transaction-layout.test.js
node ruoyi-ui/tests/unit/risk-detail-suspicious-transaction-detail-dialog.test.js
```

结果：

- 通过

### 构建验证

执行命令：

```bash
cd ruoyi-ui && npm run build:prod
```

结果：

- 构建成功
- 存在仓库既有 bundle 体积告警，但无新增编译错误

## 备注

- 本次未启动前端 dev server 或后端本地服务，因此无需额外清理测试进程
- `.DS_Store` 与 `.superpowers/` 临时文件未纳入本次提交
