# 岗位管理:支持新建人才集团机构查看全平台岗位数据

This commit is contained in:
czy
2025-10-23 10:42:57 +08:00
parent d07a90eb5e
commit d5245c1ce7

View File

@@ -1,13 +1,9 @@
package com.newyetai.recruit.position.service.impl; package com.newyetai.recruit.position.service.impl;
import com.google.common.collect.Lists;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.newyetai.usercenter.user.constant.UserTypeEnum;
import lombok.extern.slf4j.Slf4j;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import com.newyetai.common.AlitaResult; import com.newyetai.common.AlitaResult;
import com.newyetai.common.constant.CommonConstants; import com.newyetai.common.constant.CommonConstants;
import com.newyetai.common.dto.ExportHeadDetailInfoDTO; import com.newyetai.common.dto.ExportHeadDetailInfoDTO;
@@ -15,30 +11,22 @@ import com.newyetai.common.dto.ExportHeadInfoDTO;
import com.newyetai.common.easyexcel.ExcelUtil; import com.newyetai.common.easyexcel.ExcelUtil;
import com.newyetai.common.exception.BusinessException; import com.newyetai.common.exception.BusinessException;
import com.newyetai.common.exception.util.Assert; import com.newyetai.common.exception.util.Assert;
import com.newyetai.common.util.JsonUtils; import com.newyetai.common.util.UserContextHolder;
import com.newyetai.component.dict.util.DictUtils;
import com.newyetai.config.entity.Config;
import com.newyetai.config.service.ConfigService;
import com.newyetai.recruit.company.dto.HrCompanyDTO; import com.newyetai.recruit.company.dto.HrCompanyDTO;
import com.newyetai.recruit.company.dto.HrCompanyPageQueryDTO; import com.newyetai.recruit.company.dto.HrCompanyPageQueryDTO;
import com.newyetai.recruit.company.enums.HrCompanyEnum; import com.newyetai.recruit.company.enums.HrCompanyEnum;
import com.newyetai.recruit.company.service.IHrCompanyService; import com.newyetai.recruit.company.service.IHrCompanyService;
import com.newyetai.component.dict.util.DictUtils;
import com.newyetai.recruit.position.convert.PositionConvert; import com.newyetai.recruit.position.convert.PositionConvert;
import com.newyetai.recruit.position.dao.PositionRegistrationMapper;
import com.newyetai.recruit.position.entity.Position;
import com.newyetai.recruit.position.dto.*;
import com.newyetai.recruit.position.dao.PositionMapper; import com.newyetai.recruit.position.dao.PositionMapper;
import com.newyetai.recruit.position.dao.PositionRegistrationMapper;
import com.newyetai.recruit.position.dto.*;
import com.newyetai.recruit.position.entity.Position;
import com.newyetai.recruit.position.enums.PositionStatusEnum; import com.newyetai.recruit.position.enums.PositionStatusEnum;
import com.newyetai.recruit.position.service.PositionFileService; import com.newyetai.recruit.position.service.PositionFileService;
import com.newyetai.recruit.position.service.PositionService; import com.newyetai.recruit.position.service.PositionService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.newyetai.common.util.UserContextHolder;
import com.newyetai.recruit.user.dao.UserCollectionMapper; import com.newyetai.recruit.user.dao.UserCollectionMapper;
import com.newyetai.recruit.user.dto.JobExpectDTO; import com.newyetai.recruit.user.dto.JobExpectDTO;
import com.newyetai.recruit.user.dto.JobExpectQueryDTO; import com.newyetai.recruit.user.dto.JobExpectQueryDTO;
@@ -47,11 +35,10 @@ import com.newyetai.recruit.user.entity.UserCollection;
import com.newyetai.recruit.user.service.JobExpectService; import com.newyetai.recruit.user.service.JobExpectService;
import com.newyetai.recruit.user.service.ResumeService; import com.newyetai.recruit.user.service.ResumeService;
import com.newyetai.sdk.tencent.map.TencentMapContext; import com.newyetai.sdk.tencent.map.TencentMapContext;
import com.newyetai.sdk.tencent.map.dto.TencentMapBaseResDTO;
import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixElementsResDTO;
import com.newyetai.sdk.tencent.map.dto.TencentMapWsDistanceV1MatrixReqDTO; import com.newyetai.sdk.tencent.map.dto.TencentMapWsDistanceV1MatrixReqDTO;
import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixResDTO; import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixElementsResDTO;
import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixElementsRowResDTO; import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixElementsRowResDTO;
import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixResDTO;
import com.newyetai.usercenter.org.dao.OrgMapper; import com.newyetai.usercenter.org.dao.OrgMapper;
import com.newyetai.usercenter.org.entity.Org; import com.newyetai.usercenter.org.entity.Org;
import com.newyetai.usercenter.org.enums.RecruitPositionTypeEnum; import com.newyetai.usercenter.org.enums.RecruitPositionTypeEnum;
@@ -60,9 +47,16 @@ import com.newyetai.usercenter.user.service.UserService;
import com.spatial4j.core.context.SpatialContext; import com.spatial4j.core.context.SpatialContext;
import com.spatial4j.core.distance.DistanceUtils; import com.spatial4j.core.distance.DistanceUtils;
import com.spatial4j.core.shape.Rectangle; import com.spatial4j.core.shape.Rectangle;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@@ -109,6 +103,9 @@ public class PositionServiceImpl implements PositionService {
@Autowired @Autowired
private TencentMapContext tencentMapContext; private TencentMapContext tencentMapContext;
@Autowired
private ConfigService configService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public PositionDTO create(PositionOperatorDTO operatorDto) { public PositionDTO create(PositionOperatorDTO operatorDto) {
@@ -263,9 +260,35 @@ public class PositionServiceImpl implements PositionService {
@Override @Override
public List<PositionDTO> page(PositionPageQueryDTO queryDTO) { public List<PositionDTO> page(PositionPageQueryDTO queryDTO) {
if (!CommonConstants.PLATFORM_ORG_ID.equals(UserContextHolder.getExistLoginOrgId())) { // 获取平台机构ID和当前登录机构ID
queryDTO.setOrgId(UserContextHolder.getExistLoginOrgId()); Long platformOrgId = CommonConstants.PLATFORM_ORG_ID;
Long loginOrgId = UserContextHolder.getExistLoginOrgId();
// 获取配置的邀请机构ID(可能为null)
Config orgApplyInviterOrgId = configService.getConfig("org_apply_inviter_org_id", platformOrgId, true);
// 标记是否需要设置orgId(默认不需要)
boolean needSetOrgId = false;
if (orgApplyInviterOrgId != null) {
// 配置存在:获取配置值,判断是否为有效非空值
String inviterOrgId = orgApplyInviterOrgId.getConfigValue();
if (inviterOrgId != null && !inviterOrgId.isEmpty()) {
// 配置存在且有效:既不是平台机构,也不等于配置机构时才需要设置
needSetOrgId = !platformOrgId.equals(loginOrgId) && !inviterOrgId.equals(loginOrgId);
} else {
// 配置存在但值为空:仅排除平台机构,其余需要设置
needSetOrgId = !platformOrgId.equals(loginOrgId);
} }
} else {
// 配置不存在:仅排除平台机构,其余需要设置
needSetOrgId = !platformOrgId.equals(loginOrgId);
}
// 根据判断结果设置orgId
if (needSetOrgId) {
queryDTO.setOrgId(loginOrgId);
}
List<PositionDTO> list = positionMapper.page(queryDTO); List<PositionDTO> list = positionMapper.page(queryDTO);
for (PositionDTO positionDTO : list) { for (PositionDTO positionDTO : list) {
positionDTO.setRecruitPositionTypeName(DictUtils.getCodeNameMap("recruit_position_type").get(positionDTO.getRecruitPositionType())); positionDTO.setRecruitPositionTypeName(DictUtils.getCodeNameMap("recruit_position_type").get(positionDTO.getRecruitPositionType()));