1.修改简历筛选逻辑

This commit is contained in:
李伟 2022-11-08 11:45:46 +08:00
parent 0562e1940f
commit 3a8db1d134
3 changed files with 86 additions and 35 deletions

View File

@ -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)

View File

@ -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

View File

@ -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 为待筛选