94 lines
3.3 KiB
JavaScript
94 lines
3.3 KiB
JavaScript
|
|
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['面试状态']}`);
|
|||
|
|
});
|