备注等接口
This commit is contained in:
parent
6391e73314
commit
baddcf7b36
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
32
crud/crud_interview_remark.py
Normal file
32
crud/crud_interview_remark.py
Normal 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')
|
@ -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()))
|
||||
|
@ -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 *
|
22
schemas/interview_remark.py
Normal file
22
schemas/interview_remark.py
Normal 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 = {} # 其他条件
|
||||
|
@ -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,
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user