# 17_维修管理闭环模块四级页面深化与 Demo-PRD 闸门

## 1. 目标任务说明

维修管理闭环模块承接告警、事件、问题、巡检、维护、供应商和 CMDB 等多个来源产生的现场修复动作，业务链路不是单一列表页可以表达的“查一查、点一下”。它必须把“发现故障 -> 建维修 -> 派单 -> 接单到场 -> 现场执行 -> 备件联动 -> 验收返工 -> 复盘知识 -> 报表审计”串成可追踪闭环。

本模块需要 4 级页面深化，原因如下：

1. 业务对象跨系统来源多。告警转维修、巡检异常转维修、问题改进行动生成维修在入口、字段带入、状态约束和关联对象上不同，必须下钻到四级操作面才能验收。
2. 维修闭环有强状态机。待派单、待接单、维修中、待备件、待验收、返工中、观察中、关闭等状态要有可见节点、操作按钮、证据和日志。
3. 现场执行强依赖证据。AI 盒子、照片、语音、扫码/NFC、测试数据、离线同步不能只停留在 PRD 描述，需要映射到 Demo 页面元素和 Mock 字段。
4. 验收和返工是质量闸门。只有首页 KPI 或列表不能证明维修完成；必须有详情、验收页、返工原因、关闭前校验、复盘知识和审计留痕。
5. Demo 与 PRD 路由存在适配关系。PRD 设计路由为 `/ops/repair/*`，独立 Vue Demo 实现路由为 `/repair/*`，本文件以独立 Demo 路由作为验收证据，并保留 PRD 位置。

## 2. 四级页面树

| 中心 | 模块 | 三级页面 | 四级页面或操作面 | 覆盖类型 | Demo 页面/元素 |
|---|---|---|---|---|---|
| 运维中心 | 维修闭环 | 维修闭环总览 | 子板块入口、风险对象、SLA、AI 盒子证据、待办流程 | 总览/报表 | `/repair/overview`，KPI 卡片、专业子板块入口、智航基座链路 |
| 运维中心 | 维修闭环 | 告警转维修 | 告警转维修清单、影响面、告警对象选择、提交治理流程 | 新增/来源转换 | `/repair/alarm`，告警转维修清单、提交治理流程弹窗 |
| 运维中心 | 维修闭环 | 维修单详情 | 档案与基座、服务范围、盒子证据、时间线 | 详情页 | `/repair/detail/:id`，档案与基座 Tab、盒子证据 Tab、时间线 Tab |
| 运维中心 | 维修闭环 | 维修派工 | 待派工对象、推荐资源、人员/供应商转派、工作流提交 | 修改/派单 | `/repair/dispatch`，维修派工清单、提交维修派工治理流程 |
| 运维中心 | 维修闭环 | 现场执行 | MOP 步骤、移动端签到、现场照片、盒子会诊、执行证据 | 执行/更新 | `/repair/field`，现场执行清单、流程与证据 |
| 运维中心 | 维修闭环 | 备件管理 | 备件锁定、领用、归还、替换件、库存水位、缺货协助 | 增删改查/备件 | `/repair/spares`，备件管理清单、流程与证据 |
| 运维中心 | 维修闭环 | 验收返工 | 验收检查、关闭前校验、返工原因、验收通过、关闭工单 | 审批/验收 | `/repair/acceptance`，验收返工清单、工作流提交 |
| 运维中心 | 维修闭环 | SLA 超时升级 | 响应计时、到场计时、修复计时、暂停计时、升级扣罚 | 审批/升级 | `/repair/sla`，SLA 超时升级清单、流程与证据 |
| 运维中心 | 维修闭环 | 维修复盘报告 | 根因、成本、知识草稿、问题候选、供应商评分 | 报表/审计 | `/repair/review`，维修复盘报告清单、证据列表 |
| 运维中心 | 维修闭环 | 维修配置中心 | 维修类型、SLA 模板、派工规则、备件策略、证据模板 | 配置 | `/repair/settings`，维修配置中心清单、`/api/repair/settings` |
| 报表中心 | 维修闭环专题 | 维修指标看板 | MTTR、首次修复率、复发率、备件消耗、供应商表现 | 报表/审计 | PRD `## 5.1`、交付包 `17_报表指标与验收口径.md`；当前 Vue Demo 用总览 KPI 代替专题 BI |
| 运维中心 | 维修闭环 | 操作审计 | 工作流实例、状态日志、盒子证据、CMDB 对象、审计日志 | 审计 | Mock 字段 `workflowId`、`timeline`、`evidence`、`cmdbObjects` |

