ruoyi-nbcio-plus基于vue3的flowable多租户机制

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/

更多nbcio-boot功能请看演示系统 

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888

flowable流程支持多租户

       ruoyi-nbcio-plus支持多租户,所以需要对流程的相关功能也支持多租户,可以利用Flowable的多租户字段tenantId,包括流程定义、发布与发起,都要带上tenantId,同时在流程查询等过程都要过滤tenantId这个字段,以便支持多租户。

     1、流程定义

    如下:需要增加 newModel.setTenantId(TenantHelper.getTenantId());

Model newModel;if (Boolean.TRUE.equals(modelBo.getNewVersion())) {newModel = repositoryService.newModel();newModel.setName(processName);newModel.setKey(model.getKey());newModel.setCategory(model.getCategory());newModel.setMetaInfo(model.getMetaInfo());newModel.setVersion(model.getVersion() + 1);newModel.setTenantId(TenantHelper.getTenantId());} else {newModel = model;// 设置流程名称newModel.setName(processName);}// 保存流程模型repositoryService.saveModel(newModel);

 2、流程发布

如下:需要增加 .tenantId(TenantHelper.getTenantId())

// 部署流程Deployment deployment = repositoryService.createDeployment().name(model.getName()).key(model.getKey()).tenantId(TenantHelper.getTenantId()).category(model.getCategory()).addBytes(processName, bpmnBytes).deploy();

3、发起流程

// 发起流程实例ProcessInstance processInstance = runtimeService.startProcessInstanceByKeyAndTenantId(procDef.getKey(), 
dataId, variables, TenantHelper.getTenantId());

4、流程定义数据查询

// 流程定义列表数据查询ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery().processDefinitionTenantId(TenantHelper.getTenantId()).latestVersion().active().orderByProcessDefinitionKey()

5、历史流程实例查询

HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery().processInstanceTenantId(TenantHelper.getTenantId())	.includeProcessVariables().startedBy(TaskUtils.getUserName()).orderByProcessInstanceStartTime()

6、任务查询

TaskQuery taskQuery = taskService.createTaskQuery().active().includeProcessVariables().taskCandidateOrAssigned(TaskUtils.getUserName()).taskCandidateGroupIn(TaskUtils.getCandidateGroup()).taskTenantId(TenantHelper.getTenantId()).orderByTaskCreateTime().desc();

7、流程实例查询

// 获取流程实例ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceTenantId(TenantHelper.getTenantId())	.processInstanceId(taskBo.getProcInsId()).singleResult();

8、流程模型查询

ModelQuery modelQuery = repositoryService.createModelQuery().modelTenantId(TenantHelper.getTenantId()).modelKey(modelBo.getModelKey()).orderByModelVersion().desc();

9、其它需要多租户的,后续再补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/826268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis 面试题(八)

1. MyBatis-Plus 是什么框架? MyBatis-Plus 是一个 MyBatis 的增强工具,它在 MyBatis 的基础上进行了功能扩展和增强,旨在简化开发、提高效率。这个框架提供了许多方便的功能,如自动生成 MyBatis 的 mapper 接口以及对应的实现类&#xff0…

VMWare ubuntu 18.04 网卡丢失

平台信息&#xff1a; ubuntu 18.04 ifconfig效果&#xff1a; lo: flags73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 280 bytes 20…

数据库服务器NTP调整

查看时间&#xff1a; watch date --NTP配置 1、查看时间 ntpdate -q XX.XX.192.3 ntpdate XX.XX.192.3 2、配置时间服务器 vi /etc/ntp.conf server XX.XX.192.3 iburst 3、设置时间不允许回调 vi /etc/sysconfig/ntpd OPTIONS"-u ntp:ntp -p /var/run/ntpd.p…

成长工作思考

前言 这一篇&#xff0c;不是技术博客&#xff0c;而是个人发展的一些思考和总结&#xff0c;复盘才会做的更好&#xff0c;成长的道路当然不是随着时间推移 开场白 不劳而获的是时间&#xff0c;完全免费的&#xff0c;但是免费的同时也是最贵的。向前看仿佛时间悠悠无边&a…

【Flutter】多语言方案二:GetX 版

介绍 多语言方案&#xff1a;GetX版&#xff0c;需要手动自定义字符串引用常量&#xff0c;优点不需要自己管理状态。 目录 介绍运行效果一、安装 GetX二、使用1.语言配置 在lib/core下创建一个language文件夹&#xff0c;文件夹下创建一个local.dart文件2.language文件夹下创…

程序员自由创业周记#32:新产品构思

程序员自由创业周记#32&#xff1a;新产品构思 新作品 我时常把自己看做一位木匠&#xff0c;有点手艺&#xff0c;能做一些作品养活自己。而 加一、Island Widgets、Nap 就是我的作品。 接下来在持续维护迭代的同时&#xff0c;要开启下一个作品的创造了。 其实早在2022的1…

wujie微前端接入笔记

