feat:[REQ-3282] 增加协同关系类型查询

This commit is contained in:
liuyang 2024-12-25 16:46:50 +08:00
parent d02a5b2a26
commit 2a07843626
3 changed files with 13 additions and 3 deletions

View File

@ -19,6 +19,7 @@ import java.util.List;
public class OrgNodeDTO implements Serializable {
protected Long id;
/**
* 上级id,为0时为顶级节点
*/

View File

@ -90,6 +90,12 @@ public class ListNodeReq extends PageReqV2 {
@Builder.Default
private Boolean includeCooperateShip = false;
/**
* 指定的协同关系类型, 当includeCooperateShip=true时生效
*/
@Builder.Default
private Set<Integer> includeCooperateTypes = Collections.emptySet();
/**
* 只返回topNode
*/

View File

@ -145,7 +145,7 @@ public class NodeServiceImpl implements NodeService {
// 是否包含协同关系
if (req.getIncludeCooperateShip()) {
assembleCooperateShip(records);
assembleCooperateShip(records, req.getIncludeCooperateTypes());
}
@ -270,9 +270,12 @@ public class NodeServiceImpl implements NodeService {
});
}
private void assembleCooperateShip(List<OrgNodeDTO> nodes) {
private void assembleCooperateShip(List<OrgNodeDTO> nodes, Set<Integer> cooperateTypes) {
List<Long> nodeTopNodeIds = nodes.stream().map(OrgNodeDTO::getTopNodeId).distinct().collect(Collectors.toList());
Map<Long, SaasCooperateShip> cooperateShips = cooperateShipQueryRepository.list(CooperateShipQueryRepository.ListReq.builder().organizationNodeIds(nodeTopNodeIds).build()).stream().collect(Collectors.toMap(SaasCooperateShip::getOrganizationalNodeId, Function.identity()));
Map<Long, SaasCooperateShip> cooperateShips = cooperateShipQueryRepository.list(CooperateShipQueryRepository.ListReq.builder()
.organizationNodeIds(nodeTopNodeIds)
.includeCooperateTypes(cooperateTypes)
.build()).stream().collect(Collectors.toMap(SaasCooperateShip::getOrganizationalNodeId, Function.identity()));
// 补充 workspaceId cooperateType
nodes.forEach(node -> {
SaasCooperateShip cooperateShip = cooperateShips.get(node.getTopNodeId());