This commit is contained in:
Àî×ÚÕñ 2022-09-01 15:52:53 +08:00
parent 1f4e4d26c4
commit 5ce9ed5cdc

View File

@ -220,23 +220,32 @@ async def man_mass_form(
async def man_gander_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量性别报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 性别
gander = {
'': [],
'': []
}
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -246,7 +255,11 @@ async def man_gander_form(
else:
gander[''].append(i_name)
return schemas.Msg(code=200, msg='ok', data=gander)
res_msg = {
'data': gander,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量年龄报表
@ -254,14 +267,15 @@ async def man_gander_form(
async def man_age_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量年龄报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 年龄
age = {
'20-29': [],
@ -274,6 +288,15 @@ async def man_age_form(
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -289,7 +312,11 @@ async def man_age_form(
else:
age['60-100'].append(i_name)
return schemas.Msg(code=200, msg='ok', data=age)
res_msg = {
'data': age,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量学历报表
@ -297,14 +324,15 @@ async def man_age_form(
async def man_education_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量学历报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 学历
education = {
'大专': [],
@ -317,6 +345,15 @@ async def man_education_form(
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -332,7 +369,11 @@ async def man_education_form(
else:
education['硕士'].append(i_name)
return schemas.Msg(code=200, msg='ok', data=education)
res_msg = {
'data': education,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量工作经验报表
@ -340,14 +381,15 @@ async def man_education_form(
async def man_work_exp_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量工作经验报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 工作经验
work_exp = {
'0-2': [],
@ -359,6 +401,15 @@ async def man_work_exp_form(
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -374,7 +425,11 @@ async def man_work_exp_form(
else:
work_exp['20-40'].append(i_name)
return schemas.Msg(code=200, msg='ok', data=work_exp)
res_msg = {
'data': work_exp,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量所在地报表
@ -382,20 +437,30 @@ async def man_work_exp_form(
async def man_account_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量所在地报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 所在地
account = {
}
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -406,7 +471,11 @@ async def man_account_form(
else:
account[i_account] = [i_name]
return schemas.Msg(code=200, msg='ok', data=account)
res_msg = {
'data': account,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量毕业院校报表
@ -414,20 +483,30 @@ async def man_account_form(
async def man_school_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量毕业院校报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 毕业院校
school = {
}
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -438,7 +517,11 @@ async def man_school_form(
else:
school[i_school] = [i_name]
return schemas.Msg(code=200, msg='ok', data=school)
res_msg = {
'data': school,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量就职公司报表
@ -446,20 +529,30 @@ async def man_school_form(
async def man_work_for_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量就职公司报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 就职公司
work_for = {
}
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -473,7 +566,11 @@ async def man_work_for_form(
else:
work_for[i_work_for] = [i_name]
return schemas.Msg(code=200, msg='ok', data=work_for)
res_msg = {
'data': work_for,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量渠道报表
@ -481,14 +578,15 @@ async def man_work_for_form(
async def man_owner_name_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量渠道报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 渠道
owner_name = {
'前程无忧': [],
@ -500,6 +598,15 @@ async def man_owner_name_form(
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -515,7 +622,11 @@ async def man_owner_name_form(
else:
owner_name['58同城'].append(i_name)
return schemas.Msg(code=200, msg='ok', data=owner_name)
res_msg = {
'data': owner_name,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量职位报表
@ -523,14 +634,15 @@ async def man_owner_name_form(
async def man_job_name_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量职位报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
# 职位
job_name = {
@ -538,6 +650,15 @@ async def man_job_name_form(
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -548,7 +669,11 @@ async def man_job_name_form(
else:
job_name[i_job_name] = [i_name]
return schemas.Msg(code=200, msg='ok', data=job_name)
res_msg = {
'data': job_name,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人质量学校类型报表
@ -556,14 +681,15 @@ async def man_job_name_form(
async def man_school_type_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人质量学校类型报表 """
await interview.init()
res = interview.get_man_mass_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
school_985 = ['清华大学', '北京大学', '中国人民大学', '北京理工大学', '北京航空航天大学', '中央民族大学', '北京师范大学',
'中国农业大学', '天津大学', '南开大学', '复旦大学', '上海交通大学', '同济大学', '华东师范大学', '重庆大学', '四川大学',
'电子科技大学', '湖南大学', '国防科技大学', '中南大学', '厦门大学']
@ -583,6 +709,15 @@ async def man_school_type_form(
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 处理数据
for interview_data in data.values():
i_name = interview_data.get('name', '默认名字')
@ -596,7 +731,11 @@ async def man_school_type_form(
else:
school_type['其他'].append(i_name)
return schemas.Msg(code=200, msg='ok', data=school_type)
res_msg = {
'data': school_type,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
# 候选人明细报表
@ -604,16 +743,27 @@ async def man_school_type_form(
async def man_info_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 候选人明细报表 """
await interview.init()
res = interview.get_man_info_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
for key, interview_data in data.items():
i_work_list = interview_data.get('work_list', '')
if i_work_list:
@ -656,10 +806,14 @@ async def man_info_form(
"phone": "电话",
"work_for": "上家公司"
}
res_msg = {
res_data = {
'data': res_data,
'level_list': level_list
}
res_msg = {
'data': res_data,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_msg)
@ -699,6 +853,16 @@ async def every_stage_form(
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
for ck_data in data.values():
# 职位id不存在跳过
if ck_data['job_id'] not in job_id_to_name:
@ -716,7 +880,11 @@ async def every_stage_form(
elif stage == 5:
res_msg[ck_job_name]['待入职'] += 1
return schemas.Msg(code=200, msg='ok', data=res_msg)
res_data = {
'data': res_msg,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_data)
# hr工作量报表
@ -735,6 +903,16 @@ async def hr_works_form(
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
res_msg = {}
job_name_sector = {}
hr_names = [] # 查询面试数据
@ -832,7 +1010,11 @@ async def hr_works_form(
'msg': res_msg,
'job_sector': job_name_sector
}
return schemas.Msg(code=200, msg='ok', data=res_data)
res_true_data = {
'data': res_data,
'table_data':table_data
}
return schemas.Msg(code=200, msg='ok', data=res_true_data)
# 职位阶段通过率报表
@ -871,6 +1053,16 @@ async def stage_success_form(
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
for ck_data in data.values():
# 职位id不存在跳过
if ck_data['job_id'] not in job_id_to_name:
@ -924,7 +1116,11 @@ async def stage_success_form(
'offer通过率': chance_4,
'待入职通过率': chance_5
})
return schemas.Msg(code=200, msg='ok', data=res_msg)
res_data = {
'data': res_msg,
'table_data': table_data,
}
return schemas.Msg(code=200, msg='ok', data=res_data)
# 招聘漏斗报表
@ -933,6 +1129,7 @@ async def interview_funnel_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 招聘漏斗报表 """
@ -942,6 +1139,16 @@ async def interview_funnel_form(
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
res_msg = {
'初筛': 0,
'复筛': 0,
@ -965,7 +1172,11 @@ async def interview_funnel_form(
if stage >= 7:
res_msg['已入职'] += 1
return schemas.Msg(code=200, msg='ok', data=res_msg)
res_data = {
'data': res_msg,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_data)
# 渠道质量报表
@ -973,16 +1184,27 @@ async def interview_funnel_form(
async def owner_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
db: CKDrive = Depends(get_ck_db),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 渠道质量报表 """
await interview.init()
res = interview.get_owner_form_sql()
sql = res['sql']
data = await db.execute(sql)
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 简历渠道
owner_dict = {1: '前程无忧', 2: '人才库', 3: '智联招聘', 4: 'Boss直聘', 5: '58同城', 6: '拉勾'}
chk_data = {
@ -1038,8 +1260,11 @@ async def owner_form(
res_msg[key]['work_num'] = work_num
res_msg[key]['offer_chance'] = offer_chance
res_msg[key]['work_chance'] = work_chance
return schemas.Msg(code=200, msg='ok', data=res_msg)
res_data = {
'data': res_msg,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_data)
# 渠道质量报表
@ -1058,6 +1283,16 @@ async def owner_effect(
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 简历渠道
owner_dict = {1: '前程无忧', 2: '人才库', 3: '智联招聘', 4: 'Boss直聘', 5: '58同城', 6: '拉勾'}
chk_data = {
@ -1113,7 +1348,11 @@ async def owner_effect(
'res_msg': res_msg,
'owner_info': owner_info
}
return schemas.Msg(code=200, msg='ok', data=res_data)
res_true_data = {
'data': res_data,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_true_data)
# 招聘趋势分析报表
@ -1122,6 +1361,7 @@ async def interview_trend_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 招聘趋势分析报表 """
@ -1131,6 +1371,16 @@ async def interview_trend_form(
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
sdate = res['sdate']
edate = res['edate']
days = get_every_days(sdate, edate)
@ -1153,8 +1403,11 @@ async def interview_trend_form(
res_msg[chk_date]['初筛'] += 1 * count_num
if chk_stage >= 3:
res_msg[chk_date]['创建面试的申请数'] += 1 * count_num
return schemas.Msg(code=200, msg='ok', data=res_msg)
res_data = {
'data': res_msg,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_data)
# 年度招聘趋势报表
@ -1163,6 +1416,7 @@ async def year_trend_form(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 招聘趋势分析报表 """
@ -1172,6 +1426,16 @@ async def year_trend_form(
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
sdate = res['sdate']
edate = res['edate']
months = get_every_months(sdate, edate)
@ -1216,8 +1480,11 @@ async def year_trend_form(
if chk_stage == 10:
res_msg[chk_date]['离职人数'] += 1 * count_num
res_msg[chk_date]['被动离职'] += 1 * count_num
return schemas.Msg(code=200, msg='ok', data=res_msg)
res_data = {
'data': res_msg,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_data)
# 年度岗位招聘数据报表
@ -1236,6 +1503,16 @@ async def year_job_form(
data = await ck_db.execute(sql)
if not data:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
# 取出job和部门
job_ids = set([j_data['job_id'] for j_data in data.values()])
job_ids = list(job_ids)
@ -1293,7 +1570,11 @@ async def year_job_form(
'res_msg': res_msg,
'job_data': job_dict
}
return schemas.Msg(code=200, msg='ok', data=res_data)
res_true_data = {
'data': res_data,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_true_data)
# 年度入离职数据报表
@ -1302,6 +1583,7 @@ async def year_in_out(
request: Request,
interview: InterviewDo = Depends(InterviewDo),
ck_db: CKDrive = Depends(get_ck_db),
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
""" 年度入离职数据报表 """
@ -1313,6 +1595,16 @@ async def year_in_out(
data_out = await ck_db.execute(sql_out)
if not data_in and data_out:
return schemas.Msg(code=-9, msg='无数据', data=None)
# 获取报表相关参数
table_id = interview.data_in.get('table_id', '')
if not table_id:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
if not table_data:
return schemas.Msg(code=-9, msg='报表数据错误', data=None)
sdate = res['sdate']
edate = res['edate']
months = get_every_months(sdate, edate)
@ -1339,5 +1631,8 @@ async def year_in_out(
continue
value = out_data['value']
res_msg['离职'][out_date] += value
return schemas.Msg(code=200, msg='ok', data=res_msg)
res_data = {
'data': res_msg,
'table_data': table_data
}
return schemas.Msg(code=200, msg='ok', data=res_data)