1.获取人才库数据

This commit is contained in:
李伟 2022-10-25 15:48:27 +08:00
parent 6247661e14
commit 89667d16a0
2 changed files with 82 additions and 16 deletions

View File

@ -403,12 +403,15 @@ async def interview_update(
user_ids1 = ','.join(user_id1)
sql = sql.replace('interview_stage = 1 ,',
f"interview_stage = 1 ,hr_name = '{nicknames1}',hr_id = '{user_ids1}',", 1)
interviews = int(interview.data.get('interview_stage', '0')) # 当前简历阶段
if interview.data_in.get('interview_stage', '') == 11: # 当是淘汰时则把淘汰的时间,阶段等都记录下来
now = str(datetime.datetime.now()).split('.')[0]
sql = sql.replace("interview_stage = 11", f"interview_stage = 11,ago={interviews},pass_time='{now}'")
data = await ckdb.execute(sql)
print(sql)
# except:
# return schemas.Msg(code=-9, msg='数据有误', data=None)
interviews = int(interview.data.get('interview_stage', '0')) # 简历阶段
if interview.data_in.get('interview_stage', '') == 11 and interviews > 2: # 淘汰的时候发送钉钉消息通知面试官该求职者被淘汰
if interview.data_in.get('interview_stage', '') == 11 and interviews > 2: # 淘汰的时候发送钉钉消息通知面试官该求职者被淘汰(面试之后的阶段才会发通知)
send_sql = f"""
select interview_id,name,job_names from HR.resumes where uid = '{interview.where.get('uid')}' limit 1
"""
@ -2477,6 +2480,7 @@ async def add_interviewee(
ckdb: CKDrive = Depends(get_ck_db),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""添加面试"""
name = await crud.user.get_users(db, data_in.user_id)
name_list = [i['nickname'] for i in name]
interview_name = ','.join(name_list)
@ -2807,6 +2811,7 @@ async def interviews(
return schemas.Msg(code=200, msg='ok', data=datas)
# 废除了,有默认加反馈模版的地方
@router.post("/interview_teacher")
async def interview_teacher(
request: Request,
@ -2840,17 +2845,12 @@ async def interview_teacher(
data['survey'][k]['type'] = True
await crud.feedback.up_feedback(db, schemas.Feedback(uid=data_in.uid, survey=data['survey']))
a = 1
# user_list=list(data_in.survey.keys())
# sql = f"""select hr_id,interview_id from HR.resumes WHERE uid = '{data_in.uid}' limit 1"""
# res=await ckdb.query_dataframe(sql)
# res_list=res.values.tolist()
# # 判断是否所有人都反馈完成,全部反馈完整则修改反馈状态
# d = [False for c in res_list if c not in user_list]
# if not d:
# up_sql = f"""ALTER TABLE HR.resumes update teacher_state = 2 WHERE uid = '{data_in.uid}'"""
# await ckdb.execute(up_sql)
res = await crud.feedback.one_feedback(db, {'uid': data_in.uid})
teacher_back = [v['teacher_back'] for v in res['survey'].values()]
types = [v['type'] for v in res['survey'].values()]
if 0 not in teacher_back and False not in types: # 当所有的反馈都处理完后,修改简历状态
up_sql = f"""ALTER TABLE HR.resumes update teacher_state = 2 WHERE uid = '{data_in.uid}'"""
await ckdb.execute(up_sql)
return schemas.Msg(code=200, msg='ok', data='')
@ -2882,3 +2882,64 @@ async def hint(
res.append(i)
data = sorted(res, key=operator.itemgetter('times'))
return schemas.Msg(code=200, msg='ok', data=data)
@router.post("/talent_pool")
async def talent_pool(
request: Request,
data_in: schemas.find,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""获取人才库数据,分页查询"""
find_column = ["uid", "gender", "at_school", "name", "event_time", "education", "school", "specialty",
"work_exp", "job_id", "job_names", "ago", "pass_time""job_name", "pass_why", "pass_text"]
find_columns = ','.join(find_column)
if data_in.date != {}:
strs = []
for k, v in data_in.date.items():
if v != '':
str_s = f"{k} like '%{v}%'"
strs.append(str_s)
where = ' and '.join(strs)
sql = f"""
select {find_columns} from HR.resumes where interview_stage = -1 and {where} ORDER BY event_time
LIMIT 10 OFFSET {(data_in.pages - 1) * 10}
"""
else:
sql = f"""
select {find_columns} from HR.resumes where interview_stage = -1 ORDER BY event_time
LIMIT 10 OFFSET {(data_in.pages - 1) * 10}
"""
data = await ckdb.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data='')
res = chkData(data)
return schemas.Msg(code=200, msg='ok', data=res)
@router.post("/talent_pool_nu")
async def talent_pool_nu(
request: Request,
data_in: schemas.find,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""获取人才库数据数量"""
if data_in.date != {}:
strs = []
for k, v in data_in.date.items():
if v != '':
str_s = f"{k} like '%{v}%'"
strs.append(str_s)
where = ' and '.join(strs)
sql = f"""select count(*) from HR.resumes where interview_stage = -1 and {where}"""
else:
sql = f"""select count(*) from HR.resumes where interview_stage = -1"""
data = await ckdb.query_dataframe(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data='')
res = len(data)
return schemas.Msg(code=200, msg='ok', data=res)

View File

@ -178,3 +178,8 @@ class get_teacher(BaseModel):
class record(BaseModel):
uid: str # 求职者唯一id
class find(BaseModel):
date: dict={} # 查询条件
pages: int = 1 # 分页的当前页