fix: 流程中工作组选人接口搜不到人

This commit is contained in:
2023-12-21 10:31:59 +08:00
parent 965106f254
commit a56601eeb2
@@ -7,6 +7,7 @@ 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.CommonConstant;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.sys.entity.LawsWorkingGroupUser;
@@ -59,56 +60,12 @@ public class UserController {
@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;
public Result<?> queryWorkGroupPageList(LawsWorkingGroupUser lawsWorkingGroupUser,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
lawsWorkingGroupUser.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
IPage<LawsWorkingGroupUser> pageList = workingGroupUserService.queryPage(lawsWorkingGroupUser, pageNo, pageSize, req);
workingGroupUserService.userAssignment(pageList.getRecords());
return Result.OK(pageList);
}
}