#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 验证所有岗位群的面试题更新情况 """ import json import re print("=== 验证所有岗位群面试题更新情况 ===\n") # 1. 读取源数据获取预期题目数 print("1. 读取智能制造岗位简历.json获取预期数据...") with open('网页未导入数据/智能制造产业/智能制造岗位简历.json', 'r', encoding='utf-8') as f: source_data = json.load(f) # 统计每个岗位群应有的题目数 expected_counts = {} for item in source_data: job_group = item.get('简历岗位群', '') interview_content = item.get('面试题内容', '') if job_group and interview_content and job_group not in expected_counts: # 统计题目数量 question_count = len(re.findall(r'^\d+[\.、]\s+', interview_content, re.MULTILINE)) expected_counts[job_group] = question_count print(f"预期的岗位群数量: {len(expected_counts)}") # 2. 读取mock文件 print("\n2. 读取当前mock文件...") with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f: mock_content = f.read() # 3. 统计实际题目数 print("\n3. 统计各岗位群实际题目数...") print("-" * 60) print(f"{'岗位群':<20} {'预期':<10} {'实际':<10} {'状态':<10}") print("-" * 60) all_correct = True total_expected = 0 total_actual = 0 # 按照在文件中出现的顺序检查 job_groups_order = [ "3D打印工艺", "CNC加工工艺", "PLC", "钣金工程", "产品测试", "产品设计", "电气设计", "非标自动化设计", "工业机器人", "焊接工艺", "机加工工艺", "机器视觉", "模具工程", "塑性成形工艺", "特种加工工艺", "自动化控制" ] for job_group in job_groups_order: expected = expected_counts.get(job_group, 0) total_expected += expected # 查找该岗位群在mock文件中的位置 pattern = f'"name": "{job_group}"' group_pos = mock_content.find(pattern) if group_pos == -1: print(f"{job_group:<20} {expected:<10} {'未找到':<10} ❌") all_correct = False continue # 找到questions字段 questions_pos = mock_content.find('"questions":', group_pos) if questions_pos == -1 or questions_pos - group_pos > 10000: print(f"{job_group:<20} {expected:<10} {'无questions':<10} ❌") all_correct = False continue # 统计题目数量 # 找到下一个岗位群或文件结束 next_name_pos = mock_content.find('"name":', group_pos + len(pattern)) if next_name_pos == -1: search_area = mock_content[questions_pos:] else: search_area = mock_content[questions_pos:next_name_pos] actual = len(re.findall(r'"id": "q1_\d+"', search_area)) total_actual += actual if actual == expected: status = "✅" else: status = "⚠️" all_correct = False print(f"{job_group:<20} {expected:<10} {actual:<10} {status}") print("-" * 60) print(f"{'总计':<20} {total_expected:<10} {total_actual:<10}") print("-" * 60) # 4. 总结 print("\n4. 更新总结") print("=" * 60) if all_correct: print("🎉 所有岗位群的面试题已完整更新!") print(f"✅ 16个岗位群") print(f"✅ 共{total_actual}道面试题") else: print("⚠️ 部分岗位群的面试题数量不匹配,请检查") print("\n验证完成!")