【7.2.5】【org】更新组织机构绑定审批人

pull/37/head
fengshuonan 2022-09-14 23:45:06 +08:00
parent 967698bdae
commit fcd1e83e6f
4 changed files with 65 additions and 10 deletions

View File

@ -40,14 +40,14 @@ public class HrOrgApproverController {
}
/**
*
*
*
* @author fengshuonan
* @date 2022/09/13 23:15
*/
@PostResource(name = "添加", path = "/hrOrgApprover/add")
public ResponseData<HrOrgApprover> add(@RequestBody @Validated(HrOrgApproverRequest.add.class) HrOrgApproverRequest hrOrgApproverRequest) {
hrOrgApproverService.add(hrOrgApproverRequest);
@PostResource(name = "更新组织机构绑定审批人", path = "/hrOrgApprover/bindUserList")
public ResponseData<HrOrgApprover> bindUserList(@RequestBody @Validated(HrOrgApproverRequest.add.class) HrOrgApproverRequest hrOrgApproverRequest) {
hrOrgApproverService.bindUserList(hrOrgApproverRequest);
return new SuccessResponseData<>();
}

View File

@ -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<Long> userIdList;
}

View File

@ -21,7 +21,7 @@ public interface HrOrgApproverService extends IService<HrOrgApprover> {
* @author fengshuonan
* @date 2022/09/13 23:15
*/
void add(HrOrgApproverRequest hrOrgApproverRequest);
void bindUserList(HrOrgApproverRequest hrOrgApproverRequest);
/**
*

View File

@ -35,10 +35,56 @@ public class HrOrgApproverServiceImpl extends ServiceImpl<HrOrgApproverMapper, H
private UserServiceApi userServiceApi;
@Override
public void add(HrOrgApproverRequest hrOrgApproverRequest) {
HrOrgApprover hrOrgApprover = new HrOrgApprover();
BeanUtil.copyProperties(hrOrgApproverRequest, hrOrgApprover);
this.save(hrOrgApprover);
public void bindUserList(HrOrgApproverRequest hrOrgApproverRequest) {
// 获取组织机构id
Long orgId = hrOrgApproverRequest.getOrgId();
// 获取绑定的审批人类型
Integer orgApproverType = hrOrgApproverRequest.getOrgApproverType();
// 获取需要绑定的用户列表
List<Long> needToBindUsers = hrOrgApproverRequest.getUserIdList();
// 获取改组织下,该种类型已经绑定的人
LambdaQueryWrapper<HrOrgApprover> hrOrgApproverLambdaQueryWrapper = new LambdaQueryWrapper<>();
hrOrgApproverLambdaQueryWrapper.eq(HrOrgApprover::getOrgId, orgId);
hrOrgApproverLambdaQueryWrapper.eq(HrOrgApprover::getOrgApproverType, orgApproverType);
List<HrOrgApprover> alreadyBindUsers = this.list(hrOrgApproverLambdaQueryWrapper);
// 如果已绑定的用户是空的则直接绑定参数的userList
if (ObjectUtil.isEmpty(alreadyBindUsers)) {
ArrayList<HrOrgApprover> 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<Long> alreadyBindUserIdList = alreadyBindUsers.stream().map(HrOrgApprover::getUserId).collect(Collectors.toList());
ArrayList<HrOrgApprover> 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