备注等接口

This commit is contained in:
Àî×ÚÕñ 2022-07-15 10:39:56 +08:00
parent 6391e73314
commit baddcf7b36
7 changed files with 259 additions and 31 deletions

View File

@ -47,14 +47,14 @@ async def interview_find(
return schemas.Msg(code=200, msg='ok', data=data)
# 面试查询
# 面试_主页初筛查询
@router.post("/interview_home_find")
async def interview_find(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
) -> schemas.Msg:
""" interview面试数据查询 """
""" interview面试数据主页初筛查询 """
await interview.init()
res = interview.find_interview_home_sql()
sql = res['sql']
@ -64,6 +64,74 @@ async def interview_find(
return schemas.Msg(code=200, msg='ok', data=data)
# 复筛查询
@router.post("/interview_screen_find")
async def interview_find(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
) -> schemas.Msg:
""" interview面试数据复筛查询 """
await interview.init()
res = interview.find_interview_screen_sql()
sql = res['sql']
data = await db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
return schemas.Msg(code=200, msg='ok', data=data)
# 面试阶段查询
@router.post("/interview_exam_find")
async def interview_find(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
) -> schemas.Msg:
""" interview面试数据面试阶段查询 """
await interview.init()
res = interview.find_interview_exam_sql()
sql = res['sql']
data = await db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
return schemas.Msg(code=200, msg='ok', data=data)
# offer阶段查询
@router.post("/interview_offer_find")
async def interview_find(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
) -> schemas.Msg:
""" interview面试数据offer阶段查询 """
await interview.init()
res = interview.find_interview_offer_sql()
sql = res['sql']
data = await db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
return schemas.Msg(code=200, msg='ok', data=data)
# 待入职阶段查询
@router.post("/interview_waite_in_find")
async def interview_find(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
) -> schemas.Msg:
""" interview面试数据待入职阶段查询 """
await interview.init()
res = interview.find_interview_waite_in_sql()
sql = res['sql']
data = await db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
return schemas.Msg(code=200, msg='ok', data=data)
# 面试修改
@router.post("/interview_update")
async def interview_update(
@ -98,12 +166,11 @@ async def interview_insert(
return schemas.Msg(code=200, msg='ok', data=data)
# 入面试数据
# 入面试数据
@router.post("/interview_file_insert")
async def interview_insert(
request: Request,
file: UploadFile = File(...),
db: CKDrive = Depends(get_ck_db),
) -> schemas.Msg:
""" interview面试数据导入 """
path_data = os.getcwd() + '/jianli/' # 当前文件所在的目录
@ -129,6 +196,8 @@ async def interview_insert(
if education and isinstance(education, str):
data['education'] = education_int.get(education, 1)
age = data['age']
if not age:
data['age'] = 20
# 年龄int转化
if age and isinstance(age, str):
true_age = re.search(r"\d+\.?\d*", age)
@ -150,31 +219,17 @@ async def interview_insert(
return schemas.Msg(code=200, msg='ok', data=data)
# @router.post("/interview_insert")
# async def interview_insert(
# request: Request,
# data_in: schemas.Interview,
# ckdb: CKDrive = Depends(get_ck_db),
# ) -> schemas.Msg:
# """ 面试情况 """
# await interview.init()
# res = interview.insert_interview_sql()
# sql = res['sql']
# insert_data = res['insert_data']
# data = await db.execute_dict(sql, insert_data)
# return schemas.Msg(code=200, msg='ok', data=data)
@router.post("/add_job")
async def event_edit(
request: Request,
data_in: schemas.Ins_Job,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""新增职位"""
await crud.jobs.insert_job(db, data_in)
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/condition")
async def interview_insert(
request: Request,
@ -229,12 +284,12 @@ async def interview_insert(
}
return schemas.Msg(code=200, msg='ok', data=data)
@router.post("/get_job")
async def event_edit(
request: Request,
data_in: schemas.Jobs = None,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
db: AsyncIOMotorDatabase = Depends(get_database)
) -> schemas.Msg:
"""获取职位名称"""
# 获取对应条件的职位
@ -283,4 +338,27 @@ async def download_inter(
columns = ['面试类型', '面试阶段', '面试时间', '候选人', '联系方式', '应聘职位', '面试负责人', '面试官', '面试签到']
dfmi = pd.DataFrame(data=datas, columns=columns)
Download = Download_xlsx(dfmi, xlsx_name)
return Download
return Download
@router.post("/add_remark")
async def event_edit(
request: Request,
data_in: schemas.BaseRemark,
db: AsyncIOMotorDatabase = Depends(get_database),
) -> schemas.Msg:
"""添加备注"""
await crud.api_interview_remark.insert_remark(db, data_in)
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/find_remark")
async def event_edit(
request: Request,
data_in: schemas.Ins_Job,
db: AsyncIOMotorDatabase = Depends(get_database),
) -> schemas.Msg:
"""查找备注"""
data = await crud.api_interview_remark.get_interview_remarks(db, data_in)
return schemas.Msg(code=200, msg='ok', data=data)

View File

@ -21,4 +21,5 @@ from .crud_url_list import url_list
from .crud_user_url import user_url
from .crud_api_module import api_module
from .crud_event_list import event_list
from .crud_jobs import jobs
from .crud_jobs import jobs
from .crud_interview_remark import api_interview_remark

View File

@ -0,0 +1,32 @@
from motor.motor_asyncio import AsyncIOMotorDatabase
import schemas
from crud.base import CRUDBase
__all__ = 'api_interview_remark',
class ApiInterviewRemark(CRUDBase):
# 获取简历所有备注
async def get_interview_remarks(self, db: AsyncIOMotorDatabase, data_in: schemas.FindRemark):
where = data_in.where
where.update({'uid': data_in.remark_uid})
return await self.find_many(db, where)
# 插入一条全新的备注
async def insert_remark(self, db: AsyncIOMotorDatabase, data_in: schemas.BaseRemark):
return await self.insert_one(db, data_in.dict())
# 更新一条备注数据
async def updata_remark(self, db: AsyncIOMotorDatabase, data_in: schemas.Url_module):
return await self.update_one(db, {'auth_id': data_in.auth_id, 'path_name': data_in.path_name},
{'$set': {'api_list': data_in.api_list, 'api_name': data_in.api_name,
'state': data_in.state}})
# 更新一条面试安排数据
async def update_one_interview(self, db: AsyncIOMotorDatabase, res):
return await self.update_one(db, {'_id': res['_id']}, {
'$set': res})
api_interview_remark = ApiInterviewRemark('interview_remark')

View File

@ -142,12 +142,108 @@ class InterviewDo:
return {'sql': sql,
}
# 主页查询
# 主页初筛查询
def find_interview_home_sql(self):
self.where.update({'interview_stage': 1})
whereStr = ''
findStr = ''
# 主页查询字段
self.find_column = ["uid","age","gender","at_school","name","event_time", "owner_name", "education", "school", "specialty", "interview_name", "mmended_state", "work_list", "work_exp", "job_name"]
self.find_column = ["uid", "age", "gender", "at_school", "name", "event_time", "owner_name", "education",
"school", "specialty", "interview_name", "mmended_state", "work_list", "work_exp",
"notice_state", "job_name", "interview_stage"]
for fstr in self.find_column:
findStr += fstr + ', '
for key, value in self.where.items():
if isinstance(value, str):
whereStr += str(key) + ' = ' + "'" + value + "'" + ' '
continue
whereStr += str(key) + ' = ' + str(value) + ' '
whereStr = whereStr.strip()
findStr = findStr.strip().strip(',')
sql = f"select {findStr} from HR.resumes where {whereStr}"
print(sql)
return {'sql': sql,
}
# 复筛查询
def find_interview_screen_sql(self):
self.where.update({'interview_stage': 2})
whereStr = ''
findStr = ''
# 主页查询字段
self.find_column = ["uid", "age", "gender", "at_school", "name", "event_time", "owner_name", "education",
"school", "specialty", "interview_name", "mmended_state", "work_list", "work_exp",
"notice_state", "job_name", "interview_stage"]
for fstr in self.find_column:
findStr += fstr + ', '
for key, value in self.where.items():
if isinstance(value, str):
whereStr += str(key) + ' = ' + "'" + value + "'" + ' '
continue
whereStr += str(key) + ' = ' + str(value) + ' '
whereStr = whereStr.strip()
findStr = findStr.strip().strip(',')
sql = f"select {findStr} from HR.resumes where {whereStr}"
print(sql)
return {'sql': sql,
}
# 面试阶段查询
def find_interview_exam_sql(self):
self.where.update({'interview_stage': 3})
whereStr = ''
findStr = ''
# 面试阶段查询字段
self.find_column = ["uid", "age", "gender", "at_school", "name", "event_time", "owner_name", "education",
"school", "specialty", "interview_name", "mmended_state", "work_list", "work_exp",
"job_name", "feedback", "interview_round", "interview_state", "interview_stage"]
for fstr in self.find_column:
findStr += fstr + ', '
for key, value in self.where.items():
if isinstance(value, str):
whereStr += str(key) + ' = ' + "'" + value + "'" + ' '
continue
whereStr += str(key) + ' = ' + str(value) + ' '
whereStr = whereStr.strip()
findStr = findStr.strip().strip(',')
sql = f"select {findStr} from HR.resumes where {whereStr}"
print(sql)
return {'sql': sql,
}
# offer阶段查询
def find_interview_offer_sql(self):
self.where.update({'interview_stage': 4})
whereStr = ''
findStr = ''
# 面试阶段查询字段
self.find_column = ["uid", "age", "gender", "at_school", "name", "event_time", "owner_name", "education",
"school", "specialty", "interview_name", "mmended_state", "work_list", "work_exp",
"job_name", "feedback", "interview_round", "interview_state", "interview_stage"]
for fstr in self.find_column:
findStr += fstr + ', '
for key, value in self.where.items():
if isinstance(value, str):
whereStr += str(key) + ' = ' + "'" + value + "'" + ' '
continue
whereStr += str(key) + ' = ' + str(value) + ' '
whereStr = whereStr.strip()
findStr = findStr.strip().strip(',')
sql = f"select {findStr} from HR.resumes where {whereStr}"
print(sql)
return {'sql': sql,
}
# 待入职阶段查询
def find_interview_waite_in_sql(self):
self.where.update({'interview_stage': 5})
whereStr = ''
findStr = ''
# 面试阶段查询字段
self.find_column = ["uid", "age", "gender", "at_school", "name", "event_time", "owner_name", "education",
"school", "specialty", "interview_name", "mmended_state", "work_list", "work_exp",
"job_name", "feedback", "interview_round", "interview_state", "interview_stage", "pass_why",
"pass_text"]
for fstr in self.find_column:
findStr += fstr + ', '
for key, value in self.where.items():
@ -165,4 +261,4 @@ class InterviewDo:
if __name__ == '__main__':
find = re.search(r"\d+\.?\d*", "18岁")
print(len(find.group()))
print(len(find.group()))

View File

@ -27,4 +27,5 @@ from .api_module import *
from .event_list import *
from .interview import *
from .interview_plan import *
from .jobs import *
from .jobs import *
from .interview_remark import *

View File

@ -0,0 +1,22 @@
import time
from datetime import datetime
from pydantic import BaseModel
# 备注信息
class BaseRemark(BaseModel):
remark_id: str = int(time.time()) # 备注的唯一id
remark_from: str # 编写备注的人
comment: str # 备注内容
stage_num: int = 0 # 备注查看权限
remark_time: datetime = datetime.now() # 备注时间
remark_uid: str # 备注的简历uid
remark_stage: int # 备注时简历所处阶段
# 查询备注规则
class FindRemark(BaseModel):
remark_uid: str # 简历uid
where: dict = {} # 其他条件

View File

@ -26,8 +26,6 @@ data_mode = {
"hope_money": 10000,
"feedback": 0,
"interview_round": 0,
"star_time": "",
"end_time": "",
"event_time": "",
"name": "",
"phone": "",
@ -52,8 +50,8 @@ data_mode = {
"age": 0,
"gam": "",
"interview_state": 1,
"graduate_time": "",
"counts": 1
"counts": 1,
"nation": 1,
}