当前位置: 首页 > ds >正文

Springoot、Flowable快速学习

应用背景:
公司打算做个考勤系统,涉及到请假、补卡之类的流程审批。想到了工作流,gitee、github上看了下开源的,有自研的和常见的Flowable‌、Activiti‌。首先放弃自研的,考虑到成熟度、社区生态,最后选择Flowable‌。

我还是几年前自学的Activiti‌,印象中工作流挺复杂的,开发难度较大,但是这次开发集成 Flowable,感觉还是挺简单顺利的。
首先网上找个开源的工作流项目,去大概看看实现方式、过程。
参考了:RuoYi-flowable、RuoYi-Flowable-Plus(他们的在线演示地址可能有点问题,可以自行本地启动)

我是先看的 RuoYi-flowable,方法有些流程方法逻辑不太完整之后,结合RuoYi-Flowable-Plus对方法进行完善,读者大佬们也可以直接学习RuoYi-Flowable-Plus

整个流程大致实现(个人片面的理解,希望大家补充)
前端使用 BPMN 插件,把流程定义(流程图)完成后的整个xml转成字符串发送给后端,后端在需要时解析xml获取到审批人、监听、网关逻辑。流程图展示时也是直接获取到xml字符串作相应的处理后返回xml字符串
在这里插入图片描述

项目结构:
前后端代码在一个工程里,整个流程定义(画图)、流程发起就涉及到这三个Controller
在这里插入图片描述

在这里插入图片描述

访问页面,需要vue项目部署启动(没搞过的网上搜搜)在这里插入图片描述
学习 RuoYi-flowable 时记录的知识点
注意springboot、flowable 版本是否匹配,我踩到的坑就是springboot2.7.1不能集成flowable6.8.0

  1. 好像是添加不上自定义监听,具体什么bug忘记了,改成true就好了
  2. 把 Flowable sql日志打印出来,有助于了解表关系在这里插入图片描述
  3. 流程状态只有进行中、完成,但是我们实际需求需要其他的状态,比如:驳回,这时就参考了 RuoYi-Flowable-Plus,项目中搜 PROCESS_STATUS_KEY ,实现原理就是给每个流程实例的 Variable 中添加流程状态属性,在流程状态变更时做状态变更,注意有个 GlobalEventListenerConfig 、GlobalEventListener 类,里面做了流程结束状态变更。
  4. 流程审批人通知:
    1) 页面上每个流程节点配置任务监听器,自行修改FlowTaskListener,实现具体业务 在这里插入图片描述
    2)一个个配置麻烦,那就注册一个全局任务监听去通知
  5. 流程处理,页面只有审批按钮,自行添加下按钮,具体业务方法项目中是有的,只是没写按钮
    在这里插入图片描述
    在这里插入图片描述
  6. 两个项目中具体方法实现逻辑会有些区别,如:启动流程实例,使用 RuoYi-Flowable-Plus 的代码
http://www.xdnf.cn/news/2126.html

相关文章:

  • 制作一款打飞机游戏25:添加数据
  • C++与Python编写二进制转十进制
  • 一种双模式机器人辅助股骨干骨折钢板植入方法
  • 【AI平台】n8n入门3:第二个工作流,链接网上大模型(含三种方式)
  • wireshark从HEX转储导入使用方法
  • 数学基础 -- 欧拉恒等式的魅力:让复数旋转起来!
  • MATLAB基础应用精讲-【基础知识篇】发布和共享 MATLAB 代码
  • 网络流量分析 | 流量分析基础
  • 机器学习基础 - 回归模型之线性回归
  • SD2351核心板:重构AI视觉产业价值链的“超级节点”
  • 【高频考点精讲】JavaScript事件循环机制:从宏任务微任务到渲染时机
  • MySQL数据库(13) 用户管理
  • Redis高效赋能机器学习实战:用FastAPI打造智能钓鱼邮件识别与缓存系统全流程解析
  • nacos设置权重进行负载均衡不生效
  • MongoDB 图片 URL 存储异常问题解决方案
  • C++入侵检测与网络攻防之网络嗅探以及ARP攻击
  • 【论文阅读】平滑量化:对大型语言模型进行准确高效的训练后量化
  • Linux文件管理(2)
  • 第十二届蓝桥杯 2021 C/C++组 直线
  • 深入理解网络原理:UDP协议详解
  • 如何用WordPress AI插件自动生成SEO文章,提升网站流量?
  • 每日两道leetcode(补充一)
  • Linux网络编程 原始套接字与ARP协议深度解析——从数据包构造到欺骗攻防
  • 配置Ubuntu18.04中的Qt Creator为中文(图文详解)
  • 腾讯PC客户端面经
  • Tailwind CSS实战:快速构建定制化UI的新思路
  • 无线通信网
  • 面向对象编程核心:封装、继承、多态与 static 关键字深度解析
  • 汽车售后 D - PDU 和 J2543 详细介绍
  • 【GCC bug】libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found