## 3. User Story 表

| 编号 | 角色 | 前置条件 | 主流程 | 异常分支 | 成功标志 | 对应 Demo 页面/元素 |
|---|---|---|---|---|---|---|
| 17-US-01 | 值班员 | 告警中心已有 P1/P2 告警，告警对象能绑定 CMDB | 进入告警转维修页，选择告警对象，确认影响面，提交治理流程生成维修工单 | 告警已升级事件时自动关联事件；CMDB 缺失时要求补选资产 | 生成维修记录并进入待派工/处理中状态 | `/repair/alarm`，告警转维修清单、提交治理流程、`workflowId` |
| 17-US-02 | 维修调度员 | 工单已提交且未派工，人员/供应商可查询 | 进入维修派工页，查看待派工对象，按专业、负载、站点选择人员或供应商，提交派工 | 无合格人员时转供应商或升级经理；资质不满足禁止派工 | 状态推进到待接单/处理中，写入工作流待办 | `/repair/dispatch`，维修派工清单、提交维修派工治理流程 |
| 17-US-03 | 现场工程师 | 工单已派给本人或班组，现场资产可核验 | 打开现场执行页，接单到场，按 MOP 记录处理步骤，上传照片/视频/盒子证据 | 网络中断时进入待同步；关键证据缺失时不能提交验收 | 工单进入待验收，证据可在详情页查看 | `/repair/field`，流程与证据、`boxId`、`evidence`、`timeline` |
| 17-US-04 | 备件管理员 | 维修记录标记需要备件，备件台账有库存状态 | 进入备件管理页，确认适配型号，锁定库存，出库并记录新旧件序列号 | 库存不足时触发供应商协助或 SLA 暂停审批 | 备件状态从申请变为已出库/已替换 | `/repair/spares`，备件管理清单、流程与证据 |
| 17-US-05 | 专业负责人 | 维修工程师已提交验收，监控恢复和现场证据齐全 | 进入验收返工页，查看测试数据、照片和告警恢复，选择验收通过或要求返工 | 验证失败必须填写返工原因；P1/P0 缺 RCA 不允许关闭 | 工单关闭或进入返工中，验收结论留痕 | `/repair/acceptance`，验收返工清单、提交治理流程 |
| 17-US-06 | 值班经理 | 工单接近或已经超过 SLA 阈值 | 进入 SLA 超时升级页，查看响应/到场/修复风险，提交升级或暂停计时审批 | 暂停计时必须有备件缺货、等待变更窗口或外部阻塞证据 | SLA 风险进入升级队列并写入审计日志 | `/repair/sla`，SLA 超时升级清单、`slaRate`、`riskCount` |
| 17-US-07 | 问题经理 | 维修为复发、超时、返工或 P1/P0 等级 | 进入维修复盘报告页，补充根因、成本、预防措施，生成知识草稿或问题候选 | RCA 缺失时不能关闭重大维修；复发风险高时必须关联问题 | 知识草稿产生，问题/知识关联可追溯 | `/repair/review`，维修复盘报告、证据列表、`services` |
| 17-US-08 | 配置管理员 | 需要调整维修类型、SLA 模板、派工规则或证据模板 | 进入维修配置中心，查看规则模板版本，维护流程、字段、状态和盒子证据模板 | 配置变更缺少审批或影响运行中工单时禁止发布 | 新配置版本可追溯，后续新工单使用新规则 | `/repair/settings`，维修配置中心、`/api/repair/settings` |
| 17-US-09 | 管理层 | 维修闭环已有多条记录和指标数据 | 进入维修闭环总览，查看风险对象、SLA、AI 盒子证据和待办流程，跳转核心子板块 | 子板块无数据时显示空态并保留配置入口 | 能识别当前风险、待办和闭环效率 | `/repair/overview`，KPI 卡片、专业子板块入口 |
| 17-US-10 | 审计员 | 需要追溯单个维修记录的来源、流程和证据 | 打开维修单详情，查看档案与基座、服务范围、盒子证据、时间线 | 证据来源为人工补录时必须标记；工作流失败不改变最终业务状态 | 单据来源、CMDB、盒子、工作流和时间线完整可查 | `/repair/detail/:id`，档案与基座 Tab、盒子证据 Tab、时间线 Tab |

