feat(REQ-3282): 岗位接口调整和处理服务启动问题

This commit is contained in:
songyuanlun 2024-12-24 15:49:16 +08:00
parent 7e7bd19b74
commit ddaa3f7c1b
11 changed files with 143 additions and 75 deletions

View File

@ -30,6 +30,6 @@ public interface OrgJobApi {
* 分页列表接口 * 分页列表接口
* XXX本接口默认分页单页最多返回1000条数据调用方使用时需注意 * XXX本接口默认分页单页最多返回1000条数据调用方使用时需注意
*/ */
@PostMapping("/api/job/page") @PostMapping("/api/job/list")
ApiResult<PageResp<OrgJobDTO>> page(@RequestBody @Validated PageOrgJobReq req); ApiResult<PageResp<OrgJobDTO>> list(@RequestBody @Validated PageOrgJobReq req);
} }

View File

@ -2,7 +2,6 @@ package cn.axzo.orgmanax.dto.job.req;
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.OrgJobGroupFlagEnum;
import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -54,30 +53,24 @@ public class PageOrgJobReq extends PageReqV2 {
*/ */
private String keyword; private String keyword;
/**
* 岗位类型
*/
private OrgJobTypeEnum type;
/** /**
* 岗位类型 1总包单位 2建设单位 3监理单位 4劳务分包 5专业分包 6:OMS 7企业通用 9:班组项目内 * 岗位类型 1总包单位 2建设单位 3监理单位 4劳务分包 5专业分包 6:OMS 7企业通用 9:班组项目内
*/ */
private List<Integer> types; private List<Integer> cooperateTypes;
/** /**
* 可为空,即加载默认和自定义所有岗位 true预定义岗位 false 自定义岗位 * 可为空,即加载默认和自定义所有岗位 true预定义岗位 false 自定义岗位
*/ */
private Boolean readonly; private Boolean readonly;
// workspace和unitId 只有自定义类型使用
/** /**
* 单位/团队 ID 列表 * 单位/团队 ID.
*/ */
private List<Long> unitIds; private Long ouId;
/** /**
* 工作台id 列表 * 工作台id
*/ */
private List<Long> workspaceIds; private Long workspaceId;
} }

View File

