mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
		@@ -37,6 +37,7 @@ import org.dromara.system.domain.vo.SysUserExportVo;
 | 
			
		||||
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 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    @CacheEvict(cacheNames = CacheNames.SYS_NICKNAME, key = "#user.userId")
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public int updateUser(SysUserBo user) {
 | 
			
		||||
        // 新增用户与角色管理
 | 
			
		||||
@@ -386,6 +388,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @CacheEvict(cacheNames = CacheNames.SYS_NICKNAME, key = "#user.userId")
 | 
			
		||||
    @Override
 | 
			
		||||
    public int updateUserProfile(SysUserBo user) {
 | 
			
		||||
        return baseMapper.update(null,
 | 
			
		||||
 
 | 
			
		||||
@@ -159,15 +159,8 @@ public class ActTaskServiceImpl implements IActTaskService {
 | 
			
		||||
    @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 @@ public class ActTaskServiceImpl implements IActTaskService {
 | 
			
		||||
    @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 @@ public class ActTaskServiceImpl implements IActTaskService {
 | 
			
		||||
     */
 | 
			
		||||
    @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 @@ public class ActTaskServiceImpl implements IActTaskService {
 | 
			
		||||
    @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);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ 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.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.StreamUtils;
 | 
			
		||||
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.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.service.impl.persistence.entity.TaskEntity;
 | 
			
		||||
 | 
			
		||||
@@ -340,4 +343,23 @@ public class WorkflowUtils {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据任务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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user