feat:[REQ-3282] 引入workspace v2 sdk
This commit is contained in:
parent
3d4ce5f422
commit
748c52386a
@ -102,6 +102,12 @@
|
|||||||
<artifactId>hutool-all</artifactId>
|
<artifactId>hutool-all</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.axzo.orgmanax</groupId>
|
||||||
|
<artifactId>orgmanax-common</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- 二方SDK -->
|
<!-- 二方SDK -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.axzo.apollo</groupId>
|
<groupId>cn.axzo.apollo</groupId>
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
package cn.axzo.orgmanax.infra.client.core;
|
||||||
|
|
||||||
|
import cn.axzo.foundation.exception.BusinessException;
|
||||||
|
import cn.axzo.foundation.result.ApiResult;
|
||||||
|
import cn.axzo.orgmanax.common.config.BizResultCode;
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.http.HttpStatus;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class RpcWrapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api result 返回
|
||||||
|
* @param supplier
|
||||||
|
* @return
|
||||||
|
* @param <T>
|
||||||
|
*/
|
||||||
|
public static <T> T wrapApiResult(Supplier<ApiResult<T>> supplier) {
|
||||||
|
ApiResult<T> result = supplier.get();
|
||||||
|
if (result == null) {
|
||||||
|
throw new BusinessException(BizResultCode.RPC_ERROR);
|
||||||
|
}
|
||||||
|
if (!Objects.equals(result.getCode(), HttpStatus.HTTP_OK)) {
|
||||||
|
throw new BusinessException(Convert.toStr(result.getCode()), result.getMsg(), null);
|
||||||
|
}
|
||||||
|
return result.getData();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,23 +1,46 @@
|
|||||||
package cn.axzo.orgmanax.infra.client.workspace;
|
package cn.axzo.orgmanax.infra.client.workspace;
|
||||||
|
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.feign.WorkspaceV2Api;
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceDetailReq;
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceUpsertReq;
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.resp.WorkspaceDetailResp;
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.resp.WorkspaceUpsertResp;
|
||||||
|
import cn.axzo.orgmanax.infra.client.core.RpcWrapper;
|
||||||
import cn.axzo.orgmanax.infra.client.workspace.dto.Workspace;
|
import cn.axzo.orgmanax.infra.client.workspace.dto.Workspace;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.*;
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO liuyang
|
|
||||||
*/
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class WorkspaceGateway {
|
public class WorkspaceGateway {
|
||||||
|
|
||||||
|
private final WorkspaceV2Api workspaceV2Api;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新和新增
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public WorkspaceUpsertResp upsert(WorkspaceUpsertReq request) {
|
||||||
|
return RpcWrapper.wrapApiResult(() -> workspaceV2Api.upsert(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取详情
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public WorkspaceDetailResp getDetail(WorkspaceDetailReq request) {
|
||||||
|
return RpcWrapper.wrapApiResult(() -> workspaceV2Api.detail(request));
|
||||||
|
}
|
||||||
|
|
||||||
public Workspace getWorkspace(Long id) {
|
public Workspace getWorkspace(Long id) {
|
||||||
return listWorkspaces(ListWorkspaceReq.builder().id(id).build()).stream().findFirst().orElse(null);
|
return listWorkspaces(ListWorkspaceReq.builder().id(id).build()).stream().findFirst().orElse(null);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package cn.axzo.orgmanax.server.cooperateship.service.impl;
|
package cn.axzo.orgmanax.server.cooperateship.service.impl;
|
||||||
|
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceDetailReq;
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.resp.WorkspaceDetailResp;
|
||||||
import cn.axzo.foundation.event.support.Event;
|
import cn.axzo.foundation.event.support.Event;
|
||||||
import cn.axzo.foundation.event.support.producer.EventProducer;
|
import cn.axzo.foundation.event.support.producer.EventProducer;
|
||||||
import cn.axzo.foundation.exception.Axssert;
|
import cn.axzo.foundation.exception.Axssert;
|
||||||
@ -60,7 +62,7 @@ public class CooperateShipServiceImpl implements CooperateShipService {
|
|||||||
.orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("部门不存在{}", req.getOrganizationalNodeId()));
|
.orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("部门不存在{}", req.getOrganizationalNodeId()));
|
||||||
Axssert.check(node.isTopNode(), BizResultCode.INVALID_PARAM, "只有顶级节点才能添加协同关系");
|
Axssert.check(node.isTopNode(), BizResultCode.INVALID_PARAM, "只有顶级节点才能添加协同关系");
|
||||||
// workspace check
|
// workspace check
|
||||||
Workspace workspace = workspaceGateway.getWorkspace(req.getWorkspaceId());
|
WorkspaceDetailResp workspace = workspaceGateway.getDetail(WorkspaceDetailReq.builder().id(req.getWorkspaceId()).build());
|
||||||
Axssert.checkNonNull(workspace, "工作台不存在{}", req.getWorkspaceId());
|
Axssert.checkNonNull(workspace, "工作台不存在{}", req.getWorkspaceId());
|
||||||
CooperateShipQueryRepository.CooperateShipResp parentShip = null;
|
CooperateShipQueryRepository.CooperateShipResp parentShip = null;
|
||||||
if (!ALLOWED_TOP_COOPERATE_TYPES.contains(req.getCooperateType())) {
|
if (!ALLOWED_TOP_COOPERATE_TYPES.contains(req.getCooperateType())) {
|
||||||
@ -78,7 +80,7 @@ public class CooperateShipServiceImpl implements CooperateShipService {
|
|||||||
SaasCooperateShip cooperateShip = SaasCooperateShip.builder()
|
SaasCooperateShip cooperateShip = SaasCooperateShip.builder()
|
||||||
.parentId(req.getParentId())
|
.parentId(req.getParentId())
|
||||||
.workspaceId(workspace.getId())
|
.workspaceId(workspace.getId())
|
||||||
.workspaceType(workspace.getType())
|
.workspaceType(workspace.getWorkspaceType())
|
||||||
.workspaceName(workspace.getName())
|
.workspaceName(workspace.getName())
|
||||||
.status(CooperateShipStatusEnum.PRESENT.getCode())
|
.status(CooperateShipStatusEnum.PRESENT.getCode())
|
||||||
.joinAt(new Date())
|
.joinAt(new Date())
|
||||||
|
|||||||
@ -1,9 +1,13 @@
|
|||||||
package cn.axzo.orgmanax.server.unit.service.impl;
|
package cn.axzo.orgmanax.server.unit.service.impl;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceUpsertReq;
|
||||||
import cn.axzo.foundation.page.PageResp;
|
import cn.axzo.foundation.page.PageResp;
|
||||||
import cn.axzo.orgmanax.api.node.req.ProcessNodeReq;
|
import cn.axzo.orgmanax.api.node.req.ProcessNodeReq;
|
||||||
import cn.axzo.orgmanax.api.unit.req.ListUnitReq;
|
import cn.axzo.orgmanax.api.unit.req.ListUnitReq;
|
||||||
import cn.axzo.orgmanax.api.unit.resp.OrgUnitDTO;
|
import cn.axzo.orgmanax.api.unit.resp.OrgUnitDTO;
|
||||||
|
import cn.axzo.orgmanax.infra.client.workspace.WorkspaceGateway;
|
||||||
import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNode;
|
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.entity.OrganizationalUnit;
|
||||||
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository;
|
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository;
|
||||||
@ -33,6 +37,7 @@ public class UnitServiceImpl implements UnitService {
|
|||||||
private final NodeService nodeService;
|
private final NodeService nodeService;
|
||||||
private final UnitQueryRepository unitQueryRepository;
|
private final UnitQueryRepository unitQueryRepository;
|
||||||
private final TransactionTemplate transactionTemplate;
|
private final TransactionTemplate transactionTemplate;
|
||||||
|
private final WorkspaceGateway workspaceGateway;
|
||||||
@Override
|
@Override
|
||||||
public CreateUnitResp create(CreateUnitReq req) {
|
public CreateUnitResp create(CreateUnitReq req) {
|
||||||
|
|
||||||
@ -57,6 +62,38 @@ public class UnitServiceImpl implements UnitService {
|
|||||||
|
|
||||||
if (BooleanUtil.isTrue(req.getCreateWorkspace())){
|
if (BooleanUtil.isTrue(req.getCreateWorkspace())){
|
||||||
// TODO: 创建租户 @liuyang
|
// TODO: 创建租户 @liuyang
|
||||||
|
WorkspaceUpsertReq workspaceUpsertReq = new WorkspaceUpsertReq();
|
||||||
|
workspaceUpsertReq.setParentId(0L);
|
||||||
|
workspaceUpsertReq.setType(1);
|
||||||
|
workspaceUpsertReq.setName(req.getName());
|
||||||
|
// todo 从哪里取
|
||||||
|
workspaceUpsertReq.setTenantId(0L);
|
||||||
|
workspaceUpsertReq.setOrganizationUnitId(unit.getId());
|
||||||
|
// todo 从哪里取
|
||||||
|
workspaceUpsertReq.setFences("");
|
||||||
|
workspaceUpsertReq.setContactName(req.getLegalName());
|
||||||
|
workspaceUpsertReq.setContactPhone(req.getLegalPhone());
|
||||||
|
// todo 从哪里取
|
||||||
|
workspaceUpsertReq.setTag("");
|
||||||
|
workspaceUpsertReq.setProvinceCode(req.getProvinceCode());
|
||||||
|
workspaceUpsertReq.setCityCode(req.getCityCode());
|
||||||
|
workspaceUpsertReq.setStreetName("");
|
||||||
|
workspaceUpsertReq.setStreetCode("");
|
||||||
|
workspaceUpsertReq.setAreaCode(req.getAreaCode());
|
||||||
|
workspaceUpsertReq.setProvinceName(req.getProvinceName());
|
||||||
|
workspaceUpsertReq.setCityName(req.getCityName());
|
||||||
|
workspaceUpsertReq.setAreaName(req.getAreaName());
|
||||||
|
workspaceUpsertReq.setWorkSpaceIneffectiveDate(new Date());
|
||||||
|
// todo 从哪里取
|
||||||
|
workspaceUpsertReq.setWorkspaceColor("");
|
||||||
|
workspaceUpsertReq.setLogo(req.getLogoUrl());
|
||||||
|
workspaceUpsertReq.setTrial(false);
|
||||||
|
workspaceUpsertReq.setCooperateType(0);
|
||||||
|
workspaceUpsertReq.setAddress(req.getAddress());
|
||||||
|
// todo 是否赋值
|
||||||
|
workspaceUpsertReq.setLongitude(new BigDecimal("0"));
|
||||||
|
workspaceUpsertReq.setLatitude(new BigDecimal("0"));
|
||||||
|
workspaceGateway.upsert(workspaceUpsertReq);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建部门
|
// 创建部门
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user