Files
ccdi/docs/reports/implementation/2026-03-29-project-detail-risk-overview-risk-people-pagination-backend-implementation.md

87 lines
3.6 KiB
Markdown
Raw Normal View History

# 项目详情风险总览员工列表分页后端实施记录
## 1. 实施概述
- 实施日期2026-03-29
- 实施范围:项目详情“风险总览”员工列表后端分页接口、分页 SQL、服务映射与测试回归
- 实施结果:后端代码改造完成,定向回归通过
本次实施按设计文档完成以下内容:
- 新增 `CcdiProjectRiskPeopleQueryDTO`,统一承接 `projectId/pageNum/pageSize`
-`GET /ccdi/project/overview/risk-people` 改为标准分页返回结构
- 将风险人员查询从全量列表改为 MyBatis Plus `Page` 真分页
-`risk-people` 单独固定默认分页 `1/5`
## 2. 实际修改文件
### 2.1 后端代码
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/CcdiProjectRiskPeopleQueryDTO.java`
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectRiskPeopleOverviewVO.java`
- `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`
### 2.2 测试代码
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/CcdiProjectOverviewServiceStructureTest.java`
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerTest.java`
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiProjectOverviewMapperSqlTest.java`
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectOverviewServiceImplTest.java`
## 3. 关键实施说明
### 3.1 接口契约调整
- 控制器 `getRiskPeople` 从接收单个 `projectId` 改为接收 `CcdiProjectRiskPeopleQueryDTO`
- 服务接口同步改为 `getRiskPeopleOverview(CcdiProjectRiskPeopleQueryDTO queryDTO)`
- 风险人员返回结构从 `overviewList` 迁移为:
- `rows`
- `total`
- `pageNum`
- `pageSize`
### 3.2 分页实现
- Mapper 新增 `selectRiskPeopleOverviewPage(Page<CcdiProjectEmployeeRiskAggregateVO> page, @Param("query") CcdiProjectRiskPeopleQueryDTO query)`
- SQL 数据源保持 `ccdi_project_overview_employee_result` 不变
- SQL 排序规则保持:
- `risk_level_sort asc`
- `result.model_count desc`
- `result.rule_count desc`
- `result.staff_id_card asc`
- 本次未新增补丁接口,也未调整风险口径与标签组装逻辑
### 3.3 默认值策略
- `risk-people` 未复用其他列表的 `pageSize = 10`
-`CcdiProjectOverviewServiceImpl` 中单独补充:
- `defaultRiskPeoplePageNum`
- `defaultRiskPeoplePageSize`
- 缺省与非法值统一回落为 `1/5`
## 4. 测试与验证
执行命令:
```bash
mvn -pl ccdi-project -am -Dtest=CcdiProjectOverviewServiceStructureTest,CcdiProjectOverviewControllerTest,CcdiProjectOverviewMapperSqlTest,CcdiProjectOverviewServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test
```
验证结果:
- `CcdiProjectOverviewServiceStructureTest` 通过
- `CcdiProjectOverviewControllerTest` 通过
- `CcdiProjectOverviewMapperSqlTest` 通过
- `CcdiProjectOverviewServiceImplTest` 通过
- 共 25 个测试通过,无 failure 或 error
## 5. 实施结论
- 项目详情“风险总览”员工列表后端已完成真实分页化改造。
- 接口输出已从旧 `overviewList` 收口到标准分页结构 `rows + total + pageNum + pageSize`
- 排序规则保持不变,本次未新增任何兼容性补丁接口。