## 4. Demo-PRD 闸门矩阵

| PRD能力点 | PRD文件位置 | Demo页面/元素 | Mock/API/状态机证据 | 是否通过 | 缺口处理 |
|---|---|---|---|---|---|
| 维修闭环总览承载 KPI、风险、SLA、待办和基座链路 | `17_维修管理闭环模块/PRD.md` `## 5.1`；交付包 `03_信息架构与页面清单.md` | `/repair/overview`，KPI 卡片、专业子板块入口、智航基座链路 | `getList()`、Mock `dashboardData()`、字段 `slaRate/riskCount/evidence/workflowId` | 通过 | 无 |
| 告警转维修可从告警对象创建维修闭环 | `PRD.md` `## 3.1 场景 A`、`## 6` | `/repair/alarm`，告警转维修清单、提交治理流程 | Mock 记录 `REP-ALM-B28-001`，`board=告警转维修`，`submitWorkflow()` | 部分通过 | Demo 是“提交治理流程”而非完整新建表单；需在后续 Demo 增加来源字段带入表单 |
| 新建维修工单字段覆盖来源、故障、执行要求 | `PRD.md` `## 5.3`、`## 7.1` | 旧高保真 HTML 有“保存草稿/提交派单/AI 推荐维修类型”；Vue Demo 当前无独立新建页 | 旧元素清单含 `保存草稿`、`提交派单`；Vue Mock 无 create API | 不通过 | 不能以总览或告警提交替代新建页；需补 `/repair/create` 或抽屉表单 |
| 维修工单详情展示状态、基座、服务、证据、时间线 | `PRD.md` `## 5.4` | `/repair/detail/:id`，档案与基座、服务范围、盒子证据、时间线 | `getDetail(id)`，字段 `workflowId/boxId/cmdbObjects/evidence/timeline` | 通过 | 无 |
| 调度派单支持人员/供应商资源和工作流提交 | `PRD.md` `## 5.5`；`页面与用例深化.md` `## 3` | `/repair/dispatch`，维修派工清单、提交维修派工治理流程 | Mock `REP-DSP-M3-002`，`submitWorkflow()`，状态 `处理中` | 部分通过 | 可演示流程提交，但缺人员资质、负载和推荐算法字段；需补资源面板 Mock |
| 现场执行支持 MOP、AI 盒子、照片视频、到场记录 | `PRD.md` `## 5.6` | `/repair/field`，现场执行清单、流程与证据 | Mock `boxId/evidence/timeline`，元素清单含 `移动/AI盒子执行`、`SOP 步骤` | 部分通过 | Vue Demo 当前以证据摘要替代逐步 MOP；需补步骤完成状态和上传入口 |
| 备件联动支持申请、锁定、出库、归还和缺货协同 | `PRD.md` `## 5.7` | `/repair/spares`，备件管理清单、流程与证据 | Mock `REP-SP-A6-003`，旧元素清单含 `锁定并出库`、`模拟缺货` | 部分通过 | Vue Mock 缺 `spareParts` 明细和库存状态机；需补备件明细字段/API |
| 验收返工必须校验证据、恢复结果和返工原因 | `PRD.md` `## 5.8`；`页面与用例深化.md` `## 3` | `/repair/acceptance`，验收返工清单、提交治理流程 | Mock 状态 `待验收`，状态机 `waiting_confirm -> closed`，元素清单含 `要求返工/验收通过/关闭工单` | 部分通过 | Demo 有页面和流程入口，但缺验收字段、返工原因必填和关闭前校验规则展示 |
| 复盘知识沉淀覆盖根因、预防、知识草稿和问题候选 | `PRD.md` `## 5.9` | `/repair/review`，维修复盘报告、证据列表 | Mock `services/evidence/timeline`，旧元素清单含 `知识草稿/发布到知识库` | 部分通过 | Vue Demo 缺 RCA 表单和知识库发布状态；需补复盘表单与知识草稿状态 |
| SLA 超时升级覆盖响应、到场、修复、暂停计时和升级 | `PRD.md` `## 6`、交付包 `17_报表指标与验收口径.md` | `/repair/sla`，SLA 超时升级清单 | 字段 `slaRate/riskCount/dueDate`，状态机异常 `workflow_failed/pending_box_sync` | 部分通过 | Demo 有风险对象和提交流程，但缺倒计时、暂停原因、升级等级字段 |
| 维修配置中心覆盖维修类型、SLA 模板、派工规则、备件策略 | `PRD.md` `## 4.1`、`## 8` | `/repair/settings`，维修配置中心 | `/api/repair/settings` 返回规则模板、CMDB 对象映射、AI 盒子证据模板 | 通过 | 无 |
| 报表/审计覆盖 MTTR、首次修复率、复发率、备件消耗、供应商表现 | `PRD.md` `## 5.1`、交付包 `32_指标口径与性能要求.md` | `/repair/overview` KPI；`/repair/review` 复盘报告 | Mock `slaRate/riskCount/amount/healthScore`，但无 MTTR 明细字段 | 部分通过 | 当前 Vue Demo 只支撑概览型指标；需补 MTTR、firstFixRate、reworkRate、备件成本字段 |
| 状态机和审计日志禁止前端直接改状态 | 交付包 `07_状态机.md` | 各子板块“提交治理流程”弹窗 | `submitWorkflow()`，Mock `/api/repair/workflow/submit` 返回 `instanceId/pushed` | 部分通过 | Vue Mock 会直接把记录置为 `处理中`；正式验收需后端状态机和审计日志 |
| CMDB、工作流、AI 盒子证据三方关联 | `PRD.md` `## 8` | `/repair/detail/:id`，档案与基座、盒子证据；各子板块清单 | 字段 `cmdbObjects/boxId/workflowId/evidence` | 通过 | 无 |
| 角色权限和菜单可区分工程师、值班经理、总部专家、运维线、现场人员 | 交付包 `33_角色页面权限矩阵.md` | Vue 路由 `meta.roles` | `repairRoutes` 中 `ALL_ROLES`、`requiresAuth` | 部分通过 | 当前全部角色可见所有维修页；需补操作级按钮权限 |

