From bb8d798510e68185974a37610cdff543e6bac706 Mon Sep 17 00:00:00 2001 From: liuyang Date: Wed, 25 Dec 2024 11:12:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:[REQ-3282]=20=E8=87=AA=E6=B5=8B,=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orgmanax/dto/node/req/ListNodeReq.java | 7 +-- .../CooperateShipQueryRepository.java | 52 +++++++------------ .../CooperateShipQueryRepositoryImpl.java | 2 + .../impl/NodeQueryRepositoryImpl.java | 1 + .../node/service/impl/NodeServiceImpl.java | 5 +- 5 files changed, 26 insertions(+), 41 deletions(-) diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/req/ListNodeReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/req/ListNodeReq.java index 7a50a73..89395fb 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/req/ListNodeReq.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/req/ListNodeReq.java @@ -74,7 +74,7 @@ public class ListNodeReq extends PageReqV2 { /** * 是否查询删除的 */ - private Boolean includeDelete; + private Boolean includeDelete = false; /** * 只返回topNode @@ -92,11 +92,6 @@ public class ListNodeReq extends PageReqV2 { */ private Set workspaceIds; - /** - * 需要返回父节点信息 - */ - private Boolean needParent; - /** * 岗位编码 */ diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/cooperateship/repository/CooperateShipQueryRepository.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/cooperateship/repository/CooperateShipQueryRepository.java index f07dd38..86df51d 100644 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/cooperateship/repository/CooperateShipQueryRepository.java +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/cooperateship/repository/CooperateShipQueryRepository.java @@ -2,16 +2,14 @@ package cn.axzo.orgmanax.infra.dao.cooperateship.repository; import cn.axzo.foundation.dao.support.wrapper.CriteriaField; import cn.axzo.foundation.dao.support.wrapper.Operator; +import cn.axzo.orgmanax.dto.common.WorkspaceOuPair; import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip; import cn.hutool.core.bean.BeanUtil; import com.google.common.base.Preconditions; import lombok.*; import lombok.experimental.SuperBuilder; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import java.util.*; public interface CooperateShipQueryRepository { @@ -60,103 +58,91 @@ public interface CooperateShipQueryRepository { */ @CriteriaField(field = "id", operator = Operator.IN) @Builder.Default - private Set ids = Collections.emptySet(); + private Collection ids = Collections.emptySet(); /** * 工作台id */ @CriteriaField(field = "workspaceId", operator = Operator.IN) @Builder.Default - private Set workspaceIds = Collections.emptySet(); + private Collection workspaceIds = Collections.emptySet(); /** * 工作台类型 */ @CriteriaField(field = "workspaceType", operator = Operator.IN) @Builder.Default - private Set workspaceTypes = Collections.emptySet(); + private Collection workspaceTypes = Collections.emptySet(); /** * 单位id集合(如果是班组则插入队伍id) */ @CriteriaField(field = "organizationalUnitId", operator = Operator.IN) @Builder.Default - private Set ouIds = Collections.emptySet(); + private Collection ouIds = Collections.emptySet(); /** * 指定的协同关系类型 */ @CriteriaField(field = "cooperateType", operator = Operator.IN) @Builder.Default - private Set includeCooperateTypes = Collections.emptySet(); + private Collection includeCooperateTypes = Collections.emptySet(); /** * 待排除的协同关系类型 */ @CriteriaField(field = "cooperateType", operator = Operator.NOT_IN) @Builder.Default - private Set excludeCooperateTypes = Collections.emptySet(); + private Collection excludeCooperateTypes = Collections.emptySet(); /** * 节点id */ @CriteriaField(field = "organizationalNodeId", operator = Operator.IN) @Builder.Default - private Set organizationNodeIds = Collections.emptySet(); + private Collection organizationNodeIds = Collections.emptySet(); /** * 合作关系 1.合作 2.直属 */ @CriteriaField(field = "partnerShip", operator = Operator.IN) @Builder.Default - private Set partnerShips = Collections.emptySet(); + private Collection partnerShips = Collections.emptySet(); /** * 在场状态集合 */ @CriteriaField(field = "status", operator = Operator.IN) @Builder.Default - private Set statuses = Collections.emptySet(); + private Collection statuses = Collections.emptySet(); /** * path右值 */ @CriteriaField(ignore = true) @Builder.Default - private Set pathsRight = Collections.emptySet(); + private Collection pathsRight = Collections.emptySet(); /** * path右值 */ @CriteriaField(field = "parentId", operator = Operator.IN) @Builder.Default - private Set parentIds = Collections.emptySet(); + private Collection parentIds = Collections.emptySet(); /** - * path右值 + * 是否包含删除数据 */ - @CriteriaField(field = "isDelete", operator = Operator.EQ) + @CriteriaField(ignore = true) @Builder.Default - private Long isDelete = 0L; + private Boolean includeDelete = false; /** * 项目单位关系聚合查询 */ - private List workspaceOuPairs; + @CriteriaField(ignore = true) + @Builder.Default + private Collection workspaceOuPairs = Collections.emptyList(); } - @Data - class WorkspaceOuPair { - - /** - * 项目ID - */ - private Long workspaceId; - - /** - * 单位ID - */ - private Long ouId; - } - } diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/cooperateship/repository/impl/CooperateShipQueryRepositoryImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/cooperateship/repository/impl/CooperateShipQueryRepositoryImpl.java index 1e4009a..e702adb 100644 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/cooperateship/repository/impl/CooperateShipQueryRepositoryImpl.java +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/cooperateship/repository/impl/CooperateShipQueryRepositoryImpl.java @@ -1,6 +1,7 @@ package cn.axzo.orgmanax.infra.dao.cooperateship.repository.impl; import cn.axzo.foundation.dao.support.mysql.QueryWrapperHelper; +import cn.axzo.orgmanax.dto.common.WorkspaceOuPair; import cn.axzo.orgmanax.infra.dao.cooperateship.dao.SaasCooperateShipDao; import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip; import cn.axzo.orgmanax.infra.dao.cooperateship.repository.CooperateShipQueryRepository; @@ -55,6 +56,7 @@ public class CooperateShipQueryRepositoryImpl implements CooperateShipQueryRepos return Collections.emptyList(); } + wrapper.eq(!req.getIncludeDelete(), "is_delete", 0); return cooperateShipDao.list(wrapper) .stream().map(e -> BeanUtil.toBean(e, SaasCooperateShip.class)).collect(Collectors.toList()); diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/repository/impl/NodeQueryRepositoryImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/repository/impl/NodeQueryRepositoryImpl.java index 7ab124b..7dadd2f 100644 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/repository/impl/NodeQueryRepositoryImpl.java +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/repository/impl/NodeQueryRepositoryImpl.java @@ -57,6 +57,7 @@ public class NodeQueryRepositoryImpl implements NodeQueryRepository { return PageResp.builder().build(); } + wrapper.eq(!req.getIncludeDelete(), "is_delete", 0); IPage results = nodeDao.page(page, wrapper); PageResp resp = PageConverter.toResp(results); List records = resp.getData(); diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/node/service/impl/NodeServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/node/service/impl/NodeServiceImpl.java index 8fa0378..dc31984 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/node/service/impl/NodeServiceImpl.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/node/service/impl/NodeServiceImpl.java @@ -122,10 +122,11 @@ public class NodeServiceImpl implements NodeService { } // 根据项目ID获取topNodeId进行组织节点过滤 - if (CollUtil.isNotEmpty(req.getWorkspaceIds())) { + if (CollUtil.isNotEmpty(req.getWorkspaceIds()) || CollUtil.isNotEmpty(req.getWorkspaceOuPairs())) { List topNodeIds = CollUtil.map(cooperateShipQueryRepository.list(CooperateShipQueryRepository.ListReq.builder() .workspaceIds(req.getWorkspaceIds()) - .workspaceOuPairs(BeanUtil.copyToList(req.getWorkspaceOuPairs(), CooperateShipQueryRepository.WorkspaceOuPair.class)) + .workspaceOuPairs(req.getWorkspaceOuPairs()) + .includeDelete(false) .build()), SaasCooperateShip::getOrganizationalNodeId, true); if (CollUtil.isEmpty(topNodeIds)) { return emptyPageResp;