更多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();