feat(aihr): persist interview results and candidate material review

面试记录落 aihr_interview_result(GET /records 查询),候选人补充资料
走 OSS + aihr_candidate_material,管理端 AI 面试页可审核通过/驳回;
案例整理服务增强;两张新表纳入 reset 脚本。
This commit is contained in:
2026-07-04 16:05:50 +08:00
parent c47a9bb075
commit 0539adf612
10 changed files with 675 additions and 17 deletions
@@ -0,0 +1,20 @@
-- 候选人补充资料:文件走 sys_oss/MinIO,这里只保存候选人与附件关系和审核状态。
CREATE TABLE IF NOT EXISTS `aihr_candidate_material` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`candidate_id` varchar(80) NOT NULL COMMENT '候选人外部ID',
`candidate_name` varchar(100) DEFAULT NULL COMMENT '候选人姓名',
`material_type` varchar(50) DEFAULT NULL COMMENT '资料类型',
`file_name` varchar(255) NOT NULL COMMENT '文件名',
`file_size` bigint DEFAULT 0 COMMENT '文件大小',
`content_type` varchar(100) DEFAULT NULL COMMENT '文件MIME',
`oss_id` bigint NOT NULL COMMENT '对象存储ID',
`status` varchar(20) DEFAULT '待审核' COMMENT '审核状态',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_aihr_candidate_material_candidate` (`tenant_id`, `candidate_id`, `id`),
KEY `idx_aihr_candidate_material_review` (`tenant_id`, `status`, `id`),
KEY `idx_aihr_candidate_material_oss` (`oss_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 候选人补充资料';
@@ -0,0 +1,26 @@
-- AI 面试结果最小持久化表:finish 后保存评分结果、回答快照和维度分。
-- ponytail: one result table covers MVP history and dashboard count; split question/answer tables when audit workflows need it.
CREATE TABLE IF NOT EXISTS `aihr_interview_result` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`session_id` varchar(100) NOT NULL COMMENT '面试会话ID',
`candidate_id` varchar(80) DEFAULT NULL COMMENT '候选人ID',
`candidate_name` varchar(100) DEFAULT NULL COMMENT '候选人姓名',
`position_code` varchar(120) DEFAULT NULL COMMENT '岗位',
`total_score` int DEFAULT NULL COMMENT '总分',
`result` varchar(40) DEFAULT NULL COMMENT '结论',
`suggestion` varchar(500) DEFAULT NULL COMMENT '建议',
`ai_summary` varchar(1000) DEFAULT NULL COMMENT 'AI摘要',
`evidence` varchar(1000) DEFAULT NULL COMMENT '评分依据',
`source` varchar(40) DEFAULT NULL COMMENT '评分来源',
`answers_json` text DEFAULT NULL COMMENT '候选人回答JSON',
`dimensions_json` text DEFAULT NULL COMMENT '维度评分JSON',
`finished_time` datetime DEFAULT NULL COMMENT '完成时间',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_aihr_interview_session` (`tenant_id`, `session_id`),
KEY `idx_aihr_interview_candidate` (`tenant_id`, `candidate_id`, `finished_time`),
KEY `idx_aihr_interview_finished` (`tenant_id`, `finished_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 面试结果';