1.确认进入面试阶段
2.更改简历阶段 3.存面试数据到mongodb
This commit is contained in:
parent
88173b3988
commit
4a0931e5f0
@ -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')
|
||||||
|
@ -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
|
||||||
|
39
crud/crud_interview_record.py
Normal file
39
crud/crud_interview_record.py
Normal 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')
|
@ -184,4 +184,24 @@ api:/api/v1/itr/edit
|
|||||||
请求方式:post
|
请求方式:post
|
||||||
参数:
|
参数:
|
||||||
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 # 更新的数据
|
||||||
|
|
||||||
|
|
||||||
|
@ -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 *
|
||||||
|
@ -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
|
||||||
|
15
schemas/interview_record.py
Normal file
15
schemas/interview_record.py
Normal 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 # 我们自己招聘的职位名
|
Loading…
Reference in New Issue
Block a user