From 234d8989d7b65aee665b5932fcf182009753592b Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期三, 06 三月 2024 19:07:23 +0800 Subject: [PATCH] update 优化 支持工作流关闭租户 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java | 97 ++++++++++++---- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java | 13 + ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java | 45 +++++-- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java | 39 +++++- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java | 40 ++++-- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java | 124 ++++++++++++++++--- 6 files changed, 274 insertions(+), 84 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java index 01bb12e..b2a7892 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java @@ -24,10 +24,7 @@ import org.dromara.workflow.utils.ModelUtils; import org.flowable.bpmn.model.BpmnModel; import org.flowable.engine.RepositoryService; -import org.flowable.engine.repository.Deployment; -import org.flowable.engine.repository.Model; -import org.flowable.engine.repository.ModelQuery; -import org.flowable.engine.repository.ProcessDefinition; +import org.flowable.engine.repository.*; import org.flowable.validation.ValidationError; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -63,7 +60,9 @@ @Override public TableDataInfo<Model> page(ModelBo modelBo) { ModelQuery query = repositoryService.createModelQuery(); - query.modelTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + query.modelTenantId(TenantHelper.getTenantId()); + } if (StringUtils.isNotEmpty(modelBo.getName())) { query.modelNameLike("%" + modelBo.getName() + "%"); } @@ -99,7 +98,12 @@ String description = modelBo.getDescription(); String categoryCode = modelBo.getCategoryCode(); String xml = modelBo.getXml(); - Model checkModel = repositoryService.createModelQuery().modelKey(key).modelTenantId(TenantHelper.getTenantId()).singleResult(); + ModelQuery query = repositoryService.createModelQuery(); + query.modelKey(key); + if (TenantHelper.isEnable()) { + query.modelTenantId(TenantHelper.getTenantId()); + } + Model checkModel = query.singleResult(); if (ObjectUtil.isNotNull(checkModel)) { throw new ServiceException("妯″瀷key宸插瓨鍦紒"); } @@ -110,7 +114,9 @@ model.setVersion(version); model.setCategory(categoryCode); model.setMetaInfo(description); - model.setTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + model.setTenantId(TenantHelper.getTenantId()); + } //淇濆瓨鍒濆鍖栫殑妯″瀷鍩烘湰淇℃伅鏁版嵁 repositoryService.saveModel(model); repositoryService.addModelEditorSource(model.getId(), StrUtil.utf8Bytes(xml)); @@ -158,7 +164,11 @@ public boolean update(ModelBo modelBo) { try { Model model = repositoryService.getModel(modelBo.getId()); - List<Model> list = repositoryService.createModelQuery().modelTenantId(TenantHelper.getTenantId()).modelKey(modelBo.getKey()).list(); + ModelQuery query = repositoryService.createModelQuery(); + if (TenantHelper.isEnable()) { + query.modelTenantId(TenantHelper.getTenantId()); + } + List<Model> list = query.modelKey(modelBo.getKey()).list(); list.stream().filter(e -> !e.getId().equals(model.getId())).findFirst().ifPresent(e -> { throw new ServiceException("妯″瀷KEY宸插瓨鍦紒"); }); @@ -189,7 +199,11 @@ BpmnModel bpmnModel = ModelUtils.xmlToBpmnModel(xml); ModelUtils.checkBpmnModel(bpmnModel); Model model = repositoryService.getModel(modelId); - List<Model> list = repositoryService.createModelQuery().modelTenantId(TenantHelper.getTenantId()).modelKey(key).list(); + ModelQuery query = repositoryService.createModelQuery(); + if (TenantHelper.isEnable()) { + query.modelTenantId(TenantHelper.getTenantId()); + } + List<Model> list = query.modelKey(key).list(); list.stream().filter(e -> !e.getId().equals(model.getId())).findFirst().ifPresent(e -> { throw new ServiceException("妯″瀷KEY宸插瓨鍦紒"); }); @@ -254,7 +268,11 @@ // xml璧勬簮鐨勫悕绉� 锛屽搴攁ct_ge_bytearray琛ㄤ腑鐨刵ame_瀛楁 String processName = model.getName() + ".bpmn20.xml"; // 璋冪敤閮ㄧ讲鐩稿叧鐨刟pi鏂规硶杩涜閮ㄧ讲娴佺▼瀹氫箟 - Deployment deployment = repositoryService.createDeployment() + DeploymentBuilder builder = repositoryService.createDeployment(); + if (TenantHelper.isEnable()) { + builder.tenantId(TenantHelper.getTenantId()); + } + Deployment deployment = builder // 閮ㄧ讲鍚嶇О .name(model.getName()) // 閮ㄧ讲鏍囪瘑key @@ -263,8 +281,6 @@ .category(model.getCategory()) // bpmn20.xml璧勬簮 .addBytes(processName, xmlBytes) - // 绉熸埛id - .tenantId(TenantHelper.getTenantId()) .deploy(); // 鏇存柊 閮ㄧ讲id 鍒版祦绋嬪畾涔夋ā鍨嬫暟鎹〃涓� diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java index fda10d3..f29db1d 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java @@ -24,10 +24,7 @@ import org.flowable.engine.ProcessMigrationService; import org.flowable.engine.RepositoryService; import org.flowable.engine.impl.bpmn.deployer.ResourceNameUtil; -import org.flowable.engine.repository.Deployment; -import org.flowable.engine.repository.Model; -import org.flowable.engine.repository.ProcessDefinition; -import org.flowable.engine.repository.ProcessDefinitionQuery; +import org.flowable.engine.repository.*; import org.flowable.task.api.history.HistoricTaskInstance; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -66,7 +63,9 @@ @Override public TableDataInfo<ProcessDefinitionVo> page(ProcessDefinitionBo processDefinitionBo) { ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery(); - query.processDefinitionTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + query.processDefinitionTenantId(TenantHelper.getTenantId()); + } if (StringUtils.isNotEmpty(processDefinitionBo.getKey())) { query.processDefinitionKey(processDefinitionBo.getKey()); } @@ -110,7 +109,10 @@ public List<ProcessDefinitionVo> getProcessDefinitionListByKey(String key) { List<ProcessDefinitionVo> processDefinitionVoList = new ArrayList<>(); ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery(); - List<ProcessDefinition> definitionList = query.processDefinitionTenantId(TenantHelper.getTenantId()).processDefinitionKey(key).list(); + if (TenantHelper.isEnable()) { + query.processDefinitionTenantId(TenantHelper.getTenantId()); + } + List<ProcessDefinition> definitionList = query.processDefinitionKey(key).list(); List<Deployment> deploymentList = null; if (CollUtil.isNotEmpty(definitionList)) { List<String> deploymentIds = definitionList.stream().map(ProcessDefinition::getDeploymentId).collect(Collectors.toList()); @@ -192,8 +194,11 @@ @Override public boolean updateProcessDefState(String processDefinitionId) { try { - ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() - .processDefinitionId(processDefinitionId).processDefinitionTenantId(TenantHelper.getTenantId()).singleResult(); + ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery(); + if (TenantHelper.isEnable()) { + query.processDefinitionTenantId(TenantHelper.getTenantId()); + } + ProcessDefinition processDefinition = query.processDefinitionId(processDefinitionId).singleResult(); //灏嗗綋鍓嶄负鎸傝捣鐘舵�佹洿鏂颁负婵�娲荤姸鎬� //鍙傛暟璇存槑锛氬弬鏁�1锛氭祦绋嬪畾涔塱d,鍙傛暟2锛氭槸鍚︽縺娲伙紙true鏄惁绾ц仈瀵瑰簲娴佺▼瀹炰緥锛屾縺娲讳簡鍒欏搴旀祦绋嬪疄渚嬮兘鍙互瀹℃壒锛夛紝 //鍙傛暟3锛氫粈涔堟椂鍊欐縺娲伙紝濡傛灉涓簄ull鍒欑珛鍗虫縺娲伙紝濡傛灉涓哄叿浣撴椂闂村垯鍒拌揪姝ゆ椂闂村悗婵�娲� @@ -247,7 +252,11 @@ ProcessDefinition pd = repositoryService.createProcessDefinitionQuery() .processDefinitionId(processDefinitionId).singleResult(); InputStream inputStream = repositoryService.getResourceAsStream(pd.getDeploymentId(), pd.getResourceName()); - Model model = repositoryService.createModelQuery().modelKey(pd.getKey()).modelTenantId(TenantHelper.getTenantId()).singleResult(); + ModelQuery query = repositoryService.createModelQuery(); + if (TenantHelper.isEnable()) { + query.modelTenantId(TenantHelper.getTenantId()); + } + Model model = query.modelKey(pd.getKey()).singleResult(); try { if (ObjectUtil.isNotNull(model)) { repositoryService.addModelEditorSource(model.getId(), IoUtil.readBytes(inputStream)); @@ -295,9 +304,12 @@ InputStream inputStream = file.getInputStream(); Deployment deployment; if (FlowConstant.ZIP.equals(suffix)) { - deployment = repositoryService.createDeployment() - .tenantId(TenantHelper.getTenantId()) - .addZipInputStream(new ZipInputStream(inputStream)).name(processName).key(processKey).category(categoryCode).deploy(); + DeploymentBuilder query = repositoryService.createDeployment(); + if (TenantHelper.isEnable()) { + query.tenantId(TenantHelper.getTenantId()); + } + deployment = query.addZipInputStream(new ZipInputStream(inputStream)) + .name(processName).key(processKey).category(categoryCode).deploy(); } else { String[] list = ResourceNameUtil.BPMN_RESOURCE_SUFFIXES; boolean flag = false; @@ -308,9 +320,12 @@ } } if (flag) { - deployment = repositoryService.createDeployment() - .tenantId(TenantHelper.getTenantId()) - .addInputStream(filename, inputStream).name(processName).key(processKey).category(categoryCode).deploy(); + DeploymentBuilder query = repositoryService.createDeployment(); + if (TenantHelper.isEnable()) { + query.tenantId(TenantHelper.getTenantId()); + } + deployment = query.addInputStream(filename, inputStream) + .name(processName).key(processKey).category(categoryCode).deploy(); } else { throw new ServiceException("鏂囦欢绫诲瀷涓婁紶閿欒锛�"); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java index b195cc7..e49be0d 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java @@ -45,7 +45,9 @@ import org.flowable.engine.task.Attachment; import org.flowable.engine.task.Comment; import org.flowable.task.api.Task; +import org.flowable.task.api.TaskQuery; import org.flowable.task.api.history.HistoricTaskInstance; +import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -96,7 +98,9 @@ public TableDataInfo<ProcessInstanceVo> getProcessInstanceRunningByPage(ProcessInstanceBo processInstanceBo) { List<ProcessInstanceVo> list = new ArrayList<>(); ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); - query.processInstanceTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } if (StringUtils.isNotBlank(processInstanceBo.getName())) { query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); } @@ -134,7 +138,9 @@ List<ProcessInstanceVo> list = new ArrayList<>(); HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery().finished() .orderByProcessInstanceEndTime().desc(); - query.processInstanceTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } if (StringUtils.isNotEmpty(processInstanceBo.getName())) { query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); } @@ -315,8 +321,11 @@ public Map<String, Object> getHistoryRecord(String processInstanceId) { Map<String, Object> map = new HashMap<>(); // 鏌ヨ浠诲姟鍔炵悊璁板綍 - List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery() - .processInstanceId(processInstanceId).taskTenantId(TenantHelper.getTenantId()).orderByHistoricTaskInstanceEndTime().desc().list(); + HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + List<HistoricTaskInstance> list = query.processInstanceId(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list(); list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed()); List<ActHistoryInfoVo> actHistoryInfoVoList = new ArrayList<>(); List<Comment> processInstanceComments = taskService.getProcessInstanceComments(processInstanceId); @@ -454,8 +463,11 @@ @Transactional(rollbackFor = Exception.class) public boolean deleteRuntimeProcessInst(ProcessInvalidBo processInvalidBo) { try { - List<Task> list = taskService.createTaskQuery().processInstanceId(processInvalidBo.getProcessInstanceId()) - .taskTenantId(TenantHelper.getTenantId()).list(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> list = query.processInstanceId(processInvalidBo.getProcessInstanceId()).list(); List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId())); if (CollUtil.isNotEmpty(subTasks)) { subTasks.forEach(e -> taskService.deleteTask(e.getId())); @@ -467,8 +479,11 @@ for (Task task : StreamUtils.filter(list, e -> StringUtils.isBlank(e.getParentTaskId()))) { taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.INVALID.getStatus(), deleteReason); } - HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() - .processInstanceId(processInvalidBo.getProcessInstanceId()).processInstanceTenantId(TenantHelper.getTenantId()).singleResult(); + HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query1.processInstanceTenantId(TenantHelper.getTenantId()); + } + HistoricProcessInstance historicProcessInstance = query1.processInstanceId(processInvalidBo.getProcessInstanceId()).singleResult(); if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.FINISH.getStatus().equals(historicProcessInstance.getBusinessStatus())) { throw new ServiceException("璇ュ崟鎹凡瀹屾垚鐢宠锛�"); } @@ -495,16 +510,22 @@ public boolean deleteRuntimeProcessAndHisInst(List<String> processInstanceIds) { try { // 1.鍒犻櫎杩愯涓祦绋嬪疄渚� - List<Task> list = taskService.createTaskQuery().processInstanceIdIn(processInstanceIds) - .taskTenantId(TenantHelper.getTenantId()).list(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> list = query.processInstanceIdIn(processInstanceIds).list(); List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId())); if (CollUtil.isNotEmpty(subTasks)) { subTasks.forEach(e -> taskService.deleteTask(e.getId())); } runtimeService.bulkDeleteProcessInstances(processInstanceIds, LoginHelper.getUserId() + "鍒犻櫎浜嗗綋鍓嶆祦绋嬬敵璇�"); // 2.鍒犻櫎鍘嗗彶璁板綍 - List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery() - .processInstanceTenantId(TenantHelper.getTenantId()).processInstanceIds(new HashSet<>(processInstanceIds)).list(); + HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query1.processInstanceTenantId(TenantHelper.getTenantId()); + } + List<HistoricProcessInstance> historicProcessInstanceList = query1.processInstanceIds(new HashSet<>(processInstanceIds)).list(); if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) { historyService.bulkDeleteHistoricProcessInstances(processInstanceIds); } @@ -531,16 +552,22 @@ return false; } List<String> processInstanceIds = StreamUtils.toList(actHiProcinsts, ActHiProcinst::getId); - List<Task> list = taskService.createTaskQuery().processInstanceIdIn(processInstanceIds) - .taskTenantId(TenantHelper.getTenantId()).list(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> list = query.processInstanceIdIn(processInstanceIds).list(); List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId())); if (CollUtil.isNotEmpty(subTasks)) { subTasks.forEach(e -> taskService.deleteTask(e.getId())); } runtimeService.bulkDeleteProcessInstances(processInstanceIds, LoginHelper.getUserId() + "鍒犻櫎浜嗗綋鍓嶆祦绋嬬敵璇�"); // 2.鍒犻櫎鍘嗗彶璁板綍 - List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery() - .processInstanceTenantId(TenantHelper.getTenantId()).processInstanceIds(new HashSet<>(processInstanceIds)).list(); + HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query1.processInstanceTenantId(TenantHelper.getTenantId()); + } + List<HistoricProcessInstance> historicProcessInstanceList = query1.processInstanceIds(new HashSet<>(processInstanceIds)).list(); if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) { historyService.bulkDeleteHistoricProcessInstances(processInstanceIds); } @@ -577,8 +604,12 @@ @Transactional(rollbackFor = Exception.class) public boolean cancelProcessApply(String processInstanceId) { try { - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId).processInstanceTenantId(TenantHelper.getTenantId()).startedBy(String.valueOf(LoginHelper.getUserId())).singleResult(); + ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } + ProcessInstance processInstance = query.processInstanceId(processInstanceId) + .startedBy(String.valueOf(LoginHelper.getUserId())).singleResult(); if (ObjectUtil.isNull(processInstance)) { throw new ServiceException("鎮ㄤ笉鏄祦绋嬪彂璧蜂汉,鎾ら攢澶辫触!"); } @@ -588,7 +619,11 @@ if (BusinessStatusEnum.CANCEL.getStatus().equals(processInstance.getBusinessStatus())) { throw new ServiceException("璇ュ崟鎹凡鎾ら攢锛�"); } - List<Task> taskList = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).processInstanceId(processInstanceId).list(); + TaskQuery query1 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query1.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> taskList = query1.processInstanceId(processInstanceId).list(); for (Task task : taskList) { taskService.setAssignee(task.getId(), String.valueOf(LoginHelper.getUserId())); taskService.addComment(task.getId(), processInstanceId, TaskStatusEnum.CANCEL.getStatus(), LoginHelper.getLoginUser().getNickname() + "锛氭挙閿�鐢宠"); @@ -598,7 +633,11 @@ runtimeService.createChangeActivityStateBuilder() .processInstanceId(processInstanceId) .moveActivityIdsToSingleActivityId(nodeIds, historicTaskInstance.getTaskDefinitionKey()).changeState(); - Task task = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).processInstanceId(processInstanceId).list().get(0); + TaskQuery query2 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query2.taskTenantId(TenantHelper.getTenantId()); + } + Task task = query2.processInstanceId(processInstanceId).list().get(0); taskService.setAssignee(task.getId(), historicTaskInstance.getAssignee()); //鑾峰彇骞惰缃戝叧鎵ц鍚庝繚鐣欑殑鎵ц瀹炰緥鏁版嵁 ExecutionChildByExecutionIdCmd childByExecutionIdCmd = new ExecutionChildByExecutionIdCmd(task.getExecutionId()); @@ -629,7 +668,9 @@ public TableDataInfo<ProcessInstanceVo> getCurrentSubmitByPage(ProcessInstanceBo processInstanceBo) { List<ProcessInstanceVo> list = new ArrayList<>(); HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery(); - query.processInstanceTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } query.startedBy(processInstanceBo.getStartUserId()); if (StringUtils.isNotBlank(processInstanceBo.getName())) { query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); @@ -648,7 +689,11 @@ List<TaskVo> taskVoList = new ArrayList<>(); if (CollUtil.isNotEmpty(historicProcessInstanceList)) { List<String> processInstanceIds = StreamUtils.toList(historicProcessInstanceList, HistoricProcessInstance::getId); - List<Task> taskList = taskService.createTaskQuery().processInstanceIdIn(processInstanceIds).taskTenantId(TenantHelper.getTenantId()).list(); + TaskQuery query1 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query1.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> taskList = query1.processInstanceIdIn(processInstanceIds).list(); for (Task task : taskList) { taskVoList.add(BeanUtil.toBean(task, TaskVo.class)); } @@ -675,9 +720,11 @@ @Transactional(rollbackFor = Exception.class) public boolean taskUrging(TaskUrgingBo taskUrgingBo) { try { - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(taskUrgingBo.getProcessInstanceId()) - .processInstanceTenantId(TenantHelper.getTenantId()).singleResult(); + ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } + ProcessInstance processInstance = query.processInstanceId(taskUrgingBo.getProcessInstanceId()).singleResult(); if (processInstance == null) { throw new ServiceException("浠诲姟宸茬粨鏉燂紒"); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java index 653b733..6218470 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java @@ -35,10 +35,12 @@ import org.flowable.common.engine.impl.identity.Authentication; import org.flowable.engine.*; import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.history.HistoricProcessInstanceQuery; import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior; import org.flowable.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior; import org.flowable.engine.impl.persistence.entity.ExecutionEntity; import org.flowable.engine.runtime.ProcessInstance; +import org.flowable.engine.runtime.ProcessInstanceQuery; import org.flowable.task.api.Task; import org.flowable.task.api.TaskQuery; import org.flowable.task.api.history.HistoricTaskInstance; @@ -84,12 +86,19 @@ throw new ServiceException("鍚姩宸ヤ綔娴佹椂蹇呴』鍖呭惈涓氬姟ID"); } // 鍒ゆ柇褰撳墠涓氬姟鏄惁鍚姩杩囨祦绋� - HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceBusinessKey(startProcessBo.getBusinessKey()).processInstanceTenantId(TenantHelper.getTenantId()).singleResult(); + HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } + HistoricProcessInstance historicProcessInstance = query.processInstanceBusinessKey(startProcessBo.getBusinessKey()).singleResult(); if (ObjectUtil.isNotEmpty(historicProcessInstance)) { BusinessStatusEnum.checkStartStatus(historicProcessInstance.getBusinessStatus()); } TaskQuery taskQuery = taskService.createTaskQuery(); - List<Task> taskResult = taskQuery.processInstanceBusinessKey(startProcessBo.getBusinessKey()).taskTenantId(TenantHelper.getTenantId()).list(); + if (TenantHelper.isEnable()) { + taskQuery.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> taskResult = taskQuery.processInstanceBusinessKey(startProcessBo.getBusinessKey()).list(); if (CollUtil.isNotEmpty(taskResult)) { if (CollUtil.isNotEmpty(startProcessBo.getVariables())) { taskService.setVariables(taskResult.get(0).getId(), startProcessBo.getVariables()); @@ -109,14 +118,22 @@ variables.put(INITIATOR, (String.valueOf(LoginHelper.getUserId()))); ProcessInstance pi; try { - pi = runtimeService.startProcessInstanceByKeyAndTenantId(startProcessBo.getProcessKey(), startProcessBo.getBusinessKey(), variables, TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + pi = runtimeService.startProcessInstanceByKeyAndTenantId(startProcessBo.getProcessKey(), startProcessBo.getBusinessKey(), variables, TenantHelper.getTenantId()); + } else { + pi = runtimeService.startProcessInstanceByKey(startProcessBo.getProcessKey(), startProcessBo.getBusinessKey(), variables); + } } catch (FlowableObjectNotFoundException e) { throw new ServiceException("鎵句笉鍒板綋鍓嶃��" + startProcessBo.getProcessKey() + "銆戞祦绋嬪畾涔夛紒"); } // 灏嗘祦绋嬪畾涔夊悕绉� 浣滀负 娴佺▼瀹炰緥鍚嶇О runtimeService.setProcessInstanceName(pi.getProcessInstanceId(), pi.getProcessDefinitionName()); // 鐢宠浜烘墽琛屾祦绋� - List<Task> taskList = taskService.createTaskQuery().processInstanceId(pi.getId()).taskTenantId(TenantHelper.getTenantId()).list(); + TaskQuery taskQuery1 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + taskQuery.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> taskList = taskQuery1.processInstanceId(pi.getId()).list(); if (taskList.size() > 1) { throw new ServiceException("璇锋鏌ユ祦绋嬬涓�涓幆鑺傛槸鍚︿负鐢宠浜猴紒"); } @@ -141,7 +158,10 @@ List<RoleDTO> roles = LoginHelper.getLoginUser().getRoles(); String userId = String.valueOf(LoginHelper.getUserId()); TaskQuery taskQuery = taskService.createTaskQuery(); - taskQuery.taskId(completeTaskBo.getTaskId()).taskTenantId(TenantHelper.getTenantId()).taskCandidateOrAssigned(userId); + if (TenantHelper.isEnable()) { + taskQuery.taskTenantId(TenantHelper.getTenantId()); + } + taskQuery.taskId(completeTaskBo.getTaskId()).taskCandidateOrAssigned(userId); if (CollUtil.isNotEmpty(roles)) { List<String> groupIds = StreamUtils.toList(roles, e -> String.valueOf(e.getRoleId())); taskQuery.taskCandidateGroupIn(groupIds); @@ -186,8 +206,11 @@ } else { taskService.complete(completeTaskBo.getTaskId()); } - ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()) - .processInstanceTenantId(TenantHelper.getTenantId()).singleResult(); + ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } + ProcessInstance pi = query.processInstanceId(task.getProcessInstanceId()).singleResult(); if (pi == null) { UpdateBusinessStatusCmd updateBusinessStatusCmd = new UpdateBusinessStatusCmd(task.getProcessInstanceId(), BusinessStatusEnum.FINISH.getStatus()); managementService.executeCommand(updateBusinessStatusCmd); @@ -195,7 +218,11 @@ processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.FINISH.getStatus(), false); } } else { - List<Task> list = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).processInstanceId(task.getProcessInstanceId()).list(); + TaskQuery query1 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query1.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> list = query1.processInstanceId(task.getProcessInstanceId()).list(); if (CollUtil.isNotEmpty(list) && CollUtil.isNotEmpty(completeTaskBo.getWfCopyList())) { TaskEntity newTask = WorkflowUtils.createNewTask(task); taskService.addComment(newTask.getId(), task.getProcessInstanceId(), TaskStatusEnum.COPY.getStatus(), @@ -239,7 +266,7 @@ List<RoleDTO> roles = LoginHelper.getLoginUser().getRoles(); String userId = String.valueOf(LoginHelper.getUserId()); queryWrapper.eq("t.business_status_", BusinessStatusEnum.WAITING.getStatus()); - queryWrapper.eq("t.tenant_id_", TenantHelper.getTenantId()); + queryWrapper.eq(TenantHelper.isEnable(), "t.tenant_id_", TenantHelper.getTenantId()); queryWrapper.and(w1 -> w1.eq("t.assignee_", userId) .or(w2 -> w2.isNull("t.assignee_") @@ -272,7 +299,10 @@ */ @Override public TableDataInfo<TaskVo> getAllTaskWaitByPage(TaskBo taskBo) { - TaskQuery query = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } if (StringUtils.isNotBlank(taskBo.getName())) { query.taskNameLike("%" + taskBo.getName() + "%"); } @@ -317,7 +347,11 @@ @Override public TableDataInfo<TaskVo> getTaskFinishByPage(TaskBo taskBo) { String userId = String.valueOf(LoginHelper.getUserId()); - HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery().taskAssignee(userId).taskTenantId(TenantHelper.getTenantId()).finished().orderByHistoricTaskInstanceStartTime().desc(); + HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + query.taskAssignee(userId).finished().orderByHistoricTaskInstanceStartTime().desc(); if (StringUtils.isNotBlank(taskBo.getName())) { query.taskNameLike("%" + taskBo.getName() + "%"); } @@ -390,7 +424,11 @@ */ @Override public TableDataInfo<TaskVo> getAllTaskFinishByPage(TaskBo taskBo) { - HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery().taskTenantId(TenantHelper.getTenantId()).finished().orderByHistoricTaskInstanceStartTime().desc(); + HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + query.finished().orderByHistoricTaskInstanceStartTime().desc(); if (StringUtils.isNotBlank(taskBo.getName())) { query.taskNameLike("%" + taskBo.getName() + "%"); } @@ -432,7 +470,11 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean delegateTask(DelegateBo delegateBo) { - TaskEntity task = (TaskEntity) taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).taskId(delegateBo.getTaskId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + TaskEntity task = (TaskEntity) query.taskId(delegateBo.getTaskId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult(); if (ObjectUtil.isEmpty(task)) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); } @@ -461,7 +503,11 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean terminationTask(TerminationBo terminationBo) { - Task task = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).taskId(terminationBo.getTaskId()).singleResult(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + Task task = query.taskId(terminationBo.getTaskId()).singleResult(); if (ObjectUtil.isEmpty(task)) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); @@ -469,7 +515,11 @@ if (task.isSuspended()) { throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED); } - HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceBusinessKey(task.getProcessInstanceId()).processInstanceTenantId(TenantHelper.getTenantId()).singleResult(); + HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query1.processInstanceTenantId(TenantHelper.getTenantId()); + } + HistoricProcessInstance historicProcessInstance = query1.processInstanceBusinessKey(task.getProcessInstanceId()).singleResult(); if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.TERMINATION.getStatus().equals(historicProcessInstance.getBusinessStatus())) { throw new ServiceException("璇ュ崟鎹凡缁堟锛�"); } @@ -480,7 +530,11 @@ terminationBo.setComment(LoginHelper.getLoginUser().getNickname() + "缁堟浜嗙敵璇凤細" + terminationBo.getComment()); } taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.TERMINATION.getStatus(), terminationBo.getComment()); - List<Task> list = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).processInstanceId(task.getProcessInstanceId()).list(); + TaskQuery query2 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query2.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> list = query2.processInstanceId(task.getProcessInstanceId()).list(); if (CollectionUtil.isNotEmpty(list)) { List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId())); if (CollectionUtil.isNotEmpty(subTasks)) { @@ -506,7 +560,11 @@ */ @Override public boolean transferTask(TransmitBo transmitBo) { - Task task = taskService.createTaskQuery().taskId(transmitBo.getTaskId()).taskTenantId(TenantHelper.getTenantId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + Task task = query.taskId(transmitBo.getTaskId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult(); if (ObjectUtil.isEmpty(task)) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); } @@ -534,7 +592,9 @@ public boolean addMultiInstanceExecution(AddMultiBo addMultiBo) { TaskQuery taskQuery = taskService.createTaskQuery(); taskQuery.taskId(addMultiBo.getTaskId()); - taskQuery.taskTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + taskQuery.taskTenantId(TenantHelper.getTenantId()); + } if (!LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin()) { taskQuery.taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())); } @@ -583,7 +643,9 @@ public boolean deleteMultiInstanceExecution(DeleteMultiBo deleteMultiBo) { TaskQuery taskQuery = taskService.createTaskQuery(); taskQuery.taskId(deleteMultiBo.getTaskId()); - taskQuery.taskTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + taskQuery.taskTenantId(TenantHelper.getTenantId()); + } if (!LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin()) { taskQuery.taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())); } @@ -633,7 +695,11 @@ @Override @Transactional(rollbackFor = Exception.class) public String backProcess(BackProcessBo backProcessBo) { - Task task = taskService.createTaskQuery().taskId(backProcessBo.getTaskId()).taskTenantId(TenantHelper.getTenantId()).taskAssignee(String.valueOf(LoginHelper.getUserId())).singleResult(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + Task task = query.taskId(backProcessBo.getTaskId()).taskAssignee(String.valueOf(LoginHelper.getUserId())).singleResult(); if (ObjectUtil.isEmpty(task)) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); } @@ -651,7 +717,11 @@ throw new ServiceException("璇ュ崟鎹凡閫�鍥烇紒"); } //鍒ゆ柇鏄惁鏈夊涓换鍔� - List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).taskTenantId(TenantHelper.getTenantId()).list(); + TaskQuery query1 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query1.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> taskList = query.processInstanceId(processInstanceId).list(); //鐢宠浜鸿妭鐐� HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstanceId).finished().orderByHistoricTaskInstanceEndTime().asc().list().get(0); String backTaskDefinitionKey = historicTaskInstance.getTaskDefinitionKey(); @@ -663,7 +733,11 @@ //褰撳墠鍗曚釜鑺傜偣椹冲洖鍗曚釜鑺傜偣 runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId).moveActivityIdTo(task.getTaskDefinitionKey(), backTaskDefinitionKey).changeState(); } - List<Task> list = taskService.createTaskQuery().processInstanceId(processInstanceId).taskTenantId(TenantHelper.getTenantId()).list(); + TaskQuery query2 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query1.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> list = query2.processInstanceId(processInstanceId).list(); for (Task t : list) { taskService.setAssignee(t.getId(), historicTaskInstance.getAssignee()); } @@ -696,7 +770,11 @@ @Transactional(rollbackFor = Exception.class) public boolean updateAssignee(String[] taskIds, String userId) { try { - List<Task> list = taskService.createTaskQuery().taskIds(Arrays.asList(taskIds)).taskTenantId(TenantHelper.getTenantId()).list(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> list = query.taskIds(Arrays.asList(taskIds)).list(); for (Task task : list) { taskService.setAssignee(task.getId(), userId); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java index e30e553..dd91eaf 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java @@ -29,6 +29,7 @@ import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior; import org.flowable.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior; import org.flowable.task.api.Task; +import org.flowable.task.api.TaskQuery; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -92,8 +93,16 @@ @Override @SuppressWarnings("unchecked") public List<TaskVo> getWorkflowDeleteMultiInstanceList(String taskId) { - Task task = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).taskId(taskId).singleResult(); - List<Task> taskList = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).processInstanceId(task.getProcessInstanceId()).list(); + TaskQuery query = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + Task task = query.taskId(taskId).singleResult(); + TaskQuery query1 = taskService.createTaskQuery(); + if (TenantHelper.isEnable()) { + query1.taskTenantId(TenantHelper.getTenantId()); + } + List<Task> taskList = query1.processInstanceId(task.getProcessInstanceId()).list(); MultiInstanceVo multiInstance = WorkflowUtils.isMultiInstance(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<TaskVo> taskListVo = new ArrayList<>(); if (multiInstance == null) { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index 711d793..bb0e52b 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -33,11 +33,14 @@ import org.flowable.common.engine.api.delegate.Expression; import org.flowable.engine.ProcessEngine; import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.history.HistoricProcessInstanceQuery; import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior; import org.flowable.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior; import org.flowable.identitylink.api.history.HistoricIdentityLink; import org.flowable.task.api.Task; +import org.flowable.task.api.TaskQuery; import org.flowable.task.api.history.HistoricTaskInstance; +import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.flowable.task.service.impl.persistence.entity.TaskEntity; import java.util.*; @@ -78,7 +81,9 @@ task.setTaskDefinitionKey(currentTask.getTaskDefinitionKey()); task.setPriority(currentTask.getPriority()); task.setCreateTime(new Date()); - task.setTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + task.setTenantId(TenantHelper.getTenantId()); + } PROCESS_ENGINE.getTaskService().saveTask(task); } if (ObjectUtil.isNotNull(task)) { @@ -105,7 +110,9 @@ newTask.setProcessDefinitionId(parentTask.getProcessDefinitionId()); newTask.setProcessInstanceId(parentTask.getProcessInstanceId()); newTask.setTaskDefinitionKey(parentTask.getTaskDefinitionKey()); - newTask.setTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + newTask.setTenantId(TenantHelper.getTenantId()); + } list.add(newTask); } } @@ -118,7 +125,9 @@ actHiTaskinst.setProcDefId(processDefinitionId); actHiTaskinst.setProcInstId(processInstanceId); actHiTaskinst.setScopeType(TaskStatusEnum.COPY.getStatus()); - actHiTaskinst.setTenantId(TenantHelper.getTenantId()); + if (TenantHelper.isEnable()) { + actHiTaskinst.setTenantId(TenantHelper.getTenantId()); + } LambdaUpdateWrapper<ActHiTaskinst> updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.in(ActHiTaskinst::getId, taskIds); ACT_HI_TASKINST_MAPPER.update(actHiTaskinst, updateWrapper); @@ -136,7 +145,11 @@ public static ParticipantVo getCurrentTaskParticipant(String taskId) { ParticipantVo participantVo = new ParticipantVo(); List<HistoricIdentityLink> linksForTask = PROCESS_ENGINE.getHistoryService().getHistoricIdentityLinksForTask(taskId); - Task task = PROCESS_ENGINE.getTaskService().createTaskQuery().taskTenantId(TenantHelper.getTenantId()).taskId(taskId).singleResult(); + TaskQuery query = PROCESS_ENGINE.getTaskService().createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + Task task = query.taskId(taskId).singleResult(); if (task != null && CollUtil.isNotEmpty(linksForTask)) { List<HistoricIdentityLink> groupList = StreamUtils.filter(linksForTask, e -> StringUtils.isNotBlank(e.getGroupId())); if (CollUtil.isNotEmpty(groupList)) { @@ -220,8 +233,16 @@ * @param taskId 浠诲姟id */ public static String getBusinessStatusByTaskId(String taskId) { - HistoricTaskInstance historicTaskInstance = PROCESS_ENGINE.getHistoryService().createHistoricTaskInstanceQuery().taskId(taskId).taskTenantId(TenantHelper.getTenantId()).singleResult(); - HistoricProcessInstance historicProcessInstance = PROCESS_ENGINE.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(historicTaskInstance.getProcessInstanceId()).processInstanceTenantId(TenantHelper.getTenantId()).singleResult(); + HistoricTaskInstanceQuery query = PROCESS_ENGINE.getHistoryService().createHistoricTaskInstanceQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + HistoricTaskInstance historicTaskInstance = query.taskId(taskId).singleResult(); + HistoricProcessInstanceQuery query1 = PROCESS_ENGINE.getHistoryService().createHistoricProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query1.processInstanceTenantId(TenantHelper.getTenantId()); + } + HistoricProcessInstance historicProcessInstance = query1.processInstanceId(historicTaskInstance.getProcessInstanceId()).singleResult(); return historicProcessInstance.getBusinessStatus(); } @@ -231,7 +252,11 @@ * @param processInstanceId 娴佺▼瀹炰緥id */ public static String getBusinessStatus(String processInstanceId) { - HistoricProcessInstance historicProcessInstance = PROCESS_ENGINE.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).processInstanceTenantId(TenantHelper.getTenantId()).singleResult(); + HistoricProcessInstanceQuery query = PROCESS_ENGINE.getHistoryService().createHistoricProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } + HistoricProcessInstance historicProcessInstance = query.processInstanceId(processInstanceId).singleResult(); return historicProcessInstance.getBusinessStatus(); } -- Gitblit v1.9.3