1.修改简历筛选逻辑
This commit is contained in:
parent
0562e1940f
commit
3a8db1d134
@ -124,7 +124,8 @@ def chkData(data):
|
|||||||
if '—' in work_list[true_index]['time']:
|
if '—' in work_list[true_index]['time']:
|
||||||
split_str2 = '—'
|
split_str2 = '—'
|
||||||
if int(i['time'].split(split_str1)[0].replace('.', '').replace('/', '')) > int(
|
if int(i['time'].split(split_str1)[0].replace('.', '').replace('/', '')) > int(
|
||||||
work_list[true_index]['time'].split(split_str2)[0].replace('.', '').replace('/', '')):
|
work_list[true_index]['time'].split(split_str2)[0].replace('.', '').replace('/',
|
||||||
|
'')):
|
||||||
true_index = index
|
true_index = index
|
||||||
work_dict = work_list[true_index]
|
work_dict = work_list[true_index]
|
||||||
work_list = [work_dict]
|
work_list = [work_dict]
|
||||||
@ -218,36 +219,82 @@ async def interview_find(
|
|||||||
|
|
||||||
|
|
||||||
# 面试查询
|
# 面试查询
|
||||||
|
# @router.post("/interview_manner_num")
|
||||||
|
# async def interview_find(
|
||||||
|
# request: Request,
|
||||||
|
# interview: InterviewDo = Depends(InterviewDo),
|
||||||
|
# db: CKDrive = Depends(get_ck_db),
|
||||||
|
# current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||||
|
# ) -> schemas.Msg:
|
||||||
|
# """ interview面试数据查询 """
|
||||||
|
# await interview.init()
|
||||||
|
# res = interview.find_interview_every_sql()
|
||||||
|
# sql = res['sql']
|
||||||
|
# print(sql)
|
||||||
|
# data = await db.execute(sql)
|
||||||
|
# if not data:
|
||||||
|
# res_msg = {
|
||||||
|
# 'manner_2_num': 0,
|
||||||
|
# 'manner_01_num': 0,
|
||||||
|
# }
|
||||||
|
# return schemas.Msg(code=200, msg='无数据', data=res_msg)
|
||||||
|
# # 格式化数据
|
||||||
|
# res_data = chkData(data)
|
||||||
|
#
|
||||||
|
# # 统计数量
|
||||||
|
# manner_2_num = len([1 for i in res_data if i['hr_manner'] == 2])
|
||||||
|
# manner_01_num = len([1 for i in res_data if i['hr_manner'] in [0, 1]])
|
||||||
|
#
|
||||||
|
# res_msg = {
|
||||||
|
# 'manner_2_num': manner_2_num,
|
||||||
|
# 'manner_01_num': manner_01_num,
|
||||||
|
# }
|
||||||
|
# return schemas.Msg(code=200, msg='ok', data=res_msg)
|
||||||
@router.post("/interview_manner_num")
|
@router.post("/interview_manner_num")
|
||||||
async def interview_find(
|
async def interview_find(
|
||||||
request: Request,
|
request: Request,
|
||||||
interview: InterviewDo = Depends(InterviewDo),
|
data_in: schemas.num,
|
||||||
db: CKDrive = Depends(get_ck_db),
|
ckdb: CKDrive = Depends(get_ck_db),
|
||||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||||
) -> schemas.Msg:
|
) -> schemas.Msg:
|
||||||
""" interview面试数据查询 """
|
""" interview面试数据查询 """
|
||||||
await interview.init()
|
strs = []
|
||||||
res = interview.find_interview_every_sql()
|
for k, v in data_in.data.items():
|
||||||
sql = res['sql']
|
if v != '':
|
||||||
|
if k == 'name':
|
||||||
|
str_s = f"{k} like '%{v}%'"
|
||||||
|
elif isinstance(v, int):
|
||||||
|
str_s = f"{k} = {v}"
|
||||||
|
else:
|
||||||
|
str_s = f"{k} = '{v}'"
|
||||||
|
strs.append(str_s)
|
||||||
|
where = ' and '.join(strs)
|
||||||
|
# 待筛选候选人
|
||||||
|
|
||||||
|
sql = f"""select count(*) as v from HR.resumes where interview_stage = 1 and {where}"""
|
||||||
print(sql)
|
print(sql)
|
||||||
data = await db.execute(sql)
|
manner_2_num = await ckdb.execute(sql)
|
||||||
if not data:
|
# 筛选记录
|
||||||
res_msg = {
|
a = 0
|
||||||
'manner_2_num': 0,
|
for k, v in data_in.data.items():
|
||||||
'manner_01_num': 0,
|
if k == 'hr_manner' and v != '' and v != 2:
|
||||||
}
|
a += 1
|
||||||
return schemas.Msg(code=200, msg='无数据', data=res_msg)
|
break
|
||||||
# 格式化数据
|
|
||||||
res_data = chkData(data)
|
|
||||||
|
|
||||||
# 统计数量
|
if a == 0: # 不存在hr_manner筛选
|
||||||
manner_2_num = len([1 for i in res_data if i['hr_manner'] == 2])
|
s_sql = f"""select count(*) as va from HR.resumes where hr_manner in (0,1) and {where}"""
|
||||||
manner_01_num = len([1 for i in res_data if i['hr_manner'] in [0, 1]])
|
s_sql = s_sql.replace("hr_manner = 2 and", ' ', 1)
|
||||||
|
else:
|
||||||
|
s_sql = f"""select count(*) as va from HR.resumes where {where}"""
|
||||||
|
s_sql = s_sql.replace("hr_manner = 2 and", ' ', 1)
|
||||||
|
|
||||||
|
print(s_sql)
|
||||||
|
manner_01_num = await ckdb.execute(s_sql)
|
||||||
res_msg = {
|
res_msg = {
|
||||||
'manner_2_num': manner_2_num,
|
'manner_2_num': manner_2_num[0]['v'],
|
||||||
'manner_01_num': manner_01_num,
|
'manner_01_num': manner_01_num[0]['va'],
|
||||||
}
|
}
|
||||||
|
|
||||||
return schemas.Msg(code=200, msg='ok', data=res_msg)
|
return schemas.Msg(code=200, msg='ok', data=res_msg)
|
||||||
|
|
||||||
|
|
||||||
@ -487,19 +534,19 @@ async def file_to_hw(
|
|||||||
|
|
||||||
# 简历初始文档
|
# 简历初始文档
|
||||||
data_mode = {
|
data_mode = {
|
||||||
"interview_name": "", #面试官姓名
|
"interview_name": "", # 面试官姓名
|
||||||
"interview_type": 1,#面试类型
|
"interview_type": 1, # 面试类型
|
||||||
"interview_sign": 0,#面试签到
|
"interview_sign": 0, # 面试签到
|
||||||
"hope_money": "",#期望薪资
|
"hope_money": "", # 期望薪资
|
||||||
"feedback": 0,#面试反馈
|
"feedback": 0, # 面试反馈
|
||||||
"interview_round": 0,#面试轮次
|
"interview_round": 0, # 面试轮次
|
||||||
"event_time": datetime.now(),#投递简历时间
|
"event_time": datetime.now(), # 投递简历时间
|
||||||
"name": "",#求职者姓名
|
"name": "", # 求职者姓名
|
||||||
"phone": "",#求职者电话
|
"phone": "", # 求职者电话
|
||||||
"job_name": "",#应聘职位
|
"job_name": "", # 应聘职位
|
||||||
"hr_name": "",#hr姓名
|
"hr_name": "", # hr姓名
|
||||||
"work_exp": 0,#工作经验
|
"work_exp": 0, # 工作经验
|
||||||
"interview_stage": 1,#
|
"interview_stage": 1, #
|
||||||
"owner_name": 2,
|
"owner_name": 2,
|
||||||
"education": 1,
|
"education": 1,
|
||||||
"work_undergo": [],
|
"work_undergo": [],
|
||||||
|
@ -339,10 +339,10 @@ class InterviewDo:
|
|||||||
if key == 'hr_manner':
|
if key == 'hr_manner':
|
||||||
if value == '':
|
if value == '':
|
||||||
if whereStr:
|
if whereStr:
|
||||||
whereStr += 'and ' + str(key) + ' = ' + str(0) + ' '
|
whereStr += 'and ' + '(' + str(key) + ' = ' + str(0) + ' '
|
||||||
else:
|
else:
|
||||||
whereStr += str(key) + ' = ' + str(0) + ' '
|
whereStr += str(key) + ' = ' + str(0) + ' '
|
||||||
whereStr += 'or ' + str(key) + ' = ' + str(1) + ' '
|
whereStr += 'or ' + str(key) + ' = ' + str(1) + ') '
|
||||||
if isinstance(value, str):
|
if isinstance(value, str):
|
||||||
if not value.strip():
|
if not value.strip():
|
||||||
continue
|
continue
|
||||||
|
@ -187,3 +187,7 @@ class find(BaseModel):
|
|||||||
|
|
||||||
class send_list(BaseModel):
|
class send_list(BaseModel):
|
||||||
send:List[dict]
|
send:List[dict]
|
||||||
|
|
||||||
|
class num(BaseModel):
|
||||||
|
data:dict
|
||||||
|
types:bool # true 为待筛选
|
Loading…
Reference in New Issue
Block a user