update 重构 将工作流查询逻辑封装为单独的service类

This commit is contained in:
疯狂的狮子Li 2024-12-13 18:29:00 +08:00
parent effd8a92e9
commit 0a1d49fc32
11 changed files with 227 additions and 200 deletions

View File

@ -1,8 +1,6 @@
package org.dromara.common.core.service;
import org.dromara.common.core.domain.dto.DeptDTO;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import java.util.List;
@ -36,12 +34,4 @@ public interface DeptService {
*/
List<DeptDTO> selectDeptsByList();
/**
* 查询部门并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
TaskAssigneeDTO selectDeptsByTaskAssigneeList(TaskAssigneeBody taskQuery);
}

View File

@ -1,8 +1,5 @@
package org.dromara.common.core.service;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
/**
* 通用 岗位服务
*
@ -10,12 +7,4 @@ import org.dromara.common.core.domain.model.TaskAssigneeBody;
*/
public interface PostService {
/**
* 查询岗位并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
TaskAssigneeDTO selectPostsByTaskAssigneeList(TaskAssigneeBody taskQuery);
}

View File

@ -1,8 +1,5 @@
package org.dromara.common.core.service;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
/**
* 通用 角色服务
*
@ -10,12 +7,4 @@ import org.dromara.common.core.domain.model.TaskAssigneeBody;
*/
public interface RoleService {
/**
* 查询角色并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
TaskAssigneeDTO selectRolesByTaskAssigneeList(TaskAssigneeBody taskQuery);
}

View File

@ -0,0 +1,47 @@
package org.dromara.common.core.service;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
/**
* 工作流设计器获取任务执行人
*
* @author Lion Li
*/
public interface TaskAssigneeService {
/**
* 查询角色并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
TaskAssigneeDTO selectRolesByTaskAssigneeList(TaskAssigneeBody taskQuery);
/**
* 查询岗位并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
TaskAssigneeDTO selectPostsByTaskAssigneeList(TaskAssigneeBody taskQuery);
/**
* 查询部门并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
TaskAssigneeDTO selectDeptsByTaskAssigneeList(TaskAssigneeBody taskQuery);
/**
* 查询用户并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
TaskAssigneeDTO selectUsersByTaskAssigneeList(TaskAssigneeBody taskQuery);
}

View File

@ -1,8 +1,6 @@
package org.dromara.common.core.service;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import java.util.List;
@ -93,12 +91,4 @@ public interface UserService {
*/
List<UserDTO> selectUsersByPostIds(List<Long> postIds);
/**
* 查询用户并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
TaskAssigneeDTO selectUsersByTaskAssigneeList(TaskAssigneeBody taskQuery);
}

View File

@ -8,17 +8,13 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.domain.dto.DeptDTO;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.DeptService;
import org.dromara.common.core.utils.*;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.common.redis.utils.CacheUtils;
import org.dromara.common.satoken.utils.LoginHelper;
@ -205,46 +201,6 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
return BeanUtil.copyToList(list, DeptDTO.class);
}
/**
* 查询部门并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
@Override
public TaskAssigneeDTO selectDeptsByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
// 使用 LambdaQueryWrapper 构建查询条件
LambdaQueryWrapper<SysDept> wrapper = Wrappers.lambdaQuery();
wrapper.eq(SysDept::getDelFlag, SystemConstants.NORMAL);
wrapper.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysDept::getDeptCategory, taskQuery.getHandlerCode());
wrapper.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysDept::getDeptName, taskQuery.getHandlerName());
if (StringUtils.isNotBlank(taskQuery.getGroupId())) {
//部门树搜索
wrapper.and(x -> {
Long parentId = Long.valueOf(taskQuery.getGroupId());
List<SysDept> deptList = baseMapper.selectListByParentId(parentId);
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId);
deptIds.add(parentId);
x.in(SysDept::getDeptId, deptIds);
});
}
wrapper.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
SysDept::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime());
wrapper.orderByAsc(SysDept::getAncestors);
wrapper.orderByAsc(SysDept::getParentId);
wrapper.orderByAsc(SysDept::getOrderNum);
wrapper.orderByAsc(SysDept::getDeptId);
Page<SysDeptVo> page = baseMapper.selectPageDeptList(pageQuery.build(), wrapper);
// 使用封装的字段映射方法进行转换
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
SysDeptVo::getDeptId, SysDeptVo::getDeptCategory, SysDeptVo::getDeptName, SysDeptVo::getParentId, SysDeptVo::getCreateTime);
return new TaskAssigneeDTO(page.getTotal(), handlers);
}
/**
* 根据ID查询所有子部门数正常状态
*

View File

@ -7,8 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.PostService;
import org.dromara.common.core.utils.MapstructUtils;
@ -29,7 +27,6 @@ import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
/**
* 岗位信息 服务层处理
@ -249,38 +246,4 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
return baseMapper.updateById(post);
}
/**
* 查询岗位并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
@Override
public TaskAssigneeDTO selectPostsByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
SysPostBo post = new SysPostBo();
post.setPostCategory(taskQuery.getHandlerCode());
post.setPostName(taskQuery.getHandlerName());
Optional.ofNullable(taskQuery.getGroupId())
.filter(StringUtils::isNotBlank)
.map(Long::valueOf)
.ifPresent(post::setBelongDeptId);
LambdaQueryWrapper<SysPost> wrapper = buildQueryWrapper(post);
// 如果 beginTime endTime 都有值才添加到 params
if (StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime())) {
wrapper.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
SysPost::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime());
}
Page<SysPostVo> page = baseMapper.selectPagePostList(pageQuery.build(), wrapper);
// 使用封装的字段映射方法进行转换
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
SysPostVo::getPostId, SysPostVo::getPostCategory, SysPostVo::getPostName, SysPostVo::getDeptId, SysPostVo::getCreateTime);
return new TaskAssigneeDTO(page.getTotal(), handlers);
}
}

View File

@ -15,9 +15,7 @@ import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.constant.TenantConstants;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.RoleService;
import org.dromara.common.core.utils.MapstructUtils;
@ -551,33 +549,4 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
});
}
/**
* 查询角色并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
@Override
public TaskAssigneeDTO selectRolesByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
SysRoleBo role = new SysRoleBo();
role.setRoleKey(taskQuery.getHandlerCode());
role.setRoleName(taskQuery.getHandlerName());
// 如果 beginTime endTime 都有值才添加到 params
if (StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime())) {
Map<String, Object> params = role.getParams();
params.put("beginTime", taskQuery.getBeginTime());
params.put("endTime", taskQuery.getEndTime());
}
Page<SysRoleVo> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role));
// 使用封装的字段映射方法进行转换
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
SysRoleVo::getRoleId, SysRoleVo::getRoleKey, SysRoleVo::getRoleName, null, SysRoleVo::getCreateTime);
return new TaskAssigneeDTO(page.getTotal(), handlers);
}
}

View File

@ -0,0 +1,168 @@
package org.dromara.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import org.dromara.common.core.service.TaskAssigneeService;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.SysPost;
import org.dromara.system.domain.SysRole;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.domain.vo.SysPostVo;
import org.dromara.system.domain.vo.SysRoleVo;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.mapper.SysDeptMapper;
import org.dromara.system.mapper.SysPostMapper;
import org.dromara.system.mapper.SysRoleMapper;
import org.dromara.system.mapper.SysUserMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 工作流设计器获取任务执行人
*
* @author Lion Li
*/
@RequiredArgsConstructor
@Service
public class SysTaskAssigneeServiceImpl implements TaskAssigneeService {
private final SysPostMapper postMapper;
private final SysDeptMapper deptMapper;
private final SysUserMapper userMapper;
private final SysRoleMapper roleMapper;
/**
* 查询角色并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
@Override
public TaskAssigneeDTO selectRolesByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
QueryWrapper<SysRole> wrapper = Wrappers.query();
wrapper.eq("r.del_flag", SystemConstants.NORMAL)
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "r.role_name", taskQuery.getHandlerCode())
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "r.role_key", taskQuery.getHandlerName())
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
"r.create_time", taskQuery.getBeginTime(), taskQuery.getEndTime())
.orderByAsc("r.role_sort").orderByAsc("r.create_time");
Page<SysRoleVo> page = roleMapper.selectPageRoleList(pageQuery.build(), wrapper);
// 使用封装的字段映射方法进行转换
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
SysRoleVo::getRoleId, SysRoleVo::getRoleKey, SysRoleVo::getRoleName, null, SysRoleVo::getCreateTime);
return new TaskAssigneeDTO(page.getTotal(), handlers);
}
/**
* 查询岗位并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
@Override
public TaskAssigneeDTO selectPostsByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
LambdaQueryWrapper<SysPost> wrapper = Wrappers.<SysPost>lambdaQuery()
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysPost::getPostCategory, taskQuery.getHandlerCode())
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysPost::getPostName, taskQuery.getHandlerName())
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
SysPost::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime());
if (StringUtils.isNotBlank(taskQuery.getGroupId())) {
Long belongDeptId = Long.valueOf(taskQuery.getGroupId());
wrapper.and(x -> {
List<SysDept> deptList = deptMapper.selectListByParentId(belongDeptId);
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId);
deptIds.add(belongDeptId);
x.in(SysPost::getDeptId, deptIds);
});
}
Page<SysPostVo> page = postMapper.selectPagePostList(pageQuery.build(), wrapper);
// 使用封装的字段映射方法进行转换
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
SysPostVo::getPostId, SysPostVo::getPostCategory, SysPostVo::getPostName, SysPostVo::getDeptId, SysPostVo::getCreateTime);
return new TaskAssigneeDTO(page.getTotal(), handlers);
}
/**
* 查询部门并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
@Override
public TaskAssigneeDTO selectDeptsByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
LambdaQueryWrapper<SysDept> wrapper = Wrappers.<SysDept>lambdaQuery()
.eq(SysDept::getDelFlag, SystemConstants.NORMAL)
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysDept::getDeptCategory, taskQuery.getHandlerCode())
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysDept::getDeptName, taskQuery.getHandlerName())
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
SysDept::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime())
.orderByAsc(SysDept::getAncestors)
.orderByAsc(SysDept::getParentId)
.orderByAsc(SysDept::getOrderNum)
.orderByAsc(SysDept::getDeptId);
if (StringUtils.isNotBlank(taskQuery.getGroupId())) {
//部门树搜索
wrapper.and(x -> {
Long parentId = Long.valueOf(taskQuery.getGroupId());
List<SysDept> deptList = deptMapper.selectListByParentId(parentId);
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId);
deptIds.add(parentId);
x.in(SysDept::getDeptId, deptIds);
});
}
Page<SysDeptVo> page = deptMapper.selectPageDeptList(pageQuery.build(), wrapper);
// 使用封装的字段映射方法进行转换
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
SysDeptVo::getDeptId, SysDeptVo::getDeptCategory, SysDeptVo::getDeptName, SysDeptVo::getParentId, SysDeptVo::getCreateTime);
return new TaskAssigneeDTO(page.getTotal(), handlers);
}
/**
* 查询用户并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
@Override
public TaskAssigneeDTO selectUsersByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", SystemConstants.NORMAL)
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "u.user_name", taskQuery.getHandlerCode())
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "u.nick_name", taskQuery.getHandlerName())
.between(taskQuery.getBeginTime() != null && taskQuery.getEndTime() != null,
"u.create_time", taskQuery.getBeginTime(), taskQuery.getEndTime())
.orderByAsc("u.user_id");
if (StringUtils.isNotBlank(taskQuery.getGroupId())) {
//部门树搜索
wrapper.and(x -> {
Long parentId = Long.valueOf(taskQuery.getGroupId());
List<SysDept> deptList = deptMapper.selectListByParentId(parentId);
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId);
deptIds.add(parentId);
x.in("u.dept_id", deptIds);
});
}
Page<SysUserVo> page = userMapper.selectPageUserList(pageQuery.build(), wrapper);
// 使用封装的字段映射方法进行转换
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
SysUserVo::getUserId, SysUserVo::getUserName, SysUserVo::getNickName, SysUserVo::getDeptId, SysUserVo::getCreateTime);
return new TaskAssigneeDTO(page.getTotal(), handlers);
}
}

View File

@ -15,9 +15,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.UserService;
import org.dromara.common.core.utils.*;
@ -37,7 +35,10 @@ import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 用户 业务层处理
@ -718,36 +719,4 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
return selectListByIds(new ArrayList<>(userIds));
}
/**
* 查询用户并返回任务指派的列表支持分页
*
* @param taskQuery 查询条件
* @return 办理人
*/
@Override
public TaskAssigneeDTO selectUsersByTaskAssigneeList(TaskAssigneeBody taskQuery) {
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
SysUserBo user = new SysUserBo();
user.setUserName(taskQuery.getHandlerCode());
user.setNickName(taskQuery.getHandlerName());
Optional.ofNullable(taskQuery.getGroupId())
.filter(StringUtils::isNotBlank)
.map(Long::valueOf)
.ifPresent(user::setDeptId);
// 如果 beginTime endTime 都有值才添加到 params
if (StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime())) {
Map<String, Object> params = user.getParams();
params.put("beginTime", taskQuery.getBeginTime());
params.put("endTime", taskQuery.getEndTime());
}
Page<SysUserVo> page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user));
// 使用封装的字段映射方法进行转换
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
SysUserVo::getUserId, SysUserVo::getUserName, SysUserVo::getNickName, SysUserVo::getDeptId, SysUserVo::getCreateTime);
return new TaskAssigneeDTO(page.getTotal(), handlers);
}
}

