业务项目中的一套架构里,考虑整合一套工作流作为审批使用,主要考虑两款Activityflowable,权衡使用场景、操作性等方面,最终选择了flowable

前言

这篇文章不分享后台相关内容,因为此类文章度娘已经烂大街了,这里主要分享一款工作流前端设计器

一个优秀的审批流程设计器可以减少无效沟通,简化配置和操作流程,使得审批流程的设计更加高效。

设计器选择

其实开源项目中有不少设计器,同时成型项目也不少,为何最终没选择,有以下几点原因:

  1. 业务框架耦合度过高
  2. 自身框架中过渡封装
  3. 技术框架选型不同
  4. 二次开发不便利

直到看见FlowLong这款开源设计器,无论从设计器简洁程度,还是代码都无可挑剔,符合我的使用场景

关于 FlowLong

飞龙工作流引擎 FlowLong 真正的国产工作流引擎 json 格式实例模型、简易审批流程设计器、为中国特色审批匠心打造!

功能说明

满足部分标准BPMN功能的同时支持中国特色流程操作概念

支持功能功能描述完成程度
顺序会签同一个审批节点设置多个人,如 A、B、C 三人,三人按顺序依次收到待办,
即 A 先审批,A 提交后 B 才能审批,需全部同意之后,审批才可到下一审批节点。
并行会签指同一个审批节点设置多个人,如 A、B、C 三人,三人会同时收到待办任务,
需全部同意之后,审批才可到下一审批节点。
或签一个流程审批节点里有多个处理人,任意一个人处理后就能进入下一个节点
票签指同一个审批节点设置多个人,如 A、B、C 三人,
分别定义不同的权重,当投票权重比例大于 50% 就能进入下一个节点
抄送将审批结果通知给抄送列表对应的人
驳回将审批重置发送给某节点,重新审批。驳回也叫退回,
也可以分退回申请人、退回上一步、任意退回等
分配允许用户自行决定任务转办、委派、主办 及其它
转办A 转给其 B 审批,B 审批后,进入下一节点
委派A 转给其 B 审批,B 审批后,转给 A,A 审批后进入下一节点
跳转可以将当前流程实例跳转到任意办理节点
拿回在当前办理人尚未处理文件前,允许上一节点提交人员执行拿回
撤销流程发起者可以对流程进行撤销处理
加签允许当前办理人根据需要自行增加当前办理节点的办理人员
减签在当前办理人操作之前减少办理人
认领公共任务认领
已阅任务是否查看状态显示
催办通知当前活动任务处理人办理任务
沟通与当前活动任务处理人沟通
终止在任意节点终止流程实例

运行及使用

运行后端

  • 导入 idea 可选择 Gradle 或 Maven 方式管理依赖
1
git clone https://gitee.com/aizuda/flowlong.git
  • 先跑一跑测试用例
  • 初始化执行 db/flowlong-mysql.sql 数据库脚本
  • 找到 flowlong-spring-boot-starter 模块,目录 test 部分 java/test
  • 找到 mysql 相关测试类 Test…java 执行观察数据库中表数据变化

结构说明

1
2
3
4
5
6
7
8
9
|- db                               数据库文件存放目录
|- flowlong-core 工作流核心库
|- flowlong-mybatis-plus 数据访问层,默认 MybatisPlus 当然你可以适配其它 ORM
|- flowlong-solon-example Solon 演示案例
|- flowlong-solon-plugin Solon 启动插件
|- flowlong-spring-boot-example SpringBoot 演示案例
|- flowlong-spring-boot-starter SpringBoot 启动插件
|- build.gradle Gradle 依赖管理
|- pom.xml Maven 依赖管理

设计器

  • 导入 Vscode
1
git clone https://gitee.com/flowlong/flowlong-designer.git
  • 安装依赖、运行、打包
1
2
3
4
5
6
# 安装依赖
npm install
# 本地运行
npm run dev
# 编译打包
npm run build
  • 效果预览

源码仓库

Demo
后端源码
设计器源码