This commit is contained in:
李伟 2022-07-25 14:49:05 +08:00
parent cf9408449b
commit ccd1d7a649
5 changed files with 74 additions and 13 deletions

View File

@ -373,10 +373,13 @@ async def event_edit(
ckdb: CKDrive = Depends(get_ck_db)
) -> schemas.Msg:
"""获取标准版简历"""
# sql = f"""
# select name,phone,job_name,work_exp,owner_name,education,work_undergo,school,specialty,
# graduate_time,mail,account,id_card,gender,nation,age,at_school,specialty_do,hope_money,resume_affix_id,
# review,work_list,project_undergo,upgrade,come_time,now_money,work_in_time from HR.resumes WHERE uid = '{data_in.uid}'
# """
sql = f"""
select name,phone,job_name,work_exp,owner_name,education,work_undergo,school,specialty,
graduate_time,mail,account,id_card,gender,nation,age,at_school,specialty_do,hope_money,resume_affix_id,
review,work_list,project_undergo,upgrade,come_time,now_money,work_in_time from HR.resumes WHERE uid = '{data_in.uid}'
select * from HR.resumes WHERE uid = '{data_in.uid}'
"""
df = await ckdb.query_dataframe(sql)
data = {}
@ -446,9 +449,12 @@ async def event_edit(
# 保存发送邮件的记录
now_time = str(datetime.now()).split('.')[0]
await crud.email_record.create(db, schemas.email_record(user_id=data_in.user_id, text=data_in.email_str,
times=now_time))
times=now_time,name=data_in.name,state=1))
return schemas.Msg(code=200, msg='邮件发送成功', data='')
except Exception:
now_time = str(datetime.now()).split('.')[0]
await crud.email_record.create(db, schemas.email_record(user_id=data_in.user_id, text=data_in.email_str,
times=now_time,name=data_in.name,state=0))
return schemas.Msg(code=200, msg='邮件发送失败', data='')
@ -558,6 +564,7 @@ async def event_edit(
data_dict = {}
data_dict['name'] = i.get('name')
data_dict['email'] = i.get('email')
data_dict['rank'] = i.get('rank') # 用于区分是面试官还是hr
data.append(data_dict)
return schemas.Msg(code=200, msg='ok', data=data)
@ -585,7 +592,7 @@ async def create(
except pymongo.errors.DuplicateKeyError:
return schemas.Msg(code=-1, msg='看板已存在', data='看板已存在')
return schemas.Msg(code=0, msg='创建成功', data='')
return schemas.Msg(code=200, msg='ok', data='创建成功')
@router.post("/delete")
@ -599,7 +606,7 @@ async def delete(
del_dashboard = await crud.dashboard.delete(db, {'_id': {'$in': data_in.ids}})
if del_dashboard.deleted_count == 0:
return schemas.Msg(code=-1, msg='error', data='删除失败')
return schemas.Msg(code=0, msg='ok', data='删除成功')
return schemas.Msg(code=200, msg='ok', data='删除成功')
@router.post("/get_dashboard")
@ -614,7 +621,7 @@ async def dashboards(request: Request,
reports_detail = await crud.report.find_many(db, {'_id': {'$in': list(reports.keys())}}, {'query.cachedata': False})
for item in reports_detail:
reports[item['_id']].update(item)
return schemas.Msg(code=0, msg='ok', data=reports)
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/edit")
@ -625,7 +632,7 @@ async def edit(
):
"""编辑看板名"""
await crud.dashboard.update_one(db, {'_id': data_in.dashboard_id}, {'$set': {'name': data_in.new_name}})
return schemas.Msg(code=0, msg='ok', data='ok')
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/notarize")
@ -641,7 +648,7 @@ async def event_edit(
"""
await ckdb.execute(sql)
find_sql = f"""
select uid,name,interview_name,hr_name,star_time,interview_sign,job_id,job_names from HR.resumes where uid = '{data_in.uid}'
select uid,name,interview_name,hr_name,star_time,interview_sign,job_id,job_names,mail from HR.resumes where uid = '{data_in.uid}'
"""
df = await ckdb.query_dataframe(find_sql)
# 存份面试数据到mongodb
@ -655,6 +662,12 @@ async def event_edit(
job_id=df['job_id'][0], # 我们自己招聘的职位id
job_names=df['job_names'][0] # 我们自己招聘的职位名
))
if df['mail'][0] != '':
# 发送邮件给面试者通知面试
msg=f"""{df['name'][0]},您好\n\n感谢关注乐谷在线科技有限公司!请于{df['star_time'][0]}到公司参见面试。\n联系人:{data_in.hr_name}\n联系电话:{data_in.hr_phone}\n联系邮箱:{
data_in.hr_email}\n\n如有问题请用以上联系方式及时与我们沟通谢谢\n系统邮件请勿回复
"""
send_str_mail(msg, df['mail'][0])
return schemas.Msg(code=200, msg='ok', data='')
@ -663,7 +676,7 @@ async def edit(
data_in: schemas.Stage,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database)
):
) -> schemas.Msg:
"""更改简历阶段"""
if data_in.stage == 1: # 初筛
sql = f"""
@ -674,4 +687,43 @@ async def edit(
ALTER table HR.resumes update interview_stage = {data_in.stage} WHERE uid = '{data_in.uid}'
"""
await ckdb.execute(sql)
return schemas.Msg(code=0, msg='ok', data='ok')
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/alter")
async def edit(
data_in: schemas.Stage,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database)
) -> schemas.Msg:
"""获得已添加和未添加的报表"""
user_id = ''
# 获取自己的报表
res = await crud.dashboard.find_report(db, user_id=user_id)
# 获取所有的报表
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/alter")
async def edit(
data_in: schemas.Stage,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database)
) -> schemas.Msg:
"""添加报表"""
user_id = ''
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/alter")
async def edit(
data_in: schemas.ReportDB,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database)
) -> schemas.Msg:
"""新增原始报表"""
user_id = ''
await crud.report.create(db, data_in, user_id=user_id)
return schemas.Msg(code=200, msg='ok', data='')

View File

@ -22,6 +22,7 @@ class CRUDDashboard(CRUDBase):
await db[self.coll_name].create_index(
[('project_id', pymongo.DESCENDING), ('name', pymongo.DESCENDING), ('user_id', pymongo.DESCENDING)],
unique=True)
async def find_report(self, db: AsyncIOMotorDatabase,user_id):
await self.find(db, {'user_id': user_id}, {})
dashboard = CRUDDashboard('dashboard')

View File

@ -89,6 +89,7 @@ api:/api/v1/itr/send_str_mail
请求方式post
参数:
user_id: str # 接收者的唯一id
name: str # 接收者的名字
email: str # 接收者的邮箱
email_str: str # 需要发送的文本内容
@ -190,9 +191,11 @@ api:/api/v1/itr/edit
api:/api/v1/itr/notarize
请求方式post
参数:
uid: str # 面试者简历在CK中的唯一标识
uid: str # 面试者简历在CK中的唯一标识
hr_name: str
hr_id: str
hr_phone: str
hr_email:str
interview_name: str
interview_id: str

View File

@ -3,8 +3,10 @@ from pydantic import BaseModel
class email_record(BaseModel):
user_id: str # 求职者的唯一id
name: str # 求职者名字
text: str # 邮件的文本内容
times: str # 发送邮件的时间
state: int # 邮件是否发送成功
class get_email_record(BaseModel):

View File

@ -50,6 +50,7 @@ class Email_str(BaseModel):
class send_str_mail(BaseModel):
user_id: str # 接收者的唯一id
name: str # 接收者的名字
email: str # 接收者的邮箱
email_str: str # 需要发送的文本内容
@ -69,5 +70,7 @@ class Notarize(BaseModel):
uid: str # 面试者简历在CK中的唯一标识
hr_name: str
hr_id: str
hr_phone: str
hr_email: str
interview_name: str
interview_id: str