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