1.获取人才库数据
This commit is contained in:
parent
6247661e14
commit
89667d16a0
@ -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)
|
||||
|
@ -178,3 +178,8 @@ class get_teacher(BaseModel):
|
||||
|
||||
class record(BaseModel):
|
||||
uid: str # 求职者唯一id
|
||||
|
||||
|
||||
class find(BaseModel):
|
||||
date: dict={} # 查询条件
|
||||
pages: int = 1 # 分页的当前页
|
||||
|
Loading…
Reference in New Issue
Block a user