diff --git a/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeRolesApplyInfoController.java b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeRolesApplyInfoController.java index 30fa1b7..44a4670 100644 --- a/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeRolesApplyInfoController.java +++ b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeRolesApplyInfoController.java @@ -143,4 +143,15 @@ public class HotakeRolesApplyInfoController extends BaseController HotakeRolesApplyStageStatisticalDto info = hotakeRolesApplyInfoService.handleHotakeRolesApplyStageStatistical(hotakeRolesApplyInfo); return R.ok(info,""); } + + /** + * 候选人面试综合评估 + */ + @ApiOperation("候选人面试综合评估") + @PostMapping("/candidateInterviewEvaluation") + public R getCandidateInterviewEvaluation(@RequestBody HotakeRolesApplyInfo hotakeRolesApplyInfo) + { + HotakeRolesApplyInfo info = hotakeRolesApplyInfoService.handleCandidateInterviewEvaluation(hotakeRolesApplyInfo); + return R.ok(info,""); + } } diff --git a/vetti-admin/src/main/java/com/vetti/web/service/impl/HotakeCommonServiceImpl.java b/vetti-admin/src/main/java/com/vetti/web/service/impl/HotakeCommonServiceImpl.java index db492d8..781d1ee 100644 --- a/vetti-admin/src/main/java/com/vetti/web/service/impl/HotakeCommonServiceImpl.java +++ b/vetti-admin/src/main/java/com/vetti/web/service/impl/HotakeCommonServiceImpl.java @@ -12,6 +12,7 @@ import com.vetti.web.service.IHotakeCommonService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.Base64Utils; import java.util.List; import java.util.stream.Collectors; @@ -73,4 +74,12 @@ public class HotakeCommonServiceImpl implements IHotakeCommonService { dataDto.setVisibilityIncreaseNum(32); return dataDto; } + +// public static void main(String[] args){ +// String str = "roleId=139&roleApplyId=21&userName=aioteam@qq.com&userType=candidate&token="; +// String base64 = Base64Utils.encodeToString(str.getBytes()); +// System.out.println(base64); +// +// +// } } diff --git a/vetti-admin/target/classes/application-druid.yml b/vetti-admin/target/classes/application-druid.yml index feb4f08..cd48dc4 100644 --- a/vetti-admin/target/classes/application-druid.yml +++ b/vetti-admin/target/classes/application-druid.yml @@ -191,6 +191,7 @@ chatGpt: modelAiIntPf: gpt-4o-mini modelAiCvSr: gpt-4o-mini modelAiCac: gpt-4o-mini + modelAiCiv: gpt-4o-mini role: system http: diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeRolesApplyInfoMapper.java b/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeRolesApplyInfoMapper.java index 1047b91..acb7d25 100644 --- a/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeRolesApplyInfoMapper.java +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeRolesApplyInfoMapper.java @@ -43,6 +43,14 @@ public interface HotakeRolesApplyInfoMapper */ public List selectHotakeRolesApplyInfoCompatibilityScoreList(HotakeRolesApplyInfo hotakeRolesApplyInfo); + /** + * 查询候选人岗位申请信息列表 + * + * @param hotakeRolesApplyInfo 候选人岗位申请信息 + * @return 候选人岗位申请信息集合 + */ + public List selectHotakeRolesApplyInfoCompatibilityScoreOneList(HotakeRolesApplyInfo hotakeRolesApplyInfo); + /** * 新增候选人岗位申请信息 * diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeRolesApplyInfoService.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeRolesApplyInfoService.java index e880af1..daa231f 100644 --- a/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeRolesApplyInfoService.java +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeRolesApplyInfoService.java @@ -101,4 +101,12 @@ public interface IHotakeRolesApplyInfoService */ public HotakeRolesApplyStageStatisticalDto handleHotakeRolesApplyStageStatistical(HotakeRolesApplyInfo hotakeRolesApplyInfo); + /** + * 候选人面试综合评估 + * + * @param hotakeRolesApplyInfo 候选人岗位申请信息 + * @return 候选人岗位申请信息集合 + */ + public HotakeRolesApplyInfo handleCandidateInterviewEvaluation(HotakeRolesApplyInfo hotakeRolesApplyInfo); + } diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesApplyInfoServiceImpl.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesApplyInfoServiceImpl.java index f15fa88..d31cf96 100644 --- a/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesApplyInfoServiceImpl.java +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesApplyInfoServiceImpl.java @@ -11,10 +11,7 @@ import com.vetti.common.enums.StageEnum; import com.vetti.common.exception.ServiceException; import com.vetti.common.utils.SecurityUtils; import com.vetti.hotake.domain.*; -import com.vetti.hotake.domain.dto.HotakeAiCvScoringRankingDto; -import com.vetti.hotake.domain.dto.HotakeCandidateCompatibilityDto; -import com.vetti.hotake.domain.dto.HotakeCvInfoDto; -import com.vetti.hotake.domain.dto.HotakeRolesApplyStageStatisticalDto; +import com.vetti.hotake.domain.dto.*; import com.vetti.hotake.domain.dto.VcDto.*; import com.vetti.hotake.domain.vo.HotakeRolesApplyStageVo; import com.vetti.hotake.mapper.HotakeInitScreQuestionsReplyRecordInfoMapper; @@ -548,4 +545,37 @@ public class HotakeRolesApplyInfoServiceImpl extends BaseServiceImpl implements return dto; } + /** + * 候选人面试综合评估 + * @param hotakeRolesApplyInfo 候选人岗位申请信息 + * @return + */ + @Override + public HotakeRolesApplyInfo handleCandidateInterviewEvaluation(HotakeRolesApplyInfo hotakeRolesApplyInfo) { + if(CollectionUtil.isEmpty(hotakeRolesApplyInfo.getApplyRoleIdList())){ + throw new ServiceException("Please select at least one piece of business data"); + } + List applyInfoList = hotakeRolesApplyInfoMapper.selectHotakeRolesApplyInfoCompatibilityScoreOneList(hotakeRolesApplyInfo); + if(CollectionUtil.isNotEmpty(applyInfoList)) { + + HotakeRolesApplyInfo applyInfo = applyInfoList.get(0); + if(StrUtil.isNotEmpty(applyInfo.getEvaluationJson())){ + HotakeCandidateInterviewEvaluationDto evaluationDto = JSONUtil.toBean(applyInfo.getEvaluationJson(), HotakeCandidateInterviewEvaluationDto.class); + applyInfo.setEvaluationDto(evaluationDto); + } + HotakeRolesInfo rolesInfo = hotakeRolesInfoMapper.selectHotakeRolesInfoById(applyInfo.getRoleId()); + applyInfo.setRolesInfo(rolesInfo); + + SysUser user = userService.selectUserById(applyInfo.getCandidateId()); + applyInfo.setCandidateUSer(user); + if(StrUtil.isNotEmpty(applyInfo.getCandidateCompatibilityJson())){ + HotakeCandidateCompatibilityDto compatibilityDto = JSONUtil.toBean(applyInfo.getCandidateCompatibilityJson(), HotakeCandidateCompatibilityDto.class); + applyInfo.setCompatibilityDto(compatibilityDto); + } + return applyInfo; + } + return new HotakeRolesApplyInfo(); + } + + } diff --git a/vetti-hotakes/src/main/resources/mapper/hotake/HotakeRolesApplyInfoMapper.xml b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeRolesApplyInfoMapper.xml index 9ca90a7..00fcc9c 100644 --- a/vetti-hotakes/src/main/resources/mapper/hotake/HotakeRolesApplyInfoMapper.xml +++ b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeRolesApplyInfoMapper.xml @@ -151,6 +151,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by candidate_compatibility_score DESC + + +