基于 Flowable 7.2 的审批流系统解压即用

0 阅读3分钟

背景和痛点 工作流引擎如 Flowable、Camunda 功能强大,但对于中小项目来说学习成本和配置复杂度偏高。很多场景下,开发者需要的只是一个能快速跑起来、方便修改和二次开发的轻量级审批流系统。本文介绍的就是这样一套方案

技术架构 后端:Spring Boot 2.7 + Flowable 7.2 + MyBatis-Plus

前端:Vue 3 + Element Plus + bpmn-js

数据库:H2(内嵌,开箱即用)/ MySQL(生产环境)

部署:一个 Jar 包,解压即运行

image.png

整体架构 系统采用前后端分离架构,前端编译后打包到后端 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 监听器:支持任务创建、完成等事件的自定义处理

核心功能实现

  1. 流程设计器集成 基于 bpmn-js 实现可视化流程设计,支持 BPMN 2.0 标准。通过自定义 customForm.json 扩展了节点属性(可写字段、只读字段、办理人配置等)

image.png

image.png

image.png

image.png

2. 表单设计器集成

基于 form-create 实现拖拽式表单设计,支持文本、数字、日期、下拉框、表格布局等组件。

image.png

image.png

image.png

3. 条件分支实现

以请假流程为例:配置表达式 ${leaveDays > 3} 实现天数判断,满足条件时走总经理审批。

image.png

4. 办理人动态分配

在 BPMN 节点上配置 custom:assignee,通过后端 addUserTaskAttributes 转换为 flowable:assignee,支持指定用户、角色、发起人等类型。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

5.字段级权限控制

在流程设计时为每个节点配置可写/只读字段,前端 TaskProcessDialog 根据权限动态控制表单编辑状态

image.png

发起节点,都是可以写的字段

image.png

处理任务,字段都设置只读。

项目亮点 ✅ 开箱即用:内嵌 H2 数据库,解压双击启动

✅ 流程设计:BPMN 2.0 可视化拖拽

✅ 表单设计:拖拽生成,所见即所得

✅ 条件分支:支持金额、天数等复杂判断

✅ 字段权限:节点级可写/只读控制

开源版 vs 商业版

功能 开源版 商业版

流程/表单设计 ✅ ✅

条件分支 ✅ ✅

会签/驳回 ✅ ✅

字段权限 ✅ ✅

数据库 H2(内嵌) MySQL

生产环境推荐 ❌ ✅

源码 交付 GitHub 公开 私有仓库完整源码 技术支持 社区 1 年专属 商业授权 Apache 2.0 商业授权

开源版功能齐全,适合学习体验;商业版专为生产环境打造,数据库更强、源码私有、有技术支持。

如何获取 开源版:GitHub 地址:gitee.com/longsebo/sm…

B站视频链接:【一个zip压缩包搞定企业审批流Flowable工作流系统演示