7df078e0ea
- 交接摘要补 §一·三十五~§一·三十八:角色与授权、需求收敛(4 角色 / 10 菜单 / 取消二期)、 PC 端重搭后的 UI 修复与卡片式基线、品牌改名与新标识 - PRD 与功能逻辑卷只改标题行与产品代号线;**文件名不动** —— verify-docs.py 按路径读, 全库还有 20+ 处按文件名引用,改名会连带炸脚本 - 原型 index / admin-web / teacher-app / student-app 的品牌区改「深学在线」, admin-web 的 .mark(10 处)换成内嵌的新标 data URI,保持原型"单文件自包含"的约定 - 根 AGENTS.md 与 frontend-pc 的规范同步:接线检查补第 ⑨ 项(SVG 资产是不是合法 XML —— SVG 注释里出现连续两个减号就 not well-formed,图标裂开而控制台一句话都不报)、 「最容易写错的约定」6 -> 7 条(新增品牌标) - deploy/docker-compose.yml 只改头注释里的项目名(compose 的 name 与七牛对象前缀都没动)
165 lines
11 KiB
Markdown
165 lines
11 KiB
Markdown
# 需求追溯矩阵(自审报告)
|
||
|
||
> 用途:把 PRD 的每条需求对上「**原型 / 库表 / 接口 / 验收**」四个交付面,找出**说了没做**和**做了没说**。
|
||
> 生成日期:2026-09-28
|
||
> 审计范围:**125 条 FR**(92 P0 / 30 P1 / 3 P2)+ **21 条 VAL 校验规则** + **119 个接口**(2026-10 收敛后的口径;原 129 = 121 + 角色与授权 8)+ **20 张表**
|
||
> 结论:**主流程全覆盖。第三节的 10 个接口缺口已于 P3 补齐(共新增 21 个接口);配置类页面缺口见 3.2**
|
||
|
||
---
|
||
|
||
## 一、总览
|
||
|
||
| 模块 | 条数 | P0 | 库表 | 接口 | 原型 | 判定 |
|
||
|---|:--:|:--:|:--:|:--:|:--:|:--:|
|
||
| FR-100 租户与组织 | 5 | 5 | ✅ | ✅ | ❌ | ⚠️ 缺平台运营端原型 |
|
||
| FR-200 账号与角色 | 6 | 5 | ✅ | ✅ | ⚠️ | ⚠️ 缺登录页与用户管理页;**FR-205 角色自定义已落地**(`docs/03` §4.12 / §5.10,页面 `frontend-pc/src/views/role/`;2026-10 起按**一期功能**计,不再叫"二期")——其中「数据权限可配」**不做** |
|
||
| FR-300 收集任务 | 12 | 9 | ✅ | ✅ | ⚠️ | ✅ 暂停接口已补(P3) |
|
||
| FR-400 动态表单 | 8 | 6 | ✅ | ✅ | ❌ | ⚠️ **缺表单设计器原型** |
|
||
| FR-500 名单管理 | 24 | 21 | ✅ | ✅ | ✅ | ✅ **全覆盖**(含客户确认新增的 FR-509 系列 10 条) |
|
||
| FR-600 材料与规则 | 23 | 18 | ✅ | ✅ | ⚠️ | ✅ 识别结果已并入审核详情(P3) |
|
||
| FR-800 审核工作台 | 10 | 7 | ✅ | ✅ | ✅ | ✅ 撤回接口已补(P3) |
|
||
| FR-900 汇总导出 | 10 | 8 | ✅ | ✅ | ✅ | ✅ **全覆盖** |
|
||
| FR-1000 通知催报 | 6 | 4 | ✅ | ✅ | ⚠️ | ✅ 消息中心与额度已补(P3);⚠️ **FR-1002 / FR-1003 在 2026-10-08 才真正兑现** —— 模板原先只对手工发送生效、自动催报因日期比较写错**一条都没发过**(见《08》F-101 / F-104) |
|
||
| FR-1100 数据看板 | 5 | 2 | ✅ | ✅ | ✅ | ✅ **全覆盖** |
|
||
| FR-1200 系统管理 | 6 | 5 | ⚠️ | ✅ | ❌ | ⚠️ 接口已补(P3),原型仍缺 |
|
||
| FR-1300 SaaS 计费 | 4 | 2 | ⚠️ | ⚠️ | ❌ | ⚠️ 缺平台运营端 |
|
||
| ~~FR-1400 历史整理器~~ | ~~6~~ | ~~0~~ | — | — | — | **已取消**(2026-10 需求收敛:模块/表/接口/页面全部删除) |
|
||
| **FR-700 校验引擎** | — | — | ✅ | ✅ | ✅ | ✅ 以 VAL-01~21 实现,三端均有体现 |
|
||
|
||
**图例**:✅ 完整覆盖 ⚠️ 部分覆盖 ❌ 未覆盖
|
||
|
||
---
|
||
|
||
## 二、覆盖亮点(这些是逐条核对过的)
|
||
|
||
| 能力 | 库表 | 接口 | 原型 | 备注 |
|
||
|---|:--:|:--:|:--:|---|
|
||
| **名单即预填报名表(18 业务列)** | ✅ | ✅ | ✅ | 已在 PG 16 实测;管理端③可视化呈现 |
|
||
| **门禁核验(含限流防枚举)** | ✅ | ✅ | ✅ | 学生端①②③;统一失败提示已实现 |
|
||
| **命名规范化引擎** | ✅ | ✅ | ✅ | 管理端②**试跑闸门**;学生端⑦结果卡 |
|
||
| **压缩引擎(五档 + 内存保护)** | ✅ | ✅ | ✅ | 实测 28/28 达标;管理端⑦报压缩率 |
|
||
| **材料识别(四层递进)** | ✅ | ✅ | ✅ | 学生端⑧;识别结果已并入审核详情响应 |
|
||
| **批量通过只带绿色项** | ✅ | ✅ | ✅ | 班主任端④ + ⑨(滑动层灰化) |
|
||
| **导出前置检查(禁止带问题打包)** | ✅ | ✅ | ✅ | 管理端⑦**禁用导出按钮** |
|
||
| **报考范围聚合与体检** | ✅ | ✅ | ✅ | 管理端④;plan-scope 接口已补 |
|
||
| **汇总 Excel 与目录树** | ✅ | ✅ | ✅ | 管理端⑦目录树预览 |
|
||
|
||
---
|
||
|
||
## 三、发现的缺口
|
||
|
||
### 3.1 接口缺口(**已在 P3 全部补齐**,共新增 21 个)
|
||
|
||
> 这些是"原型/PRD 里承诺了,但接口表里没有"的。放在 P3 接口设计里一并补齐。
|
||
|
||
| # | 缺口 | 对应需求 | 影响 | 建议接口 |
|
||
|:--:|---|---|---|---|
|
||
| I1 | **报考范围读取与确认** | FR-307~311 | 管理端④整屏无数据来源 | `GET/PUT /api/v1/tasks/{id}/plan-scope` |
|
||
| ~~I2~~ | ~~**历史数据整理器**~~ | — | **已取消**(2026-10) | — |
|
||
| I3 | **字典管理** | FR-1201 | 学历/等级/补考科目等下拉项无法维护 | `GET/POST/PUT /api/v1/dicts` |
|
||
| I4 | **操作日志** | FR-1202 | 审计留痕无法查询 | `GET /api/v1/logs/operations` |
|
||
| I5 | **登录日志** | FR-1203 | 同上 | `GET /api/v1/logs/logins` |
|
||
| I6 | **消息中心** | FR-1004~1005 | 学生端/教师端"消息"屏无数据来源 | `GET /api/v1/mp/messages`、`/mp/teacher/messages` |
|
||
| I7 | **订阅额度登记** | R12 对策 | 功能逻辑卷写 `/mp/subscribe`,**主 PRD 接口表漏登记** | `POST /api/v1/mp/subscribe` |
|
||
| I8 | **审核撤回** | FR-808、原型 | 原型承诺"终审前可撤回",无接口 | `POST /api/v1/audit/submissions/{id}/revoke` |
|
||
| I9 | **任务暂停/恢复** | FR-301 | FR 要求"发布、**暂停**、截止、归档",只有 publish/close/archive | `POST /api/v1/tasks/{id}/pause`、`/resume` |
|
||
| I10 | **材料识别结果读取** | FR-614d | 审核辅助要显示"系统判定:身份证 92%",无处取 | 并入 `GET /api/v1/audit/submissions/{id}` 响应 |
|
||
|
||
> **合计 10 项,已在 P3 全部补齐**:I10 并入审核详情响应,其余新增 20 个接口(含 1 项登记遗漏 `/mp/files/{fileId}/process`)
|
||
|
||
### 3.2 原型缺口(管理端 10 个页面;**其中 3 个已在 P2.5 补齐**)
|
||
|
||
> 本轮原型聚焦"**高频主流程 + 设计难点**",配置类页面未出。这不是遗漏,是优先级取舍,但需要明确记录,避免开发以为"不用做"。
|
||
|
||
| # | 页面 | 对应需求 | 复杂度 | 建议 |
|
||
|:--:|---|---|:--:|---|
|
||
| P1 | **表单设计器** | FR-401~408 | 高 | ⚠️ **必须补**——拖拽式字段编排是 P0,且交互复杂,光靠文字描述开发必理解偏 |
|
||
| P2 | **材料规则配置**(命名模板编辑器) | FR-601~609 | 高 | ⚠️ **建议补**——管理端②只做了"试跑",配置界面本身没画 |
|
||
| ~~P3~~ | ~~历史数据整理器~~ | — | — | **已取消**(2026-10 需求收敛) |
|
||
| P4 | 登录页 | FR-201 | 低 | 可略 |
|
||
| P5 | 组织与用户管理 | FR-103、203~206 | 中 | 可略(标准 CRUD) |
|
||
| P6 | 任务列表与详情 | FR-301~306 | 中 | 建议补简版(克隆、二维码、暂停) |
|
||
| P7 | 通知模板管理 | FR-1001~1002 | 低 | 可略 |
|
||
| P8 | 字典管理 | FR-1201 | 低 | 可略 |
|
||
| P9 | 操作日志查询 | FR-1202~1203 | 低 | 可略 |
|
||
| P10 | 平台运营端(租户/套餐/计费) | FR-101~102、1301~1304 | 中 | **不做**(2026-10:不再设计二期;平台运营端只保留租户开通与用量) |
|
||
|
||
### 3.3 需求条目本身的核查
|
||
|
||
> 审计过程中发现 4 个疑似问题,逐条核实后 **3 个是统计脚本的正则缺陷(不是文档缺陷)**,仅 1 个为真实待办。
|
||
|
||
| # | 疑似问题 | 核实结论 | 处理 |
|
||
|:--:|---|---|---|
|
||
| D1 | FR-614 主条目编号缺位 | ❌ **假警报**——FR-614 在 §5.6 存在(脚本未匹配**加粗编号**写法) | 无需处理 |
|
||
| D2 | FR-608 未出现在抽取结果 | ❌ **假警报**——同上,且其优先级格含补充说明文字 | 无需处理 |
|
||
| D3 | FR-1000 模块分级计数与条数不符 | ❌ **假警报**——1001~1004 为 P0、1005 为 P1、1006 为 P2,相加正确 | 无需处理 |
|
||
| **D4** | **「压缩质量抽检机制」在功能逻辑卷有详述,主 PRD 无独立 FR** | ✅ **真实**——PRD 仅在 §6.3 与验收标准中提及,未立为需求条目 | 🟡 **补 FR-616**:清晰度分级标记与抽检机制(P1) |
|
||
|
||
> **教训**:脚本审计前必须先验证脚本本身。本次若直接采信 D1~D3,会在文档里"修"三个不存在的问题,反而引入错误。
|
||
|
||
### 3.4 已闭环(无需处理)
|
||
|
||
| 项 | 状态 |
|
||
|---|---|
|
||
| 报考范围来自名单(不存在计划文件) | ✅ 已澄清并改设计 |
|
||
| DDL 在 PG 16 实测 | ✅ 零错误 |
|
||
| 压缩参数实测标定 | ✅ 300dpi/q85,28/28 达标 |
|
||
| 材料来源三通道(无拍照) | ✅ 已实现并出原型 |
|
||
| 滑动交互规则 | ✅ 只右滑通过 |
|
||
|
||
---
|
||
|
||
## 四、结论与行动
|
||
|
||
### 覆盖度小结
|
||
|
||
```
|
||
主流程(填报→审核→导出) ████████████████████ 100%
|
||
规则引擎(命名/压缩/识别) ████████████████████ 100%
|
||
配置类页面 ██████░░░░░░░░░░░░░░ 30%
|
||
平台运营 ░░░░░░░░░░░░░░░░░░░░ 0%
|
||
~~历史整理器~~ ░░░░░░░░░░░░░░░░░░░░ 已取消(2026-10)
|
||
```
|
||
|
||
### 必须行动的 3 项
|
||
|
||
| 优先级 | 行动 | 归属 |
|
||
|:--:|---|---|
|
||
| ✅ 已完成 | ~~补 10 个缺失接口(3.1)~~ | → **P3 已完成(新增 21 个)** |
|
||
| ✅ 已完成 | ~~补**表单设计器**原型(3.2 P1)~~ | → **P2.5 已完成** |
|
||
| ✅ 已完成 | ~~补**材料规则配置**原型(3.2 P2)~~ | → **P2.5 已完成** |
|
||
| ✅ 已完成 | ~~补 **FR-616**「清晰度分级标记与抽检机制」~~ 及 **VAL-18~20** 三条校验规则 | → 已补入 PRD |
|
||
|
||
### 对计划的调整
|
||
|
||
发现了一个原计划未覆盖的缺口,**追加为 P2.5**:
|
||
|
||
| # | 任务 | 产出 | 理由 |
|
||
|---|---|---|---|
|
||
| **P2.5** | **管理端补充原型**:表单设计器 + 材料规则配置 + ~~整理器~~(该屏已于 2026-10 删除) | 补充到 `admin-web.html` | 追溯矩阵发现的缺口,三者都是**复杂交互、不画会理解偏**的页面 |
|
||
|
||
---
|
||
|
||
## 附录 · 完整需求索引(115 条)
|
||
|
||
| 模块 | 编号范围 | 条数 | 备注 |
|
||
|---|---|:--:|---|
|
||
| FR-100 | FR-101 ~ 105 | 5 | 全 P0 |
|
||
| FR-200 | FR-201 ~ 206 | 6 | 含 FR-202 小程序登录 |
|
||
| FR-300 | FR-301 ~ 312 | 12 | 含 FR-307~311 报考范围 |
|
||
| FR-400 | FR-401 ~ 408 | 8 | 全为表单引擎 |
|
||
| FR-500 | FR-501 ~ 509 | **24** | 含 502a/b、504a~d、**509a~i(客户确认新增 10 条)** |
|
||
| FR-600 | FR-601 ~ 616 | 23 | 含 601a/b、614a~e(**编号连续,无跳号**) |
|
||
| FR-800 | FR-801 ~ 810 | 10 | 审核 |
|
||
| FR-900 | FR-901 ~ 910 | 10 | 导出 |
|
||
| FR-1000 | FR-1001 ~ 1006 | 6 | 通知 |
|
||
| FR-1100 | FR-1101 ~ 1105 | 5 | 看板 |
|
||
| FR-1200 | FR-1201 ~ 1206 | 6 | 系统管理 |
|
||
| FR-1300 | FR-1301 ~ 1304 | 4 | 计费 |
|
||
| ~~FR-1400~~ | ~~FR-1401 ~ 1406~~ | ~~6~~ | **已取消**(2026-10) |
|
||
| **合计** | | **125** | **92 P0 / 30 P1 / 3 P2** |
|
||
|
||
**校验规则**:VAL-01 ~ VAL-21(21 条,编号连续;18~20 为 P4 补充,**21 为客户确认后补充的归属校验**)
|
||
**接口**:**119 个已定义**(2026-10 收敛:原 129 = 96 + 补齐 21 + 客户确认新增 5 + 角色与授权 8 − 移除 1;现减去**加入申请 5 个**与**历史整理器 5 个** = **119**,补齐 21 → 16),见 `03-接口设计.md` §4.12 / §5.10
|
||
**库表**:**20 张**完整 DDL + 4 张"从略"标准表
|