docs(manager_meetings): 第四轮修复记录 (P0#1 mapper 筛选), 待修复表 #1 标 ✅, 记 DB stage 数据不一致
This commit is contained in:
@@ -33,6 +33,16 @@
|
|||||||
| `.batch-bar` 属性顺序跟 People.vue 不一致 | `Meetings.vue:323` 改成 `margin-bottom: 12px; display: flex; gap: 8px; align-items: center;` (margin 提前) |
|
| `.batch-bar` 属性顺序跟 People.vue 不一致 | `Meetings.vue:323` 改成 `margin-bottom: 12px; display: flex; gap: 8px; align-items: center;` (margin 提前) |
|
||||||
| 自查 (style-alignment 验证清单) | ✅ 1 层 page-card / ✅ breadcrumb / ✅ 无 desc / ✅ 无 h2 page-title / ✅ filter-form/batch-bar/pager 三 class / ✅ 蓝色全用 `var(--brand-primary)` 无 #1890ff / ✅ 边框全 #f0f0f0 无 #ebeef5 / ✅ 无 `:deep(.el-button--primary)` 大段覆盖 / ✅ el-pagination 在 .pager / ✅ el-form-item label 无冒号 / ✅ `<script>` 业务逻辑 100% 保留 (load/reset/view/edit/sub/copy/submit/batch 全在) |
|
| 自查 (style-alignment 验证清单) | ✅ 1 层 page-card / ✅ breadcrumb / ✅ 无 desc / ✅ 无 h2 page-title / ✅ filter-form/batch-bar/pager 三 class / ✅ 蓝色全用 `var(--brand-primary)` 无 #1890ff / ✅ 边框全 #f0f0f0 无 #ebeef5 / ✅ 无 `:deep(.el-button--primary)` 大段覆盖 / ✅ el-pagination 在 .pager / ✅ el-form-item label 无冒号 / ✅ `<script>` 业务逻辑 100% 保留 (load/reset/view/edit/sub/copy/submit/batch 全在) |
|
||||||
|
|
||||||
|
### 第四轮: P0#1 selectList 加 7 个筛选 if (commit `14757f3`)
|
||||||
|
|
||||||
|
| 问题 | 修复 |
|
||||||
|
|---|---|
|
||||||
|
| **P0#1 mapper selectList `<where>` 空** — 8 项筛选全部不接 SQL, 用户选了筛选 + 点查找 = 返回全表 | `BizMeetingMapper.xml:37-50` 加 7 个 `<if>` 条件: project_no LIKE, meeting_id =, meeting_name LIKE, period_no =, project_form =, current_stage =, start_time >=, end_time <= (remark 字段跳过, 因为 biz_meeting 表无此列, 等 #5 一起修) |
|
||||||
|
| **Date 字段 Spring 绑定问题** — `q.startTime = "2026-08-18 10:00:00"` 通过 axios GET 传到后端, Spring 默认 Converter 只支持 ISO-8601 (`2026-08-18T10:00:00`), 用空格分隔会 binding 失败 → 字段变 null → mapper `<if>` 跳过 → 实际筛选不生效 | `BizMeeting.java:30-33` 加 `@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")` 到 startTime/endTime (跟已有 @JsonFormat 并存, JSON 序列化 / Spring 绑定都支持); supervisionTime/createTime/updateTime 不加 (本次 filter 不涉及, 暂不扩大范围) |
|
||||||
|
| 实测 (DB 查询) | `LIKE %ZH-2026-6%` → 5 行; `current_stage = 已结算` → 1 行; `start_time >= 2026-03-01` → 4 行; `period_no = 1` → 1 行; 全部条件 `AND` 组合也工作 ✅ |
|
||||||
|
| ⚠️ 发现数据不一致 (本轮不修, 仅记录) | DB 实际 current_stage 值是: 0/已结算/已结题/待整改/待监管/监管通过 (6 种); DDL 注释写 7 种 (未执行/执行中/监管通过/待整改/待结算/已结算/已结题); 前端 select 是 4 种 (未执行/执行中/已执行/已完结) — **三者全不一致**! 用户即使 mapper 修了, 也筛不到任何 stage 因为 select 选项不在 DB 实际数据中. 待 P1#7 一并修. |
|
||||||
|
| 前端不动 | `q` 的 8 项字段保持原样 (空字符串 / Long / Date 都有), Spring 默认 Converter 会把空字符串绑成 null, mapper `<if>` 跳过, 行为正确 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 0. 4 跳定位 (铁律: 不按名字猜)
|
## 0. 4 跳定位 (铁律: 不按名字猜)
|
||||||
@@ -376,7 +386,7 @@ CREATE TABLE `biz_meeting` (
|
|||||||
|
|
||||||
| # | 问题 | 文件 | 修复建议 | 严重度 |
|
| # | 问题 | 文件 | 修复建议 | 严重度 |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| 1 | **所有筛选不生效** (7 项) — mapper `<where>` 空 | `BizMeetingMapper.xml:39-40` | 加 8 个 `<if>` 条件: project_no LIKE, meeting_name LIKE, period_no =, project_form =, current_stage =, start_time >=, end_time <=, business_id = (如果还用 meetingId filter, 应改成业务字段) | **P0** |
|
| 1 | **所有筛选不生效** (7 项) — mapper `<where>` 空 | `BizMeetingMapper.xml:39-40` | 加 8 个 `<if>` 条件: project_no LIKE, meeting_name LIKE, period_no =, project_form =, current_stage =, start_time >=, end_time <=, business_id = (如果还用 meetingId filter, 应改成业务字段) | ~~**P0**~~ ✅ 第六轮修 (commit 14757f3) |
|
||||||
| 2 | **`meetingId` 列让用户看/筛 PK** | `Meetings.vue:8, 49` | 删 filter (q.meetingId + 字段) + 删 el-table-column | **P0** |
|
| 2 | **`meetingId` 列让用户看/筛 PK** | `Meetings.vue:8, 49` | 删 filter (q.meetingId + 字段) + 删 el-table-column | **P0** |
|
||||||
| 3 | **`onCopy` bug** — PUT 0 行 + 误报成功 | `Meetings.vue:254-263` + `submitEdit()` | `onCopy` 改走 `bizAdd('meeting', { ...不带 meetingId })`; submitEdit 改成 `if (editForm.meetingId) bizUpdate else bizAdd`, 或拆成两个 dialog | **P0** ✅ 第二轮修 |
|
| 3 | **`onCopy` bug** — PUT 0 行 + 误报成功 | `Meetings.vue:254-263` + `submitEdit()` | `onCopy` 改走 `bizAdd('meeting', { ...不带 meetingId })`; submitEdit 改成 `if (editForm.meetingId) bizUpdate else bizAdd`, 或拆成两个 dialog | **P0** ✅ 第二轮修 |
|
||||||
| 4 | **3 处缺 `__silentError`** (双 toast) | `Meetings.vue:235, 247, 272` | bizUpdate 调用加 `{ __silentError: true }`, catch 里手动 `ElMessage.error(e?.msg \|\| '...')` | **P0** ✅ 第二轮同commit修 |
|
| 4 | **3 处缺 `__silentError`** (双 toast) | `Meetings.vue:235, 247, 272` | bizUpdate 调用加 `{ __silentError: true }`, catch 里手动 `ElMessage.error(e?.msg \|\| '...')` | **P0** ✅ 第二轮同commit修 |
|
||||||
|
|||||||
Reference in New Issue
Block a user