Initial commit: 教务系统在线平台
- 包含4个产业方向的前端项目:智能开发、智能制造、大健康、财经商贸 - 已清理node_modules、.yoyo等大文件,项目大小从2.6GB优化至631MB - 配置完善的.gitignore文件 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
174
frontend_智能开发/update_job_levels.py
Normal file
174
frontend_智能开发/update_job_levels.py
Normal file
@@ -0,0 +1,174 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
from datetime import datetime
|
||||
|
||||
# 读取岗位等级数据
|
||||
def load_job_levels():
|
||||
with open('网页未导入数据/文旅产业/岗位等级.json', 'r', encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
|
||||
# 创建岗位名称到等级的映射
|
||||
job_levels_map = {}
|
||||
for item in data:
|
||||
job_name = item['❌岗位名称']
|
||||
level = item['前端查询名称']
|
||||
job_levels_map[job_name] = level
|
||||
|
||||
return job_levels_map
|
||||
|
||||
# 更新resumeInterviewMock.js文件
|
||||
def update_resume_interview_mock(job_levels_map):
|
||||
file_path = 'src/mocks/resumeInterviewMock.js'
|
||||
|
||||
# 备份文件
|
||||
backup_path = f'{file_path}.backup_{datetime.now().strftime("%Y%m%d_%H%M%S")}'
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
with open(backup_path, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
print(f"已备份: {backup_path}")
|
||||
|
||||
# 更新内容
|
||||
updated_count = 0
|
||||
lines = content.split('\n')
|
||||
new_lines = []
|
||||
|
||||
for line in lines:
|
||||
# 查找position_name字段
|
||||
if 'position_name:' in line:
|
||||
# 提取岗位名称
|
||||
match = re.search(r'position_name:\s*["\']([^"\']+)["\']', line)
|
||||
if match:
|
||||
position_name = match.group(1)
|
||||
if position_name in job_levels_map:
|
||||
# 找到对应的等级
|
||||
level = job_levels_map[position_name]
|
||||
# 查找下一个position_level字段并更新
|
||||
for i in range(len(lines)):
|
||||
if lines[i] == line:
|
||||
# 向后查找position_level
|
||||
for j in range(i+1, min(i+10, len(lines))):
|
||||
if 'position_level:' in lines[j]:
|
||||
old_line = lines[j]
|
||||
lines[j] = re.sub(
|
||||
r'position_level:\s*["\'][^"\']*["\']',
|
||||
f'position_level: "{level}"',
|
||||
lines[j]
|
||||
)
|
||||
if old_line != lines[j]:
|
||||
updated_count += 1
|
||||
print(f"更新: {position_name} -> {level}")
|
||||
break
|
||||
break
|
||||
new_lines.append(line)
|
||||
|
||||
# 写回文件
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write('\n'.join(lines))
|
||||
|
||||
print(f"resumeInterviewMock.js 更新完成,共更新 {updated_count} 处")
|
||||
|
||||
# 更新companyJobsNew.json文件
|
||||
def update_company_jobs(job_levels_map):
|
||||
file_path = 'src/data/companyJobsNew.json'
|
||||
|
||||
# 备份文件
|
||||
backup_path = f'{file_path}.backup_{datetime.now().strftime("%Y%m%d_%H%M%S")}'
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
with open(backup_path, 'w', encoding='utf-8') as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||
print(f"已备份: {backup_path}")
|
||||
|
||||
# 更新数据
|
||||
updated_count = 0
|
||||
for company in data:
|
||||
if 'jobs' in company:
|
||||
for job in company['jobs']:
|
||||
if 'positionName' in job and job['positionName'] in job_levels_map:
|
||||
old_level = job.get('jobLevel', '')
|
||||
new_level = job_levels_map[job['positionName']]
|
||||
job['jobLevel'] = new_level
|
||||
if old_level != new_level:
|
||||
updated_count += 1
|
||||
print(f"更新: {job['positionName']} -> {new_level}")
|
||||
|
||||
# 写回文件
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||
|
||||
print(f"companyJobsNew.json 更新完成,共更新 {updated_count} 处")
|
||||
|
||||
# 更新mockData.js中的项目库数据
|
||||
def update_mock_data_projects(job_levels_map):
|
||||
file_path = 'src/data/mockData.js'
|
||||
|
||||
# 备份文件
|
||||
backup_path = f'{file_path}.backup_{datetime.now().strftime("%Y%m%d_%H%M%S")}_job_levels'
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
with open(backup_path, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
print(f"已备份: {backup_path}")
|
||||
|
||||
# 更新项目库中的relatedPositions字段
|
||||
updated_count = 0
|
||||
lines = content.split('\n')
|
||||
|
||||
for i, line in enumerate(lines):
|
||||
if 'relatedPositions:' in line or 'targetPositions:' in line:
|
||||
# 查找数组内容
|
||||
j = i
|
||||
while j < len(lines) and ']' not in lines[j]:
|
||||
j += 1
|
||||
|
||||
# 提取并更新数组内容
|
||||
for k in range(i, j+1):
|
||||
for job_name, level in job_levels_map.items():
|
||||
if f'"{job_name}"' in lines[k] or f"'{job_name}'" in lines[k]:
|
||||
# 检查是否需要添加等级信息(如果还没有的话)
|
||||
# 这里我们只是确保岗位名称正确,等级信息在其他地方维护
|
||||
updated_count += 1
|
||||
|
||||
print(f"mockData.js 项目库数据检查完成,确认了 {updated_count} 个岗位引用")
|
||||
|
||||
# 主函数
|
||||
def main():
|
||||
print("=" * 50)
|
||||
print("开始更新岗位等级数据")
|
||||
print("=" * 50)
|
||||
|
||||
# 加载岗位等级映射
|
||||
job_levels_map = load_job_levels()
|
||||
print(f"已加载 {len(job_levels_map)} 个岗位等级映射")
|
||||
|
||||
# 显示等级分布
|
||||
level_counts = {}
|
||||
for level in job_levels_map.values():
|
||||
level_counts[level] = level_counts.get(level, 0) + 1
|
||||
print("\n岗位等级分布:")
|
||||
for level, count in level_counts.items():
|
||||
print(f" {level}: {count} 个岗位")
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
|
||||
# 更新各个文件
|
||||
print("\n1. 更新简历面试题数据...")
|
||||
update_resume_interview_mock(job_levels_map)
|
||||
|
||||
print("\n2. 更新公司岗位数据...")
|
||||
update_company_jobs(job_levels_map)
|
||||
|
||||
print("\n3. 检查项目库数据...")
|
||||
update_mock_data_projects(job_levels_map)
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
print("所有更新完成!")
|
||||
print("=" * 50)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user