feat(REQ-3282): 调整岗位分页的参数

This commit is contained in:
songyuanlun 2024-12-24 14:02:29 +08:00
parent 9cba45b82d
commit d543184f53
14 changed files with 100 additions and 205 deletions

View File

@ -5,7 +5,6 @@ import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO;
import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.DeleteOrgJobReq; import cn.axzo.orgmanax.dto.job.req.DeleteOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.ListOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.PageOrgJobReq; import cn.axzo.orgmanax.dto.job.req.PageOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@ -27,9 +26,6 @@ public interface OrgJobApi {
@PostMapping("/api/job/delete") @PostMapping("/api/job/delete")
ApiResult<Void> delete(@RequestBody @Validated DeleteOrgJobReq req); ApiResult<Void> delete(@RequestBody @Validated DeleteOrgJobReq req);
@PostMapping("/api/job/list")
ApiResult<PageResp<OrgJobDTO>> list(@RequestBody @Validated ListOrgJobReq req);
/** /**
* 分页列表接口 * 分页列表接口
* XXX本接口默认分页单页最多返回1000条数据调用方使用时需注意 * XXX本接口默认分页单页最多返回1000条数据调用方使用时需注意

View File

@ -7,7 +7,7 @@ package cn.axzo.orgmanax.dto.job.dto;
* @date 2024/2/27 * @date 2024/2/27
* @version 1.0 * @version 1.0
*/ */
public interface OrgJobCodeConstants { public interface OrgJobConstants {
/** 项目内工人 **/ /** 项目内工人 **/
String PROJ_WORKER = "projWorker"; String PROJ_WORKER = "projWorker";
@ -36,4 +36,5 @@ public interface OrgJobCodeConstants {
String OLD_CONFIG = "oldJobConfigs"; String OLD_CONFIG = "oldJobConfigs";
String CODE_KEY = "code"; String CODE_KEY = "code";
String OLD_NEW_JOB_CODE_MAP_KEY = "job_code_mapping"; String OLD_NEW_JOB_CODE_MAP_KEY = "job_code_mapping";
Integer JOB_PAGE_SIZE = 1000;
} }

View File

@ -1,7 +1,7 @@
package cn.axzo.orgmanax.dto.job.dto; package cn.axzo.orgmanax.dto.job.dto;
import static cn.axzo.orgmanax.dto.job.dto.OrgJobCodeConstants.CODE_KEY; import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.CODE_KEY;
import static cn.axzo.orgmanax.dto.job.dto.OrgJobCodeConstants.OLD_CONFIG; import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.OLD_CONFIG;
import cn.axzo.orgmanax.dto.job.enums.OrgJobFlagEnum; import cn.axzo.orgmanax.dto.job.enums.OrgJobFlagEnum;
import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum; import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum;

View File

@ -1,42 +0,0 @@
package cn.axzo.orgmanax.dto.job.req;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum;
import java.util.Set;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
public class ListOrgJobReq extends PageReqV2 {
/**
* 名称
*/
private String name;
/**
* 岗位id集合
*/
private Set<Long> jobIds;
/**
* 岗位编码集合
*/
private Set<String> jobCodes;
/**
* 岗位类型
*/
private OrgJobTypeEnum type;
/**
* 搜索关键字
* Notice: 名称或别名的模糊搜索
*/
private String keyword;
}

View File

@ -59,4 +59,25 @@ public class PageOrgJobReq extends PageReqV2 {
*/ */
private OrgJobTypeEnum type; private OrgJobTypeEnum type;
/**
* 岗位类型 1总包单位 2建设单位 3监理单位 4劳务分包 5专业分包 6:OMS 7企业通用 9:班组项目内
*/
private List<Integer> types;
/**
* 可为空,即加载默认和自定义所有岗位 true预定义岗位 false 自定义岗位
*/
private Boolean readonly;
// workspace和unitId 只有自定义类型使用
/**
* 单位/团队 ID 列表
*/
private List<Long> unitIds;
/**
* 工作台id 列表
*/
private List<Long> workspaceIds;
} }

View File

@ -6,11 +6,10 @@ import cn.axzo.orgmanax.api.orgjob.feign.OrgJobApi;
import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO;
import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.DeleteOrgJobReq; import cn.axzo.orgmanax.dto.job.req.DeleteOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.ListOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.PageOrgJobReq; import cn.axzo.orgmanax.dto.job.req.PageOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq;
import cn.axzo.orgmanax.server.orgjob.service.OrgJobService; import cn.axzo.orgmanax.server.orgjob.service.OrgJobService;
import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobAggregatePageParam; import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -39,13 +38,8 @@ public class OrgJobController implements OrgJobApi {
return ApiResult.success(); return ApiResult.success();
} }
@Override
public ApiResult<PageResp<OrgJobDTO>> list(ListOrgJobReq req) {
return ApiResult.success(orgJobService.list(req));
}
@Override @Override
public ApiResult<PageResp<OrgJobDTO>> page(PageOrgJobReq req) { public ApiResult<PageResp<OrgJobDTO>> page(PageOrgJobReq req) {
return ApiResult.success(orgJobService.page(BeanUtil.copyProperties(req, OrgJobAggregatePageParam.class))); return ApiResult.success(orgJobService.page(BeanUtil.copyProperties(req, OrgJobPageParam.class)));
} }
} }

