feat: 选人组件-工作组人员列表接口
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
package com.jero.modules.activiti.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.sys.entity.LawsWorkingGroupUser;
|
||||
import com.jero.modules.sys.service.ILawsWorkingGroupService;
|
||||
import com.jero.modules.sys.service.ILawsWorkingGroupUserService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysDepartService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/10/16 11:43
|
||||
* 流程中的选人组件接口
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@Api(tags = "工作流选人接口")
|
||||
@RequestMapping("/act/user")
|
||||
public class UserController {
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Resource
|
||||
private ISysDepartService sysDepartService;
|
||||
|
||||
@Resource
|
||||
private ILawsWorkingGroupUserService workingGroupUserService;
|
||||
|
||||
/**
|
||||
* 获取工作组用户列表数据
|
||||
*
|
||||
* @param user
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "工作流选人接口-工作组人员分页列表")
|
||||
@ApiOperation(value="工作流选人接口-工作组人员分页列表", notes="流程中心-工作组人员分页列表")
|
||||
@GetMapping("/workGroupPage")
|
||||
public Result<IPage<SysUser>> queryWorkGroupPageList(SysUser user,
|
||||
@RequestParam(name = "departId", required = false) String departId,
|
||||
@RequestParam(name = "roleId", required = false) String roleId,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
|
||||
Result<IPage<SysUser>> result = new Result<>();
|
||||
|
||||
// 处理手机号和邮箱,进行对应加密
|
||||
Map<String, String[]> parameterMap = req.getParameterMap();
|
||||
this.sysUserService.encryptReqMapData(parameterMap);
|
||||
user.setEmail(this.sysUserService.proceedEmailEncrypt(user.getEmail()));
|
||||
user.setPhone(this.sysUserService.proceedPhoneEncrypt(user.getPhone()));
|
||||
|
||||
LambdaQueryWrapper<LawsWorkingGroupUser> workingGroupUserWrapper = new LambdaQueryWrapper<>();
|
||||
workingGroupUserWrapper.eq(LawsWorkingGroupUser::getDelFlag, YesOrNoEnum.NO.getValue());
|
||||
List<String> worggroupUserIdList = Optional.ofNullable(workingGroupUserService.list(workingGroupUserWrapper))
|
||||
.map(list -> list.stream().map(LawsWorkingGroupUser::getUserId).collect(Collectors.toList()))
|
||||
.orElse(Collections.emptyList());
|
||||
|
||||
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, parameterMap);
|
||||
|
||||
// 获取内部工作组用户id集合
|
||||
queryWrapper.in("id", worggroupUserIdList);
|
||||
|
||||
Page<SysUser> page = new Page<>(pageNo, pageSize);
|
||||
List<String> subDepIds = null;
|
||||
if (StrUtil.isNotEmpty(departId)) {
|
||||
subDepIds = sysDepartService.getSubDepIdsByDepId(departId);
|
||||
}
|
||||
|
||||
IPage<SysUser> pageList = sysUserService.queryPage(page, subDepIds, roleId, queryWrapper);
|
||||
|
||||
//批量查询用户的所属部门
|
||||
//step.1 先拿到全部的 useids
|
||||
List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
|
||||
if (!userIds.isEmpty()) {
|
||||
//step.2 通过 useids,一次性查询用户的所属部门名字
|
||||
Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
|
||||
//step.3 通过 useids,一次性查询用户的角色名字
|
||||
Map<String, String> useRoleNames = sysUserService.getRoleNamesByUserIds(userIds);
|
||||
//step.4 遍历赋值
|
||||
pageList.getRecords().forEach(item -> {
|
||||
item.setOrgCodeTxt(useDepNames.get(item.getId()));
|
||||
item.setRoleTxt(useRoleNames.get(item.getId()));
|
||||
});
|
||||
}
|
||||
|
||||
result.setSuccess(true);
|
||||
result.setResult(pageList);
|
||||
log.info(pageList.toString());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user