4. 工单状态机与流转控制
工单不是一张静态的纸,而是一个有生命周期的对象。从计划员在系统里敲下第一行数据,到最终关闭归档,工单会经历若干明确的状态。状态机的作用,就是把这些状态和它们之间的迁移条件固定下来,让系统、工位、人员对“这张工单现在能不能做、下一步该谁动”有一致判断。没有状态机,工单就只是一条记录,谁都能改、谁都能开工,现场必然混乱。
一、五个核心状态的定义
生产工单通常至少需要五个状态,每个状态对应一个明确的业务含义和责任主体:
- 创建(Created):工单已在系统中生成,包含物料、数量、工艺路线、计划开工时间等基本信息,但尚未获得生产授权。此时工单可以被修改、删除,车间不应看到它,更不能领料或开工。
- 下达(Released):计划确认工单可执行,正式向车间发布。下达意味着物料需求、工艺文件、工装资源已确认可用,工单进入可执行队列。下达后关键字段(如数量、工艺路线)应锁定,修改需走变更流程。
- 开工(In Progress):工位已接收工单并开始实际加工。此时系统记录实际开工时间、操作人、设备,并开始采集产量与工时。同一工单在同一时刻通常只允许一个工位处于开工状态,防止重复生产。
- 完工(Completed):工单要求的数量已全部产出并通过报工确认。完工不等于结束,还需要处理剩余物料、质检结果和工时结算。
- 关闭(Closed):工单的所有后续事务处理完毕,正式归档。关闭后工单只读,不再参与排产和物料计算。
这五个状态构成主干。实际项目中还会插入“暂停(Hold)”“取消(Cancelled)”等分支状态,但主干必须清晰,否则状态机就失去了约束力。
二、状态迁移条件
状态迁移不是点一下按钮就完成的,每个迁移都有前置条件。以下是一组可直接参考的迁移规则示例:
| 迁移 | 触发动作 | 前置条件 | 系统记录 |
|---|---|---|---|
| 创建 → 下达 | 计划员下达 | 物料齐套检查通过、工艺路线已绑定、计划开工时间已确认 | 下达人、下达时间、工单版本号 |
| 下达 → 开工 | 工位操作员开工 | 工单已派工到该工位、设备可用、首件检验要求已明确 | 实际开工时间、操作人、设备编号 |
| 开工 → 完工 | 操作员报工 | 累计报工数量 ≥ 工单数量、质检结果合格或已让步接收 | 实际完工时间、合格数、不合格数 |
| 完工 → 关闭 | 计划员/系统关闭 | 剩余物料已退库、工时已确认、工单差异已处理 | 关闭人、关闭时间、差异说明 |
这些条件中,物料齐套检查和质检结果是两个最容易出问题的环节。物料不齐就下达,车间开工后才发现缺料,工单只能挂起;质检未完成就完工,后续发现批量不合格,工单状态已经无法回退到开工,只能走异常处理流程。
三、状态流转的完整视图
下面的状态机图展示了五个核心状态、迁移方向以及异常分支。图中实线为主干迁移,虚线为异常或回退路径,标注文字为触发条件。
四、异常处理:状态机必须留出的口子
正常流转只覆盖了理想情况。实际生产中,缺料、设备故障、质量异常、计划变更随时发生,状态机必须为这些情况定义明确的处理路径,而不是让操作员随意改状态。
缺料暂停。工单已下达但物料未到齐,工位开工时系统校验物料库存不足,应阻止开工并提示缺料明细。此时工单保持“下达”状态,但可标记为“待料”,计划员看到后调整排产顺序。如果已经开工才发现缺料,工单转入“暂停”,记录暂停原因和暂停时间,物料补齐后恢复为“开工”,暂停时长单独统计,不计入有效工时。
质量返工。完工报工时质检判定不合格,工单不能直接关闭。系统应将工单从“完工”回退到“开工”或进入“返工”子状态,返工数量单独记录,返工完成后重新报工。返工次数和返工工时是后续质量分析的重要数据,必须在状态迁移时自动记录,不能靠人工补录。
计划取消。工单创建后、下达前,如果计划变更,可以直接取消,工单进入“取消”终态。但如果已经下达甚至已经开工,取消就不能简单删除,必须走“关闭”流程:退料、结算已发生工时、记录取消原因。已开工工单的取消,本质上是一次异常关闭,需要计划、生产、质量三方确认。
状态回退的权限控制。状态机最怕的是“谁都能改”。建议按角色分配迁移权限:计划员负责创建、下达、关闭;工位操作员负责开工、报工完工;班组长或计划员负责暂停、恢复;质量人员负责判定返工。每次迁移都记录操作人、时间戳和原因码,形成完整的审计轨迹。
五、一个可落地的状态迁移记录表
下面是一张工单状态迁移日志的示例结构,实际系统中每次状态变化都应写入这样一条记录。字段可根据MES或ERP的实际数据模型调整,但核心信息不能少:
工单号: WO-20250612-003
物料: 电机端盖 A2-301
数量: 500
迁移记录:
[1] 2025-06-12 08:15 创建 → 下达 操作人: 张计划 原因: 齐套确认通过
[2] 2025-06-12 09:40 下达 → 开工 操作人: 李操作 设备: CNC-07
[3] 2025-06-12 11:20 开工 → 暂停 操作人: 李操作 原因: 刀具磨损,等待换刀
[4] 2025-06-12 11:55 暂停 → 开工 操作人: 李操作 原因: 换刀完成
[5] 2025-06-12 16:30 开工 → 完工 操作人: 李操作 报工: 500件,合格498,不合格2
[6] 2025-06-12 17:10 完工 → 关闭 操作人: 张计划 原因: 退料完成,工时确认
这张日志的价值在于:任何时刻都能回答“这张工单现在是什么状态、为什么在这个状态、谁把它变成这个状态的”。当出现交付延误或质量问题时,回溯日志就能定位到具体环节,而不是靠回忆和口头描述。