From 11bfde3dc1f8fbb0bfd681e7ba35d491a4f52a06 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: 星期六, 25 五月 2024 22:39:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java | 3 +++
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java | 22 ++++++++++++++++++++++
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java | 19 ++++++-------------
3 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
index 9c89888..d8f481d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
@@ -37,6 +37,7 @@
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.mapper.*;
import org.dromara.system.service.ISysUserService;
+import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -338,6 +339,7 @@
* @return 缁撴灉
*/
@Override
+ @CacheEvict(cacheNames = CacheNames.SYS_NICKNAME, key = "#user.userId")
@Transactional(rollbackFor = Exception.class)
public int updateUser(SysUserBo user) {
// 鏂板鐢ㄦ埛涓庤鑹茬鐞�
@@ -386,6 +388,7 @@
* @param user 鐢ㄦ埛淇℃伅
* @return 缁撴灉
*/
+ @CacheEvict(cacheNames = CacheNames.SYS_NICKNAME, key = "#user.userId")
@Override
public int updateUserProfile(SysUserBo user) {
return baseMapper.update(null,
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 1a4866d..6a6b1b1 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
@@ -159,15 +159,8 @@
@Transactional(rollbackFor = Exception.class)
public boolean completeTask(CompleteTaskBo completeTaskBo) {
try {
- List<RoleDTO> roles = LoginHelper.getLoginUser().getRoles();
String userId = String.valueOf(LoginHelper.getUserId());
- 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()));
- taskQuery.taskCandidateGroupIn(groupIds);
- }
- Task task = taskQuery.singleResult();
+ Task task = WorkflowUtils.getTaskByCurrUser(completeTaskBo.getTaskId());
if (task == null) {
throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL);
}
@@ -470,8 +463,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delegateTask(DelegateBo delegateBo) {
- TaskQuery query = QueryUtils.taskQuery();
- TaskEntity task = (TaskEntity) query.taskId(delegateBo.getTaskId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult();
+ Task task = WorkflowUtils.getTaskByCurrUser(delegateBo.getTaskId());
+
if (ObjectUtil.isEmpty(task)) {
throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL);
}
@@ -544,7 +537,7 @@
*/
@Override
public boolean transferTask(TransmitBo transmitBo) {
- Task task = QueryUtils.taskQuery().taskId(transmitBo.getTaskId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult();
+ Task task = WorkflowUtils.getTaskByCurrUser(transmitBo.getTaskId());
if (ObjectUtil.isEmpty(task)) {
throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL);
}
@@ -669,9 +662,9 @@
@Override
@Transactional(rollbackFor = Exception.class)
public String backProcess(BackProcessBo backProcessBo) {
- TaskQuery query = QueryUtils.taskQuery();
String userId = String.valueOf(LoginHelper.getUserId());
- Task task = query.taskId(backProcessBo.getTaskId()).taskCandidateOrAssigned(userId).singleResult();
+ Task task = WorkflowUtils.getTaskByCurrUser(backProcessBo.getTaskId());
+
if (ObjectUtil.isEmpty(task)) {
throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL);
}
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 f475f19..a620289 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
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
+import org.dromara.common.core.domain.dto.RoleDTO;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.service.UserService;
import org.dromara.common.core.utils.SpringUtils;
@@ -14,6 +15,7 @@
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.reflect.ReflectUtils;
import org.dromara.common.mail.utils.MailUtils;
+import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.common.websocket.dto.WebSocketMessageDto;
import org.dromara.common.websocket.utils.WebSocketUtils;
@@ -38,6 +40,7 @@
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.service.impl.persistence.entity.TaskEntity;
@@ -340,4 +343,23 @@
}
}
}
+
+ /**
+ * 鏍规嵁浠诲姟id鏌ヨ 褰撳墠鐢ㄦ埛鐨勪换鍔★紝妫�鏌� 褰撳墠浜哄憳 鏄惁鏄 taskId 鐨勫姙鐞嗕汉
+ * @param taskId 浠诲姟id
+ * @return
+ */
+ public static Task getTaskByCurrUser(String taskId){
+ TaskQuery taskQuery = QueryUtils.taskQuery();
+ taskQuery.taskId(taskId).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId()));
+
+ List<RoleDTO> roles = LoginHelper.getLoginUser().getRoles();
+ if (CollUtil.isNotEmpty(roles)) {
+ List<String> groupIds = StreamUtils.toList(roles, e -> String.valueOf(e.getRoleId()));
+ taskQuery.taskCandidateGroupIn(groupIds);
+ }
+ Task task = taskQuery.singleResult();
+
+ return task;
+ }
}
--
Gitblit v1.9.3