国产工作流引擎FlowLong及其前端审批流程设计器介绍

业务项目中的一套架构里,考虑整合一套工作流作为审批使用,主要考虑两款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 方式管理依赖
git clone https://gitee.com/aizuda/flowlong.git
  • 先跑一跑测试用例
  • 初始化执行 db/flowlong-mysql.sql 数据库脚本
  • 找到 flowlong-spring-boot-starter 模块,目录 test 部分 java/test
  • 找到 mysql 相关测试类 Test...java 执行观察数据库中表数据变化

结构说明

|- 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
git clone https://gitee.com/flowlong/flowlong-designer.git
  • 安装依赖、运行、打包
# 安装依赖
npm install
# 本地运行
npm run dev
# 编译打包
npm run build
  • 效果预览

源码仓库

Demo
后端源码
设计器源码

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息