AI接入逻辑完善

This commit is contained in:
2025-12-29 08:57:46 +08:00
parent ff49f1c0c1
commit 5663e8abfd
60 changed files with 2666 additions and 108 deletions

View File

@@ -1,6 +1,7 @@
package com.vetti.hotake.domain;
import com.vetti.hotake.domain.dto.HotakeCvInfoDto;
import com.vetti.hotake.domain.dto.HotakeCvOptimizeDto;
import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModelProperty;
@@ -80,4 +81,16 @@ public class HotakeCvInfo extends BaseEntity
@ApiModelProperty("简历评分")
private String score;
@ApiModelProperty("简历分析结果数据存储")
private String cvOptimizeJson;
@ApiModelProperty("文本修正的数量")
private Integer textCorrectionsNums;
@ApiModelProperty("逻辑修正的数量")
private Integer logicCorrectionsNum;
@ApiModelProperty("简历分析结果数据")
private HotakeCvOptimizeDto cvOptimizeDto;
}

View File

@@ -59,7 +59,7 @@ public class HotakeMeetingCalendarInfo extends BaseEntity
private String messageVia;
/** 状态0 取消1 正常) */
@ApiModelProperty("状态0 取消1 正常)")
@ApiModelProperty("状态0 取消1 正常,2 已完成面试")
private String status;
@ApiModelProperty("岗位基本信息")
@@ -69,4 +69,8 @@ public class HotakeMeetingCalendarInfo extends BaseEntity
private List<HotakeMeetingCalendarDetail> calendarDetails;
@ApiModelProperty("会议ID数据集合-查询使用")
private List<Long> meetingIds;
}

View File

@@ -0,0 +1,30 @@
package com.vetti.hotake.domain.dto;
import com.vetti.hotake.domain.dto.VcDto.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 简历优化器 返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class HotakeCvOptimizeDto {
@ApiModelProperty("分析总结")
private CvAnalysisSummaryDto analysisSummary;
@ApiModelProperty("文本修正(文字、语法等错误)")
private CvTextCorrectionsDto textCorrections;
@ApiModelProperty("逻辑修正")
private CvLogicCorrectionsDto logicCorrections;
@ApiModelProperty("优化建议")
private CvOptimizationSuggestionsDto optimizationSuggestions;
@ApiModelProperty("行动计划")
private CvActionPlanDto actionPlan;
@ApiModelProperty("预期改进效果")
private CvEstimatedImprovementDto estimatedImprovement;
}

View File

@@ -0,0 +1,22 @@
package com.vetti.hotake.domain.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 初步筛选问题淘汰评分 返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class HotakeInitialQuestionEliminationScoreDto {
@ApiModelProperty("评分")
private String score;
@ApiModelProperty("描述")
private String evaluate;
}

View File

@@ -0,0 +1,41 @@
package com.vetti.hotake.domain.dto;
import com.vetti.hotake.domain.dto.roleDto.NiceToHaveSkillsDto;
import com.vetti.hotake.domain.dto.roleDto.RequiredSkillsDto;
import com.vetti.hotake.domain.dto.roleDto.ResponsibilitiesDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 岗位-职位描述 返回信息
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class HotakeJobDescriptionGeneratorDto {
/** 关于职位 */
@ApiModelProperty("关于职位")
private String aboutRole;
/** 职责 */
@ApiModelProperty("职责")
private List<ResponsibilitiesDto> responsibilitiesList;
@ApiModelProperty("岗位所需技能信息数据集合")
private List<RequiredSkillsDto> skillsDtoList;
@ApiModelProperty("岗位加分技能信息数据集合")
private List<NiceToHaveSkillsDto> haveSkillsDtoList;
}

View File