View File

@ -1,9 +1,9 @@
package cn.axzo.orgmanax.server.orgjob.foundation; package cn.axzo.orgmanax.server.orgjob.foundation;
import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.job.req.ListOrgJobReq;
import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO;
import cn.axzo.orgmanax.server.orgjob.foundation.dto.OrgJobCreator; import cn.axzo.orgmanax.server.orgjob.foundation.dto.OrgJobCreator;
import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam;
/** /**
* *
@ -35,5 +35,5 @@ public interface OrgJobFoundationService {
* 查询岗位信息 * 查询岗位信息
* @return * @return
*/ */
PageResp<OrgJobDTO> page(ListOrgJobReq req); PageResp<OrgJobDTO> page(OrgJobPageParam req);
} }

View File

@ -2,12 +2,12 @@ package cn.axzo.orgmanax.server.orgjob.foundation.impl;
import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO;
import cn.axzo.orgmanax.dto.job.req.ListOrgJobReq;
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJob; import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJob;
import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobQueryRepository; import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobQueryRepository;
import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobUpsertRepository; import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobUpsertRepository;
import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobFoundationService; import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobFoundationService;
import cn.axzo.orgmanax.server.orgjob.foundation.dto.OrgJobCreator; import cn.axzo.orgmanax.server.orgjob.foundation.dto.OrgJobCreator;
import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -39,7 +39,7 @@ public class OrgJobFoundationServiceImpl implements OrgJobFoundationService {
} }
@Override @Override
public PageResp<OrgJobDTO> page(ListOrgJobReq req) { public PageResp<OrgJobDTO> page(OrgJobPageParam req) {
PageResp<OrgJobQueryRepository.JobResp> page = orgJobQueryRepository.page(convert(req)); PageResp<OrgJobQueryRepository.JobResp> page = orgJobQueryRepository.page(convert(req));
return PageResp.<OrgJobDTO>builder() return PageResp.<OrgJobDTO>builder()
.size(page.getSize()) .size(page.getSize())
@ -49,7 +49,7 @@ public class OrgJobFoundationServiceImpl implements OrgJobFoundationService {
.build(); .build();
} }
public OrgJobQueryRepository.ListReq convert(ListOrgJobReq req) { public OrgJobQueryRepository.ListReq convert(OrgJobPageParam req) {
OrgJobQueryRepository.ListReq param = BeanUtil.copyProperties(req, OrgJobQueryRepository.ListReq.class); OrgJobQueryRepository.ListReq param = BeanUtil.copyProperties(req, OrgJobQueryRepository.ListReq.class);
param.setIds(req.getJobIds()); param.setIds(req.getJobIds());
param.setCodes(req.getJobCodes()); param.setCodes(req.getJobCodes());

View File

@ -1,6 +1,6 @@
package cn.axzo.orgmanax.server.orgjob.foundation.impl; package cn.axzo.orgmanax.server.orgjob.foundation.impl;
import static cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam.JOB_PAGE_SIZE; import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.JOB_PAGE_SIZE;
import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupDTO;

View File

@ -1,6 +1,6 @@
package cn.axzo.orgmanax.server.orgjob.foundation.impl; package cn.axzo.orgmanax.server.orgjob.foundation.impl;
import static cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam.JOB_PAGE_SIZE; import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.JOB_PAGE_SIZE;
import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupRelationDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupRelationDTO;

View File

@ -4,9 +4,8 @@ import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO;
import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.DeleteOrgJobReq; import cn.axzo.orgmanax.dto.job.req.DeleteOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.ListOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq;
import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobAggregatePageParam; import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam;
public interface OrgJobService { public interface OrgJobService {
@ -32,14 +31,7 @@ public interface OrgJobService {
void delete(DeleteOrgJobReq req); void delete(DeleteOrgJobReq req);
/** /**
* 查询岗位 * 分页查询岗位
* @param req
* @return
*/ */
PageResp<OrgJobDTO> list(ListOrgJobReq req); PageResp<OrgJobDTO> page(OrgJobPageParam req);
/**
* 聚合查询岗位
*/
PageResp<OrgJobDTO> page(OrgJobAggregatePageParam req);
} }

View File

@ -1,77 +0,0 @@
package cn.axzo.orgmanax.server.orgjob.service.dto;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.orgmanax.dto.job.enums.OrgJobGroupFlagEnum;
import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum;
import cn.hutool.core.collection.CollUtil;
import java.util.Objects;
import java.util.Set;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.StringUtils;
/**
* @author luofu
* @version 1.0
* @date 2024/9/12
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class OrgJobAggregatePageParam extends PageReqV2 {
/**
* 岗位分组标识集合
*/
private Set<OrgJobGroupFlagEnum> orgJobGroupFlags;
/**
* 分组编码集合
*/
private Set<String> orgJobGroupCodes;
/**
* 岗位id集合
*/
private Set<Long> jobIds;
/**
* 岗位编码集合
*/
private Set<String> jobCodes;
/**
* 岗位类型
*/
private OrgJobTypeEnum type;
/**
* 搜索关键字
* Notice: 名称或别名的模糊搜索
*/
private String keyword;
/**
* 是否需要查询角色信息
*/
@Builder.Default
private Boolean needSaasRole = false;
/**
* 是否需要查询岗位分组信息
*/
@Builder.Default
private Boolean needJobGroup = false;
public boolean isInvalid() {
return CollUtil.isEmpty(orgJobGroupFlags)
&& CollUtil.isEmpty(orgJobGroupCodes)
&& CollUtil.isEmpty(jobIds)
&& CollUtil.isEmpty(jobCodes)
&& Objects.isNull(type)
&& StringUtils.isBlank(keyword);
}
@Override
public String toString() {
return super.toString();
}
}

View File

@ -1,13 +1,14 @@
package cn.axzo.orgmanax.server.orgjob.service.dto; package cn.axzo.orgmanax.server.orgjob.service.dto;
import cn.axzo.foundation.page.PageReqV2; import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.orgmanax.dto.job.enums.OrgJobGroupFlagEnum;
import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum; import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum;
import cn.axzo.orgmanax.dto.job.req.ListOrgJobReq;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
@ -16,7 +17,7 @@ import org.apache.commons.lang3.StringUtils;
/** /**
* @author luofu * @author luofu
* @version 1.0 * @version 1.0
* @date 2024/9/18 * @date 2024/9/12
*/ */
@Data @Data
@SuperBuilder @SuperBuilder
@ -25,8 +26,15 @@ import org.apache.commons.lang3.StringUtils;
public class OrgJobPageParam extends PageReqV2 { public class OrgJobPageParam extends PageReqV2 {
public static final OrgJobPageParam EMPTY_INSTANCE = new OrgJobPageParam(); public static final OrgJobPageParam EMPTY_INSTANCE = new OrgJobPageParam();
public static final Integer JOB_PAGE_SIZE = 1000;
/**
* 岗位分组标识集合
*/
private Set<OrgJobGroupFlagEnum> orgJobGroupFlags;
/**
* 分组编码集合
*/
private Set<String> orgJobGroupCodes;
/** /**
* 岗位id集合 * 岗位id集合
*/ */
@ -45,36 +53,47 @@ public class OrgJobPageParam extends PageReqV2 {
*/ */
private String keyword; private String keyword;
public static OrgJobPageParam from(OrgJobAggregatePageParam param) { /**
OrgJobPageParam jobPageParam = new OrgJobPageParam(); * 是否需要查询角色信息
jobPageParam.setType(param.getType()); */
jobPageParam.setKeyword(param.getKeyword()); @Builder.Default
jobPageParam.setJobIds(param.getJobIds()); private Boolean needSaasRole = false;
jobPageParam.setJobCodes(param.getJobCodes()); /**
jobPageParam.setPage(param.getPage()); * 是否需要查询岗位分组信息
jobPageParam.setPageSize(param.getPageSize()); */
return jobPageParam; @Builder.Default
} private Boolean needJobGroup = false;
/**
* 岗位类型 1总包单位 2建设单位 3监理单位 4劳务分包 5专业分包 6:OMS 7企业通用 9:班组项目内
*/
private List<Integer> types;
/**
* 可为空,即加载默认和自定义所有岗位 true预定义岗位 false 自定义岗位
*/
private Boolean readonly;
// workspace和unitId 只有自定义类型使用
/**
* 单位/团队 ID 列表
*/
private List<Long> unitIds;
/**
* 工作台id 列表
*/
private List<Long> workspaceIds;
public boolean isInvalid() { public boolean isInvalid() {
return CollUtil.isEmpty(jobIds) return CollUtil.isEmpty(orgJobGroupFlags)
&& CollUtil.isEmpty(orgJobGroupCodes)
&& CollUtil.isEmpty(jobIds)
&& CollUtil.isEmpty(jobCodes) && CollUtil.isEmpty(jobCodes)
&& Objects.isNull(type) && Objects.isNull(type)
&& StringUtils.isBlank(keyword); && StringUtils.isBlank(keyword);
} }
public ListOrgJobReq convert() {
return BeanUtil.toBean(this, ListOrgJobReq.class);
}
// public Integer getPage() {
// return Optional.ofNullable(super.getPage()).orElse(1);
// }
//
// public Integer getPageSize() {
// return Optional.ofNullable(super.getPageSize()).orElse(20);
// }
@Override @Override
public String toString() { public String toString() {
return super.toString(); return super.toString();

View File

@ -1,27 +1,25 @@
package cn.axzo.orgmanax.server.orgjob.service.impl; package cn.axzo.orgmanax.server.orgjob.service.impl;
import static cn.axzo.orgmanax.dto.job.dto.OrgJobCodeConstants.CODE_KEY; import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.CODE_KEY;
import static cn.axzo.orgmanax.dto.job.dto.OrgJobCodeConstants.OLD_CONFIG; import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.JOB_PAGE_SIZE;
import static cn.axzo.orgmanax.dto.job.dto.OrgJobCodeConstants.OLD_NEW_JOB_CODE_MAP_KEY; import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.OLD_CONFIG;
import static cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam.JOB_PAGE_SIZE; import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.OLD_NEW_JOB_CODE_MAP_KEY;
import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO; import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO;
import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupDTO;
import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupRelationDTO;
import cn.axzo.orgmanax.dto.job.dto.RoleDTO; import cn.axzo.orgmanax.dto.job.dto.RoleDTO;
import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum; import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum;
import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.CreateOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.DeleteOrgJobReq; import cn.axzo.orgmanax.dto.job.req.DeleteOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.ListOrgJobReq;
import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq;
import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupDTO;
import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupRelationDTO;
import cn.axzo.orgmanax.infra.client.tyr.RoleGateway; import cn.axzo.orgmanax.infra.client.tyr.RoleGateway;
import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobFoundationService; import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobFoundationService;
import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobGroupFoundationService; import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobGroupFoundationService;
import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobGroupRelationFoundationService; import cn.axzo.orgmanax.server.orgjob.foundation.OrgJobGroupRelationFoundationService;
import cn.axzo.orgmanax.server.orgjob.foundation.dto.OrgJobCreator; import cn.axzo.orgmanax.server.orgjob.foundation.dto.OrgJobCreator;
import cn.axzo.orgmanax.server.orgjob.service.OrgJobService; import cn.axzo.orgmanax.server.orgjob.service.OrgJobService;
import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobAggregatePageParam;
import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobGroupPageParam; import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobGroupPageParam;
import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobGroupRelationPageParam; import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobGroupRelationPageParam;
import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam; import cn.axzo.orgmanax.server.orgjob.service.dto.OrgJobPageParam;
@ -86,18 +84,13 @@ public class OrgJobServiceImpl implements OrgJobService {
} }
@Override @Override
public PageResp<OrgJobDTO> list(ListOrgJobReq req) { public PageResp<OrgJobDTO> page(OrgJobPageParam param) {
return foundationService.page(req);
}
@Override
public PageResp<OrgJobDTO> page(OrgJobAggregatePageParam param) {
if (param.isInvalid()) { if (param.isInvalid()) {
log.info("org job page param is invalid. param:{}", JSONUtil.toJsonStr(param)); log.info("org job page param is invalid. param:{}", JSONUtil.toJsonStr(param));
return PageResp.<OrgJobDTO>builder().build(); return PageResp.<OrgJobDTO>builder().build();
} }
OrgJobPageParam orgJobPageParam = resolveJobPageParam(param); OrgJobPageParam orgJobPageParam = resolveJobPageParam(param);
PageResp<OrgJobDTO> orgJobs = foundationService.page(orgJobPageParam.convert()); PageResp<OrgJobDTO> orgJobs = foundationService.page(param);
if (CollUtil.isEmpty(orgJobs.getData())) { if (CollUtil.isEmpty(orgJobs.getData())) {
log.info("org job page there is not any job. param:{}", JSONUtil.toJsonStr(orgJobPageParam)); log.info("org job page there is not any job. param:{}", JSONUtil.toJsonStr(orgJobPageParam));
return PageResp.<OrgJobDTO>builder().build(); return PageResp.<OrgJobDTO>builder().build();
@ -183,12 +176,11 @@ public class OrgJobServiceImpl implements OrgJobService {
.forEach(e -> e.setJobGroup(groupMap.get(relationGroup.get(e.getCode())))); .forEach(e -> e.setJobGroup(groupMap.get(relationGroup.get(e.getCode()))));
} }
private OrgJobPageParam resolveJobPageParam(OrgJobAggregatePageParam param) { private OrgJobPageParam resolveJobPageParam(OrgJobPageParam param) {
OrgJobPageParam jobPageParam = OrgJobPageParam.from(param); param.setJobCodes(resolveJobCodes(param.getJobCodes()));
jobPageParam.setJobCodes(resolveJobCodes(param.getJobCodes()));
if (CollUtil.isEmpty(param.getOrgJobGroupCodes()) if (CollUtil.isEmpty(param.getOrgJobGroupCodes())
&& CollUtil.isEmpty(param.getOrgJobGroupFlags())) { && CollUtil.isEmpty(param.getOrgJobGroupFlags())) {
return jobPageParam; return param;
} }
// 通过分组相关参数参数JOB // 通过分组相关参数参数JOB
OrgJobGroupPageParam groupListParam = OrgJobGroupPageParam.builder() OrgJobGroupPageParam groupListParam = OrgJobGroupPageParam.builder()
@ -201,20 +193,20 @@ public class OrgJobServiceImpl implements OrgJobService {
JSONUtil.toJsonStr(groupListParam)); JSONUtil.toJsonStr(groupListParam));
return OrgJobPageParam.EMPTY_INSTANCE; return OrgJobPageParam.EMPTY_INSTANCE;
} }
if (CollUtil.isEmpty(jobPageParam.getJobCodes())) { if (CollUtil.isEmpty(param.getJobCodes())) {
// 直接设置jobCodes入参 // 直接设置jobCodes入参
jobPageParam.setJobCodes(jobCodes); param.setJobCodes(jobCodes);
} else { } else {
// jobCodes取交集 // jobCodes取交集
Collection<String> intersection = CollUtil.intersection(jobPageParam.getJobCodes(), jobCodes); Collection<String> intersection = CollUtil.intersection(param.getJobCodes(), jobCodes);
if (CollUtil.isEmpty(intersection)) { if (CollUtil.isEmpty(intersection)) {
log.info("resolveJobPageParam the intersection is empty. param:{}", log.info("resolveJobPageParam the intersection is empty. param:{}",
JSONUtil.toJsonStr(groupListParam)); JSONUtil.toJsonStr(groupListParam));
return OrgJobPageParam.EMPTY_INSTANCE; return OrgJobPageParam.EMPTY_INSTANCE;
} }
jobPageParam.setJobCodes(Sets.newHashSet(intersection)); param.setJobCodes(Sets.newHashSet(intersection));
} }
return jobPageParam; return param;
} }
private Set<String> resolveJobCodesByGroup(OrgJobGroupPageParam groupListParam) { private Set<String> resolveJobCodesByGroup(OrgJobGroupPageParam groupListParam) {
@ -251,14 +243,13 @@ public class OrgJobServiceImpl implements OrgJobService {
} }
public List<OrgJobDTO> whileQuery(OrgJobPageParam param) { public List<OrgJobDTO> whileQuery(OrgJobPageParam param) {
ListOrgJobReq listParam = ListOrgJobReq.builder().type(param.getType()).build();
List<OrgJobDTO> jobs = new ArrayList<>(); List<OrgJobDTO> jobs = new ArrayList<>();
PageResp<OrgJobDTO> jobPage; PageResp<OrgJobDTO> jobPage;
int pageNumber = 0; int pageNumber = 0;
param.setPageSize(JOB_PAGE_SIZE); param.setPageSize(JOB_PAGE_SIZE);
do { do {
param.setPage(++pageNumber); param.setPage(++pageNumber);
jobPage = foundationService.page(listParam); jobPage = foundationService.page(param);
if (CollUtil.isNotEmpty(jobPage.getData())) { if (CollUtil.isNotEmpty(jobPage.getData())) {
jobs.addAll(jobPage.getData()); jobs.addAll(jobPage.getData());
} }