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

3.6 KiB
Raw Blame 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. 测试与验证

执行命令:

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
  • 排序规则保持不变,本次未新增任何兼容性补丁接口。