From fd4c91301ea339ff477f2a1c66c068d6864171a5 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期五, 15 三月 2024 13:00:16 +0800
Subject: [PATCH] !496 工作流工具方法优化 Merge pull request !496 from 秋辞未寒/dev
---
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java | 20 ++++++++++
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java | 41 +++++++++++---------
2 files changed, 43 insertions(+), 18 deletions(-)
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java
index d7ba1bf..a282958 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java
@@ -3,6 +3,9 @@
import lombok.AllArgsConstructor;
import lombok.Getter;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
/**
* 娑堟伅绫诲瀷鏋氫妇
*
@@ -27,5 +30,22 @@
private final String code;
private final String desc;
+
+ private final static Map<String, MessageTypeEnum> MESSAGE_TYPE_ENUM_MAP = new ConcurrentHashMap<>(MessageTypeEnum.values().length);
+
+ static {
+ for (MessageTypeEnum messageType : MessageTypeEnum.values()) {
+ MESSAGE_TYPE_ENUM_MAP.put(messageType.code, messageType);
+ }
+ }
+
+ /**
+ * 鏍规嵁娑堟伅绫诲瀷 code 鑾峰彇 MessageTypeEnum
+ * @param code 娑堟伅绫诲瀷code
+ * @return MessageTypeEnum
+ */
+ public static MessageTypeEnum getByCode(String code) {
+ return MESSAGE_TYPE_ENUM_MAP.get(code);
+ }
}
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 6f75fb9..96a5089 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
@@ -95,6 +95,7 @@
*/
public static void createCopyTask(List<Task> parentTaskList, List<Long> userIds) {
List<Task> list = new ArrayList<>();
+ String tenantId = TenantHelper.getTenantId();
for (Task parentTask : parentTaskList) {
for (Long userId : userIds) {
TaskEntity newTask = (TaskEntity) PROCESS_ENGINE.getTaskService().newTask();
@@ -104,7 +105,7 @@
newTask.setProcessDefinitionId(parentTask.getProcessDefinitionId());
newTask.setProcessInstanceId(parentTask.getProcessInstanceId());
newTask.setTaskDefinitionKey(parentTask.getTaskDefinitionKey());
- newTask.setTenantId(TenantHelper.getTenantId());
+ newTask.setTenantId(tenantId);
list.add(newTask);
}
}
@@ -117,7 +118,7 @@
actHiTaskinst.setProcDefId(processDefinitionId);
actHiTaskinst.setProcInstId(processInstanceId);
actHiTaskinst.setScopeType(TaskStatusEnum.COPY.getStatus());
- actHiTaskinst.setTenantId(TenantHelper.getTenantId());
+ actHiTaskinst.setTenantId(tenantId);
LambdaUpdateWrapper<ActHiTaskinst> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(ActHiTaskinst::getId, taskIds);
ACT_HI_TASKINST_MAPPER.update(actHiTaskinst, updateWrapper);
@@ -169,11 +170,10 @@
List<String> nickNames = StreamUtils.toList(sysUsers, SysUserVo::getNickName);
participantVo.setCandidate(userIds);
participantVo.setCandidateName(nickNames);
- if (StringUtils.isBlank(task.getAssignee()) && CollUtil.isNotEmpty(candidateList) && candidateList.size() > 1) {
- participantVo.setClaim(false);
- }
- if (!StringUtils.isBlank(task.getAssignee()) && CollUtil.isNotEmpty(candidateList) && candidateList.size() > 1) {
- participantVo.setClaim(true);
+ // 鍒ゆ柇褰撳墠浠诲姟鏄惁鍏锋湁澶氫釜鍔炵悊浜�
+ if (CollUtil.isNotEmpty(candidateList) && candidateList.size() > 1) {
+ // 濡傛灉 assignee 瀛樺湪锛屽垯璁剧疆褰撳墠浠诲姟宸茬粡琚棰�
+ participantVo.setClaim(StringUtils.isNotBlank(task.getAssignee()));
}
}
}
@@ -322,17 +322,22 @@
if (CollUtil.isNotEmpty(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();
- dto.setSessionKeys(new ArrayList<>(userIds));
- dto.setMessage(message);
- WebSocketUtils.publishMessage(dto);
- }
- if (code.equals(MessageTypeEnum.EMAIL_MESSAGE.getCode())) {
- MailUtils.sendText(StreamUtils.join(sysUserVoList, SysUserVo::getEmail), "鍗曟嵁瀹℃壒鎻愰啋", message);
- }
- if (code.equals(MessageTypeEnum.SMS_MESSAGE.getCode())) {
- //todo 鐭俊鍙戦��
+ MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code);
+ if (ObjectUtil.isNotEmpty(messageTypeEnum)) {
+ switch (messageTypeEnum) {
+ case SYSTEM_MESSAGE:
+ WebSocketMessageDto dto = new WebSocketMessageDto();
+ dto.setSessionKeys(new ArrayList<>(userIds));
+ dto.setMessage(message);
+ WebSocketUtils.publishMessage(dto);
+ break;
+ case EMAIL_MESSAGE:
+ MailUtils.sendText(StreamUtils.join(sysUserVoList, SysUserVo::getEmail), "鍗曟嵁瀹℃壒鎻愰啋", message);
+ break;
+ case SMS_MESSAGE:
+ //todo 鐭俊鍙戦��
+ break;
+ }
}
}
}
--
Gitblit v1.9.3