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

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

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

gitee源代码地址

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

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

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

gitee源代码地址

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

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

在线演示(包括H5) : http://218.75.87.38: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、其它需要多租户的,后续再补充

相关文章
|
监控 JavaScript 前端开发
ry-vue-flowable-xg:震撼来袭!这款基于 Vue 和 Flowable 的企业级工程项目管理项目,你绝不能错过
基于 Vue 和 Flowable 的企业级工程项目管理平台,免费开源且高度定制化。它覆盖投标管理、进度控制、财务核算等全流程需求,提供流程设计、部署、监控和任务管理等功能,适用于企业办公、生产制造、金融服务等多个场景,助力企业提升效率与竞争力。
1149 12
|
JavaScript 开发者
|
JavaScript API
【Vue 3】effectScope 究竟为何物?其运作机制如何?又能为我们化解哪些难题?
【Vue 3】effectScope 究竟为何物?其运作机制如何?又能为我们化解哪些难题?
|
JavaScript API
Vue数据动态代理机制的实现以及响应式与数据劫持
Vue数据动态代理机制的实现以及响应式与数据劫持
230 0
|
设计模式 JavaScript 前端开发
Vue之Mixin【一种代码重用机制】
Vue之Mixin【一种代码重用机制】
553 0
|
JavaScript API 网络架构
Vue3路由机制router(2)
Vue3路由机制router(2)
319 0
|
安全 定位技术 数据安全/隐私保护
Vue3路由机制router(1)
Vue3路由机制router(1)
200 0
|
JavaScript 前端开发 开发者
Vue的事件处理机制提供了灵活且强大的方式来响应用户的操作和组件间的通信
【5月更文挑战第16天】Vue事件处理包括v-on(@)指令用于绑定事件监听器,如示例中的按钮点击事件。事件修饰符如.stop和.prevent简化逻辑,如阻止表单默认提交。自定义事件允许组件间通信,子组件通过$emit触发事件,父组件用v-on监听并响应。理解这些机制有助于掌握Vue应用的事件控制。
213 4
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable为了适配文件上传改造VForm3的代码记录
ruoyi-nbcio-plus基于vue3的flowable为了适配文件上传改造VForm3的代码记录
616 1
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理
ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理
455 0