From b0b6d013577b2641703a017e5a4144ce8f8d763e Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期六, 06 七月 2024 14:42:08 +0800
Subject: [PATCH] update 优化 工作流相关代码方法
---
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java | 23 +++++++++++------------
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java | 16 ++--------------
2 files changed, 13 insertions(+), 26 deletions(-)
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 3b18b61..e22e800 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
@@ -9,6 +9,7 @@
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.UserService;
import org.dromara.common.core.utils.StreamUtils;
@@ -17,7 +18,6 @@
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.workflow.common.constant.FlowConstant;
-import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.workflow.common.enums.TaskStatusEnum;
import org.dromara.workflow.domain.ActHiProcinst;
import org.dromara.workflow.domain.bo.ProcessInstanceBo;
@@ -34,7 +34,7 @@
import org.dromara.workflow.service.IWfTaskBackNodeService;
import org.dromara.workflow.utils.QueryUtils;
import org.dromara.workflow.utils.WorkflowUtils;
-import org.flowable.bpmn.model.*;
+import org.flowable.bpmn.model.BpmnModel;
import org.flowable.engine.*;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.history.HistoricProcessInstance;
@@ -57,7 +57,6 @@
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.*;
-import java.util.stream.Collectors;
/**
* 娴佺▼瀹炰緥 鏈嶅姟灞傚疄鐜�
@@ -257,15 +256,15 @@
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()) &&
- !FlowConstant.PARALLEL_GATEWAY.equals(tempActivity.getActivityType()) &&
- !FlowConstant.EXCLUSIVE_GATEWAY.equals(tempActivity.getActivityType()) &&
- !FlowConstant.INCLUSIVE_GATEWAY.equals(tempActivity.getActivityType())
- ) {
- task.put("key", tempActivity.getActivityId());
- task.put("completed", tempActivity.getEndTime() != null);
- task.put("activityType", tempActivity.getActivityType());
- taskList.add(task);
+ switch (tempActivity.getActivityType()) {
+ case FlowConstant.SEQUENCE_FLOW, FlowConstant.PARALLEL_GATEWAY,
+ FlowConstant.EXCLUSIVE_GATEWAY, FlowConstant.INCLUSIVE_GATEWAY -> {}
+ default -> {
+ task.put("key", tempActivity.getActivityId());
+ task.put("completed", tempActivity.getEndTime() != null);
+ task.put("activityType", tempActivity.getActivityType());
+ taskList.add(task);
+ }
}
}
ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId).singleResult();
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 f60d720..32e6aec 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
@@ -260,7 +260,8 @@
String userId = String.valueOf(LoginHelper.getUserId());
queryWrapper.eq("t.business_status_", BusinessStatusEnum.WAITING.getStatus());
queryWrapper.eq(TenantHelper.isEnable(), "t.tenant_id_", TenantHelper.getTenantId());
- queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' " + "and (LINK.USER_ID_ = {0} or ( LINK.GROUP_ID_ IN " + getInParam(roleIds) + " ) ))", userId)));
+ String ids = StreamUtils.join(roleIds, x -> "'" + x + "'");
+ queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' and (LINK.USER_ID_ = {0} or ( LINK.GROUP_ID_ IN ({1}) ) ))", userId, ids)));
if (StringUtils.isNotBlank(taskBo.getName())) {
queryWrapper.like("t.name_", taskBo.getName());
}
@@ -287,19 +288,6 @@
}
}
return TableDataInfo.build(page);
- }
-
- private String getInParam(List<String> param) {
- StringBuilder sb = new StringBuilder();
- sb.append("(");
- for (int i = 0; i < param.size(); i++) {
- sb.append("'").append(param.get(i)).append("'");
- if (i != param.size() - 1) {
- sb.append(",");
- }
- }
- sb.append(")");
- return sb.toString();
}
/**
--
Gitblit v1.9.3