feat:[REQ-3488] cooperateShip 创建方法,将通用创建能力下沉到foundation层中
This commit is contained in:
parent
fe1d733c66
commit
6e23456512
@ -46,7 +46,10 @@
|
|||||||
<groupId>cn.hutool</groupId>
|
<groupId>cn.hutool</groupId>
|
||||||
<artifactId>hutool-all</artifactId>
|
<artifactId>hutool-all</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.axzo.foundation</groupId>
|
||||||
|
<artifactId>event-support-lib</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package cn.axzo.orgmanax.server.cooperateship.event.inner.payload;
|
package cn.axzo.orgmanax.dto.cooperateship.event;
|
||||||
|
|
||||||
import cn.axzo.foundation.event.support.AbstractDiffablePayload;
|
import cn.axzo.foundation.event.support.AbstractDiffablePayload;
|
||||||
import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip;
|
import cn.axzo.orgmanax.dto.cooperateship.dto.OrgCooperateShipDTO;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
@ -12,8 +12,8 @@ import lombok.NoArgsConstructor;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
public class CoopeateShipUpsertedPayload extends AbstractDiffablePayload<SaasCooperateShip> {
|
public class CoopeateShipUpsertedPayload extends AbstractDiffablePayload<OrgCooperateShipDTO> {
|
||||||
private SaasCooperateShip oldValue;
|
private OrgCooperateShipDTO oldValue;
|
||||||
private SaasCooperateShip newValue;
|
private OrgCooperateShipDTO newValue;
|
||||||
private JSONObject ext;
|
private JSONObject ext;
|
||||||
}
|
}
|
||||||
@ -22,7 +22,7 @@ public class CreateOrgCooperateShipReq {
|
|||||||
private Long organizationalNodeId;
|
private Long organizationalNodeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上级节点
|
* 上级节点(非顶级节点时必填)
|
||||||
*/
|
*/
|
||||||
private Long parentId;
|
private Long parentId;
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package cn.axzo.orgmanax.server.cooperateship.foundation;
|
package cn.axzo.orgmanax.server.cooperateship.foundation;
|
||||||
|
|
||||||
import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip;
|
import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip;
|
||||||
|
import cn.axzo.orgmanax.server.cooperateship.foundation.dto.CooperateShipCreator;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -71,4 +72,8 @@ public interface CooperateShipFoundationService {
|
|||||||
*/
|
*/
|
||||||
<T> Collection<T> extract(Collection<SaasCooperateShip> currentNodeList, Function<SaasCooperateShip, T> function);
|
<T> Collection<T> extract(Collection<SaasCooperateShip> currentNodeList, Function<SaasCooperateShip, T> function);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建协同关系
|
||||||
|
*/
|
||||||
|
SaasCooperateShip create(CooperateShipCreator creator);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,66 @@
|
|||||||
|
package cn.axzo.orgmanax.server.cooperateship.foundation.dto;
|
||||||
|
|
||||||
|
import cn.axzo.apollo.workspace.api.v2.workspace.resp.WorkspaceDetailResp;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class CooperateShipCreator {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作台ID
|
||||||
|
*/
|
||||||
|
private Long workspaceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作台名称
|
||||||
|
*/
|
||||||
|
private String workspaceName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作台类型
|
||||||
|
*/
|
||||||
|
private Integer workspaceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织节点ID
|
||||||
|
*/
|
||||||
|
private Long organizationalNodeId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织单位ID
|
||||||
|
*/
|
||||||
|
private Long organizationalUnitId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织单位名称
|
||||||
|
*/
|
||||||
|
private String organizationalUnitName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 父级协同节点ID
|
||||||
|
*/
|
||||||
|
private Long parentId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 协同类型
|
||||||
|
*/
|
||||||
|
private Integer cooperateType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 协作关系
|
||||||
|
*/
|
||||||
|
private Integer partnerShip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作人ID
|
||||||
|
*/
|
||||||
|
private Long operatorId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,25 +1,37 @@
|
|||||||
package cn.axzo.orgmanax.server.cooperateship.foundation.impl;
|
package cn.axzo.orgmanax.server.cooperateship.foundation.impl;
|
||||||
|
|
||||||
import cn.axzo.orgmanax.dto.nodeuser.dto.NodeUserDTO;
|
import cn.axzo.foundation.event.support.Event;
|
||||||
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
|
import cn.axzo.foundation.event.support.producer.EventProducer;
|
||||||
|
import cn.axzo.foundation.exception.Axssert;
|
||||||
|
import cn.axzo.orgmanax.common.config.BizResultCode;
|
||||||
|
import cn.axzo.orgmanax.dto.cooperateship.dto.OrgCooperateShipDTO;
|
||||||
|
import cn.axzo.orgmanax.dto.cooperateship.enums.CooperateShipStatusEnum;
|
||||||
|
import cn.axzo.orgmanax.dto.cooperateship.enums.CooperateShipTypeEnum;
|
||||||
|
import cn.axzo.orgmanax.infra.client.workspace.WorkspaceGateway;
|
||||||
import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip;
|
import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip;
|
||||||
|
import cn.axzo.orgmanax.infra.dao.cooperateship.repository.CooperateShipQueryRepository;
|
||||||
|
import cn.axzo.orgmanax.infra.dao.cooperateship.repository.CooperateShipUpsertRepository;
|
||||||
import cn.axzo.orgmanax.infra.dao.nodeuser.entity.OrganizationalNodeUser;
|
import cn.axzo.orgmanax.infra.dao.nodeuser.entity.OrganizationalNodeUser;
|
||||||
import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserQueryRepository;
|
import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserQueryRepository;
|
||||||
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJob;
|
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJob;
|
||||||
import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobQueryRepository;
|
import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobQueryRepository;
|
||||||
|
import cn.axzo.orgmanax.server.cooperateship.event.inner.CooperateShipEventType;
|
||||||
|
import cn.axzo.orgmanax.dto.cooperateship.event.CoopeateShipUpsertedPayload;
|
||||||
import cn.axzo.orgmanax.server.cooperateship.foundation.CooperateShipFoundationService;
|
import cn.axzo.orgmanax.server.cooperateship.foundation.CooperateShipFoundationService;
|
||||||
import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService;
|
import cn.axzo.orgmanax.server.cooperateship.foundation.dto.CooperateShipCreator;
|
||||||
import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobFoundationService;
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollStreamUtil;
|
import cn.hutool.core.collection.CollStreamUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -28,6 +40,24 @@ public class CooperateShipFoundationServiceImpl implements CooperateShipFoundati
|
|||||||
|
|
||||||
private final NodeUserQueryRepository nodeUserQueryRepository;
|
private final NodeUserQueryRepository nodeUserQueryRepository;
|
||||||
private final OrgJobQueryRepository jobQueryRepository;
|
private final OrgJobQueryRepository jobQueryRepository;
|
||||||
|
private final CooperateShipQueryRepository cooperateShipQueryRepository;
|
||||||
|
private final CooperateShipUpsertRepository cooperateShipUpsertRepository;
|
||||||
|
private final EventProducer eventProducer;
|
||||||
|
private final WorkspaceGateway workspaceGateway;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顶级协同关系类型
|
||||||
|
*/
|
||||||
|
private static final Set<Integer> ALLOWED_TOP_COOPERATE_TYPES = ImmutableSet.of(
|
||||||
|
CooperateShipTypeEnum.PROJ_PRIMARY_CONTRACTING_UNIT.getCode(),
|
||||||
|
CooperateShipTypeEnum.PROJ_CONSTRUCTION_UNIT.getCode(),
|
||||||
|
CooperateShipTypeEnum.PROJ_SUPERVISION_UNIT.getCode(),
|
||||||
|
CooperateShipTypeEnum.OMS.getCode(),
|
||||||
|
CooperateShipTypeEnum.ENT_COMMON.getCode(),
|
||||||
|
CooperateShipTypeEnum.SURVEY_UNIT.getCode(),
|
||||||
|
CooperateShipTypeEnum.DESIGN_UNIT.getCode(),
|
||||||
|
CooperateShipTypeEnum.OTHER.getCode()
|
||||||
|
);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void filterNodeIdsByPerson(Long filterPersonId, Collection<SaasCooperateShip> cooperateShips, Boolean includeExitPerson, Collection<String> excludeJobCodes) {
|
public void filterNodeIdsByPerson(Long filterPersonId, Collection<SaasCooperateShip> cooperateShips, Boolean includeExitPerson, Collection<String> excludeJobCodes) {
|
||||||
@ -109,4 +139,58 @@ public class CooperateShipFoundationServiceImpl implements CooperateShipFoundati
|
|||||||
return currentNodeList.stream().map(function).collect(Collectors.toSet());
|
return currentNodeList.stream().map(function).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SaasCooperateShip create(CooperateShipCreator creator) {
|
||||||
|
|
||||||
|
// 如果parentId不为空, 查询父级协同节点
|
||||||
|
SaasCooperateShip parentCooperateShip = null;
|
||||||
|
if (Objects.nonNull(creator.getParentId()) && creator.getParentId() > 0) {
|
||||||
|
parentCooperateShip = cooperateShipQueryRepository
|
||||||
|
.oneOpt(CooperateShipQueryRepository.OneReq.builder().id(creator.getParentId()).build())
|
||||||
|
.orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("父级协同部门不存在{}", creator.getOrganizationalNodeId()));
|
||||||
|
Axssert.check(Objects.equals(parentCooperateShip.getWorkspaceId(), creator.getWorkspaceId()), BizResultCode.INVALID_PARAM, "父级协同部门和要加入部门不是同一个工作台");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建协同关系
|
||||||
|
SaasCooperateShip cooperateShip = SaasCooperateShip.builder()
|
||||||
|
.parentId(creator.getParentId())
|
||||||
|
.workspaceId(creator.getWorkspaceId())
|
||||||
|
.workspaceType(creator.getWorkspaceType())
|
||||||
|
.workspaceName(creator.getWorkspaceName())
|
||||||
|
.status(CooperateShipStatusEnum.PRESENT.getCode())
|
||||||
|
.joinAt(new Date())
|
||||||
|
.organizationalUnitId(creator.getOrganizationalUnitId())
|
||||||
|
.organizationalUnitName(creator.getOrganizationalUnitName())
|
||||||
|
.cooperateType(creator.getCooperateType())
|
||||||
|
.organizationalNodeId(creator.getOrganizationalNodeId())
|
||||||
|
.partnerShip(creator.getPartnerShip())
|
||||||
|
.createBy(creator.getOperatorId())
|
||||||
|
.build();
|
||||||
|
SaasCooperateShip savedCooperateShip = cooperateShipUpsertRepository.create(cooperateShip);
|
||||||
|
|
||||||
|
|
||||||
|
// 更新协同关系路径
|
||||||
|
savedCooperateShip.calcPath(parentCooperateShip);
|
||||||
|
SaasCooperateShip saved = cooperateShipUpsertRepository.update(CooperateShipUpsertRepository.UpdateReq.builder()
|
||||||
|
.id(savedCooperateShip.getId())
|
||||||
|
.path(savedCooperateShip.getPath())
|
||||||
|
.build());
|
||||||
|
|
||||||
|
// 发送领域事件
|
||||||
|
eventProducer.send(Event.builder()
|
||||||
|
.eventCode(CooperateShipEventType.COOPERATE_SHIP_UPSERTED.getEventCode())
|
||||||
|
.operatorId(Convert.toStr(creator.getOperatorId()))
|
||||||
|
.operatorType(getClass().getSimpleName())
|
||||||
|
.targetType("cooperate_ship_id")
|
||||||
|
.targetId(cooperateShip.getId() + "")
|
||||||
|
.shardingKey(saved.getOrganizationalNodeId() + "")
|
||||||
|
.data(CoopeateShipUpsertedPayload.builder()
|
||||||
|
.newValue(BeanUtil.copyProperties(saved, OrgCooperateShipDTO.class))
|
||||||
|
.oldValue(null)
|
||||||
|
.build())
|
||||||
|
.build());
|
||||||
|
// 返回结果
|
||||||
|
return cooperateShipQueryRepository.one(CooperateShipQueryRepository.OneReq.builder().id(saved.getId()).build());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,8 +19,9 @@ import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNode;
|
|||||||
import cn.axzo.orgmanax.infra.dao.node.repository.NodeQueryRepository;
|
import cn.axzo.orgmanax.infra.dao.node.repository.NodeQueryRepository;
|
||||||
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository;
|
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository;
|
||||||
import cn.axzo.orgmanax.server.cooperateship.event.inner.CooperateShipEventType;
|
import cn.axzo.orgmanax.server.cooperateship.event.inner.CooperateShipEventType;
|
||||||
import cn.axzo.orgmanax.server.cooperateship.event.inner.payload.CoopeateShipUpsertedPayload;
|
import cn.axzo.orgmanax.dto.cooperateship.event.CoopeateShipUpsertedPayload;
|
||||||
import cn.axzo.orgmanax.server.cooperateship.foundation.CooperateShipFoundationService;
|
import cn.axzo.orgmanax.server.cooperateship.foundation.CooperateShipFoundationService;
|
||||||
|
import cn.axzo.orgmanax.server.cooperateship.foundation.dto.CooperateShipCreator;
|
||||||
import cn.axzo.orgmanax.server.cooperateship.service.CooperateShipService;
|
import cn.axzo.orgmanax.server.cooperateship.service.CooperateShipService;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
@ -63,69 +64,33 @@ public class CooperateShipServiceImpl implements CooperateShipService {
|
|||||||
@Override
|
@Override
|
||||||
public SaasCooperateShip create(CreateOrgCooperateShipReq req) {
|
public SaasCooperateShip create(CreateOrgCooperateShipReq req) {
|
||||||
|
|
||||||
// node check
|
// 获取组织节点
|
||||||
OrganizationalNode node = nodeQueryRepository.oneOpt(NodeQueryRepository.OneReq.builder().id(req.getOrganizationalNodeId()).build())
|
OrganizationalNode node = nodeQueryRepository.oneOpt(NodeQueryRepository.OneReq.builder().id(req.getOrganizationalNodeId()).build())
|
||||||
.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
|
// 获取工作台信息
|
||||||
WorkspaceDetailResp workspace = workspaceGateway.getDetail(WorkspaceDetailReq.builder().id(req.getWorkspaceId()).build());
|
WorkspaceDetailResp workspace = workspaceGateway.getDetail(WorkspaceDetailReq.builder().id(req.getWorkspaceId()).build());
|
||||||
Axssert.checkNonNull(workspace, "工作台不存在{}", req.getWorkspaceId());
|
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, "父级协同类型不能为空");
|
|
||||||
parentShip = cooperateShipQueryRepository
|
|
||||||
.oneOpt(CooperateShipQueryRepository.OneReq.builder().id(req.getParentId()).build())
|
|
||||||
.orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("父级协同部门不存在{}", req.getOrganizationalNodeId()));
|
|
||||||
Axssert.check(Objects.equals(parentShip.getWorkspaceId(), req.getWorkspaceId()), BizResultCode.INVALID_PARAM, "父级协同部门和要加入部门不是同一个工作台");
|
|
||||||
}
|
|
||||||
|
|
||||||
// unit check
|
|
||||||
UnitQueryRepository.UnitResp unit = unitQueryRepository.oneOpt(UnitQueryRepository.OneReq.builder()
|
UnitQueryRepository.UnitResp unit = unitQueryRepository.oneOpt(UnitQueryRepository.OneReq.builder()
|
||||||
.id(node.getId())
|
.id(node.getId())
|
||||||
.build()).orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("单位不存在{}", node.getOrganizationalUnitId()));
|
.build()).orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("单位不存在{}", node.getOrganizationalUnitId()));
|
||||||
SaasCooperateShip cooperateShip = SaasCooperateShip.builder()
|
|
||||||
.parentId(req.getParentId())
|
// 创建协同关系
|
||||||
.workspaceId(workspace.getId())
|
return cooperateShipFoundationService.create(CooperateShipCreator.builder()
|
||||||
.workspaceType(workspace.getWorkspaceType())
|
.workspaceId(req.getWorkspaceId())
|
||||||
.workspaceName(workspace.getName())
|
.workspaceName(workspace.getName())
|
||||||
.status(CooperateShipStatusEnum.PRESENT.getCode())
|
.workspaceType(workspace.getWorkspaceType())
|
||||||
.joinAt(new Date())
|
.organizationalNodeId(req.getOrganizationalNodeId())
|
||||||
.organizationalUnitId(node.getOrganizationalUnitId())
|
.organizationalUnitId(unit.getId())
|
||||||
.organizationalUnitName(unit.getName())
|
.organizationalUnitName(unit.getName())
|
||||||
|
.parentId(req.getParentId())
|
||||||
.cooperateType(req.getCooperateType())
|
.cooperateType(req.getCooperateType())
|
||||||
.organizationalNodeId(node.getId())
|
|
||||||
.partnerShip(req.getPartnerShip())
|
.partnerShip(req.getPartnerShip())
|
||||||
.createBy(req.getOperatorId())
|
.operatorId(req.getOperatorId())
|
||||||
.build();
|
|
||||||
|
|
||||||
SaasCooperateShip savedCooperateShip = cooperateShipUpsertRepository.create(cooperateShip);
|
|
||||||
|
|
||||||
// update path
|
|
||||||
savedCooperateShip.calcPath(parentShip);
|
|
||||||
SaasCooperateShip saved = cooperateShipUpsertRepository.update(CooperateShipUpsertRepository.UpdateReq.builder()
|
|
||||||
.id(savedCooperateShip.getId())
|
|
||||||
.path(savedCooperateShip.getPath())
|
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
// 发送数据变更基础MQ
|
|
||||||
eventProducer.send(Event.builder()
|
|
||||||
.eventCode(CooperateShipEventType.COOPERATE_SHIP_UPSERTED.getEventCode())
|
|
||||||
.operatorId(req.getOperatorId() + "")
|
|
||||||
.operatorType(getClass().getSimpleName())
|
|
||||||
.targetType("cooperate_ship_id")
|
|
||||||
.targetId(cooperateShip.getId() + "")
|
|
||||||
.shardingKey(saved.getOrganizationalNodeId() + "")
|
|
||||||
.data(CoopeateShipUpsertedPayload.builder()
|
|
||||||
.newValue(saved)
|
|
||||||
.oldValue(null)
|
|
||||||
.build())
|
|
||||||
.build());
|
|
||||||
|
|
||||||
// 返回结果
|
|
||||||
return cooperateShipQueryRepository.one(CooperateShipQueryRepository.OneReq.builder().id(saved.getId()).build());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -182,7 +147,7 @@ public class CooperateShipServiceImpl implements CooperateShipService {
|
|||||||
|
|
||||||
// 是否查询父级节点
|
// 是否查询父级节点
|
||||||
if (BooleanUtil.isTrue(req.getIncludeAncestors())) {
|
if (BooleanUtil.isTrue(req.getIncludeAncestors())) {
|
||||||
Collection<Long> ancestorIds = cooperateShipFoundationService.extractAncestorIds(currentNodeList);
|
Collection<Long> ancestorIds = cooperateShipFoundationService.extractAncestorIds(currentNodeList);
|
||||||
List<SaasCooperateShip> ancestorShipNodes = cooperateShipQueryRepository.list(CooperateShipQueryRepository.ListReq.builder().ids(ancestorIds).statuses(req.getStatuses()).build());
|
List<SaasCooperateShip> ancestorShipNodes = cooperateShipQueryRepository.list(CooperateShipQueryRepository.ListReq.builder().ids(ancestorIds).statuses(req.getStatuses()).build());
|
||||||
resultNodeList.addAll(ancestorShipNodes);
|
resultNodeList.addAll(ancestorShipNodes);
|
||||||
}
|
}
|
||||||
@ -202,7 +167,7 @@ public class CooperateShipServiceImpl implements CooperateShipService {
|
|||||||
|
|
||||||
// 是否查询子孙节点
|
// 是否查询子孙节点
|
||||||
if (BooleanUtil.isTrue(req.getIncludeChildren())) {
|
if (BooleanUtil.isTrue(req.getIncludeChildren())) {
|
||||||
Collection<Long> ids = cooperateShipFoundationService.extract(currentNodeList, SaasCooperateShip::getId);
|
Collection<Long> ids = CollUtil.map(currentNodeList, SaasCooperateShip::getId, true);
|
||||||
List<SaasCooperateShip> childrenShipNodes = cooperateShipQueryRepository.list(
|
List<SaasCooperateShip> childrenShipNodes = cooperateShipQueryRepository.list(
|
||||||
CooperateShipQueryRepository.ListReq.builder()
|
CooperateShipQueryRepository.ListReq.builder()
|
||||||
.statuses(req.getStatuses())
|
.statuses(req.getStatuses())
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user