From acc7f3dfe57c064e27adaeecc28644197e374f66 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 06 三月 2024 23:56:43 +0800
Subject: [PATCH] update 优化 封装 QueryUtils 查询工具 简化工作流业务查询代码

---
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/config/GlobalFlowableListener.java       |    3 
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java   |  115 ++--------
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java         |   21 -
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java |   55 +---
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfCategoryServiceImpl.java           |    7 
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java                             |    5 
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java                             |  134 +++++++++++++
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java                          |   69 ++----
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java          |    5 
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java             |   41 +---
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java              |  130 +++---------
 11 files changed, 259 insertions(+), 326 deletions(-)

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 2ff46a9..a37c787 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 @@
 
 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 @@
             String attachedToRefId = ((BoundaryEvent) flowElement).getAttachedToRefId();
             List<Execution> 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<Comment> 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 1a75414..11f844e 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 @@
 
 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 @@
 @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 b2a7892..4d23bf0 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.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.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 @@
      */
     @Override
     public TableDataInfo<Model> 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 @@
             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 @@
             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 boolean update(ModelBo modelBo) {
         try {
             Model model = repositoryService.getModel(modelBo.getId());
-            ModelQuery query = repositoryService.createModelQuery();
-            if (TenantHelper.isEnable()) {
-                query.modelTenantId(TenantHelper.getTenantId());
-            }
-            List<Model> list = query.modelKey(modelBo.getKey()).list();
+            List<Model> 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 @@
             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<Model> list = query.modelKey(key).list();
+            List<Model> 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 @@
             // xml璧勬簮鐨勫悕绉� 锛屽搴攁ct_ge_bytearray琛ㄤ腑鐨刵ame_瀛楁
             String processName = model.getName() + ".bpmn20.xml";
             // 璋冪敤閮ㄧ讲鐩稿叧鐨刟pi鏂规硶杩涜閮ㄧ讲娴佺▼瀹氫箟
-            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 @@
                 .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 f29db1d..51c90f1 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.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 @@
 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 @@
      */
     @Override
     public TableDataInfo<ProcessDefinitionVo> 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 @@
         List<Deployment> deploymentList = null;
         if (CollUtil.isNotEmpty(definitionList)) {
             List<String> 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 @@
     @Override
     public List<ProcessDefinitionVo> getProcessDefinitionListByKey(String key) {
         List<ProcessDefinitionVo> processDefinitionVoList = new ArrayList<>();
-        ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
-        if (TenantHelper.isEnable()) {
-            query.processDefinitionTenantId(TenantHelper.getTenantId());
-        }
+        ProcessDefinitionQuery query = QueryUtils.definitionQuery();
         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());
-            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 @@
     @Override
     public boolean deleteDeployment(String deploymentId, String processDefinitionId) {
         try {
-            List<HistoricTaskInstance> taskInstanceList = historyService.createHistoricTaskInstanceQuery()
+            List<HistoricTaskInstance> taskInstanceList = QueryUtils.hisTaskInstanceQuery()
                 .processDefinitionId(processDefinitionId).list();
             if (CollectionUtil.isNotEmpty(taskInstanceList)) {
                 throw new ServiceException("褰撳墠娴佺▼瀹氫箟宸茶浣跨敤涓嶅彲鍒犻櫎锛�");
@@ -194,11 +183,8 @@
     @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锛氭祦绋嬪畾涔塱d,鍙傛暟2锛氭槸鍚︽縺娲伙紙true鏄惁绾ц仈瀵瑰簲娴佺▼瀹炰緥锛屾縺娲讳簡鍒欏搴旀祦绋嬪疄渚嬮兘鍙互瀹℃壒锛夛紝
             //鍙傛暟3锛氫粈涔堟椂鍊欐縺娲伙紝濡傛灉涓簄ull鍒欑珛鍗虫縺娲伙紝濡傛灉涓哄叿浣撴椂闂村垯鍒拌揪姝ゆ椂闂村悗婵�娲�
@@ -249,13 +235,10 @@
      */
     @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 @@
             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 @@
                     }
                 }
                 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 e49be0d..0b18e9f 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.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.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.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 @@
     @Override
     public TableDataInfo<ProcessInstanceVo> getProcessInstanceRunningByPage(ProcessInstanceBo processInstanceBo) {
         List<ProcessInstanceVo> 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 @@
     @Override
     public TableDataInfo<ProcessInstanceVo> getProcessInstanceFinishByPage(ProcessInstanceBo processInstanceBo) {
         List<ProcessInstanceVo> 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 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<HistoricActivityInstance> highLightedFlowList = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
+        List<HistoricActivityInstance> highLightedFlowList = QueryUtils.hisActivityInstanceQuery(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
 
         List<String> highLightedFlows = new ArrayList<>();
         List<String> highLightedNodes = new ArrayList<>();
@@ -231,11 +223,11 @@
     public Map<String, Object> getHistoryProcessList(String processInstanceId) {
         Map<String, Object> map = new HashMap<>();
         List<Map<String, Object>> 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<HistoricActivityInstance> highLightedFlowList = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
+        List<HistoricActivityInstance> highLightedFlowList = QueryUtils.hisActivityInstanceQuery(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
         for (HistoricActivityInstance tempActivity : highLightedFlowList) {
             Map<String, Object> task = new HashMap<>();
             if (!FlowConstant.SEQUENCE_FLOW.equals(tempActivity.getActivityType()) &&
@@ -249,7 +241,7 @@
                 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 @@
      */
     private List<ActHistoryInfoVo> getHistoryTaskList(String processInstanceId) {
         //鏌ヨ浠诲姟鍔炵悊璁板綍
-        List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list();
+        List<HistoricTaskInstance> list = QueryUtils.hisTaskInstanceQuery(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list();
         list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed());
         List<ActHistoryInfoVo> actHistoryInfoVoList = new ArrayList<>();
         for (HistoricTaskInstance historicTaskInstance : list) {
@@ -321,11 +313,7 @@
     public Map<String, Object> getHistoryRecord(String processInstanceId) {
         Map<String, Object> map = new HashMap<>();
         // 鏌ヨ浠诲姟鍔炵悊璁板綍
-        HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery();
-        if (TenantHelper.isEnable()) {
-            query.taskTenantId(TenantHelper.getTenantId());
-        }
-        List<HistoricTaskInstance> list = query.processInstanceId(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list();
+        List<HistoricTaskInstance> list = QueryUtils.hisTaskInstanceQuery(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);
@@ -463,11 +451,7 @@
     @Transactional(rollbackFor = Exception.class)
     public boolean deleteRuntimeProcessInst(ProcessInvalidBo processInvalidBo) {
         try {
-            TaskQuery query = taskService.createTaskQuery();
-            if (TenantHelper.isEnable()) {
-                query.taskTenantId(TenantHelper.getTenantId());
-            }
-            List<Task> list = query.processInstanceId(processInvalidBo.getProcessInstanceId()).list();
+            List<Task> list = QueryUtils.taskQuery(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()));
@@ -479,11 +463,7 @@
             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 boolean deleteRuntimeProcessAndHisInst(List<String> processInstanceIds) {
         try {
             // 1.鍒犻櫎杩愯涓祦绋嬪疄渚�
-            TaskQuery query = taskService.createTaskQuery();
-            if (TenantHelper.isEnable()) {
-                query.taskTenantId(TenantHelper.getTenantId());
-            }
-            List<Task> list = query.processInstanceIdIn(processInstanceIds).list();
+            List<Task> list = QueryUtils.taskQuery(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.鍒犻櫎鍘嗗彶璁板綍
-            HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery();
-            if (TenantHelper.isEnable()) {
-                query1.processInstanceTenantId(TenantHelper.getTenantId());
-            }
-            List<HistoricProcessInstance> historicProcessInstanceList = query1.processInstanceIds(new HashSet<>(processInstanceIds)).list();
+            List<HistoricProcessInstance> historicProcessInstanceList = QueryUtils.hisInstanceQuery(new HashSet<>(processInstanceIds)).list();
             if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) {
                 historyService.bulkDeleteHistoricProcessInstances(processInstanceIds);
             }
@@ -552,22 +524,14 @@
                 return false;
             }
             List<String> processInstanceIds = StreamUtils.toList(actHiProcinsts, ActHiProcinst::getId);
-            TaskQuery query = taskService.createTaskQuery();
-            if (TenantHelper.isEnable()) {
-                query.taskTenantId(TenantHelper.getTenantId());
-            }
-            List<Task> list = query.processInstanceIdIn(processInstanceIds).list();
+            List<Task> list = QueryUtils.taskQuery(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.鍒犻櫎鍘嗗彶璁板綍
-            HistoricProcessInstanceQuery query1 = historyService.createHistoricProcessInstanceQuery();
-            if (TenantHelper.isEnable()) {
-                query1.processInstanceTenantId(TenantHelper.getTenantId());
-            }
-            List<HistoricProcessInstance> historicProcessInstanceList = query1.processInstanceIds(new HashSet<>(processInstanceIds)).list();
+            List<HistoricProcessInstance> historicProcessInstanceList = QueryUtils.hisInstanceQuery(new HashSet<>(processInstanceIds)).list();
             if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) {
                 historyService.bulkDeleteHistoricProcessInstances(processInstanceIds);
             }
@@ -604,11 +568,7 @@
     @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 @@
             if (BusinessStatusEnum.CANCEL.getStatus().equals(processInstance.getBusinessStatus())) {
                 throw new ServiceException("璇ュ崟鎹凡鎾ら攢锛�");
             }
-            TaskQuery query1 = taskService.createTaskQuery();
-            if (TenantHelper.isEnable()) {
-                query1.taskTenantId(TenantHelper.getTenantId());
-            }
-            List<Task> taskList = query1.processInstanceId(processInstanceId).list();
+            List<Task> 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<String> 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 @@
     @Override
     public TableDataInfo<ProcessInstanceVo> getCurrentSubmitByPage(ProcessInstanceBo processInstanceBo) {
         List<ProcessInstanceVo> 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 @@
         List<TaskVo> taskVoList = new ArrayList<>();
         if (CollUtil.isNotEmpty(historicProcessInstanceList)) {
             List<String> processInstanceIds = StreamUtils.toList(historicProcessInstanceList, HistoricProcessInstance::getId);
-            TaskQuery query1 = taskService.createTaskQuery();
-            if (TenantHelper.isEnable()) {
-                query1.taskTenantId(TenantHelper.getTenantId());
-            }
-            List<Task> taskList = query1.processInstanceIdIn(processInstanceIds).list();
+            List<Task> taskList = QueryUtils.taskQuery(processInstanceIds).list();
             for (Task task : taskList) {
                 taskVoList.add(BeanUtil.toBean(task, TaskVo.class));
             }
@@ -720,11 +665,7 @@
     @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 @@
             if (StringUtils.isBlank(message)) {
                 message = "鎮ㄧ殑銆�" + processInstance.getName() + "銆戝崟鎹繕鏈鎵癸紝璇锋偍鍙婃椂澶勭悊銆�";
             }
-            List<Task> list = taskService.createTaskQuery().processInstanceId(taskUrgingBo.getProcessInstanceId()).list();
+            List<Task> 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 6218470..440d43c 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.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.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 @@
             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<Task> taskResult = taskQuery.processInstanceBusinessKey(startProcessBo.getBusinessKey()).list();
+        List<Task> 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 @@
         // 灏嗘祦绋嬪畾涔夊悕绉� 浣滀负 娴佺▼瀹炰緥鍚嶇О
         runtimeService.setProcessInstanceName(pi.getProcessInstanceId(), pi.getProcessDefinitionName());
         // 鐢宠浜烘墽琛屾祦绋�
-        TaskQuery taskQuery1 = taskService.createTaskQuery();
-        if (TenantHelper.isEnable()) {
-            taskQuery.taskTenantId(TenantHelper.getTenantId());
-        }
-        List<Task> taskList = taskQuery1.processInstanceId(pi.getId()).list();
+        List<Task> taskList = QueryUtils.taskQuery(pi.getId()).list();
         if (taskList.size() > 1) {
             throw new ServiceException("璇锋鏌ユ祦绋嬬涓�涓幆鑺傛槸鍚︿负鐢宠浜猴紒");
         }
@@ -157,10 +146,7 @@
         try {
             List<RoleDTO> 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<String> groupIds = StreamUtils.toList(roles, e -> String.valueOf(e.getRoleId()));
@@ -173,7 +159,7 @@
             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 @@
             } 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 @@
                     processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.FINISH.getStatus(), false);
                 }
             } else {
-                TaskQuery query1 = taskService.createTaskQuery();
-                if (TenantHelper.isEnable()) {
-                    query1.taskTenantId(TenantHelper.getTenantId());
-                }
-                List<Task> list = query1.processInstanceId(task.getProcessInstanceId()).list();
+                List<Task> 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<Task> taskList = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list();
+                    List<Task> 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 @@
      */
     @Override
     public TableDataInfo<TaskVo> 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 @@
         List<ProcessInstance> processInstanceList = null;
         if (CollUtil.isNotEmpty(taskList)) {
             Set<String> processInstanceIds = StreamUtils.toSet(taskList, Task::getProcessInstanceId);
-            processInstanceList = runtimeService.createProcessInstanceQuery().processInstanceIds(processInstanceIds).list();
+            processInstanceList = QueryUtils.instanceQuery(processInstanceIds).list();
         }
         List<TaskVo> list = new ArrayList<>();
         for (Task task : taskList) {
@@ -347,10 +322,7 @@
     @Override
     public TableDataInfo<TaskVo> 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 @@
         List<HistoricProcessInstance> historicProcessInstanceList = null;
         if (CollUtil.isNotEmpty(taskInstanceList)) {
             Set<String> processInstanceIds = StreamUtils.toSet(taskInstanceList, HistoricTaskInstance::getProcessInstanceId);
-            historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceIds(processInstanceIds).list();
+            historicProcessInstanceList = QueryUtils.hisInstanceQuery(processInstanceIds).list();
         }
         List<TaskVo> list = new ArrayList<>();
         for (HistoricTaskInstance task : taskInstanceList) {
@@ -424,10 +396,7 @@
      */
     @Override
     public TableDataInfo<TaskVo> 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 @@
         List<HistoricProcessInstance> historicProcessInstanceList = null;
         if (CollUtil.isNotEmpty(taskInstanceList)) {
             Set<String> processInstanceIds = StreamUtils.toSet(taskInstanceList, HistoricTaskInstance::getProcessInstanceId);
-            historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceIds(processInstanceIds).list();
+            historicProcessInstanceList = QueryUtils.hisInstanceQuery(processInstanceIds).list();
         }
         List<TaskVo> list = new ArrayList<>();
         for (HistoricTaskInstance task : taskInstanceList) {
@@ -470,10 +439,7 @@
     @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 @@
     @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 @@
         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 @@
                 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<Task> list = query2.processInstanceId(task.getProcessInstanceId()).list();
+            List<Task> list = QueryUtils.taskQuery(task.getProcessInstanceId()).list();
             if (CollectionUtil.isNotEmpty(list)) {
                 List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId()));
                 if (CollectionUtil.isNotEmpty(subTasks)) {
@@ -560,11 +516,8 @@
      */
     @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 @@
      */
     @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 @@
      */
     @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 @@
     @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 @@
         }
         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<ExecutionEntity> executionEntities = managementService.executeCommand(childByExecutionIdCmd);
@@ -717,13 +661,9 @@
                 throw new ServiceException("璇ュ崟鎹凡閫�鍥烇紒");
             }
             //鍒ゆ柇鏄惁鏈夊涓换鍔�
-            TaskQuery query1 = taskService.createTaskQuery();
-            if (TenantHelper.isEnable()) {
-                query1.taskTenantId(TenantHelper.getTenantId());
-            }
-            List<Task> taskList = query.processInstanceId(processInstanceId).list();
+            List<Task> 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 @@
                 //褰撳墠鍗曚釜鑺傜偣椹冲洖鍗曚釜鑺傜偣
                 runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId).moveActivityIdTo(task.getTaskDefinitionKey(), backTaskDefinitionKey).changeState();
             }
-            TaskQuery query2 = taskService.createTaskQuery();
-            if (TenantHelper.isEnable()) {
-                query1.taskTenantId(TenantHelper.getTenantId());
-            }
-            List<Task> list = query2.processInstanceId(processInstanceId).list();
+            List<Task> list = QueryUtils.taskQuery(processInstanceId).list();
             for (Task t : list) {
                 taskService.setAssignee(t.getId(), historicTaskInstance.getAssignee());
             }
@@ -770,11 +706,7 @@
     @Transactional(rollbackFor = Exception.class)
     public boolean updateAssignee(String[] taskIds, String userId) {
         try {
-            TaskQuery query = taskService.createTaskQuery();
-            if (TenantHelper.isEnable()) {
-                query.taskTenantId(TenantHelper.getTenantId());
-            }
-            List<Task> list = query.taskIds(Arrays.asList(taskIds)).list();
+            List<Task> 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 620403a..c5cb288 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.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 @@
         WfCategory update = MapstructUtils.convert(bo, WfCategory.class);
         validEntityBeforeSave(update);
         WfCategoryVo wfCategoryVo = baseMapper.selectVoById(bo.getId());
-        List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery().processDefinitionCategory(wfCategoryVo.getCategoryCode()).list();
+        List<ProcessDefinition> processDefinitionList = QueryUtils.definitionQuery().processDefinitionCategory(wfCategoryVo.getCategoryCode()).list();
         for (ProcessDefinition processDefinition : processDefinitionList) {
             repositoryService.setProcessDefinitionCategory(processDefinition.getId(), bo.getCategoryCode());
         }
-        List<Deployment> deploymentList = repositoryService.createDeploymentQuery().deploymentCategory(wfCategoryVo.getCategoryCode()).list();
+        List<Deployment> deploymentList = QueryUtils.deploymentQuery().deploymentCategory(wfCategoryVo.getCategoryCode()).list();
         for (Deployment deployment : deploymentList) {
             repositoryService.setDeploymentCategory(deployment.getId(), bo.getCategoryCode());
         }
-        List<Model> modelList = repositoryService.createModelQuery().modelCategory(wfCategoryVo.getCategoryCode()).list();
+        List<Model> 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 dd91eaf..93f7f25 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.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.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 @@
 
     private final SysUserMapper sysUserMapper;
     private final SysUserRoleMapper sysUserRoleMapper;
-    private final TaskService taskService;
     private final RuntimeService runtimeService;
 
     /**
@@ -58,7 +55,7 @@
     @Override
     @SuppressWarnings("unchecked")
     public TableDataInfo<SysUserVo> 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 @@
             List<Long> assigneeList = (List<Long>) runtimeService.getVariable(task.getExecutionId(), multiInstance.getAssigneeList());
             queryWrapper.notIn(CollectionUtil.isNotEmpty(assigneeList), SysUser::getUserId, assigneeList);
         } else {
-            List<Task> list = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list();
+            List<Task> list = QueryUtils.taskQuery(task.getProcessInstanceId()).list();
             List<Long> userIds = StreamUtils.toList(list, e -> Long.valueOf(e.getAssignee()));
             queryWrapper.notIn(CollectionUtil.isNotEmpty(userIds), SysUser::getUserId, userIds);
         }
@@ -93,16 +90,8 @@
     @Override
     @SuppressWarnings("unchecked")
     public List<TaskVo> 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<Task> taskList = query1.processInstanceId(task.getProcessInstanceId()).list();
+        Task task = QueryUtils.taskQuery().taskId(taskId).singleResult();
+        List<Task> taskList = QueryUtils.taskQuery(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/ModelUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/ModelUtils.java
index 18969b1..f5049b8 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.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 @@
  *
  * @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 0000000..850315f
--- /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<String> 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<String> 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<String> 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<String> 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 bb0e52b..a1cf0ab 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.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.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 @@
             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 @@
                 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 @@
             actHiTaskinst.setProcDefId(processDefinitionId);
             actHiTaskinst.setProcInstId(processInstanceId);
             actHiTaskinst.setScopeType(TaskStatusEnum.COPY.getStatus());
-            if (TenantHelper.isEnable()) {
-                actHiTaskinst.setTenantId(TenantHelper.getTenantId());
-            }
+            actHiTaskinst.setTenantId(TenantHelper.getTenantId());
             LambdaUpdateWrapper<ActHiTaskinst> updateWrapper = new LambdaUpdateWrapper<>();
             updateWrapper.in(ActHiTaskinst::getId, taskIds);
             ACT_HI_TASKINST_MAPPER.update(actHiTaskinst, updateWrapper);
@@ -145,20 +136,16 @@
     public static ParticipantVo getCurrentTaskParticipant(String taskId) {
         ParticipantVo participantVo = new ParticipantVo();
         List<HistoricIdentityLink> 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<HistoricIdentityLink> groupList = StreamUtils.filter(linksForTask, e -> StringUtils.isNotBlank(e.getGroupId()));
             if (CollUtil.isNotEmpty(groupList)) {
                 List<Long> groupIds = StreamUtils.toList(groupList, e -> Long.valueOf(e.getGroupId()));
-                List<SysUserRole> sysUserRoles = I_WORKFLOW_USER_SERVICE.getUserRoleListByRoleIds(groupIds);
+                List<SysUserRole> sysUserRoles = WORKFLOW_USER_SERVICE.getUserRoleListByRoleIds(groupIds);
                 if (CollUtil.isNotEmpty(sysUserRoles)) {
                     participantVo.setGroupIds(groupIds);
                     List<Long> userIdList = StreamUtils.toList(sysUserRoles, SysUserRole::getUserId);
-                    List<SysUserVo> sysUsers = I_WORKFLOW_USER_SERVICE.getUserListByIds(userIdList);
+                    List<SysUserVo> sysUsers = WORKFLOW_USER_SERVICE.getUserListByIds(userIdList);
                     if (CollUtil.isNotEmpty(sysUsers)) {
                         List<Long> userIds = StreamUtils.toList(sysUsers, SysUserVo::getUserId);
                         List<String> nickNames = StreamUtils.toList(sysUsers, SysUserVo::getNickName);
@@ -177,7 +164,7 @@
 
                     }
                 }
-                List<SysUserVo> sysUsers = I_WORKFLOW_USER_SERVICE.getUserListByIds(userIdList);
+                List<SysUserVo> sysUsers = WORKFLOW_USER_SERVICE.getUserListByIds(userIdList);
                 if (CollUtil.isNotEmpty(sysUsers)) {
                     List<Long> userIds = StreamUtils.toList(sysUsers, SysUserVo::getUserId);
                     List<String> nickNames = StreamUtils.toList(sysUsers, SysUserVo::getNickName);
@@ -233,16 +220,8 @@
      * @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 @@
      * @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 @@
         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 @@
         if (CollUtil.isEmpty(idList)) {
             return;
         }
-        List<ActHiProcinst> actHiProcinstList = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList);
+        List<ActHiProcinst> 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 @@
         for (Task t : list) {
             ParticipantVo taskParticipant = WorkflowUtils.getCurrentTaskParticipant(t.getId());
             if (CollUtil.isNotEmpty(taskParticipant.getGroupIds())) {
-                List<SysUserRole> sysUserRoles = I_WORKFLOW_USER_SERVICE.getUserRoleListByRoleIds(taskParticipant.getGroupIds());
+                List<SysUserRole> sysUserRoles = WORKFLOW_USER_SERVICE.getUserRoleListByRoleIds(taskParticipant.getGroupIds());
                 if (CollUtil.isNotEmpty(sysUserRoles)) {
                     userIds.addAll(StreamUtils.toList(sysUserRoles, SysUserRole::getUserId));
                 }
@@ -346,7 +321,7 @@
             }
         }
         if (CollUtil.isNotEmpty(userIds)) {
-            List<SysUserVo> sysUserVoList = I_WORKFLOW_USER_SERVICE.getUserListByIds(new ArrayList<>(userIds));
+            List<SysUserVo> sysUserVoList = WORKFLOW_USER_SERVICE.getUserListByIds(new ArrayList<>(userIds));
             for (String code : messageType) {
                 if (code.equals(MessageTypeEnum.SYSTEM_MESSAGE.getCode())) {
                     WebSocketMessageDto dto = new WebSocketMessageDto();

--
Gitblit v1.9.3