# 项目总览标签按模型着色实施记录

## 本次改动

- 后端扩展结果总览标签对象 [`CcdiProjectRiskHitTagVO`](/Users/wkc/Desktop/ccdi/ccdi/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectRiskHitTagVO)，新增 `modelCode`、`modelName` 字段，供前端按模型识别标签归属。
- 后端扩展风险人员总览项 [`CcdiProjectRiskPeopleOverviewItemVO`](/Users/wkc/Desktop/ccdi/ccdi/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectRiskPeopleOverviewItemVO)，新增 `riskPointTagList`，让“核心异常点”不再只依赖纯文本拆分。
- 调整结果总览 Mapper 与服务：
  - [`CcdiProjectOverviewMapper.xml`](/Users/wkc/Desktop/ccdi/ccdi/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml) 的标签查询改为返回 `model_code`、`model_name`，并按 `modelCode + ruleCode` 分组，避免跨模型标签被合并。
  - [`CcdiProjectOverviewMapper.java`](/Users/wkc/Desktop/ccdi/ccdi/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectOverviewMapper.java) 新增 `selectRiskHitTagsByScope` 方法。
  - [`CcdiProjectOverviewServiceImpl.java`](/Users/wkc/Desktop/ccdi/ccdi/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectOverviewServiceImpl.java) 在风险人员总览映射时补充 `riskPointTagList`。
- 调整结果总览前端联动：
  - [`PreliminaryCheck.vue`](/Users/wkc/Desktop/ccdi/ccdi/ruoyi-ui/src/views/ccdiProject/components/detail/PreliminaryCheck.vue) 维护共享的 `selectedModelCodes`，并把模型区选中状态同步给风险人员区。
  - [`RiskModelSection.vue`](/Users/wkc/Desktop/ccdi/ccdi/ruoyi-ui/src/views/ccdiProject/components/detail/RiskModelSection.vue) 的“异常标签”列改为按模型判断颜色：已选模型标签为红色，未选中标签保持无色。
  - [`RiskPeopleSection.vue`](/Users/wkc/Desktop/ccdi/ccdi/ruoyi-ui/src/views/ccdiProject/components/detail/RiskPeopleSection.vue) 的“核心异常点”标签改为按共享选中模型着色，未选中时保持无色。
  - [`preliminaryCheck.mock.js`](/Users/wkc/Desktop/ccdi/ccdi/ruoyi-ui/src/views/ccdiProject/components/detail/preliminaryCheck.mock.js) 补齐标签示例数据中的 `modelCode`、`modelName`。

## 实现说明

- 选中模型只影响标签颜色，不再裁掉同一人员的其他模型标签，保证“选中红色、未选中无色”的对比能真实展示。
- 风险模型人员列表的行筛选逻辑保持不变，仍由现有 `selectedModelCodes + matchMode` 控制。
- 当项目切换为空、重新加载或加载失败时，前端会主动清空共享的模型选中状态，避免旧状态污染新页面。

## 验证情况

### 后端

- `mvn test -pl ccdi-project -Dtest=CcdiProjectOverviewServiceImplTest,CcdiProjectOverviewControllerTest,CcdiProjectOverviewMapperRiskModelPeopleTest`

### 前端

- `node ruoyi-ui/tests/unit/project-overview-api.test.js`
- `node ruoyi-ui/tests/unit/preliminary-check-api-integration.test.js`
- `node ruoyi-ui/tests/unit/preliminary-check-states.test.js`
- `node ruoyi-ui/tests/unit/preliminary-check-summary-and-people.test.js`
- `node ruoyi-ui/tests/unit/preliminary-check-risk-people-binding.test.js`
- `node ruoyi-ui/tests/unit/preliminary-check-risk-people-hit-tags.test.js`
- `node ruoyi-ui/tests/unit/preliminary-check-model-linkage-flow.test.js`
- `node ruoyi-ui/tests/unit/preliminary-check-model-multiselect.test.js`
- `node ruoyi-ui/tests/unit/preliminary-check-model-table-columns.test.js`

## 未包含内容

- 未改动项目详情页 [`DetailQuery.vue`](/Users/wkc/Desktop/ccdi/ccdi/ruoyi-ui/src/views/ccdiProject/components/detail/DetailQuery.vue) 的异常标签展示规则。
- 未新增新的模型颜色体系，当前仅按“已选模型红色、未选模型无色”执行。
