1.提交的关于反馈的更新

This commit is contained in:
李伟 2022-10-08 17:50:51 +08:00
parent b2ccffe0d8
commit bd8d5d3953
6 changed files with 97 additions and 36 deletions

View File

@ -2118,7 +2118,9 @@ async def add_interviewee(
# 同步发送邮件通知被安排了面试 # 同步发送邮件通知被安排了面试
find_sql = f"""select job_names,name from HR.resumes where uid = '{data_in.uid}' limit 1""" find_sql = f"""select job_names,name from HR.resumes where uid = '{data_in.uid}' limit 1"""
df = await ckdb.query_dataframe(find_sql) df = await ckdb.query_dataframe(find_sql)
send = f"""【面试通知】\n面试岗位:{df['job_names'][0]}\n面试时间:{data_in.star_time}\n面试者:{df['name'][0]}\nHR{hr_name}\n面试官:{interview_name}""" interview_names=''.join(name_list)
hr_names=''.join(hr_list)
send = f"""【面试通知】\n面试岗位:{df['job_names'][0]}\n面试时间:{data_in.star_time}\n面试者:{df['name'][0]}\nHR{hr_names}\n面试官:{interview_names}"""
hr_user = data_in.hr_user hr_user = data_in.hr_user
hr_user.extend(data_in.user_id) hr_user.extend(data_in.user_id)
send_dates(send, hr_user) send_dates(send, hr_user)
@ -2144,6 +2146,19 @@ async def add_interviewee(
'back_status': 0, # 反馈状态 'back_status': 0, # 反馈状态
'type': 'interview' # 记录的类型 'type': 'interview' # 记录的类型
}) })
# 创建空白的面试反馈到mdb数据库
survey={}
for us in [name,hr]:
for i in us:
survey[i['user_id']]={
"name": i['nickname'],
"voice": 0,
"thought": 0,
"diathesis": 0,
"evaluate": "",
"teacher_back": 0,
'type':False}
await crud.feedback.ins_feedback(db,schemas.Feedback(uid=data_in.uid,survey=survey))
return schemas.Msg(code=200, msg='ok', data='') return schemas.Msg(code=200, msg='ok', data='')
@ -2297,23 +2312,7 @@ async def interview_find(
return schemas.Msg(code=200, msg='ok', data=res_data) return schemas.Msg(code=200, msg='ok', data=res_data)
@router.post("/interview_teacher")
async def interview_teacher(
request: Request,
data_in: schemas.interview_teacher,
db: AsyncIOMotorDatabase = Depends(get_database),
ckdb: CKDrive = Depends(get_ck_db),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 面试反馈 """
date = json.dumps(data_in.date)
sql = f"""
ALTER TABLE HR.resumes update teacher_state = 2,teacher_back={data_in.teacher_back},teacher_txt='{date}'
WHERE uid = '{data_in.uid}'
"""
await ckdb.execute(sql)
await crud.interview_record.update_back_status(db, data_in.uid, data_in.teacher_back)
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/interview") @router.post("/interview")
@ -2429,22 +2428,50 @@ async def interviews(
return schemas.Msg(code=200, msg='ok', data=datas) return schemas.Msg(code=200, msg='ok', data=datas)
@router.post("/interview_teacher")
async def interview_teacher(
request: Request,
data_in: schemas.Feedback,
db: AsyncIOMotorDatabase = Depends(get_database),
ckdb: CKDrive = Depends(get_ck_db),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 新增面试反馈 """
await crud.feedback.ins_feedback(db, data_in)
# sql = f"""ALTER TABLE HR.resumes update teacher_state = 2 WHERE uid = '{data_in.uid}'"""
# await ckdb.execute(sql)
# await crud.interview_record.update_back_status(db, data_in.uid, data_in.teacher_back)
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/up_teacher") @router.post("/up_teacher")
async def interview_teacher( async def interview_teacher(
request: Request, request: Request,
data_in: schemas.interview_teacher, data_in: schemas.Feedback,
ckdb: CKDrive = Depends(get_ck_db), ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user) current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg: ) -> schemas.Msg:
""" 修改面试反馈 """ """ 修改面试反馈 """
date = json.dumps(data_in.date) data = await crud.feedback.one_feedback(db, {'uid': data_in.uid})
sql = f""" for k,v in data['survey'].items():
ALTER TABLE HR.resumes update teacher_back={data_in.teacher_back},teacher_txt='{date}' if k == list(data_in.survey.keys())[0]:
WHERE uid = '{data_in.uid}' data['survey'][k]=data_in.survey[k]
""" data['survey'][k]['type']=True
print(sql)
await ckdb.execute(sql) 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)
return schemas.Msg(code=200, msg='ok', data='') return schemas.Msg(code=200, msg='ok', data='')
@ -2453,13 +2480,11 @@ async def interview_teacher(
request: Request, request: Request,
data_in: schemas.get_teacher, data_in: schemas.get_teacher,
ckdb: CKDrive = Depends(get_ck_db), ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user) current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg: ) -> schemas.Msg:
""" 获取面试反馈 """ """ 获取面试反馈 """
sql = f"""select uid,teacher_back,teacher_txt,teacher_state,star_time,end_time,interview_stage from HR.resumes WHERE uid = '{data_in.uid}' limit 1""" data=await crud.feedback.one_feedback(db,{'uid':data_in.uid})
print(sql)
res = await ckdb.execute(sql)
data = chkData(res)
return schemas.Msg(code=200, msg='ok', data=data) return schemas.Msg(code=200, msg='ok', data=data)
@ -2478,3 +2503,4 @@ async def hint(
res.append(i) res.append(i)
data = sorted(res, key=operator.itemgetter('times')) data = sorted(res, key=operator.itemgetter('times'))
return schemas.Msg(code=200, msg='ok', data=data) return schemas.Msg(code=200, msg='ok', data=data)

View File

@ -33,3 +33,4 @@ from .crud_owner_info import owner_info
from .crud_count_in_worker import count_in_worker from .crud_count_in_worker import count_in_worker
from .crud_basic_data import basic_data from .crud_basic_data import basic_data
from .crud_section import section from .crud_section import section
from .crud_feedback import feedback

29
crud/crud_feedback.py Normal file
View File

@ -0,0 +1,29 @@
from motor.motor_asyncio import AsyncIOMotorDatabase
import schemas
from crud.base import CRUDBase
__all__ = 'feedback',
from utils import get_uid
class CRUDfeedback(CRUDBase):
# 获取所有数据
async def all_xiangmu(self, db: AsyncIOMotorDatabase):
return await self.find_many(db, {})
# 获取对应条件的数据
async def one_feedback(self, db: AsyncIOMotorDatabase,where):
return await self.find_one(db, where,{'_id':0})
# 修改数据
async def up_feedback(self, db: AsyncIOMotorDatabase, data_in: schemas.Feedback):
await self.update_one(db, {'uid': data_in.uid}, {'$set': {'survey': data_in.survey}})
# 插入数据
async def ins_feedback(self, db: AsyncIOMotorDatabase, data_in: schemas.Feedback):
await self.insert_one(db,data_in.dict())
feedback = CRUDfeedback('feedback')

View File

@ -39,3 +39,4 @@ from .owner_info import *
from .count_in_worker import * from .count_in_worker import *
from .basic_data import * from .basic_data import *
from .section import * from .section import *
from .feedback import *

9
schemas/feedback.py Normal file
View File

@ -0,0 +1,9 @@
from pydantic import BaseModel
from typing import List
class Feedback(BaseModel):
survey: dict # 存储的面试反馈
uid: str # 求职者唯一id
# survey数据
# {'voice':1,'thought':1,'diathesis':1,'evaluate':'评价','teacher_back':1}

View File

@ -168,12 +168,7 @@ class nterview(BaseModel):
# interview_round: int # 面试轮次 # interview_round: int # 面试轮次
class interview_teacher(BaseModel):
date: dict # 存储的面试反馈
teacher_back: int # 面试反馈选择
uid: str # 求职者唯一id
# date数据
# {'voice':1,'thought':1,'diathesis':1,'evaluate':'评价'}
class interviews(BaseModel): class interviews(BaseModel):