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 a82f7744..6120c571 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 @@ -65,30 +65,30 @@ public class BpmOAProjectController { BpmOAProjectRespVO respVO = BeanUtils.toBean(project, BpmOAProjectRespVO.class); if (respVO != null) { + // 获取项目中所有人员的用户编号列表 + Set userIds = respVO.getStaff() == null ? new HashSet<>() : respVO.getStaff(); + userIds.add(respVO.getDirectorUserId()); // 获取项目中所有部门编号列表 Set deptIds = respVO.getParticipationDept() == null ? new HashSet<>() : 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); diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/project/BpmOAProjectCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/project/BpmOAProjectCreateReqVO.java index d8fcfdc0..00355316 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/project/BpmOAProjectCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/project/BpmOAProjectCreateReqVO.java @@ -46,6 +46,9 @@ public class BpmOAProjectCreateReqVO { @NotNull(message = "责任人不能为空") private Long directorUserId; + @Schema(description = "团队成员") + private Set staff; + @Schema(description = "项目开始日期", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "项目开始日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/project/BpmOAProjectRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/project/BpmOAProjectRespVO.java index 7579630c..2045a40e 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/project/BpmOAProjectRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/project/BpmOAProjectRespVO.java @@ -51,6 +51,12 @@ public class BpmOAProjectRespVO extends BpmOABaseRespVO { @Schema(description = "责任人名称", requiredMode = Schema.RequiredMode.REQUIRED) private String directorUserName; + @Schema(description = "团队成员") + private Set staff; + + @Schema(description = "团队成员名称") + private String staffName; + @Schema(description = "项目开始日期", requiredMode = Schema.RequiredMode.REQUIRED) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDate startDate; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAProjectDO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAProjectDO.java index 09546518..1c55dc48 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAProjectDO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAProjectDO.java @@ -68,6 +68,12 @@ public class BpmOAProjectDO extends BaseDO { */ private Long directorUserId; + /** + * 参与人员 + */ + @TableField(typeHandler = JsonLongSetTypeHandler.class) + private Set staff; + /** * 项目开始日期 */