work-order-lifecycle.md 5.1 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–7 为权威。当前后端已出现两类并存契约:驾驶舱只读接口输出目标 1–7;管理端业务工单与供水设备详情仍读取数据库现网 0–7 编码,并保留 6-延期中 兼容分支。

状态名 目标编码(权威/驾驶舱只读) 管理端现网编码
待派单 1 0
待接单 2 1
已接单 3 2
处理中 4 3
待验收 5 4
已结案 6 5
已取消 7 7
延期中(废止目标状态) — 6(迁移期兼容)

前端必须按接口契约解析编码并统一展示状态名,禁止把管理端 relatedWorkOrderStatus 裸值直接套用目标 1–7 字典。监测设备 GIS 只消费管理端关联工单摘要,不承担数据库状态迁移;后端迁移完成后再删除管理端旧编码和延期兼容分支。

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

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