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-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 修复并行网关后面没有中间节点 修复开始任务记录代办,为保存流程状态 新增链式查询排序

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-05

良好的性能和扩展性。 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

2023-02-17

对开发透明,不影响业务,简单易用,文件小,性能好;支持 Mongodb,支持 JDBC,还支持 Android 和 Harmony;可以同时使用多种不同类型的数据库。 Bee,互联网新时代的 Java ORM 工具,更快、更简单、更自动,开发速度快,

2023-12-12

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

2023-12-03

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

2023-11-26

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

2023-12-01

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

2023-12-06

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

2023-12-09

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