100 lines
8.4 KiB
Python
100 lines
8.4 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
|
|||
|
|
def safe_escape_js_string(text):
|
|||
|
|
"""安全地转义JavaScript字符串"""
|
|||
|
|
# 转义反斜杠(必须首先执行)
|
|||
|
|
text = text.replace('\\', '\\\\')
|
|||
|
|
# 转义双引号
|
|||
|
|
text = text.replace('"', '\\"')
|
|||
|
|
# 转义换行符
|
|||
|
|
text = text.replace('\n', '\\n')
|
|||
|
|
# 转义回车符
|
|||
|
|
text = text.replace('\r', '\\r')
|
|||
|
|
# 转义制表符
|
|||
|
|
text = text.replace('\t', '\\t')
|
|||
|
|
return text
|
|||
|
|
|
|||
|
|
def main():
|
|||
|
|
# 读取BIM工程师的修改版简历
|
|||
|
|
with open('网页未导入数据/土木水利产业/土木水利修改版简历/BIM工程师.md', 'r', encoding='utf-8') as f:
|
|||
|
|
bim_content = f.read()
|
|||
|
|
|
|||
|
|
# 安全转义内容
|
|||
|
|
escaped_content = safe_escape_js_string(bim_content)
|
|||
|
|
|
|||
|
|
# 读取当前的resumeInterviewMock.js文件
|
|||
|
|
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
|
|||
|
|
js_content = f.read()
|
|||
|
|
|
|||
|
|
# 找到BIM工程师的起始位置
|
|||
|
|
bim_start = js_content.find('"BIM工程师": {')
|
|||
|
|
if bim_start == -1:
|
|||
|
|
print("未找到BIM工程师条目")
|
|||
|
|
return
|
|||
|
|
|
|||
|
|
# 找到这个条目的结束位置(下一个条目开始前的位置)
|
|||
|
|
# 查找下一个岗位条目或者resumeTemplates的结束
|
|||
|
|
bim_end = bim_start
|
|||
|
|
brace_count = 0
|
|||
|
|
i = bim_start
|
|||
|
|
|
|||
|
|
# 找到第一个左大括号
|
|||
|
|
while i < len(js_content) and js_content[i] != '{':
|
|||
|
|
i += 1
|
|||
|
|
|
|||
|
|
# 从左大括号开始计算嵌套层级
|
|||
|
|
while i < len(js_content):
|
|||
|
|
if js_content[i] == '{':
|
|||
|
|
brace_count += 1
|
|||
|
|
elif js_content[i] == '}':
|
|||
|
|
brace_count -= 1
|
|||
|
|
if brace_count == 0:
|
|||
|
|
bim_end = i + 1
|
|||
|
|
break
|
|||
|
|
i += 1
|
|||
|
|
|
|||
|
|
if bim_end <= bim_start:
|
|||
|
|
print("未找到BIM工程师条目的结束位置")
|
|||
|
|
return
|
|||
|
|
|
|||
|
|
print(f"找到BIM工程师条目位置: {bim_start} - {bim_end}")
|
|||
|
|
|
|||
|
|
# 构建新的BIM工程师条目
|
|||
|
|
new_bim_entry = f'''\"BIM工程师\": {{
|
|||
|
|
\"level\": \"基础岗\",
|
|||
|
|
\"category\": \"土木水利产业\",
|
|||
|
|
\"industry\": \"土木水利产业\",
|
|||
|
|
\"group\": \"设计与规划类\",
|
|||
|
|
\"experience\": \"实习经验\",
|
|||
|
|
\"avatar\": \"https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/butler_position_avatar/recuPFY77UvzKs.jpeg\",
|
|||
|
|
\"content\": {{
|
|||
|
|
\"original\": \"# 对应岗位:BIM工程师\\n\\n# 一、项目经历\\n\\n### (一)项目名称:重庆七层住宅楼 BIM 设计阶段协同深化项目\\n\\n### (二)实习岗位:BIM工程师助理\\n\\n### (三)实习单位:XXX\\n\\n### (四)实习时间:XXX\\n\\n### (五)岗位职责:\\n\\n1. 协助完成设计阶段BIM执行计划(BEP)的整理与实施,参与通用数据环境(CDE)平台的流程学习,掌握模型精度、参数规范和信息交换机制,提升协同建模意识。\\n2. 使用Revit参与建筑、结构与机电的初始模型搭建与修改,协助完成轴网、楼层高度、构件命名等基础校核,确保模型在标高与坐标上的一致性。\\n3. 参与管线综合与净高分析,协助在走廊、卫生间等空间进行净高控制与管线路由比选,学习如何在初步设计阶段处理多专业冲突。\\n4. 使用Navisworks参与碰撞检查,整理问题清单与BCF任务单,跟进设计整改并记录修改结果,学习设计问题闭环的完整流程。\\n5. 协助完成模型快照、施工图纸与项目报告的整理与输出,参与阶段性汇报资料编制,确保项目信息记录完整、成果表达清晰。\\n\\n# 二、专业技能\\n\\n### (一)核心能力\\n\\n1. 掌握BIM建模基础技能,能够在导师指导下使用Revit参与建筑、结构、机电模型的搭建与优化,理解LOD等级和信息深度要求。\\n2. 熟悉BIM执行计划(BEP)与通用数据环境(CDE)的流程与应用,能够参与模型精度控制、文件版本管理和跨专业信息交换。\\n3. 具备管线综合与净高控制的基础能力,能够协助开展走廊与卫生间吊顶区域的空间优化,提出初步的净高调整方案。\\n4. 能使用Navisworks进行基础的碰撞检查与任务分配,掌握问题标注、整改跟进与复检确认,理解BCF任务闭环管理流程。\\n5. 具备施工图纸输出能力,能够在导师指导下完成模型视图整理与图纸细化,理解图模一致的工程要求。\\n6. 具备工程文档与项目报告编制能力,能够参与整理设计条件、版本台账及阶段性成果文件,确保信息传递准确及时。\\n7. 拥有良好的跨专业协作与沟通意识,能够配合建筑、结构与机电团队进行协同工作,提升多专业协调经验。\\n\\n### (二)复合能力\\n\\n1. 智能建造认知: 关注并了解BIM技术在土木工程设计、施工、管理中的应用价值;认识智慧工地(如物联网监测、无人机测绘、信息化管理平台)及新型建造方式(如装配式建筑)的发展趋势与应用场景。\\n2. 设计制图应用能力: 掌握建筑设计及室内设计基本流程与规范要求;熟练运用CAD软件进行工程图纸(建筑、结构、设备)识图、绘制与基础修改;具备使用3DMax/SketchUp等软件进行基础建筑模型创建与效果表达的能力。\\n3. 工程材料与建筑结构认知: 熟悉常用建筑材料(混凝土、钢材、砌体、防水材料等)的物理力学性能、应用范围及质量控制要点;了解建筑结构体系(框架、剪力墙等)基本原理及受力特点。\\n4. 土木行业认知: 理解土木工程行业特性,熟悉行业主要规范标准体系与发展前景;\\n5. 全流程技术沟通: 具备清晰理解项目需求(设计意图、规范要求、甲方诉求)并进行有效技术沟通的能力;能够与设计、施工、监理、供应商等多方进行顺畅协作,准确传达信息并推动问题解决;具备基础的工程报告撰写与汇报能力。\\n6. 工程管理意识: 了解工程项目管理核心环节,包括工程造价估算与成本控制基础、招投标流程要点、施工进度计划(横道图/网络图)编制与监控方法、工程资料管理要求;具备初步的合同履约与风险防范意识。\\n7. 现场管理基础:具备基础施工现场问题识别与协调处理意识;理解施工组织设计/<2F><>
|
|||
|
|
\"modified\": \"{escaped_content}\"
|
|||
|
|
}}
|
|||
|
|
}}'''
|
|||
|
|
|
|||
|
|
# 替换内容
|
|||
|
|
new_js_content = js_content[:bim_start] + new_bim_entry + js_content[bim_end:]
|
|||
|
|
|
|||
|
|
# 保存修复后的文件
|
|||
|
|
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(new_js_content)
|
|||
|
|
|
|||
|
|
print("已成功替换BIM工程师的完整条目")
|
|||
|
|
|
|||
|
|
# 验证语法
|
|||
|
|
import subprocess
|
|||
|
|
try:
|
|||
|
|
result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'],
|
|||
|
|
capture_output=True, text=True)
|
|||
|
|
if result.returncode == 0:
|
|||
|
|
print("✅ JavaScript语法检查通过")
|
|||
|
|
else:
|
|||
|
|
print("❌ JavaScript语法错误:")
|
|||
|
|
print(result.stderr)
|
|||
|
|
except Exception as e:
|
|||
|
|
print("无法验证JavaScript语法:", e)
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
main()
|