import fs from 'fs'; // 读取生成的项目库Mock数据 const mockContent = fs.readFileSync('src/mocks/projectLibraryMock.js', 'utf8'); // 提取projectDetails对象 const detailsMatch = mockContent.match(/const projectDetails = ({[\s\S]*?});[\s\S]*?const detail = projectDetails/); if (!detailsMatch) { console.error('无法提取projectDetails数据'); process.exit(1); } // 使用eval来解析JavaScript对象(注意:这只在受控环境中使用) let projectDetails; try { eval(`projectDetails = ${detailsMatch[1]}`); } catch (e) { console.error('解析projectDetails失败:', e); process.exit(1); } // 统计不同等级的岗位 const levelStats = { '普通岗': [], '技术骨干岗': [], '储备干部岗': [] }; // 收集所有岗位信息 Object.values(projectDetails).forEach(project => { project.applicablePositions.forEach(pos => { if (levelStats[pos.level]) { // 检查是否已存在该岗位 const existing = levelStats[pos.level].find(p => p.name === pos.position); if (existing) { existing.projects.push(project.title); } else { levelStats[pos.level].push({ name: pos.position, projects: [project.title] }); } } }); }); // 输出统计结果 console.log('====================================='); console.log('财经商贸项目库 - 岗位等级详细分析'); console.log('=====================================\n'); console.log('【总体统计】'); console.log(`- 普通岗:${levelStats['普通岗'].length} 种岗位`); console.log(`- 技术骨干岗:${levelStats['技术骨干岗'].length} 种岗位`); console.log(`- 储备干部岗:${levelStats['储备干部岗'].length} 种岗位`); console.log(`- 岗位总计:${levelStats['普通岗'].length + levelStats['技术骨干岗'].length + levelStats['储备干部岗'].length} 种岗位`); console.log('\n====================================='); console.log('【普通岗位列表】(绿色标签)'); console.log('====================================='); levelStats['普通岗'].forEach((pos, index) => { console.log(`${index + 1}. ${pos.name}`); console.log(` 适用项目:`); pos.projects.forEach(proj => { console.log(` - ${proj}`); }); }); console.log('\n====================================='); console.log('【技术骨干岗位列表】(紫色标签)'); console.log('====================================='); levelStats['技术骨干岗'].forEach((pos, index) => { console.log(`${index + 1}. ${pos.name}`); console.log(` 适用项目:`); pos.projects.forEach(proj => { console.log(` - ${proj}`); }); }); console.log('\n====================================='); console.log('【储备干部岗位列表】(蓝色标签)'); console.log('====================================='); levelStats['储备干部岗'].forEach((pos, index) => { console.log(`${index + 1}. ${pos.name}`); console.log(` 适用项目:`); pos.projects.forEach(proj => { console.log(` - ${proj}`); }); }); // 输出项目与岗位的对应关系 console.log('\n====================================='); console.log('【项目-岗位等级分布】'); console.log('====================================='); Object.entries(projectDetails).forEach(([id, project]) => { const levelCount = { '普通岗': 0, '技术骨干岗': 0, '储备干部岗': 0 }; project.applicablePositions.forEach(pos => { if (levelCount[pos.level] !== undefined) { levelCount[pos.level]++; } }); console.log(`\n${id}. ${project.title}`); console.log(` 普通岗: ${levelCount['普通岗']}个 | 技术骨干岗: ${levelCount['技术骨干岗']}个 | 储备干部岗: ${levelCount['储备干部岗']}个`); }); console.log('\n====================================='); console.log('分析完成!'); console.log('=====================================');