diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProjectController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProjectController.java index 6120c571..3ec8bbb6 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProjectController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProjectController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.project.BpmOAProjectCreateReqVO; @@ -65,12 +66,18 @@ public class BpmOAProjectController { BpmOAProjectRespVO respVO = BeanUtils.toBean(project, BpmOAProjectRespVO.class); if (respVO != null) { + Set userIds = new HashSet<>(); // 获取项目中所有人员的用户编号列表 - Set userIds = respVO.getStaff() == null ? new HashSet<>() : respVO.getStaff(); + if (CollUtil.isNotEmpty(respVO.getStaff())) { + userIds.addAll(respVO.getStaff()); + } userIds.add(respVO.getDirectorUserId()); + Set deptIds = new HashSet<>(); // 获取项目中所有部门编号列表 - Set deptIds = respVO.getParticipationDept() == null ? new HashSet<>() : respVO.getParticipationDept(); + if (CollUtil.isNotEmpty(respVO.getParticipationDept())) { + deptIds.addAll(respVO.getParticipationDept()); + } deptIds.add(respVO.getResponsibleDept()); // 获取所有用户信息 @@ -104,29 +111,36 @@ public class BpmOAProjectController { if (respVO != null) { + Set userIds = new HashSet<>(); + // 获取项目中所有人员的用户编号列表 + if (CollUtil.isNotEmpty(respVO.getStaff())) { + userIds.addAll(respVO.getStaff()); + } + userIds.add(respVO.getDirectorUserId()); + + Set deptIds = new HashSet<>(); // 获取项目中所有部门编号列表 - Set deptIds = respVO.getParticipationDept() == null ? new HashSet<>() : respVO.getParticipationDept(); + if (CollUtil.isNotEmpty(respVO.getParticipationDept())) { + deptIds.addAll(respVO.getParticipationDept()); + } deptIds.add(respVO.getResponsibleDept()); // 获取所有用户信息 - AdminUserRespDTO userRespDTO = userApi.getUser(respVO.getDirectorUserId()).getCheckedData(); + Map userMap = userApi.getUserMap(userIds); // 获取所有部门信息 - List deptDOS = deptApi.getDeptList(deptIds).getCheckedData(); - Map deptMap = convertMap(deptDOS, DeptRespDTO::getId); + Map deptMap = deptApi.getDeptMap(deptIds); // 设置责任人名称 - respVO.setDirectorUserName(userRespDTO.getNickname()); - - // 筛选出不是责任人部门的部门信息 - List deptVOs = deptDOS.stream() - .filter(dept -> !dept.getId().equals(respVO.getResponsibleDept())) - .distinct() - .collect(Collectors.toList()); + respVO.setDirectorUserName(userMap.get(respVO.getDirectorUserId()).getNickname()); + // 设置项目人员名称 + userMap.remove(respVO.getDirectorUserId()); + respVO.setStaffName(userMap.values().stream().map(AdminUserRespDTO::getNickname).collect(Collectors.joining("、"))); // 设置责任部门名称 respVO.setResponsibleDeptName(deptMap.get(respVO.getResponsibleDept()).getName()); // 拼接参与部门名称 - respVO.setParticipationDeptName(deptVOs.stream().map(DeptRespDTO::getName).collect(Collectors.joining("、"))); + deptMap.remove(respVO.getResponsibleDept()); + respVO.setParticipationDeptName(deptMap.values().stream().map(DeptRespDTO::getName).collect(Collectors.joining("、"))); } return success(respVO);