由于项目目前采用 wujie 方案,所以本文重点介绍 wujie !!! 如果图片打不开,请在本机访问,图片在外网图床 主应用 wujie src\components\Layout\WujieLayout : 无界子应用渲染的容器src\components\Layout\hooks: 无界相关的 hook子应用类似 1.什么是微前端 微前端是一种软…

进程间通信(1)管道

我最近开了几个专栏&#xff0c;诚信互三&#xff01; > |||《算法专栏》&#xff1a;&#xff1a;刷题教程来自网站《代码随想录》。||| > |||《C专栏》&#xff1a;&#xff1a;记录我学习C的经历&#xff0c;看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

【C语言】内存函数-memcpy-memmove-memset...用法及实现,沉淀自己!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. memcpy函数使用和模拟实现 2. memmove使用和模拟实现 3. memset函数的使用 4. memcmp函数的使用 1. memcpy函数使用和模拟实现 <string.h>-------…

Buildroot系统构建学习笔记(以百问网imx6ullPro开发板为例)

一、Builroot是什么&#xff1f; Buildroot是一组Makefile和补丁&#xff0c;可简化并自动化地为嵌入式系统构建完整的、可启动的Linux环境(包括bootloader、Linux内核、包含各种APP的文件系统)。Buildroot运行于Linux平台&#xff0c;可以使用交叉编译工具为多个目标板构建嵌…

沉思录 (梁实秋)

链接&#xff1a;https://pan.quark.cn/s/8e27564b02f5

Python 检测当前系统的内存及硬盘资源,发送邮件告警通知(告警内容包含告警语句及网卡和系统版本时间)

颜色块 rootbogon:~ 2024-04-18 16:16:40# cat DefaultColor.py ######################################################################### # File Name: DefaultColor.py # Author: eight # Mail: 18847097110163.com # Created Time: Thu 11 Apr 2024 10:…

2024年了,抖音小店如此内卷,新手商家还能赚到钱吗?

大家好&#xff0c;我是电商糖果 关于抖音小店&#xff0c;网上有很多声音一直在说&#xff0c;这个项目不能做了。 已经内卷到一定程度了&#xff0c;新手商家入局&#xff0c;很难在里面喝到一口汤。 糖果是从2020年开始做的抖音小店&#xff0c;算是比较早期的商家了&…

H3C之GRE VPN

华子目录 GRE实验测试 MGRE实验 GRE实验 第一步&#xff1a;接口配置IP地址 <H3C>sys System View: return to User View with CtrlZ. [H3C]sysname r1 [r1]int g0/0 [r1-GigabitEthernet0/0]ip add 192.168.1.1 24 [r1-GigabitEthernet0/0]int g0/1 [r1-GigabitEtherne…

短视频素材哪里去找?推荐几个视频素材免费下载的网站

高质量的资源&#xff0c;会让你的视频创作更加生动和具有吸引力。下面我为你介绍世界各地的优质无水印视频素材网站&#xff0c;以拓宽你的创作视野&#xff0c;帮助你在这个视觉革命的时代中脱颖而出。 1. 蛙学府&#xff08;中国&#xff09; 提供各种类别的优质高清视频素…

续传查询SQL不规范导致漏数的问题

查询交易记录的时候&#xff0c;&#xff0c;用户需要一页一页往下翻&#xff0c;每点击一次就会将续传接口包发到后端接口进行查询返回下一页的数据&#xff0c;续传接口有几个字段&#xff0c;是续传键值&#xff0c;后端的SQL会根据上次读取到的最后一条往后捞数据 有些同事…

视频监控平台的web客户端看到的视频画面是黑屏时的处理方法

目录 一、问题描述 二、问题分析 &#xff08;一&#xff09;总体分析 &#xff08;二&#xff09;视频流传输问题的原因分析 1、网络问题 2、设备问题 3、配置和设置问题 4、兼容性问题 三、诊断和排查步骤 &#xff08;一&#xff09;编码方式问题的处理办法 &…

Redis中的订阅发布(一)

订阅发布 概述 Redis的发布与订阅功能由PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令组成。通过执行SUBSCRIBER命令&#xff0c;客户端可以订阅一个或多个频道&#xff0c;从而成为这些频道的订阅者(subscribe)&#xff1a; 每当有其他客户端向被订阅的频道发送消息(message)时&…

Pytorch实用教程:pytorch使用模型时并没有调用forward函数,那么前向运算是如何执行的呢?

在 PyTorch 中&#xff0c;尽管我们定义了 forward 方法来指定模型的前向传播逻辑&#xff0c;实际上我们通常不直接调用这个方法。相反&#xff0c;我们通过调用模型对象本身来触发前向传播&#xff0c;这背后的机制涉及到了 Python 的 __call__ 方法。 __call__ 方法的作用 …

flutter 二维数组赋值问题

class ExpCellDetailP0J0 {int num;//序号SizeDetail sizeDetail; //格口尺寸参数bool isSelected; //是否选中SelectFileData backFillFile;//本地格口规格设置弹窗里填写后的回填中显示用的格口图片、视频文件ExpCellDetailP0J0({this.num,this.sizeDetail,this.isSelected …