3. MES工单核心对象建模

在多工厂协同场景下,MES 工单不是一张孤立的“生产任务单”,而是一组相互引用的核心对象构成的图。工单是执行主体,工艺路线定义“怎么做”,BOM 定义“用什么”,工序是路线与工单结合后的执行节点,物料是投入与产出,资源是承载工序的产能单元。理解它们的数据结构与关系,是后续跨厂派工、齐套校验、进度回传的基础。

一、六个核心对象的数据结构

工单(WorkOrder)通常包含:工单号、物料编码、计划数量、已完工数量、计划开工/完工时间、状态(创建/下达/开工/完工/关闭)、来源(ERP 计划、返工、试制)、目标工厂与产线。工单号是全局唯一键,跨厂协同时建议采用“工厂码+日期+序列”的编码规则,例如 SH01-20250612-0007。

工艺路线(Routing)描述制造某物料的标准加工顺序,包含:路线版本、适用工厂、工序清单。每个工序记录工序号(如 10、20、30)、工序名称、标准工时、可选工作中心类型、是否关键工序、检验要求。路线是“模板”,不绑定具体工单。

工序(Operation)是工单与路线结合后的实例,包含:工单号、工序号、计划数量、报工数量、合格/不合格数量、状态、实际开始/结束时间、执行工厂与工作中心。工序是 MES 中最小可报工、可派工、可追溯的执行单元。

物料(Material)包含:物料编码、名称、规格、单位、物料类型(原材料/半成品/成品)、批次管理标识、是否关键件。物料编码是 BOM、工单、库存之间的共同语言。

BOM(Bill of Materials)描述父件与子件的用量关系,包含:父件编码、子件编码、单位用量、损耗率、生效版本、适用工厂。BOM 是齐套校验和领料计算的依据。

资源(Resource)包含:资源编码、类型(设备/工装/人员/工作中心)、所属工厂、可用日历、额定产能。资源是工序排产与产能约束的落点。

二、对象之间的关系

工单引用一个物料作为产出,引用一条工艺路线作为加工路径,引用一份 BOM 作为用料清单。工单按路线展开为多条工序,每条工序占用一个或多个资源。BOM 的父件对应工单产出物料,子件对应需要领用的物料。因此,工单是“物料 + 路线 + BOM + 资源”的汇聚点。

MES 工单核心对象关系(以工单为中心) 工单 WorkOrder 工单号 · 数量 · 状态 · 工厂 物料 Material 产出物料 / 领用物料 工艺路线 Routing 版本 · 工序清单 · 工时 BOM 父件 · 子件 · 用量 · 损耗 资源 Resource 设备 / 工作中心 / 产能 工序 Operation(工单 × 路线实例) 工序号 10 / 20 / 30 · 计划数量 · 报工数量 合格 / 不合格 · 状态 · 实际起止时间 执行工厂 · 工作中心 · 检验要求 展开为工序 产出物料 用料清单 占用资源 关键外键 工单.物料编码 → 物料 工单.路线版本 → 路线 工序.工单号 → 工单 BOM.父件 → 工单物料

三、关键外键与版本控制

对象之间靠外键连接,跨厂协同时必须明确外键的“工厂归属”。例如工单表字段 material_code 指向物料主数据,routing_version 指向路线版本,bom_version 指向 BOM 版本。工序表通过 work_order_no + operation_no 唯一确定一条工序记录。

版本控制是易错点。工单下达时应“快照”路线与 BOM 版本,而不是运行时动态取最新版本。否则当工艺工程师修改路线后,已下达工单的工序结构会漂移,导致报工数据对不上。建议在工单表冗余存储 routing_snapshot 与 bom_snapshot,或建立工单-路线版本关联表。

四、一个可落地的建模示例

假设上海工厂接到工单 SH01-20250612-0007,产出物料 FG-A100(成品 A),计划数量 500 件。其工艺路线版本 RT-A100-V3 包含三道工序:10 下料、20 装配、30 测试。BOM 版本 BM-A100-V2 包含子件 RM-STEEL-01(用量 2.5 kg/件,损耗 3%)和 RM-BOLT-02(用量 8 颗/件,损耗 1%)。

据此可计算领料需求:钢材 = 500 × 2.5 × (1+3%) = 1287.5 kg;螺栓 = 500 × 8 × (1+1%) = 4040 颗。工序 20 装配占用工作中心 WC-ASM-01,标准工时 12 分钟/件,则理论产能占用为 500 × 12 / 60 = 100 小时。这些数值是示例假设,用于说明对象之间的计算关系。

五、建模检查清单

检查项判断标准常见问题
工单-物料外键工单产出物料存在于物料主数据物料编码大小写不一致
路线版本快照工单下达后工序结构不随路线修改而变运行时取最新版本导致漂移
BOM 版本快照领料计算基于下达时版本版本切换后用量对不上
工序唯一性工单号+工序号唯一重复工序号导致报工覆盖
资源归属工作中心属于执行工厂跨厂引用导致排产失败
数量口径计划、报工、合格、不合格口径一致单位不统一(件/箱)
建模时优先保证“工单-工序-物料-资源”四条主线的外键完整,再补充 BOM 与路线的版本快照。跨厂协同中,工厂码应作为工单、工序、资源三张表的必填字段,避免跨厂数据串用。
不要把工艺路线直接当作工单工序使用。路线是模板,工单工序是实例;路线修改不应影响已下达工单。若确实需要变更,应走工单变更流程并记录变更前后版本,而不是直接覆盖。

掌握这六个对象的结构与关系后,后续的跨厂派工、齐套校验、进度汇总才有统一的数据基础。工单是协同的锚点,工序是执行的粒度,物料与 BOM 决定齐套,资源决定产能,路线决定顺序——五者缺一不可。