!714 update 优化工作流小改动

* update 优化工作流小改动
This commit is contained in:
AprilWind 2025-07-02 05:17:43 +00:00 committed by 疯狂的狮子Li
parent debc73d7d4
commit 9775283a24
4 changed files with 10 additions and 44 deletions

View File

@ -3,11 +3,14 @@ package org.dromara.workflow.handler;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.warm.flow.core.dto.FlowParams; import org.dromara.warm.flow.core.dto.FlowParams;
import org.dromara.warm.flow.core.handler.PermissionHandler; import org.dromara.warm.flow.core.handler.PermissionHandler;
import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.service.IFlwCommonService; import org.dromara.workflow.service.IFlwTaskAssigneeService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Collections; import java.util.Collections;
@ -24,7 +27,7 @@ import java.util.List;
@Slf4j @Slf4j
public class WorkflowPermissionHandler implements PermissionHandler { public class WorkflowPermissionHandler implements PermissionHandler {
private final IFlwCommonService flwCommonService; private final IFlwTaskAssigneeService flwTaskAssigneeService;
/** /**
* 办理人权限标识比如用户角色部门等用于校验是否有权限办理任务 * 办理人权限标识比如用户角色部门等用于校验是否有权限办理任务
@ -51,9 +54,11 @@ public class WorkflowPermissionHandler implements PermissionHandler {
*/ */
@Override @Override
public List<String> convertPermissions(List<String> permissions) { public List<String> convertPermissions(List<String> permissions) {
if (CollUtil.isNotEmpty(permissions)) { if (CollUtil.isEmpty(permissions)) {
permissions = flwCommonService.buildUser(permissions); return permissions;
} }
return permissions; String storageIds = CollUtil.join(permissions, StringUtils.SEPARATOR);
List<UserDTO> users = flwTaskAssigneeService.fetchUsersByStorageIds(storageIds);
return StreamUtils.toList(users, userDTO -> String.valueOf(userDTO.getUserId()));
} }
} }

View File

@ -9,8 +9,6 @@ import org.dromara.workflow.domain.bo.FlowTaskBo;
import org.dromara.workflow.domain.vo.FlowHisTaskVo; import org.dromara.workflow.domain.vo.FlowHisTaskVo;
import org.dromara.workflow.domain.vo.FlowTaskVo; import org.dromara.workflow.domain.vo.FlowTaskVo;
import java.util.List;
/** /**
* 任务信息Mapper接口 * 任务信息Mapper接口
@ -29,14 +27,6 @@ public interface FlwTaskMapper {
*/ */
Page<FlowTaskVo> getListRunTask(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper); Page<FlowTaskVo> getListRunTask(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
/**
* 获取待办信息
*
* @param queryWrapper 条件
* @return 结果
*/
List<FlowTaskVo> getListRunTask(@Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
/** /**
* 获取已办 * 获取已办
* *

View File

@ -9,14 +9,6 @@ import java.util.List;
*/ */
public interface IFlwCommonService { public interface IFlwCommonService {
/**
* 构建工作流用户
*
* @param permissionList 办理用户
* @return 用户
*/
List<String> buildUser(List<String> permissionList);
/** /**
* 发送消息 * 发送消息
* *

View File

@ -19,7 +19,6 @@ import org.dromara.warm.flow.orm.entity.FlowTask;
import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.common.enums.MessageTypeEnum; import org.dromara.workflow.common.enums.MessageTypeEnum;
import org.dromara.workflow.service.IFlwCommonService; import org.dromara.workflow.service.IFlwCommonService;
import org.dromara.workflow.service.IFlwTaskAssigneeService;
import org.dromara.workflow.service.IFlwTaskService; import org.dromara.workflow.service.IFlwTaskService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -40,26 +39,6 @@ import java.util.stream.Collectors;
public class FlwCommonServiceImpl implements IFlwCommonService { public class FlwCommonServiceImpl implements IFlwCommonService {
private final NodeService nodeService; private final NodeService nodeService;
/**
* 构建工作流用户
*
* @param permissionList 办理用户
* @return 用户
*/
@Override
public List<String> buildUser(List<String> permissionList) {
if (CollUtil.isEmpty(permissionList)) {
return List.of();
}
IFlwTaskAssigneeService taskAssigneeService = SpringUtils.getBean(IFlwTaskAssigneeService.class);
String processedBys = CollUtil.join(permissionList, StringUtils.SEPARATOR);
// 根据 processedBy 前缀判断处理人类型分别获取用户列表
List<UserDTO> users = taskAssigneeService.fetchUsersByStorageIds(processedBys);
return StreamUtils.toList(users, userDTO -> String.valueOf(userDTO.getUserId()));
}
/** /**
* 发送消息 * 发送消息
* *