[开源]一款简单实用、使用方便的工作流,支持多租户、可二开商用
![[开源]一款简单实用、使用方便的工作流,支持多租户、可二开商用](https://yy123.ink/api/img/1782594851976-vogm0f.jpg)
一、开源项目简介
warm-flow工作流
此项目是极其简单的工作流,没有太多设计,代码量少,并且只有6张表,个把小时就可以看完整个设计。使用起来方便。
二、开源协议
使用Apache-2.0开源协议
三、界面展示
流程设计器
演示图
![]() |
![]() |
|
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
新增定义
流程编码和流程版本:确定唯一
审批表单路径:记录代办任务需要显示的代办信息页面,保存下代办详情页的路径,点击代办时候获取这个路径,动态加载这个页面

流程绘制
前端通过logic-flow画图,得到的json转成流程组件所需的xml格式
后台解析xml保存流程表flow_definition、flow_node、flow_skip


流程页面演示
开启流程实例
demo项目已经准备了五套流程,以及开启流程代码,开启流程会直接执行到开始节点后一个节点


提交流程
提交流程后,流程流转到代表任务,由流程设计中的对应权限人去办理


办理流程
如果是互斥网关则会判断是否满足条件


驳回流程

流程图
流程图根据前端返回的节点坐标,通过后端Graphics2D进行绘制,最终返回图片给前端展示


条件表达式
目前内置了大于、大于等、等于、不等于、小于、小于等于、包含、不包含,并且支持扩展
扩展需要实现ExpressionStrategy.java或者继承ExpressionStrategyAbstract.java
并且通过这个方法进行注册ExpressionUtil.setExpression


四、功能概述
-
支持简单的流程流转,比如跳转、回退、审批
-
支持角色、部门和用户等权限配置
-
官方提供简单流程封装demo项目,很实用
-
支持多租户
-
支持代办任务和已办任务,通过权限标识过滤数据
-
支持互斥网关,并行网关(会签、或签)
-
可退回任意节点
-
支持条件表达式,可扩展
-
同时支持spring和solon
-
兼容java8和java17,理论11也可以
-
支持不同orm框架和数据库扩展
五、技术选型
快速开始
在开始之前,我们假定您已经:
-
熟悉 Java 环境配置及其开发
-
熟悉 关系型 数据库,比如 MySQL
-
熟悉 Spring Boot或者Solon 及相关框架
-
熟悉 Java 构建工具,比如 Maven
导入sql
导入组件目录下文件warm_4/warm-flow/blob/master/sql/warm-flow.sql
表结构
warm_4/warm-flow/wikis/%E8%A1%A8%E7%BB%93%E6%9E%84?sort_id=9330548
maven依赖
springboot项目
solon项目
支持数据库类型
-
mysql
-
oracle
-
sqlserver
-
......
支持orm框架类型
-
mybatis及其增强组件
-
jpa
-
easy-query
-
wood
-
sqltoy
-
beetlsql
-
......
有想扩展其他orm框架和数据库的可联系作者
代码示例
以下测试代码请详见hh-vue项目中的 hh-vue/hh-admin/src/test/java/com/hh/test/service/impl/FlowTest.java
更多内容请查看 README.md 文档














