导入候选人

This commit is contained in:
Àî×ÚÕñ 2022-07-12 16:55:54 +08:00
parent c6fd194614
commit e1c82b1858
3 changed files with 78 additions and 10 deletions

View File

@ -99,6 +99,33 @@ async def interview_insert(
except: except:
return schemas.Msg(code=400, msg='上传文件有误', data=None) return schemas.Msg(code=400, msg='上传文件有误', data=None)
data = get_resume(filename, path_data) data = get_resume(filename, path_data)
education = data['education']
# 学历int转化
education_int = {
'大专': 1,
'本科': 2,
'研究生': 3,
'博士': 4,
'硕士': 5,
}
if education and isinstance(education, str):
data['education'] = education_int.get(education, 1)
age = data['age']
# 年龄int转化
if age and isinstance(age, str):
true_age = re.search(r"\d+\.?\d*", age)
if len(true_age.group()) > 2:
data['age'] = 20
else:
data['age'] = int(true_age.group())
work_exp = data['work_exp']
# 工作经验float转化
if work_exp and isinstance(work_exp, str):
true_work_exp = re.search(r"\d+\.?\d*", work_exp)
if len(true_work_exp.group()) > 3:
data['work_exp'] = 1.0
else:
data['work_exp'] = float(true_work_exp.group())
print(data) print(data)
return schemas.Msg(code=200, msg='ok', data=data) return schemas.Msg(code=200, msg='ok', data=data)

View File

@ -1,6 +1,6 @@
import re import re
from typing import Tuple from typing import Tuple
import datetime
import arrow import arrow
import sqlalchemy as sa import sqlalchemy as sa
import json import json
@ -9,7 +9,7 @@ from fastapi import Depends
import pandas as pd import pandas as pd
import numpy as np import numpy as np
from utils.func import get_uid
from sqlalchemy import func, or_, and_, not_ from sqlalchemy import func, or_, and_, not_
from copy import deepcopy from copy import deepcopy
import crud import crud
@ -44,20 +44,57 @@ class InterviewDo:
insert_data = self.data_in insert_data = self.data_in
sql = f"insert into HR.resumes(interview_name, interview_type, interview_sign, feedback, interview_round, star_time, end_time, event_time, uid, name, phone, job_name, hr_name, work_exp, interview_stage, owner_name, education, work_undergo, project_undergo, work_list, school, at_school, specialty, specialty_do, mmended_state, mail, account, id_card, gender, age, gam, interview_state, graduate_time, counts, nation, come_time, review, upgrade) values" sql = f"insert into HR.resumes(interview_name, interview_type, interview_sign, feedback, interview_round, star_time, end_time, event_time, uid, name, phone, job_name, hr_name, work_exp, interview_stage, owner_name, education, work_undergo, project_undergo, work_list, school, at_school, specialty, specialty_do, mmended_state, mail, account, id_card, gender, age, gam, interview_state, graduate_time, counts, nation, come_time, review, upgrade) values"
now_time = datetime.datetime.now()
for data in insert_data: for data in insert_data:
s1 = data['star_time'] s1 = data['star_time']
s2 = data['end_time'] s2 = data['end_time']
s3 = data['event_time'] s3 = data['event_time']
s4 = data['graduate_time'] s4 = data['graduate_time']
if s1: if not s1:
data['star_time'] = None
else:
data['star_time'] = parser.parse(s1) data['star_time'] = parser.parse(s1)
if s2: if not s2:
data['end_time'] = None
else:
data['end_time'] = parser.parse(s2) data['end_time'] = parser.parse(s2)
if s3: if not s3:
data['event_time'] = now_time
else:
data['event_time'] = parser.parse(s3) data['event_time'] = parser.parse(s3)
if s4: if not s4:
data['graduate_time'] = None
else:
data['graduate_time'] = parser.parse(s4) data['graduate_time'] = parser.parse(s4)
data_true = deepcopy(data) data_true = deepcopy(data)
data_true['uid'] = get_uid()
education = data_true['education']
# 学历int转化
education_int = {
'大专': 1,
'本科': 2,
'研究生': 3,
'博士': 4,
'硕士': 5,
}
if education and isinstance(education, str):
data_true['education'] = education_int.get(education, 1)
age = data_true['age']
# 年龄int转化
if age and isinstance(age, str):
true_age = re.search(r"\d+\.?\d*", age)
if len(true_age.group()) > 2:
data_true['age'] = 20
else:
data_true['age'] = int(true_age.group())
work_exp = data_true['work_exp']
# 工作经验float转化
if work_exp and isinstance(work_exp, str):
true_work_exp = re.search(r"\d+\.?\d*", work_exp)
if len(true_work_exp.group()) > 3:
data_true['work_exp'] = 1.0
else:
data_true['work_exp'] = float(true_work_exp.group())
res_data.append(data_true) res_data.append(data_true)
print(sql) print(sql)
return {'sql': sql, return {'sql': sql,
@ -102,3 +139,7 @@ class InterviewDo:
print(sql) print(sql)
return {'sql': sql, return {'sql': sql,
} }
if __name__ == '__main__':
find = re.search(r"\d+\.?\d*", "18岁")
print(len(find.group()))

View File

@ -20,7 +20,7 @@ schema_dict = {'姓名': 'name', '所在地': 'account', '户口所在地': 'acc
# 简历初始文档 # 简历初始文档
data_mode = { data_mode = {
"interview_name": "", "interview_name": "吴操",
"interview_type": 1, "interview_type": 1,
"interview_sign": 0, "interview_sign": 0,
"hope_money": 10000, "hope_money": 10000,
@ -32,8 +32,8 @@ data_mode = {
"name": "", "name": "",
"phone": "", "phone": "",
"job_name": "", "job_name": "",
"hr_name": "", "hr_name": "吴操",
"work_exp": "", "work_exp": 0.0,
"interview_stage": 1, "interview_stage": 1,
"owner_name": 2, "owner_name": 2,
"education": 1, "education": 1,
@ -49,7 +49,7 @@ data_mode = {
"account": "", "account": "",
"id_card": "", "id_card": "",
"gender": "", "gender": "",
"age": "", "age": 0,
"gam": "", "gam": "",
"interview_state": 1, "interview_state": 1,
"graduate_time": "", "graduate_time": "",