warm-flow 工作流,新增监听器和参数传递
v1.1.0更新内容
-
可以跳转指定节点
-
增加全局变量
-
增加监听器
-
重构代码,解偶orm,方便扩展不同orm和数据,新增代码示例
-
修复并行网关流程流程图显示错误问题
介绍
此项目是极其简单的工作流,没有太多设计,代码量少,并且只有6张表,个把小时就可以看完整个设计。使用起来方便
- 支持简单的流程流转,比如跳转、回退、审批
- 支持角色、部门和用户等权限配置
- 官方提供简单流程封装demo项目,很实用
- 支持多租户
- 支持代办任务和已办任务,通过权限标识过滤数据
- 支持互斥网关,并行网关(会签、或签)
- 可退回任意节点
- 支持条件表达式,可扩展
- 同时支持spring和solon
- 兼容java8和java17,理论11也可以
- 支持不同orm框架和数据库扩展
- 支持增加监听器,参数传递
git地址: https://gitee.com/warm_4/warm-flow.git
demo项目:
springboot:RuoYi-Vue-Warm-Flow |演示地址 solon:warm-sun |演示地址
快速开始
在开始之前,我们假定您已经:
- 熟悉 Java 环境配置及其开发
- 熟悉 关系型 数据库,比如 MySQL
- 熟悉 Spring Boot或者Solon 及相关框架
- 熟悉 Java 构建工具,比如 Maven
表结构
https://gitee.com/warm_4/warm-flow/wikis/表结构?sort_id=9330548
maven依赖
springboot项目
io.github.minliuhua warm-flow-mybatis-sb-starter 最新版本
solon项目
io.github.minliuhua warm-flow-mybatis-solon-plugin 最新版本
支持数据库类型
- [x] mysql
- [ ] oracle
- [ ] sqlserver
- [ ] ......
支持orm框架类型
- [x] mybatis及其增强组件
- [ ] jpa
- [ ] easy-query
- [ ] wood
- [ ] sqltoy
- [ ] beetlsql
- [ ] ......
有想扩展其他orm框架和数据库的可加qq群联系群主
代码示例
部署流程
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 { // 通过实例id流转 Instance instance = insService.skipByInsId(1219286332141080576L, getUser().skipType(SkipType.PASS.getKey()) .permissionFlag(Arrays.asList("role:1", "role:2"))); System.out.println("流转后流程实例:" + instance.toString()); // // 通过任务id流转 // Instance instance = insService.skip(1219286332145274880L, getUser().skipType(SkipType.PASS.getKey()) // .permissionFlag(Arrays.asList("role:1", "role:2"))); // System.out.println("流转后流程实例:" + instance.toString()); } public void skipAnyNode() throws Exception { // 跳转到指定节点 Instance instance = insService.skip(1219286332145274880L, getUser().skipType(SkipType.PASS.getKey()) .permissionFlag(Arrays.asList("role:1", "role:2")).nodeCode("4")); System.out.println("流转后流程实例:" + instance.toString()); }
监听器
实现Listener接口,然后在设计器中配置好监听器
public class FinishListener implements Listener { @Resource private TestLeaveMapper testLeaveMapper; private static final Logger log = LoggerFactory.getLogger(StartListener.class); @Override public void notify(ListenerVariable variable) { log.info("完成监听器:{}", variable); Instance instance = variable.getInstance(); Map<String, Object> testLeaveMap = variable.getVariable(); TestLeave testLeave = (TestLeave) testLeaveMap.get("testLeave"); /** 如果{@link com.ruoyi.system.service.impl.TestLeaveServiceImpl}中更新了,这里就不用更新了*/ // testLeave.setNodeCode(instance.getNodeCode()); // testLeave.setNodeName(instance.getNodeName()); // testLeave.setFlowStatus(instance.getFlowStatus()); // testLeave.setUpdateTime(DateUtils.getNowDate()); // testLeaveMapper.updateTestLeave(testLeave); log.info("完成监听器结束;{}", "任务完成"); } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
word GPT Plus V0.4.0,利用 AI 辅助工作的 Word 加载项,支持 Ollama
Word GPT Plus 是一款基于Vue3开发的Word加载项,它允许你基于文档中写的内容生成文本。你可以使用它来翻译、总结、润色或者从零开始写一篇文章。 开源地址和软件官网 Github Kuingsmile/word-GPT-Plus 本次更新内容 新增Ollama支持 特色功能 使用GPT-3.5 API生成文本并支持选择模型 支持设置access token调用chatGPT web接口(使用该方法免费,建议配合chatGPT-plus) 支持OpenAI官方接口、Azure OpenAI API和PALM2 API,Gemini Pro API,Ollama 内置用于翻译、总结、润色和学术写作的提示 支持多种语言 可以自定义提示并保存以供将来使用 允许用户设置temperature和max tokens 支持代理 环境要求 软件要求 Microsoft Word 2016/2019 零售版,Microsoft Word 2021 或 Microsoft 365 Edge WebView2 Runtime https://developer.microsoft.com/en...
- 下一篇
基于 Java 的大语言模型应用开发框架,Agents-Flex alpha.4 发布
Agents-Flex: 一个基于 Java 的 LLM(大语言模型)应用开发框架。 基本能力 LLM 的访问能力 Prompt、Prompt Template 定义加载的能力 Function Calling 定义、调用和执行等能力 记忆的能力(Memory) Embedding Vector Storage 文档处理 加载器(Loader) Http FileSystem 分割器(Splitter) 解析器(Parser) PoiParser PdfBoxParser LLM Chain Agents Chain 简单对话 使用 OpenAi 大语言模型: @Test public void testChat() { OpenAiLlmConfig config = new OpenAiLlmConfig(); config.setApiKey("sk-rts5NF6n*******"); Llm llm = new OpenAiLlm(config); String response = llm.chat("请问你叫什么名字"); System.out.p...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2配置默认Tomcat设置,开启更多高级功能