@ -16,17 +16,6 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.Collection;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public interface OrgJobQueryRepository { public interface OrgJobQueryRepository {
@ -68,7 +57,7 @@ public interface OrgJobQueryRepository {
/** /**
* 岗位类型 * 岗位类型
*/ */
@CriteriaField @CriteriaField(field = "type")
private OrgJobTypeEnum type; private OrgJobTypeEnum type;
/** /**

View File

@ -3,24 +3,23 @@ package cn.axzo.orgmanax.server.cooperateship.foundation.impl;
import cn.axzo.orgmanax.dto.nodeuser.dto.NodeUserDTO; import cn.axzo.orgmanax.dto.nodeuser.dto.NodeUserDTO;
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq; import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip; import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip;
import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserQueryRepository;
import cn.axzo.orgmanax.server.cooperateship.foundation.CooperateShipFoundationService; import cn.axzo.orgmanax.server.cooperateship.foundation.CooperateShipFoundationService;
import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService; import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@RequiredArgsConstructor @RequiredArgsConstructor
@Service @Service
public class CooperateShipFoundationServiceImpl implements CooperateShipFoundationService { public class CooperateShipFoundationServiceImpl implements CooperateShipFoundationService {
@Autowired
private final NodeUserService nodeUserService; private NodeUserService nodeUserService;
@Override @Override
public void filterByPerson(Long filterPersonId, List<SaasCooperateShip> list) { public void filterByPerson(Long filterPersonId, List<SaasCooperateShip> list) {

View File

@ -28,6 +28,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@ -54,7 +55,8 @@ public class CooperateShipServiceImpl implements CooperateShipService {
private final UnitQueryRepository unitQueryRepository; private final UnitQueryRepository unitQueryRepository;
private final WorkspaceGateway workspaceGateway; private final WorkspaceGateway workspaceGateway;
private final EventProducer eventProducer; private final EventProducer eventProducer;
private final CooperateShipFoundationService cooperateShipFoundationService; @Autowired
private CooperateShipFoundationService cooperateShipFoundationService;
private final NodeUserQueryRepository nodeUserQueryRepository; private final NodeUserQueryRepository nodeUserQueryRepository;
@Override @Override

View File

@ -2,23 +2,16 @@ package cn.axzo.orgmanax.server.node.service.impl;
import cn.axzo.foundation.exception.Axssert; import cn.axzo.foundation.exception.Axssert;
import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.cooperateship.enums.SaasCooperateShipCooperateTypeEnum; import cn.axzo.orgmanax.common.config.BizResultCode;
import cn.axzo.orgmanax.dto.node.dto.OrgNodeDTO;
import cn.axzo.orgmanax.dto.node.req.ListNodeReq; import cn.axzo.orgmanax.dto.node.req.ListNodeReq;
import cn.axzo.orgmanax.dto.node.req.ProcessNodeReq; import cn.axzo.orgmanax.dto.node.req.ProcessNodeReq;
import cn.axzo.orgmanax.dto.node.dto.OrgNodeDTO;
import cn.axzo.orgmanax.common.config.BizResultCode;
import cn.axzo.orgmanax.dto.nodeuser.dto.NodeUserDTO; import cn.axzo.orgmanax.dto.nodeuser.dto.NodeUserDTO;
import cn.axzo.orgmanax.infra.client.tyr.TyrSaasRoleUserClient;
import cn.axzo.orgmanax.infra.client.tyr.dto.BatchSuperAdminListReq;
import cn.axzo.orgmanax.infra.client.tyr.dto.BatchSuperAdminListResp;
import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip;
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq; import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
import cn.axzo.orgmanax.infra.dao.cooperateship.entity.SaasCooperateShip;
import cn.axzo.orgmanax.infra.dao.cooperateship.repository.CooperateShipQueryRepository; import cn.axzo.orgmanax.infra.dao.cooperateship.repository.CooperateShipQueryRepository;
import cn.axzo.orgmanax.infra.dao.node.entity.OrganizationalNode;
import cn.axzo.orgmanax.infra.dao.node.repository.NodeQueryRepository; import cn.axzo.orgmanax.infra.dao.node.repository.NodeQueryRepository;
import cn.axzo.orgmanax.infra.dao.nodeuser.entity.OrganizationalNodeUser;
import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserQueryRepository; import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserQueryRepository;
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.server.node.foundation.NodeFoundationService; import cn.axzo.orgmanax.server.node.foundation.NodeFoundationService;
import cn.axzo.orgmanax.server.node.service.NodeService; import cn.axzo.orgmanax.server.node.service.NodeService;
@ -27,20 +20,20 @@ import cn.axzo.orgmanax.server.nodeuser.foundation.NodeUserFoundationService;
import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService; import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.BooleanUtil;
import com.google.common.collect.ImmutableMap; import java.util.Arrays;
import lombok.RequiredArgsConstructor; import java.util.HashSet;
import lombok.extern.slf4j.Slf4j; import java.util.List;
import org.apache.commons.lang3.StringUtils; import java.util.Map;
import org.springframework.context.ApplicationContext; import java.util.Objects;
import org.springframework.stereotype.Service; import java.util.Set;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.function.Consumer;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
@Slf4j @Slf4j
@Service @Service
@ -54,7 +47,8 @@ public class NodeServiceImpl implements NodeService {
private final NodeUserFoundationService nodeUserFoundationService; private final NodeUserFoundationService nodeUserFoundationService;
private final CooperateShipQueryRepository cooperateShipQueryRepository; private final CooperateShipQueryRepository cooperateShipQueryRepository;
private final NodeFoundationService nodeFoundationService; private final NodeFoundationService nodeFoundationService;
private final NodeUserService nodeUserService; @Autowired
private NodeUserService nodeUserService;
@Override @Override
public NodeProcessor.ProcessResult process(ProcessNodeReq req) { public NodeProcessor.ProcessResult process(ProcessNodeReq req) {

View File

@ -26,6 +26,7 @@ import cn.hutool.core.util.StrUtil;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -41,9 +42,12 @@ import java.util.stream.Collectors;
public class NodeUserServiceImpl implements NodeUserService { public class NodeUserServiceImpl implements NodeUserService {
private final NodeUserQueryRepository nodeUserQueryRepository; private final NodeUserQueryRepository nodeUserQueryRepository;
private final NodeService nodeService; @Autowired
private final OrgJobService jobService; private NodeService nodeService;
private final UnitService unitService; @Autowired
private OrgJobService jobService;
@Autowired
private UnitService unitService;
private final ApplicationContext applicationContext; private final ApplicationContext applicationContext;
@Override @Override

View File

@ -39,7 +39,7 @@ public class OrgJobController implements OrgJobApi {
} }
@Override @Override
public ApiResult<PageResp<OrgJobDTO>> page(PageOrgJobReq req) { public ApiResult<PageResp<OrgJobDTO>> list(PageOrgJobReq req) {
return ApiResult.success(orgJobService.page(BeanUtil.copyProperties(req, OrgJobPageParam.class))); return ApiResult.success(orgJobService.page(BeanUtil.copyProperties(req, OrgJobPageParam.class)));
} }
} }

View File

@ -4,6 +4,11 @@ import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.orgmanax.dto.job.enums.OrgJobGroupFlagEnum; 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.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.google.common.collect.Sets;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -11,11 +16,6 @@ import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.Set;
/** /**
* @author luofu * @author luofu
* @version 1.0 * @version 1.0
@ -71,7 +71,7 @@ public class OrgJobPageParam extends PageReqV2 {
/** /**
* 岗位类型 1总包单位 2建设单位 3监理单位 4劳务分包 5专业分包 6:OMS 7企业通用 9:班组项目内 * 岗位类型 1总包单位 2建设单位 3监理单位 4劳务分包 5专业分包 6:OMS 7企业通用 9:班组项目内
*/ */
private List<Integer> types; private List<Integer> cooperateTypes;
/** /**
* 可为空,即加载默认和自定义所有岗位 true预定义岗位 false 自定义岗位 * 可为空,即加载默认和自定义所有岗位 true预定义岗位 false 自定义岗位
@ -79,22 +79,29 @@ public class OrgJobPageParam extends PageReqV2 {
private Boolean readonly; private Boolean readonly;
// workspace和unitId 只有自定义类型使用 // workspace和unitId 只有自定义类型使用
/**
* 单位/团队 ID 列表
*/
private List<Long> unitIds;
/** /**
* 工作台id 列表 * 单位/团队 ID.
*/ */
private List<Long> workspaceIds; private Long ouId;
/**
* 工作台id
*/
private Long workspaceId;
public Set<Integer> fetchTypes() {
if (CollUtil.isNotEmpty(cooperateTypes)) {
return Sets.newHashSet(cooperateTypes);
}
return Collections.emptySet();
}
public boolean isInvalid() { public boolean isInvalid() {
return CollUtil.isEmpty(orgJobGroupFlags) return CollUtil.isEmpty(orgJobGroupFlags)
&& CollUtil.isEmpty(orgJobGroupCodes) && CollUtil.isEmpty(orgJobGroupCodes)
&& CollUtil.isEmpty(jobIds) && CollUtil.isEmpty(jobIds)
&& CollUtil.isEmpty(jobCodes) && CollUtil.isEmpty(jobCodes)
&& Objects.isNull(type)
&& StringUtils.isBlank(keyword); && StringUtils.isBlank(keyword);
} }

View File

@ -6,15 +6,20 @@ import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.OLD_CONFIG;
import static cn.axzo.orgmanax.dto.job.dto.OrgJobConstants.OLD_NEW_JOB_CODE_MAP_KEY; 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.cooperateship.dto.OrgCooperateShipDTO;
import cn.axzo.orgmanax.dto.cooperateship.req.ListOrgCooperateShipReq;
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.OrgJobGroupDTO;
import cn.axzo.orgmanax.dto.job.dto.OrgJobGroupRelationDTO; 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.OrgJobGroupFlagEnum;
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.UpdateOrgJobReq; import cn.axzo.orgmanax.dto.job.req.UpdateOrgJobReq;
import cn.axzo.orgmanax.infra.client.tyr.RoleGateway; import cn.axzo.orgmanax.infra.client.tyr.RoleGateway;
import cn.axzo.orgmanax.infra.client.workspace.dto.Workspace.WorkspaceTypeEnum;
import cn.axzo.orgmanax.server.cooperateship.service.CooperateShipService;
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;
@ -43,6 +48,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -50,6 +56,7 @@ import java.util.stream.IntStream;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Slf4j @Slf4j
@ -61,6 +68,8 @@ public class OrgJobServiceImpl implements OrgJobService {
private final OrgJobGroupFoundationService orgJobGroupService; private final OrgJobGroupFoundationService orgJobGroupService;
private final OrgJobGroupRelationFoundationService orgJobGroupRelationService; private final OrgJobGroupRelationFoundationService orgJobGroupRelationService;
private final RoleGateway roleGateway; private final RoleGateway roleGateway;
@Autowired
private CooperateShipService cooperateShipService;
private final LoadingCache<String, ImmutableMap<String, String>> jobCodeMappingCache = CacheBuilder.newBuilder() private final LoadingCache<String, ImmutableMap<String, String>> jobCodeMappingCache = CacheBuilder.newBuilder()
.expireAfterWrite(Duration.ofMinutes(30)) .expireAfterWrite(Duration.ofMinutes(30))
@ -89,6 +98,7 @@ public class OrgJobServiceImpl implements OrgJobService {
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();
} }
resolveCooperateTypes(param);
OrgJobPageParam orgJobPageParam = resolveJobPageParam(param); OrgJobPageParam orgJobPageParam = resolveJobPageParam(param);
PageResp<OrgJobDTO> orgJobs = foundationService.page(param); PageResp<OrgJobDTO> orgJobs = foundationService.page(param);
if (CollUtil.isEmpty(orgJobs.getData())) { if (CollUtil.isEmpty(orgJobs.getData())) {
@ -106,6 +116,72 @@ public class OrgJobServiceImpl implements OrgJobService {
return orgJobs; return orgJobs;
} }
private void resolveCooperateTypes(OrgJobPageParam param) {
Set<Integer> cooperateTypes = param.fetchTypes();
if (CollUtil.isNotEmpty(cooperateTypes)) {
// 优先使用指定的cooperateType
param.setOrgJobGroupFlags(mapper(cooperateTypes));
return;
}
List<OrgCooperateShipDTO> cooperateShips = resolve(param.getOuId(), param.getWorkspaceId());
if (CollUtil.isNotEmpty(cooperateShips)) {
param.setOrgJobGroupFlags(mapper(cooperateShips));
}
}
private List<OrgCooperateShipDTO> resolve(Long ouId, Long workspaceId) {
if (Objects.isNull(ouId) && Objects.isNull(workspaceId)) {
return Collections.emptyList();
}
if (Objects.isNull(ouId)) {
return resolve(Collections.emptyList(), Collections.singletonList(workspaceId));
}
if (Objects.isNull(workspaceId)) {
return resolve(Collections.singletonList(ouId), Collections.emptyList());
}
return resolve(Collections.singletonList(ouId), Collections.singletonList(workspaceId));
}
private List<OrgCooperateShipDTO> resolve(Collection<Long> ouIds, Collection<Long> workspaceIds) {
if (CollUtil.isEmpty(ouIds)
&& CollUtil.isEmpty(workspaceIds)) {
return Collections.emptyList();
}
ListOrgCooperateShipReq req = ListOrgCooperateShipReq.builder()
.ouIds(Sets.newHashSet(ouIds))
.workspaceIds(Sets.newHashSet(workspaceIds))
.build();
if (CollUtil.isEmpty(workspaceIds)) {
// 未传workspaceId时仅查询单位自身的
req.setWorkspaceTypes(Sets.newHashSet(WorkspaceTypeEnum.GENERAL_ENT.value));
}
return cooperateShipService.list(req);
}
private Set<OrgJobGroupFlagEnum> mapper(Set<Integer> cooperateTypes) {
if (CollUtil.isEmpty(cooperateTypes)) {
return Collections.emptySet();
}
return cooperateTypes.stream()
.map(e -> OrgJobGroupFlagEnum.cooperateTypeOf(e).orElse(null))
.filter(Objects::nonNull)
.collect(Collectors.toSet());
}
private Set<OrgJobGroupFlagEnum> mapper(Collection<OrgCooperateShipDTO> cooperateShips) {
if (CollUtil.isEmpty(cooperateShips)) {
return Collections.emptySet();
}
Set<OrgJobGroupFlagEnum> flags = cooperateShips.stream()
.map(e -> OrgJobGroupFlagEnum.cooperateTypeOf(e.getCooperateType()).orElse(null))
.filter(Objects::nonNull)
.collect(Collectors.toSet());
if (flags.contains(OrgJobGroupFlagEnum.ENT_COMMON)) {
flags.add(OrgJobGroupFlagEnum.ENT_TEAM);
}
return flags;
}
private void buildSaasRole4OrgJob(List<OrgJobDTO> orgJobs) { private void buildSaasRole4OrgJob(List<OrgJobDTO> orgJobs) {
Set<Long> roleIds = orgJobs.stream() Set<Long> roleIds = orgJobs.stream()
.flatMap(e -> e.mergeAndDistinctRolesIds().stream()) .flatMap(e -> e.mergeAndDistinctRolesIds().stream())
@ -177,6 +253,8 @@ public class OrgJobServiceImpl implements OrgJobService {
} }
private OrgJobPageParam resolveJobPageParam(OrgJobPageParam param) { private OrgJobPageParam resolveJobPageParam(OrgJobPageParam param) {
param.setType(Optional.ofNullable(param.getReadonly())
.map(v -> v ? OrgJobTypeEnum.SYSTEM : OrgJobTypeEnum.CUSTOM).orElse(null));
param.setJobCodes(resolveJobCodes(param.getJobCodes())); param.setJobCodes(resolveJobCodes(param.getJobCodes()));
if (CollUtil.isEmpty(param.getOrgJobGroupCodes()) if (CollUtil.isEmpty(param.getOrgJobGroupCodes())
&& CollUtil.isEmpty(param.getOrgJobGroupFlags())) { && CollUtil.isEmpty(param.getOrgJobGroupFlags())) {
@ -230,7 +308,7 @@ public class OrgJobServiceImpl implements OrgJobService {
private ImmutableMap<String, String> loadJobCodeMappingCache() { private ImmutableMap<String, String> loadJobCodeMappingCache() {
OrgJobPageParam listParam = OrgJobPageParam.builder().type(OrgJobTypeEnum.SYSTEM).build(); OrgJobPageParam listParam = OrgJobPageParam.builder().type(OrgJobTypeEnum.SYSTEM).build();
List<OrgJobDTO> orgJobs = this.whileQuery(listParam); List<OrgJobDTO> orgJobs = this.pageAll(listParam);
if (CollUtil.isEmpty(orgJobs)) { if (CollUtil.isEmpty(orgJobs)) {
return ImmutableMap.<String, String>builder().build(); return ImmutableMap.<String, String>builder().build();
} }
@ -242,7 +320,7 @@ public class OrgJobServiceImpl implements OrgJobService {
return ImmutableMap.copyOf(map); return ImmutableMap.copyOf(map);
} }
public List<OrgJobDTO> whileQuery(OrgJobPageParam param) { public List<OrgJobDTO> pageAll(OrgJobPageParam param) {
List<OrgJobDTO> jobs = new ArrayList<>(); List<OrgJobDTO> jobs = new ArrayList<>();
PageResp<OrgJobDTO> jobPage; PageResp<OrgJobDTO> jobPage;
int pageNumber = 0; int pageNumber = 0;

View File

@ -25,6 +25,7 @@ import cn.hutool.core.util.BooleanUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.support.TransactionTemplate; import org.springframework.transaction.support.TransactionTemplate;
@ -34,7 +35,8 @@ import org.springframework.transaction.support.TransactionTemplate;
public class UnitServiceImpl implements UnitService { public class UnitServiceImpl implements UnitService {
private final UnitFoundationService unitFoundationService; private final UnitFoundationService unitFoundationService;
private final NodeService nodeService; @Autowired
private NodeService nodeService;
private final UnitQueryRepository unitQueryRepository; private final UnitQueryRepository unitQueryRepository;
private final TransactionTemplate transactionTemplate; private final TransactionTemplate transactionTemplate;
private final WorkspaceGateway workspaceGateway; private final WorkspaceGateway workspaceGateway;