warm-flow工作流,支持 orm 方便扩展


介绍

此项目是极其简单的工作流,没有太多设计,代码量少,并且只有6张表,个把小时就可以看完整个设计。使用起来方便

  1. 支持简单的流程流转,比如跳转、回退、审批
  2. 支持角色、部门和用户等权限配置
  3. 官方提供简单流程封装demo项目,很实用
  4. 支持多租户
  5. 支持代办任务和已办任务,通过权限标识过滤数据
  6. 支持互斥网关,并行网关(会签、或签)
  7. 可退回任意节点
  8. 支持条件表达式,可扩展
  9. 同时支持spring和solon
  10. 兼容java8和java17,理论11也可以
  11. 支持不同orm框架和数据库扩展

git地址:https://gitee.com/warm_4/warm-flow.git

demo项目

springboot:hh-vue |演示地址
solon:warm-sun |演示地址

快速开始

在开始之前,我们假定您已经:

  • 熟悉 Java 环境配置及其开发
  • 熟悉 关系型 数据库,比如 MySQL
  • 熟悉 Spring Boot或者Solon 及相关框架
  • 熟悉 Java 构建工具,比如 Maven

导入sql

导入组件目录下文件https://gitee.com/warm_4/warm-flow/blob/master/sql/warm-flow.sql

表结构

https://gitee.com/warm_4/warm-flow/wikis/表结构?sort_id=9330548

maven依赖

springboot项目

<dependency>
<groupId>io.github.minliuhua</groupId>
<artifactId>warm-flow-mybatis-sb-starter</artifactId>
<version>最新版本</version>
</dependency>

solon项目

<dependency>
<groupId>io.github.minliuhua</groupId>
<artifactId>warm-flow-mybatis-solon-plugin</artifactId>
<version>最新版本</version>
</dependency>

支持数据库类型

  • [x] mysql
  • [ ] oracle
  • [ ] sqlserver
  • [ ] ......

支持orm框架类型

  • [x] mybatis及其增强组件
  • [ ] jpa
  • [ ] easy-query
  • [ ] wood
  • [ ] sqltoy
  • [ ] beetlsql
  • [ ] ......

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

代码示例

以下测试代码请详见hh-vue项目中的hh-vue/hh-admin/src/test/java/com/hh/test/service/impl/FlowTest.java

部署流程

public void deployFlow() throws Exception {
String path = "/Users/minliuhua/Desktop/mdata/file/IdeaProjects/min/hh-vue/hh-admin/src/main/resources/leaveFlow-serial.xml";
System.out.println("已部署流程的id:" + defService.importXml(new FileInputStream(path)).getId());
}

发布流程

public void publish() throws Exception {
defService.publish(1212437969554771968L);
}

开启流程

public void startFlow() {
System.out.println("已开启的流程实例id:" + insService.start("1", getUser()).getId());
}

流程流转

public void skipFlow() throws Exception {
//// 通过当前代办任务流转
//insService.skip()

 // 通过实例id流转
Instance instance = insService.skipByInsId(1212438548456804352L, getUser().skipType(SkipType.PASS.getKey())
.permissionFlag(Arrays.asList("role:1", "role:2")));
System.out.println("流转后流程实例:" + instance.toString());
}

相關推薦

2024-03-23

增加监听器,参数传递 git地址: https://gitee.com/warm_4/warm-flow.git demo项目: springboot:RuoYi-Vue-Warm-Flow |演示地址 solon:warm-sun |演示地址 快速开始 在开始之前,我们假定您已经: 熟悉 Java 环境配置及其开发 熟悉 关

2024-08-20

 warm-flow1.2.4版本更新 主要内容,具体详情和升级注意事项,请查看官网更新记录 [feat] 激活和挂起 [feat] 不同节点也支持配置审批表单路径 [feat] 支持接收外部流程状态,支持流程状态扩展 [feat] 新增spel条件表达式

2024-09-27

warm-flow 1.2.8版本更新,新增办理人变量表达式和条件表达式支持spel 【升级注意事项】 本次升级,内置json库snack3方式,改为spi方式加载,业务项目中存在哪种json就会使用哪种的实现, 支持顺序按顺序加载一种:snack3、jacks

2024-06-29

warm-flow1.2.0重大更新 本次版本改动比较大,带来了大家期待已久的会签、票签、转办、oracle和pg数据库适配等,并且做了相应的代码重构。也由于改动比较大,如果发现问题,可以及时提交issue,如果能帮助解bug和pr,非常感谢

2024-10-25

y> <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/

2024-08-29

warm-flow 1.2.6版本更新 本次改动 流程状态:可接收外部传递,可以支持字符串 新增api:增加获取下个节点信息 id生成:支持其他位数的id,可以前端精度问题的序列化处理 v1.2.6 2024-08-28 【升级注意事项】 执行升级

2024-05-09

@TOC 欢迎使用使用warm-flow 更新记录 v1.1.80 orm支持mybatis-plus扩展 多租户字段隔离提供全局配置,自动获取 增加软删除可以配置化 新增三个测试模块 更新注意事项: 1、需要执行组件中的warm-flow_1.1.8.sql脚本,RuoYi-V

2024-05-09

@TOC 欢迎使用使用warm-flow 更新记录 v1.1.80 orm支持mybatis-plus扩展 多租户字段隔离提供全局配置,自动获取 增加软删除可以配置化 新增三个测试模块 更新注意事项: 1、需要执行组件中的warm-flow_1.1.8.sql脚本,RuoYi-V

2024-03-28

:778470567,微信:warm-houhou git地址:https://gitee.com/warm_4/warm-flow.git 已完成计划 v1.1.2 流程定义新增复制按钮 补齐sql脚本,完善文档 跳转条件获取方式变更为流程变量 感谢@Holly 监听器变量新增返回结点信息 感谢@Hol

2024-04-18

欢迎使用使用warm-flow监听器 更新记录 v1.1.5 支持自定义填充 新增配置文件,部分功能可配置 引入日志门面 v1.1.42 修复并行网关后面没有中间节点 修复开始任务记录代办,为保存流程状态 新增链式查询排序

2024-09-26

class) .returnType(SysUserRoleVO.class) .list(); 还有很多很多超级方便有趣的写法,欢迎大家来使用 https://mybatis-mp.cn 例如: 1 . 多表 join A 内嵌 B B 内嵌 C 都可以 2 . 不使用 join 使用 @Fetch 注解 + fetchFilter 方法实现 将 A JOIN B 变

2023-11-29

良好的性能和扩展性。 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:内置分页以及超强的 sql 优化功能; 5:稳定且性能极优; 6:轻量级封装 mybatis,几乎没有侵入; 7:api

2023-12-14

良好的性能和扩展性。 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:内置分页以及超强的 sql 优化功能; 5:稳定且性能极优; 6:轻量级封装 mybatis,几乎没有侵入; 7:api

2023-12-16

良好的性能和扩展性。 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:内置分页以及超强的 sql 优化功能; 5:稳定且性能极优; 6:轻量级封装 mybatis,几乎没有侵入; 7:api