
一个自带流程设计器的工作流引擎
一个自带流程设计器的工作流引擎
终于迎来了这个激动人心的版本1.3.0,不需要在为引入设计器而烦恼了,按照以下前四点,可以快速接入业务系统,下面介绍如何使用设计器
1. 引入依赖
<dependency>
<groupId>io.github.minliuhua</groupId>
<artifactId>warm-flow-plugin-ui-sb-web</artifactId>
<version>1.3.0</version>
</dependency>
2. 后端放行部分路径
1、这两个路径需要放行,否则无法访问,
/warm-flow-ui/**
,/warm-flow/**
2、以下是spring-security放行配置示例
@Bean
protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception
{
return httpSecurity
.......
// 注解标记允许匿名访问的url
.authorizeHttpRequests((requests) -> {
// 后端请求,静态资源,可匿名访问
requests.antMatchers("/warm-flow-ui/**", "/warm-flow/**").permitAll()
// 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated();
})
......
.build();
}
3. 前端加载设计器
1、设计器页面入口地址为:
/warm-flow-ui/${definitionId}?disabled=${disabled}
2、总体思路就是把前端接口(比如80)代理成后端接口(8080),去访问该地址,其他不变
3、或者直接通过后端接口访问该地址,可能需要处理跨域问题 4、以下是nginx代理示例:
server {
listen 80;
server_name localhost;
location /warm-flow-ui/ {
proxy_pass http://localhost:8080/warm-flow-ui/;
}
}
4. 设计器办理人权限数据接入
[!IMPORTANT] 给任务节点设置哪些权限的人可以办理,实现接口提供给设计器
4.1 办理人权限选择弹框页面

4.2 实现接口获取以上页面办理人权限数据
4.2.1 HandlerSelectService接口
/**
* 流程设计器-获取办理人权限设置列表接口
*
* @author warm
*/
public interface HandlerSelectService {
/**
* 获取办理人权限设置列表tabs页签, 如:用户、角色和部门等
* @return tabs页签
*/
List<String> getHandlerType();
/**
* 获取办理人权限设置列表结果,如:用户列表、角色列表、部门列表等
* @param query 查询参数
* @return 结果
*/
List<HandlerSelectVo> getHandlerSelect(HandlerQuery query);
}
5、项目介绍
[!IMPORTANT] Warm-Flow国产工作流引擎🎉,其特点简洁轻量,五脏俱全,可扩展,是一个可通过jar引入设计器的工作流。
简洁易用:只有7张表,代码量少,可快速上手和集成
审批功能:支持通过、退回、任意跳转、转办、终止、会签、票签、委派和加减签、互斥和并行网关
监听器与流程变量:支持四种监听器,可应对不同场景,灵活可扩展,参数传递,动态权限
流程图:流程引擎自带流程图,可在不集成流程设计器情况下使用
流程设计器:可通过jar包形式快速集成到项目,减少繁琐代码搬运和适配
条件表达式:内置常见的和spel条件表达式,并且支持自定义扩展
办理人变量表达式:内置${handler}和spel格式的表达式,可满足不同场景,灵活可扩展
orm框架扩展:目前支持MyBatis、Mybatis-Plus、Mybatis-Flex和Jpa,后续会由社区提供其他支持,扩展方便
数据库支持:目前支持MySQL 、Oracle 和PostgreSQL,后续会继续支持其他数据库或者国产数据库
多租户与软删除:流程引擎自身维护多租户和软删除实现,也可使用对应orm框架的实现方式
同时支持spring和solon
兼容java8和java17,理论11也可以
官方提供基于ruoyi-vue封装实战项目,很实用
6、演示地址
- admin/admin123
演示地址:http://www.hhzai.top
7、官网
http://warm-flow.cn
关于 Dromara
Dromara 是由国内顶尖的开源项目作者共同组成的开源社区。提供包括分布式事务,流行工具,企业级认证,微服务RPC,运维监控,Agent监控,分布式日志,调度编排等一系列开源产品、解决方案与咨询、技术支持与培训认证服务。技术栈全面开源共建、 保持社区中立,致力于为全球用户提供微服务云原生解决方案。让参与的每一位开源爱好者,体会到开源的快乐。
Dromara开源社区目前拥有10+GVP项目,总star数量超过十万,构建了上万人的开源社区,有成千上万的个人及团队在使用Dromara社区的开源项目。
欢迎大家来到知识星球和我互动
