feat:[REQ-3488] 暂时提交

This commit is contained in:
liuyang 2024-12-27 11:09:27 +08:00
parent 56a7b29a24
commit f0f840be31
3 changed files with 19 additions and 18 deletions

View File

@ -106,20 +106,14 @@ public class NodeServiceImpl implements NodeService {
if (CollUtil.isEmpty(nodeUsers)) {
return emptyPageResp;
}
// 获取岗位信息
if (CollUtil.isNotEmpty(req.getJobCodes())) {
List<OrgJobQueryRepository.JobResp> orgJobs = orgJobQueryRepository.list(OrgJobQueryRepository.ListReq.builder()
.ids(CollUtil.map(nodeUsers, OrganizationalNodeUser::getOrganizationalJobId, true))
.codes(req.getJobCodes())
.build());
nodeUserFoundationService.filterByJobs(nodeUsers, orgJobs);
nodeUserFoundationService.filterByJobs(nodeUsers, req.getJobCodes());
}
if (CollUtil.isEmpty(nodeUsers)) {
return emptyPageResp;
}
reqListBuilder.ids(nodeUsers.stream().map(OrganizationalNodeUser::getOrganizationalNodeId).collect(Collectors.toSet()));
reqListBuilder.ids(CollUtil.map(nodeUsers, OrganizationalNodeUser::getOrganizationalNodeId, true));
}
// 根据项目ID获取topNodeId进行组织节点过滤
@ -149,15 +143,15 @@ public class NodeServiceImpl implements NodeService {
}
// 是否查询父级节点
// 是否聚合父节点
if (BooleanUtil.isTrue(req.getIncludeParent())) {
Set<Long> parentIds = nodeFoundationService.extractParentIds(page.getData());
List<OrganizationalNode> parentNodes = nodeQueryRepository.list(NodeQueryRepository.ListReq.builder().ids(parentIds).build());
nodeFoundationService.assembleParentNodes(records, parentNodes);
}
// 是否查询祖父节点
if (BooleanUtil.isTrue(req.getIncludeAncestors())) {
// 是否聚合祖先节点
else if (BooleanUtil.isTrue(req.getIncludeAncestors())) {
Set<Long> ancestorIds = nodeFoundationService.extractAncestorIds(page.getData());
List<OrganizationalNode> parentNodes = nodeQueryRepository.list(NodeQueryRepository.ListReq.builder().ids(ancestorIds).build());
if (CollUtil.isNotEmpty(parentNodes)) {
@ -166,7 +160,7 @@ public class NodeServiceImpl implements NodeService {
}
}
// 是否查询子孙节点
// 是否聚合子孙节点
if (BooleanUtil.isTrue(req.getIncludeDescendants())) {
Set<String> paths = nodeFoundationService.extractPaths(page.getData(), ",");
List<OrganizationalNode> descendantsNodes = nodeQueryRepository.list(
@ -175,9 +169,8 @@ public class NodeServiceImpl implements NodeService {
nodeFoundationService.assembleChildrenNodes(records, descendantsNodes);
nodeFoundationService.assembleDescendantNodes(records, descendantsNodes);
}
// 是否查询子节点
if (BooleanUtil.isTrue(req.getIncludeChildren())) {
// 是否聚合子节点
else if (BooleanUtil.isTrue(req.getIncludeChildren())) {
Set<Long> ids = nodeFoundationService.extract(page.getData(), OrganizationalNode::getId);
List<OrganizationalNode> childrenNodes = nodeQueryRepository.list(
NodeQueryRepository.ListReq.builder()

View File

@ -10,6 +10,7 @@ import cn.axzo.orgmanax.server.nodeuser.foundation.req.NodeUserCreate;
import cn.axzo.orgmanax.server.nodeuser.foundation.req.NodeUserUpdate;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
public interface NodeUserFoundationService {
@ -34,9 +35,9 @@ public interface NodeUserFoundationService {
/**
* 根据岗位进行过滤
* @param nodeUsers
* @param orgJobs
* @param jobCodes
*/
<T extends NodeUserQueryRepository.NodeUserResp, Job extends OrgJob> void filterByJobs(List<T> nodeUsers, List<Job> orgJobs);
<T extends OrganizationalNodeUser> void filterByJobs(Collection<T> nodeUsers, Collection<String> jobCodes);
/**
* 根据条件聚合查询节点用户

View File

@ -19,6 +19,7 @@ import cn.axzo.orgmanax.infra.dao.nodeuser.mapper.OrganizationalNodeUserMapper;
import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserQueryRepository;
import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserUpsertRepository;
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJob;
import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobQueryRepository;
import cn.axzo.orgmanax.server.node.event.inner.NodeEventType;
import cn.axzo.orgmanax.server.nodeuser.event.inner.payload.NodeUserUpsertedPayload;
import cn.axzo.orgmanax.server.nodeuser.foundation.NodeUserFoundationService;
@ -31,6 +32,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@ -49,6 +51,7 @@ public class NodeUserFoundationServiceImpl implements NodeUserFoundationService
private final EventProducer eventProducer;
private final PersonProfileGateway profileGateway;
private final OrganizationalNodeUserMapper organizationalNodeUserMapper;
private final OrgJobQueryRepository orgJobQueryRepository;
/**
@ -139,7 +142,11 @@ public class NodeUserFoundationServiceImpl implements NodeUserFoundationService
}
@Override
public <T extends NodeUserQueryRepository.NodeUserResp, Job extends OrgJob> void filterByJobs(List<T> nodeUsers, List<Job> orgJobs) {
public <T extends OrganizationalNodeUser> void filterByJobs(Collection<T> nodeUsers, Collection<String> jobCodes) {
List<OrgJobQueryRepository.JobResp> orgJobs = orgJobQueryRepository.list(OrgJobQueryRepository.ListReq.builder()
.ids(CollUtil.map(nodeUsers, OrganizationalNodeUser::getOrganizationalJobId, true))
.codes(jobCodes)
.build());
List<Long> jobIds = CollUtil.map(orgJobs, OrgJob::getId, true);
nodeUsers.removeIf(e -> !jobIds.contains(e.getOrganizationalJobId()));
}