feat(REQ-3714): 处理项目内工人退场

This commit is contained in:
zhanghonghao 2025-03-12 16:23:58 +08:00
parent 25e1513168
commit a3bce5367e
3 changed files with 16 additions and 3 deletions

View File

@ -170,7 +170,7 @@ public class NodeUserFoundationServiceImpl implements NodeUserFoundationService
List<Long> nodeUserIds = req.stream().map(NodeUserUpdate::getId).collect(Collectors.toList()); List<Long> nodeUserIds = req.stream().map(NodeUserUpdate::getId).collect(Collectors.toList());
List<NodeUserQueryRepository.NodeUserResp> dbNodeUsers = nodeUserQueryRepository.list(NodeUserQueryRepository.ListReq.builder() List<NodeUserQueryRepository.NodeUserResp> dbNodeUsers = nodeUserQueryRepository.list(NodeUserQueryRepository.ListReq.builder()
.ids(nodeUserIds).build()); .ids(nodeUserIds).build());
Axssert.checkNotEmpty(dbNodeUsers,"部门人员不存在 {}",nodeUserIds); Axssert.checkNotEmpty(dbNodeUsers, "部门人员不存在 {}", nodeUserIds);
List<NodeUserUpsertRepository.UpdateReq> updateReqs = BeanUtil.copyToList(req, NodeUserUpsertRepository.UpdateReq.class); List<NodeUserUpsertRepository.UpdateReq> updateReqs = BeanUtil.copyToList(req, NodeUserUpsertRepository.UpdateReq.class);
return nodeUserUpsertRepository.updateBatchById(updateReqs); return nodeUserUpsertRepository.updateBatchById(updateReqs);
@ -188,6 +188,8 @@ public class NodeUserFoundationServiceImpl implements NodeUserFoundationService
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList(); return CollUtil.newArrayList();
} }
Map<Long, Set<Long>> ouPersonIdsMap = list.stream().collect(Collectors.groupingBy(NodeUserQueryRepository.NodeUserResp::getOrganizationalUnitId,
Collectors.mapping(OrganizationalNodeUser::getPersonId, Collectors.toSet())));
//批量删除node_user //批量删除node_user
nodeUserUpsertRepository.batchDelete(list.stream().map(NodeUserQueryRepository.NodeUserResp::getId).collect(Collectors.toSet())); nodeUserUpsertRepository.batchDelete(list.stream().map(NodeUserQueryRepository.NodeUserResp::getId).collect(Collectors.toSet()));
List<OrganizationalNodeUser> nodeUserList = list.stream().map(e -> BeanUtil.toBean(e, OrganizationalNodeUser.class)).collect(Collectors.toList()); List<OrganizationalNodeUser> nodeUserList = list.stream().map(e -> BeanUtil.toBean(e, OrganizationalNodeUser.class)).collect(Collectors.toList());
@ -199,12 +201,18 @@ public class NodeUserFoundationServiceImpl implements NodeUserFoundationService
OrgUserWithdrawOrQuitReq quitReq = new OrgUserWithdrawOrQuitReq(); OrgUserWithdrawOrQuitReq quitReq = new OrgUserWithdrawOrQuitReq();
quitReq.setUnitUpdate(req.isUnitDelete()); quitReq.setUnitUpdate(req.isUnitDelete());
quitReq.setWorkspaceId(req.getWorkspaceId()); quitReq.setWorkspaceId(req.getWorkspaceId());
quitReq.setTopNodeIdAndPersonIds(quitMap);
if (req.isUnitDelete()) { if (req.isUnitDelete()) {
quitReq.setOuId(req.getOuId()); quitReq.setOuId(req.getOuId());
quitReq.setWorkspaceId(nodeUserList.get(0).getWorkspaceId()); quitReq.setWorkspaceId(nodeUserList.get(0).getWorkspaceId());
orgUserFoundationService.batchWithdrawOrQuit(quitReq);
} else {
for (Map.Entry<Long, Set<Long>> unitPersonIds : ouPersonIdsMap.entrySet()) {
quitReq.setOuId(unitPersonIds.getKey());
quitReq.setPersonIds(unitPersonIds.getValue());
orgUserFoundationService.batchWithdrawOrQuit(quitReq);
}
} }
quitReq.setTopNodeIdAndPersonIds(quitMap);
orgUserFoundationService.batchWithdrawOrQuit(quitReq);
//项目内工人退场 //项目内工人退场
OrgProjectWorkerWithdrawReq workerReq = new OrgProjectWorkerWithdrawReq(); OrgProjectWorkerWithdrawReq workerReq = new OrgProjectWorkerWithdrawReq();

View File

@ -60,6 +60,9 @@ public class OrgUserFoundationServiceImpl implements OrgUserFoundationService {
listOrgUserReq.setWorkspaceId(req.getWorkspaceId()); listOrgUserReq.setWorkspaceId(req.getWorkspaceId());
Set<Long> personIds = req.getTopNodeIdAndPersonIds().values().stream().flatMap(Set::stream).collect(Collectors.toSet()); Set<Long> personIds = req.getTopNodeIdAndPersonIds().values().stream().flatMap(Set::stream).collect(Collectors.toSet());
listOrgUserReq.setPersonIds(personIds); listOrgUserReq.setPersonIds(personIds);
if (CollUtil.isNotEmpty(req.getPersonIds())) {
listOrgUserReq.setPersonIds(req.getPersonIds());
}
List<OrgUserQueryRepository.OrgUserResp> list = orgUserQueryRepository.list(listOrgUserReq); List<OrgUserQueryRepository.OrgUserResp> list = orgUserQueryRepository.list(listOrgUserReq);
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
return; return;

View File

@ -18,6 +18,8 @@ public class OrgUserWithdrawOrQuitReq {
private Map<Long, Set<Long>> topNodeIdAndPersonIds; private Map<Long, Set<Long>> topNodeIdAndPersonIds;
private Set<Long> personIds;
/** /**
* 是否单位更新 * 是否单位更新
*/ */