@@ -0,0 +1,30 @@
package com.vetti.hotake.domain.dto;
import com.vetti.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 会议日历返回数据 实体类对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class HotakeMeetingCalendarDataDto {
/** 会议日期 */
@ApiModelProperty("会议日期(年月日)")
@Excel(name = "会议日期")
private String meetingDate;
@ApiModelProperty("是否有会议(0:无,1:有会议)")
private String meetingFlag;
@ApiModelProperty("当前日期对应的会议数量")
private Integer nums;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-行动计划 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvActionPlanDto {
@ApiModelProperty("立即修正项,优先级最高 ")
private List<String> immediateFixes;
@ApiModelProperty("内容改进项,中期执行 ")
private List<String> contentImprovements;
@ApiModelProperty("战略性提升项,长期优化 ")
private List<String> strategicEnhancements;
}

View File

@@ -0,0 +1,33 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-分析总结 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvAnalysisSummaryDto {
@ApiModelProperty("简历综合评分 (0-100) ")
private String overallScore;
@ApiModelProperty("主要优势列表,突出候选人核心竞争力 ")
private List<String> mainStrengths;
@ApiModelProperty("关键问题列表,需要优先解决的问题 ")
private List<String> criticalIssues;
@ApiModelProperty("改进潜力high/medium/low")
private String improvementPotential;
}

View File

@@ -0,0 +1,26 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 简历-优化器-职业发展逻辑 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvCareerProgressionDto {
@ApiModelProperty("问题")
private String issue;
@ApiModelProperty("详细信息")
private String details;
@ApiModelProperty("建议")
private String suggestion;
}

View File

@@ -0,0 +1,29 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 简历-优化器-预期改进效果 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvEstimatedImprovementDto {
@ApiModelProperty("当前ATS系统评分 (0-100) ")
private String currentAtsScore;
@ApiModelProperty("优化后预期ATS评分 ")
private String potentialAtsScore;
@ApiModelProperty("对招聘官的吸引力提升程度")
private String recruiterAppeal;
@ApiModelProperty("获得面试机会的概率提升")
private String interviewProbability;
}

View File

@@ -0,0 +1,28 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-格式错误 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvFormattingIssuesDto {
@ApiModelProperty("问题")
private String issue;
@ApiModelProperty("修正建议")
private String suggestion;
@ApiModelProperty("错误位置")
private List<String> locations;
}

View File

@@ -0,0 +1,30 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 简历-优化器-语法错误 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvGrammarErrorsDto {
@ApiModelProperty("原始数据")
private String original;
@ApiModelProperty("修正数据")
private String corrected;
@ApiModelProperty("错误位置")
private String location;
@ApiModelProperty("解释说明")
private String explanation;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-关键词优化 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvKeywordOptimizationDto {
@ApiModelProperty("缺少关键字")
private List<String> missingKeywords;
@ApiModelProperty("行业术语")
private List<String> industryTerms;
@ApiModelProperty("ats关键字")
private List<String> atsKeywords;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-逻辑修正 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvLogicCorrectionsDto {
@ApiModelProperty("时间线冲突列表数据集合")
private List<CvTimelineConflictsDto> timelineConflicts;
@ApiModelProperty("职业发展逻辑数据集合")
private List<CvCareerProgressionDto> careerProgressionDtos;
@ApiModelProperty("技能经验匹配数据集合")
private List<CvSkillExperienceMismatchDto> skillExperienceMismatchDtos;
}

View File

@@ -0,0 +1,31 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-优化建议 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvOptimizationSuggestionsDto {
@ApiModelProperty("个人简介优化")
private CvPersonalSummaryDto personalSummary;
@ApiModelProperty("工作经历优化建议")
private List<CvWorkExperienceDto> workExperienceDtoList;
@ApiModelProperty("技能部分优化")
private CvSkillsSectionDto skillsSection;
@ApiModelProperty("关键词优化")
private CvKeywordOptimizationDto keywordOptimization;
}

View File

@@ -0,0 +1,28 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-个人总结 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvPersonalSummaryDto {
@ApiModelProperty("当前问题列表")
private List<String> currentIssues;
@ApiModelProperty("优化后的个人简介")
private String optimizedVersion;
@ApiModelProperty("关键改进点")
private List<String> keyImprovements;
}

View File

@@ -0,0 +1,25 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 简历-优化器-技能经验匹配 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvSkillExperienceMismatchDto {
@ApiModelProperty("技能")
private String skill;
@ApiModelProperty("问题")
private String issue;
@ApiModelProperty("建议")
private String suggestion;
}

View File

@@ -0,0 +1,26 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-技能部分优化 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvSkillsSectionDto {
@ApiModelProperty("当前问题")
private List<String> currentIssues;
@ApiModelProperty("建议结构")
private CvSuggestedStructureDto suggestedStructureDto;
}

View File

@@ -0,0 +1,25 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 简历-优化器-识别拼写错误 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvSpellingErrorsDto {
@ApiModelProperty("原始数据")
private String original;
@ApiModelProperty("修正数据")
private String corrected;
@ApiModelProperty("错误位置")
private String location;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-建议结构 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvSuggestedStructureDto {
@ApiModelProperty("核心技能")
private List<String> coreSkills;
@ApiModelProperty("技术技能")
private List<String> technicalSkills;
@ApiModelProperty("认证")
private List<String> certifications;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-文本修正(文字、语法等错误) -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvTextCorrectionsDto {
@ApiModelProperty("识别拼写错误数据集合")
private List<CvSpellingErrorsDto> spellingErrors;
@ApiModelProperty("语法错误数据集合")
private List<CvGrammarErrorsDto> grammarErrors;
@ApiModelProperty("格式错误数据集合")
private List<CvFormattingIssuesDto> formattingIssues;
}

View File

@@ -0,0 +1,25 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 简历-优化器-检查时间线冲突 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvTimelineConflictsDto {
@ApiModelProperty("冲突类型 ")
private String conflict;
@ApiModelProperty("冲突详情 ")
private String details;
@ApiModelProperty("解决建议 ")
private String suggestion;
}

View File

@@ -0,0 +1,30 @@
package com.vetti.hotake.domain.dto.VcDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 简历-优化器-工作经验 -返回对象
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class CvWorkExperienceDto {
@ApiModelProperty("职位名称")
private String position;
@ApiModelProperty("当前描述")
private String currentDescription;
@ApiModelProperty("优化后描述")
private String optimizedDescription;
@ApiModelProperty("改进要点")
private List<String> improvements;
}

View File

@@ -0,0 +1,20 @@
package com.vetti.hotake.domain.dto.roleDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 岗位-职责信息 返回信息
*
* @author wangxiangshun
* @date 2025-11-30
*/
@Data
@Accessors(chain = true)
public class ResponsibilitiesDto {
/** 职责 */
@ApiModelProperty("职责")
private String responsibilities;
}

View File

@@ -0,0 +1,32 @@
package com.vetti.hotake.domain.vo;
import com.vetti.common.annotation.Excel;
import com.vetti.hotake.domain.HotakeInitScreQuestionsReplyRecordInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 岗位-初步筛选问题淘汰评分 对象
*
* @author wangxiangshun
* @date 2025-12-14
*/
@Data
@Accessors(chain = true)
public class HotakeInitialQuestionEliminationScoreVo {
@ApiModelProperty("岗位名称")
private String roleName;
/** 岗位ID */
@ApiModelProperty("岗位ID")
@Excel(name = "岗位ID")
private Long roleId;
@ApiModelProperty("初步筛选问题回答记录数据集合")
private List<HotakeInitScreQuestionsReplyRecordInfo> initScreQuestionsReplyRecordInfoList;
}

View File

@@ -0,0 +1,25 @@
package com.vetti.hotake.domain.vo;
import com.vetti.hotake.domain.HotakeInitialScreeningQuestionsInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 岗位-初筛问题 对象
*
* @author wangxiangshun
* @date 2025-12-14
*/
@Data
@Accessors(chain = true)
public class HotakeInitialScreeningQuestionsInfoVo {
@ApiModelProperty("岗位ID")
private Long roleId;
@ApiModelProperty("初步筛选问题数据集合")
private List<HotakeInitialScreeningQuestionsInfo> questionsInfoList;
}

View File

@@ -0,0 +1,19 @@
package com.vetti.hotake.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 岗位-初筛问题 对象
*
* @author wangxiangshun
* @date 2025-12-14
*/
@Data
@Accessors(chain = true)
public class HotakeInitialScreeningQuestionsVo {
@ApiModelProperty("岗位ID")
private Long roleId;
}

View File

@@ -0,0 +1,28 @@
package com.vetti.hotake.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 岗位-职位描述生成器 对象
*
* @author wangxiangshun
* @date 2025-12-14
*/
@Data
@Accessors(chain = true)
public class HotakeJobDescriptionGeneratorVo {
@ApiModelProperty("岗位ID")
private Long roleId;
// @ApiModelProperty("岗位名")
// private String jobTitle;
//
// @ApiModelProperty("行业领域-岗位类型")
// private String industry;
//
// @ApiModelProperty("关键技能或经验要求")
// private String coreRequirements;
}

View File

@@ -0,0 +1,38 @@
package com.vetti.hotake.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 岗位-简历岗位匹配度评分 对象
*
* @author wangxiangshun
* @date 2025-12-14
*/
@Data
@Accessors(chain = true)
public class HotakeResumeJobMatchingScoreVo {
@ApiModelProperty("岗位名")
private String jobTitle;
@ApiModelProperty("岗位描述")
private String jobDescription;
@ApiModelProperty("主要职责")
private String keyResponsibilities;
@ApiModelProperty("任职要求")
private String jobRequirements;
@ApiModelProperty("个人信息")
private String personalInformation;
@ApiModelProperty("工作经历")
private String workHistory;
@ApiModelProperty("项目经验")
private String projectExperience;
@ApiModelProperty("技能清单")
private String skillsList;
@ApiModelProperty("教育背景")
private String educationalBackground;
@ApiModelProperty("其他相关信息")
private String otherRelevantInformation;
}