Files
ccdi/docs/tests/records/2026-03-20-results-overview-risk-model-linkage-backend-verification.md

46 lines
3.8 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.
# 结果总览模型区联动筛选后端验证记录
## 验证范围
- 风险模型卡片接口结构与卡片统计 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 failure0 error。
- 2026-03-20 11:59 根据线上异常日志补充 `CcdiProjectOverviewMapperRiskModelPeopleTest` 红灯断言,确认 `selectRiskModelPeoplePage` 缺少 `query.projectId -> projectId` 绑定桥接。
- 2026-03-20 11:59 在 `selectRiskModelPeoplePage` 增加 `<bind name="projectId" value="query.projectId"/>` 后重新执行 `CcdiProjectOverviewMapperRiskModelPeopleTest`2 个测试全部通过。
- 2026-03-20 12:00 再次执行结果总览相关总体验证命令 `mvn test -pl ccdi-project '-Dtest=CcdiProjectOverview*'`,共 22 个测试全部通过0 failure0 error。
- 2026-03-20 12:05 根据线上异常日志补充 `CcdiProjectOverviewMapperRiskModelPeopleTest` 红灯断言,确认 `selectRiskModelNamesByScope` 存在 `distinct + order by 非 select 列` 的 MySQL 兼容性问题。
- 2026-03-20 12:05 将 `selectRiskModelNamesByScope` 调整为 `group by scoped.model_code, scoped.model_name` 后重新执行 `CcdiProjectOverviewMapperRiskModelPeopleTest`2 个测试全部通过。
- 2026-03-20 12:05 再次执行结果总览相关总体验证命令 `mvn test -pl ccdi-project '-Dtest=CcdiProjectOverview*'`,共 22 个测试全部通过0 failure0 error。
## 结论
- 结果总览模型区后端已补齐两个新接口:模型卡片统计与模型命中人员分页。
- 人员分页查询已覆盖多模型 `ANY / ALL`、姓名/工号关键字、部门筛选,以及筛选上下文内的 `modelNames`/`hitTagList` 聚合。
- 风险模型人员分页 SQL 已补齐 `projectId` 绑定桥接,避免公共 SQL 片段在分页查询场景下触发 MyBatis `Parameter 'projectId' not found` 异常。
- 风险模型名称子查询已移除 `distinct + 非 select 列排序` 组合,避免 MySQL 8 在 `ONLY_FULL_GROUP_BY` 兼容校验下抛出 3065 异常。
- 服务层已统一完成项目存在性校验、空列表封装和“查看详情”动作文案赋值。
- 本轮验证仅执行 Maven 单元测试,未启动额外前后端进程,因此无需执行进程清理。