From 17f8efb7d7583f7d573356617f5c34ad405d49ee Mon Sep 17 00:00:00 2001 From: liuyang Date: Fri, 13 Dec 2024 13:42:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:[REQ-3282]=20=E6=9A=82=E6=97=B6=E6=8F=90?= =?UTF-8?q?=E4=BA=A4,=E7=BC=96=E5=86=99=E5=8D=95=E4=BD=8D=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unit/service/dto/CreateUnitReq.java | 5 +++ .../unit/service/impl/UnitServiceImpl.java | 43 ++++++++++++++++--- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/dto/CreateUnitReq.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/dto/CreateUnitReq.java index 77f4484..437a961 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/dto/CreateUnitReq.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/dto/CreateUnitReq.java @@ -186,4 +186,9 @@ public class CreateUnitReq { */ private String cityName; + /** + * 操作人 + */ + private Long operatorId; + } diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/impl/UnitServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/impl/UnitServiceImpl.java index 79c30b6..b309a72 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/impl/UnitServiceImpl.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/impl/UnitServiceImpl.java @@ -1,10 +1,14 @@ package cn.axzo.orgmanax.server.unit.service.impl; import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.api.node.req.NodeProcessReq; import cn.axzo.orgmanax.api.unit.req.ListUnitReq; import cn.axzo.orgmanax.api.unit.resp.OrgUnitDTO; +import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNode; import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalUnit; import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository; +import cn.axzo.orgmanax.server.node.foundation.req.NodeCreate; +import cn.axzo.orgmanax.server.node.service.NodeService; import cn.axzo.orgmanax.server.unit.foundation.UnitFoundationService; import cn.axzo.orgmanax.server.unit.foundation.dto.UnitCreator; import cn.axzo.orgmanax.server.unit.service.UnitService; @@ -13,11 +17,11 @@ import cn.axzo.orgmanax.server.unit.service.dto.CreateUnitResp; import cn.axzo.orgmanax.server.unit.service.dto.UpdateUnitReq; import cn.axzo.orgmanax.server.unit.service.dto.UpdateUnitResp; import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; - -import static org.springframework.messaging.rsocket.RSocketStrategies.builder; +import org.springframework.transaction.support.TransactionTemplate; @Slf4j @RequiredArgsConstructor @@ -25,19 +29,44 @@ import static org.springframework.messaging.rsocket.RSocketStrategies.builder; public class UnitServiceImpl implements UnitService { private final UnitFoundationService unitFoundationService; + private final NodeService nodeService; private final UnitQueryRepository unitQueryRepository; - + private final TransactionTemplate transactionTemplate; @Override public CreateUnitResp create(CreateUnitReq req) { // 构建单位创建者 UnitCreator unitCreator = BeanUtil.copyProperties(req, UnitCreator.class); - // 创建单位 - OrganizationalUnit organizationalUnit = unitFoundationService.create(unitCreator); + return transactionTemplate.execute(r -> { + + // 创建单位 + OrganizationalUnit unit = unitFoundationService.create(unitCreator); + NodeCreate nodeCreate = new NodeCreate(); + nodeCreate.setOrganizationalUnitId(unit.getId()); + nodeCreate.setNodeName(unit.getName()); + nodeCreate.setNodeType(OrganizationalNode.TypeEnum.DEPARTMENT.getValue()); + nodeCreate.setParentId(0L); + nodeCreate.setRemark(""); + nodeCreate.setOperatorId(req.getOperatorId()); + nodeCreate.setTerminal(""); + nodeCreate.setPage(""); + nodeCreate.setExtra(null); + nodeCreate.setProfile(null); + + // 创建部门 + nodeService.process(NodeProcessReq + .builder() + .action(NodeProcessReq.Action.CREATE) + .operatorId(req.getOperatorId()) + .param(new JSONObject(BeanUtil.beanToMap(nodeCreate))) + .build() + + + ); + return CreateUnitResp.builder().id(unit.getId()).build(); + }); - // 返回 - return CreateUnitResp.builder().id(organizationalUnit.getId()).build(); } @Override