背景和痛点 工作流引擎如 Flowable、Camunda 功能强大,但对于中小项目来说学习成本和配置复杂度偏高。很多场景下,开发者需要的只是一个能快速跑起来、方便修改和二次开发的轻量级审批流系统。本文介绍的就是这样一套方案
技术架构 后端:Spring Boot 2.7 + Flowable 7.2 + MyBatis-Plus
前端:Vue 3 + Element Plus + bpmn-js
数据库:H2(内嵌,开箱即用)/ MySQL(生产环境)
部署:一个 Jar 包,解压即运行
整体架构 系统采用前后端分离架构,前端编译后打包到后端 Jar 中,实现一键部署。
层级 技术选型 说明 前端 Vue 3 + Element Plus 现代化 UI 框架 流程设计 bpmn-js BPMN 2.0 流程设计器 表单设计 form-create 可视化 表单设计器 后端 Spring Boot 2.7 基础框架 流程引擎 Flowable 7.2 核心工作流引擎 ORM MyBatis-Plus 数据访问层 数据层 H2 / MySQL H2 用于开箱即用,MySQL 用于生产 缓存 Redis 会话管理、分布式锁 部署 Jar 包 + 内置 JRE 解压即运行 数据流向 用户操作 → 前端 Vue 组件
API 请求 → Spring Boot Controller
业务处理 → Service 层调用 Flowable API
数据持久化 → MyBatis-Plus / Flowable 自动建表
流程驱动 → Flowable 引擎解析 BPMN 并推进流程
核心扩展点 bpmn-js 扩展:通过 customForm.json 为流程节点增加自定义属性(可写字段、只读字段等)
Flowable 监听器:支持任务创建、完成等事件的自定义处理
核心功能实现
- 流程设计器集成 基于 bpmn-js 实现可视化流程设计,支持 BPMN 2.0 标准。通过自定义 customForm.json 扩展了节点属性(可写字段、只读字段、办理人配置等)
2. 表单设计器集成
基于 form-create 实现拖拽式表单设计,支持文本、数字、日期、下拉框、表格布局等组件。
3. 条件分支实现
以请假流程为例:配置表达式 ${leaveDays > 3} 实现天数判断,满足条件时走总经理审批。
4. 办理人动态分配
在 BPMN 节点上配置 custom:assignee,通过后端 addUserTaskAttributes 转换为 flowable:assignee,支持指定用户、角色、发起人等类型。
5.字段级权限控制
在流程设计时为每个节点配置可写/只读字段,前端 TaskProcessDialog 根据权限动态控制表单编辑状态
发起节点,都是可以写的字段
处理任务,字段都设置只读。
项目亮点 ✅ 开箱即用:内嵌 H2 数据库,解压双击启动
✅ 流程设计:BPMN 2.0 可视化拖拽
✅ 表单设计:拖拽生成,所见即所得
✅ 条件分支:支持金额、天数等复杂判断
✅ 字段权限:节点级可写/只读控制
开源版 vs 商业版
功能 开源版 商业版
流程/表单设计 ✅ ✅
条件分支 ✅ ✅
会签/驳回 ✅ ✅
字段权限 ✅ ✅
数据库 H2(内嵌) MySQL
生产环境推荐 ❌ ✅
源码 交付 GitHub 公开 私有仓库完整源码 技术支持 社区 1 年专属 商业授权 Apache 2.0 商业授权
开源版功能齐全,适合学习体验;商业版专为生产环境打造,数据库更强、源码私有、有技术支持。
如何获取 开源版:GitHub 地址:gitee.com/longsebo/sm…
B站视频链接:【一个zip压缩包搞定企业审批流Flowable工作流系统演示】