Files
ALL-teach_sys/frontend_化工/fix_ehs_resume_mapping.py

90 lines
3.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
import json
import re
import os
from datetime import datetime
print("正在修复EHS岗位简历匹配错误...")
# 读取现有文件
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
content = f.read()
# 备份
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
backup_file = f'src/mocks/resumeInterviewMock.js.backup_fix_ehs_{timestamp}'
with open(backup_file, 'w', encoding='utf-8') as f:
f.write(content)
print(f"已创建备份: {backup_file}")
# 定义正确的EHS岗位映射
ehs_mapping = {
"EHS专员": "网页未导入数据/化工产业/化工修改版简历/EHS专员.md",
"EHS安全工程师": "网页未导入数据/化工产业/化工修改版简历/EHS安全工程师.md",
"EHS安全工程师助理": "网页未导入数据/化工产业/化工修改版简历/EHS安全工程师助理.md"
}
# 读取正确的简历文件
correct_resumes = {}
for position, file_path in ehs_mapping.items():
if os.path.exists(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
correct_resumes[position] = f.read()
print(f"读取正确简历: {position}")
else:
print(f"⚠️ 文件不存在: {file_path}")
# 更新每个EHS岗位的modified字段
updated_count = 0
for position, resume_content in correct_resumes.items():
# 转义特殊字符
escaped_content = (resume_content
.replace('\\', '\\\\')
.replace('"', '\\"')
.replace('\n', '\\n')
.replace('\r', '\\r')
.replace('\t', '\\t'))
# 精确匹配岗位名称并更新modified字段
pattern = rf'("position":\s*"{re.escape(position)}"[^}}]*?"content":\s*\{{[^}}]*?"modified":\s*)"[^"]*?"'
def replacement_func(match):
return f'{match.group(1)}"{escaped_content}"'
new_content = re.sub(pattern, replacement_func, content, flags=re.DOTALL)
if new_content != content:
content = new_content
updated_count += 1
print(f"✓ 已修复 {position} 的简历内容")
else:
print(f"⚠️ 未找到 {position} 的匹配项")
# 保存更新后的文件
if updated_count > 0:
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
f.write(content)
print(f"\n✅ 成功修复了 {updated_count} 个EHS岗位的简历")
# 验证语法
import subprocess
try:
result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'],
capture_output=True, text=True, encoding='utf-8')
if result.returncode == 0:
print("✓ 语法检查通过")
else:
print(f"✗ 语法检查失败: {result.stderr}")
# 恢复备份
with open(backup_file, 'r', encoding='utf-8') as f:
backup_content = f.read()
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
f.write(backup_content)
print("已从备份恢复")
except Exception as e:
print(f"错误: {e}")
print("\n=== 修复完成 ===")
print("EHS专员 -> 对应 EHS专员.md")
print("EHS安全工程师 -> 对应 EHS安全工程师.md")
print("EHS安全工程师助理 -> 对应 EHS安全工程师助理.md")