76 lines
2.5 KiB
Python
76 lines
2.5 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
|
|||
|
|
import json
|
|||
|
|
import re
|
|||
|
|
|
|||
|
|
# 读取智能制造项目案例数据
|
|||
|
|
with open('网页未导入数据/智能制造产业/智能制造项目案例.json', 'r', encoding='utf-8') as f:
|
|||
|
|
raw_data = json.load(f)
|
|||
|
|
|
|||
|
|
# 转换班级项目数据格式
|
|||
|
|
projects = []
|
|||
|
|
for idx, item in enumerate(raw_data):
|
|||
|
|
# 提取岗位名称列表
|
|||
|
|
positions = []
|
|||
|
|
if item.get('对应个人简历名称'):
|
|||
|
|
positions = [p.strip() for p in item['对应个人简历名称'].split(',')]
|
|||
|
|
|
|||
|
|
# 确定项目类别
|
|||
|
|
category = '智能制造'
|
|||
|
|
direction = item.get('所属垂直方向', '智能制造')
|
|||
|
|
|
|||
|
|
# 根据单元名称细分类别
|
|||
|
|
vertical_unit = item.get('对应单元名称(垂直能力课)', '')
|
|||
|
|
if '新能源' in vertical_unit:
|
|||
|
|
category = '新能源制造'
|
|||
|
|
elif 'PLC' in vertical_unit:
|
|||
|
|
category = 'PLC控制系统'
|
|||
|
|
elif '机器人' in vertical_unit:
|
|||
|
|
category = '工业机器人'
|
|||
|
|
elif '3D打印' in vertical_unit:
|
|||
|
|
category = '3D打印技术'
|
|||
|
|
elif '数控' in vertical_unit or 'CNC' in vertical_unit:
|
|||
|
|
category = '数控加工'
|
|||
|
|
|
|||
|
|
project = {
|
|||
|
|
"id": idx + 1,
|
|||
|
|
"name": item['案例名称'],
|
|||
|
|
"description": direction,
|
|||
|
|
"positions": positions,
|
|||
|
|
"unit": item.get('对应单元名称(垂直能力课)') or item.get('对应单元名称(复合能力课)'),
|
|||
|
|
"direction": direction,
|
|||
|
|
"category": category
|
|||
|
|
}
|
|||
|
|
projects.append(project)
|
|||
|
|
|
|||
|
|
# 生成新的projects数组内容
|
|||
|
|
projects_content = json.dumps(projects, ensure_ascii=False, indent=4)
|
|||
|
|
|
|||
|
|
# 读取现有的mock文件
|
|||
|
|
with open('src/mocks/projectLibraryMock.js', 'r', encoding='utf-8') as f:
|
|||
|
|
content = f.read()
|
|||
|
|
|
|||
|
|
# 找到projects数组的开始和结束位置
|
|||
|
|
pattern = r'const projects = \[(.*?)\];'
|
|||
|
|
match = re.search(pattern, content, re.DOTALL)
|
|||
|
|
|
|||
|
|
if match:
|
|||
|
|
# 替换projects数组内容
|
|||
|
|
new_content = content[:match.start()] + f'const projects = {projects_content};' + content[match.end():]
|
|||
|
|
|
|||
|
|
# 写回文件
|
|||
|
|
with open('src/mocks/projectLibraryMock.js', 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(new_content)
|
|||
|
|
|
|||
|
|
print(f"✅ 成功更新班级项目数据!")
|
|||
|
|
print(f"- 项目总数: {len(projects)}")
|
|||
|
|
categories = {}
|
|||
|
|
for p in projects:
|
|||
|
|
cat = p['category']
|
|||
|
|
categories[cat] = categories.get(cat, 0) + 1
|
|||
|
|
print("- 类别分布:")
|
|||
|
|
for cat, count in categories.items():
|
|||
|
|
print(f" - {cat}: {count}个")
|
|||
|
|
else:
|
|||
|
|
print("❌ 未找到projects数组,请检查文件格式")
|