83 lines
3.3 KiB
Python
83 lines
3.3 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
|
|||
|
|
import json
|
|||
|
|
import os
|
|||
|
|
|
|||
|
|
def fix_interview_position_names():
|
|||
|
|
"""
|
|||
|
|
修正面试状态数据中的岗位名称,使其与joblevel.json中的岗位名称一致
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
# 读取当前数据
|
|||
|
|
with open("src/data/interviewStatus.json", 'r', encoding='utf-8') as f:
|
|||
|
|
interview_data = json.load(f)
|
|||
|
|
|
|||
|
|
with open("src/data/joblevel.json", 'r', encoding='utf-8') as f:
|
|||
|
|
joblevel_data = json.load(f)
|
|||
|
|
|
|||
|
|
# 提取joblevel中的所有岗位名称
|
|||
|
|
joblevel_positions = set()
|
|||
|
|
for level in joblevel_data["data"].values():
|
|||
|
|
for position in level["list"]:
|
|||
|
|
joblevel_positions.add(position["position_name"])
|
|||
|
|
|
|||
|
|
print("joblevel.json中的岗位名称:")
|
|||
|
|
for pos in sorted(joblevel_positions):
|
|||
|
|
print(f" - {pos}")
|
|||
|
|
|
|||
|
|
# 创建岗位名称映射
|
|||
|
|
position_mapping = {
|
|||
|
|
"储能电站运维工程师助理": "储能电站运维工程师", # 去掉"助理"
|
|||
|
|
"电力系统运维工程师助理": "电力系统工程师助理", # 保持一致
|
|||
|
|
"电厂热控工程师助理": "电厂运行技术员", # 相近岗位
|
|||
|
|
"电网需求分析师": "电网需求分析师助理", # 添加"助理"
|
|||
|
|
"能源市场交易助理": "电力交易员", # 相近岗位
|
|||
|
|
"输配电线路运维工程师": "输配电线路技术员", # 简化名称
|
|||
|
|
"外贸单证员": "电力销售总监助理", # 相近的销售岗位
|
|||
|
|
"海外电力工程施工监理员": "电力安全员", # 相近的工程岗位
|
|||
|
|
"电力工程测绘员": "电力巡检员", # 相近的技术岗位
|
|||
|
|
"电力市场数据分析员": "电力系统调度员" # 相近的分析岗位
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
print(f"\n映射关系:")
|
|||
|
|
for old_name, new_name in position_mapping.items():
|
|||
|
|
in_joblevel = "✓" if new_name in joblevel_positions else "✗"
|
|||
|
|
print(f" {old_name} -> {new_name} ({in_joblevel})")
|
|||
|
|
|
|||
|
|
# 应用映射
|
|||
|
|
updated_data = []
|
|||
|
|
for item in interview_data:
|
|||
|
|
old_name = item["查询岗位名称"]
|
|||
|
|
new_name = position_mapping.get(old_name, old_name)
|
|||
|
|
|
|||
|
|
updated_item = {
|
|||
|
|
"查询岗位名称": new_name,
|
|||
|
|
"阶段日期": item["阶段日期"],
|
|||
|
|
"面试状态": item["面试状态"]
|
|||
|
|
}
|
|||
|
|
updated_data.append(updated_item)
|
|||
|
|
|
|||
|
|
if old_name != new_name:
|
|||
|
|
print(f"✓ 更新: {old_name} -> {new_name}")
|
|||
|
|
|
|||
|
|
# 写入更新后的数据
|
|||
|
|
with open("src/data/interviewStatus.json", 'w', encoding='utf-8') as f:
|
|||
|
|
json.dump(updated_data, f, ensure_ascii=False, indent=2)
|
|||
|
|
|
|||
|
|
print(f"\n✅ 成功更新 {len(updated_data)} 条面试状态数据")
|
|||
|
|
|
|||
|
|
# 验证更新结果
|
|||
|
|
print("\n=== 验证更新结果 ===")
|
|||
|
|
updated_positions = set(item["查询岗位名称"] for item in updated_data)
|
|||
|
|
not_found = updated_positions - joblevel_positions
|
|||
|
|
|
|||
|
|
if not_found:
|
|||
|
|
print(f"❌ 仍有 {len(not_found)} 个岗位在joblevel.json中找不到:")
|
|||
|
|
for pos in sorted(not_found):
|
|||
|
|
print(f" - {pos}")
|
|||
|
|
else:
|
|||
|
|
print("✅ 所有岗位名称现在都能在joblevel.json中找到!")
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
fix_interview_position_names()
|