diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/config/GlobalFlowableListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/config/GlobalFlowableListener.java index 2ff46a987..a37c787da 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/config/GlobalFlowableListener.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/config/GlobalFlowableListener.java @@ -2,6 +2,7 @@ package org.dromara.workflow.flowable.config; import cn.hutool.core.collection.CollUtil; import org.dromara.workflow.common.enums.TaskStatusEnum; +import org.dromara.workflow.utils.QueryUtils; import org.flowable.bpmn.model.BoundaryEvent; import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.FlowElement; @@ -78,7 +79,7 @@ public class GlobalFlowableListener implements FlowableEventListener { String attachedToRefId = ((BoundaryEvent) flowElement).getAttachedToRefId(); List list = runtimeService.createExecutionQuery().activityId(attachedToRefId).list(); for (Execution ex : list) { - Task task = taskService.createTaskQuery().executionId(ex.getId()).singleResult(); + Task task = QueryUtils.taskQuery().executionId(ex.getId()).singleResult(); if (task != null) { List taskComments = taskService.getTaskComments(task.getId()); if (CollUtil.isEmpty(taskComments)) { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java index 1a75414c0..11f844e4a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java @@ -2,6 +2,7 @@ package org.dromara.workflow.listener; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.workflow.utils.QueryUtils; import org.flowable.engine.TaskService; import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.ExecutionListener; @@ -19,11 +20,9 @@ import org.springframework.stereotype.Component; @Component("testLeaveExecutionListener") public class TestLeaveExecutionListener implements ExecutionListener { - private final TaskService taskService; - @Override public void notify(DelegateExecution execution) { - Task task = taskService.createTaskQuery().executionId(execution.getId()).singleResult(); + Task task = QueryUtils.taskQuery().executionId(execution.getId()).singleResult(); log.info("执行监听【" + task.getName() + "】"); } } 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 b2a7892f1..4d23bf033 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 @@ -22,6 +22,7 @@ import org.dromara.workflow.domain.bo.ModelBo; import org.dromara.workflow.domain.vo.ModelVo; import org.dromara.workflow.service.IActModelService; import org.dromara.workflow.utils.ModelUtils; +import org.dromara.workflow.utils.QueryUtils; import org.flowable.bpmn.model.BpmnModel; import org.flowable.engine.RepositoryService; import org.flowable.engine.repository.*; @@ -35,7 +36,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.List; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -59,10 +60,7 @@ public class ActModelServiceImpl implements IActModelService { */ @Override public TableDataInfo page(ModelBo modelBo) { - ModelQuery query = repositoryService.createModelQuery(); - if (TenantHelper.isEnable()) { - query.modelTenantId(TenantHelper.getTenantId()); - } + ModelQuery query = QueryUtils.modelQuery(); if (StringUtils.isNotEmpty(modelBo.getName())) { query.modelNameLike("%" + modelBo.getName() + "%"); } @@ -98,12 +96,7 @@ public class ActModelServiceImpl implements IActModelService { String description = modelBo.getDescription(); String categoryCode = modelBo.getCategoryCode(); String xml = modelBo.getXml(); - ModelQuery query = repositoryService.createModelQuery(); - query.modelKey(key); - if (TenantHelper.isEnable()) { - query.modelTenantId(TenantHelper.getTenantId()); - } - Model checkModel = query.singleResult(); + Model checkModel = QueryUtils.modelQuery().modelKey(key).singleResult(); if (ObjectUtil.isNotNull(checkModel)) { throw new ServiceException("模型key已存在!"); } @@ -114,9 +107,7 @@ public class ActModelServiceImpl implements IActModelService { model.setVersion(version); model.setCategory(categoryCode); model.setMetaInfo(description); - if (TenantHelper.isEnable()) { - model.setTenantId(TenantHelper.getTenantId()); - } + model.setTenantId(TenantHelper.getTenantId()); //保存初始化的模型基本信息数据 repositoryService.saveModel(model); repositoryService.addModelEditorSource(model.getId(), StrUtil.utf8Bytes(xml)); @@ -164,11 +155,7 @@ public class ActModelServiceImpl implements IActModelService { public boolean update(ModelBo modelBo) { try { Model model = repositoryService.getModel(modelBo.getId()); - ModelQuery query = repositoryService.createModelQuery(); - if (TenantHelper.isEnable()) { - query.modelTenantId(TenantHelper.getTenantId()); - } - List list = query.modelKey(modelBo.getKey()).list(); + List list = QueryUtils.modelQuery().modelKey(modelBo.getKey()).list(); list.stream().filter(e -> !e.getId().equals(model.getId())).findFirst().ifPresent(e -> { throw new ServiceException("模型KEY已存在!"); }); @@ -199,11 +186,7 @@ public class ActModelServiceImpl implements IActModelService { BpmnModel bpmnModel = ModelUtils.xmlToBpmnModel(xml); ModelUtils.checkBpmnModel(bpmnModel); Model model = repositoryService.getModel(modelId); - ModelQuery query = repositoryService.createModelQuery(); - if (TenantHelper.isEnable()) { - query.modelTenantId(TenantHelper.getTenantId()); - } - List list = query.modelKey(key).list(); + List list = QueryUtils.modelQuery().modelKey(key).list(); list.stream().filter(e -> !e.getId().equals(model.getId())).findFirst().ifPresent(e -> { throw new ServiceException("模型KEY已存在!"); }); @@ -268,11 +251,7 @@ public class ActModelServiceImpl implements IActModelService { // xml资源的名称 ,对应act_ge_bytearray表中的name_字段 String processName = model.getName() + ".bpmn20.xml"; // 调用部署相关的api方法进行部署流程定义 - DeploymentBuilder builder = repositoryService.createDeployment(); - if (TenantHelper.isEnable()) { - builder.tenantId(TenantHelper.getTenantId()); - } - Deployment deployment = builder + Deployment deployment = repositoryService.createDeployment() // 部署名称 .name(model.getName()) // 部署标识key @@ -281,13 +260,15 @@ public class ActModelServiceImpl implements IActModelService { .category(model.getCategory()) // bpmn20.xml资源 .addBytes(processName, xmlBytes) + // 租户id + .tenantId(TenantHelper.getTenantId()) .deploy(); // 更新 部署id 到流程定义模型数据表中 model.setDeploymentId(deployment.getId()); repositoryService.saveModel(model); // 更新分类 - ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult(); + ProcessDefinition definition = QueryUtils.definitionQuery().deploymentId(deployment.getId()).singleResult(); repositoryService.setProcessDefinitionCategory(definition.getId(), model.getCategory()); return true; } catch (Exception e) { 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 f29db1dee..51c90f1e9 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 @@ -20,7 +20,7 @@ import org.dromara.workflow.domain.bo.ProcessDefinitionBo; import org.dromara.workflow.domain.vo.ProcessDefinitionVo; import org.dromara.workflow.service.IActProcessDefinitionService; import org.dromara.workflow.service.IWfCategoryService; -import org.flowable.engine.HistoryService; +import org.dromara.workflow.utils.QueryUtils; import org.flowable.engine.ProcessMigrationService; import org.flowable.engine.RepositoryService; import org.flowable.engine.impl.bpmn.deployer.ResourceNameUtil; @@ -47,11 +47,7 @@ import java.util.zip.ZipInputStream; public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionService { private final RepositoryService repositoryService; - - private final HistoryService historyService; - private final ProcessMigrationService processMigrationService; - private final IWfCategoryService wfCategoryService; /** @@ -62,10 +58,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer */ @Override public TableDataInfo page(ProcessDefinitionBo processDefinitionBo) { - ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery(); - if (TenantHelper.isEnable()) { - query.processDefinitionTenantId(TenantHelper.getTenantId()); - } + ProcessDefinitionQuery query = QueryUtils.definitionQuery(); if (StringUtils.isNotEmpty(processDefinitionBo.getKey())) { query.processDefinitionKey(processDefinitionBo.getKey()); } @@ -82,7 +75,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer List deploymentList = null; if (CollUtil.isNotEmpty(definitionList)) { List deploymentIds = StreamUtils.toList(definitionList, ProcessDefinition::getDeploymentId); - deploymentList = repositoryService.createDeploymentQuery().deploymentIds(deploymentIds).list(); + deploymentList = QueryUtils.deploymentQuery(deploymentIds).list(); } for (ProcessDefinition processDefinition : definitionList) { ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class); @@ -108,16 +101,12 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer @Override public List getProcessDefinitionListByKey(String key) { List processDefinitionVoList = new ArrayList<>(); - ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery(); - if (TenantHelper.isEnable()) { - query.processDefinitionTenantId(TenantHelper.getTenantId()); - } + ProcessDefinitionQuery query = QueryUtils.definitionQuery(); List definitionList = query.processDefinitionKey(key).list(); List deploymentList = null; if (CollUtil.isNotEmpty(definitionList)) { List deploymentIds = definitionList.stream().map(ProcessDefinition::getDeploymentId).collect(Collectors.toList()); - deploymentList = repositoryService.createDeploymentQuery() - .deploymentIds(deploymentIds).list(); + deploymentList = QueryUtils.deploymentQuery(deploymentIds).list(); } for (ProcessDefinition processDefinition : definitionList) { ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class); @@ -172,7 +161,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer @Override public boolean deleteDeployment(String deploymentId, String processDefinitionId) { try { - List taskInstanceList = historyService.createHistoricTaskInstanceQuery() + List taskInstanceList = QueryUtils.hisTaskInstanceQuery() .processDefinitionId(processDefinitionId).list(); if (CollectionUtil.isNotEmpty(taskInstanceList)) { throw new ServiceException("当前流程定义已被使用不可删除!"); @@ -194,11 +183,8 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer @Override public boolean updateProcessDefState(String processDefinitionId) { try { - ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery(); - if (TenantHelper.isEnable()) { - query.processDefinitionTenantId(TenantHelper.getTenantId()); - } - ProcessDefinition processDefinition = query.processDefinitionId(processDefinitionId).singleResult(); + ProcessDefinition processDefinition = QueryUtils.definitionQuery() + .processDefinitionId(processDefinitionId).singleResult(); //将当前为挂起状态更新为激活状态 //参数说明:参数1:流程定义id,参数2:是否激活(true是否级联对应流程实例,激活了则对应流程实例都可以审批), //参数3:什么时候激活,如果为null则立即激活,如果为具体时间则到达此时间后激活 @@ -249,13 +235,10 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer */ @Override public boolean convertToModel(String processDefinitionId) { - ProcessDefinition pd = repositoryService.createProcessDefinitionQuery() + ProcessDefinition pd = QueryUtils.definitionQuery() .processDefinitionId(processDefinitionId).singleResult(); InputStream inputStream = repositoryService.getResourceAsStream(pd.getDeploymentId(), pd.getResourceName()); - ModelQuery query = repositoryService.createModelQuery(); - if (TenantHelper.isEnable()) { - query.modelTenantId(TenantHelper.getTenantId()); - } + ModelQuery query = QueryUtils.modelQuery(); Model model = query.modelKey(pd.getKey()).singleResult(); try { if (ObjectUtil.isNotNull(model)) { @@ -304,11 +287,9 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer InputStream inputStream = file.getInputStream(); Deployment deployment; if (FlowConstant.ZIP.equals(suffix)) { - DeploymentBuilder query = repositoryService.createDeployment(); - if (TenantHelper.isEnable()) { - query.tenantId(TenantHelper.getTenantId()); - } - deployment = query.addZipInputStream(new ZipInputStream(inputStream)) + DeploymentBuilder builder = repositoryService.createDeployment(); + deployment = builder.addZipInputStream(new ZipInputStream(inputStream)) + .tenantId(TenantHelper.getTenantId()) .name(processName).key(processKey).category(categoryCode).deploy(); } else { String[] list = ResourceNameUtil.BPMN_RESOURCE_SUFFIXES; @@ -320,18 +301,16 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer } } if (flag) { - DeploymentBuilder query = repositoryService.createDeployment(); - if (TenantHelper.isEnable()) { - query.tenantId(TenantHelper.getTenantId()); - } - deployment = query.addInputStream(filename, inputStream) + DeploymentBuilder builder = repositoryService.createDeployment(); + deployment = builder.addInputStream(filename, inputStream) + .tenantId(TenantHelper.getTenantId()) .name(processName).key(processKey).category(categoryCode).deploy(); } else { throw new ServiceException("文件类型上传错误!"); } } // 更新分类 - ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult(); + ProcessDefinition definition = QueryUtils.definitionQuery().deploymentId(deployment.getId()).singleResult(); repositoryService.setProcessDefinitionCategory(definition.getId(), categoryCode); return true; 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 e49be0dfd..0b18e9f24 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 @@ -13,7 +13,6 @@ import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.workflow.common.constant.FlowConstant; import org.dromara.workflow.common.enums.BusinessStatusEnum; import org.dromara.workflow.common.enums.TaskStatusEnum; @@ -26,12 +25,13 @@ import org.dromara.workflow.domain.vo.GraphicInfoVo; import org.dromara.workflow.domain.vo.ProcessInstanceVo; import org.dromara.workflow.domain.vo.TaskVo; import org.dromara.workflow.flowable.CustomDefaultProcessDiagramGenerator; -import org.dromara.workflow.flowable.strategy.FlowEventStrategy; import org.dromara.workflow.flowable.cmd.DeleteExecutionCmd; import org.dromara.workflow.flowable.cmd.ExecutionChildByExecutionIdCmd; +import org.dromara.workflow.flowable.strategy.FlowEventStrategy; import org.dromara.workflow.flowable.strategy.FlowProcessEventHandler; import org.dromara.workflow.service.IActHiProcinstService; import org.dromara.workflow.service.IActProcessInstanceService; +import org.dromara.workflow.utils.QueryUtils; import org.dromara.workflow.utils.WorkflowUtils; import org.flowable.bpmn.model.*; import org.flowable.engine.*; @@ -45,9 +45,7 @@ import org.flowable.engine.runtime.ProcessInstanceQuery; 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; @@ -97,10 +95,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService @Override public TableDataInfo getProcessInstanceRunningByPage(ProcessInstanceBo processInstanceBo) { List list = new ArrayList<>(); - ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query.processInstanceTenantId(TenantHelper.getTenantId()); - } + ProcessInstanceQuery query = QueryUtils.instanceQuery(); if (StringUtils.isNotBlank(processInstanceBo.getName())) { query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); } @@ -136,11 +131,8 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService @Override public TableDataInfo getProcessInstanceFinishByPage(ProcessInstanceBo processInstanceBo) { List list = new ArrayList<>(); - HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery().finished() - .orderByProcessInstanceEndTime().desc(); - if (TenantHelper.isEnable()) { - query.processInstanceTenantId(TenantHelper.getTenantId()); - } + HistoricProcessInstanceQuery query = QueryUtils.hisInstanceQuery() + .finished().orderByProcessInstanceEndTime().desc(); if (StringUtils.isNotEmpty(processInstanceBo.getName())) { query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); } @@ -176,19 +168,19 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService public String getHistoryProcessImage(String processInstanceId) { String processDefinitionId; // 获取当前的流程实例 - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId).singleResult(); // 如果流程已经结束,则得到结束节点 if (Objects.isNull(processInstance)) { - HistoricProcessInstance pi = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + HistoricProcessInstance pi = QueryUtils.hisInstanceQuery(processInstanceId).singleResult(); processDefinitionId = pi.getProcessDefinitionId(); } else { // 根据流程实例ID获得当前处于活动状态的ActivityId合集 - ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + ProcessInstance pi = QueryUtils.instanceQuery(processInstanceId).singleResult(); processDefinitionId = pi.getProcessDefinitionId(); } // 获得活动的节点 - List highLightedFlowList = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list(); + List highLightedFlowList = QueryUtils.hisActivityInstanceQuery(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list(); List highLightedFlows = new ArrayList<>(); List highLightedNodes = new ArrayList<>(); @@ -231,11 +223,11 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService public Map getHistoryProcessList(String processInstanceId) { Map map = new HashMap<>(); List> taskList = new ArrayList<>(); - HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInstanceId).singleResult(); StringBuilder xml = new StringBuilder(); ProcessDefinition processDefinition = repositoryService.getProcessDefinition(historicProcessInstance.getProcessDefinitionId()); // 获取节点 - List highLightedFlowList = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list(); + List highLightedFlowList = QueryUtils.hisActivityInstanceQuery(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list(); for (HistoricActivityInstance tempActivity : highLightedFlowList) { Map task = new HashMap<>(); if (!FlowConstant.SEQUENCE_FLOW.equals(tempActivity.getActivityType()) && @@ -249,7 +241,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService taskList.add(task); } } - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId).singleResult(); if (processInstance != null) { taskList = taskList.stream().filter(e -> !e.get("activityType").equals(FlowConstant.END_EVENT)).collect(Collectors.toList()); } @@ -283,7 +275,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService */ private List getHistoryTaskList(String processInstanceId) { //查询任务办理记录 - List list = historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list(); + List list = QueryUtils.hisTaskInstanceQuery(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list(); list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed()); List actHistoryInfoVoList = new ArrayList<>(); for (HistoricTaskInstance historicTaskInstance : list) { @@ -321,11 +313,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService public Map getHistoryRecord(String processInstanceId) { Map map = new HashMap<>(); // 查询任务办理记录 - HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } - List list = query.processInstanceId(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list(); + List list = QueryUtils.hisTaskInstanceQuery(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list(); list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed()); List actHistoryInfoVoList = new ArrayList<>(); List processInstanceComments = taskService.getProcessInstanceComments(processInstanceId); @@ -463,11 +451,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService @Transactional(rollbackFor = Exception.class) public boolean deleteRuntimeProcessInst(ProcessInvalidBo processInvalidBo) { try { - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } - List list = query.processInstanceId(processInvalidBo.getProcessInstanceId()).list(); + List list = QueryUtils.taskQuery(processInvalidBo.getProcessInstanceId()).list(); List subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId())); if (CollUtil.isNotEmpty(subTasks)) { subTasks.forEach(e -> taskService.deleteTask(e.getId())); @@ -479,11 +463,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService for (Task task : StreamUtils.filter(list, e -> StringUtils.isBlank(e.getParentTaskId()))) { taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.INVALID.getStatus(), deleteReason); } - HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query1.processInstanceTenantId(TenantHelper.getTenantId()); - } - HistoricProcessInstance historicProcessInstance = query1.processInstanceId(processInvalidBo.getProcessInstanceId()).singleResult(); + HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInvalidBo.getProcessInstanceId()).singleResult(); if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.FINISH.getStatus().equals(historicProcessInstance.getBusinessStatus())) { throw new ServiceException("该单据已完成申请!"); } @@ -510,22 +490,14 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService public boolean deleteRuntimeProcessAndHisInst(List processInstanceIds) { try { // 1.删除运行中流程实例 - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } - List list = query.processInstanceIdIn(processInstanceIds).list(); + List list = QueryUtils.taskQuery(processInstanceIds).list(); List 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.删除历史记录 - HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query1.processInstanceTenantId(TenantHelper.getTenantId()); - } - List historicProcessInstanceList = query1.processInstanceIds(new HashSet<>(processInstanceIds)).list(); + List historicProcessInstanceList = QueryUtils.hisInstanceQuery(new HashSet<>(processInstanceIds)).list(); if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) { historyService.bulkDeleteHistoricProcessInstances(processInstanceIds); } @@ -552,22 +524,14 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService return false; } List processInstanceIds = StreamUtils.toList(actHiProcinsts, ActHiProcinst::getId); - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } - List list = query.processInstanceIdIn(processInstanceIds).list(); + List list = QueryUtils.taskQuery(processInstanceIds).list(); List 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.删除历史记录 - HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query1.processInstanceTenantId(TenantHelper.getTenantId()); - } - List historicProcessInstanceList = query1.processInstanceIds(new HashSet<>(processInstanceIds)).list(); + List historicProcessInstanceList = QueryUtils.hisInstanceQuery(new HashSet<>(processInstanceIds)).list(); if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) { historyService.bulkDeleteHistoricProcessInstances(processInstanceIds); } @@ -604,11 +568,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService @Transactional(rollbackFor = Exception.class) public boolean cancelProcessApply(String processInstanceId) { try { - ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query.processInstanceTenantId(TenantHelper.getTenantId()); - } - ProcessInstance processInstance = query.processInstanceId(processInstanceId) + ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId) .startedBy(String.valueOf(LoginHelper.getUserId())).singleResult(); if (ObjectUtil.isNull(processInstance)) { throw new ServiceException("您不是流程发起人,撤销失败!"); @@ -619,25 +579,17 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService if (BusinessStatusEnum.CANCEL.getStatus().equals(processInstance.getBusinessStatus())) { throw new ServiceException("该单据已撤销!"); } - TaskQuery query1 = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query1.taskTenantId(TenantHelper.getTenantId()); - } - List taskList = query1.processInstanceId(processInstanceId).list(); + List taskList = QueryUtils.taskQuery(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() + ":撤销申请"); } - HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().finished().orderByHistoricTaskInstanceEndTime().asc().list().get(0); + HistoricTaskInstance historicTaskInstance = QueryUtils.hisTaskInstanceQuery().finished().orderByHistoricTaskInstanceEndTime().asc().list().get(0); List nodeIds = StreamUtils.toList(taskList, Task::getTaskDefinitionKey); runtimeService.createChangeActivityStateBuilder() .processInstanceId(processInstanceId) .moveActivityIdsToSingleActivityId(nodeIds, historicTaskInstance.getTaskDefinitionKey()).changeState(); - TaskQuery query2 = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query2.taskTenantId(TenantHelper.getTenantId()); - } - Task task = query2.processInstanceId(processInstanceId).list().get(0); + Task task = QueryUtils.taskQuery(processInstanceId).list().get(0); taskService.setAssignee(task.getId(), historicTaskInstance.getAssignee()); //获取并行网关执行后保留的执行实例数据 ExecutionChildByExecutionIdCmd childByExecutionIdCmd = new ExecutionChildByExecutionIdCmd(task.getExecutionId()); @@ -667,10 +619,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService @Override public TableDataInfo getCurrentSubmitByPage(ProcessInstanceBo processInstanceBo) { List list = new ArrayList<>(); - HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query.processInstanceTenantId(TenantHelper.getTenantId()); - } + HistoricProcessInstanceQuery query = QueryUtils.hisInstanceQuery(); query.startedBy(processInstanceBo.getStartUserId()); if (StringUtils.isNotBlank(processInstanceBo.getName())) { query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); @@ -689,11 +638,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService List taskVoList = new ArrayList<>(); if (CollUtil.isNotEmpty(historicProcessInstanceList)) { List processInstanceIds = StreamUtils.toList(historicProcessInstanceList, HistoricProcessInstance::getId); - TaskQuery query1 = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query1.taskTenantId(TenantHelper.getTenantId()); - } - List taskList = query1.processInstanceIdIn(processInstanceIds).list(); + List taskList = QueryUtils.taskQuery(processInstanceIds).list(); for (Task task : taskList) { taskVoList.add(BeanUtil.toBean(task, TaskVo.class)); } @@ -720,11 +665,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService @Transactional(rollbackFor = Exception.class) public boolean taskUrging(TaskUrgingBo taskUrgingBo) { try { - ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query.processInstanceTenantId(TenantHelper.getTenantId()); - } - ProcessInstance processInstance = query.processInstanceId(taskUrgingBo.getProcessInstanceId()).singleResult(); + ProcessInstance processInstance = QueryUtils.instanceQuery(taskUrgingBo.getProcessInstanceId()).singleResult(); if (processInstance == null) { throw new ServiceException("任务已结束!"); } @@ -732,7 +673,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService if (StringUtils.isBlank(message)) { message = "您的【" + processInstance.getName() + "】单据还未审批,请您及时处理。"; } - List list = taskService.createTaskQuery().processInstanceId(taskUrgingBo.getProcessInstanceId()).list(); + List list = QueryUtils.taskQuery(taskUrgingBo.getProcessInstanceId()).list(); WorkflowUtils.sendMessage(list, processInstance.getName(), taskUrgingBo.getMessageType(), message); } catch (ServiceException e) { throw new ServiceException(e.getMessage()); 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 62184705d..440d43c35 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 @@ -24,12 +24,13 @@ import org.dromara.workflow.domain.bo.*; import org.dromara.workflow.domain.vo.MultiInstanceVo; import org.dromara.workflow.domain.vo.TaskVo; import org.dromara.workflow.domain.vo.WfCopy; -import org.dromara.workflow.flowable.strategy.FlowEventStrategy; import org.dromara.workflow.flowable.cmd.*; +import org.dromara.workflow.flowable.strategy.FlowEventStrategy; import org.dromara.workflow.flowable.strategy.FlowProcessEventHandler; import org.dromara.workflow.flowable.strategy.FlowTaskEventHandler; import org.dromara.workflow.mapper.ActTaskMapper; import org.dromara.workflow.service.IActTaskService; +import org.dromara.workflow.utils.QueryUtils; import org.dromara.workflow.utils.WorkflowUtils; import org.flowable.common.engine.api.FlowableObjectNotFoundException; import org.flowable.common.engine.impl.identity.Authentication; @@ -40,7 +41,6 @@ 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; @@ -86,19 +86,12 @@ public class ActTaskServiceImpl implements IActTaskService { throw new ServiceException("启动工作流时必须包含业务ID"); } // 判断当前业务是否启动过流程 - HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query.processInstanceTenantId(TenantHelper.getTenantId()); - } + HistoricProcessInstanceQuery query = QueryUtils.hisInstanceQuery(); HistoricProcessInstance historicProcessInstance = query.processInstanceBusinessKey(startProcessBo.getBusinessKey()).singleResult(); if (ObjectUtil.isNotEmpty(historicProcessInstance)) { BusinessStatusEnum.checkStartStatus(historicProcessInstance.getBusinessStatus()); } - TaskQuery taskQuery = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - taskQuery.taskTenantId(TenantHelper.getTenantId()); - } - List taskResult = taskQuery.processInstanceBusinessKey(startProcessBo.getBusinessKey()).list(); + List taskResult = QueryUtils.taskQuery().processInstanceBusinessKey(startProcessBo.getBusinessKey()).list(); if (CollUtil.isNotEmpty(taskResult)) { if (CollUtil.isNotEmpty(startProcessBo.getVariables())) { taskService.setVariables(taskResult.get(0).getId(), startProcessBo.getVariables()); @@ -129,11 +122,7 @@ public class ActTaskServiceImpl implements IActTaskService { // 将流程定义名称 作为 流程实例名称 runtimeService.setProcessInstanceName(pi.getProcessInstanceId(), pi.getProcessDefinitionName()); // 申请人执行流程 - TaskQuery taskQuery1 = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - taskQuery.taskTenantId(TenantHelper.getTenantId()); - } - List taskList = taskQuery1.processInstanceId(pi.getId()).list(); + List taskList = QueryUtils.taskQuery(pi.getId()).list(); if (taskList.size() > 1) { throw new ServiceException("请检查流程第一个环节是否为申请人!"); } @@ -157,10 +146,7 @@ public class ActTaskServiceImpl implements IActTaskService { try { List roles = LoginHelper.getLoginUser().getRoles(); String userId = String.valueOf(LoginHelper.getUserId()); - TaskQuery taskQuery = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - taskQuery.taskTenantId(TenantHelper.getTenantId()); - } + TaskQuery taskQuery = QueryUtils.taskQuery(); taskQuery.taskId(completeTaskBo.getTaskId()).taskCandidateOrAssigned(userId); if (CollUtil.isNotEmpty(roles)) { List groupIds = StreamUtils.toList(roles, e -> String.valueOf(e.getRoleId())); @@ -173,7 +159,7 @@ public class ActTaskServiceImpl implements IActTaskService { if (task.isSuspended()) { throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED); } - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); + ProcessInstance processInstance = QueryUtils.instanceQuery(task.getProcessInstanceId()).singleResult(); //办理委托任务 if (ObjectUtil.isNotEmpty(task.getDelegationState()) && FlowConstant.PENDING.equals(task.getDelegationState().name())) { taskService.resolveTask(completeTaskBo.getTaskId()); @@ -206,11 +192,7 @@ public class ActTaskServiceImpl implements IActTaskService { } else { taskService.complete(completeTaskBo.getTaskId()); } - ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query.processInstanceTenantId(TenantHelper.getTenantId()); - } - ProcessInstance pi = query.processInstanceId(task.getProcessInstanceId()).singleResult(); + ProcessInstance pi = QueryUtils.instanceQuery(task.getProcessInstanceId()).singleResult(); if (pi == null) { UpdateBusinessStatusCmd updateBusinessStatusCmd = new UpdateBusinessStatusCmd(task.getProcessInstanceId(), BusinessStatusEnum.FINISH.getStatus()); managementService.executeCommand(updateBusinessStatusCmd); @@ -218,17 +200,13 @@ public class ActTaskServiceImpl implements IActTaskService { processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.FINISH.getStatus(), false); } } else { - TaskQuery query1 = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query1.taskTenantId(TenantHelper.getTenantId()); - } - List list = query1.processInstanceId(task.getProcessInstanceId()).list(); + List list = QueryUtils.taskQuery(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(), LoginHelper.getLoginUser().getNickname() + "【抄送】给" + String.join(",", StreamUtils.toList(completeTaskBo.getWfCopyList(), WfCopy::getUserName))); taskService.complete(newTask.getId()); - List taskList = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list(); + List taskList = QueryUtils.taskQuery(task.getProcessInstanceId()).list(); WorkflowUtils.createCopyTask(taskList, StreamUtils.toList(completeTaskBo.getWfCopyList(), WfCopy::getUserId)); } sendMessage(list, processInstance.getName(), completeTaskBo.getMessageType(), null); @@ -299,10 +277,7 @@ public class ActTaskServiceImpl implements IActTaskService { */ @Override public TableDataInfo getAllTaskWaitByPage(TaskBo taskBo) { - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } + TaskQuery query = QueryUtils.taskQuery(); if (StringUtils.isNotBlank(taskBo.getName())) { query.taskNameLike("%" + taskBo.getName() + "%"); } @@ -317,7 +292,7 @@ public class ActTaskServiceImpl implements IActTaskService { List processInstanceList = null; if (CollUtil.isNotEmpty(taskList)) { Set processInstanceIds = StreamUtils.toSet(taskList, Task::getProcessInstanceId); - processInstanceList = runtimeService.createProcessInstanceQuery().processInstanceIds(processInstanceIds).list(); + processInstanceList = QueryUtils.instanceQuery(processInstanceIds).list(); } List list = new ArrayList<>(); for (Task task : taskList) { @@ -347,10 +322,7 @@ public class ActTaskServiceImpl implements IActTaskService { @Override public TableDataInfo getTaskFinishByPage(TaskBo taskBo) { String userId = String.valueOf(LoginHelper.getUserId()); - HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } + HistoricTaskInstanceQuery query = QueryUtils.hisTaskInstanceQuery(); query.taskAssignee(userId).finished().orderByHistoricTaskInstanceStartTime().desc(); if (StringUtils.isNotBlank(taskBo.getName())) { query.taskNameLike("%" + taskBo.getName() + "%"); @@ -365,7 +337,7 @@ public class ActTaskServiceImpl implements IActTaskService { List historicProcessInstanceList = null; if (CollUtil.isNotEmpty(taskInstanceList)) { Set processInstanceIds = StreamUtils.toSet(taskInstanceList, HistoricTaskInstance::getProcessInstanceId); - historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceIds(processInstanceIds).list(); + historicProcessInstanceList = QueryUtils.hisInstanceQuery(processInstanceIds).list(); } List list = new ArrayList<>(); for (HistoricTaskInstance task : taskInstanceList) { @@ -424,10 +396,7 @@ public class ActTaskServiceImpl implements IActTaskService { */ @Override public TableDataInfo getAllTaskFinishByPage(TaskBo taskBo) { - HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } + HistoricTaskInstanceQuery query = QueryUtils.hisTaskInstanceQuery(); query.finished().orderByHistoricTaskInstanceStartTime().desc(); if (StringUtils.isNotBlank(taskBo.getName())) { query.taskNameLike("%" + taskBo.getName() + "%"); @@ -442,7 +411,7 @@ public class ActTaskServiceImpl implements IActTaskService { List historicProcessInstanceList = null; if (CollUtil.isNotEmpty(taskInstanceList)) { Set processInstanceIds = StreamUtils.toSet(taskInstanceList, HistoricTaskInstance::getProcessInstanceId); - historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceIds(processInstanceIds).list(); + historicProcessInstanceList = QueryUtils.hisInstanceQuery(processInstanceIds).list(); } List list = new ArrayList<>(); for (HistoricTaskInstance task : taskInstanceList) { @@ -470,10 +439,7 @@ public class ActTaskServiceImpl implements IActTaskService { @Override @Transactional(rollbackFor = Exception.class) public boolean delegateTask(DelegateBo delegateBo) { - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } + TaskQuery query = QueryUtils.taskQuery(); 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); @@ -503,10 +469,7 @@ public class ActTaskServiceImpl implements IActTaskService { @Override @Transactional(rollbackFor = Exception.class) public boolean terminationTask(TerminationBo terminationBo) { - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } + TaskQuery query = QueryUtils.taskQuery(); Task task = query.taskId(terminationBo.getTaskId()).singleResult(); if (ObjectUtil.isEmpty(task)) { @@ -515,11 +478,8 @@ public class ActTaskServiceImpl implements IActTaskService { if (task.isSuspended()) { throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED); } - HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query1.processInstanceTenantId(TenantHelper.getTenantId()); - } - HistoricProcessInstance historicProcessInstance = query1.processInstanceBusinessKey(task.getProcessInstanceId()).singleResult(); + HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery() + .processInstanceBusinessKey(task.getProcessInstanceId()).singleResult(); if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.TERMINATION.getStatus().equals(historicProcessInstance.getBusinessStatus())) { throw new ServiceException("该单据已终止!"); } @@ -530,11 +490,7 @@ public class ActTaskServiceImpl implements IActTaskService { terminationBo.setComment(LoginHelper.getLoginUser().getNickname() + "终止了申请:" + terminationBo.getComment()); } taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.TERMINATION.getStatus(), terminationBo.getComment()); - TaskQuery query2 = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query2.taskTenantId(TenantHelper.getTenantId()); - } - List list = query2.processInstanceId(task.getProcessInstanceId()).list(); + List list = QueryUtils.taskQuery(task.getProcessInstanceId()).list(); if (CollectionUtil.isNotEmpty(list)) { List subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId())); if (CollectionUtil.isNotEmpty(subTasks)) { @@ -560,11 +516,8 @@ public class ActTaskServiceImpl implements IActTaskService { */ @Override public boolean transferTask(TransmitBo transmitBo) { - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } - Task task = query.taskId(transmitBo.getTaskId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult(); + Task task = QueryUtils.taskQuery().taskId(transmitBo.getTaskId()) + .taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult(); if (ObjectUtil.isEmpty(task)) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); } @@ -590,11 +543,8 @@ public class ActTaskServiceImpl implements IActTaskService { */ @Override public boolean addMultiInstanceExecution(AddMultiBo addMultiBo) { - TaskQuery taskQuery = taskService.createTaskQuery(); + TaskQuery taskQuery = QueryUtils.taskQuery(); taskQuery.taskId(addMultiBo.getTaskId()); - if (TenantHelper.isEnable()) { - taskQuery.taskTenantId(TenantHelper.getTenantId()); - } if (!LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin()) { taskQuery.taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())); } @@ -641,11 +591,8 @@ public class ActTaskServiceImpl implements IActTaskService { */ @Override public boolean deleteMultiInstanceExecution(DeleteMultiBo deleteMultiBo) { - TaskQuery taskQuery = taskService.createTaskQuery(); + TaskQuery taskQuery = QueryUtils.taskQuery(); taskQuery.taskId(deleteMultiBo.getTaskId()); - if (TenantHelper.isEnable()) { - taskQuery.taskTenantId(TenantHelper.getTenantId()); - } if (!LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin()) { taskQuery.taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())); } @@ -695,10 +642,7 @@ public class ActTaskServiceImpl implements IActTaskService { @Override @Transactional(rollbackFor = Exception.class) public String backProcess(BackProcessBo backProcessBo) { - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } + TaskQuery query = QueryUtils.taskQuery(); 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); @@ -708,7 +652,7 @@ public class ActTaskServiceImpl implements IActTaskService { } try { String processInstanceId = task.getProcessInstanceId(); - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); + ProcessInstance processInstance = QueryUtils.instanceQuery(task.getProcessInstanceId()).singleResult(); //获取并行网关执行后保留的执行实例数据 ExecutionChildByExecutionIdCmd childByExecutionIdCmd = new ExecutionChildByExecutionIdCmd(task.getExecutionId()); List executionEntities = managementService.executeCommand(childByExecutionIdCmd); @@ -717,13 +661,9 @@ public class ActTaskServiceImpl implements IActTaskService { throw new ServiceException("该单据已退回!"); } //判断是否有多个任务 - TaskQuery query1 = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query1.taskTenantId(TenantHelper.getTenantId()); - } - List taskList = query.processInstanceId(processInstanceId).list(); + List taskList = QueryUtils.taskQuery(processInstanceId).list(); //申请人节点 - HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstanceId).finished().orderByHistoricTaskInstanceEndTime().asc().list().get(0); + HistoricTaskInstance historicTaskInstance = QueryUtils.hisTaskInstanceQuery(processInstanceId).finished().orderByHistoricTaskInstanceEndTime().asc().list().get(0); String backTaskDefinitionKey = historicTaskInstance.getTaskDefinitionKey(); taskService.addComment(task.getId(), processInstanceId, TaskStatusEnum.BACK.getStatus(), StringUtils.isNotBlank(backProcessBo.getMessage()) ? backProcessBo.getMessage() : "退回"); if (taskList.size() > 1) { @@ -733,11 +673,7 @@ public class ActTaskServiceImpl implements IActTaskService { //当前单个节点驳回单个节点 runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId).moveActivityIdTo(task.getTaskDefinitionKey(), backTaskDefinitionKey).changeState(); } - TaskQuery query2 = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query1.taskTenantId(TenantHelper.getTenantId()); - } - List list = query2.processInstanceId(processInstanceId).list(); + List list = QueryUtils.taskQuery(processInstanceId).list(); for (Task t : list) { taskService.setAssignee(t.getId(), historicTaskInstance.getAssignee()); } @@ -770,11 +706,7 @@ public class ActTaskServiceImpl implements IActTaskService { @Transactional(rollbackFor = Exception.class) public boolean updateAssignee(String[] taskIds, String userId) { try { - TaskQuery query = taskService.createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } - List list = query.taskIds(Arrays.asList(taskIds)).list(); + List list = QueryUtils.taskQuery().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/WfCategoryServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfCategoryServiceImpl.java index 620403aaa..c5cb28887 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfCategoryServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfCategoryServiceImpl.java @@ -10,6 +10,7 @@ import org.dromara.workflow.domain.bo.WfCategoryBo; import org.dromara.workflow.domain.vo.WfCategoryVo; import org.dromara.workflow.mapper.WfCategoryMapper; import org.dromara.workflow.service.IWfCategoryService; +import org.dromara.workflow.utils.QueryUtils; import org.flowable.engine.RepositoryService; import org.flowable.engine.repository.Deployment; import org.flowable.engine.repository.Model; @@ -82,15 +83,15 @@ public class WfCategoryServiceImpl implements IWfCategoryService { WfCategory update = MapstructUtils.convert(bo, WfCategory.class); validEntityBeforeSave(update); WfCategoryVo wfCategoryVo = baseMapper.selectVoById(bo.getId()); - List processDefinitionList = repositoryService.createProcessDefinitionQuery().processDefinitionCategory(wfCategoryVo.getCategoryCode()).list(); + List processDefinitionList = QueryUtils.definitionQuery().processDefinitionCategory(wfCategoryVo.getCategoryCode()).list(); for (ProcessDefinition processDefinition : processDefinitionList) { repositoryService.setProcessDefinitionCategory(processDefinition.getId(), bo.getCategoryCode()); } - List deploymentList = repositoryService.createDeploymentQuery().deploymentCategory(wfCategoryVo.getCategoryCode()).list(); + List deploymentList = QueryUtils.deploymentQuery().deploymentCategory(wfCategoryVo.getCategoryCode()).list(); for (Deployment deployment : deploymentList) { repositoryService.setDeploymentCategory(deployment.getId(), bo.getCategoryCode()); } - List modelList = repositoryService.createModelQuery().modelCategory(wfCategoryVo.getCategoryCode()).list(); + List modelList = QueryUtils.modelQuery().modelCategory(wfCategoryVo.getCategoryCode()).list(); for (Model model : modelList) { model.setCategory(bo.getCategoryCode()); repositoryService.saveModel(model); 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 dd91eafa8..93f7f25d7 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 @@ -12,7 +12,6 @@ import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.system.domain.SysUser; import org.dromara.system.domain.SysUserRole; import org.dromara.system.domain.bo.SysUserBo; @@ -23,13 +22,12 @@ import org.dromara.workflow.domain.bo.SysUserMultiBo; import org.dromara.workflow.domain.vo.MultiInstanceVo; import org.dromara.workflow.domain.vo.TaskVo; import org.dromara.workflow.service.IWorkflowUserService; +import org.dromara.workflow.utils.QueryUtils; import org.dromara.workflow.utils.WorkflowUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; 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; @@ -47,7 +45,6 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService { private final SysUserMapper sysUserMapper; private final SysUserRoleMapper sysUserRoleMapper; - private final TaskService taskService; private final RuntimeService runtimeService; /** @@ -58,7 +55,7 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService { @Override @SuppressWarnings("unchecked") public TableDataInfo getWorkflowAddMultiInstanceByPage(SysUserMultiBo sysUserMultiBo) { - Task task = taskService.createTaskQuery().taskId(sysUserMultiBo.getTaskId()).singleResult(); + Task task = QueryUtils.taskQuery().taskId(sysUserMultiBo.getTaskId()).singleResult(); if (task == null) { throw new ServiceException("任务不存在"); } @@ -74,7 +71,7 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService { List assigneeList = (List) runtimeService.getVariable(task.getExecutionId(), multiInstance.getAssigneeList()); queryWrapper.notIn(CollectionUtil.isNotEmpty(assigneeList), SysUser::getUserId, assigneeList); } else { - List list = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list(); + List list = QueryUtils.taskQuery(task.getProcessInstanceId()).list(); List userIds = StreamUtils.toList(list, e -> Long.valueOf(e.getAssignee())); queryWrapper.notIn(CollectionUtil.isNotEmpty(userIds), SysUser::getUserId, userIds); } @@ -93,16 +90,8 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService { @Override @SuppressWarnings("unchecked") public List getWorkflowDeleteMultiInstanceList(String taskId) { - 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 taskList = query1.processInstanceId(task.getProcessInstanceId()).list(); + Task task = QueryUtils.taskQuery().taskId(taskId).singleResult(); + List taskList = QueryUtils.taskQuery(task.getProcessInstanceId()).list(); MultiInstanceVo multiInstance = WorkflowUtils.isMultiInstance(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List taskListVo = new ArrayList<>(); if (multiInstance == null) { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java index 18969b168..f5049b89b 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java @@ -7,6 +7,8 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.json.utils.JsonUtils; @@ -32,9 +34,8 @@ import java.util.stream.Collectors; * * @author may */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class ModelUtils { - public ModelUtils() { - } public static BpmnModel xmlToBpmnModel(String xml) throws IOException { if (xml == null) { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java new file mode 100644 index 000000000..850315fc6 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java @@ -0,0 +1,134 @@ +package org.dromara.workflow.utils; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.tenant.helper.TenantHelper; +import org.flowable.engine.ProcessEngine; +import org.flowable.engine.history.HistoricActivityInstanceQuery; +import org.flowable.engine.history.HistoricProcessInstanceQuery; +import org.flowable.engine.repository.DeploymentQuery; +import org.flowable.engine.repository.ModelQuery; +import org.flowable.engine.repository.ProcessDefinitionQuery; +import org.flowable.engine.runtime.ProcessInstanceQuery; +import org.flowable.task.api.TaskQuery; +import org.flowable.task.api.history.HistoricTaskInstanceQuery; + +import java.util.Collection; +import java.util.List; +import java.util.Set; + +/** + * 查询工具 + * + * @author Lion Li + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class QueryUtils { + + private static final ProcessEngine PROCESS_ENGINE = SpringUtils.getBean(ProcessEngine.class); + + public static ModelQuery modelQuery() { + ModelQuery query = PROCESS_ENGINE.getRepositoryService().createModelQuery(); + if (TenantHelper.isEnable()) { + query.modelTenantId(TenantHelper.getTenantId()); + } + return query; + } + + public static ProcessDefinitionQuery definitionQuery() { + ProcessDefinitionQuery query = PROCESS_ENGINE.getRepositoryService().createProcessDefinitionQuery(); + if (TenantHelper.isEnable()) { + query.processDefinitionTenantId(TenantHelper.getTenantId()); + } + return query; + } + + public static DeploymentQuery deploymentQuery() { + DeploymentQuery query = PROCESS_ENGINE.getRepositoryService().createDeploymentQuery(); + if (TenantHelper.isEnable()) { + query.deploymentTenantId(TenantHelper.getTenantId()); + } + return query; + } + + public static DeploymentQuery deploymentQuery(String deploymentId) { + return deploymentQuery().deploymentId(deploymentId); + } + + public static DeploymentQuery deploymentQuery(List deploymentIds) { + return deploymentQuery().deploymentIds(deploymentIds); + } + + public static HistoricTaskInstanceQuery hisTaskInstanceQuery() { + HistoricTaskInstanceQuery query = PROCESS_ENGINE.getHistoryService().createHistoricTaskInstanceQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + return query; + } + + public static HistoricTaskInstanceQuery hisTaskInstanceQuery(String processInstanceId) { + return hisTaskInstanceQuery().processInstanceId(processInstanceId); + } + + public static ProcessInstanceQuery instanceQuery() { + ProcessInstanceQuery query = PROCESS_ENGINE.getRuntimeService().createProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } + return query; + } + + public static ProcessInstanceQuery instanceQuery(String processInstanceId) { + return instanceQuery().processInstanceId(processInstanceId); + } + + public static ProcessInstanceQuery instanceQuery(Set processInstanceIds) { + return instanceQuery().processInstanceIds(processInstanceIds); + } + + public static HistoricProcessInstanceQuery hisInstanceQuery() { + HistoricProcessInstanceQuery query = PROCESS_ENGINE.getHistoryService().createHistoricProcessInstanceQuery(); + if (TenantHelper.isEnable()) { + query.processInstanceTenantId(TenantHelper.getTenantId()); + } + return query; + } + + public static HistoricProcessInstanceQuery hisInstanceQuery(String processInstanceId) { + return hisInstanceQuery().processInstanceId(processInstanceId); + } + + public static HistoricProcessInstanceQuery hisInstanceQuery(Set processInstanceIds) { + return hisInstanceQuery().processInstanceIds(processInstanceIds); + } + + public static HistoricActivityInstanceQuery hisActivityInstanceQuery() { + HistoricActivityInstanceQuery query = PROCESS_ENGINE.getHistoryService().createHistoricActivityInstanceQuery(); + if (TenantHelper.isEnable()) { + query.activityTenantId(TenantHelper.getTenantId()); + } + return query; + } + + public static HistoricActivityInstanceQuery hisActivityInstanceQuery(String processInstanceId) { + return hisActivityInstanceQuery().processInstanceId(processInstanceId); + } + + public static TaskQuery taskQuery() { + TaskQuery query = PROCESS_ENGINE.getTaskService().createTaskQuery(); + if (TenantHelper.isEnable()) { + query.taskTenantId(TenantHelper.getTenantId()); + } + return query; + } + + public static TaskQuery taskQuery(String processInstanceId) { + return taskQuery().processInstanceId(processInstanceId); + } + + public static TaskQuery taskQuery(Collection processInstanceIds) { + return taskQuery().processInstanceIdIn(processInstanceIds); + } +} 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 bb0e52b18..a1cf0abd5 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 @@ -5,6 +5,8 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; @@ -28,38 +30,33 @@ import org.dromara.workflow.flowable.cmd.UpdateHiTaskInstCmd; import org.dromara.workflow.mapper.ActHiTaskinstMapper; import org.dromara.workflow.service.IActHiProcinstService; import org.dromara.workflow.service.IWorkflowUserService; -import org.dromara.workflow.service.impl.WorkflowUserServiceImpl; -import org.flowable.bpmn.model.*; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.bpmn.model.FlowNode; 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.*; -import static org.dromara.workflow.common.constant.FlowConstant.*; +import static org.dromara.workflow.common.constant.FlowConstant.PROCESS_INSTANCE_VO; /** * 工作流工具 * * @author may */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class WorkflowUtils { - public WorkflowUtils() { - } - private static final ProcessEngine PROCESS_ENGINE = SpringUtils.getBean(ProcessEngine.class); - private static final IWorkflowUserService I_WORKFLOW_USER_SERVICE = SpringUtils.getBean(WorkflowUserServiceImpl.class); - private static final IActHiProcinstService I_ACT_HI_PROCINST_SERVICE = SpringUtils.getBean(IActHiProcinstService.class); + private static final IWorkflowUserService WORKFLOW_USER_SERVICE = SpringUtils.getBean(IWorkflowUserService.class); + private static final IActHiProcinstService ACT_HI_PROCINST_SERVICE = SpringUtils.getBean(IActHiProcinstService.class); private static final ActHiTaskinstMapper ACT_HI_TASKINST_MAPPER = SpringUtils.getBean(ActHiTaskinstMapper.class); /** @@ -81,9 +78,7 @@ public class WorkflowUtils { task.setTaskDefinitionKey(currentTask.getTaskDefinitionKey()); task.setPriority(currentTask.getPriority()); task.setCreateTime(new Date()); - if (TenantHelper.isEnable()) { - task.setTenantId(TenantHelper.getTenantId()); - } + task.setTenantId(TenantHelper.getTenantId()); PROCESS_ENGINE.getTaskService().saveTask(task); } if (ObjectUtil.isNotNull(task)) { @@ -110,9 +105,7 @@ public class WorkflowUtils { newTask.setProcessDefinitionId(parentTask.getProcessDefinitionId()); newTask.setProcessInstanceId(parentTask.getProcessInstanceId()); newTask.setTaskDefinitionKey(parentTask.getTaskDefinitionKey()); - if (TenantHelper.isEnable()) { - newTask.setTenantId(TenantHelper.getTenantId()); - } + newTask.setTenantId(TenantHelper.getTenantId()); list.add(newTask); } } @@ -125,9 +118,7 @@ public class WorkflowUtils { actHiTaskinst.setProcDefId(processDefinitionId); actHiTaskinst.setProcInstId(processInstanceId); actHiTaskinst.setScopeType(TaskStatusEnum.COPY.getStatus()); - if (TenantHelper.isEnable()) { - actHiTaskinst.setTenantId(TenantHelper.getTenantId()); - } + actHiTaskinst.setTenantId(TenantHelper.getTenantId()); LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.in(ActHiTaskinst::getId, taskIds); ACT_HI_TASKINST_MAPPER.update(actHiTaskinst, updateWrapper); @@ -145,20 +136,16 @@ public class WorkflowUtils { public static ParticipantVo getCurrentTaskParticipant(String taskId) { ParticipantVo participantVo = new ParticipantVo(); List linksForTask = PROCESS_ENGINE.getHistoryService().getHistoricIdentityLinksForTask(taskId); - TaskQuery query = PROCESS_ENGINE.getTaskService().createTaskQuery(); - if (TenantHelper.isEnable()) { - query.taskTenantId(TenantHelper.getTenantId()); - } - Task task = query.taskId(taskId).singleResult(); + Task task = QueryUtils.taskQuery().taskId(taskId).singleResult(); if (task != null && CollUtil.isNotEmpty(linksForTask)) { List groupList = StreamUtils.filter(linksForTask, e -> StringUtils.isNotBlank(e.getGroupId())); if (CollUtil.isNotEmpty(groupList)) { List groupIds = StreamUtils.toList(groupList, e -> Long.valueOf(e.getGroupId())); - List sysUserRoles = I_WORKFLOW_USER_SERVICE.getUserRoleListByRoleIds(groupIds); + List sysUserRoles = WORKFLOW_USER_SERVICE.getUserRoleListByRoleIds(groupIds); if (CollUtil.isNotEmpty(sysUserRoles)) { participantVo.setGroupIds(groupIds); List userIdList = StreamUtils.toList(sysUserRoles, SysUserRole::getUserId); - List sysUsers = I_WORKFLOW_USER_SERVICE.getUserListByIds(userIdList); + List sysUsers = WORKFLOW_USER_SERVICE.getUserListByIds(userIdList); if (CollUtil.isNotEmpty(sysUsers)) { List userIds = StreamUtils.toList(sysUsers, SysUserVo::getUserId); List nickNames = StreamUtils.toList(sysUsers, SysUserVo::getNickName); @@ -177,7 +164,7 @@ public class WorkflowUtils { } } - List sysUsers = I_WORKFLOW_USER_SERVICE.getUserListByIds(userIdList); + List sysUsers = WORKFLOW_USER_SERVICE.getUserListByIds(userIdList); if (CollUtil.isNotEmpty(sysUsers)) { List userIds = StreamUtils.toList(sysUsers, SysUserVo::getUserId); List nickNames = StreamUtils.toList(sysUsers, SysUserVo::getNickName); @@ -233,16 +220,8 @@ public class WorkflowUtils { * @param taskId 任务id */ public static String getBusinessStatusByTaskId(String taskId) { - 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(); + HistoricTaskInstance historicTaskInstance = QueryUtils.hisTaskInstanceQuery().taskId(taskId).singleResult(); + HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(historicTaskInstance.getProcessInstanceId()).singleResult(); return historicProcessInstance.getBusinessStatus(); } @@ -252,11 +231,7 @@ public class WorkflowUtils { * @param processInstanceId 流程实例id */ public static String getBusinessStatus(String processInstanceId) { - HistoricProcessInstanceQuery query = PROCESS_ENGINE.getHistoryService().createHistoricProcessInstanceQuery(); - if (TenantHelper.isEnable()) { - query.processInstanceTenantId(TenantHelper.getTenantId()); - } - HistoricProcessInstance historicProcessInstance = query.processInstanceId(processInstanceId).singleResult(); + HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInstanceId).singleResult(); return historicProcessInstance.getBusinessStatus(); } @@ -270,7 +245,7 @@ public class WorkflowUtils { if (StringUtils.isBlank(businessKey)) { return; } - ActHiProcinst actHiProcinst = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKey(businessKey); + ActHiProcinst actHiProcinst = ACT_HI_PROCINST_SERVICE.selectByBusinessKey(businessKey); if (actHiProcinst == null) { ProcessInstanceVo processInstanceVo = new ProcessInstanceVo(); processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus()); @@ -293,7 +268,7 @@ public class WorkflowUtils { if (CollUtil.isEmpty(idList)) { return; } - List actHiProcinstList = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList); + List actHiProcinstList = ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList); if (obj instanceof Collection collection) { for (Object o : collection) { String fieldValue = ReflectUtils.invokeGetter(o, fieldName).toString(); @@ -335,7 +310,7 @@ public class WorkflowUtils { for (Task t : list) { ParticipantVo taskParticipant = WorkflowUtils.getCurrentTaskParticipant(t.getId()); if (CollUtil.isNotEmpty(taskParticipant.getGroupIds())) { - List sysUserRoles = I_WORKFLOW_USER_SERVICE.getUserRoleListByRoleIds(taskParticipant.getGroupIds()); + List sysUserRoles = WORKFLOW_USER_SERVICE.getUserRoleListByRoleIds(taskParticipant.getGroupIds()); if (CollUtil.isNotEmpty(sysUserRoles)) { userIds.addAll(StreamUtils.toList(sysUserRoles, SysUserRole::getUserId)); } @@ -346,7 +321,7 @@ public class WorkflowUtils { } } if (CollUtil.isNotEmpty(userIds)) { - List sysUserVoList = I_WORKFLOW_USER_SERVICE.getUserListByIds(new ArrayList<>(userIds)); + List sysUserVoList = WORKFLOW_USER_SERVICE.getUserListByIds(new ArrayList<>(userIds)); for (String code : messageType) { if (code.equals(MessageTypeEnum.SYSTEM_MESSAGE.getCode())) { WebSocketMessageDto dto = new WebSocketMessageDto();