Files
ALL-teach_sys/frontend_环保/replaceEnvData.js

179 lines
5.4 KiB
JavaScript
Raw Normal View History

import fs from 'fs';
import path from 'path';
// 读取环保岗位简历数据
const envData = JSON.parse(fs.readFileSync('./网页未导入数据/环保产业/环保岗位简历.json', 'utf-8'));
// 按岗位群分组
const groupedData = {};
envData.forEach(item => {
const groupName = item['简历岗位群'];
if (!groupedData[groupName]) {
groupedData[groupName] = {
positions: [],
resumes: []
};
}
// 构建岗位数据
const position = {
id: `env_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
title: item['岗位名称'],
level: item['岗位等级标签'],
avatar: item['简历头像url'],
department: groupName,
type: "全职",
experience: "1-3年",
education: "大专",
salary: "5-15K",
location: "苏州",
updateTime: "2024-01-20",
description: `负责${item['岗位名称']}相关工作`,
requirements: []
};
// 从简历内容中提取岗位要求
const resumeContent = item['简历内容'];
const coreAbilityMatch = resumeContent.match(/### (一)垂直能力\n\n([\s\S]*?)### (二)/);
if (coreAbilityMatch) {
const abilities = coreAbilityMatch[1].split('\n').filter(line => line.match(/^\d+\./));
position.requirements = abilities.slice(0, 4).map(line => line.replace(/^\d+\.\s*/, ''));
}
groupedData[groupName].positions.push(position);
// 构建简历数据
const resume = {
position: item['岗位名称'],
level: item['岗位等级标签'],
avatar: item['简历头像url'],
content: {
original: item['简历内容'],
modified: item['简历内容']
},
studentInfo: {
project_experience: {
project_name: item['对应项目案例名称'],
position: item['岗位名称'] + '助理',
time_period: "XXXXXX",
company: "XXXXXX",
description: "参与项目实施"
},
core_skills: [],
compound_skills: [],
personal_summary: ""
}
};
// 提取技能和总结
const coreSkillsMatch = resumeContent.match(/### (一)垂直能力\n\n([\s\S]*?)### (二)/);
if (coreSkillsMatch) {
const skills = coreSkillsMatch[1].split('\n')
.filter(line => line.match(/^\d+\./))
.map(line => line.replace(/^\d+\.\s*/, '').trim());
resume.studentInfo.core_skills = skills.slice(0, 9);
}
const compoundSkillsMatch = resumeContent.match(/### (二)复合能力\n\n([\s\S]*?)#/);
if (compoundSkillsMatch) {
const skills = compoundSkillsMatch[1].split('\n')
.filter(line => line.match(/^\d+\./))
.map(line => line.replace(/^\d+\.\s*/, '').trim());
resume.studentInfo.compound_skills = skills.slice(0, 9);
}
const summaryMatch = resumeContent.match(/# 三、个人评价\n\n([\s\S]*?)$/);
if (summaryMatch) {
resume.studentInfo.personal_summary = summaryMatch[1].trim();
}
groupedData[groupName].resumes.push(resume);
});
// 生成industries数据
const industries = [];
const resumeTemplates = {};
let industryId = 1;
Object.keys(groupedData).forEach(groupName => {
const industryData = {
id: `env_${industryId}`,
name: groupName,
positions: groupedData[groupName].positions.slice(0, 3), // 每个群取前3个岗位
questions: [
{
id: `group_q${industryId}`,
question: `# 一、${groupName}专业问题`,
subQuestions: [
{
id: `q${industryId}_1`,
question: `请谈谈您对${groupName}领域的理解和认识?`,
answer: `我对${groupName}有深入的理解,包括相关法规、技术标准和实施流程...`
},
{
id: `q${industryId}_2`,
question: `${groupName}项目中,您如何保证项目质量?`,
answer: `我会通过建立完善的质量管理体系,严格执行相关标准...`
}
]
}
]
};
industries.push(industryData);
resumeTemplates[groupName] = groupedData[groupName].resumes.slice(0, 3);
industryId++;
});
// 生成最终的JS文件内容
const jsContent = `// 简历与面试题Mock数据
// 岗位群列表
const industries = ${JSON.stringify(industries, null, 2)};
// 学生个人简历(通用)
const myResume = {
"name": "张三",
"gender": "男",
"age": "22",
"education": "大专",
"major": "环境工程技术",
"school": "苏州职业技术学院",
"phone": "138****5678",
"email": "zhangsan@example.com",
"address": "江苏省苏州市",
"skills": [
"环境监测与评价",
"节能技术应用",
"环保设备运维",
"数据分析处理"
],
"certificates": [
"环境影响评价工程师(初级)",
"ISO 14001内审员"
],
"internship": "在多家环保企业实习,参与环评项目、节能改造等工作",
"selfIntroduction": "我是一名环境工程技术专业的应届毕业生,对环保事业充满热情..."
};
// 简历模板数据
const resumeTemplates = ${JSON.stringify(resumeTemplates, null, 2)};
// Mock数据整合
const resumeInterviewMockData = {
industries,
myResume,
resumeTemplates
};
// 导出函数
export const getMockPageData = () => {
return resumeInterviewMockData;
};
`;
// 写入文件
fs.writeFileSync('./src/mocks/resumeInterviewMock_env.js', jsContent);
console.log('环保数据转换完成!');
console.log('生成了', Object.keys(groupedData).length, '个岗位群');
console.log('总共', envData.length, '个岗位');