docs(projects): managerScore 过滤 P0 修复同步 (88df386)

- §修复记录 加 2026-08-20 条目 (managerScore + commit SHA)
- §2 筛选项表:  未生效 → line 188 manager_score = ? (BigDecimal)
- §2 后跟的 ⚠️ 重要 bug 提示 →  已修 + 注明 selectSponsor/ExecutorList 故意不加
- §8.1 过滤功能差异表: 🐛 后端已生效
- §10 待修复 #3: 标记 ~~删除线~~ + 已修
This commit is contained in:
郭庆泰
2026-08-20 22:43:04 +08:00
parent 88df386e76
commit 84f7aa56d2
+5 -5
View File
@@ -18,6 +18,7 @@
| 2026-08-18 | §7.1 / §10 #12 | **DB: biz_project 加索引 `idx_sponsor_admin_user_id`**。ALTER TABLE biz_project ADD INDEX idx_sponsor_admin_user_id (sponsor_admin_user_id)。EXPLAIN 验证: type=ref, Extra=Using index。 |
| 2026-08-18 | §7.1 / §10 #13 | **DB: biz_project 加复合索引 `idx_start_end_time (start_time, end_time)`**。比 2 个单列索引更适合 `WHERE start_time >= ? AND end_time <= ?` 的范围查询。EXPLAIN 验证: type=range, Extra=Using where; Using index。 |
| 2026-08-18 | §7.2 / §10 #14 | **DB: biz_project_assign 加 UNIQUE `uk_project_unit (project_id, execution_unit_id)`**。先查 11 行 0 重复, 安全。防重复分配。注意: `biz_project_assign`**项目→executor (执行方)** 分配表, 不是 sponsor; sponsor 走独立的 `biz_project_sponsor_assign`。 |
| 2026-08-20 | §2 / §8.1 / §10 #3 | **P0 修复: selectList 补 managerScore 过滤** (88df386)。前端评价得分筛选透传到后端但 mapper 没读, 形同虚设。加 `<if test="managerScore != null">and manager_score = #{managerScore}</if>`, 跟 INSERT/UPDATE 同款 BigDecimal null check。EXPLAIN 验证 12 行数据走 PRIMARY Backward scan, 命中 1 行 manager_score=5。 |
---
@@ -76,10 +77,9 @@
| 项目时间(起/止) | `el-date-picker` type="date" + `value-format="YYYY-MM-DD HH:mm:ss"` | `q.startTime/endTime` | line 93-94 `start_time >= ? AND end_time <= ?` (sponsorList); line 134-135 同 | biz_project.start_time/end_time | — | ✅ 原型有 |
| 是否结题 | `el-select` | `q.isFinished` | line 179 `is_finished = ?` | biz_project.is_finished | **写死**: 已结题→'1' / 未结题→'0' | ✅ 原型有 |
| 是否结算 | `el-select` | `q.isSettled` | line 180 `is_settled = ?` | biz_project.is_settled | **写死**: 已结算→'Y' / 未结算→'N' | ⚠️ 原型**无** (实现新增) |
| 评价得分 | `el-input` | `q.managerScore` | **未生效** — 后端 `selectList``managerScore` 过滤 | — | — | ✅ 原型有 |
| 评价得分 | `el-input` | `q.managerScore` | line 188 `manager_score = ?` (BigDecimal, 跟 INSERT/UPDATE 同款 `!= null` 检查) | biz_project.manager_score | — | ✅ 原型有 |
> ⚠️ **重要 bug**:`managerScore` 筛选项前端展示 + 前端 reset 也保留字段,但**后端 selectList 完全没读这个参数**,筛选无效
> 另见 `selectSponsorList` 和 `selectExecutorList` 也都没有 `managerScore` 过滤
> **已修 (88df386)**:`managerScore` 过滤已加 selectList; `selectSponsorList` / `selectExecutorList` 故意不加 (评分字段与该角色无关,manager 端独有)
---
@@ -342,7 +342,7 @@ CREATE TABLE `biz_project` (
| 导出 (项目) | 🐛 **stub**`exportProjects``ElMessage.info('开发中')` |
| 项目评价导出 | 🐛 **stub**`exportEval``ElMessage.info('开发中')` |
| 已报名专家信息导出 | ✅ **实装**`exportExperts` POST `executionIntent/export` |
| `managerScore` 评价得分筛选 | 🐛 **后端生效** 前端有字段,后端 selectList 无此过滤 |
| `managerScore` 评价得分筛选 | **后端生效** — selectList `<if test="managerScore != null">and manager_score = #{managerScore}</if>` (88df386) |
### 8.3 文案/标签差异
@@ -429,7 +429,7 @@ ALTER TABLE biz_project_assign ADD INDEX idx_assign_exec_user_project (exec_user
|---|---|---|---|---|
| 1 | 单条"开通"误改 `is_finished='0'` 而非 `end_time` | `Projects.vue:398` | 改 `endTime` 而非 `isFinished` | **P0** |
| 2 | `confirmDeleteAnn` 引用了不存在的字段 `noticeUrl/scheduleUrl/isPublished` | `Projects.vue:411-419` + `BizProject.java:113-122` | 要么补 DDL,要么删实体字段;mapper 不更新这些字段导致功能部分失效 | **P0** |
| 3 | `managerScore` 筛选前端有,后端 selectList 不读 | `BizProjectMapper.xml:141-183` (selectList) | 加 `<if test="managerScore != null">` 过滤 | **P0** |
| 3 | ~~`managerScore` 筛选前端有,后端 selectList 不读~~ | ~~`BizProjectMapper.xml:141-183` (selectList)~~ | ✅ 已修 (88df386,见 §修复记录) | — |
| 4 | 下拉菜单 `divided` 冗余 (activate/delAnn 双分隔线) | `Projects.vue:100-101` | 删 `activate``divided` | **P1** |
| 5 | ~~生产代码残留 console.info/error (4 处)~~ | ~~`Projects.vue:299, 302, 306, 875`~~ | ✅ 已修 (见 §修复记录) | — |
| 6 | 评分默认值不一致 | `Projects.vue:501 vs 513` | 统一为 0 或 5 | **P2** |