# 结果总览模型区联动筛选后端验证记录 ## 验证范围 - 风险模型卡片接口结构与卡片统计 SQL - 风险模型人员分页接口结构与分页 SQL - 多模型 `ANY / ALL` 匹配模式 - 服务层卡片封装、分页封装与默认 `actionLabel` ## 验证命令 ```bash mvn test -pl ccdi-project -Dtest=CcdiProjectOverviewControllerContractTest mvn test -pl ccdi-project -Dtest=CcdiProjectOverviewMapperRiskModelCardsTest mvn test -pl ccdi-project -Dtest=CcdiProjectOverviewMapperRiskModelPeopleTest mvn test -pl ccdi-project -Dtest=CcdiProjectOverviewServiceImplTest mvn test -pl ccdi-project '-Dtest=CcdiProjectOverview*' ``` ## 验证结果 - 2026-03-20 11:05 执行 `CcdiProjectOverviewControllerContractTest` 红灯验证,确认缺少 `getRiskModelCards` 方法和 `CcdiProjectRiskModelPeopleQueryDTO` 类型。 - 2026-03-20 11:06 重新执行 `CcdiProjectOverviewControllerContractTest`,3 个测试全部通过。 - 2026-03-20 11:07 执行 `CcdiProjectOverviewMapperRiskModelCardsTest` 红灯验证,确认缺少卡片 mapper 方法与统计 SQL。 - 2026-03-20 11:08 重新执行 `CcdiProjectOverviewMapperRiskModelCardsTest`,2 个测试全部通过。 - 2026-03-20 11:11 执行 `CcdiProjectOverviewMapperRiskModelPeopleTest` 红灯验证,确认缺少分页 mapper 方法与 `ANY / ALL` SQL 片段。 - 2026-03-20 11:12 修正测试断言后重新执行 `CcdiProjectOverviewMapperRiskModelPeopleTest`,2 个测试全部通过。 - 2026-03-20 11:14 执行 `CcdiProjectOverviewServiceImplTest` 红灯验证,确认服务层尚未完成项目校验、分页封装和默认 `ANY` 逻辑。 - 2026-03-20 11:15 重新执行 `CcdiProjectOverviewServiceImplTest`,9 个测试全部通过。 - 2026-03-20 11:16 执行结果总览相关总体验证命令 `mvn test -pl ccdi-project '-Dtest=CcdiProjectOverview*'`,共 22 个测试全部通过,0 failure,0 error。 - 2026-03-20 11:59 根据线上异常日志补充 `CcdiProjectOverviewMapperRiskModelPeopleTest` 红灯断言,确认 `selectRiskModelPeoplePage` 缺少 `query.projectId -> projectId` 绑定桥接。 - 2026-03-20 11:59 在 `selectRiskModelPeoplePage` 增加 `` 后重新执行 `CcdiProjectOverviewMapperRiskModelPeopleTest`,2 个测试全部通过。 - 2026-03-20 12:00 再次执行结果总览相关总体验证命令 `mvn test -pl ccdi-project '-Dtest=CcdiProjectOverview*'`,共 22 个测试全部通过,0 failure,0 error。 ## 结论 - 结果总览模型区后端已补齐两个新接口:模型卡片统计与模型命中人员分页。 - 人员分页查询已覆盖多模型 `ANY / ALL`、姓名/工号关键字、部门筛选,以及筛选上下文内的 `modelNames`/`hitTagList` 聚合。 - 风险模型人员分页 SQL 已补齐 `projectId` 绑定桥接,避免公共 SQL 片段在分页查询场景下触发 MyBatis `Parameter 'projectId' not found` 异常。 - 服务层已统一完成项目存在性校验、空列表封装和“查看详情”动作文案赋值。 - 本轮验证仅执行 Maven 单元测试,未启动额外前后端进程,因此无需执行进程清理。