报表
This commit is contained in:
parent
1f4e4d26c4
commit
5ce9ed5cdc
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user