76 lines
3.3 KiB
JavaScript
76 lines
3.3 KiB
JavaScript
|
|
import fs from 'fs';
|
|||
|
|
|
|||
|
|
// 读取交通物流内推岗位数据
|
|||
|
|
const trafficLogisticsJobs = JSON.parse(
|
|||
|
|
fs.readFileSync('网页未导入数据/交通物流产业/交通物流内推岗位.json', 'utf-8')
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// 转换数据格式为 companyJobsNew.json 的格式
|
|||
|
|
const convertedJobs = trafficLogisticsJobs.map(job => ({
|
|||
|
|
"内推岗位名称": job["内推岗位名称"],
|
|||
|
|
"薪资": job["薪资"],
|
|||
|
|
"工作地点": job["工作地点"],
|
|||
|
|
"学历要求": job["学历要求"],
|
|||
|
|
"招聘人数": job["招聘人数"],
|
|||
|
|
"职位标签": job["职位标签"],
|
|||
|
|
"福利标签": job["福利标签"],
|
|||
|
|
"职位描述": job["职位描述"],
|
|||
|
|
"任职要求": job["任职要求"],
|
|||
|
|
"公司介绍": job["公司介绍"],
|
|||
|
|
"岗位相关标签": job["岗位相关标签"],
|
|||
|
|
"截止时间": job["岗位招聘截止时间"] || "2025/12/31",
|
|||
|
|
"岗位标签": "就业"
|
|||
|
|
}));
|
|||
|
|
|
|||
|
|
console.log(`成功转换 ${convertedJobs.length} 个交通物流内推岗位`);
|
|||
|
|
|
|||
|
|
// 备份原文件
|
|||
|
|
const backupFileName = `src/data/companyJobsNew.json.backup_${new Date().toISOString().replace(/[:.]/g, '-')}`;
|
|||
|
|
try {
|
|||
|
|
const originalData = fs.readFileSync('src/data/companyJobsNew.json', 'utf-8');
|
|||
|
|
fs.writeFileSync(backupFileName, originalData);
|
|||
|
|
console.log(`原文件已备份到: ${backupFileName}`);
|
|||
|
|
} catch (error) {
|
|||
|
|
console.log('备份原文件失败:', error.message);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 保存新的 companyJobsNew.json
|
|||
|
|
fs.writeFileSync('src/data/companyJobsNew.json', JSON.stringify(convertedJobs, null, 2), 'utf-8');
|
|||
|
|
console.log('src/data/companyJobsNew.json 已更新');
|
|||
|
|
|
|||
|
|
// 同时更新 interviewStatus.json 中的部分数据,使其与新岗位匹配
|
|||
|
|
const interviewStatusPath = 'src/data/interviewStatus.json';
|
|||
|
|
let interviewStatusData = [];
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
interviewStatusData = JSON.parse(fs.readFileSync(interviewStatusPath, 'utf-8'));
|
|||
|
|
console.log(`读取到 ${interviewStatusData.length} 条面试状态数据`);
|
|||
|
|
} catch (error) {
|
|||
|
|
console.log('读取 interviewStatus.json 失败,将创建新的数据');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 为部分岗位创建面试状态数据(取前10个岗位作为示例)
|
|||
|
|
const newInterviewStatus = convertedJobs.slice(0, 10).map((job, index) => ({
|
|||
|
|
"岗位名称": job["内推岗位名称"],
|
|||
|
|
"公司名称": job["公司介绍"] ? job["公司介绍"].split(/[。,]/)[0].substring(0, 20) : "物流科技有限公司",
|
|||
|
|
"投递时间": `2024-0${(index % 9) + 1}-${10 + index}`,
|
|||
|
|
"面试状态": ["已投递", "笔试中", "面试中", "已通过", "未通过"][index % 5],
|
|||
|
|
"面试进度": (index % 4 + 1) * 25,
|
|||
|
|
"下一步": index % 2 === 0 ? "等待HR回复" : "准备面试",
|
|||
|
|
"备注": `交通物流岗位 - ${job["工作地点"]}`
|
|||
|
|
}));
|
|||
|
|
|
|||
|
|
// 备份原面试状态文件
|
|||
|
|
if (interviewStatusData.length > 0) {
|
|||
|
|
const interviewBackup = `src/data/interviewStatus.json.backup_${new Date().toISOString().replace(/[:.]/g, '-')}`;
|
|||
|
|
fs.writeFileSync(interviewBackup, JSON.stringify(interviewStatusData, null, 2));
|
|||
|
|
console.log(`面试状态文件已备份到: ${interviewBackup}`);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 保存新的面试状态数据
|
|||
|
|
fs.writeFileSync(interviewStatusPath, JSON.stringify(newInterviewStatus, null, 2), 'utf-8');
|
|||
|
|
console.log('src/data/interviewStatus.json 已更新');
|
|||
|
|
|
|||
|
|
console.log('\n企业内推岗位数据替换完成!');
|
|||
|
|
console.log(`- 更新了 ${convertedJobs.length} 个内推岗位`);
|
|||
|
|
console.log(`- 创建了 ${newInterviewStatus.length} 条面试状态记录`);
|