MES + Flowable 全局全流程顶层梳理 + 五大独立流程BPMN结构 + 质检信号嵌入/打断方案 + 可直接落地配置&代码
一、整体架构总原则(定死规范,后续开发不走偏)
- 流程按部门物理拆分,各自独立BPMN、独立配置页面、互不侵入:
◦ 销售部:销售订单主流程
◦ 工艺部:自制工序自动流转子流程(全ServiceTask)
◦ 采购外协:委外生产子流程
◦ 仓库/车间:通用单据审核子流程
◦ 质检部:质检巡检/首检/完工检独立流程(单独维护,不画进工序流程)
-
工序正常走 ServiceTask 全自动流转,无人工审批、无待办。
-
单据、订单、委外用 UserTask 人工角色审核,审完回调引擎自动推进。
-
质检与工序不合并在一张流程图,采用 Flowable 全局信号事件 跨流程解耦联动:
◦ 工序流程预留「信号捕获监听点」
◦ 质检流程完成后发「合格/不合格信号」
◦ 不合格自动打断、挂起、回退工序、插入返工流程
- 销售订单审核后,引擎自动分支:自制生产 / 委外生产。
二、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 组装/总装
↓
调用【单据审核子流程-入库单审核】
↓
子流程结束
关键设计
-
全程 ServiceTask,正常无质检时一路自动跑到底。
-
在关键工序之间预埋信号捕获节点,不写任何质检逻辑。
-
工艺只维护工序顺序,完全不用管质检规则、审核角色。
-
信号没触发、可配置超时自动放行,适配免检场景。
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模型器 → 全局信号定义:
-
SIGNAL_QUALITY_PASS 质检合格,放行工序继续流转
-
SIGNAL_QUALITY_FAIL 质检不合格,打断/挂起原有工序自动流程
-
SIGNAL_QUALITY_RECOVER 返工修复完成,恢复工序自动流转
五、质检与工序跨流程联动逻辑(核心业务闭环)
场景1:巡检合格
-
工序自动流程走到「信号捕获节点」→ 暂停等待信号
-
系统自动触发/手动触发 启动独立质检流程
-
质检员录入结果 → 审核通过
-
质检流程发送 SIGNAL_QUALITY_PASS
-
工序流程捕获信号 → 解除等待,继续自动往下走后续工序
场景2:巡检不合格(核心:打断原有自动工序)
-
质检结果=不合格,走不良评审分支
-
质检流程发送 SIGNAL_QUALITY_FAIL
-
工序流程绑定边界信号中断事件,收到信号立刻:
◦ 暂停当前所有自动工序推进
◦ 锁定工单/产线产能
◦ 可自动回退到上一工序节点 或 流程挂起
-
走完返工返修流程后
-
发送 SIGNAL_QUALITY_RECOVER
-
工序流程被唤醒,从断点继续自动流转
六、Flowable 关键配置步骤(照着直接配)
1、工序流程配置
-
节点拖拽:中间信号捕获事件
-
绑定对应全局信号名称
-
不配置任何负责人、不生成待办
-
捕获到合格信号:自动向下流转
-
增加 边界中断信号事件 绑定 SIGNAL_QUALITY_FAIL
◦ 触发后中断当前流程路径、支持跳转回上工序节点
2、质检流程配置
-
全部独立画BPMN,不和工序放一起
-
结果网关配置表达式:
${result == 'PASS'}
${result == 'FAIL'}
-
配置信号发送事件,选择对应全局信号
-
UserTask绑定质检专属角色,和若依角色编码打通
3、流程隔离配置(界面完全分开)
- 若依前端菜单分三个入口:
◦ 工艺流程配置(只展示SELF_PROC_SUB)
◦ 单据&委外流程配置
◦ 质检流程配置(只展示QUALITY_INSPECT_SUB)
- 后端按流程分类标识做数据隔离,各部门只能看到自己的流程定义
七、核心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原生信号/网关/子流程,无需自研流转引擎