An open API service indexing awesome lists of open source software.

https://github.com/dromara/warm-flow

Warm-Flow国产工作流引擎🎉,其特点简洁轻量,五脏俱全,可扩展,是一个可通过jar引入设计器的工作流。。解决flowable和activities复杂、学习成本高和集成难等痛点。
https://github.com/dromara/warm-flow

workflow

Last synced: 3 months ago
JSON representation

Warm-Flow国产工作流引擎🎉,其特点简洁轻量,五脏俱全,可扩展,是一个可通过jar引入设计器的工作流。。解决flowable和activities复杂、学习成本高和集成难等痛点。

Awesome Lists containing this project

README

          


logo


Warm-Flow工作流




fork
fork
fork
fork
fork

**项目代码、文档 均开源免费可商用 遵循开源协议即可**

**过去、现在和未来都不会有商业版!!!**

**开发完成请务必登记使用项目列表,[登记地址](https://gitee.com/dromara/warm-flow/issues/I7Y57D)**

## 介绍

> Dromara Warm-Flow,国产的工作流引擎,以其简洁轻量、五脏俱全、灵活扩展性强的特点,成为了众多开发者的首选。它不仅可以通过**jar包快速集成设计器**,同时原生支持**经典和仿钉钉双模式**,还具备以下显著优势:

- **简洁易用**‌:仅包含7张表,代码量少,上手和集成速度快。
- **审批功能全面**‌:支持通过、退回、驳回到上一个任务、撤销、拿回、任意跳转、转办、终止、会签、票签、委派、加减签、互斥和并行网关等多种审批操作,以及条件表达式、办理人表达和监听器等高级功能。
- **流程设计器**‌:通过jar包形式快速集成到项目,支持节点属性扩展,原生支持经典和仿钉钉双模式。
- **流程图**‌:自带流程图,通过jar包快速集,功能扩展,原生支持经典和仿钉钉双模式。
- **条件表达式**‌:内置常见的和spel条件表达式,支持自定义扩展。
- **办理人变量表达式**‌:内置${handler}和spel格式的表达式,满足不同场景需求,灵活可扩展。
- **监听器**‌:提供四种监听器,支持不同作用范围和spel表达式,参数传递灵活,支持动态权限。
- **流程变量**‌:在整个流程办理过程起到重要的角色,如办理人表达式中,传入变量进行动态指定办理人。
- **ORM框架支持**‌:支持MyBatis、Mybatis-Plus、Mybatis-Flex、Jpa、Easy-Query和BeetlSql,后续将扩展支持其他框架
- **数据库支持**‌:支持MySQL、Oracle、PostgreSQL和SQL Server,其他数据库只需要转换表结构即可支持。
- **多租户与软删除**‌:流程引擎自身维护多租户和软删除实现,也可使用对应ORM框架的实现方式。
- **兼容性**‌:同时支持Spring和Solon,兼容Java8、Java17、Java21。
- **实战项目**‌:官方提供基于Ruoyi-Vue封装的实战项目,极具参考价值。

```
希望一键三连,你的⭐️ Star ⭐️是我持续开发的动力,项目也活的更长
```

> **[github地址](https://github.com/dromara/warm-flow.git)** | **[gitee地址](https://gitee.com/dromara/warm-flow.git)** | **[gitCode地址](https://gitcode.com/dromara/warm-flow)**



## 演示地址

- admin/admin123

演示地址:http://www.warm-flow.cn

## 使用文档与联系方式

https://www.warm-flow.com/

> 部分地区访问不了,可本地部署
https://gitee.com/warm_4/warm-flow-doc.git

## 组件所需脚本

- 首次导入,先创建数据库,找到对应数据库的全量脚本[warm-flow-all.sql](https://gitee.com/dromara/warm-flow/tree/master/sql/mysql),执行
- 如果版本更新,找到对应数据库的更新版本,比如xx-upgrade,[warm-flow_x.x.x.sql](https://gitee.com/dromara/warm-flow/tree/master/sql/mysql/v1-upgrade),执行

## 官网流程定义案例json

[官网流程定义案例json](https://gitee.com/dromara/warm-flow-test/tree/master/warm-flow-core-test/src/main/resources)

有典型的流程案例,可以发给我json文件

## 测试代码

> 测试代码[warm-flow-test](https://gitee.com/dromara/warm-flow-test)项目中,warm-flow-xxx-test模块的测类

## 与Activiti、Flowable对比

| **工作流** | **Activiti** | **Flowable** | **Warm-Flow** |
|-------------|-------------------------------|--------------------------------------|---------------------------------------------------|
| **项目背景** | Apache 基金会。 | 由 Activiti 原团队创建,功能更优化。 | 国产工作流引擎([Dromara 社区](https://dromara.org/)) |
| **社区活跃度** | 社区规模大,但近年活跃度下降。 | 社区活跃,迭代快 | 文档和Ruoyi-Vue实战案例**较完善,社区活跃,更新快**。 |
| **数据库表结构** | 约 25 张表,分类简单。 | 约 40 张表(部分版本达 79 张),分类更细。 | **仅 7 张表**,结构极简,维护成本低。 |
| **功能与扩展性** | 基础 BPMN 支持,插件机制有限。 | 支持动态流程修改、REST API、多实例任务优化。 | **审批功能全面**,基于json定义,支持办理人表达式、监听器、变量表达式表达式、动态权限。 |
| **流程设计器** | 需独立部署或集成第三方工具,通常只有经典模式设计器。 | 需额外配置或扩展,通常只有经典模式设计器。 | **通过 Jar 包快速集成**,支持节点属性扩展,原生支持**经典和仿钉钉双模式**。 |
| **流程图** | 生成静态 BPMN 流程图,颜色和样式固定。 | 需结合bpmn.js,集成难度高,扩展困难 | 自带流程图,通过jar包快速集,设置节点状态颜色,功能扩展等,原生支持**经典和仿钉钉双模式** |
| **数据驱动** | 内部是通过mybatis进行增删改查,对其他orm不支持。 | 同左。 | 支持**多 ORM 框架**。 |
| **多租户与软删除** | 需自行实现或依赖外部框架。 | 原生支持多租户和软删除。 | **原生支持多租户和软删除**,也可复用 ORM 框架实现。 |
| **数据库支持** | 主流数据库(MySQL、Oracle 等)。 | 同左。 | 支持 MySQL、Oracle、PostgreSQL、SQL Server,和**国产数据库**。 |
| **条件表达式** | 基础条件支持。 | 支持 SpEL 表达式。 | **内置 SpEL 和自定义表达式**,支持动态权限和参数传递。 |
| **办理人表达式** | 基于 UEL实现,支持简单变量和固定角色分配。 | 支持UEL、SpEL 表达式,可通过动态变量、角色、部门等灵活分配任务。 | **默认表达式和支持 SpEL ,支持自定义规则**。 |
| **适用场景** | 简单流程或旧系统兼容。 | 复杂流程、高扩展性需求。 | **国产化、轻量级项目**,快速审批场景,灵活扩展和低代码集成。 |

## 应用场景

Dromara Warm-Flow作为一个国产的工作流引擎,其设计简洁轻量但功能全面,适用于多种应用场景,尤其是针对中小型项目。以下是一些典型的应用场景:

1. 企业内部流程管理:用于管理企业的日常业务流程,如请假、报销、采购审批等。
2. 项目管理:在项目管理中,Dromara Warm-Flow可以用来跟踪项目任务的状态,管理项目流程,确保项目按计划进行。
3. 客户服务流程:用于管理客户服务请求,如客户咨询、投诉处理、售后服务等。
4. 人力资源管理:在人力资源管理中,Warm-Flow可用于员工招聘、培训、绩效评估等流程的管理。
5. 财务和会计流程:管理财务审批流程,如发票审核、预算审批等。
6. IT服务管理:用于IT服务请求的处理,如IT支持请求、系统变更管理等。
7. 合规性和风险管理:帮助企业在遵守法规和标准的同时,管理风险和合规流程。

## 支持数据库类型
> 目前支持MySQL 、Oracle、PostgreSQL和SQL Server,其他数据库只需要转换表结构,使用Mybatis-Plus、Mybatis-Flex和Easy-Query即可兼容

* [x] MySQL
* [x] Oracle
* [x] PostgreSQL
* [x] SQL Server
* [ ] ......

## 支持orm框架类型
* [x] mybatis
* [x] mybatis-plus
* [x] jpa
* [x] easy-query
* [x] mybatis-flex
* [ ] ......

## 工作流集成服务
如果有需要集成工作流,或者你有项目想要外包,可以微信联系【warm-houhou】。

> **有想扩展其他orm框架和数据库的可加qq群联系群主**

## 推荐

大家在使用本项目时,推荐结合贺波老师的书
[《深入Flowable流程引擎:核心原理与高阶实战》](https://item.jd.com/14804836.html)学习。这本书得到了Flowable创始人Tijs Rademakers亲笔作序推荐,对系统学习和深入掌握Flowable的用法非常有帮助。

## 你可以请作者喝杯咖啡表示鼓励

![输入图片说明](https://foruda.gitee.com/images/1697770422557390406/7efa04d6_2218307.png "屏幕截图")

## 特别感谢JetBrains对开源项目支持


JetBrains






## git提交规范

[init] 初始化
[feat] 增加新功能
[fix] 修复问题/BUG
[perf] 优化/性能提升
[refactor] 重构
[revert] 撤销修改
[style] 代码风格相关无影响运行结果的
[update] 其他修改
[upgrade] 升级版本