From fcd1e83e6f9c11ac1f124d0059fba7299ad01a13 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Wed, 14 Sep 2022 23:45:06 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.2.5=E3=80=91=E3=80=90org=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=BB=84=E7=BB=87=E6=9C=BA=E6=9E=84=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E5=AE=A1=E6=89=B9=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/HrOrgApproverController.java | 8 +-- .../pojo/request/HrOrgApproverRequest.java | 11 +++- .../service/HrOrgApproverService.java | 2 +- .../impl/HrOrgApproverServiceImpl.java | 54 +++++++++++++++++-- 4 files changed, 65 insertions(+), 10 deletions(-) diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrgApproverController.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrgApproverController.java index 200e2f9c7..57ce781eb 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrgApproverController.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrgApproverController.java @@ -40,14 +40,14 @@ public class HrOrgApproverController { } /** - * 添加 + * 更新组织机构绑定审批人 * * @author fengshuonan * @date 2022/09/13 23:15 */ - @PostResource(name = "添加", path = "/hrOrgApprover/add") - public ResponseData add(@RequestBody @Validated(HrOrgApproverRequest.add.class) HrOrgApproverRequest hrOrgApproverRequest) { - hrOrgApproverService.add(hrOrgApproverRequest); + @PostResource(name = "更新组织机构绑定审批人", path = "/hrOrgApprover/bindUserList") + public ResponseData bindUserList(@RequestBody @Validated(HrOrgApproverRequest.add.class) HrOrgApproverRequest hrOrgApproverRequest) { + hrOrgApproverService.bindUserList(hrOrgApproverRequest); return new SuccessResponseData<>(); } diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/pojo/request/HrOrgApproverRequest.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/pojo/request/HrOrgApproverRequest.java index ee44e12b7..d29aec500 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/pojo/request/HrOrgApproverRequest.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/pojo/request/HrOrgApproverRequest.java @@ -5,7 +5,9 @@ import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.util.List; /** * 组织机构审批人封装类 @@ -34,7 +36,7 @@ public class HrOrgApproverRequest extends BaseRequest { * 组织机构id */ @ChineseDescription("组织机构id") - @NotNull(message = "组织机构id不能为空", groups = list.class) + @NotNull(message = "组织机构id不能为空", groups = {list.class, add.class}) private Long orgId; /** @@ -43,4 +45,11 @@ public class HrOrgApproverRequest extends BaseRequest { @ChineseDescription("用户id") private Long userId; + /** + * 用户id集合,一般用在绑定多个用户 + */ + @ChineseDescription("用户id集合") + @NotEmpty(message = "用户id集合不能为空", groups = {add.class}) + private List userIdList; + } diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrOrgApproverService.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrOrgApproverService.java index 3e121ffe8..0d46db803 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrOrgApproverService.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrOrgApproverService.java @@ -21,7 +21,7 @@ public interface HrOrgApproverService extends IService { * @author fengshuonan * @date 2022/09/13 23:15 */ - void add(HrOrgApproverRequest hrOrgApproverRequest); + void bindUserList(HrOrgApproverRequest hrOrgApproverRequest); /** * 删除 diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrgApproverServiceImpl.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrgApproverServiceImpl.java index ca3951235..5d149b702 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrgApproverServiceImpl.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrgApproverServiceImpl.java @@ -35,10 +35,56 @@ public class HrOrgApproverServiceImpl extends ServiceImpl needToBindUsers = hrOrgApproverRequest.getUserIdList(); + + // 获取改组织下,该种类型已经绑定的人 + LambdaQueryWrapper hrOrgApproverLambdaQueryWrapper = new LambdaQueryWrapper<>(); + hrOrgApproverLambdaQueryWrapper.eq(HrOrgApprover::getOrgId, orgId); + hrOrgApproverLambdaQueryWrapper.eq(HrOrgApprover::getOrgApproverType, orgApproverType); + List alreadyBindUsers = this.list(hrOrgApproverLambdaQueryWrapper); + + // 如果已绑定的用户是空的,则直接绑定参数的userList + if (ObjectUtil.isEmpty(alreadyBindUsers)) { + ArrayList tempApprovers = new ArrayList<>(); + for (Long userId : needToBindUsers) { + HrOrgApprover hrOrgApprover = new HrOrgApprover(); + hrOrgApprover.setOrgId(orgId); + hrOrgApprover.setOrgApproverType(orgApproverType); + hrOrgApprover.setUserId(userId); + tempApprovers.add(hrOrgApprover); + } + this.saveBatch(tempApprovers); + } + + // 如果有已经绑定的人,则需要判断请求参数中的人是否已经包含在内,包含在内则不用从新绑定 + List alreadyBindUserIdList = alreadyBindUsers.stream().map(HrOrgApprover::getUserId).collect(Collectors.toList()); + ArrayList tempApprovers = new ArrayList<>(); + for (Long needToBindUserId : needToBindUsers) { + boolean needToAdd = true; + for (Long tempUserId : alreadyBindUserIdList) { + if (tempUserId.equals(needToBindUserId)) { + needToAdd = false; + break; + } + } + if (needToAdd) { + HrOrgApprover hrOrgApprover = new HrOrgApprover(); + hrOrgApprover.setOrgApproverId(orgId); + hrOrgApprover.setOrgApproverType(orgApproverType); + hrOrgApprover.setUserId(needToBindUserId); + tempApprovers.add(hrOrgApprover); + } + this.saveBatch(tempApprovers); + } } @Override