fix: 流程中工作组选人接口搜不到人
This commit is contained in:
+8
-51
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user