2. 食品生产工单的核心数据模型

在食品MES中,生产工单不是一张孤立的“任务单”,而是一组相互约束的主数据在时间轴上的快照。理解工单的数据模型,本质上要回答三个问题:这张工单要做什么产品、按什么配方和工艺去做、做完之后如何追溯。围绕这三个问题,工单主数据、物料清单(BOM)、工艺路线、配方版本、批次与效期字段、状态机共同构成了一个可执行、可追溯、可审计的数据结构。

工单主数据:工单的“身份证”

工单主数据承载工单的身份与计划属性,通常包括工单号、产品编码、计划数量、计量单位、计划开始与结束时间、生产线/车间、工单类型(正式生产、返工、试产、样品)、优先级、销售订单或预测来源、责任班组等。食品行业的特殊性在于,工单号往往需要与批次号建立映射关系,因为同一工单可能产出多个批次,而每个批次又必须能反向定位到工单。

设计工单主数据时,建议把“计划数量”和“实际产出数量”分开建模,并保留“损耗数量”“副产物数量”字段。食品加工中原料得率波动大,例如某烘焙工单计划投料1000 kg面粉,实际产出成品可能因水分损失、边角料而低于理论值,若只记录一个数量字段,后续成本核算和物料平衡就无法闭环。

BOM与配方版本:从“物料清单”到“可执行配方”

BOM描述产品与物料之间的组成关系,但在食品行业,BOM必须与配方版本绑定才有意义。同一产品在不同版本下,辅料比例、添加剂用量、过敏原标识可能完全不同。因此工单在创建时必须锁定一个配方版本号,而不是引用“最新版本”。常见做法是:BOM行上记录物料编码、用量、单位、损耗率、投料工序、是否关键物料、过敏原标记;配方版本则记录版本号、生效日期、失效日期、审批状态。

举例来说,某乳饮料工单锁定配方版本 V3.2,BOM中白砂糖用量为 45 kg/批次,稳定剂 1.2 kg/批次,若现场领料时发现稳定剂实际库存为 V3.1 版本对应的 1.0 kg 规格,系统应阻止发料或触发版本变更审批,而不是让操作员“先用着”。这正是配方版本字段在工单模型中的约束价值。

工艺路线:工序、工时与关键控制点

工艺路线定义工单经过的工序序列,包括工序号、工序名称、工作中心、标准工时、前后置关系、是否检验点、关键控制点(CCP)参数。食品工单的工艺路线通常需要携带“工序级参数”,例如杀菌工序的温度下限、保持时间,冷却工序的终点温度,金属探测工序的灵敏度阈值。这些参数不是工艺路线的静态描述,而应作为工单执行时的判定依据写入工单工序明细。

一个实用的建模方式是:工艺路线主数据保存“标准值”,工单工序明细保存“本工单适用值”。当某工单因原料微生物负载偏高而需要提高杀菌温度时,调整发生在工单层,不污染主数据,同时保留变更记录。

批次与效期字段:食品追溯的骨架

食品工单必须携带批次相关字段:工单批次号、原料批次绑定关系、生产日期、保质期天数、到期日期、储存条件、留样标识。关键设计点在于“效期是计算字段还是存储字段”。建议同时保留生产日期和保质期天数,到期日期由系统计算并冗余存储,便于查询和预警;当保质期规则变更时,以工单锁定时的规则为准,避免历史工单被新规则改写。

此外,工单应记录“批次拆分”能力:一个工单产出多个包装批次时,每个批次继承工单的配方版本和工艺路线,但拥有独立的批次号和效期。这样既保证追溯粒度,又避免工单数量爆炸。

工单状态机:让流转可控制、可审计

工单状态机是数据模型的“行为层”。食品工单常见状态包括:草稿、已下达、已领料、生产中、待检验、已完工、已关闭、已取消。状态之间的迁移必须附带前置条件和副作用,例如“已下达→已领料”要求BOM已锁定且原料批次已绑定;“生产中→待检验”要求关键工序已采集CCP参数;“待检验→已完工”要求检验放行。状态机还应支持“挂起”和“恢复”,用于处理设备故障或质量异常。

食品生产工单核心数据模型 工单主数据 工单号 / 产品编码 / 计划数量 生产线 / 工单类型 / 优先级 计划起止时间 / 来源订单 计划量 / 实际产出 / 损耗量 BOM + 配方版本 物料编码 / 用量 / 损耗率 投料工序 / 关键物料标记 配方版本号 / 生效失效日期 过敏原标识 / 审批状态 工艺路线 工序号 / 工序名称 / 工作中心 标准工时 / 前后置关系 检验点 / CCP参数阈值 工单工序适用值(覆盖标准值) 锁定 引用 批次与效期字段 工单批次号 / 原料批次绑定 生产日期 / 保质期天数 到期日期(计算并冗余) 储存条件 / 留样标识 工单状态机(含前置条件与副作用) 草稿 已下达 已领料 生产中 待检验 已完工 已关闭 下达 领料 开工 报检 放行 关闭 检验合格 产出拆分 追溯 工单创建时锁定配方版本与工艺路线;批次继承工单版本,状态迁移受前置条件约束

状态机的实现要点是“迁移表驱动”而非硬编码。把“当前状态、目标状态、触发动作、前置条件、副作用”配置成一张迁移表,例如:

当前状态   目标状态   触发动作   前置条件                 副作用
已下达     已领料     确认领料   BOM已锁定且批次已绑定     扣减库存、记录领料批次
生产中     待检验     报检       关键工序CCP参数已采集     生成检验任务
待检验     已完工     检验放行   检验结论为合格            登记产出批次与效期
已完工     已关闭     月结关闭   无未结质量异常            锁定工单、归档追溯链

这张迁移表既是开发依据,也是运维排障时的检查清单。当现场反馈“工单无法报检”时,按表核对前置条件,通常能快速定位到CCP参数缺失或检验任务未生成。

模型之间的关系与落地建议

上述六类数据并非平级并列:工单主数据是根对象,BOM与配方版本、工艺路线在工单创建时被“快照锁定”,批次与效期字段在产出时生成并回挂工单,状态机则贯穿全生命周期约束每一次变更。落地时建议遵循三条原则:第一,工单层保存快照,主数据变更不影响在制工单;第二,所有状态迁移留痕,记录操作人、时间、前置条件校验结果;第三,批次与工单双向可查,确保从成品批号能追溯到工单、配方版本、原料批次和CCP记录。做到这三点,工单模型才真正支撑起食品生产的执行与追溯。