work-order-lifecycle.md 5.0 KB

统一工单处置生命周期(七态共识)· 前端职责

状态:accepted(与后端 pipe-ner-server、UE 驾驶舱 Pipelines 一致的跨仓领域共识) 确立日期:2026-09-04 后端权威文档:pipe-network-service/docs/domain/work-order-lifecycle.md、ADR-0008 取代口径:旧“九态模型”(含“已驳回”终态、“延期审核/已延期”)。

本文是前端 city-life-line 渲染与操作工单状态的唯一业务依据。状态名是权威;后端现网编码迁移另开任务,迁移完成前按第 7 节对照表换算,前端不得写死依赖旧“已驳回/延期”语义。

1. 本仓职责

  • 本仓是管理端 Web UI:按七态渲染工单状态标签、状态统计、详情时间线与当前可用操作按钮。
  • 前端只做“当前状态允许哪些动作”的展示控制,最终授权与状态流转由后端校验,前端不自行改状态。
  • UE 驾驶舱是另一只读消费方,本仓不向其输出写操作。

2. 角色

  • 管理员(派单/验收者):派单下发、验收(审核通过 / 验收驳回 / 取消工单),可在任意中间态取消。
  • 接单责任人:接单确认、开始处置、多次追加处理流水、提交审核。一次派发指定唯一接单责任人。

3. 两条入口

  1. 报警转工单:由设备预警/报警创建,进入“待派单”,创建时不指定责任人。
  2. 直接下派:巡检、维修等工单可创建即派给责任人,直接进入“待接单”。

4. 七个状态

目标编码 状态 含义 是否终态
1 待派单 已创建、未指定责任人,等待派单
2 待接单 已派给责任人,等待接单确认
3 已接单 责任人已接单,尚未开始现场处置
4 处理中 已开始处置;可多次追加处理流水
5 待验收 已提交审核,等待管理员验收
6 已结案 审核通过,处置闭环
7 已取消 管理员取消,强制终止;改派需另建新单

终态只有“已结案(6)/ 已取消(7)”。

5. 状态迁移与前端动作

动作 角色 前置态 目标态 前端要点
创建(报警转工单) 系统/管理员 1 不在报警创建接口塞责任人
直接下派(巡检/维修) 管理员 2 创建即选唯一责任人
派单/下发 管理员 1 2 部门树 + 单选责任人弹窗
接单确认 责任人 2 3
开始处置 责任人 3 4 必传处理前照片 + 现场简述
追加处理流水 责任人 4 4 可多次,图片+描述,不改状态
提交审核 责任人 4 5 必传处理后照片 + 处理描述
审核通过 管理员 5 6 填审核评价/建议
验收驳回 管理员 5 4(回退) 必填驳回原因,工单不终止
取消工单 管理员 1/2/3/4/5 7(终态) 建议填取消原因;已结案不可取消

前端渲染约束:

  • “验收驳回”是动作不是状态,列表/时间线里不出现独立“已驳回”状态标签;被驳回的工单显示为“处理中”,并在时间线展示驳回原因。
  • “已取消”是终态,用灰色不可操作样式;不提供复活/继续处置入口。
  • 状态标签必须文字与颜色同时表达,颜色语义沿用设计文档(红紧急、橙待办、青绿处理中、绿完成、灰已取消/不可操作)。
  • 不再渲染任何“申请延期 / 延期审核 / 已延期”入口或标签。

6. 处理流水与处置证据

  • 处理前证据在“开始处置(3→4)”上传;处理流水在“处理中(4)”多次追加;处理后证据在“提交审核(4→5)”上传;验收意见/驳回原因/取消原因在对应动作记录。
  • 附件走后端 MinIO + KingbaseES 阶段化元数据方案,旧图片 URL 字段兼容读取,前端不得丢失历史图片。

7. 目标编码与现网编码对照(迁移期)

目标编码从 1 开始后,前六态与现网旧编码 1–6 同值,仅第 7 态语义不同。

状态名 目标编码(权威) 现网旧编码(迁移前)
待派单 1 1(同值)
待接单 2 2(同值)
已接单 3 3(同值)
处理中 4 4(同值)
待验收 5 5(同值)
已结案 6 6(同值)
已取消 7 旧实现无独立值(取消/驳回都落旧 7)
已驳回(废止) 7
延期审核(废止) 8
已延期(废止) 9

前端状态字典应同时能解析新旧编码,但新增功能只面向七态;后端迁移完成后删除旧分支。

8. 与设备报警状态的关系

工单状态独立于设备报警状态与报警记录状态,三者来源不同、不得互相替代;工单结案只触发后端清警复核,前端不直接把设备改为正常。