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} 条面试状态记录`);