业务逻辑修改以及完善
This commit is contained in:
@@ -32,22 +32,33 @@ public class HotakeComplianceInfoController extends BaseController
|
|||||||
* 查询用户合规性信息列表
|
* 查询用户合规性信息列表
|
||||||
*/
|
*/
|
||||||
@ApiOperation("查询用户合规性信息列表")
|
@ApiOperation("查询用户合规性信息列表")
|
||||||
@GetMapping("/list")
|
@GetMapping("/pageList")
|
||||||
public TableWebDataInfo<HotakeComplianceInfo> list(HotakeComplianceInfo hotakeComplianceInfo)
|
public TableWebDataInfo<HotakeComplianceInfo> pageList(HotakeComplianceInfo hotakeComplianceInfo)
|
||||||
{
|
{
|
||||||
startPage();
|
startPage();
|
||||||
List<HotakeComplianceInfo> list = hotakeComplianceInfoService.selectHotakeComplianceInfoList(hotakeComplianceInfo);
|
List<HotakeComplianceInfo> list = hotakeComplianceInfoService.selectHotakeComplianceInfoList(hotakeComplianceInfo);
|
||||||
return getWebDataTable(list);
|
return getWebDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户合规性信息列表
|
||||||
|
*/
|
||||||
|
@ApiOperation("查询用户合规性信息列表(无分页)")
|
||||||
|
@GetMapping("/getList")
|
||||||
|
public R<List<HotakeComplianceInfo>> list(HotakeComplianceInfo hotakeComplianceInfo)
|
||||||
|
{
|
||||||
|
List<HotakeComplianceInfo> list = hotakeComplianceInfoService.selectHotakeComplianceInfoList(hotakeComplianceInfo);
|
||||||
|
return R.ok(list,"");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户合规性信息详细信息
|
* 获取用户合规性信息详细信息
|
||||||
*/
|
*/
|
||||||
@ApiOperation("获取用户合规性信息详细信息")
|
@ApiOperation("获取用户合规性信息详细信息")
|
||||||
@GetMapping(value = "/{id}")
|
@GetMapping(value = "/{id}")
|
||||||
public R<?> getInfo(@PathVariable("id") Long id)
|
public R<HotakeComplianceInfo> getInfo(@PathVariable("id") Long id)
|
||||||
{
|
{
|
||||||
return R.ok(hotakeComplianceInfoService.selectHotakeComplianceInfoById(id));
|
return R.ok(hotakeComplianceInfoService.selectHotakeComplianceInfoById(id),"");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,9 +88,9 @@ public class HotakeComplianceInfoController extends BaseController
|
|||||||
*/
|
*/
|
||||||
@ApiOperation("删除用户合规性信息")
|
@ApiOperation("删除用户合规性信息")
|
||||||
@Log(title = "用户合规性信息", businessType = BusinessType.DELETE)
|
@Log(title = "用户合规性信息", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{id}")
|
||||||
public R<?> remove(@PathVariable Long[] ids)
|
public R<?> remove(@PathVariable Long id)
|
||||||
{
|
{
|
||||||
return R.ok(hotakeComplianceInfoService.deleteHotakeComplianceInfoByIds(ids));
|
return R.ok(hotakeComplianceInfoService.deleteHotakeComplianceInfoById(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,20 +32,31 @@ public class HotakeRolesApplyOperRecordController extends BaseController
|
|||||||
* 查询岗位申请操作信息列表
|
* 查询岗位申请操作信息列表
|
||||||
*/
|
*/
|
||||||
@ApiOperation("查询岗位申请操作信息列表")
|
@ApiOperation("查询岗位申请操作信息列表")
|
||||||
@GetMapping("/list")
|
@GetMapping("/pageList")
|
||||||
public TableWebDataInfo<HotakeRolesApplyOperRecord> list(HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord)
|
public TableWebDataInfo<HotakeRolesApplyOperRecord> pageList(HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord)
|
||||||
{
|
{
|
||||||
startPage();
|
startPage();
|
||||||
List<HotakeRolesApplyOperRecord> list = hotakeRolesApplyOperRecordService.selectHotakeRolesApplyOperRecordList(hotakeRolesApplyOperRecord);
|
List<HotakeRolesApplyOperRecord> list = hotakeRolesApplyOperRecordService.selectHotakeRolesApplyOperRecordList(hotakeRolesApplyOperRecord);
|
||||||
return getWebDataTable(list);
|
return getWebDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询岗位申请操作信息列表
|
||||||
|
*/
|
||||||
|
@ApiOperation("查询岗位申请操作信息列表(无分页)")
|
||||||
|
@GetMapping("/getList")
|
||||||
|
public R<List<HotakeRolesApplyOperRecord>> list(HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord)
|
||||||
|
{
|
||||||
|
List<HotakeRolesApplyOperRecord> list = hotakeRolesApplyOperRecordService.selectHotakeRolesApplyOperRecordList(hotakeRolesApplyOperRecord);
|
||||||
|
return R.ok(list);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取岗位申请操作信息详细信息
|
* 获取岗位申请操作信息详细信息
|
||||||
*/
|
*/
|
||||||
@ApiOperation("获取岗位申请操作信息详细信息")
|
@ApiOperation("获取岗位申请操作信息详细信息")
|
||||||
@GetMapping(value = "/{id}")
|
@GetMapping(value = "/{id}")
|
||||||
public R<?> getInfo(@PathVariable("id") Long id)
|
public R<HotakeRolesApplyOperRecord> getInfo(@PathVariable("id") Long id)
|
||||||
{
|
{
|
||||||
return R.ok(hotakeRolesApplyOperRecordService.selectHotakeRolesApplyOperRecordById(id));
|
return R.ok(hotakeRolesApplyOperRecordService.selectHotakeRolesApplyOperRecordById(id));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,10 @@ import cn.hutool.json.JSONUtil;
|
|||||||
import com.vetti.common.core.domain.R;
|
import com.vetti.common.core.domain.R;
|
||||||
import com.vetti.common.enums.IsInterviewEnum;
|
import com.vetti.common.enums.IsInterviewEnum;
|
||||||
import com.vetti.common.enums.UserOperStepsEnum;
|
import com.vetti.common.enums.UserOperStepsEnum;
|
||||||
|
import com.vetti.hotake.domain.HotakeComplianceInfo;
|
||||||
import com.vetti.hotake.domain.HotakeCvInfo;
|
import com.vetti.hotake.domain.HotakeCvInfo;
|
||||||
import com.vetti.hotake.domain.HotakeProblemBaseInfo;
|
import com.vetti.hotake.domain.HotakeProblemBaseInfo;
|
||||||
|
import com.vetti.hotake.service.IHotakeComplianceInfoService;
|
||||||
import com.vetti.hotake.service.IHotakeCvInfoService;
|
import com.vetti.hotake.service.IHotakeCvInfoService;
|
||||||
import com.vetti.hotake.service.IHotakeProblemBaseInfoService;
|
import com.vetti.hotake.service.IHotakeProblemBaseInfoService;
|
||||||
import com.vetti.web.entity.dto.SysUserDto;
|
import com.vetti.web.entity.dto.SysUserDto;
|
||||||
@@ -63,6 +65,9 @@ public class SysProfileController extends BaseController
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IHotakeProblemBaseInfoService problemBaseInfoService;
|
private IHotakeProblemBaseInfoService problemBaseInfoService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IHotakeComplianceInfoService complianceInfoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 个人信息
|
* 个人信息
|
||||||
*/
|
*/
|
||||||
@@ -79,6 +84,11 @@ public class SysProfileController extends BaseController
|
|||||||
List<HotakeCvInfo> cvInfoList = cvInfoService.selectHotakeCvInfoList(query);
|
List<HotakeCvInfo> cvInfoList = cvInfoService.selectHotakeCvInfoList(query);
|
||||||
dto.setCvInfoList(cvInfoList);
|
dto.setCvInfoList(cvInfoList);
|
||||||
|
|
||||||
|
HotakeComplianceInfo queryCompliance = new HotakeComplianceInfo();
|
||||||
|
queryCompliance.setUserId(user.getUserId());
|
||||||
|
List<HotakeComplianceInfo> complianceInfoList = complianceInfoService.selectHotakeComplianceInfoList(queryCompliance);
|
||||||
|
dto.setComplianceInfoList(complianceInfoList);
|
||||||
|
|
||||||
//是否可以参加面试
|
//是否可以参加面试
|
||||||
HotakeProblemBaseInfo queryProblemBaseInfo = new HotakeProblemBaseInfo();
|
HotakeProblemBaseInfo queryProblemBaseInfo = new HotakeProblemBaseInfo();
|
||||||
queryProblemBaseInfo.setUserId(user.getUserId());
|
queryProblemBaseInfo.setUserId(user.getUserId());
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.vetti.web.entity.dto;
|
package com.vetti.web.entity.dto;
|
||||||
|
|
||||||
import com.vetti.common.core.domain.entity.SysUser;
|
import com.vetti.common.core.domain.entity.SysUser;
|
||||||
|
import com.vetti.hotake.domain.HotakeComplianceInfo;
|
||||||
import com.vetti.hotake.domain.HotakeCvInfo;
|
import com.vetti.hotake.domain.HotakeCvInfo;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -23,4 +24,7 @@ public class SysUserDto extends SysUser {
|
|||||||
|
|
||||||
@ApiModelProperty("简历数据集合")
|
@ApiModelProperty("简历数据集合")
|
||||||
private List<HotakeCvInfo> cvInfoList;
|
private List<HotakeCvInfo> cvInfoList;
|
||||||
|
|
||||||
|
@ApiModelProperty("个人合规数据集合")
|
||||||
|
private List<HotakeComplianceInfo> complianceInfoList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ public class ElevenLabsConvAiTokenClientServiceImpl implements IElevenLabsConvAi
|
|||||||
@Override
|
@Override
|
||||||
public HotakeAiInterviewScoringDto getAiInterviewScoring(HotakeAiInterviewScoringVo scoringVo) {
|
public HotakeAiInterviewScoringDto getAiInterviewScoring(HotakeAiInterviewScoringVo scoringVo) {
|
||||||
|
|
||||||
|
log.info("请求参数为:{}",JSONUtil.toJsonStr(scoringVo));
|
||||||
List<Map> list = new ArrayList<>();
|
List<Map> list = new ArrayList<>();
|
||||||
//获取第一条数据记录
|
//获取第一条数据记录
|
||||||
Map<String, String> mapEntity = new HashMap<>();
|
Map<String, String> mapEntity = new HashMap<>();
|
||||||
@@ -125,17 +126,27 @@ public class ElevenLabsConvAiTokenClientServiceImpl implements IElevenLabsConvAi
|
|||||||
ChatGPTClient gptClient = SpringUtils.getBean(ChatGPTClient.class);
|
ChatGPTClient gptClient = SpringUtils.getBean(ChatGPTClient.class);
|
||||||
String resultMsg = gptClient.handleAiChat(promptJson, "PF");
|
String resultMsg = gptClient.handleAiChat(promptJson, "PF");
|
||||||
log.info("返回的结果为:{}",resultMsg);
|
log.info("返回的结果为:{}",resultMsg);
|
||||||
//开始解析返回结果
|
try {
|
||||||
Map mapResultData = JSONUtil.toBean(resultMsg,Map.class);
|
//开始解析返回结果
|
||||||
//获取评分
|
Map mapResultData = JSONUtil.toBean(resultMsg,Map.class);
|
||||||
Object scoreStr = mapResultData.get("score");
|
//获取评分
|
||||||
Object assessment = mapResultData.get("assessment");
|
Object scoreStr = mapResultData.get("score");
|
||||||
|
Object assessment = mapResultData.get("assessment");
|
||||||
|
|
||||||
|
HotakeAiInterviewScoringDto scoringDto = new HotakeAiInterviewScoringDto();
|
||||||
|
scoringDto.setScore(scoreStr+"");
|
||||||
|
scoringDto.setAssessment(assessment+"");
|
||||||
|
scoringDto.setContent(scoreStr +"\n"+assessment);
|
||||||
|
return scoringDto;
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
HotakeAiInterviewScoringDto scoringDto = new HotakeAiInterviewScoringDto();
|
||||||
|
scoringDto.setScore(0+"");
|
||||||
|
scoringDto.setAssessment("Skills need improvement");
|
||||||
|
scoringDto.setContent(0 +"\n"+"Skills need improvement");
|
||||||
|
return scoringDto;
|
||||||
|
}
|
||||||
|
|
||||||
HotakeAiInterviewScoringDto scoringDto = new HotakeAiInterviewScoringDto();
|
|
||||||
scoringDto.setScore(scoreStr+"");
|
|
||||||
scoringDto.setAssessment(assessment+"");
|
|
||||||
scoringDto.setContent(scoreStr +"\n"+assessment);
|
|
||||||
return scoringDto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.vetti.common.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 个人合规性检查状态
|
||||||
|
*/
|
||||||
|
public enum HotakeCompliancesStatusEnum {
|
||||||
|
|
||||||
|
VERIFIED("verified", "验证"),
|
||||||
|
PENDING("pending", "待验证"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
private final String code;
|
||||||
|
private final String info;
|
||||||
|
|
||||||
|
HotakeCompliancesStatusEnum(String code, String info)
|
||||||
|
{
|
||||||
|
this.code = code;
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode()
|
||||||
|
{
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInfo()
|
||||||
|
{
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,8 @@ public enum StageEnum {
|
|||||||
INTERVIEW("Interview", "面试"),
|
INTERVIEW("Interview", "面试"),
|
||||||
OFFER("Offer", "邀约"),
|
OFFER("Offer", "邀约"),
|
||||||
HIRED("Hired", "受雇"),
|
HIRED("Hired", "受雇"),
|
||||||
|
REFUSE_OFFER("refuseOffer", "拒绝邀约"),
|
||||||
|
INTERVIEW_FAIL("InterviewFail", "面试失败"),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -32,4 +34,13 @@ public enum StageEnum {
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static StageEnum getByInfo(String code) {
|
||||||
|
StageEnum[] entityEnums = values();
|
||||||
|
for (StageEnum entityEnum : entityEnums) {
|
||||||
|
if (entityEnum.getCode().equals(code)) {
|
||||||
|
return entityEnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.vetti.hotake.domain;
|
package com.vetti.hotake.domain;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.vetti.hotake.domain.dto.HotakeCvInfoDto;
|
import com.vetti.hotake.domain.dto.HotakeCvInfoDto;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -77,7 +78,7 @@ public class HotakeRolesApplyInfo extends BaseEntity
|
|||||||
private String candidateStatus;
|
private String candidateStatus;
|
||||||
|
|
||||||
/** 当前阶段 */
|
/** 当前阶段 */
|
||||||
@ApiModelProperty("当前阶段")
|
@ApiModelProperty("当前阶段(Applied:已申请,Shortlisted:入围,Interview:面试,Offer:邀约,Hired,受雇,refuseOffer:拒绝邀约,InterviewFail:面试失败)")
|
||||||
@Excel(name = "当前阶段")
|
@Excel(name = "当前阶段")
|
||||||
private String stage;
|
private String stage;
|
||||||
|
|
||||||
@@ -122,4 +123,7 @@ public class HotakeRolesApplyInfo extends BaseEntity
|
|||||||
@ApiModelProperty("解析的简历数据信息")
|
@ApiModelProperty("解析的简历数据信息")
|
||||||
private HotakeCvInfoDto cvInfoDto;
|
private HotakeCvInfoDto cvInfoDto;
|
||||||
|
|
||||||
|
@ApiModelProperty("岗位申请操作记录数据集合")
|
||||||
|
private List<HotakeRolesApplyOperRecord> applyOperRecords;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
package com.vetti.hotake.service.impl;
|
package com.vetti.hotake.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.vetti.common.core.service.BaseServiceImpl;
|
||||||
import com.fleet.common.core.service.BaseServiceImpl;
|
import com.vetti.common.enums.FillTypeEnum;
|
||||||
import com.fleet.common.utils.DateUtils;
|
import com.vetti.common.enums.HotakeCompliancesStatusEnum;
|
||||||
|
import com.vetti.hotake.domain.HotakeComplianceInfo;
|
||||||
|
import com.vetti.hotake.mapper.HotakeComplianceInfoMapper;
|
||||||
|
import com.vetti.hotake.service.IHotakeComplianceInfoService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import com.vetti.hotake.mapper.HotakeComplianceInfoMapper;
|
import java.util.List;
|
||||||
import com.vetti.hotake.domain.HotakeComplianceInfo;
|
|
||||||
import com.vetti.hotake.service.IHotakeComplianceInfoService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户合规性信息Service业务层处理
|
* 用户合规性信息Service业务层处理
|
||||||
@@ -61,7 +62,10 @@ public class HotakeComplianceInfoServiceImpl extends BaseServiceImpl implements
|
|||||||
@Override
|
@Override
|
||||||
public int insertHotakeComplianceInfo(HotakeComplianceInfo hotakeComplianceInfo)
|
public int insertHotakeComplianceInfo(HotakeComplianceInfo hotakeComplianceInfo)
|
||||||
{
|
{
|
||||||
hotakeComplianceInfo.setCreateTime(DateUtils.getNowDate());
|
if(StrUtil.isEmpty(hotakeComplianceInfo.getStatus())){
|
||||||
|
hotakeComplianceInfo.setStatus(HotakeCompliancesStatusEnum.PENDING.getCode());
|
||||||
|
}
|
||||||
|
fill(FillTypeEnum.INSERT.getCode(), hotakeComplianceInfo);
|
||||||
return hotakeComplianceInfoMapper.insertHotakeComplianceInfo(hotakeComplianceInfo);
|
return hotakeComplianceInfoMapper.insertHotakeComplianceInfo(hotakeComplianceInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +79,7 @@ public class HotakeComplianceInfoServiceImpl extends BaseServiceImpl implements
|
|||||||
@Override
|
@Override
|
||||||
public int updateHotakeComplianceInfo(HotakeComplianceInfo hotakeComplianceInfo)
|
public int updateHotakeComplianceInfo(HotakeComplianceInfo hotakeComplianceInfo)
|
||||||
{
|
{
|
||||||
hotakeComplianceInfo.setUpdateTime(DateUtils.getNowDate());
|
fill(FillTypeEnum.UPDATE.getCode(), hotakeComplianceInfo);
|
||||||
return hotakeComplianceInfoMapper.updateHotakeComplianceInfo(hotakeComplianceInfo);
|
return hotakeComplianceInfoMapper.updateHotakeComplianceInfo(hotakeComplianceInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import com.vetti.hotake.mapper.HotakeCvInfoMapper;
|
|||||||
import com.vetti.hotake.mapper.HotakeRolesApplyInfoMapper;
|
import com.vetti.hotake.mapper.HotakeRolesApplyInfoMapper;
|
||||||
import com.vetti.hotake.mapper.HotakeRolesInfoMapper;
|
import com.vetti.hotake.mapper.HotakeRolesInfoMapper;
|
||||||
import com.vetti.hotake.service.IHotakeAiCommonToolsService;
|
import com.vetti.hotake.service.IHotakeAiCommonToolsService;
|
||||||
|
import com.vetti.hotake.service.IHotakeRolesApplyOperRecordService;
|
||||||
import io.minio.GetObjectArgs;
|
import io.minio.GetObjectArgs;
|
||||||
import io.minio.MinioClient;
|
import io.minio.MinioClient;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -49,8 +50,7 @@ import com.vetti.hotake.service.IHotakeInitScreQuestionsReplyRecordInfoService;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@SuppressWarnings("all")
|
@SuppressWarnings("all")
|
||||||
@Service
|
@Service
|
||||||
public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServiceImpl implements IHotakeInitScreQuestionsReplyRecordInfoService
|
public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServiceImpl implements IHotakeInitScreQuestionsReplyRecordInfoService {
|
||||||
{
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private HotakeInitScreQuestionsReplyRecordInfoMapper hotakeInitScreQuestionsReplyRecordInfoMapper;
|
private HotakeInitScreQuestionsReplyRecordInfoMapper hotakeInitScreQuestionsReplyRecordInfoMapper;
|
||||||
|
|
||||||
@@ -72,6 +72,9 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ChatGPTClient chatGPTClient;
|
private ChatGPTClient chatGPTClient;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IHotakeRolesApplyOperRecordService rolesApplyOperRecordService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询初步筛选问题回答记录信息
|
* 查询初步筛选问题回答记录信息
|
||||||
@@ -81,8 +84,7 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
*/
|
*/
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
@Override
|
@Override
|
||||||
public HotakeInitScreQuestionsReplyRecordInfo selectHotakeInitScreQuestionsReplyRecordInfoById(Long id)
|
public HotakeInitScreQuestionsReplyRecordInfo selectHotakeInitScreQuestionsReplyRecordInfoById(Long id) {
|
||||||
{
|
|
||||||
return hotakeInitScreQuestionsReplyRecordInfoMapper.selectHotakeInitScreQuestionsReplyRecordInfoById(id);
|
return hotakeInitScreQuestionsReplyRecordInfoMapper.selectHotakeInitScreQuestionsReplyRecordInfoById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,8 +96,7 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
*/
|
*/
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
@Override
|
@Override
|
||||||
public List<HotakeInitScreQuestionsReplyRecordInfo> selectHotakeInitScreQuestionsReplyRecordInfoList(HotakeInitScreQuestionsReplyRecordInfo hotakeInitScreQuestionsReplyRecordInfo)
|
public List<HotakeInitScreQuestionsReplyRecordInfo> selectHotakeInitScreQuestionsReplyRecordInfoList(HotakeInitScreQuestionsReplyRecordInfo hotakeInitScreQuestionsReplyRecordInfo) {
|
||||||
{
|
|
||||||
return hotakeInitScreQuestionsReplyRecordInfoMapper.selectHotakeInitScreQuestionsReplyRecordInfoList(hotakeInitScreQuestionsReplyRecordInfo);
|
return hotakeInitScreQuestionsReplyRecordInfoMapper.selectHotakeInitScreQuestionsReplyRecordInfoList(hotakeInitScreQuestionsReplyRecordInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,10 +106,9 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
* @param hotakeInitScreQuestionsReplyRecordInfo 初步筛选问题回答记录信息
|
* @param hotakeInitScreQuestionsReplyRecordInfo 初步筛选问题回答记录信息
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public int insertHotakeInitScreQuestionsReplyRecordInfo(HotakeInitScreQuestionsReplyRecordInfo hotakeInitScreQuestionsReplyRecordInfo)
|
public int insertHotakeInitScreQuestionsReplyRecordInfo(HotakeInitScreQuestionsReplyRecordInfo hotakeInitScreQuestionsReplyRecordInfo) {
|
||||||
{
|
|
||||||
hotakeInitScreQuestionsReplyRecordInfo.setCreateTime(DateUtils.getNowDate());
|
hotakeInitScreQuestionsReplyRecordInfo.setCreateTime(DateUtils.getNowDate());
|
||||||
return hotakeInitScreQuestionsReplyRecordInfoMapper.insertHotakeInitScreQuestionsReplyRecordInfo(hotakeInitScreQuestionsReplyRecordInfo);
|
return hotakeInitScreQuestionsReplyRecordInfoMapper.insertHotakeInitScreQuestionsReplyRecordInfo(hotakeInitScreQuestionsReplyRecordInfo);
|
||||||
}
|
}
|
||||||
@@ -119,10 +119,9 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
* @param hotakeInitScreQuestionsReplyRecordInfo 初步筛选问题回答记录信息
|
* @param hotakeInitScreQuestionsReplyRecordInfo 初步筛选问题回答记录信息
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public int updateHotakeInitScreQuestionsReplyRecordInfo(HotakeInitScreQuestionsReplyRecordInfo hotakeInitScreQuestionsReplyRecordInfo)
|
public int updateHotakeInitScreQuestionsReplyRecordInfo(HotakeInitScreQuestionsReplyRecordInfo hotakeInitScreQuestionsReplyRecordInfo) {
|
||||||
{
|
|
||||||
hotakeInitScreQuestionsReplyRecordInfo.setUpdateTime(DateUtils.getNowDate());
|
hotakeInitScreQuestionsReplyRecordInfo.setUpdateTime(DateUtils.getNowDate());
|
||||||
return hotakeInitScreQuestionsReplyRecordInfoMapper.updateHotakeInitScreQuestionsReplyRecordInfo(hotakeInitScreQuestionsReplyRecordInfo);
|
return hotakeInitScreQuestionsReplyRecordInfoMapper.updateHotakeInitScreQuestionsReplyRecordInfo(hotakeInitScreQuestionsReplyRecordInfo);
|
||||||
}
|
}
|
||||||
@@ -133,10 +132,9 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
* @param ids 需要删除的初步筛选问题回答记录信息主键
|
* @param ids 需要删除的初步筛选问题回答记录信息主键
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public int deleteHotakeInitScreQuestionsReplyRecordInfoByIds(Long[] ids)
|
public int deleteHotakeInitScreQuestionsReplyRecordInfoByIds(Long[] ids) {
|
||||||
{
|
|
||||||
return hotakeInitScreQuestionsReplyRecordInfoMapper.deleteHotakeInitScreQuestionsReplyRecordInfoByIds(ids);
|
return hotakeInitScreQuestionsReplyRecordInfoMapper.deleteHotakeInitScreQuestionsReplyRecordInfoByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,26 +144,27 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
* @param id 初步筛选问题回答记录信息主键
|
* @param id 初步筛选问题回答记录信息主键
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public int deleteHotakeInitScreQuestionsReplyRecordInfoById(Long id)
|
public int deleteHotakeInitScreQuestionsReplyRecordInfoById(Long id) {
|
||||||
{
|
|
||||||
return hotakeInitScreQuestionsReplyRecordInfoMapper.deleteHotakeInitScreQuestionsReplyRecordInfoById(id);
|
return hotakeInitScreQuestionsReplyRecordInfoMapper.deleteHotakeInitScreQuestionsReplyRecordInfoById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量新增初步筛选问题回答记录信息
|
* 批量新增初步筛选问题回答记录信息
|
||||||
*
|
*
|
||||||
* @param hotakeInitScreQuestionsReplyRecordInfoList 初步筛选问题回答记录信息列表
|
* @param hotakeInitScreQuestionsReplyRecordInfoList 初步筛选问题回答记录信息列表
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public int batchInsertHotakeInitScreQuestionsReplyRecordInfo(List<HotakeInitScreQuestionsReplyRecordInfo> hotakeInitScreQuestionsReplyRecordInfoList){
|
public int batchInsertHotakeInitScreQuestionsReplyRecordInfo(List<HotakeInitScreQuestionsReplyRecordInfo> hotakeInitScreQuestionsReplyRecordInfoList) {
|
||||||
return hotakeInitScreQuestionsReplyRecordInfoMapper.batchInsertHotakeInitScreQuestionsReplyRecordInfo(hotakeInitScreQuestionsReplyRecordInfoList);
|
return hotakeInitScreQuestionsReplyRecordInfoMapper.batchInsertHotakeInitScreQuestionsReplyRecordInfo(hotakeInitScreQuestionsReplyRecordInfoList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初步筛选问题回答记录信息批量保存
|
* 初步筛选问题回答记录信息批量保存
|
||||||
|
*
|
||||||
* @param initScreQuestionsReplyRecordInfoList 初步筛选问题回答记录信息数据集合
|
* @param initScreQuestionsReplyRecordInfoList 初步筛选问题回答记录信息数据集合
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -236,36 +235,46 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
// applyInfo.setExperience(cvInfoDto.getExperienceYear());
|
// applyInfo.setExperience(cvInfoDto.getExperienceYear());
|
||||||
// scoreStr = resultMsg;
|
// scoreStr = resultMsg;
|
||||||
// }
|
// }
|
||||||
//更新岗位申请数据记录--根据评分进行计算
|
//更新岗位申请数据记录--根据评分进行计算
|
||||||
//分数解析
|
//分数解析
|
||||||
// String[] strs = scoreStr.split("\n");
|
// String[] strs = scoreStr.split("\n");
|
||||||
// if(strs != null && strs.length > 0){
|
// if(strs != null && strs.length > 0){
|
||||||
// String score = strs[0].replaceAll("Score:","").trim();
|
// String score = strs[0].replaceAll("Score:","").trim();
|
||||||
// String[] scores = score.split("/");
|
// String[] scores = score.split("/");
|
||||||
// if(scores != null && scores.length > 0){
|
// if(scores != null && scores.length > 0){
|
||||||
// applyInfo.setAiMatchScore(scores[0]);
|
// applyInfo.setAiMatchScore(scores[0]);
|
||||||
try{
|
try {
|
||||||
applyInfo.setAiMatchScorePercentage(new BigDecimal(eliminationScoreDto.getScore()).
|
applyInfo.setAiMatchScorePercentage(new BigDecimal(eliminationScoreDto.getScore()).
|
||||||
divide(new BigDecimal(100)).setScale(2,4));
|
divide(new BigDecimal(100)).setScale(2, 4));
|
||||||
}catch (Exception e){e.printStackTrace();}
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
if(applyInfo.getAiMatchScorePercentage() != null){
|
if (applyInfo.getAiMatchScorePercentage() != null) {
|
||||||
if(applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.85)) >= 0){
|
if (applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.85)) >= 0) {
|
||||||
applyInfo.setCandidateStatus(CandidateStatusEnum.HOT.getCode());
|
applyInfo.setCandidateStatus(CandidateStatusEnum.HOT.getCode());
|
||||||
}else if(applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.85)) < 0
|
} else if (applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.85)) < 0
|
||||||
&& applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.6)) >= 0){
|
&& applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.6)) >= 0) {
|
||||||
applyInfo.setCandidateStatus(CandidateStatusEnum.WARM.getCode());
|
applyInfo.setCandidateStatus(CandidateStatusEnum.WARM.getCode());
|
||||||
}else if(applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.6)) < 0
|
} else if (applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.6)) < 0
|
||||||
&& applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.3)) >= 0){
|
&& applyInfo.getAiMatchScorePercentage().compareTo(new BigDecimal(0.3)) >= 0) {
|
||||||
applyInfo.setCandidateStatus(CandidateStatusEnum.COLD.getCode());
|
applyInfo.setCandidateStatus(CandidateStatusEnum.COLD.getCode());
|
||||||
}else {
|
} else {
|
||||||
applyInfo.setCandidateStatus(CandidateStatusEnum.PENDING.getCode());
|
applyInfo.setCandidateStatus(CandidateStatusEnum.PENDING.getCode());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
applyInfo.setRecruiterId(rolesInf.getRecruiterId());
|
}
|
||||||
applyInfo.setStage(StageEnum.APPLIED.getCode());
|
applyInfo.setRecruiterId(rolesInf.getRecruiterId());
|
||||||
hotakeRolesApplyInfoMapper.updateHotakeRolesApplyInfo(applyInfo);
|
applyInfo.setStage(StageEnum.APPLIED.getCode());
|
||||||
|
hotakeRolesApplyInfoMapper.updateHotakeRolesApplyInfo(applyInfo);
|
||||||
|
|
||||||
|
//记录第一次申请记录
|
||||||
|
HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord = new HotakeRolesApplyOperRecord();
|
||||||
|
hotakeRolesApplyOperRecord.setApplyStage(StageEnum.APPLIED.getCode());
|
||||||
|
hotakeRolesApplyOperRecord.setRoleApplyId(applyInfo.getId());
|
||||||
|
hotakeRolesApplyOperRecord.setRoleId(rolesInf.getId());
|
||||||
|
rolesApplyOperRecordService.insertHotakeRolesApplyOperRecord(hotakeRolesApplyOperRecord);
|
||||||
|
|
||||||
// } catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
// e.printStackTrace();
|
// e.printStackTrace();
|
||||||
// }
|
// }
|
||||||
@@ -275,7 +284,6 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 简历解析数据
|
* 简历解析数据
|
||||||
*
|
*
|
||||||
@@ -285,84 +293,84 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
private HotakeCvInfoDto handleAnalysisCvInfo(String contents) {
|
private HotakeCvInfoDto handleAnalysisCvInfo(String contents) {
|
||||||
log.info("开始简历解析");
|
log.info("开始简历解析");
|
||||||
try {
|
try {
|
||||||
List<Map<String,String>> list = new LinkedList();
|
List<Map<String, String>> list = new LinkedList();
|
||||||
Map<String,String> entity = new HashMap<>();
|
Map<String, String> entity = new HashMap<>();
|
||||||
entity.put("role","user");
|
entity.put("role", "user");
|
||||||
entity.put("content","从下面提供的文本中提取所有能识别到的简历信息,只提取原文中存在的内容,不要补充、不推测、不总结。需要提取的字段包括:name(姓名或人名)、phone(电话号码)、email(电子邮件地址)、experienceYear(根据工作经验计算出来的工作年限)、position(岗位或者简历中自己期望的职位等)、location(地点或者地址、家庭住址)、links(所有链接地址)、currentWork(当前工作公司)、about(关于我/自我介绍)、skills_tools(关键资格(许可证、注册/会员资格、认证))、languages(语言能力,主要就是Languages下面的语言)、experience(工作经历,除了title、company、location、durationStart、durationEnd,其他的都放到description里面,并且description里面要根据换行符分成不同的content),日期要拆分成开始时间(durationStart)和结束时间(durationEnd))、education(教育经历,日期要拆分成开始时间(durationStart)和结束时间(durationEnd))。请将提取结果以结构化 JSON 格式返回,格式如下:{ \\\"name\\\": \\\"\\\", \\\"phone\\\": \\\"\\\", \\\"currentWork\\\": \\\"\\\", \\\"position\\\": \\\"\\\", \\\"location\\\": \\\"\\\", \\\"email\\\": \\\"\\\", \\\"experienceYear\\\": \\\"\\\", \\\"links\\\": [{\\\"content\\\":\\\"\\\"}], \\\"about\\\": \\\"\\\", \\\"skillsTools\\\": [{\\\"content\\\":\\\"\\\"}], \\\"languages\\\": [{\\\"content\\\":\\\"\\\"}], \\\"experience\\\": [{\\\"title\\\": \\\"\\\", \\\"company\\\": \\\"\\\",\\\"location\\\": \\\"\\\",\\\"durationStart\\\": \\\"\\\",\\\"durationEnd\\\": \\\"\\\",\\\"description\\\": [{\\\"content\\\":\\\"\\\"}]}], \\\"education\\\": [{\\\"degree\\\": \\\"\\\",\\\"institution\\\": \\\"\\\",\\\"durationStart\\\": \\\"\\\",\\\"durationEnd\\\": \\\"\\\"}] }。字段不存在则返回 null 或空数组。只返回标准可解析的 JSON结构 ,不要多余的```json等信息,不要解释说明,不要改写内容。以下为待处理文本:"+contents);
|
entity.put("content", "从下面提供的文本中提取所有能识别到的简历信息,只提取原文中存在的内容,不要补充、不推测、不总结。需要提取的字段包括:name(姓名或人名)、phone(电话号码)、email(电子邮件地址)、experienceYear(根据工作经验计算出来的工作年限)、position(岗位或者简历中自己期望的职位等)、location(地点或者地址、家庭住址)、links(所有链接地址)、currentWork(当前工作公司)、about(关于我/自我介绍)、skills_tools(关键资格(许可证、注册/会员资格、认证))、languages(语言能力,主要就是Languages下面的语言)、experience(工作经历,除了title、company、location、durationStart、durationEnd,其他的都放到description里面,并且description里面要根据换行符分成不同的content),日期要拆分成开始时间(durationStart)和结束时间(durationEnd))、education(教育经历,日期要拆分成开始时间(durationStart)和结束时间(durationEnd))。请将提取结果以结构化 JSON 格式返回,格式如下:{ \\\"name\\\": \\\"\\\", \\\"phone\\\": \\\"\\\", \\\"currentWork\\\": \\\"\\\", \\\"position\\\": \\\"\\\", \\\"location\\\": \\\"\\\", \\\"email\\\": \\\"\\\", \\\"experienceYear\\\": \\\"\\\", \\\"links\\\": [{\\\"content\\\":\\\"\\\"}], \\\"about\\\": \\\"\\\", \\\"skillsTools\\\": [{\\\"content\\\":\\\"\\\"}], \\\"languages\\\": [{\\\"content\\\":\\\"\\\"}], \\\"experience\\\": [{\\\"title\\\": \\\"\\\", \\\"company\\\": \\\"\\\",\\\"location\\\": \\\"\\\",\\\"durationStart\\\": \\\"\\\",\\\"durationEnd\\\": \\\"\\\",\\\"description\\\": [{\\\"content\\\":\\\"\\\"}]}], \\\"education\\\": [{\\\"degree\\\": \\\"\\\",\\\"institution\\\": \\\"\\\",\\\"durationStart\\\": \\\"\\\",\\\"durationEnd\\\": \\\"\\\"}] }。字段不存在则返回 null 或空数组。只返回标准可解析的 JSON结构 ,不要多余的```json等信息,不要解释说明,不要改写内容。以下为待处理文本:" + contents);
|
||||||
//根据AI做
|
//根据AI做
|
||||||
list.add(entity);
|
list.add(entity);
|
||||||
String resultCv = chatGPTClient.handleAiChat(JSONUtil.toJsonStr(list), "JX");
|
String resultCv = chatGPTClient.handleAiChat(JSONUtil.toJsonStr(list), "JX");
|
||||||
log.info("开始返回简历解析结果:{}", resultCv);
|
log.info("开始返回简历解析结果:{}", resultCv);
|
||||||
HotakeCvInfoDto cvInfoDto = JSONUtil.toBean(resultCv, HotakeCvInfoDto.class);
|
HotakeCvInfoDto cvInfoDto = JSONUtil.toBean(resultCv, HotakeCvInfoDto.class);
|
||||||
//数据添加默认值
|
//数据添加默认值
|
||||||
if(cvInfoDto != null){
|
if (cvInfoDto != null) {
|
||||||
if(StrUtil.isEmpty(cvInfoDto.getName())){
|
if (StrUtil.isEmpty(cvInfoDto.getName())) {
|
||||||
cvInfoDto.setName("-");
|
cvInfoDto.setName("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(cvInfoDto.getPhone())){
|
if (StrUtil.isEmpty(cvInfoDto.getPhone())) {
|
||||||
cvInfoDto.setPhone("-");
|
cvInfoDto.setPhone("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(cvInfoDto.getEmail())){
|
if (StrUtil.isEmpty(cvInfoDto.getEmail())) {
|
||||||
cvInfoDto.setEmail("-");
|
cvInfoDto.setEmail("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(cvInfoDto.getPosition())){
|
if (StrUtil.isEmpty(cvInfoDto.getPosition())) {
|
||||||
cvInfoDto.setPosition("-");
|
cvInfoDto.setPosition("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(cvInfoDto.getLocation())){
|
if (StrUtil.isEmpty(cvInfoDto.getLocation())) {
|
||||||
cvInfoDto.setLocation("-");
|
cvInfoDto.setLocation("-");
|
||||||
}
|
}
|
||||||
if (StrUtil.isEmpty(cvInfoDto.getExperienceYear())){
|
if (StrUtil.isEmpty(cvInfoDto.getExperienceYear())) {
|
||||||
cvInfoDto.setExperienceYear("-");
|
cvInfoDto.setExperienceYear("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(cvInfoDto.getAbout())){
|
if (StrUtil.isEmpty(cvInfoDto.getAbout())) {
|
||||||
cvInfoDto.setAbout("-");
|
cvInfoDto.setAbout("-");
|
||||||
}
|
}
|
||||||
if (StrUtil.isEmpty(cvInfoDto.getCurrentWork())){
|
if (StrUtil.isEmpty(cvInfoDto.getCurrentWork())) {
|
||||||
cvInfoDto.setCurrentWork("-");
|
cvInfoDto.setCurrentWork("-");
|
||||||
}
|
}
|
||||||
if(CollectionUtil.isNotEmpty(cvInfoDto.getSkillsTools())){
|
if (CollectionUtil.isNotEmpty(cvInfoDto.getSkillsTools())) {
|
||||||
for (VcSkillsToolsDto toolsDto :cvInfoDto.getSkillsTools()) {
|
for (VcSkillsToolsDto toolsDto : cvInfoDto.getSkillsTools()) {
|
||||||
if(StrUtil.isEmpty(toolsDto.getContent())){
|
if (StrUtil.isEmpty(toolsDto.getContent())) {
|
||||||
toolsDto.setContent("-");
|
toolsDto.setContent("-");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(CollectionUtil.isNotEmpty(cvInfoDto.getLinks())){
|
if (CollectionUtil.isNotEmpty(cvInfoDto.getLinks())) {
|
||||||
for (VcLinksDto linksDto :cvInfoDto.getLinks()) {
|
for (VcLinksDto linksDto : cvInfoDto.getLinks()) {
|
||||||
if(StrUtil.isEmpty(linksDto.getContent())){
|
if (StrUtil.isEmpty(linksDto.getContent())) {
|
||||||
linksDto.setContent("-");
|
linksDto.setContent("-");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CollectionUtil.isNotEmpty(cvInfoDto.getLanguages())){
|
if (CollectionUtil.isNotEmpty(cvInfoDto.getLanguages())) {
|
||||||
for (VcLanguagesDto languagesDto :cvInfoDto.getLanguages()) {
|
for (VcLanguagesDto languagesDto : cvInfoDto.getLanguages()) {
|
||||||
if(StrUtil.isEmpty(languagesDto.getContent())){
|
if (StrUtil.isEmpty(languagesDto.getContent())) {
|
||||||
languagesDto.setContent("-");
|
languagesDto.setContent("-");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CollectionUtil.isNotEmpty(cvInfoDto.getExperience())){
|
if (CollectionUtil.isNotEmpty(cvInfoDto.getExperience())) {
|
||||||
for (VcExperienceDto experienceDto :cvInfoDto.getExperience()) {
|
for (VcExperienceDto experienceDto : cvInfoDto.getExperience()) {
|
||||||
if (StrUtil.isEmpty(experienceDto.getTitle())){
|
if (StrUtil.isEmpty(experienceDto.getTitle())) {
|
||||||
experienceDto.setTitle("-");
|
experienceDto.setTitle("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(experienceDto.getCompany())){
|
if (StrUtil.isEmpty(experienceDto.getCompany())) {
|
||||||
experienceDto.setCompany("-");
|
experienceDto.setCompany("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(experienceDto.getLocation())){
|
if (StrUtil.isEmpty(experienceDto.getLocation())) {
|
||||||
experienceDto.setLocation("-");
|
experienceDto.setLocation("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(experienceDto.getDurationStart())){
|
if (StrUtil.isEmpty(experienceDto.getDurationStart())) {
|
||||||
experienceDto.setDurationStart("-");
|
experienceDto.setDurationStart("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(experienceDto.getDurationEnd())){
|
if (StrUtil.isEmpty(experienceDto.getDurationEnd())) {
|
||||||
experienceDto.setDurationEnd("-");
|
experienceDto.setDurationEnd("-");
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(experienceDto.getDescription())){
|
if (CollectionUtil.isNotEmpty(experienceDto.getDescription())) {
|
||||||
for(VcExperienceDescriptionDto descriptionDto :experienceDto.getDescription()){
|
for (VcExperienceDescriptionDto descriptionDto : experienceDto.getDescription()) {
|
||||||
if(StrUtil.isEmpty(descriptionDto.getContent())){
|
if (StrUtil.isEmpty(descriptionDto.getContent())) {
|
||||||
descriptionDto.setContent("-");
|
descriptionDto.setContent("-");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -371,31 +379,31 @@ public class HotakeInitScreQuestionsReplyRecordInfoServiceImpl extends BaseServi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CollectionUtil.isNotEmpty(cvInfoDto.getEducation())){
|
if (CollectionUtil.isNotEmpty(cvInfoDto.getEducation())) {
|
||||||
for (VcEducationDto educationDto :cvInfoDto.getEducation()) {
|
for (VcEducationDto educationDto : cvInfoDto.getEducation()) {
|
||||||
if (StrUtil.isEmpty(educationDto.getDegree())){
|
if (StrUtil.isEmpty(educationDto.getDegree())) {
|
||||||
educationDto.setDegree("-");
|
educationDto.setDegree("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(educationDto.getInstitution())){
|
if (StrUtil.isEmpty(educationDto.getInstitution())) {
|
||||||
educationDto.setInstitution("-");
|
educationDto.setInstitution("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(educationDto.getDurationStart())){
|
if (StrUtil.isEmpty(educationDto.getDurationStart())) {
|
||||||
educationDto.setDurationStart("-");
|
educationDto.setDurationStart("-");
|
||||||
}
|
}
|
||||||
if(StrUtil.isEmpty(educationDto.getDurationEnd())){
|
if (StrUtil.isEmpty(educationDto.getDurationEnd())) {
|
||||||
educationDto.setDurationEnd("-");
|
educationDto.setDurationEnd("-");
|
||||||
}
|
}
|
||||||
if(educationDto.getCertificate() != null){
|
if (educationDto.getCertificate() != null) {
|
||||||
if(StrUtil.isEmpty(educationDto.getCertificate().getFileName())){
|
if (StrUtil.isEmpty(educationDto.getCertificate().getFileName())) {
|
||||||
educationDto.getCertificate().setFileName("-");
|
educationDto.getCertificate().setFileName("-");
|
||||||
}
|
}
|
||||||
if (StrUtil.isEmpty(educationDto.getCertificate().getFileSuffix())){
|
if (StrUtil.isEmpty(educationDto.getCertificate().getFileSuffix())) {
|
||||||
educationDto.getCertificate().setFileSuffix("-");
|
educationDto.getCertificate().setFileSuffix("-");
|
||||||
}
|
}
|
||||||
if (StrUtil.isEmpty(educationDto.getCertificate().getFileUrl())){
|
if (StrUtil.isEmpty(educationDto.getCertificate().getFileUrl())) {
|
||||||
educationDto.getCertificate().setFileUrl("-");
|
educationDto.getCertificate().setFileUrl("-");
|
||||||
}
|
}
|
||||||
if (StrUtil.isEmpty(educationDto.getCertificate().getFileSizeShow())){
|
if (StrUtil.isEmpty(educationDto.getCertificate().getFileSizeShow())) {
|
||||||
educationDto.getCertificate().setFileSizeShow("-");
|
educationDto.getCertificate().setFileSizeShow("-");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,27 @@
|
|||||||
package com.vetti.hotake.service.impl;
|
package com.vetti.hotake.service.impl;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.vetti.common.core.service.BaseServiceImpl;
|
import com.vetti.common.core.service.BaseServiceImpl;
|
||||||
import com.vetti.common.enums.FillTypeEnum;
|
import com.vetti.common.enums.FillTypeEnum;
|
||||||
import com.vetti.common.utils.DateUtils;
|
import com.vetti.common.enums.StageEnum;
|
||||||
import com.vetti.common.utils.SecurityUtils;
|
import com.vetti.common.utils.SecurityUtils;
|
||||||
|
import com.vetti.hotake.domain.HotakeRolesApplyInfo;
|
||||||
|
import com.vetti.hotake.domain.HotakeRolesApplyOperRecord;
|
||||||
import com.vetti.hotake.domain.HotakeRolesInfo;
|
import com.vetti.hotake.domain.HotakeRolesInfo;
|
||||||
import com.vetti.hotake.domain.dto.HotakeCvInfoDto;
|
import com.vetti.hotake.domain.dto.HotakeCvInfoDto;
|
||||||
import com.vetti.hotake.domain.dto.VcDto.*;
|
import com.vetti.hotake.domain.dto.VcDto.*;
|
||||||
|
import com.vetti.hotake.mapper.HotakeRolesApplyInfoMapper;
|
||||||
import com.vetti.hotake.mapper.HotakeRolesInfoMapper;
|
import com.vetti.hotake.mapper.HotakeRolesInfoMapper;
|
||||||
|
import com.vetti.hotake.service.IHotakeRolesApplyInfoService;
|
||||||
|
import com.vetti.hotake.service.IHotakeRolesApplyOperRecordService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import com.vetti.hotake.mapper.HotakeRolesApplyInfoMapper;
|
import java.util.List;
|
||||||
import com.vetti.hotake.domain.HotakeRolesApplyInfo;
|
|
||||||
import com.vetti.hotake.service.IHotakeRolesApplyInfoService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 候选人岗位申请信息Service业务层处理
|
* 候选人岗位申请信息Service业务层处理
|
||||||
@@ -41,6 +39,9 @@ public class HotakeRolesApplyInfoServiceImpl extends BaseServiceImpl implements
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HotakeRolesInfoMapper hotakeRolesInfoMapper;
|
private HotakeRolesInfoMapper hotakeRolesInfoMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IHotakeRolesApplyOperRecordService rolesApplyOperRecordService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询候选人岗位申请信息
|
* 查询候选人岗位申请信息
|
||||||
*
|
*
|
||||||
@@ -66,6 +67,11 @@ public class HotakeRolesApplyInfoServiceImpl extends BaseServiceImpl implements
|
|||||||
applyInfo.setCvInfoDto(cvInfoDto);
|
applyInfo.setCvInfoDto(cvInfoDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HotakeRolesApplyOperRecord queryApplyOperRecord = new HotakeRolesApplyOperRecord();
|
||||||
|
queryApplyOperRecord.setRoleApplyId(id);
|
||||||
|
List<HotakeRolesApplyOperRecord> applyOperRecords = rolesApplyOperRecordService.selectHotakeRolesApplyOperRecordList(queryApplyOperRecord);
|
||||||
|
applyInfo.setApplyOperRecords(applyOperRecords);
|
||||||
|
|
||||||
return applyInfo;
|
return applyInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,6 +92,9 @@ public class HotakeRolesApplyInfoServiceImpl extends BaseServiceImpl implements
|
|||||||
// query.setRecruiterId(SecurityUtils.getUserId());
|
// query.setRecruiterId(SecurityUtils.getUserId());
|
||||||
List<HotakeRolesInfo> rolesInfoList = hotakeRolesInfoMapper.selectHotakeRolesInfoList(query);
|
List<HotakeRolesInfo> rolesInfoList = hotakeRolesInfoMapper.selectHotakeRolesInfoList(query);
|
||||||
|
|
||||||
|
HotakeRolesApplyOperRecord queryApplyOperRecord = new HotakeRolesApplyOperRecord();
|
||||||
|
List<HotakeRolesApplyOperRecord> applyOperRecords = rolesApplyOperRecordService.selectHotakeRolesApplyOperRecordList(queryApplyOperRecord);
|
||||||
|
|
||||||
for(HotakeRolesApplyInfo applyInfo : applyInfoList) {
|
for(HotakeRolesApplyInfo applyInfo : applyInfoList) {
|
||||||
if(applyInfo.getRoleId() != null){
|
if(applyInfo.getRoleId() != null){
|
||||||
List<HotakeRolesInfo> rolesInfos = rolesInfoList.stream().filter(e->e.getId().longValue() == applyInfo.getRoleId().longValue()).toList();
|
List<HotakeRolesInfo> rolesInfos = rolesInfoList.stream().filter(e->e.getId().longValue() == applyInfo.getRoleId().longValue()).toList();
|
||||||
@@ -97,6 +106,12 @@ public class HotakeRolesApplyInfoServiceImpl extends BaseServiceImpl implements
|
|||||||
HotakeCvInfoDto cvInfoDto = handleAnalysisCvInfo(applyInfo.getCvTemplateJson());
|
HotakeCvInfoDto cvInfoDto = handleAnalysisCvInfo(applyInfo.getCvTemplateJson());
|
||||||
applyInfo.setCvInfoDto(cvInfoDto);
|
applyInfo.setCvInfoDto(cvInfoDto);
|
||||||
}
|
}
|
||||||
|
if(CollectionUtil.isNotEmpty(applyOperRecords)) {
|
||||||
|
List<HotakeRolesApplyOperRecord> operRecordList = applyOperRecords.stream().filter(e->e.getRoleApplyId().longValue() == applyInfo.getId().longValue()).toList();
|
||||||
|
if(CollectionUtil.isNotEmpty(operRecordList)) {
|
||||||
|
applyInfo.setApplyOperRecords(operRecordList);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return applyInfoList;
|
return applyInfoList;
|
||||||
@@ -141,6 +156,19 @@ public class HotakeRolesApplyInfoServiceImpl extends BaseServiceImpl implements
|
|||||||
}
|
}
|
||||||
hotakeRolesApplyInfo.setCvFileSuffix(fileSuffix);
|
hotakeRolesApplyInfo.setCvFileSuffix(fileSuffix);
|
||||||
int resultNum = hotakeRolesApplyInfoMapper.updateHotakeRolesApplyInfo(hotakeRolesApplyInfo);
|
int resultNum = hotakeRolesApplyInfoMapper.updateHotakeRolesApplyInfo(hotakeRolesApplyInfo);
|
||||||
|
HotakeRolesApplyOperRecord query = new HotakeRolesApplyOperRecord();
|
||||||
|
query.setRoleApplyId(hotakeRolesApplyInfo.getId()).setApplyStage(hotakeRolesApplyInfo.getStage());
|
||||||
|
List<HotakeRolesApplyOperRecord> applyOperRecords = rolesApplyOperRecordService.selectHotakeRolesApplyOperRecordList(query);
|
||||||
|
if(CollectionUtil.isEmpty(applyOperRecords)) {
|
||||||
|
StageEnum stageEnum = StageEnum.getByInfo(hotakeRolesApplyInfo.getStage());
|
||||||
|
if(stageEnum != null){
|
||||||
|
HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord = new HotakeRolesApplyOperRecord();
|
||||||
|
hotakeRolesApplyOperRecord.setApplyStage(hotakeRolesApplyInfo.getStage());
|
||||||
|
hotakeRolesApplyOperRecord.setRoleApplyId(hotakeRolesApplyInfo.getId());
|
||||||
|
hotakeRolesApplyOperRecord.setRoleId(hotakeRolesApplyInfo.getRoleId());
|
||||||
|
rolesApplyOperRecordService.insertHotakeRolesApplyOperRecord(hotakeRolesApplyOperRecord);
|
||||||
|
}
|
||||||
|
}
|
||||||
return hotakeRolesApplyInfo;
|
return hotakeRolesApplyInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,7 +290,6 @@ public class HotakeRolesApplyInfoServiceImpl extends BaseServiceImpl implements
|
|||||||
if(StrUtil.isEmpty(descriptionDto.getContent())){
|
if(StrUtil.isEmpty(descriptionDto.getContent())){
|
||||||
descriptionDto.setContent("-");
|
descriptionDto.setContent("-");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.vetti.hotake.service.impl;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.vetti.common.core.service.BaseServiceImpl;
|
import com.vetti.common.core.service.BaseServiceImpl;
|
||||||
|
import com.vetti.common.enums.FillTypeEnum;
|
||||||
import com.vetti.common.utils.DateUtils;
|
import com.vetti.common.utils.DateUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -61,7 +62,7 @@ public class HotakeRolesApplyOperRecordServiceImpl extends BaseServiceImpl imple
|
|||||||
@Override
|
@Override
|
||||||
public int insertHotakeRolesApplyOperRecord(HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord)
|
public int insertHotakeRolesApplyOperRecord(HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord)
|
||||||
{
|
{
|
||||||
hotakeRolesApplyOperRecord.setCreateTime(DateUtils.getNowDate());
|
fill(FillTypeEnum.INSERT.getCode(), hotakeRolesApplyOperRecord);
|
||||||
return hotakeRolesApplyOperRecordMapper.insertHotakeRolesApplyOperRecord(hotakeRolesApplyOperRecord);
|
return hotakeRolesApplyOperRecordMapper.insertHotakeRolesApplyOperRecord(hotakeRolesApplyOperRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ public class HotakeRolesApplyOperRecordServiceImpl extends BaseServiceImpl imple
|
|||||||
@Override
|
@Override
|
||||||
public int updateHotakeRolesApplyOperRecord(HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord)
|
public int updateHotakeRolesApplyOperRecord(HotakeRolesApplyOperRecord hotakeRolesApplyOperRecord)
|
||||||
{
|
{
|
||||||
hotakeRolesApplyOperRecord.setUpdateTime(DateUtils.getNowDate());
|
fill(FillTypeEnum.UPDATE.getCode(), hotakeRolesApplyOperRecord);
|
||||||
return hotakeRolesApplyOperRecordMapper.updateHotakeRolesApplyOperRecord(hotakeRolesApplyOperRecord);
|
return hotakeRolesApplyOperRecordMapper.updateHotakeRolesApplyOperRecord(hotakeRolesApplyOperRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="roleApplyId != null "> and role_apply_id = #{roleApplyId}</if>
|
<if test="roleApplyId != null "> and role_apply_id = #{roleApplyId}</if>
|
||||||
<if test="applyStage != null and applyStage != ''"> and apply_stage = #{applyStage}</if>
|
<if test="applyStage != null and applyStage != ''"> and apply_stage = #{applyStage}</if>
|
||||||
</where>
|
</where>
|
||||||
|
order by create_time ASC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectHotakeRolesApplyOperRecordById" parameterType="Long" resultMap="HotakeRolesApplyOperRecordResult">
|
<select id="selectHotakeRolesApplyOperRecordById" parameterType="Long" resultMap="HotakeRolesApplyOperRecordResult">
|
||||||
|
|||||||
Reference in New Issue
Block a user