diff --git a/orgmanax-api/src/test/resources/http/nodeuser/node-user.http b/orgmanax-api/src/test/resources/http/nodeuser/node-user.http index 36167a0..2ee10a5 100644 --- a/orgmanax-api/src/test/resources/http/nodeuser/node-user.http +++ b/orgmanax-api/src/test/resources/http/nodeuser/node-user.http @@ -4,7 +4,18 @@ Content-Type: application/json Accept: application/json { - "id": 984 +// "id": 984, + "realNameLike": "周阳", + "phone": "18530039500", + "idNumber": "410205198601221016", + "personId": 5354, + "includeDeleted": true, + "pageSize": 2, + "needs": { + "job": true, + "node": true, + "unit": true + } } ### \ No newline at end of file diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/job/dto/OrgJobBriefDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/job/dto/OrgJobBriefDTO.java new file mode 100644 index 0000000..c28d5b7 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/job/dto/OrgJobBriefDTO.java @@ -0,0 +1,42 @@ +package cn.axzo.orgmanax.dto.job.dto; + +import cn.axzo.orgmanax.dto.job.enums.OrgJobFlagEnum; +import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@NoArgsConstructor +@AllArgsConstructor +@Data +@SuperBuilder +public class OrgJobBriefDTO { + /** + * 主键 + */ + private Long id; + + /** + * 名称 + */ + private String name; + + /** + * 别名 + */ + private String alias; + + /** + * 编码 + */ + private String code; + /** + * 岗位类型:SYSTEM - 系统,CUSTOM - 自定义 + */ + private OrgJobTypeEnum type; + /** + * 岗位标签:SYSTEM - 系统岗,BUSINESS - 业务岗 + */ + private OrgJobFlagEnum flag; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/dto/OrgNodeBriefDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/dto/OrgNodeBriefDTO.java new file mode 100644 index 0000000..566e1ba --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/node/dto/OrgNodeBriefDTO.java @@ -0,0 +1,62 @@ +package cn.axzo.orgmanax.dto.node.dto; + +import com.alibaba.fastjson.JSONObject; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +@NoArgsConstructor +@AllArgsConstructor +@Data +@SuperBuilder +public class OrgNodeBriefDTO implements Serializable { + + protected Long id; + /** + * 上级id,为0时为顶级节点 + */ + private Long parentId; + + /** + * 单位id + */ + private Long organizationalUnitId; + + /** + * 节点类型 1.部门 2.班组 3.小组 + */ + private Integer nodeType; + + /** + * 节点名称 + */ + private String nodeName; + + /** + * 层级路由 + */ + private String path; + + /** + * 扩展字段 + */ + private JSONObject extra; + + /** + * 顶级节点的nodeId + */ + private Long topNodeId; + /** + * 节点状态 1-正常 0-停用 + **/ + private Integer nodeState; + + /** + * 节点信息,json,不同的节点类型,格式不一。如班组节点的解散状态等 + */ + private JSONObject profile; + +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/nodeuser/dto/NodeUserDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/nodeuser/dto/NodeUserDTO.java index b932384..228b8b2 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/nodeuser/dto/NodeUserDTO.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/nodeuser/dto/NodeUserDTO.java @@ -1,8 +1,10 @@ package cn.axzo.orgmanax.dto.nodeuser.dto; -import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; +import cn.axzo.orgmanax.dto.job.dto.OrgJobBriefDTO; +import cn.axzo.orgmanax.dto.node.dto.OrgNodeBriefDTO; import cn.axzo.orgmanax.dto.node.dto.OrgNodeDTO; import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq; +import cn.axzo.orgmanax.dto.unit.dto.OrgUnitBriefDTO; import cn.axzo.orgmanax.dto.unit.dto.OrgUnitDTO; import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; @@ -150,13 +152,13 @@ public class NodeUserDTO implements Serializable { /** * 需指定{@link ListNodeUserReq.Needs#getNode()} 为true才会返回 */ - private OrgNodeDTO node; + private OrgNodeBriefDTO node; /** * 需指定{@link ListNodeUserReq.Needs#getUnit()} 为true才会返回 */ - private OrgUnitDTO unit; + private OrgUnitBriefDTO unit; /** * 需指定{@link ListNodeUserReq.Needs#getJob()} 为true才会返回 */ - private OrgJobDTO job; + private OrgJobBriefDTO job; } diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/dto/OrgUnitBriefDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/dto/OrgUnitBriefDTO.java new file mode 100644 index 0000000..a35ca55 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/dto/OrgUnitBriefDTO.java @@ -0,0 +1,63 @@ +package cn.axzo.orgmanax.dto.unit.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +@NoArgsConstructor +@SuperBuilder +@Data +@AllArgsConstructor +public class OrgUnitBriefDTO implements Serializable { + + private Long id; + + /** + * 父单位id + */ + private Long parentId; + + /** + * 单位名称 + */ + private String name; + + /** + * 单位logo url地址 + */ + private String logoUrl; + + /** + * 单位类型 1:总包单位 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6.项目外班组 7.安心筑平台 + */ + private Integer type; + + /** + * 单位性质:0:其他 1:团队 2:企业 3:班组 + */ + private Integer nature; + + /** + * 统一社会信用码 + */ + private String uniformSocialCreditCode; + + /** + * 班组长身份id + */ + private Long identityId; + + /** + * 身份类型 1.无身份 2.班组长 + */ + private Integer identityType; + + /** + * 企业标签1正式企业 2测试企业 + */ + private Integer entTag; + +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/repository/NodeQueryRepository.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/repository/NodeQueryRepository.java index eba30b4..184da65 100644 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/repository/NodeQueryRepository.java +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/repository/NodeQueryRepository.java @@ -5,15 +5,22 @@ import cn.axzo.foundation.dao.support.wrapper.CriteriaField; import cn.axzo.foundation.dao.support.wrapper.Operator; import cn.axzo.foundation.page.PageReqV2; import cn.axzo.foundation.page.PageResp; -import cn.axzo.orgmanax.dto.node.req.ListNodeReq; import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNode; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.google.common.base.Preconditions; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; -import java.util.*; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.Set; /** * @author tanjie@axzo.cn @@ -24,6 +31,7 @@ public interface NodeQueryRepository { PageResp page(ListReq req); default List list(ListReq req) { + req.setSearchCount(false); return page(req).getData(); } @@ -36,6 +44,7 @@ public interface NodeQueryRepository { ListReq page = BeanUtil.toBean(req, ListReq.class); page.setPage(1); page.setPageSize(1); + page.setSearchCount(false); return page(page).getData().stream().findFirst(); } diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/nodeuser/repository/NodeUserQueryRepository.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/nodeuser/repository/NodeUserQueryRepository.java index de472f5..2f13108 100644 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/nodeuser/repository/NodeUserQueryRepository.java +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/nodeuser/repository/NodeUserQueryRepository.java @@ -11,7 +11,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.google.common.base.Preconditions; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -28,6 +27,7 @@ public interface NodeUserQueryRepository { PageResp page(ListReq req); default List list(ListReq req) { + req.setSearchCount(false); return page(req).getData(); } @@ -40,6 +40,7 @@ public interface NodeUserQueryRepository { ListReq page = BeanUtil.toBean(req, ListReq.class); page.setPage(1); page.setPageSize(1); + page.setSearchCount(false); return page(page).getData().stream().findFirst(); } diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/nodeuser/service/impl/NodeUserServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/nodeuser/service/impl/NodeUserServiceImpl.java index 5542958..eef9aaa 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/nodeuser/service/impl/NodeUserServiceImpl.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/nodeuser/service/impl/NodeUserServiceImpl.java @@ -3,24 +3,21 @@ package cn.axzo.orgmanax.server.nodeuser.service.impl; import cn.axzo.foundation.exception.Axssert; import cn.axzo.foundation.page.PageResp; import cn.axzo.orgmanax.common.config.BizResultCode; -import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; -import cn.axzo.orgmanax.dto.node.dto.OrgNodeDTO; -import cn.axzo.orgmanax.dto.node.req.ListNodeReq; +import cn.axzo.orgmanax.dto.job.dto.OrgJobBriefDTO; +import cn.axzo.orgmanax.dto.node.dto.OrgNodeBriefDTO; import cn.axzo.orgmanax.dto.nodeuser.dto.NodeUserDTO; import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq; import cn.axzo.orgmanax.dto.nodeuser.req.ProcessNodeUserReq; import cn.axzo.orgmanax.dto.nodeuser.req.SearchEntNodeUserReq; import cn.axzo.orgmanax.dto.nodeuser.resp.SearchEntNodeUserResp; -import cn.axzo.orgmanax.dto.unit.dto.OrgUnitDTO; -import cn.axzo.orgmanax.dto.unit.req.ListUnitReq; +import cn.axzo.orgmanax.dto.unit.dto.OrgUnitBriefDTO; +import cn.axzo.orgmanax.infra.dao.node.repository.NodeQueryRepository; import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserQueryRepository; -import cn.axzo.orgmanax.server.node.service.NodeService; +import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobQueryRepository; +import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository; import cn.axzo.orgmanax.server.nodeuser.foundation.NodeUserFoundationService; import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService; import cn.axzo.orgmanax.server.nodeuser.service.processor.NodeUserProcessor; -import cn.axzo.orgmanax.server.orgjob.service.OrgJobService; -import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam; -import cn.axzo.orgmanax.server.unit.service.UnitService; import cn.axzo.orgmanax.server.util.QueryConditionAssembler; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; @@ -46,11 +43,11 @@ public class NodeUserServiceImpl implements NodeUserService { private final NodeUserQueryRepository nodeUserQueryRepository; @Autowired - private NodeService nodeService; + private NodeQueryRepository nodeQueryRepository; @Autowired - private OrgJobService jobService; + private OrgJobQueryRepository jobQueryRepository; @Autowired - private UnitService unitService; + private UnitQueryRepository unitQueryRepository; private final ApplicationContext applicationContext; private final NodeUserFoundationService nodeUserFoundationService; @@ -87,12 +84,11 @@ public class NodeUserServiceImpl implements NodeUserService { if (CollUtil.isNotEmpty(req.getOrganizationalJobCodes()) || StrUtil.isNotBlank(req.getOrganizationalJobCode()) || StrUtil.isNotBlank(req.getOrganizationalJobNameLike())) { - Set jobIds = jobService.page(OrgJobPageParam.builder() - .jobCodes(req.getOrganizationalJobCodes()) - .jobCode(req.getOrganizationalJobCode()) - .jobNameLike(req.getOrganizationalJobNameLike()) - .build()) - .getData().stream().map(OrgJobDTO::getId).collect(Collectors.toSet()); + Set jobIds = jobQueryRepository.list(OrgJobQueryRepository.ListReq.builder() + .codes(req.getOrganizationalJobCodes()) + .code(req.getOrganizationalJobCode()) + .nameLike(req.getOrganizationalJobNameLike()) + .build()).stream().map(OrgJobQueryRepository.JobResp::getId).collect(Collectors.toSet()); if (jobIds.isEmpty()) { return emptyPage; } @@ -113,7 +109,6 @@ public class NodeUserServiceImpl implements NodeUserService { return nodeUserFoundationService.searchEntUser(req); } - private void assembleUnit(ListNodeUserReq req, List records) { if (CollUtil.isEmpty(records) || req.getNeeds() == null) { return; @@ -122,10 +117,11 @@ public class NodeUserServiceImpl implements NodeUserService { return; } Set unitIds = records.stream().map(NodeUserDTO::getOrganizationalUnitId).collect(Collectors.toSet()); - Map unitsById = unitService.list(ListUnitReq.builder() - .ids(unitIds) - .searchCount(false) - .build()).getData().stream().collect(Collectors.toMap(OrgUnitDTO::getId, Function.identity())); + Map unitsById = unitQueryRepository.list(UnitQueryRepository.ListReq.builder() + .ids(unitIds) + .build()) + .stream().map(unit -> BeanUtil.toBean(unit, OrgUnitBriefDTO.class)) + .collect(Collectors.toMap(OrgUnitBriefDTO::getId, Function.identity())); records.forEach(r -> r.setUnit(unitsById.get(r.getOrganizationalUnitId()))); } @@ -138,9 +134,11 @@ public class NodeUserServiceImpl implements NodeUserService { } Set jobIds = records.stream().map(NodeUserDTO::getOrganizationalJobId).collect(Collectors.toSet()); // assemble job - Map jobsById = jobService.page(OrgJobPageParam.builder() - .jobIds(jobIds) - .build()).getData().stream().collect(Collectors.toMap(OrgJobDTO::getId, Function.identity())); + Map jobsById = jobQueryRepository.list(OrgJobQueryRepository.ListReq.builder() + .ids(jobIds) + .build()).stream() + .map(job -> BeanUtil.toBean(job, OrgJobBriefDTO.class)) + .collect(Collectors.toMap(OrgJobBriefDTO::getId, Function.identity())); records.forEach(r -> r.setJob(jobsById.get(r.getOrganizationalJobId()))); } @@ -152,11 +150,12 @@ public class NodeUserServiceImpl implements NodeUserService { return; } Set nodeIds = records.stream().map(NodeUserDTO::getOrganizationalNodeId).collect(Collectors.toSet()); - // assemble parentNode - Map nodesById = nodeService.list(ListNodeReq.builder() - .ids(nodeIds) - .includeAncestors(BooleanUtil.isTrue(req.getNeeds().getAncestorNode())) - .build()).stream().collect(Collectors.toMap(OrgNodeDTO::getId, Function.identity())); + // assemble node + Map nodesById = nodeQueryRepository.list(NodeQueryRepository.ListReq.builder() + .ids(nodeIds) + .build()).stream() + .map(node -> BeanUtil.toBean(node, OrgNodeBriefDTO.class)) + .collect(Collectors.toMap(OrgNodeBriefDTO::getId, Function.identity())); records.forEach(r -> r.setNode(nodesById.get(r.getOrganizationalNodeId()))); }