feat:[REQ-3282]实现协同关系方查询接口

This commit is contained in:
liuyang 2024-12-19 13:59:00 +08:00
parent b5c308a454
commit 725ce1422b
3 changed files with 16 additions and 9 deletions

View File

@ -32,41 +32,41 @@ public class ListOrgCooperateShipReq {
/**
* 工作台类型
*/
@CriteriaField(field = "workspaceType", operator = Operator.IN)
// @CriteriaField(field = "workspaceType", operator = Operator.IN)
@Builder.Default
private Set<Integer> workspaceType = Collections.emptySet();
/**
* 单位id集合(如果是班组则插入队伍id)
*/
@CriteriaField(field = "organizationalUnitId", operator = Operator.IN)
// @CriteriaField(field = "organizationalUnitId", operator = Operator.IN)
@Builder.Default
private Set<Long> ouIds = Collections.emptySet();
/**
* 指定的协同关系类型
*/
@CriteriaField(field = "cooperateType", operator = Operator.IN)
// @CriteriaField(field = "cooperateType", operator = Operator.IN)
@Builder.Default
private Set<Integer> includeCooperateTypes = Collections.emptySet();
/**
* 待排除的协同关系类型
*/
@CriteriaField(field = "cooperateType", operator = Operator.NOT_IN)
// @CriteriaField(field = "cooperateType", operator = Operator.NOT_IN)
@Builder.Default
private Set<Integer> excludeCooperateTypes = Collections.emptySet();
/**
* 节点id
*/
@CriteriaField(field = "organizationalNodeId", operator = Operator.IN)
// @CriteriaField(field = "organizationalNodeId", operator = Operator.IN)
@Builder.Default
private Set<Long> organizationNodeIds = Collections.emptySet();
/**
* 合作关系 1.合作 2.直属
*/
@CriteriaField(field = "partnerShip", operator = Operator.IN)
// @CriteriaField(field = "partnerShip", operator = Operator.IN)
@Builder.Default
private Set<Integer> partnerShips = Collections.emptySet();
@ -74,7 +74,7 @@ public class ListOrgCooperateShipReq {
/**
* 在场状态集合
*/
@CriteriaField(field = "status", operator = Operator.IN)
// @CriteriaField(field = "status", operator = Operator.IN)
@Builder.Default
private Set<Integer> statuses = Collections.emptySet();

View File

@ -51,7 +51,7 @@ public class NodeQueryRepositoryImpl implements NodeQueryRepository {
}
private void assembleParentNode(ListNodeReq req, List<NodeResp> records) {
if (!BooleanUtil.isTrue(req.getNeedParent())) {
if (!BooleanUtil.isTrue(req.getIsSelectAncestors())) {
return;
}
Map<Long, NodeResp> nodesById = records.stream().collect(Collectors.toMap(NodeResp::getId, Function.identity()));

View File

@ -126,6 +126,7 @@ public class CooperateShipServiceImpl implements CooperateShipService {
public List<OrgCooperateShipDTO> list(ListOrgCooperateShipReq req) {
boolean isFilterCurrentNodeByPerson = ObjectUtil.isNotNull(req.getFilterPersonId()) && Objects.equals(req.getFilterPersonType(), 1);
boolean isFilterCurrentAndBelowByPerson = ObjectUtil.isNotNull(req.getFilterPersonId()) && Objects.equals(req.getFilterPersonType(), 2);
// 根据入参查询数据
List<SaasCooperateShip> list = cooperateShipQueryRepository.list(req);
@ -133,7 +134,7 @@ public class CooperateShipServiceImpl implements CooperateShipService {
return Collections.emptyList();
}
// 是否根据person过滤当前节点
// 根据person过滤当前节点
if (isFilterCurrentNodeByPerson) {
cooperateShipFoundationService.filterByPerson(req.getFilterPersonId(), list);
}
@ -144,6 +145,12 @@ public class CooperateShipServiceImpl implements CooperateShipService {
List<SaasCooperateShip> ancestorShipNodes = cooperateShipQueryRepository.list(ListOrgCooperateShipReq.builder().ids(ancestorIds).build());
list.addAll(ancestorShipNodes);
}
// 根据person过滤当前节点及以下节点
if (isFilterCurrentAndBelowByPerson) {
cooperateShipFoundationService.filterByPerson(req.getFilterPersonId(), list);
}
return BeanUtil.copyToList(list, OrgCooperateShipDTO.class);
}
}