1.优化新增职位和获取职位

This commit is contained in:
李伟 2022-08-04 09:39:06 +08:00
parent 5a2a2eb316
commit 4ea9ef25e7
2 changed files with 56 additions and 46 deletions

View File

@ -321,20 +321,24 @@ async def event_edit(
job = []
for i in res:
# 获取职位名称
job_list = []
job_list.append(i['job_id'])
job_list = {}
job_list['job_id'] = i['job_id'] # 职位id
# 查询对应职位id入职多少人
sql = f"""
select count(job_id) from HR.resumes where job_id = '{i['job_id']}' and interview_stage = 7
"""
# 候选人总数
sql1 = f"""
select count(job_id) from HR.resumes where job_id = '{i['job_id']}' and interview_stage < 6
"""
hou_num = await ckdb.execute(sql1)
num = await ckdb.execute(sql)
job_list.append(i['job_name'])
job_list.append(i['job_sector'])
job_list.append(i['principal'])
job_list.append(i['owner_name'])
job_list.append(num)
job_list.append(i['job_num'])
job_list['job_name'] = i['job_name'] # 职位名
job_list['principal'] = i['principal'] # 招聘负责人
job_list['job_sector'] = i['job_sector'] # 部门
job_list['job_num'] = i['job_num'] # 目标招聘人数
job_list['now_job_num'] = num # 对应职位的入职人数
job_list['hou_num'] = hou_num # 候选人总数
job.append(job_list)
data = {
'num': num,
@ -600,6 +604,7 @@ async def event_edit(
for i in res:
data_dict = {}
data_dict['name'] = i.get('name')
data_dict['user_id'] = i.get('user_id')
data_dict['email'] = i.get('email')
data_dict['rank'] = i.get('rank') # 用于区分是面试官还是hr
data.append(data_dict)
@ -884,7 +889,7 @@ async def login(
async def reset_password(request: Request,
data_in: schemas.UserRestPassword,
db: AsyncIOMotorDatabase = Depends(get_database),
#current_user: schemas.User = Depends(deps.get_current_user)
# current_user: schemas.User = Depends(deps.get_current_user)
) -> Any:
"""
修改其他人密码
@ -939,23 +944,24 @@ async def all_account(
async def forbid_lojin(request: Request,
data_in: schemas.Get_userid,
db: AsyncIOMotorDatabase = Depends(get_database),
#current_user: schemas.User = Depends(deps.get_current_user)
# current_user: schemas.User = Depends(deps.get_current_user)
) -> schemas.Msg:
"""
禁止/解禁用户登录功能
"""
if data_in.type == 1:
await crud.user.forbid_lojin(db, data_in,1)
await crud.user.forbid_lojin(db, data_in, 1)
elif data_in.type == 0:
await crud.user.forbid_lojin(db, data_in, 0)
return schemas.Msg(code=200, msg='ok', data='')
@router.post("/owner_list")
async def event_list(
request: Request,
data_in: schemas.Getdate,
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:
"""获取基本信息列表"""
try:
@ -971,8 +977,8 @@ async def event_edit(
request: Request,
data_in: schemas.Ownername,
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:
"""新增,删除基本信息"""
await crud.basic_data.update(db, data_in)
return schemas.Msg(code=200, msg='ok', data='')
return schemas.Msg(code=200, msg='ok', data='')

View File

@ -1,5 +1,6 @@
import time
from datetime import datetime
from typing import List
from pydantic import BaseModel
@ -8,11 +9,11 @@ class Job(BaseModel):
job_id: str = None # 职位的唯一id
job_name: str # 职位名称
job_sector: str # 职位部门
job_nature: str # 职位性质
job_nature: int # 职位性质
job_priority: str # 职位优先级
owner_name: str # 渠道
principal: str # 负责人
patronn: str # 协助人
principal: List[dict] # 负责人
patronn: List[dict] # 协助人
start_time: datetime = datetime.now() # 开始招聘时间
end_time: datetime = None # 结束招聘时间
function_type: str # 职能类型
@ -21,25 +22,26 @@ class Job(BaseModel):
auto_repeater: bool # 是否自动转发
cacsi_count: int = None # 面试满意度反馈次数
state: bool = None # 职位招聘状态
job_num: int = None # 招聘人数
education: str # 学历要求
job_num: str = None # 招聘人数
education: int # 学历要求
job_rank: str # 职位级别
work_exp: str # 工作经验
work_exp: int # 工作经验
report_obj: str # 汇报对象
min_money: int # 薪资范围min
max_money: int # 薪资范围max
requirement: str # 需求描述
hr_name: List[dict] # 用人经理
interview: List[dict] # 面试官
class Jobs(BaseModel):
job_id: str = None # 职位的唯一id
job_name: str = None # 职位名称
job_sector: str = None # 职位部门
job_nature: str = None # 职位性质
job_nature: int = None # 职位性质
job_priority: str = None # 职位优先级
owner_name: str = None # 渠道
principal: str = None # 负责人
patronn: str = None # 协助人
principal: List[dict] = None # 负责人
patronn: List[dict] = None # 协助人
start_time: datetime = None # 开始招聘时间
end_time: datetime = None # 结束招聘时间
function_type: str = None # 职能类型
@ -48,42 +50,44 @@ class Jobs(BaseModel):
auto_repeater: bool = None # 是否自动转发
cacsi_count: int = None # 面试满意度反馈次数
state: bool = None # 职位招聘状态
job_num: int = None # 目标招聘人数
job_num: str = None # 目标招聘人数
now_job_num: int = None # 实际招聘人数
education: str = None # 学历要求
education: int = None # 学历要求
job_rank: str = None # 职位级别
work_exp: str = None # 工作经验
work_exp: int = None # 工作经验
report_obj: str = None # 汇报对象
min_money: int = None # 薪资范围min
max_money: int = None # 薪资范围max
requirement: str = None # 需求描述
hr_name: List[dict] =None # 用人经理
interview: List[str] =None # 面试官
class Ins_Job(BaseModel):
job_id: str = str(int(time.time())) # 职位的唯一id
job_name: str # 职位名称
job_sector: str # 职位部门
job_nature: str # 职位性质
job_priority: str # 职位优先级
owner_name: str # 渠道
principal: str # 负责人
patronn: str # 协助人
start_time: datetime = datetime.now() # 开始招聘时间
job_nature: int # 职位性质
job_priority: str =None # 职位优先级
owner_name: str =None # 渠道
principal: List[dict] # 负责人
patronn: List[dict] # 协助人
start_time: str # 开始招聘时间
function_type: str # 职能类型
filtering_rules: bool # 是否使用筛选规则
hiring_needs: bool # 是否关联招聘需求
auto_repeater: bool # 是否自动转发
filtering_rules: bool=None # 是否使用筛选规则
hiring_needs: bool =None # 是否关联招聘需求
auto_repeater: bool =None # 是否自动转发
cacsi_count: int = 0 # 面试满意度反馈次数
state: bool = True # 职位招聘状态
job_num: int = None # 目标招聘人数
now_job_num: int = None # 实际招聘人数
education: str # 学历要求
state: bool # 职位招聘状态
job_num: str # 目标招聘人数
now_job_num: int = 0 # 实际招聘人数
education: int # 学历要求
job_rank: str # 职位级别
work_exp: str # 工作经验
report_obj: str # 汇报对象
work_exp: int # 工作经验
report_obj: str =None # 汇报对象
min_money: int # 薪资范围min
max_money: int # 薪资范围max
requirement: str # 需求描述
hr_name: List[dict] # 用人经理
interview: List[dict] # 面试官
end_time: str #结束招聘时间