#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import re def get_position_levels_from_resume(): """从化工岗位简历.json获取岗位等级映射""" with open('网页未导入数据/化工产业/化工岗位简历.json', 'r', encoding='utf-8') as f: data = json.load(f) position_levels = {} for item in data: position = item.get('岗位名称', '').strip() level = item.get('岗位等级标签', '').strip() if position and level: position_levels[position] = level return position_levels def fix_position_levels(): """修正项目详情中的岗位等级""" # 获取正确的岗位等级映射 resume_levels = get_position_levels_from_resume() # 需要修正的岗位等级映射 fixes_needed = { '精细化工操作技术员': '普通岗', '产品工艺工程师助理': '储备干部岗', '化工制程工程师': '技术骨干岗', '日化调香师': '技术骨干岗', '实验室主任助理': '储备干部岗', '化妆品研发助理': '技术骨干岗', '自动化设备维护技术员': '普通岗' } # 对于在简历中找不到的岗位,根据命名规则设置合理的等级 not_found_positions = { '药物合成工程师': '技术骨干岗', '化工设备机械工程师': '技术骨干岗', '安全工程师': '技术骨干岗', '化工工艺安全工程师': '技术骨干岗', # 原来是管理岗,改为技术骨干岗 '农药配方工程师': '技术骨干岗', '农药剂型研发工程师': '技术骨干岗', '农药研发工程师': '技术骨干岗', # 原来是管理岗,改为技术骨干岗 '高级染料工程师': '技术骨干岗', # 原来是管理岗,改为技术骨干岗 '安全管理经理': '技术骨干岗', # 原来是管理岗,改为技术骨干岗 '质量保证经理QA': '技术骨干岗', # 原来是管理岗,改为技术骨干岗 '质量体系工程师': '技术骨干岗', '化工仪器仪表维护技术员': '普通岗', 'EHS工程师': '技术骨干岗', '化工DCS工程师': '技术骨干岗', 'DCS维护工程师': '技术骨干岗', '污水处理工程师': '技术骨干岗', 'PLC编程工程师': '技术骨干岗' } # 合并所有需要修正的岗位 all_fixes = {**fixes_needed, **not_found_positions} # 读取mock文件 with open('src/mocks/projectLibraryMock.js', 'r', encoding='utf-8') as f: lines = f.readlines() # 修正岗位等级 new_lines = [] for i, line in enumerate(lines): # 检查是否包含需要修正的岗位 modified = False for position, correct_level in all_fixes.items(): # 查找岗位名称 if f'"position": "{position}"' in line: # 检查前一行是否有level if i > 0 and '"level":' in lines[i-1]: # 修改前一行的level prev_line = lines[i-1] # 替换level值 new_prev_line = re.sub( r'"level":\s*"[^"]*"', f'"level": "{correct_level}"', prev_line ) if new_prev_line != prev_line: # 如果前一行已经添加到new_lines,需要替换它 if new_lines and new_lines[-1] == prev_line: new_lines[-1] = new_prev_line print(f"✅ 修正: {position} → {correct_level}") modified = True if not modified: new_lines.append(line) else: new_lines.append(line) # 保存修正后的文件 with open('src/mocks/projectLibraryMock.js', 'w', encoding='utf-8') as f: f.writelines(new_lines) print("\n✅ 岗位等级修正完成!") # 验证语法 import subprocess result = subprocess.run(['node', '-c', 'src/mocks/projectLibraryMock.js'], capture_output=True, text=True) if result.returncode == 0: print("✅ JavaScript语法检查通过") else: print(f"❌ JavaScript语法错误: {result.stderr}") if __name__ == "__main__": # 备份原文件 import shutil import datetime timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") backup_file = f"src/mocks/projectLibraryMock.js.backup_{timestamp}" shutil.copy('src/mocks/projectLibraryMock.js', backup_file) print(f"✅ 已备份到: {backup_file}") # 执行修正 fix_position_levels()