# 结果总览项目分析弹窗真实详情后端实施记录

**日期**: 2026-03-25  
**模块**: 初核项目详情 - 结果总览

## 本次实现

- 在结果总览控制器下新增详情接口 `GET /ccdi/project/overview/person-analysis/detail`
- 新增详情查询 DTO 与 VO 结构，统一承载：
  - 人员基础信息
  - 异常明细分组
- 在结果总览 Mapper 中新增 3 个详情查询入口：
  - `selectPersonAnalysisBasicInfo`
  - `selectPersonAnalysisStatementRows`
  - `selectPersonAnalysisObjectRows`
- 在服务层新增详情组装逻辑：
  - 基础信息查询
  - `BANK_STATEMENT` 分组组装
  - `OBJECT` 分组组装
  - 流水命中标签回填

## 主要文件

- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java`
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiProjectOverviewService.java`
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectOverviewServiceImpl.java`
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectOverviewMapper.java`
- `ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml`

## 实现说明

### 1. 接口边界

- 详情能力继续收敛在结果总览域内，没有新建平行控制器
- 控制器返回格式保持 `AjaxResult.success(data)` 一致

### 2. 基础信息来源

- 风险等级、工号、项目范围仍以 `ccdi_project_overview_employee_result` 为结果总览口径
- 姓名、手机号、部门信息通过员工表与部门表补齐

### 3. 异常明细组装

- `BANK_STATEMENT` 分组直接复用流水详情字段口径
- `OBJECT` 分组统一输出对象摘要记录
- 服务层在返回前补齐：
  - 流水命中标签
  - 对象记录默认空列表字段，避免前端拿到 `null`

## 验证情况

- 已执行结果总览相关后端聚焦回归
- 详情接口契约、服务层、Mapper SQL 和既有模型区回归全部通过
- 详见：
  - `docs/tests/records/2026-03-25-results-overview-project-analysis-dialog-real-detail-backend-verification.md`
