import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // 读取财经商贸岗位面试状态数据 const financeStatusData = JSON.parse( fs.readFileSync(path.join(__dirname, '网页未导入数据/财经商贸产业/财经商贸岗位面试状态.json'), 'utf-8') ); // 转换数据格式 - 根据原始文件的格式转换 const transformedData = financeStatusData.map(item => { // 解析流程时间和流程标签来构建阶段日期 let stageDate = ''; // 根据流程标签决定显示格式 switch(item["流程标签"]) { case "面试未通过": stageDate = `面试未通过:${item["流程时间"]}`; break; case "面试完成": stageDate = `面试完成:${item["流程时间"]}`; break; case "收到Offer": stageDate = `收到Offer:${item["流程时间"]}`; break; case "面试日期已过": stageDate = `面试日期已过:${item["流程时间"]}`; break; case "简历通过": stageDate = `简历通过:${item["流程时间"]}`; break; case "面试日期已确定": stageDate = `面试日期:${item["流程时间"]}`; break; case "简历未通过": stageDate = `简历未通过:${item["流程时间"]}`; break; case "等待HR评估": stageDate = `等待HR评估:${item["流程时间"]}`; break; default: stageDate = `${item["流程标签"]}:${item["流程时间"]}`; } // 构建面试状态文本 let statusText = item["内容"]; if (item["剩余时间"]) { statusText = item["内容"].replace(/\d+天/, `${item["剩余时间"]}天`); } return { "查询岗位名称": item["查询岗位名称"], "阶段日期": stageDate, "面试状态": statusText }; }); // 备份原文件 const backupPath = path.join(__dirname, 'src/data', `interviewStatus.json.backup_${new Date().toISOString().replace(/[:.]/g, '-')}`); fs.copyFileSync( path.join(__dirname, 'src/data/interviewStatus.json'), backupPath ); console.log(`备份已创建: ${backupPath}`); // 写入新数据 fs.writeFileSync( path.join(__dirname, 'src/data/interviewStatus.json'), JSON.stringify(transformedData, null, 2), 'utf-8' ); console.log(`成功更新 interviewStatus.json,共 ${transformedData.length} 个面试状态`);