feat(REQ-3282): 提供briefDTO,用于聚合
This commit is contained in:
parent
2965d1c0b2
commit
3d4788d670
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
###
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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<OrganizationalNode> page(ListReq req);
|
||||
|
||||
default List<OrganizationalNode> 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();
|
||||
}
|
||||
|
||||
|
||||
@ -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<NodeUserResp> page(ListReq req);
|
||||
|
||||
default List<NodeUserResp> 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();
|
||||
}
|
||||
|
||||
|
||||
@ -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<Long> jobIds = jobService.page(OrgJobPageParam.builder()
|
||||
.jobCodes(req.getOrganizationalJobCodes())
|
||||
.jobCode(req.getOrganizationalJobCode())
|
||||
.jobNameLike(req.getOrganizationalJobNameLike())
|
||||
.build())
|
||||
.getData().stream().map(OrgJobDTO::getId).collect(Collectors.toSet());
|
||||
Set<Long> 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<NodeUserDTO> records) {
|
||||
if (CollUtil.isEmpty(records) || req.getNeeds() == null) {
|
||||
return;
|
||||
@ -122,10 +117,11 @@ public class NodeUserServiceImpl implements NodeUserService {
|
||||
return;
|
||||
}
|
||||
Set<Long> unitIds = records.stream().map(NodeUserDTO::getOrganizationalUnitId).collect(Collectors.toSet());
|
||||
Map<Long, OrgUnitDTO> unitsById = unitService.list(ListUnitReq.builder()
|
||||
.ids(unitIds)
|
||||
.searchCount(false)
|
||||
.build()).getData().stream().collect(Collectors.toMap(OrgUnitDTO::getId, Function.identity()));
|
||||
Map<Long, OrgUnitBriefDTO> 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<Long> jobIds = records.stream().map(NodeUserDTO::getOrganizationalJobId).collect(Collectors.toSet());
|
||||
// assemble job
|
||||
Map<Long, OrgJobDTO> jobsById = jobService.page(OrgJobPageParam.builder()
|
||||
.jobIds(jobIds)
|
||||
.build()).getData().stream().collect(Collectors.toMap(OrgJobDTO::getId, Function.identity()));
|
||||
Map<Long, OrgJobBriefDTO> 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<Long> nodeIds = records.stream().map(NodeUserDTO::getOrganizationalNodeId).collect(Collectors.toSet());
|
||||
// assemble parentNode
|
||||
Map<Long, OrgNodeDTO> 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<Long, OrgNodeBriefDTO> 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())));
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user