企业审核

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})
private Long id;
private Long orgId;
@ApiModelProperty("统一社会信用代码")
private String creditCode;
@@ -94,4 +96,5 @@ public class HrCompanyAuditOperatorDTO extends BaseOperateDTO {
@NotNull(message = "版本号不能为空",groups = {Update.class})
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")
private Date createTimeEnd;
private String status;
public void check(){
if (StringUtils.isBlank(companyType) && CollectionUtils.isEmpty(companyTypes)) {
throw new BusinessException("请选择类型");

View File

@@ -56,6 +56,9 @@
#{item}
</foreach>
</if>
<if test='status != null and status.trim() != ""'>
AND hc.status = #{status}
</if>
order by hc.company_type desc, hc.id desc
</select>
<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.recruit.company.entity.HrCompany;
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.mapstruct.HrCompanyAuditMapMapper;
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.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.newyetai.common.util.UserContextHolder;
import org.springframework.transaction.annotation.Transactional;
@@ -58,23 +60,41 @@ public class HrCompanyAuditServiceImpl implements HrCompanyAuditService {
private HrCompanyFileService hrCompanyFileService;
@Autowired
@Lazy
private OrgService orgService;
/**
* 先创建用工企业表(关闭状态)。然后拿到id创建企业审核表
* 如果是入驻审批类型的创建。默认免审核企业
* 根据配置管理的 企业审核开关 判断是否需要审核。如果不需要审核就直接 成功状态+回写用工企业表 状态开启。
* 修改雷同逻辑
* PC页面 企业审核入口: 审核成功也会回写企业表为开启状态。审核失败不会给企业表关闭状态。所以只要有一次开启状态。那企业会一直开启。没地方关闭
*
*/
@Transactional(rollbackFor = Exception.class)
@Override
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);
Long companyId = hrCompanyService.create(hrCompanyDTO);
HrCompanyAudit hrCompanyAudit = HrCompanyAuditMapMapper.INSTANCE.convert(operatorDto);
hrCompanyAudit.setId(null);
hrCompanyAudit.setCompanyId(companyId);
hrCompanyAudit.setOrgId(UserContextHolder.getLoginOrgId());
hrCompanyAudit.setOrgId(orgId);
hrCompanyAudit.setVersion(1);
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)) {
hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.INIT.getStatus());
} else {
@@ -83,6 +103,7 @@ public class HrCompanyAuditServiceImpl implements HrCompanyAuditService {
hrCompanyService.updateStatus(companyId, HrCompanyStatusEnum.OPEN.getStatus());
}
hrCompanyAuditMapper.saveEntity(hrCompanyAudit);
return HrCompanyAuditMapMapper.INSTANCE.convert(hrCompanyAudit);
}
@@ -127,13 +148,18 @@ public class HrCompanyAuditServiceImpl implements HrCompanyAuditService {
hrCompanyAudit.setCompanyType(hrCompany.getCompanyType());
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)) {
hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.INIT.getStatus());
} else {
hrCompanyAudit.setAuditStatus(HrCompanyAuditStatusEnum.SUCCESS.getStatus());
//回写企业表。
HrCompanyDTO hrCompanyDTO = new HrCompanyDTO();
BeanUtils.copyProperties(operatorDto,hrCompanyDTO);
BeanUtils.copyProperties(operatorDto, hrCompanyDTO);
hrCompanyDTO.setId(operatorDto.getCompanyId());
hrCompanyDTO.setStatus(HrCompanyStatusEnum.OPEN.getStatus());
hrCompanyService.update(hrCompanyDTO);

View File

@@ -27,6 +27,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -35,6 +36,7 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -49,8 +51,12 @@ public class HrCompanyServiceImpl implements IHrCompanyService {
@Override
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>()
.eq(HrCompany::getOrgId, UserContextHolder.getLoginOrgId())
.eq(HrCompany::getOrgId, orgId)
.eq(HrCompany::getCompanyName, hrCompanyDTO.getCompanyName())
.eq(HrCompany::getCompanyType, hrCompanyDTO.getCompanyType())
.eq(HrCompany::getDeleted, false)
@@ -60,7 +66,7 @@ public class HrCompanyServiceImpl implements IHrCompanyService {
}
HrCompany HrCompany = HrCompanyMapMapper.INSTANCE.exchange(hrCompanyDTO);
HrCompany.setOrgId(UserContextHolder.getLoginOrgId());
HrCompany.setOrgId(orgId);
HrCompany.setStatus(HrCompanyStatusEnum.CLOSE.getStatus());
hrCompanyMapper.saveEntity(HrCompany, UserContextHolder.getLoginUserId());
return HrCompany.getId();
@@ -90,6 +96,7 @@ public class HrCompanyServiceImpl implements IHrCompanyService {
HrCompany HrCompany = HrCompanyMapMapper.INSTANCE.exchange(hrCompanyDTO);
HrCompany.setOrgId(hrCompany.getOrgId());
HrCompany.setCompanyType(hrCompany.getCompanyType());
return hrCompanyMapper.updateEntity(HrCompany, UserContextHolder.getLoginUserId());
}
@@ -201,6 +208,8 @@ public class HrCompanyServiceImpl implements IHrCompanyService {
@Override
public List<HrCompanyDTO> list(HrCompanyPageQueryDTO pageQueryDTO) {
pageQueryDTO.disablePage();
//因为现在有企业审核。这个list前端用于下拉选用工企业用。所以这样只能查企业开启状态的.
pageQueryDTO.setStatus(HrCompanyStatusEnum.OPEN.getStatus());
return this.page(pageQueryDTO);
}

View File

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