From b29eb854c188531665b9b5c893570504a42c4264 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Thu, 5 Dec 2024 10:35:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(bpm):=20=E5=A2=9E=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=9B=A2=E9=98=9F=E6=88=90=E5=91=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在项目创建请求和响应对象中添加团队成员字段 - 更新项目详情接口,支持显示团队成员名称 - 优化项目查询接口,改进部门参与条件 --- .../admin/oa/BpmOAProjectController.java | 22 +++++++++---------- .../vo/project/BpmOAProjectCreateReqVO.java | 3 +++ .../oa/vo/project/BpmOAProjectRespVO.java | 6 +++++ .../bpm/dal/dataobject/oa/BpmOAProjectDO.java | 6 +++++ 4 files changed, 26 insertions(+), 11 deletions(-) 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; + /** * 项目开始日期 */