您现在的位置是:首页 > 文章详情

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

日期:2024-02-29点击:56

介绍

此项目是极其简单的工作流,没有太多设计,代码量少,并且只有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()); } 
原文链接:https://www.oschina.net/news/280789
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章