View File

@ -9,12 +9,9 @@ import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import org.dromara.common.core.enums.FormatsType;
import org.dromara.common.core.service.*;
import org.dromara.workflow.common.enums.TaskAssigneeEnum;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.DeptService;
import org.dromara.common.core.service.PostService;
import org.dromara.common.core.service.RoleService;
import org.dromara.common.core.service.UserService;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.warm.flow.ui.dto.HandlerFunDto;
@ -39,11 +36,11 @@ import java.util.Optional;
@RequiredArgsConstructor
@Service
public class WfTaskAssigneeServiceImpl implements IWfTaskAssigneeService, HandlerSelectService {
static final String DEFAULT_GROUP_NAME = "默认分组";
private static final String DEFAULT_GROUP_NAME = "默认分组";
private final TaskAssigneeService taskAssigneeService;
private final UserService userService;
private final DeptService deptService;
private final RoleService roleService;
private final PostService postService;
/**
* 获取办理人权限设置列表tabs页签
@ -80,10 +77,10 @@ public class WfTaskAssigneeServiceImpl implements IWfTaskAssigneeService, Handle
*/
private TaskAssigneeDTO fetchTaskAssigneeData(TaskAssigneeEnum type, TaskAssigneeBody taskQuery) {
return switch (type) {
case USER -> userService.selectUsersByTaskAssigneeList(taskQuery);
case ROLE -> roleService.selectRolesByTaskAssigneeList(taskQuery);
case DEPT -> deptService.selectDeptsByTaskAssigneeList(taskQuery);
case POST -> postService.selectPostsByTaskAssigneeList(taskQuery);
case USER -> taskAssigneeService.selectUsersByTaskAssigneeList(taskQuery);
case ROLE -> taskAssigneeService.selectRolesByTaskAssigneeList(taskQuery);
case DEPT -> taskAssigneeService.selectDeptsByTaskAssigneeList(taskQuery);
case POST -> taskAssigneeService.selectPostsByTaskAssigneeList(taskQuery);
default -> throw new ServiceException("Unsupported handler type");
};
}