Mes顶层梳理架构设计

MES + Flowable 全局全流程顶层梳理 + 五大独立流程BPMN结构 + 质检信号嵌入/打断方案 + 可直接落地配置&代码

一、整体架构总原则(定死规范,后续开发不走偏)

  1. 流程按部门物理拆分,各自独立BPMN、独立配置页面、互不侵入:

◦ 销售部:销售订单主流程

◦ 工艺部:自制工序自动流转子流程(全ServiceTask)

◦ 采购外协:委外生产子流程

◦ 仓库/车间:通用单据审核子流程

◦ 质检部:质检巡检/首检/完工检独立流程(单独维护,不画进工序流程)

  1. 工序正常走 ServiceTask 全自动流转,无人工审批、无待办。

  2. 单据、订单、委外用 UserTask 人工角色审核,审完回调引擎自动推进。

  3. 质检与工序不合并在一张流程图,采用 Flowable 全局信号事件 跨流程解耦联动:

◦ 工序流程预留「信号捕获监听点」

◦ 质检流程完成后发「合格/不合格信号」

◦ 不合格自动打断、挂起、回退工序、插入返工流程

  1. 销售订单审核后,引擎自动分支:自制生产 / 委外生产。
    二、MES 全局5大流程体系清单
    流程编码 流程名称 维护部门 节点类型特征 核心能力
    SALE_ORDER_MAIN 销售订单主流程 销售部 UserTask+排他网关+子流程调用 订单审核、自制/委外分支、全局闭环
    SELF_PROC_SUB 自制工序自动子流程 工艺部 ServiceTask+信号捕获事件 工序全自动流转、预留质检嵌入点
    OUTSOURCE_SUB 委外生产子流程 采购/外协 ServiceTask+UserTask 委外下单、发料、收货、多级审核
    BILL_AUDIT_SUB 单据审核子流程 仓库/车间 UserTask为主 领料/退料/入库单独立审核链路
    QUALITY_INSPECT_SUB 质检巡检独立流程 质检部 UserTask+网关+信号发送事件 巡检/首检/完工检、合格放行、不合格打断返工

三、五大流程完整BPMN结构化设计(可直接导入建模器)

1)销售订单主流程 SALE_ORDER_MAIN

开始事件

UserTask:销售订单审核(候选角色:销售主管)

排他网关:判定流程变量 orderType

├─ ${orderType=='SELF'} → 调用【自制工序自动子流程】

└─ ${orderType=='OUTSRC'} → 调用【委外生产子流程】

汇聚合并网关

ServiceTask:订单履约归档、数据闭环

结束事件

说明

• 只管订单审核和分支路由,不关心工序、不关心质检。

• 子流程为引用模式,主流程看不到子流程内部节点。

2)自制工序自动子流程 SELF_PROC_SUB(工艺专属、全自动)

子流程开始

ServiceTask:工单拆解、工艺路线初始化

ServiceTask:工序10 下料加工(自动派工、自动流转)

【中间信号捕获事件】信号名:SIGNAL_INSPECT_10 巡检监听点

ServiceTask:工序20 机加工(自动报工推进)

【中间信号捕获事件】信号名:SIGNAL_INSPECT_20 完工检监听点

ServiceTask:工序30 组装/总装

调用【单据审核子流程-入库单审核】

子流程结束

关键设计

  1. 全程 ServiceTask,正常无质检时一路自动跑到底。

  2. 在关键工序之间预埋信号捕获节点,不写任何质检逻辑。

  3. 工艺只维护工序顺序,完全不用管质检规则、审核角色。

  4. 信号没触发、可配置超时自动放行,适配免检场景。

    3)委外生产子流程 OUTSOURCE_SUB(采购外协专属)

    子流程开始

    ServiceTask:自动创建委外订单、匹配供应商

    UserTask:委外方案&价格审核(采购经理)

    ServiceTask:生成委外发料单

    UserTask:委外发料出库审核(仓库)

    UserTask:委外到货验收(品管/外协)

    ServiceTask:委外入库、成本归集

    子流程结束

    4)通用单据审核子流程 BILL_AUDIT_SUB(仓库车间共用)

    子流程开始

    UserTask:单据一级审核

    UserTask:单据二级复核(可配置是否必选)

    ServiceTask:审核完成自动更新单据状态、同步库存

    子流程结束

    支持:领料单、补料单、退料单、入库单复用此流程,传单据类型变量即可分支。

    5)质检巡检独立流程 QUALITY_INSPECT_SUB(质检部单独维护 核心)

    子流程开始

    ServiceTask:生成巡检任务、绑定工单+工序

    UserTask:巡检录入 & 质检审核(候选角色:质检员)

    排他网关:质检结果 result

    ├─ 分支1:${result=='PASS'}

    中间信号发送事件:发送 SIGNAL_QUALITY_PASS

    质检流程结束

└─ 分支2:${result=='FAIL'}

UserTask:不良评审、返工方案审批

中间信号发送事件:发送 SIGNAL_QUALITY_FAIL

嵌入返工子流程(返修/重工/报废)

返工完成后发送 SIGNAL_QUALITY_RECOVER

质检流程结束

四、全局定义3个Flowable全局信号(必须先定义)

