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 Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目详情风险总览员工列表分页后端实施记录
## 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`
- 排序规则保持不变,本次未新增任何兼容性补丁接口。