工单状态与流程说明
依据:app/model/WorkOrder.php 的 MAIN_FLOW 状态机定义、工单中心系统设计方案.md、实际接口实现。
一、统一状态机(所有工单类型共用)
创建 → 分派 → 接单 → 处理 → 完成 → 关闭
↘ 挂起(等待)↗
| 状态 |
含义 |
进入方式 |
可流转到 |
created 已创建 |
工单建立,待分派 |
建单(客服/事件/外部) |
assigned 分派、cancelled 取消 |
assigned 已分派 |
已指定处理人,待接单 |
客服分派/驳回后重派 |
processing 接单、rejected 驳回 |
processing 处理中 |
已接单,正在处理 |
运维接单 |
pending 挂起、completed 完成、rejected 驳回 |
pending 挂起 |
等待备件/外部反馈 |
处理中挂起 |
processing 恢复 |
completed 已完成 |
处理完毕、结果已回填 |
完成操作 |
closed 关闭 |
closed 已关闭 |
客服确认,终结 |
客服关闭 |
— |
cancelled 已取消 |
作废(录入错误等) |
创建人取消;已分派后需主管 |
— |
rejected 已驳回 |
处理人退回 |
接单/处理中退回 |
assigned 重新分派 |
stateDiagram-v2
[*] --> created
created --> assigned: 分派
created --> cancelled: 创建人取消
assigned --> processing: 接单
assigned --> rejected: 驳回
processing --> pending: 挂起
pending --> processing: 恢复
processing --> completed: 完成+回填
processing --> rejected: 驳回
rejected --> assigned: 重新分派
completed --> closed: 客服确认
closed --> [*]
关键规则
- 转派:
assigned/processing 下更换处理人,状态不变;原/新处理人写日志并飞书通知双方;计划性转派需主管确认
- 关闭后复发:不重开原单,生成新工单并设置
parent_order_id 关联原单
- 取消:
created 状态创建人可取消(录入错误);已分派后取消需客服主管/管理员操作并记录原因
- 审计:每次流转写入
work_order_status_log(from/to/操作人类型/操作人ID/备注/时间),全链路可追溯
- SLA 计时:响应 = 分派(assigned)时刻;完成 = completed 时刻;挂起(pending)期间计时暂停
- 超时升级:SLA 超时 → 飞书通知客服主管,支持催办/改派/升级优先级;突发类允许自动改派,计划类仅通知
二、各类型流程
内部工单(现场运维闭环)
| 类型 |
流程 |
| 维修 repair |
故障上报 → 分派运维 → 到场诊断 → 现场处理或拖回站点 → 回填(诊断结论/处理方式/备件使用)→ 完成 → 关闭;需车厂支持时挂起并关联外部售后单 |
| 挪车 move |
调度/计划触发 → 分派 → 执行(记录起始位置/目标位置/挪车方式)→ 完成;多为计划性,P3 |
| 充电 charge |
低电量事件自动建单 或 计划排程 → 分派 → 到场接桩 → 回填充电前后电量 → 完成 |
| 遇困 rescue(自动驾驶) |
车辆感知困境 → 平台事件 → 自动建单(P1)→ 分派 → 先远程尝试解除(记录过程)→ 成功即完成 / 失败则到场救援 → 完成;如需维修则关联生成维修单 |
| 保养/巡检 maintenance |
按周期/里程计划生成 → 现场按巡检项逐项勾选 → 异常项自动转维修单 → 完成 |
| 清洁消毒 cleaning |
按排期执行 → 附清洁前后照片 → 完成(计划性,只设完成时限) |
| 事故 accident |
现场保护与记录(时间/地点/对方/照片)→ 保险报案 → 定损 → 车辆转维修单处理 → 完成 |
| 基础设施 infra |
充电桩/站点设备故障 → 分派运维到场处理 → 处理结果关联相关充电单;影响充电运营时按 P1/P2 升级 |
| 远程诊断/升级 ota |
优先远程处理(远程诊断/OTA 升级)→ 远程不可解再转线下维修单 → 完成 |
外部工单(车厂系统接入,不进入现场运维分派池)
| 类型 |
流程 |
| 采购 procurement |
车厂经开放 API 建单 → 中心登记跟踪 → 外部回传状态与进度 → 管理后台可查可统计;需现场参与时客服手动关联内部工单 |
| 售后 after_sales |
同上(外部系统维护进度,中心只读同步) |
三、建单来源 → 状态入口
| 来源 |
说明 |
初始状态 |
user_report 游客反馈 |
游客口头反馈,现场/客服代为录入 |
created |
cs_create 客服录入 |
客服接到反馈后代建 |
created |
auto_event 系统事件 |
低电量/遇困/故障报警事件自动建单(可配置自动分派) |
created |
external_api 外部系统 |
车厂推送采购/售后单(幂等:外部单号+来源系统唯一) |
created |
四、各角色可执行操作
| 操作 |
cs 客服 |
cs_leader 客服主管 |
ops 现场运维 |
admin 运营管理员 |
| 建单 / 分派 / 转派 |
✅ |
✅ |
— |
✅ |
| 关闭 / 评论 |
✅ |
✅ |
评论 ✅ |
✅ |
| 接单 / 挂起 / 恢复 / 完成 / 驳回 |
— |
✅ |
✅ |
✅ |
| 已分派后取消审批 |
— |
✅ |
— |
✅ |
| SLA / 人员 / 站点 / 事件映射配置 |
— |
— |
— |
✅ |
| 报表统计 |
— |
✅ |
— |
✅ |
权限实现:RBAC 权限码(oauth 认证中心 woc 应用),映射关系见 docs/OAuth对接计划.md 与 README「登录与权限」章节:
workorder:create(建单)、workorder:assign(分派/转派/建议)、workorder:process(接单/挂起/恢复/完成/驳回/评论/附件)、workorder:close(关闭)、workorder:cancel(取消)、dispatch:view(待派队列)、admin:sla/users/stations/events/stats(系统配置各模块)。