From f3454e2d8d58ef20e7fdcaf3ba467bd1f5e56507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=80=C3=AE=C3=97=C3=9A=C3=95=C3=B1?= Date: Tue, 13 Sep 2022 14:41:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=88=99=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/interview.py | 21 ++++--- models/interview_zsgc.py | 14 +++-- utils/re_to_jianli.py | 98 ++++++++++++++++++++++++++----- 3 files changed, 107 insertions(+), 26 deletions(-) diff --git a/api/api_v1/endpoints/interview.py b/api/api_v1/endpoints/interview.py index 17c1890..4b40484 100644 --- a/api/api_v1/endpoints/interview.py +++ b/api/api_v1/endpoints/interview.py @@ -94,7 +94,8 @@ def chkData(data): work_list = i['work_list'] if work_list: work_list = [json.loads(i) for i in work_list] - work_list = [eval(i) for i in work_list] + if isinstance(work_list[0], str): + work_list = [eval(i) for i in work_list] else: work_list = [] res1['work_list'] = work_list @@ -102,7 +103,8 @@ def chkData(data): project_undergo = i['project_undergo'] if project_undergo: project_undergo = [json.loads(i) for i in project_undergo] - project_undergo = [eval(i) for i in project_undergo] + if isinstance(project_undergo[0], str): + project_undergo = [eval(i) for i in project_undergo] else: project_undergo = [] res1['project_undergo'] = project_undergo @@ -110,7 +112,8 @@ def chkData(data): language = i['language'] if language: language = [json.loads(i) for i in language] - language = [eval(i) for i in language] + if isinstance(language[0], str): + language = [eval(i) for i in language] else: language = [] res1['language'] = language @@ -118,7 +121,8 @@ def chkData(data): remembrance = i['remembrance'] if remembrance: remembrance = [json.loads(i) for i in remembrance] - remembrance = [eval(i) for i in remembrance] + if isinstance(remembrance[0], str): + remembrance = [eval(i) for i in remembrance] else: remembrance = [] res1['remembrance'] = remembrance @@ -778,12 +782,12 @@ async def find_criterion( data['work_exp'] = '5年以上' if data.get('work_list', []): work_list = [json.loads(i) for i in data['work_list']] - if isinstance(work_list[0],str): + if isinstance(work_list[0], str): work_list = [eval(i) for i in work_list] data['work_list'] = work_list if data.get('project_undergo', []): project_undergo = [json.loads(i) for i in data['project_undergo']] - if isinstance(project_undergo[0],str): + if isinstance(project_undergo[0], str): project_undergo = [eval(i) for i in project_undergo] data['project_undergo'] = project_undergo if data.get('remembrance', []): @@ -791,12 +795,15 @@ async def find_criterion( if isinstance(remembrance[0], str): remembrance = [eval(i) for i in remembrance] data['remembrance'] = remembrance + data['remembrance_list'] = remembrance if data.get('language', []): language = [json.loads(i) for i in data['language']] if isinstance(language[0], str): language = [eval(i) for i in language] data['language'] = language - return schemas.Msg(code=200, msg='ok', data=data) + data['language_list'] = language + res_data = {k: v for k, v in data.items() if k not in ['event_time']} + return schemas.Msg(code=200, msg='ok', data=res_data) @router.post("/resume_affix") diff --git a/models/interview_zsgc.py b/models/interview_zsgc.py index 422840f..bfa2e41 100644 --- a/models/interview_zsgc.py +++ b/models/interview_zsgc.py @@ -193,9 +193,11 @@ class InterviewDo: # 转json字符串 if 'remembrance_list' in self.data_in: - self.data_in.pop('remembrance_list') + remembrance = self.data_in.pop('remembrance_list') + self.data_in['remembrance'] = remembrance if 'language_list' in self.data_in: - self.data_in.pop('language_list') + language = self.data_in.pop('language_list') + self.data_in['language'] = language if 'project_undergo' in self.data_in: if self.data_in.get('project_undergo', []): self.data_in['project_undergo'] = [json.dumps(i) for i in self.data_in['project_undergo']] @@ -203,17 +205,17 @@ class InterviewDo: self.data_in['project_undergo'] = [] if 'work_list' in self.data_in: if self.data_in.get('work_list', []): - self.data_in['work_list'] = [json.dumps(i) for i in self.data_in['project_undergo']] + self.data_in['work_list'] = [json.dumps(i) for i in self.data_in['work_list']] else: self.data_in['work_list'] = [] if 'language' in self.data_in: if self.data_in.get('language', []): - self.data_in['language'] = [json.dumps(i) for i in self.data_in['project_undergo']] + self.data_in['language'] = [json.dumps(i) for i in self.data_in['language']] else: self.data_in['language'] = [] if 'remembrance' in self.data_in: if self.data_in.get('remembrance', []): - self.data_in['remembrance'] = [json.dumps(i) for i in self.data_in['project_undergo']] + self.data_in['remembrance'] = [json.dumps(i) for i in self.data_in['remembrance']] else: self.data_in['remembrance'] = [] @@ -268,6 +270,8 @@ class InterviewDo: if isinstance(value, str): updateStr += str(key) + ' = ' + "'" + value + "'" + ' ' continue + if value == None: + continue updateStr += str(key) + ' = ' + str(value) + ' ' if 'uid' in self.data_in: self.where.update({ diff --git a/utils/re_to_jianli.py b/utils/re_to_jianli.py index e5d2b4f..cd713d0 100644 --- a/utils/re_to_jianli.py +++ b/utils/re_to_jianli.py @@ -1,23 +1,13 @@ #!/usr/bin/python # coding:utf-8 from LAC import LAC -import re, os +import re import copy import pdfplumber -from win32com import client as wc lac = LAC(mode='lac') -def Translate(input, output): - # 转换 - wordapp = wc.Dispatch('Word.Application') - doc = wordapp.Documents.Open(input) - # 为了让python可以在后续操作中r方式读取txt和不产生乱码,参数为4 - doc.SaveAs(output, 4) - doc.Close() - - def getText_pdf(filename): """将pdf读成text""" with pdfplumber.open(filename) as pdf_file: @@ -160,7 +150,7 @@ def fmt_txt(chk_str): school = re.findall(r'.*?学院.*?\n', true_chkStr, re.M) if school: school_str = school[0].replace('\n', '').strip() - if ' ' in school_str: + if ' ' in school_str and ':' not in school_str: school_list = school_str.split(' ') else: school_list = [school_str] @@ -552,6 +542,7 @@ def fmt_txt(chk_str): 'position_name': '', 'duty': new_str_list1[-1], } + new_str_list2 = new_str_list1[0].split('\n') if '?' in new_str_list1[0]: work_dict['time'] = new_str_list2[0].split('??')[0].replace('.', '/') @@ -751,7 +742,7 @@ def fmt_txt(chk_str): if __name__ == '__main__': - # txt = getText_pdf('D:\wokerplay\面试简历\智联招聘_聂礼旺_Web开发工程师_中文.pdf') + # txt = getText_pdf('D:\wokerplay\面试简历\吴操.pdf') # 拉勾 chk_str1 = """ @@ -1265,4 +1256,83 @@ jquery:熟练 ajax:一般 vue.js:良好 """ - fmt_txt(chk_str4) \ No newline at end of file + # boss直聘 + chk_str6 = """ + ` +个人资料__ +姓 名:吴操 出生年月:1998.04 专 业:计算机网络 电子邮箱:2787668634@qq.com +性 别:男 学 历:专科 手 机:15007265224 毕业院校:武汉信息传播职业技术学院 +__专业技能__ +精通 Word、Photoshop、AutoCAD、Adobe Dreamweaver、Xshell等软件; +熟练CDH大数据平台的部署和系统故障的检测; +熟练操作linux系统常用命令; +熟练部署grafana监控系统; +熟练操作挖矿病毒的检测与查杀; +熟悉windows、windows server各版本、linux操作系统的安装; +熟悉TCP/IP的四层/七层协议; +熟悉mysql、pgsql数据库搭建,及数据库的数据备份和恢复; +熟悉计算机硬件搭配及故障处理; +熟悉浪潮服务器、飞塔、深信服、三层交换机的搭建 +参与H3C-f1000-AK115防火墙的搭建; +工作经历 +2020.08-2021.06 深圳市蓝泰源信息技术股份有限公司 运维工程师 +1、 负责在linux和windows server上部署saas、mysql、pgsql、CDH、ERP以及vms视频服务,并安装 +grafana监控系统; +2、 防火墙配置更新及日常网络查询,三层交换机vlan划分,二层交换机网口检测; +3、 网络问题处理,以及机房服务器、防火墙和交换机的软硬件故障处理; +4、 负责与合作公交公司、中铁二院等三个项目主管进行技术对接的协调与沟通,以及公司10个旧项目 +的故障处理; +5、 桌面运维故障处理,以及员工入职/离职电脑资产分配,为新员工分配IP,划分网段; +6、 负责服务器日常巡检、软件更新、数据备份、故障查询、安全防护等; +2019.10-2020.08 北京优海网络科技有限公司 运维工程师 +1、 负责 Linux/Windows、mysql、华为华三、深信服、飞塔、专用点餐软件等软硬件维护; +2、 负责10家门店的软硬件故障检测与维护,及时处理各门店的故障反馈,并定期给所有门店进行日常 +巡检; +3、 负责搭建新门店内部网络、服务器、交换机、防火墙、路由器等设备,录入餐厅内各种布局数据, +修改APP内UI界面信息等,最后进行数据打版,完成门店信息建设; +4、 保证各门店网络正常运行,配置飞塔内网,确保VPN运行正常,确保总部随时可以远程查看数据; +5、 协助各门店更新paid上专用APP,处理电脑上OA系统的故障; +项目经历 +1、 项目名称:办公机房防火墙和三层交换机设备升级 +硬件环境:H3C-F1000-AK115、H3C-S5560 +项目简介:公司防火墙和三层交换机设备老化,导致公司网络偶尔接触不良 +职责描述:1.借此机会给公司重新规划IP,划分vlan; +2.将IP确定到个人,并监控每个人流量速率,保证办公网络正常运行; +3.更换光纤网络; +2、 项目名称:达州机房建设 +硬件环境:9台宝德服务器,一台数据存储服务器,一台防火墙、一台路由器,一台三层交换机,一 +台二层交换机 +项目简介:出差到四川达州搭建机房,划分机房服务器作用,备份数据库数据,更新老旧软件,协 +助部署虚拟化平台 +职责描述:1.重新规划整理机房服务器,确保服务器按IP顺序排列; +2.升级服务器硬件配置,普通服务器内存由8G升级到16G,磁盘由2G变为4G,并做Raid 1, +数据库服务器内存由16G升级到32G,磁盘由2G升级到8G; +3.协助宝德工程师将服务器资源整合,制作虚拟平台; +4.在虚拟平台上搭建ERP、saas、mysql、pgsql、nginx、tmp、CDH、redis、odoo 11、 +vms视频和grafana监控系统; +5.搭建完成后,测试运营数据是否正常,软件功能是否正常启用; +3、 项目名称:新门店建设 +硬件环境:光纤一条、戴尔R730服务器两台,飞塔防火墙一台,路由器一台,三层交换机一台,审 +计一台,二次交换机5台,海康威视监控一台,9台AP设备,13台打印机,5台戴尔电脑 +项目简介:新门店建设,按照配置文档将门店建设起来 +职责描述:1.使用自己电脑测试网络是否符合标准; +2.网线直插飞塔防火墙进行配置,确保VPN正常使用; +3.配置三层交换机进行vlan划分; +4.部署服务器,制作RAID 5,部署mysql数据库,保证网络通畅; +5.部署审计,并让AP设备连接审计,测试AP设备网络,保证网速; +6.录入门店详细参数; +7.测试验证录入效果,以及到门店各处测试网络和各处打印机是否正常联网打印; +8.确定无问题后,试营业进行最后测试; +9.后台删除所有数据,重新上传门店信息,进行数据打版,正式开始运营; +自我评价 +优点 +1、为人踏实肯干,原意积极主动解决工作生活中遇到的各种问题; +2、待人真诚,能很好的和同事领导相处,提高工作效率; +3、做事认真负责,有较强的责任心,具有较强的适应能力、抗压能力和团队协作能力; +缺点 +专业能力有些欠缺,不太善于表达。但我原意好好学习,也一定会好好学习,希望贵公司能给我个机会, +我一定好好珍惜,认真工作,努力提升自己的专业能力,为公司创造更大的价值。 + + """ + + fmt_txt(chk_str6)