Skip to content

流程功能设计 ​

这篇解决什么 ​

流程中心怎么分层:Flowable 是引擎,yudao-module-bpm 管模型 / 表单 / 待办 / 实例,OA / HRM / 合同等单据只实现 FlowBillService 回写。读完先对模块边界和表,再进接入、设计器、办理等功能篇。

引擎用 Flowable,BOM 里 flowable.version 为 8.0.0。默认端口 48080,管理端前缀 /admin-api。工程启动见 快速开始。

业务流程及架构 ​

流程中心自己就是引擎,不是业务台账。模型发布后生成 ACT_RE_PROCDEF;发起和待办走 BpmProcessInstanceController / BpmTaskController;单据状态由各模块监听回写。

示意图:左客户端。中间 BPM 调 Flowable,业务单据只提交 key 并接收状态事件。

名称说明仓库路径
流程配置四步向导、两种表单类型流程配置
业务表单自己建表、写 list / info,formType = 20业务表单开发
流程表单设计器拖控件,formType = 10流程表单设计
BPMN复杂图画布,类型 10流程设计器(BPMN)
SIMPLE默认竖排设计器,类型 20,发布时转 BPMN流程设计器(钉钉、飞书)
办理通过 / 不通过 / 退回审批通过、不通过、驳回
选人节点 candidateStrategy选择审批人
多人会签 / 或签 / 依次会签、或签、依次审批
发起大厅、我的流程、取消、重提流程发起、取消、重新发起
转办抄送转办 / 委派 / 抄送我的转办、委派、抄送
加签before / after审批加签、减签
表达式菜单模板 + 节点 ${}流程表达式
监听器执行 / 任务监听模板执行监听器、任务监听器
通知短信 bpm_* + 业务回写事件流程审批通知
移动同一套 /admin-api/bpm/**移动端审批
达梦JDBC 产品名映射 Oracle 方言工作流达梦适配

不要用目录名当流程 key

BPM 模块 Java 里硬编码的演示 key 只有 oa_leave。用车是 oa_car_apply_bill,入职是 hr_employee_entry_bill。全部业务 key 以各模块单据枚举和已发布模型的 KEY_ 为准。

数据表 ER ​

主干表按本仓库 DO 画出。引擎运行表还有 ACT_RU_TASK、ACT_HI_PROCINST 等,图上只留业务扩展。

示意图:按本仓库生成的 ER。bpm_form 只服务流程表单;业务表单路径记在定义扩展上。

前后端代码 ​

名称说明仓库路径
模块api 枚举 + server 实现ruoyi-office/yudao-module-bpm/
单体引入yudao-module-bpm-serverruoyi-office/yudao-server/pom.xml
引擎装配达梦 / openGauss、作业线程池.../framework/flowable/config/BpmFlowableConfiguration.java
模型接口GET /bpm/model/list,发布、导入.../controller/admin/definition/BpmModelController.java
实例 / 任务发起、待办、通过、加签BpmProcessInstanceController、BpmTaskController
单据回写updateProcessStatus / onProcessApprovedyudao-framework/yudao-common/.../FlowBillService.java
管理端模型、表单、待办、发起ruoyi-office-vben/apps/web-antd/src/views/bpm/
移动端引擎页在 pages-bpmruoyi-office-uniapp/src/pages-bpm/

官方菜单:1185 流程中心(/bpm)。发起 2720(/bpm/start-process),流程设置 1186,模型 1193(/bpm/manager/model),表单 1187,待办 1207,已办 1208,我的流程 1201,抄送 2713。看不到菜单先查角色。不要引用已删的 5099。

流程模型列表

本系统截图:流程中心 → 流程设置 → 流程模型。分类下能看到已发布的用车、用印等模型。

发起流程

本系统截图:流程中心 → 发起流程。业务表单和流程表单都从这里进,自定义路径必须对上。

新建模型默认 BpmModelTypeEnum.SIMPLE = 20。复杂图再改 BPMN。PC 单据页约定 list / info;模型 formCustomViewPath 必须对这两处。

功能开启 ​

单体 -P boot 时已经依赖 BPM 实现,没有单独的「流程开关」页。启动 YudaoServerApplication 即可。微服务 -P cloud 再单独跑 BpmServerApplication。

客户默认包 ruoyi-office-db/dump/latest/:先 schema_*.sql 再 static_data_*.sql,带 bpm_* 表、ACT_* / FLW_* 引擎表、菜单、分类和已发布模型。以后改表走 ruoyi-office-db/update/。

xxl_job_*.sql、nacos_schema.sql 不要导进业务库。Linux 上引擎表名必须按大写导出,ACT_GE_PROPERTY 和 act_ge_property 是两张表。

yaml
flowable:
  database-schema-update: true
  check-process-definitions: false
  history-level: audit

本地 application.yaml 可以开自动补表。生产、达梦保持 false,表结构以 dump 和当月 update/ 为准。check-process-definitions: false 表示不扫 resources/processes 自动部署。

名称说明仓库路径
formType 10流程表单,绑 bpm_formBpmModelFormTypeEnum.NORMAL
formType 20业务表单,填两条 Vue 路径BpmModelFormTypeEnum.CUSTOM
演示请假oa_leave,表 bpm_oa_leaveBpmOALeaveServiceImpl.PROCESS_KEY
用车oa_car_apply_billOaBillTypeEnum
入职hr_employee_entry_billHrmBillTypeEnum

先对模型再改页面

流程设置里能搜到已发布的 oa_car_apply_bill 等。业务表单自定义路径对 list / info,不要指向已删的 apply/detail。

java
public static final String PROCESS_KEY = "oa_leave";
OA_CAR_APPLY_BILL("101", "用车申请单","oa_car_apply_bill"),
HRM_EMPLOYEE_ENTRY_BILL("201", "员工入职申请单", "hr_employee_entry_bill"),

摘自 BpmOALeaveServiceImpl、OaBillTypeEnum、HrmBillTypeEnum。第三段才是 Flowable 的 KEY_。

示意图:先库和菜单,再对 key,最后接单据或设计器。

旧文 流程引擎开启 已并入本页,请收藏本篇。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版