## 5. 不通过闸门

以下情况一律不能作为 Demo-PRD 一致性验收通过：

1. 只有首页、KPI 或子板块入口，没有可进入的详情页、证据页、时间线或操作面。
2. Demo 有按钮，但按钮只弹提示、无 Mock/API/状态机证据，且不能证明状态推进或审计留痕。
3. Demo 有页面元素，但 PRD 没有字段、流程、角色或验收口径支撑。
4. PRD 写了新建、派单、备件、验收、复盘等能力，但 Demo 只有静态描述，没有表单、清单、弹窗、流程提交或详情证据。
5. 详情页不能展示 CMDB 对象、工作流实例、AI 盒子证据和时间线中的至少三类追溯信息。
6. 验收通过、要求返工、关闭工单没有返工原因、恢复验证、关键证据或关闭前校验规则。
7. 备件联动只有“备件管理”标题，没有备件编码、库存、锁定、出库、归还、替换或缺货处理证据。
8. SLA 超时升级没有计时字段、风险等级、暂停原因、升级动作或审计记录。
9. 复盘知识只有报告标题，没有根因、处理步骤、预防措施、知识草稿或问题候选。
10. 配置中心只有配置列表，没有模板版本、归属方、配置说明或发布/审批边界。
11. Mock 字段与页面字段不一致，例如页面展示维修单号但 Mock 只有通用 `id/name`，且无映射说明。
12. Demo 路由与 PRD 路由不同但未说明适配关系，导致验收方无法判断独立 Demo 与主门户集成的对应关系。
13. 状态只能在前端本地改写，没有工作流实例、状态日志、审计日志或后端状态机约束。
14. 报表只显示健康分或 SLA 百分比，不能追溯 MTTR、首次修复率、返工率、复发率、备件消耗或供应商表现的来源。

## 6. 当前结论

当前 Vue Demo 已经具备维修总览、告警转维修、维修派工、备件管理、现场执行、验收返工、SLA 超时升级、维修复盘报告、维修配置中心和隐藏详情页，能支撑模块 17 的主链路演示。

但若按“4 级页面深化 + Demo-PRD 一致性闸门”严格验收，`新建维修工单`、`派单推荐资源明细`、`逐步 MOP 执行`、`备件明细状态机`、`验收返工必填校验`、`复盘知识发布状态`、`SLA 倒计时和暂停原因`、`操作级权限`仍属于部分通过或不通过项，不能用“有子板块页面”替代真实闭环验收。
