一款真正适合国内企业和组织的工作流引擎,轻量简洁却强大,支持json 格式实例模型、简易审批流程设计器

前言

随着信息技术的快速发展,企业和组织越来越依赖于高-效的业务流程管理来提升竞争力。然而,现有的工作流引擎往往存在一些痛点,比如配置复杂、灵活性不足、难以适应中国特色的审批流程等。那么,有没有一款软件能够处理这些问题呢?

答案是肯定的。今天,我们将为大家介绍一款真正适合国内企业和组织的工作流引擎——FlowLong

图片

介绍

FlowLong 是一款由国人自主研发的工作流引擎,它支持 JSON 格式的实例模型和简易审批流程设计器,专门为中国特色审批流程匠心打造。FlowLong 不仅具备强大的功能,还具有高度的灵活性和易用性,能够帮助企业高-效地管理和优化业务流程。

图片

特点

  1. 国产化:完全自主开发,不受国外技术限制。

  2. JSON 格式实例模型:简化数据存储,易于理解和维护。

  3. 简易审批流程设计器:图形化的界面,轻松设计复杂的审批流程。

  4. 中国特色审批支持:支持多种中国特色的审批操作,如顺序会签、并行会签、票签等。

  5. 丰富的功能:包括条件分支、并行分支、包容分支等多种流程控制机制。

  6. 灵活的集成能力:支持多种 ORM 框架和主流开发框架,如 MybatisPlus 和 SpringBoot。

技术架构

FlowLong 的项目结构清晰,模块化设计使得开发和维护更加方便。以下是项目的主干结构:

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

部署方式

本地开发

  1. 克隆仓库

git clone https://gitee.com/aizuda/flowlong.git
  1. 导入 IDEA

    • 导入项目,选择 Gradle 或 Maven 方式管理依赖。

  2. 运行测试-用例

    • 初始化数据库:执行 db/flowlong-mysql.sql 脚本。

    • 运行测试-用例:找到 flowlong-spring-boot-starter 模块下的 test/java/test 目录,执行 MySQL 相关测试类 Test...java,观察数据库中表数据的变化。

引入依赖

Maven

<dependency>
    <groupId>com.aizuda</groupId>
    <artifactId>flowlong-spring-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

表结构说明

数据库脚本

引擎核心仅 8 张表实现逻辑数据存储,采用 JSON 数据格式存储模型结构简洁直观。

表结构
流程定义表 flw_process
字段描述
id主键ID
tenant_id租户ID
create_id创建人ID
create_by创建人名称
create_time创建时间
process_key流程定义 key 唯一标识
process_name流程定义名称
process_icon流程图标地址
process_type流程类型
process_version流程版本,默认 1
instance_url实例地址(外置表单发起地址)
remark备注说明
use_scope使用范围 0,全员 1,指定人员(业务关联) 2,均不可提交
process_state流程状态 0,不可用 1,可用 2,历史版本
model_content流程模型定义JSON内容
sort排序
流程实例表 flw_instance
字段描述
id主键ID
tenant_id租户ID
create_id创建人ID
create_by创建人名称
create_time创建时间
process_id流程定义ID
parent_instance_id父流程实例ID
priority优先级
instance_no流程实例编号
business_key业务KEY
variable变量json
current_node_name当前所在节点名称
current_node_key当前所在节点key
expire_time期望完成时间
last_update_by上次更新人
last_update_time上次更新时间
历史流程实例表 flw_his_instance
字段描述
instance_state状态 0,审批中 1,审批通过 2,审批拒绝 3,撤销审批 4,超时结束 5,强制终止
end_time结束时间
duration处理耗时
扩展流程实例表 flw_ext_instance
字段描述
id主键ID
tenant_id租户ID
process_id流程定义ID
instance_id流程实例ID
process_name流程名称
process_type流程类型
model_content流程模型定义JSON内容
任务表 flw_task
字段描述
id主键ID
tenant_id租户ID
create_id创建人ID
create_by创建人名称
create_time创建时间
instance_id流程实例ID
parent_task_id父任务ID
task_name任务名称
task_key任务 key 唯一标识
task_type任务类型
perform_type参与类型
action_url任务处理的url
variable变量json
assignor_id委托人ID
assignor委托人
expire_time任务期望完成时间
remind_time提醒时间
remind_repeat提醒次数
viewed已阅 0,否 1,是
历史任务表 flw_his_task
字段描述
call_process_id调用外部流程定义ID
call_instance_id调用外部流程实例ID
finish_time完成时间
task_state任务状态 0,活动 1,跳转 2,完成 3,拒绝 4,撤销审批 5,超时 6,终止 7,驳回终止
duration处理耗时
任务参与者表 flw_task_actor
字段描述
id主键ID
tenant_id租户ID
instance_id流程实例ID
task_id任务ID
actor_id参与者ID
actor_name参与者名称
actor_type参与者类型 0,用户 1,角色 2,部门
weight权重,票签任务时,该值为不同处理人员的分量比例
agent_id代理人ID
agent_type代理人类型 0,代理 1,被代理 2,认领角色 3,认领部门
extend扩展json
历史任务参与者表 flw_his_task_actor
字段描述
id主键ID
tenant_id租户ID
instance_id流程实例ID
task_id任务ID
actor_id参与者ID
actor_name参与者名称
actor_type参与者类型 0,用户 1,角色 2,部门
weight权重,票签任务时,该值为不同处理人员的分量比例
agent_id代理人ID
agent_type代理人类型 0,代理 1,被代理 2,认领角色 3,认领部门
extend扩展json

