企业审核

This commit is contained in:
guixinman
2025-06-27 14:11:02 +08:00
parent 161076e755
commit 552091540b
6 changed files with 103 additions and 41 deletions

View File

@@ -31,6 +31,8 @@ public class HrCompanyAuditOperatorDTO extends BaseOperateDTO {
@NotNull(message = "id不能为空", groups = {Update.class}) @NotNull(message = "id不能为空", groups = {Update.class})
private Long id; private Long id;
private Long orgId;
@ApiModelProperty("统一社会信用代码") @ApiModelProperty("统一社会信用代码")
private String creditCode; private String creditCode;
@@ -94,4 +96,5 @@ public class HrCompanyAuditOperatorDTO extends BaseOperateDTO {
@NotNull(message = "版本号不能为空",groups = {Update.class}) @NotNull(message = "版本号不能为空",groups = {Update.class})
private Integer version; private Integer version;
} }

View File

@@ -105,6 +105,8 @@ public class HrCompanyPageQueryDTO extends PageQueryDTO<HrCompanyDTO> {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTimeEnd; private Date createTimeEnd;
private String status;
public void check(){ public void check(){
if (StringUtils.isBlank(companyType) && CollectionUtils.isEmpty(companyTypes)) { if (StringUtils.isBlank(companyType) && CollectionUtils.isEmpty(companyTypes)) {
throw new BusinessException("请选择类型"); throw new BusinessException("请选择类型");

View File

@@ -56,6 +56,9 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test='status != null and status.trim() != ""'>
AND hc.status = #{status}
</if>
order by hc.company_type desc, hc.id desc order by hc.company_type desc, hc.id desc
</select> </select>
<select id="auditPage" resultType="com.newyetai.recruit.company.dto.HrCompanyDTO"> <select id="auditPage" resultType="com.newyetai.recruit.company.dto.HrCompanyDTO">

View File

@@ -12,6 +12,7 @@ import com.newyetai.frame.redis.dto.LockDTO;
import com.newyetai.frame.redis.redisson.RedissonUtils; import com.newyetai.frame.redis.redisson.RedissonUtils;
import com.newyetai.recruit.company.entity.HrCompany; import com.newyetai.recruit.company.entity.HrCompany;
import com.newyetai.recruit.company.enums.HrCompanyAuditStatusEnum; import com.newyetai.recruit.company.enums.HrCompanyAuditStatusEnum;
import com.newyetai.recruit.company.enums.HrCompanyEnum;
import com.newyetai.recruit.company.enums.HrCompanyStatusEnum; import com.newyetai.recruit.company.enums.HrCompanyStatusEnum;
import com.newyetai.recruit.company.mapstruct.HrCompanyAuditMapMapper; import com.newyetai.recruit.company.mapstruct.HrCompanyAuditMapMapper;
import com.newyetai.recruit.company.mapstruct.HrCompanyMapMapper; import com.newyetai.recruit.company.mapstruct.HrCompanyMapMapper;
@@ -28,6 +29,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.newyetai.common.util.UserContextHolder; import com.newyetai.common.util.UserContextHolder;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -58,23 +60,41 @@ public class HrCompanyAuditServiceImpl implements HrCompanyAuditService {
private HrCompanyFileService hrCompanyFileService; private HrCompanyFileService hrCompanyFileService;
@Autowired @Autowired
@Lazy
private OrgService orgService; private OrgService orgService;
/**
* 先创建用工企业表(关闭状态)。然后拿到id创建企业审核表
* 如果是入驻审批类型的创建。默认免审核企业
* 根据配置管理的 企业审核开关 判断是否需要审核。如果不需要审核就直接 成功状态+回写用工企业表 状态开启。
* 修改雷同逻辑
* PC页面 企业审核入口: 审核成功也会回写企业表为开启状态。审核失败不会给企业表关闭状态。所以只要有一次开启状态。那企业会一直开启。没地方关闭
*
*/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public HrCompanyAuditDTO create(HrCompanyAuditOperatorDTO operatorDto) { public HrCompanyAuditDTO create(HrCompanyAuditOperatorDTO operatorDto) {
//只有入住审批创建的。才能指定orgId。其他的模式都是获取当前登录机构
Long orgId = (StringUtils.equals(HrCompanyEnum.SELF.getType(),operatorDto.getCompanyType()) && Objects.nonNull(operatorDto.getOrgId()) )
? operatorDto.getOrgId() : UserContextHolder.getLoginOrgId();
HrCompanyDTO hrCompanyDTO = HrCompanyMapMapper.INSTANCE.convert(operatorDto); HrCompanyDTO hrCompanyDTO = HrCompanyMapMapper.INSTANCE.convert(operatorDto);
Long companyId = hrCompanyService.create(hrCompanyDTO); Long companyId = hrCompanyService.create(hrCompanyDTO);
HrCompanyAudit hrCompanyAudit = HrCompanyAuditMapMapper.INSTANCE.convert(operatorDto); HrCompanyAudit hrCompanyAudit = HrCompanyAuditMapMapper.INSTANCE.convert(operatorDto);
hrCompanyAudit.setId(null); hrCompanyAudit.setId(null);
hrCompanyAudit.setCompanyId(companyId); hrCompanyAudit.setCompanyId(companyId);
hrCompanyAudit.setOrgId(UserContextHolder.getLoginOrgId()); hrCompanyAudit.setOrgId(orgId);
hrCompanyAudit.setVersion(1); hrCompanyAudit.setVersion(1);
Config config = configService.getConfig("company_audit_enable", CommonConstants.PLATFORM_ORG_ID, true); Config config = configService.getConfig("company_audit_enable", CommonConstants.PLATFORM_ORG_ID, true);
//入驻申请创建都是需要免审核 此处直接给config设置不为空就行
if (StringUtils.equals(HrCompanyEnum.SELF.getType(),operatorDto.getCompanyType())) {
config = Objects.nonNull(config) ? config : new Config();
}
if (Objects.nonNull(config)) { if (Objects.nonNull(config)) {
hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.INIT.getStatus()); hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.INIT.getStatus());
} else { } else {
@@ -83,6 +103,7 @@ public class HrCompanyAuditServiceImpl implements HrCompanyAuditService {
hrCompanyService.updateStatus(companyId, HrCompanyStatusEnum.OPEN.getStatus()); hrCompanyService.updateStatus(companyId, HrCompanyStatusEnum.OPEN.getStatus());
} }
hrCompanyAuditMapper.saveEntity(hrCompanyAudit); hrCompanyAuditMapper.saveEntity(hrCompanyAudit);
return HrCompanyAuditMapMapper.INSTANCE.convert(hrCompanyAudit); return HrCompanyAuditMapMapper.INSTANCE.convert(hrCompanyAudit);
} }
@@ -127,13 +148,18 @@ public class HrCompanyAuditServiceImpl implements HrCompanyAuditService {
hrCompanyAudit.setCompanyType(hrCompany.getCompanyType()); hrCompanyAudit.setCompanyType(hrCompany.getCompanyType());
Config config = configService.getConfig("company_audit_enable", CommonConstants.PLATFORM_ORG_ID, true); Config config = configService.getConfig("company_audit_enable", CommonConstants.PLATFORM_ORG_ID, true);
//入驻申请创建都是需要免审核 此处直接给config设置不为空就行
if (StringUtils.equals(HrCompanyEnum.SELF.getType(),operatorDto.getCompanyType())) {
config = Objects.nonNull(config) ? config : new Config();
}
if (Objects.nonNull(config)) { if (Objects.nonNull(config)) {
hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.INIT.getStatus()); hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.INIT.getStatus());
} else { } else {
hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.SUCCESS.getStatus()); hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.SUCCESS.getStatus());
//回写企业表。 //回写企业表。
HrCompanyDTO hrCompanyDTO = new HrCompanyDTO(); HrCompanyDTO hrCompanyDTO = new HrCompanyDTO();
BeanUtils.copyProperties(operatorDto,hrCompanyDTO); BeanUtils.copyProperties(operatorDto, hrCompanyDTO);
hrCompanyDTO.setId(operatorDto.getCompanyId()); hrCompanyDTO.setId(operatorDto.getCompanyId());
hrCompanyDTO.setStatus(HrCompanyStatusEnum.OPEN.getStatus()); hrCompanyDTO.setStatus(HrCompanyStatusEnum.OPEN.getStatus());
hrCompanyService.update(hrCompanyDTO); hrCompanyService.update(hrCompanyDTO);

View File

@@ -27,6 +27,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -35,6 +36,7 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -49,8 +51,12 @@ public class HrCompanyServiceImpl implements IHrCompanyService {
@Override @Override
public Long create(HrCompanyDTO hrCompanyDTO) { public Long create(HrCompanyDTO hrCompanyDTO) {
//只有入住审批创建的。才能指定orgId。其他的模式都是获取当前登录机构
Long orgId = (StringUtils.equals(HrCompanyEnum.SELF.getType(),hrCompanyDTO.getCompanyType()) && Objects.nonNull(hrCompanyDTO.getOrgId()) )
? hrCompanyDTO.getOrgId() : UserContextHolder.getLoginOrgId();
List<HrCompany> HrCompanyList = hrCompanyMapper.selectList(new LambdaQueryWrapper<HrCompany>() List<HrCompany> HrCompanyList = hrCompanyMapper.selectList(new LambdaQueryWrapper<HrCompany>()
.eq(HrCompany::getOrgId, UserContextHolder.getLoginOrgId()) .eq(HrCompany::getOrgId, orgId)
.eq(HrCompany::getCompanyName, hrCompanyDTO.getCompanyName()) .eq(HrCompany::getCompanyName, hrCompanyDTO.getCompanyName())
.eq(HrCompany::getCompanyType, hrCompanyDTO.getCompanyType()) .eq(HrCompany::getCompanyType, hrCompanyDTO.getCompanyType())
.eq(HrCompany::getDeleted, false) .eq(HrCompany::getDeleted, false)
@@ -60,7 +66,7 @@ public class HrCompanyServiceImpl implements IHrCompanyService {
} }
HrCompany HrCompany = HrCompanyMapMapper.INSTANCE.exchange(hrCompanyDTO); HrCompany HrCompany = HrCompanyMapMapper.INSTANCE.exchange(hrCompanyDTO);
HrCompany.setOrgId(UserContextHolder.getLoginOrgId()); HrCompany.setOrgId(orgId);
HrCompany.setStatus(HrCompanyStatusEnum.CLOSE.getStatus()); HrCompany.setStatus(HrCompanyStatusEnum.CLOSE.getStatus());
hrCompanyMapper.saveEntity(HrCompany, UserContextHolder.getLoginUserId()); hrCompanyMapper.saveEntity(HrCompany, UserContextHolder.getLoginUserId());
return HrCompany.getId(); return HrCompany.getId();
@@ -90,6 +96,7 @@ public class HrCompanyServiceImpl implements IHrCompanyService {
HrCompany HrCompany = HrCompanyMapMapper.INSTANCE.exchange(hrCompanyDTO); HrCompany HrCompany = HrCompanyMapMapper.INSTANCE.exchange(hrCompanyDTO);
HrCompany.setOrgId(hrCompany.getOrgId()); HrCompany.setOrgId(hrCompany.getOrgId());
HrCompany.setCompanyType(hrCompany.getCompanyType());
return hrCompanyMapper.updateEntity(HrCompany, UserContextHolder.getLoginUserId()); return hrCompanyMapper.updateEntity(HrCompany, UserContextHolder.getLoginUserId());
} }
@@ -201,6 +208,8 @@ public class HrCompanyServiceImpl implements IHrCompanyService {
@Override @Override
public List<HrCompanyDTO> list(HrCompanyPageQueryDTO pageQueryDTO) { public List<HrCompanyDTO> list(HrCompanyPageQueryDTO pageQueryDTO) {
pageQueryDTO.disablePage(); pageQueryDTO.disablePage();
//因为现在有企业审核。这个list前端用于下拉选用工企业用。所以这样只能查企业开启状态的.
pageQueryDTO.setStatus(HrCompanyStatusEnum.OPEN.getStatus());
return this.page(pageQueryDTO); return this.page(pageQueryDTO);
} }

View File

@@ -1,12 +1,13 @@
package com.newyetai.usercenter.org.service.impl; package com.newyetai.usercenter.org.service.impl;
import java.util.ArrayList; import java.util.*;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.newyetai.recruit.company.dto.HrCompanyAuditDTO;
import com.newyetai.recruit.company.dto.HrCompanyAuditOperatorDTO;
import com.newyetai.recruit.company.dto.HrCompanyAuditPageQueryDTO;
import com.newyetai.recruit.company.service.HrCompanyAuditService;
import jdk.nashorn.internal.runtime.options.Option;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -70,7 +71,7 @@ public class OrgServiceImpl implements OrgService {
private OrgRelationService orgRelationService; private OrgRelationService orgRelationService;
@Autowired @Autowired
private HrCompanyMapper companyMapper; private HrCompanyAuditService hrCompanyAuditService;
public static LockDTO getLockDTO(String orgName) { public static LockDTO getLockDTO(String orgName) {
Assert.notNull(orgName, "机构名称不能为空"); Assert.notNull(orgName, "机构名称不能为空");
@@ -114,20 +115,22 @@ public class OrgServiceImpl implements OrgService {
.platformCode(EnvironmentUtils.getSystemCode()).parentId(orgCreateDTO.getParentId()).build()); .platformCode(EnvironmentUtils.getSystemCode()).parentId(orgCreateDTO.getParentId()).build());
// 用工企业类型-创建自己默认的用工企业 // 用工企业类型-创建自己默认的用工企业
if (orgTypeEnum == OrgTypeEnum.ORG_TYPE_SIMPLE || orgTypeEnum == OrgTypeEnum.ORG_TYPE_HR) { if (orgTypeEnum == OrgTypeEnum.ORG_TYPE_SIMPLE || orgTypeEnum == OrgTypeEnum.ORG_TYPE_HR) {
companyMapper.saveEntity(HrCompany.builder() HrCompanyAuditOperatorDTO operatorDto =
.orgId(orgId) HrCompanyAuditOperatorDTO.builder()
.creditCode(orgCreateDTO.getCreditCode()) .orgId(orgId)
.companyLogo(orgCreateDTO.getOrgLogo()) .creditCode(orgCreateDTO.getCreditCode())
.companyName(orgName) .companyLogo(orgCreateDTO.getOrgLogo())
.contactPerson(orgCreateDTO.getRealName()) .companyName(orgName)
.contactWay(orgCreateDTO.getPhone()) .contactPerson(orgCreateDTO.getRealName())
.companyProfile(orgCreateDTO.getDescription()) .contactWay(orgCreateDTO.getPhone())
.companyDescription(orgCreateDTO.getDescription()) .companyProfile(orgCreateDTO.getDescription())
.companyIndustry(orgCreateDTO.getTrade()) .companyDescription(orgCreateDTO.getDescription())
.companySize(orgCreateDTO.getCompanySize()) .companyIndustry(orgCreateDTO.getTrade())
.companyRegisterAddress(orgCreateDTO.getRegisteredAddress()) .companySize(orgCreateDTO.getCompanySize())
.companyType(HrCompanyEnum.SELF.getType()) .companyRegisterAddress(orgCreateDTO.getRegisteredAddress())
.build()); .companyType(HrCompanyEnum.SELF.getType())
.build();
hrCompanyAuditService.create(operatorDto);
} }
return orgId; return orgId;
} }
@@ -161,22 +164,38 @@ public class OrgServiceImpl implements OrgService {
@Override @Override
public void modify(OrgModifyDTO orgModifyDTO) { public void modify(OrgModifyDTO orgModifyDTO) {
orgMapper.modifyByOrgId(orgModifyDTO); orgMapper.modifyByOrgId(orgModifyDTO);
HrCompany hrCompany = companyMapper.selectOne(new LambdaQueryWrapper<HrCompany>()
.eq(HrCompany::getDeleted, false) // 获取集合第一条数据并判断null/empty
.eq(HrCompany::getCompanyType, HrCompanyEnum.SELF.getType()) HrCompanyAuditDTO hrCompanyAuditDTO = Optional.ofNullable(hrCompanyAuditService.page(
.eq(HrCompany::getOrgId, orgModifyDTO.getId()) HrCompanyAuditPageQueryDTO.builder()
); .companyType(HrCompanyEnum.SELF.getType())
if (Objects.nonNull(hrCompany)) { .orgId(orgModifyDTO.getId())
HrCompany hrCompanyModify = new HrCompany(); .build()))
hrCompanyModify.setId(hrCompany.getId()); .filter(c -> !c.isEmpty())
hrCompanyModify.setCreditCode(orgModifyDTO.getCreditCode()); .map(c -> c.get(0))
hrCompanyModify.setCompanyLogo(orgModifyDTO.getOrgLogo()); .orElse(null);
hrCompanyModify.setCompanyProfile(orgModifyDTO.getDescription());
hrCompanyModify.setCompanyDescription(orgModifyDTO.getDescription());
hrCompanyModify.setCompanyIndustry(orgModifyDTO.getTrade()); if (Objects.nonNull(hrCompanyAuditDTO)) {
hrCompanyModify.setCompanySize(orgModifyDTO.getCompanySize()); HrCompanyAuditOperatorDTO operatorDto = HrCompanyAuditOperatorDTO
hrCompanyModify.setCompanyRegisterAddress(orgModifyDTO.getRegisteredAddress()); .builder()
companyMapper.updateEntitySelective(hrCompanyModify); .id(hrCompanyAuditDTO.getId())
.orgId(orgModifyDTO.getId())
.companyId(hrCompanyAuditDTO.getCompanyId())
.creditCode(orgModifyDTO.getCreditCode())
.companyLogo(orgModifyDTO.getOrgLogo())
.companyName(hrCompanyAuditDTO.getCompanyName())
.contactPerson(hrCompanyAuditDTO.getContactPerson())
.contactWay(hrCompanyAuditDTO.getContactWay())
.companyProfile(orgModifyDTO.getDescription())
.companyDescription(orgModifyDTO.getDescription())
.companyIndustry(orgModifyDTO.getTrade())
.companySize(orgModifyDTO.getCompanySize())
.companyRegisterAddress(orgModifyDTO.getRegisteredAddress())
.companyType(HrCompanyEnum.SELF.getType())
.version(hrCompanyAuditDTO.getVersion())
.build();
hrCompanyAuditService.modify(operatorDto);
} }
} }