首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一个自带流程设计器的工作流引擎warmflow

一个自带流程设计器的工作流引擎warmflow

作者头像
阿超
发布2024-10-26 09:45:03
发布2024-10-26 09:45:03
3.7K1
举报
文章被收录于专栏:快乐阿超快乐阿超

你与别人花费一样的时间,因为别人用心,而你吊儿郎当,所以到了最后检验成果的时候,别人成功,而你除了赔了时间之后,一无所得。——飞行员舒克

一个自带流程设计器的工作流引擎

终于迎来了这个激动人心的版本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引入设计器的工作流。

  1. 简洁易用:只有7张表,代码量少,可快速上手和集成
  2. 审批功能:支持通过、退回、任意跳转、转办、终止、会签、票签、委派和加减签、互斥和并行网关
  3. 监听器与流程变量:支持四种监听器,可应对不同场景,灵活可扩展,参数传递,动态权限
  4. 流程图:流程引擎自带流程图,可在不集成流程设计器情况下使用
  5. 流程设计器:可通过jar包形式快速集成到项目,减少繁琐代码搬运和适配
  6. 条件表达式:内置常见的和spel条件表达式,并且支持自定义扩展
  7. 办理人变量表达式:内置${handler}和spel格式的表达式,可满足不同场景,灵活可扩展
  8. orm框架扩展:目前支持MyBatis、Mybatis-Plus、Mybatis-Flex和Jpa,后续会由社区提供其他支持,扩展方便
  9. 数据库支持:目前支持MySQL 、Oracle 和PostgreSQL,后续会继续支持其他数据库或者国产数据库
  10. 多租户与软删除:流程引擎自身维护多租户和软删除实现,也可使用对应orm框架的实现方式
  11. 同时支持spring和solon
  12. 兼容java8和java17,理论11也可以
  13. 官方提供基于ruoyi-vue封装实战项目,很实用

6、演示地址

  • admin/admin123

演示地址:http://www.hhzai.top

7、官网

http://warm-flow.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 一个自带流程设计器的工作流引擎
    • 1. 引入依赖
    • 2. 后端放行部分路径
    • 3. 前端加载设计器
    • 4. 设计器办理人权限数据接入
      • 4.1 办理人权限选择弹框页面
      • 4.2 实现接口获取以上页面办理人权限数据
    • 5、项目介绍
    • 6、演示地址
    • 7、官网
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档