87 lines
3.6 KiB
Markdown
87 lines
3.6 KiB
Markdown
|
|
# 项目详情风险总览员工列表分页后端实施记录
|
|||
|
|
|
|||
|
|
## 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`。
|
|||
|
|
- 排序规则保持不变,本次未新增任何兼容性补丁接口。
|