feat:[REQ-3488] 过滤入参中集合类型中可能有null值的元素

This commit is contained in:
liuyang 2025-01-13 15:50:59 +08:00
parent 7f329ee8c8
commit 7a22e944c4
2 changed files with 38 additions and 12 deletions

View File

@ -152,15 +152,15 @@ public class CooperateShipServiceImpl implements CooperateShipService {
// 构建查询条件
CooperateShipQueryRepository.ListReq listReq = CooperateShipQueryRepository.ListReq.builder()
.ids(req.getIds())
.workspaceIds(req.getWorkspaceIds())
.workspaceTypes(req.getWorkspaceTypes())
.ouIds(req.getOuIds())
.includeCooperateTypes(req.getIncludeCooperateTypes())
.excludeCooperateTypes(req.getExcludeCooperateTypes())
.organizationNodeIds(req.getOrganizationNodeIds())
.partnerShips(req.getPartnerShips())
.statuses(req.getStatuses())
.ids(filterNullValues(req.getIds()))
.workspaceIds(filterNullValues(req.getWorkspaceIds()))
.workspaceTypes(filterNullValues(req.getWorkspaceTypes()))
.ouIds(filterNullValues(req.getOuIds()))
.includeCooperateTypes(filterNullValues(req.getIncludeCooperateTypes()))
.excludeCooperateTypes(filterNullValues(req.getExcludeCooperateTypes()))
.organizationNodeIds(filterNullValues(req.getOrganizationNodeIds()))
.partnerShips(filterNullValues(req.getPartnerShips()))
.statuses(filterNullValues(req.getStatuses()))
.build();
// 根据入参查询数据
List<SaasCooperateShip> currentNodeList = cooperateShipQueryRepository.list(listReq);
@ -225,4 +225,17 @@ public class CooperateShipServiceImpl implements CooperateShipService {
resultNodeList.sort(Comparator.comparing(SaasCooperateShip::getPath));
return BeanUtil.copyToList(CollUtil.distinct(resultNodeList, SaasCooperateShip::getId, true), OrgCooperateShipDTO.class);
}
/**
* 过滤空值
* @param collection
* @return
* @param <T>
*/
private <T> Collection<T> filterNullValues(Collection<T> collection) {
if (CollUtil.isEmpty(collection)) {
return collection;
}
return CollUtil.filter(collection, Objects::nonNull);
}
}

View File

@ -59,7 +59,7 @@ public class ListNodeCmdExe {
// 条件: 当入参传入岗位标签并且组织用户有数据时
// 场景查询指定人员所在的组织节点并且岗位标签匹配
if (CollUtil.isNotEmpty(req.getJobCodes()) && CollUtil.isNotEmpty(nodeUsers)) {
nodeUserFoundationService.filterByJobs(nodeUsers, req.getJobCodes());
nodeUserFoundationService.filterByJobs(nodeUsers, filterNullValues(req.getJobCodes()));
if (CollUtil.isEmpty(nodeUsers)) {
return emptyPageResp;
}
@ -71,8 +71,8 @@ public class ListNodeCmdExe {
if (CollUtil.isNotEmpty(req.getWorkspaceIds()) || CollUtil.isNotEmpty(req.getWorkspaceOuPairs())) {
List<Long> topNodeIds = CollUtil.map(cooperateShipQueryRepository.list(CooperateShipQueryRepository.ListReq
.builder()
.workspaceIds(req.getWorkspaceIds())
.workspaceOuPairs(req.getWorkspaceOuPairs())
.workspaceIds(filterNullValues((req.getWorkspaceIds())))
.workspaceOuPairs(filterNullValues((req.getWorkspaceOuPairs())))
.build()), SaasCooperateShip::getOrganizationalNodeId, true);
if (CollUtil.isEmpty(topNodeIds)) {
return emptyPageResp;
@ -269,4 +269,17 @@ public class ListNodeCmdExe {
});
}
/**
* 过滤空值
* @param collection
* @return
* @param <T>
*/
private <T> Collection<T> filterNullValues(Collection<T> collection) {
if (CollUtil.isEmpty(collection)) {
return collection;
}
return CollUtil.filter(collection, Objects::nonNull);
}
}