开源协议

FlowLong 遵循 Apache License Version 2.0 协议开源。

即刻体验一波

功能展示

FlowLong 支持多种标准 BPMN 功能,同时针对中国特色的审批流程进行了优化。以下是部分功能及其描述:

支持功能功能描述完成程度
条件分支排它分支用于在流程中实现决策,即根据条件选择一个分支执行。也用于处理异常情况,将流程路由到特定的异常处理分支。
并行分支并行分支允许将流程分成多条分支,也可以把多条分支汇聚到一起。其功能是基于进入和外出顺序流的,即可以分叉(fork)成多个并行分支,也可以汇聚(join)多个并行分支。
包容分支包容分支可以看做是排它分支和并行分支的结合体。它允许基于条件选择多条分支执行,但如果没有任何一个分支满足条件,则可以选择默认分支。
路由分支根据条件选择一个分支执行(重定向到指定配置节点),也可以选择默认分支执行(继续往下执行)。
父子流程主流程节点设置子流程,子流程节点会自动进入子流程,子流程结束后,主流程节点会自动跳转。
顺序会签指同一个审批节点设置多个人,如A、B、C三人,三人按顺序依次收到待办,即A先审批,A提交后B才能审批,需全部同意之后,审批才可到下一审批节点。
并行会签指同一个审批节点设置多个人,如A、B、C三人,三人会同时收到待办任务,需全部同意之后,审批才可到下一审批节点。
或签一个流程审批节点里有多个处理人,任意一个人处理后就能进入下一个节点。
票签指同一个审批节点设置多个人,如A、B、C三人,分别定义不同的权重,当投票权重比例大于 50% 就能进入下一个节点。
抄送将审批结果通知给抄送列表对应的人,同一个流程实例默认不重复抄送给同一人。
驳回将审批重置发送给某节点,重新审批。驳回也叫退回,也可以分退回申请人、退回上一步、任意退回等。
分配允许用户自行决定任务转办、委派、主办 及其它。
转办A转给其B审批,B审批后,进入下一节点。
委派A转给其B审批,B审批后,转给A,A审批后进入下一节点。
代理A指定代理人B之后,就不用做任何操作了。B完成任务后,A和B都能查到这个任务,A完成任务,B就看不到任务了。
跳转可以将当前流程实例跳转到任意办理节点。
拿回在当前办理人尚未处理文件前,允许上一节点提交人员执行拿回。
唤醒历史任务唤醒,重新进入审批流程。
撤销流程发起者可以对流程进行撤销处理。
加签允许当前办理人根据需要自行增加当前办理节点的办理人员(前置节点,后置节点)。
减签在当前办理人操作之前减少办理人。
追加发起流程动态追加修改节点处理人,更灵活的实例级动态调整节点处理人的可伸缩处理方案。
认领公共任务认领。
已阅任务是否查看状态显示。
催办通知当前活动任务处理人办理任务。
沟通与当前活动任务处理人沟通。
终止在任意节点终止流程实例。
定时设置时间节点定时执行任务进入下一步。
触发执行流程触发器业务逻辑实现,结束执行进入下一步,支持【立即触发】【定时触发】两种实现。
动态构建根据当前任务动态构建执行新任务,并且不体现在流程图中。
超时审批根据设置的超时审批时间,超时后自动审批【自动通过或拒绝】。
自动提醒根据设置的提醒时间,提醒审批人审批【可设定提醒次数】实现接口任意方式提醒【短信,Email ,微-信,钉钉等】。

结语

FlowLong 是一款真正适合国内企业和组织的工作流引擎,它不仅具备强大的功能和高度的灵活性,还特别针对中国特色的审批流程进行了优化。

源码:https://gitee.com/aizuda/flowlong

文档:https://doc.flowlong.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值