AI 候选人面试综合评估
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.vetti.hotake.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
@@ -1058,13 +1059,17 @@ public class HotakeAiCommonToolsServiceImpl extends BaseServiceImpl implements I
|
||||
HotakeCandidateAiInterviewAnalysisDto analysisDto = new HotakeCandidateAiInterviewAnalysisDto();
|
||||
String prompt = AiCommonPromptConstants.initializationCandidateAiInterviewAnalysisPrompt();
|
||||
String qa = "";
|
||||
String qStr = "";
|
||||
String aStr = "";
|
||||
if (CollectionUtil.isNotEmpty(analysisVo.getAiInterviewQuestionRecordVoList())) {
|
||||
for (HotakeAiInterviewQuestionRecordVo recordVo : analysisVo.getAiInterviewQuestionRecordVoList()) {
|
||||
if ("assistant".equals(recordVo.getUserType())) {
|
||||
qa = qa + "Question:" + recordVo.getContentText();
|
||||
qStr = qStr + ";" + recordVo.getContentText();
|
||||
}
|
||||
if ("user".equals(recordVo.getUserType())) {
|
||||
qa = qa + "Answer:" + recordVo.getContentText();
|
||||
aStr = aStr + ";" + recordVo.getContentText();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1143,6 +1148,41 @@ public class HotakeAiCommonToolsServiceImpl extends BaseServiceImpl implements I
|
||||
HotakeRolesApplyInfo applyInfo = hotakeRolesApplyInfoMapper.selectHotakeRolesApplyInfoById(analysisVo.getRoleApplyId());
|
||||
applyInfo.setAiInterviewAnalysisJson(JSONUtil.toJsonStr(analysisVo));
|
||||
applyInfo.setAiInterviewAnalysisQaJson(JSONUtil.toJsonStr(analysisVo.getAiInterviewQuestionRecordVoList()));
|
||||
HotakeRolesInfo rolesInf = hotakeRolesInfoMapper.selectHotakeRolesInfoById(applyInfo.getRoleId());
|
||||
try {
|
||||
//候选人面试综合评估
|
||||
HotakeCandidateInterviewEvaluationVo evaluationVo = new HotakeCandidateInterviewEvaluationVo();
|
||||
|
||||
evaluationVo.setTitle(rolesInf.getRoleName());
|
||||
evaluationVo.setDescription(rolesInf.getAboutRole());
|
||||
evaluationVo.setRequiredSkills(rolesInf.getRequiredSkillsJson());
|
||||
evaluationVo.setPreferredSkills(rolesInf.getNiceToHaveSkillsJson());
|
||||
evaluationVo.setExperienceRequired(rolesInf.getJobExperience());
|
||||
HotakeCvInfoDto cvInfoDto = JSONUtil.toBean(applyInfo.getCvTemplateJson(), HotakeCvInfoDto.class);
|
||||
evaluationVo.setName(cvInfoDto.getName());
|
||||
evaluationVo.setCurrentPosition(cvInfoDto.getPosition());
|
||||
evaluationVo.setEmail(cvInfoDto.getEmail());
|
||||
evaluationVo.setWorkExperience(JSONUtil.toJsonStr(cvInfoDto.getExperience()));
|
||||
evaluationVo.setSkills(JSONUtil.toJsonStr(cvInfoDto.getSkillsTools()));
|
||||
evaluationVo.setEducation(JSONUtil.toJsonStr(cvInfoDto.getEducation()));
|
||||
evaluationVo.setCertifications("");
|
||||
evaluationVo.setInterviewData(DateUtil.now());
|
||||
|
||||
evaluationVo.setQuestions(qStr);
|
||||
evaluationVo.setAnswers(aStr);
|
||||
evaluationVo.setTechnical(analysisDto.getTechnical().toString());
|
||||
evaluationVo.setCommunication(analysisDto.getCommunication().toString());
|
||||
evaluationVo.setSafetyAwareness("");
|
||||
evaluationVo.setProblemSolving("");
|
||||
|
||||
HotakeCandidateInterviewEvaluationDto evaluationDto = getCandidateInterviewEvaluation(evaluationVo);
|
||||
applyInfo.setEvaluationJson(JSONUtil.toJsonStr(evaluationDto));
|
||||
applyInfo.setEvaluationScore(new BigDecimal(evaluationDto.getOverallScore()));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
hotakeRolesApplyInfoMapper.updateHotakeRolesApplyInfo(applyInfo);
|
||||
}
|
||||
return analysisDto;
|
||||
|
||||
@@ -52,9 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
select id, candidate_id,recruiter_id, role_id, full_name, email, phone_number, cv_file, cv_file_suffix,file_size_show,
|
||||
cover_letter, candidate_status, stage, last_contact, cv_template_json, cv_score, cv_md5, experience, ai_match_score,
|
||||
ai_match_score_percentage,status, ai_cv_scoring_ranking_json,ai_cv_score,candidate_compatibility_json,
|
||||
candidate_compatibility_score,evaluation_json,evaluation_score,
|
||||
ai_match_score_percentage,status, ai_cv_scoring_ranking_json,ai_cv_score,candidate_compatibility_json,
|
||||
candidate_compatibility_score,ai_interview_analysis_json,ai_interview_analysis_qa_json,
|
||||
candidate_compatibility_score,evaluation_json,evaluation_score,ai_interview_analysis_json,ai_interview_analysis_qa_json,
|
||||
del_flag, create_by, create_time, update_by, update_time, remark from hotake_roles_apply_info
|
||||
</sql>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user