1.确认进入面试阶段

2.更改简历阶段
3.存面试数据到mongodb
This commit is contained in:
李伟 2022-07-21 14:56:01 +08:00
parent 88173b3988
commit 4a0931e5f0
7 changed files with 139 additions and 2 deletions

View File

@ -626,3 +626,52 @@ async def edit(
"""编辑看板名""" """编辑看板名"""
await crud.dashboard.update_one(db, {'_id': data_in.dashboard_id}, {'$set': {'name': data_in.new_name}}) 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=0, msg='ok', data='ok')
@router.post("/notarize")
async def event_edit(
request: Request,
data_in: schemas.Notarize,
ckdb: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database)
) -> schemas.Msg:
"""简历确认进入面试阶段"""
sql = f"""
ALTER table HR.resumes update interview_state = 2,hr_name = '{data_in.hr_name}',hr_id = '{data_in.hr_id}',interview_name = '{data_in.interview_name}',interview_id = '{data_in.interview_id}' WHERE uid = '{data_in.uid}'
"""
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}'
"""
df = await ckdb.query_dataframe(find_sql)
# 存份面试数据到mongodb
await crud.interview_record.insert_record(db, schemas.interview_record(uid=df['uid'][0], # 唯一id
name=df['name'][0], # 求职者姓名
interview_name=df['interview_name'][0],
# 面试官姓名
hr_name=df['hr_name'][0], # hr姓名
star_time=df['star_time'][0], # 开始面试时间
interview_sign=0, # 签到状态
job_id=df['job_id'][0], # 我们自己招聘的职位id
job_names=df['job_names'][0] # 我们自己招聘的职位名
))
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)
):
"""更改简历阶段"""
if data_in.stage == 1: # 初筛
sql = f"""
ALTER table HR.resumes update interview_stage = 1,job_id = '{data_in.data['job_id']}',job_names = '{data_in.data['job_names']}' WHERE uid = '{data_in.uid}'
"""
else:
sql = f"""
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')

View File

@ -26,3 +26,4 @@ from .crud_interview_remark import api_interview_remark
from .crud_interview_modes import api_interview_modes from .crud_interview_modes import api_interview_modes
from .crud_email_record import email_record from .crud_email_record import email_record
from .crud_operate_log import operate_log from .crud_operate_log import operate_log
from .crud_interview_record import interview_record

View File

@ -0,0 +1,39 @@
from motor.motor_asyncio import AsyncIOMotorDatabase
import schemas
from crud.base import CRUDBase
__all__ = 'interview_record',
class CRUDJobs(CRUDBase):
# 获取所有面试数据
async def all_field(self, db: AsyncIOMotorDatabase):
return await self.find_many(db, {}, {'_id': 0})
# 获取所有对应条件面试数据
# async def all_fields(self, db: AsyncIOMotorDatabase, data_in: schemas.Jobs):
# if data_in == None:
# return await self.find_many(db, {}, {'_id': 0})
# else:
# where = {}
# data_dict = data_in.dict()
# for k, v in data_dict.items():
# if v != None:
# where[k] = v
# return await self.find_many(db, where, {'_id': 0})
# async def update_job(self, db: AsyncIOMotorDatabase, data_in: schemas.Jobs):
# update = {}
# data_dict = data_in.dict()
# for k, v in data_dict.items():
# if v != None and k != 'job_id':
# update[k] = v
# await self.update_one(db, {'job_id': data_in.job_id}, {'$set': update})
# 插入一条新的面试数据数据
async def insert_record(self, db: AsyncIOMotorDatabase, data_in: schemas.interview_record):
await self.insert_one(db, data_in.dict())
interview_record = CRUDJobs('interview_record')

View File

@ -185,3 +185,23 @@ api:/api/v1/itr/edit
参数: 参数:
dashboard_id: str dashboard_id: str
new_name: str new_name: str
#简历确认进入面试阶段
api:/api/v1/itr/notarize
请求方式post
参数:
uid: str # 面试者简历在CK中的唯一标识
hr_name: str
hr_id: str
interview_name: str
interview_id: str
#编辑看板名
api:/api/v1/itr/alter
请求方式post
参数:
stage: int # 面试阶段
uid: str # 面试者简历在CK中的唯一标识
data: Dict # 更新的数据

View File

@ -32,3 +32,4 @@ from .interview_remark import *
from .email_record import * from .email_record import *
from .operate_log import * from .operate_log import *
from .interview_modes import * from .interview_modes import *
from .interview_record import *

View File

@ -35,7 +35,7 @@ class get_uid(BaseModel):
class Entry(BaseModel): class Entry(BaseModel):
uid: str # 面试者简历在CK中的唯一标识 uid: str # 面试者简历在CK中的唯一标识
interview_stage: int # 修改入职状态 interview_stage: int # 修改入职状态
job_id:str #招聘职位的id job_id: str # 招聘职位的id
class Email_str(BaseModel): class Email_str(BaseModel):
@ -59,3 +59,15 @@ class user_id(BaseModel):
name: str # 求职者姓名 name: str # 求职者姓名
class Stage(BaseModel):
stage: int # 面试阶段
uid: str # 面试者简历在CK中的唯一标识
data: Dict # 更新的数据
class Notarize(BaseModel):
uid: str # 面试者简历在CK中的唯一标识
hr_name: str
hr_id: str
interview_name: str
interview_id: str

View File

@ -0,0 +1,15 @@
from datetime import datetime
from typing import List, Union, Dict
from pydantic import BaseModel
from typing import Optional
class interview_record(BaseModel):
uid: str # 简历的唯一id
name: str # 求职者名字
interview_name: str # 面试官名字
hr_name: str # 人事名字
star_time: str # 面试开始时间
interview_sign: int # 是否签到
job_id: str # 我们自己招聘的职位id
job_names: str # 我们自己招聘的职位名