This commit is contained in:
张成
2025-11-24 13:23:42 +08:00
commit 5d7444cd65
156 changed files with 50653 additions and 0 deletions

View File

@@ -0,0 +1,185 @@
/**
* 简历存储和分析功能示例
* 演示如何使用 get_online_resume 功能获取、存储和分析简历
*/
const jobManager = require('../api/middleware/job/jobManager');
const db = require('../api/middleware/dbProxy');
/**
* 示例1: 获取在线简历并自动存储
*/
async function example1_getAndStoreResume() {
console.log('\n========== 示例1: 获取在线简历并自动存储 ==========\n');
try {
// 模拟MQTT客户端
const mockMqttClient = {
publishAndWait: async (sn_code, command) => {
console.log(`发送MQTT指令: ${command.action} 到设备 ${sn_code}`);
// 模拟返回简历数据实际应该从MQTT获取
return {
code: 200,
message: '成功',
data: require('../_doc/在线简历响应文本.json')
};
}
};
// 调用获取简历方法
const resumeData = await jobManager.get_online_resume(
'GHJU',
mockMqttClient,
{ platform: 'boss' }
);
console.log('\n✅ 简历获取成功!');
console.log('姓名:', resumeData.baseInfo?.name);
console.log('工作年限:', resumeData.baseInfo?.workYearDesc);
console.log('期望职位:', resumeData.expectList?.[0]?.positionName);
console.log('期望薪资:', resumeData.expectList?.[0]?.salaryDesc);
} catch (error) {
console.error('❌ 获取简历失败:', error.message);
}
}
/**
* 示例2: 查询已存储的简历
*/
async function example2_queryStoredResume() {
console.log('\n========== 示例2: 查询已存储的简历 ==========\n');
try {
const resume_info = db.getModel('resume_info');
// 查询指定设备的简历
const resume = await resume_info.findOne({
where: {
sn_code: 'GHJU',
platform: 'boss',
isActive: true
}
});
if (resume) {
console.log('✅ 找到简历记录:');
console.log('简历ID:', resume.id);
console.log('姓名:', resume.fullName);
console.log('工作年限:', resume.workYears);
console.log('期望职位:', resume.expectedPosition);
console.log('期望薪资:', resume.expectedSalary);
console.log('\nAI分析结果');
console.log('技能标签:', resume.aiSkillTags);
console.log('优势:', resume.aiStrengths);
console.log('劣势:', resume.aiWeaknesses);
console.log('职业建议:', resume.aiCareerSuggestion);
console.log('竞争力评分:', resume.aiCompetitiveness);
} else {
console.log('❌ 未找到简历记录');
}
} catch (error) {
console.error('❌ 查询简历失败:', error.message);
}
}
/**
* 示例3: 查看简历的项目经验
*/
async function example3_viewProjectExperience() {
console.log('\n========== 示例3: 查看简历的项目经验 ==========\n');
try {
const resume_info = db.getModel('resume_info');
const resume = await resume_info.findOne({
where: {
sn_code: 'GHJU',
platform: 'boss',
isActive: true
}
});
if (resume && resume.projectExperience) {
const projects = JSON.parse(resume.projectExperience);
console.log(`✅ 共有 ${projects.length} 个项目经验:\n`);
projects.slice(0, 3).forEach((project, index) => {
console.log(`项目 ${index + 1}: ${project.name}`);
console.log(`角色: ${project.role}`);
console.log(`时间: ${project.startDate} - ${project.endDate || '至今'}`);
console.log(`描述: ${project.description?.substring(0, 100)}...`);
console.log('---');
});
} else {
console.log('❌ 未找到项目经验');
}
} catch (error) {
console.error('❌ 查看项目经验失败:', error.message);
}
}
/**
* 示例4: 统计简历数据
*/
async function example4_resumeStatistics() {
console.log('\n========== 示例4: 统计简历数据 ==========\n');
try {
const resume_info = db.getModel('resume_info');
// 统计总数
const totalCount = await resume_info.count();
// 统计各平台数量
const bossPlatformCount = await resume_info.count({ where: { platform: 'boss' } });
// 统计高竞争力简历
const highCompetitiveness = await resume_info.count({
where: {
aiCompetitiveness: { [db.models.op.gte]: 80 }
}
});
console.log('✅ 简历统计:');
console.log('总简历数:', totalCount);
console.log('Boss直聘平台:', bossPlatformCount);
console.log('高竞争力简历(≥80分):', highCompetitiveness);
} catch (error) {
console.error('❌ 统计失败:', error.message);
}
}
// 主函数
async function main() {
console.log('🚀 简历存储和分析功能示例\n');
// 运行示例
await example1_getAndStoreResume();
await example2_queryStoredResume();
await example3_viewProjectExperience();
await example4_resumeStatistics();
console.log('\n✨ 所有示例执行完成!\n');
}
// 如果直接运行此文件
if (require.main === module) {
main().catch(error => {
console.error('执行失败:', error);
process.exit(1);
});
}
module.exports = {
example1_getAndStoreResume,
example2_queryStoredResume,
example3_viewProjectExperience,
example4_resumeStatistics
};