From 69e3afc7707d467b758858b52d3784947f7a502b Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 20 五月 2024 10:25:23 +0800 Subject: [PATCH] !538 ♥️发布 5.2.0-BETA 公测版本 Merge pull request !538 from 疯狂的狮子Li/dev --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 154 insertions(+), 0 deletions(-) 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..944d9d7 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java @@ -0,0 +1,154 @@ +package org.dromara.workflow.utils; + +import cn.hutool.core.bean.BeanUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.workflow.domain.vo.TaskVo; +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.Task; +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); + } + + /** + * 鎸夌収浠诲姟id鏌ヨ褰撳墠浠诲姟 + * + * @param taskId 浠诲姟id + */ + public static TaskVo getTask(String taskId) { + Task task = PROCESS_ENGINE.getTaskService().createTaskQuery().taskId(taskId).singleResult(); + if (task == null) { + return null; + } + TaskVo taskVo = BeanUtil.toBean(task, TaskVo.class); + taskVo.setMultiInstance(WorkflowUtils.isMultiInstance(task.getProcessDefinitionId(), task.getTaskDefinitionKey()) != null); + String businessStatus = WorkflowUtils.getBusinessStatus(taskVo.getProcessInstanceId()); + taskVo.setBusinessStatus(businessStatus); + return taskVo; + } +} -- Gitblit v1.9.3