From d55524789a815fc48a74c36ebb2cfcfcf2b21804 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Mon, 23 Sep 2024 14:26:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=B7=AE=E7=94=B3=E8=AF=B7=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BC=98=E5=8C=96=EF=BC=9A=E6=94=AF=E6=8C=81=E5=A4=9A?= =?UTF-8?q?=E9=9A=8F=E8=A1=8C=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构出差申请模块,支持指定多个随行人。修改了BpmOAEvectionCreateReqVO和BpmOAEvectionDO中的字段,将单个随行人用户ID调整为用户ID集合。更新了BpmOAEvectionController中的逻辑,以处理多随行人的情况,包括从集合中转换和合并用户名称。 --- .../admin/oa/BpmOAEvectionController.java | 17 +++++++++++------ .../vo/evection/BpmOAEvectionCreateReqVO.java | 3 ++- .../oa/vo/evection/BpmOAEvectionRespVO.java | 3 ++- .../bpm/dal/dataobject/oa/BpmOAEvectionDO.java | 7 +++++-- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java index 87032694..a5d23909 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa; +import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.evection.BpmOAEvectionCreateReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.evection.BpmOAEvectionRespVO; @@ -17,7 +18,11 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.List; +import java.util.stream.Collectors; + import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; /** @@ -54,9 +59,9 @@ public class BpmOAEvectionController { BpmOAEvectionRespVO respVO = BpmOAEvectionConvert.INSTANCE.convert(evection); - if (evection.getTogetherUserId() != null) { - AdminUserRespDTO userRespDTO = userApi.getUser(evection.getTogetherUserId()).getCheckedData(); - respVO.setTogetherUserName(userRespDTO.getNickname()); + if (CollectionUtil.isNotEmpty(evection.getTogetherUserIds())) { + List userRespDTOs = userApi.getUserList(respVO.getTogetherUserIds()).getCheckedData(); + respVO.setTogetherUserName(String.join("、", convertList(userRespDTOs, AdminUserRespDTO::getNickname))); } return success(respVO); @@ -71,9 +76,9 @@ public class BpmOAEvectionController { BpmOAEvectionRespVO respVO = BpmOAEvectionConvert.INSTANCE.convert(evection); - if (evection.getTogetherUserId() != null) { - AdminUserRespDTO userRespDTO = userApi.getUser(evection.getTogetherUserId()).getCheckedData(); - respVO.setTogetherUserName(userRespDTO.getNickname()); + if (CollectionUtil.isNotEmpty(evection.getTogetherUserIds())) { + List userRespDTOs = userApi.getUserList(evection.getTogetherUserIds()).getCheckedData(); + respVO.setTogetherUserName(String.join("、", convertList(userRespDTOs, AdminUserRespDTO::getNickname))); } 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/evection/BpmOAEvectionCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java index 6f11302f..f73ff020 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java @@ -11,6 +11,7 @@ import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Set; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -30,7 +31,7 @@ public class BpmOAEvectionCreateReqVO { private String reason; @Schema(description = "随行人用户编号") - private Long togetherUserId; + private Set togetherUserIds; @Schema(description = "出差起点", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "出差起点不能为空") diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionRespVO.java index b62c17ea..0e882979 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionRespVO.java @@ -12,6 +12,7 @@ import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Set; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -29,7 +30,7 @@ public class BpmOAEvectionRespVO extends BpmOABaseRespVO { private String reason; @Schema(description = "随行人用户编号") - private Long togetherUserId; + private Set togetherUserIds; @Schema(description = "随行人用户名称") private String togetherUserName; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEvectionDO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEvectionDO.java index 10d2006d..08b8bbbe 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEvectionDO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOAEvectionDO.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.dal.dataobject.oa; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.common.pojo.UploadUserFile; +import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -12,6 +13,7 @@ import lombok.*; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Set; /** * OA 出差申请 DO @@ -48,9 +50,10 @@ public class BpmOAEvectionDO extends BaseDO { private String reason; /** - * 随行人用户编号 + * 随行人用户编号组 */ - private Long togetherUserId; + @TableField(typeHandler = JsonLongSetTypeHandler.class) + private Set togetherUserIds; /** * 出差地点 起点