From ca0b8e1cf5b6592719ee80370c1ca723dc6ad21f Mon Sep 17 00:00:00 2001 From: liuyang Date: Tue, 7 Jan 2025 11:19:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:[REQ-3488]=20TreeUtil=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E5=88=B0dto=E5=8C=85=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/orgmanax/dto}/common/util/TreeUtil.java | 2 +- .../service/impl/CooperateShipServiceImpl.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) rename {orgmanax-common/src/main/java/cn/axzo/orgmanax => orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto}/common/util/TreeUtil.java (99%) diff --git a/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/util/TreeUtil.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/common/util/TreeUtil.java similarity index 99% rename from orgmanax-common/src/main/java/cn/axzo/orgmanax/common/util/TreeUtil.java rename to orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/common/util/TreeUtil.java index 9b159da..f19a606 100644 --- a/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/util/TreeUtil.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/common/util/TreeUtil.java @@ -1,4 +1,4 @@ -package cn.axzo.orgmanax.common.util; +package cn.axzo.orgmanax.dto.common.util; import cn.axzo.orgmanax.dto.common.IBaseTree; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/cooperateship/service/impl/CooperateShipServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/cooperateship/service/impl/CooperateShipServiceImpl.java index 1414042..0d77690 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/cooperateship/service/impl/CooperateShipServiceImpl.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/cooperateship/service/impl/CooperateShipServiceImpl.java @@ -34,6 +34,8 @@ import com.google.common.collect.ImmutableSet; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionTemplate; import java.util.*; import java.util.stream.Collectors; @@ -61,20 +63,22 @@ public class CooperateShipServiceImpl implements CooperateShipService { private final WorkspaceGateway workspaceGateway; private final EventProducer eventProducer; private final CooperateShipFoundationService cooperateShipFoundationService; - private final OrgJobFoundationService orgJobFoundationService; + private final TransactionTemplate transactionTemplate; + @Transactional @Override public SaasCooperateShip create(CreateOrgCooperateShipReq req) { + // node check OrganizationalNode node = nodeQueryRepository.oneOpt(NodeQueryRepository.OneReq.builder().id(req.getOrganizationalNodeId()).build()) .orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("部门不存在{}", req.getOrganizationalNodeId())); - -// OrganizationalNode node = nodeQueryRepository.one(NodeQueryRepository.OneReq.builder().id(req.getOrganizationalNodeId()).build()); - Axssert.check(node.isTopNode(), BizResultCode.INVALID_PARAM, "只有顶级节点才能添加协同关系"); + // workspace check WorkspaceDetailResp workspace = workspaceGateway.getDetail(WorkspaceDetailReq.builder().id(req.getWorkspaceId()).build()); Axssert.checkNonNull(workspace, "工作台不存在{}", req.getWorkspaceId()); + + // cooperate check SaasCooperateShip parentShip = null; if (!ALLOWED_TOP_COOPERATE_TYPES.contains(req.getCooperateType())) { Axssert.check(req.getParentId() > 0L, BizResultCode.INVALID_PARAM, "父级协同类型不能为空"); @@ -84,6 +88,7 @@ public class CooperateShipServiceImpl implements CooperateShipService { Axssert.check(Objects.equals(parentShip.getWorkspaceId(), req.getWorkspaceId()), BizResultCode.INVALID_PARAM, "父级协同部门和要加入部门不是同一个工作台"); } + // unit check UnitQueryRepository.UnitResp unit = unitQueryRepository.oneOpt(UnitQueryRepository.OneReq.builder() .id(node.getId()) .build()).orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("单位不存在{}", node.getOrganizationalUnitId())); @@ -102,6 +107,7 @@ public class CooperateShipServiceImpl implements CooperateShipService { .partnerShip(req.getPartnerShip()) .createBy(req.getOperatorId()) .build(); + SaasCooperateShip savedCooperateShip = cooperateShipUpsertRepository.create(cooperateShip); // update path