import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; import { dirname } from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); // 读取环保岗位面试状态数据 const envInterviewData = JSON.parse(fs.readFileSync('./网页未导入数据/环保产业/环保岗位面试状态.json', 'utf8')); // 转换函数:将环保数据格式转换为系统所需格式 function transformInterviewStatus(envData) { return envData.map((item) => { // 根据流程标签和内容生成合适的面试状态文本 let statusText = ''; let datePrefix = ''; // 根据岗位内推流程确定前缀和状态文本 switch (item['岗位内推流程']) { case '简历投递': datePrefix = '简历投递:'; statusText = item['内容']; break; case 'HR评估': datePrefix = 'HR评估:'; if (item['流程标签'] === '简历通过') { statusText = item['内容'] || '等待面试安排'; } else { statusText = item['内容'] || 'HR正在评估简历'; } break; case '面试': datePrefix = '面试通知:'; statusText = item['内容'] || '面试日期已确定,等待面试'; break; case '面试结果': datePrefix = '面试结果:'; statusText = item['内容'] || '等待面试结果'; break; case 'Offer': datePrefix = '收到Offer:'; statusText = item['内容'] || '已收到Offer,请于2天内答复'; break; default: datePrefix = '状态更新:'; statusText = item['内容'] || '状态更新中'; } // 格式化时间 let formattedDate = ''; if (item['流程时间']) { // 将 "2025/7/11 0:00" 格式转换为 "2025/7/11 14:30" 这样的格式 const dateParts = item['流程时间'].split(' '); const date = dateParts[0]; // 生成一个合理的时间(9:00-18:00之间) const hours = 9 + Math.floor(Math.random() * 9); const minutes = Math.floor(Math.random() * 60); formattedDate = `${date} ${hours}:${minutes < 10 ? '0' + minutes : minutes}`; } return { "查询岗位名称": item['查询岗位名称'], "阶段日期": `${datePrefix}${formattedDate}`, "面试状态": statusText }; }); } // 转换数据 const transformedData = transformInterviewStatus(envInterviewData); // 备份原始文件 const originalFile = './src/data/interviewStatus.json'; const backupFile = `./src/data/interviewStatus.json.backup_${new Date().toISOString().replace(/[:.]/g, '-')}`; // 读取原始文件并备份 if (fs.existsSync(originalFile)) { const originalData = fs.readFileSync(originalFile, 'utf8'); fs.writeFileSync(backupFile, originalData); console.log(`原始文件已备份到: ${backupFile}`); } // 写入新数据 fs.writeFileSync(originalFile, JSON.stringify(transformedData, null, 2)); console.log('面试状态数据替换完成!'); console.log(`总共替换了 ${transformedData.length} 条岗位面试状态数据`); // 显示前5条数据作为示例 console.log('\n前5条数据示例:'); transformedData.slice(0, 5).forEach((item, index) => { console.log(`${index + 1}. ${item['查询岗位名称']} - ${item['阶段日期']} - ${item['面试状态']}`); });