update 完善任务办理人
This commit is contained in:
parent
22cd701d94
commit
e46d26b54e
@ -0,0 +1,37 @@
|
||||
package org.dromara.common.core.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 部门
|
||||
*
|
||||
* @author AprilWind
|
||||
*/
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class DeptDTO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 部门ID
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 父部门ID
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 部门名称
|
||||
*/
|
||||
private String deptName;
|
||||
|
||||
}
|
@ -63,7 +63,7 @@ public class TaskAssigneeDTO implements Serializable {
|
||||
handlerCode != null ? handlerCode.apply(item) : "无",
|
||||
handlerName != null ? handlerName.apply(item) : "无",
|
||||
groupName != null ? groupName.apply(item) : "默认分组",
|
||||
createTimeMapper != null ? createTimeMapper.apply(item) : null
|
||||
createTimeMapper != null ? createTimeMapper.apply(item) : new Date()
|
||||
))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
@ -1,5 +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.dto.UserDTO;
|
||||
import org.dromara.common.core.domain.model.TaskAssigneeBody;
|
||||
@ -86,10 +87,42 @@ public interface UserService {
|
||||
List<UserDTO> selectUsersByDeptIds(List<Long> deptIds);
|
||||
|
||||
/**
|
||||
* 查询角色信息
|
||||
* 查询角色并返回任务指派的列表,支持分页
|
||||
*
|
||||
* @return 角色信息列表
|
||||
* @param taskQuery 查询条件
|
||||
* @return 办理人
|
||||
*/
|
||||
TaskAssigneeDTO selectUsersByRoleList(TaskAssigneeBody taskQuery);
|
||||
|
||||
/**
|
||||
* 查询用户并返回任务指派的列表,支持分页
|
||||
*
|
||||
* @param taskQuery 查询条件
|
||||
* @return 办理人
|
||||
*/
|
||||
TaskAssigneeDTO selectUsersByUserList(TaskAssigneeBody taskQuery);
|
||||
|
||||
/**
|
||||
* 查询部门并返回任务指派的列表,支持分页
|
||||
*
|
||||
* @param taskQuery 查询条件
|
||||
* @return 办理人
|
||||
*/
|
||||
TaskAssigneeDTO selectUsersByDeptList(TaskAssigneeBody taskQuery);
|
||||
|
||||
/**
|
||||
* 查询部门
|
||||
*
|
||||
* @return 部门列表
|
||||
*/
|
||||
List<DeptDTO> selectUsersByDeptList();
|
||||
|
||||
/**
|
||||
* 查询岗位并返回任务指派的列表,支持分页
|
||||
*
|
||||
* @param taskQuery 查询条件
|
||||
* @return 办理人
|
||||
*/
|
||||
TaskAssigneeDTO selectUsersByPostList(TaskAssigneeBody taskQuery);
|
||||
|
||||
}
|
||||
|
@ -117,4 +117,9 @@ public class PageQuery implements Serializable {
|
||||
return (pageNum - 1) * pageSize;
|
||||
}
|
||||
|
||||
public PageQuery(Integer pageSize, Integer pageNum) {
|
||||
this.pageSize = pageSize;
|
||||
this.pageNum = pageNum;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.constant.CacheNames;
|
||||
import org.dromara.common.core.constant.UserConstants;
|
||||
import org.dromara.common.core.domain.dto.DeptDTO;
|
||||
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
|
||||
import org.dromara.common.core.domain.dto.UserDTO;
|
||||
import org.dromara.common.core.domain.model.TaskAssigneeBody;
|
||||
@ -30,10 +31,7 @@ import org.dromara.common.mybatis.helper.DataBaseHelper;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.system.domain.*;
|
||||
import org.dromara.system.domain.bo.SysUserBo;
|
||||
import org.dromara.system.domain.vo.SysPostVo;
|
||||
import org.dromara.system.domain.vo.SysRoleVo;
|
||||
import org.dromara.system.domain.vo.SysUserExportVo;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.domain.vo.*;
|
||||
import org.dromara.system.mapper.*;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
@ -706,18 +704,14 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据角色列表查询用户信息。
|
||||
* 查询并返回任务指派的列表,支持分页
|
||||
*
|
||||
* @param taskQuery 包含查询条件的请求体对象,包含分页参数、权限编码、权限名称、时间范围等信息。
|
||||
* @return 返回包含查询结果的 `TaskAssigneeDTO` 对象,其中包含符合条件的总记录数和处理人列表。
|
||||
* @param taskQuery 查询条件
|
||||
* @return 办理人
|
||||
*/
|
||||
@Override
|
||||
public TaskAssigneeDTO selectUsersByRoleList(TaskAssigneeBody taskQuery) {
|
||||
// 创建分页查询对象,并设置分页大小和页码
|
||||
PageQuery pageQuery = new PageQuery();
|
||||
pageQuery.setPageSize(taskQuery.getPageSize());
|
||||
pageQuery.setPageNum(taskQuery.getPageNum());
|
||||
|
||||
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
|
||||
// 使用 LambdaQueryWrapper 构建查询条件
|
||||
LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<SysRole>()
|
||||
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysRole::getRoleKey, taskQuery.getHandlerCode())
|
||||
@ -735,4 +729,95 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
return new TaskAssigneeDTO(page.getTotal(), handlers);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询并返回任务指派的列表,支持分页
|
||||
*
|
||||
* @param taskQuery 查询条件
|
||||
* @return 办理人
|
||||
*/
|
||||
@Override
|
||||
public TaskAssigneeDTO selectUsersByUserList(TaskAssigneeBody taskQuery) {
|
||||
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
|
||||
// 使用 LambdaQueryWrapper 构建查询条件
|
||||
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<SysUser>()
|
||||
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysUser::getUserName, taskQuery.getHandlerCode())
|
||||
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysUser::getNickName, taskQuery.getHandlerName())
|
||||
.eq(StringUtils.isNotBlank(taskQuery.getGroupId()), SysUser::getDeptId, taskQuery.getGroupId())
|
||||
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
|
||||
SysUser::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime());
|
||||
|
||||
// 执行分页查询,并将查询结果封装为 SysUserVo 对象的 Page
|
||||
Page<SysUserVo> page = baseMapper.selectVoPage(pageQuery.build(), wrapper);
|
||||
|
||||
// 使用封装的字段映射方法进行转换
|
||||
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
|
||||
SysUserVo::getUserId, SysUserVo::getUserName, SysUserVo::getNickName, SysUserVo::getDeptName, SysUserVo::getCreateTime);
|
||||
|
||||
return new TaskAssigneeDTO(page.getTotal(), handlers);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询并返回任务指派的列表,支持分页
|
||||
*
|
||||
* @param taskQuery 查询条件
|
||||
* @return 办理人
|
||||
*/
|
||||
@Override
|
||||
public TaskAssigneeDTO selectUsersByDeptList(TaskAssigneeBody taskQuery) {
|
||||
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
|
||||
// 使用 LambdaQueryWrapper 构建查询条件
|
||||
LambdaQueryWrapper<SysDept> wrapper = new LambdaQueryWrapper<SysDept>()
|
||||
.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());
|
||||
|
||||
// 执行分页查询,并将查询结果封装为 SysDeptVo 对象的 Page
|
||||
Page<SysDeptVo> page = deptMapper.selectVoPage(pageQuery.build(), wrapper);
|
||||
|
||||
// 使用封装的字段映射方法进行转换
|
||||
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
|
||||
SysDeptVo::getDeptId, SysDeptVo::getDeptCategory, SysDeptVo::getDeptName, null, SysDeptVo::getCreateTime);
|
||||
|
||||
return new TaskAssigneeDTO(page.getTotal(), handlers);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询部门
|
||||
*
|
||||
* @return 部门列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeptDTO> selectUsersByDeptList() {
|
||||
List<SysDeptVo> list = deptMapper.selectVoList();
|
||||
return BeanUtil.copyToList(list, DeptDTO.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询并返回任务指派的列表,支持分页
|
||||
*
|
||||
* @param taskQuery 查询条件
|
||||
* @return 办理人
|
||||
*/
|
||||
@Override
|
||||
public TaskAssigneeDTO selectUsersByPostList(TaskAssigneeBody taskQuery) {
|
||||
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum());
|
||||
// 使用 LambdaQueryWrapper 构建查询条件
|
||||
LambdaQueryWrapper<SysPost> wrapper = new LambdaQueryWrapper<SysPost>()
|
||||
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysPost::getPostCategory, taskQuery.getHandlerCode())
|
||||
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysPost::getPostName, taskQuery.getHandlerName())
|
||||
.like(StringUtils.isNotBlank(taskQuery.getGroupId()), SysPost::getDeptId, taskQuery.getGroupId())
|
||||
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()),
|
||||
SysPost::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime());
|
||||
|
||||
// 执行分页查询,并将查询结果封装为 SysPostVo 对象的 Page
|
||||
Page<SysPostVo> page = postMapper.selectVoPage(pageQuery.build(), wrapper);
|
||||
|
||||
// 使用封装的字段映射方法进行转换
|
||||
List<TaskAssigneeDTO.TaskHandler> handlers = TaskAssigneeDTO.convertToHandlerList(page.getRecords(),
|
||||
SysPostVo::getPostId, SysPostVo::getPostCategory, SysPostVo::getPostName, SysPostVo::getDeptName, SysPostVo::getCreateTime);
|
||||
|
||||
return new TaskAssigneeDTO(page.getTotal(), handlers);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,10 +3,12 @@ package org.dromara.workflow.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.warm.flow.ui.dto.HandlerFunDto;
|
||||
import com.warm.flow.ui.dto.HandlerQuery;
|
||||
import com.warm.flow.ui.dto.TreeFunDto;
|
||||
import com.warm.flow.ui.service.HandlerSelectService;
|
||||
import com.warm.flow.ui.vo.HandlerSelectVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.service.UserService;
|
||||
@ -14,10 +16,9 @@ import org.dromara.common.core.utils.DateUtils;
|
||||
import org.dromara.workflow.common.enums.TaskAssigneeEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.dromara.workflow.common.enums.TaskAssigneeEnum.ROLE;
|
||||
|
||||
/**
|
||||
* 流程设计器-获取办理人权限设置列表
|
||||
*
|
||||
@ -40,7 +41,7 @@ public class WfTaskAssigneeServiceImpl implements HandlerSelectService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户列表, 同时构建左侧部门树状结构
|
||||
* 获取办理列表, 同时构建左侧部门树状结构
|
||||
*
|
||||
* @param query 查询条件
|
||||
* @return HandlerSelectVo
|
||||
@ -49,77 +50,39 @@ public class WfTaskAssigneeServiceImpl implements HandlerSelectService {
|
||||
public HandlerSelectVo getHandlerSelect(HandlerQuery query) {
|
||||
TaskAssigneeEnum type = TaskAssigneeEnum.fromDesc(query.getHandlerType());
|
||||
TaskAssigneeBody taskQuery = BeanUtil.toBean(query, TaskAssigneeBody.class);
|
||||
List<DeptDTO> depts = new ArrayList<>();
|
||||
TaskAssigneeDTO dto = new TaskAssigneeDTO();
|
||||
if (TaskAssigneeEnum.USER == type) {
|
||||
// 处理用户相关的业务逻辑
|
||||
} else if (ROLE == type) {
|
||||
dto = userService.selectUsersByUserList(taskQuery);
|
||||
depts = userService.selectUsersByDeptList();
|
||||
} else if (TaskAssigneeEnum.ROLE == type) {
|
||||
// 处理角色相关的业务逻辑
|
||||
dto = userService.selectUsersByRoleList(taskQuery);
|
||||
} else if (TaskAssigneeEnum.DEPT == type) {
|
||||
// 处理部门相关的业务逻辑
|
||||
dto = userService.selectUsersByDeptList(taskQuery);
|
||||
} else if (TaskAssigneeEnum.POST == type) {
|
||||
// 处理岗位相关的业务逻辑
|
||||
dto = userService.selectUsersByPostList(taskQuery);
|
||||
depts = userService.selectUsersByDeptList();
|
||||
}
|
||||
|
||||
// 业务系统机构,转成组件内部左侧树列表能够显示的数据
|
||||
TreeFunDto<DeptDTO> treeFunDto = new TreeFunDto<>(depts)
|
||||
.setId(dept -> String.valueOf(dept.getDeptId()))
|
||||
.setName(DeptDTO::getDeptName)
|
||||
.setParentId(dept -> String.valueOf(dept.getParentId()));
|
||||
|
||||
// 业务系统数据,转成组件内部能够显示的数据, total是业务数据总数,用于分页显示
|
||||
HandlerFunDto<TaskAssigneeDTO.TaskHandler> handlerFunDto = new HandlerFunDto<>(dto.getList(), dto.getTotal())
|
||||
.setStorageId(assignee -> ROLE.getCode() + assignee.getStorageId())
|
||||
.setStorageId(assignee -> type.getCode() + assignee.getStorageId())
|
||||
.setHandlerCode(TaskAssigneeDTO.TaskHandler::getHandlerCode)
|
||||
.setHandlerName(TaskAssigneeDTO.TaskHandler::getHandlerName)
|
||||
.setGroupName(TaskAssigneeDTO.TaskHandler::getGroupName)
|
||||
.setCreateTime(assignee -> DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, assignee.getCreateTime()));
|
||||
return getHandlerSelectVo(handlerFunDto);
|
||||
|
||||
return getHandlerSelectVo(handlerFunDto, treeFunDto);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 获取用户列表
|
||||
// *
|
||||
// * @param query 查询条件
|
||||
// * @return HandlerSelectVo
|
||||
// */
|
||||
// private HandlerSelectVo getDept(HandlerQuery query) {
|
||||
// // 查询部门列表
|
||||
// List<SysDept> deptList = userService.selectDeptList(sysDept);
|
||||
// long total = new PageInfo<>(deptList).getTotal();
|
||||
//
|
||||
// // 业务系统数据,转成组件内部能够显示的数据, total是业务数据总数,用于分页显示
|
||||
// HandlerFunDto<SysDept> handlerFunDto = new HandlerFunDto<>(deptList, total)
|
||||
// .setStorageId(dept -> "dept:" + dept.getDeptId()) // 前面拼接dept: 是为了防止用户、部门的主键重复
|
||||
// .setHandlerName(SysDept::getDeptName) // 权限名称
|
||||
// .setCreateTime(dept -> DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, dept.getCreateTime()));
|
||||
//
|
||||
// return getHandlerSelectVo(handlerFunDto);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 获取用户列表, 同时构建左侧部门树状结构
|
||||
// *
|
||||
// * @param query 查询条件
|
||||
// * @return HandlerSelectVo
|
||||
// */
|
||||
// private HandlerSelectVo getUser(HandlerQuery query) {
|
||||
// ......
|
||||
// // 查询用户列表
|
||||
// List<SysUser> userList = userService.selectUserList(sysUser);
|
||||
// long total = new PageInfo<>(userList).getTotal();
|
||||
// // 查询部门列表,构建树状结构
|
||||
// List<SysDept> deptList = deptMapper.selectDeptList(new SysDept());
|
||||
//
|
||||
// // 业务系统数据,转成组件内部能够显示的数据, total是业务数据总数,用于分页显示
|
||||
// HandlerFunDto<SysUser> handlerFunDto = new HandlerFunDto<>(userList, total)
|
||||
// .setStorageId(user -> user.getUserId().toString())
|
||||
// .setHandlerCode(SysUser::getUserName) // 权限编码
|
||||
// .setHandlerName(SysUser::getNickName) // 权限名称
|
||||
// .setCreateTime(user -> DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, user.getCreateTime()))
|
||||
// .setGroupName(user -> user.getDept() != null ? user.getDept().getDeptName() : "");
|
||||
//
|
||||
// // 业务系统机构,转成组件内部左侧树列表能够显示的数据
|
||||
// TreeFunDto<SysDept> treeFunDto = new TreeFunDto<>(deptList)
|
||||
// .setId(dept -> dept.getDeptId().toString()) // 左侧树ID
|
||||
// .setName(SysDept::getDeptName) // 左侧树名称
|
||||
// .setParentId(dept -> dept.getParentId().toString()); // 左侧树父级ID
|
||||
//
|
||||
// return getHandlerSelectVo(handlerFunDto, treeFunDto);
|
||||
// }
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user