From a3bce5367ec4fcb666efb2d61b036995c7eac142 Mon Sep 17 00:00:00 2001 From: zhanghonghao Date: Wed, 12 Mar 2025 16:23:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3714):=20=E5=A4=84=E7=90=86=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=86=85=E5=B7=A5=E4=BA=BA=E9=80=80=E5=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/NodeUserFoundationServiceImpl.java | 14 +++++++++++--- .../impl/OrgUserFoundationServiceImpl.java | 3 +++ .../foundation/req/OrgUserWithdrawOrQuitReq.java | 2 ++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/nodeuser/foundation/impl/NodeUserFoundationServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/nodeuser/foundation/impl/NodeUserFoundationServiceImpl.java index 6ec91db..ede35b9 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/nodeuser/foundation/impl/NodeUserFoundationServiceImpl.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/nodeuser/foundation/impl/NodeUserFoundationServiceImpl.java @@ -170,7 +170,7 @@ public class NodeUserFoundationServiceImpl implements NodeUserFoundationService List nodeUserIds = req.stream().map(NodeUserUpdate::getId).collect(Collectors.toList()); List dbNodeUsers = nodeUserQueryRepository.list(NodeUserQueryRepository.ListReq.builder() .ids(nodeUserIds).build()); - Axssert.checkNotEmpty(dbNodeUsers,"部门人员不存在 {}",nodeUserIds); + Axssert.checkNotEmpty(dbNodeUsers, "部门人员不存在 {}", nodeUserIds); List updateReqs = BeanUtil.copyToList(req, NodeUserUpsertRepository.UpdateReq.class); return nodeUserUpsertRepository.updateBatchById(updateReqs); @@ -188,6 +188,8 @@ public class NodeUserFoundationServiceImpl implements NodeUserFoundationService if (CollUtil.isEmpty(list)) { return CollUtil.newArrayList(); } + Map> ouPersonIdsMap = list.stream().collect(Collectors.groupingBy(NodeUserQueryRepository.NodeUserResp::getOrganizationalUnitId, + Collectors.mapping(OrganizationalNodeUser::getPersonId, Collectors.toSet()))); //批量删除node_user nodeUserUpsertRepository.batchDelete(list.stream().map(NodeUserQueryRepository.NodeUserResp::getId).collect(Collectors.toSet())); List 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(); quitReq.setUnitUpdate(req.isUnitDelete()); quitReq.setWorkspaceId(req.getWorkspaceId()); + quitReq.setTopNodeIdAndPersonIds(quitMap); if (req.isUnitDelete()) { quitReq.setOuId(req.getOuId()); quitReq.setWorkspaceId(nodeUserList.get(0).getWorkspaceId()); + orgUserFoundationService.batchWithdrawOrQuit(quitReq); + } else { + for (Map.Entry> unitPersonIds : ouPersonIdsMap.entrySet()) { + quitReq.setOuId(unitPersonIds.getKey()); + quitReq.setPersonIds(unitPersonIds.getValue()); + orgUserFoundationService.batchWithdrawOrQuit(quitReq); + } } - quitReq.setTopNodeIdAndPersonIds(quitMap); - orgUserFoundationService.batchWithdrawOrQuit(quitReq); //项目内工人退场 OrgProjectWorkerWithdrawReq workerReq = new OrgProjectWorkerWithdrawReq(); diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/foundation/impl/OrgUserFoundationServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/foundation/impl/OrgUserFoundationServiceImpl.java index 31f6c02..921f729 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/foundation/impl/OrgUserFoundationServiceImpl.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/foundation/impl/OrgUserFoundationServiceImpl.java @@ -60,6 +60,9 @@ public class OrgUserFoundationServiceImpl implements OrgUserFoundationService { listOrgUserReq.setWorkspaceId(req.getWorkspaceId()); Set personIds = req.getTopNodeIdAndPersonIds().values().stream().flatMap(Set::stream).collect(Collectors.toSet()); listOrgUserReq.setPersonIds(personIds); + if (CollUtil.isNotEmpty(req.getPersonIds())) { + listOrgUserReq.setPersonIds(req.getPersonIds()); + } List list = orgUserQueryRepository.list(listOrgUserReq); if (CollUtil.isEmpty(list)) { return; diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/foundation/req/OrgUserWithdrawOrQuitReq.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/foundation/req/OrgUserWithdrawOrQuitReq.java index 4745578..a4ee7d8 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/foundation/req/OrgUserWithdrawOrQuitReq.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/foundation/req/OrgUserWithdrawOrQuitReq.java @@ -18,6 +18,8 @@ public class OrgUserWithdrawOrQuitReq { private Map> topNodeIdAndPersonIds; + private Set personIds; + /** * 是否单位更新 */