Files
ALL-teach_sys/frontend_大健康/update_modified_resumes.py
KQL cd2e307402 初始化12个产业教务系统项目
主要内容:
- 包含12个产业的完整教务系统前端代码
- 智能启动脚本 (start-industry.sh)
- 可视化产业导航页面 (index.html)
- 项目文档 (README.md)

优化内容:
- 删除所有node_modules和.yoyo文件夹,从7.5GB减少到2.7GB
- 添加.gitignore文件避免上传不必要的文件
- 自动依赖管理和智能启动系统

产业列表:
1. 文旅产业 (5150)
2. 智能制造 (5151)
3. 智能开发 (5152)
4. 财经商贸 (5153)
5. 视觉设计 (5154)
6. 交通物流 (5155)
7. 大健康 (5156)
8. 土木水利 (5157)
9. 食品产业 (5158)
10. 化工产业 (5159)
11. 能源产业 (5160)
12. 环保产业 (5161)

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 14:14:14 +08:00

182 lines
6.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import os
import re
def load_modified_resumes():
"""加载大健康修改版简历"""
modified_folder = '网页未导入数据/大健康产业/大健康修改版简历'
modified_resumes = {}
for filename in os.listdir(modified_folder):
if filename.endswith('.md'):
position_name = filename.replace('.md', '')
filepath = os.path.join(modified_folder, filename)
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
modified_resumes[position_name] = content
return modified_resumes
def get_modified_positions():
"""获取有修改版的岗位列表"""
modified_resumes = load_modified_resumes()
return list(modified_resumes.keys())
def update_resumeinterview_mock():
"""更新resumeInterviewMock.js中的modified字段"""
# 加载修改版简历
modified_resumes = load_modified_resumes()
print(f"找到 {len(modified_resumes)} 个修改版简历:")
for position in modified_resumes.keys():
print(f" - {position}")
# 读取当前的mock文件
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
content = f.read()
# 解析出resumeTemplates部分
templates_match = re.search(r'const resumeTemplates = (\{[\s\S]*?\});', content)
if not templates_match:
print("错误无法找到resumeTemplates")
return False
templates_json_str = templates_match.group(1)
# 解析JSON
try:
templates_data = json.loads(templates_json_str)
except json.JSONDecodeError as e:
print(f"JSON解析错误: {e}")
return False
# 更新modified字段
updated_count = 0
for group_name, templates in templates_data.items():
for template in templates:
position_name = template['position']
# 检查是否有对应的修改版简历
matching_key = None
for key in modified_resumes.keys():
# 处理可能的名称差异(如"营养师助理" vs "营养师"
if key == position_name or key.replace('助理', '') == position_name or position_name.startswith(key):
matching_key = key
break
if matching_key:
# 更新modified字段
template['content']['modified'] = modified_resumes[matching_key]
updated_count += 1
print(f"✅ 更新: {position_name} <- {matching_key}")
print(f"\n共更新了 {updated_count} 个岗位的修改版简历")
# 重新构建完整的文件内容
new_templates_str = json.dumps(templates_data, ensure_ascii=False, indent=2)
new_content = re.sub(
r'const resumeTemplates = \{[\s\S]*?\};',
f'const resumeTemplates = {new_templates_str};',
content,
count=1
)
# 备份原文件
import shutil
from datetime import datetime
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
backup_file = f'src/mocks/resumeInterviewMock.js.backup_modified_{timestamp}'
shutil.copy('src/mocks/resumeInterviewMock.js', backup_file)
print(f"\n已备份原文件到: {backup_file}")
# 写回文件
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
f.write(new_content)
print("✅ 成功更新 resumeInterviewMock.js")
return True
def update_has_modified_version_list():
"""更新hasRealModifiedVersion函数中的岗位列表"""
# 获取有修改版的岗位列表
modified_positions = get_modified_positions()
# 读取ResumeInterviewPage组件
page_file = 'src/pages/ResumeInterviewPage/index.jsx'
with open(page_file, 'r', encoding='utf-8') as f:
content = f.read()
# 查找hasRealModifiedVersion函数
pattern = r'const hasRealModifiedVersion = \(positionTitle\) => \{[\s\S]*?const modifiedPositions = \[([\s\S]*?)\];'
match = re.search(pattern, content)
if match:
# 构建新的岗位列表
new_positions_list = ',\n '.join([f'"{pos}"' for pos in modified_positions])
new_positions_array = f'[\n {new_positions_list}\n ]'
# 替换旧的岗位列表
new_function = f'''const hasRealModifiedVersion = (positionTitle) => {{
const modifiedPositions = {new_positions_array};'''
new_content = re.sub(
r'const hasRealModifiedVersion = \(positionTitle\) => \{[\s\S]*?const modifiedPositions = \[[^\]]*?\]',
new_function,
content,
count=1
)
# 备份并更新文件
import shutil
from datetime import datetime
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
backup_file = f'{page_file}.backup_{timestamp}'
shutil.copy(page_file, backup_file)
with open(page_file, 'w', encoding='utf-8') as f:
f.write(new_content)
print(f"\n✅ 更新了 ResumeInterviewPage 中的 hasRealModifiedVersion 函数")
print(f"包含 {len(modified_positions)} 个有修改版的岗位")
else:
print("警告无法找到hasRealModifiedVersion函数")
def verify_syntax():
"""验证文件语法"""
import subprocess
result = subprocess.run(
['node', '-c', 'src/mocks/resumeInterviewMock.js'],
capture_output=True,
text=True
)
if result.returncode == 0:
print("\n✅ resumeInterviewMock.js 语法检查通过")
return True
else:
print(f"\n❌ 语法错误:{result.stderr[:200]}")
return False
def main():
print("开始更新修改版简历数据...\n")
# 更新resumeInterviewMock.js中的modified字段
if update_resumeinterview_mock():
# 更新ResumeInterviewPage中的岗位列表
update_has_modified_version_list()
# 验证语法
verify_syntax()
print("\n🎉 修改版简历数据更新完成!")
else:
print("\n❌ 更新失败")
if __name__ == "__main__":
main()