欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Springoot、Flowable快速学习

Springoot、Flowable快速学习

2025/4/26 14:25:04 来源:https://blog.csdn.net/qq_39035267/article/details/147514484  浏览:    关键词: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 的代码

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词