在Flowable模型器 → 全局信号定义:

  1. SIGNAL_QUALITY_PASS 质检合格,放行工序继续流转

  2. SIGNAL_QUALITY_FAIL 质检不合格,打断/挂起原有工序自动流程

  3. SIGNAL_QUALITY_RECOVER 返工修复完成,恢复工序自动流转

    五、质检与工序跨流程联动逻辑(核心业务闭环)

场景1:巡检合格

  1. 工序自动流程走到「信号捕获节点」→ 暂停等待信号

  2. 系统自动触发/手动触发 启动独立质检流程

  3. 质检员录入结果 → 审核通过

  4. 质检流程发送 SIGNAL_QUALITY_PASS

  5. 工序流程捕获信号 → 解除等待,继续自动往下走后续工序

场景2:巡检不合格(核心:打断原有自动工序)

  1. 质检结果=不合格,走不良评审分支

  2. 质检流程发送 SIGNAL_QUALITY_FAIL

  3. 工序流程绑定边界信号中断事件,收到信号立刻:

◦ 暂停当前所有自动工序推进

◦ 锁定工单/产线产能

◦ 可自动回退到上一工序节点 或 流程挂起

  1. 走完返工返修流程后

  2. 发送 SIGNAL_QUALITY_RECOVER

  3. 工序流程被唤醒,从断点继续自动流转

    六、Flowable 关键配置步骤(照着直接配)

1、工序流程配置

  1. 节点拖拽:中间信号捕获事件

  2. 绑定对应全局信号名称

  3. 不配置任何负责人、不生成待办

  4. 捕获到合格信号:自动向下流转

  5. 增加 边界中断信号事件 绑定 SIGNAL_QUALITY_FAIL

◦ 触发后中断当前流程路径、支持跳转回上工序节点

2、质检流程配置

  1. 全部独立画BPMN,不和工序放一起

  2. 结果网关配置表达式:

    ${result == 'PASS'}

    ${result == 'FAIL'}

  3. 配置信号发送事件,选择对应全局信号

  4. UserTask绑定质检专属角色,和若依角色编码打通

3、流程隔离配置(界面完全分开)

  1. 若依前端菜单分三个入口:

◦ 工艺流程配置(只展示SELF_PROC_SUB)

◦ 单据&委外流程配置

◦ 质检流程配置(只展示QUALITY_INSPECT_SUB)

  1. 后端按流程分类标识做数据隔离,各部门只能看到自己的流程定义
    七、核心Java代码模板(可直接复用)

1、ServiceTask 通用委托类(工序自动执行)

@Component("procedureAutoDelegate")

public class ProcedureAutoDelegate implements JavaDelegate {

复制代码
@Autowired
private IMesProcedureService procedureService;

@Override
public void execute(DelegateExecution execution) {
    // 获取流程变量
    Long workOrderId = Long.valueOf(execution.getVariable("workOrderId").toString());
    String taskKey = execution.getCurrentActivityId();

    // 执行业务:自动派工、自动工序状态推进、校验报工
    procedureService.autoProcedureRun(workOrderId, taskKey);

    // 执行完自动流转下一个节点,无需人工干预
}

}

2、质检完成后发送信号工具类

@Service

public class FlowableSignalService {

复制代码
@Autowired
private RuntimeService runtimeService;

// 发送全局信号,触发跨流程联动
public void sendGlobalSignal(String signalName) {
    runtimeService.signalEventReceived(signalName);
}

}

3、单据审核完成回调引擎

// MES单据审核完成后,完成当前UserTask,让流程自动往下走

public void auditFinish(Long billId, String auditResult){

// 1. 更新MES单据审核状态

// 2. 查询当前流程待办任务

// 3. 完成任务,带入审核结果变量

flowableTaskService.completeTask(billId, Map.of("result", auditResult));

}

八、全局方案特色亮点

✅ 工序全自动流转,无需人工审核

✅ 单据、订单可按不同角色分级审核

✅ 销售订单审核后自动分支自制/委外

✅ 质检流程完全独立配置、质检部单独维护

✅ 质检可嵌入工序点位、不合格自动打断原有自动化流程

✅ 各流程配置界面完全隔离,互不干扰

✅ 基于Flowable原生信号/网关/子流程,无需自研流转引擎

相关推荐
学习3人组1 天前
Mes全连路架构图
java·erp
雷工笔记2 天前
MES系统中批次管理,质量问题追溯方案
mes
雷工笔记2 天前
MES|现场无法做到一物一码,是否可实现批次管理?
mes
雷工笔记6 天前
根据生产计划生成采购需求指导清单的思路
mes
深念Y7 天前
从0到1:推拿头疗店ERP系统的需求分析与架构设计全复盘
物联网·需求分析·跨平台·saas·数字化·项目·erp
学习3人组9 天前
成品批次信息及全链路溯源汇报材料(大客户专用)
网络·erp·mes
摩尔元数10 天前
2026摩尔元数AI转型:以AI原生智能体,重构新一代工业软件
人工智能·低代码·重构·制造·mes
Henry-SAP12 天前
SAP MRP销售订单与预测驱动的业务解析
人工智能·sap·erp
Henry-SAP13 天前
SAP MRP计划策略与需求类型对净需求计算业务视角解析
人工智能·sap·erp