报表导出

This commit is contained in:
Àî×ÚÕñ 2022-09-22 15:58:39 +08:00
parent c540fcab47
commit 550015b588

View File

@ -265,13 +265,40 @@ async def man_gander_form(
# 处理数据 # 处理数据
for interview_data in data.values(): for interview_data in data.values():
i_name = interview_data.get('name', '默认名字') i_name = interview_data.get('name', '')
i_gander = interview_data.get('gander', '') i_gander = interview_data.get('gander', '')
if i_gander == '': if i_gander == '':
gander[''].append(i_name) gander[''].append(i_name)
else: else:
gander[''].append(i_name) gander[''].append(i_name)
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量性别报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
len1 = len(gander[''])
len2 = len(gander[''])
chk_data = []
columns = ['', '']
if len1 >= len2:
for index, i in enumerate(gander['']):
if index >= len2:
add_data = [i, '']
else:
add_data = [i, gander[''][index]]
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
else:
for index, i in enumerate(gander['']):
if index >= len1:
add_data = ['', i]
else:
add_data = [gander[''][index], i]
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': gander, 'data': gander,
'table_data': table_data 'table_data': table_data
@ -313,7 +340,7 @@ async def man_age_form(
# 处理数据 # 处理数据
for interview_data in data.values(): for interview_data in data.values():
i_name = interview_data.get('name', '默认名字') i_name = interview_data.get('name', '')
i_age = interview_data.get('age', 20) i_age = interview_data.get('age', 20)
if i_age <= 29: if i_age <= 29:
age['20-29'].append(i_name) age['20-29'].append(i_name)
@ -325,7 +352,29 @@ async def man_age_form(
age['50-59'].append(i_name) age['50-59'].append(i_name)
else: else:
age['60-100'].append(i_name) age['60-100'].append(i_name)
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量年龄报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['20-29', '30-39', '40-49', '50-59', '60-100']
# 取出最大长度key
max_key = max(columns, key=lambda x: len(age[x]))
for index, i in enumerate(age[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(age[key]):
add_data.append('')
continue
add_data.append(age[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': age, 'data': age,
'table_data': table_data 'table_data': table_data
@ -379,6 +428,29 @@ async def man_education_form(
education['博士'].append(i_name) education['博士'].append(i_name)
else: else:
education['硕士'].append(i_name) education['硕士'].append(i_name)
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量学历报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['大专', '本科', '研究生', '博士', '硕士']
# 取出最大长度key
max_key = max(columns, key=lambda x: len(education[x]))
for index, i in enumerate(education[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(education[key]):
add_data.append('')
continue
add_data.append(education[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': education, 'data': education,
@ -433,6 +505,29 @@ async def man_work_exp_form(
work_exp['10-20'].append(i_name) work_exp['10-20'].append(i_name)
else: else:
work_exp['20-40'].append(i_name) work_exp['20-40'].append(i_name)
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量工作经验报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['0-2', '3-6', '6-10', '10-20', '20-40']
# 取出最大长度key
max_key = max(columns, key=lambda x: len(work_exp[x]))
for index, i in enumerate(work_exp[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(work_exp[key]):
add_data.append('')
continue
add_data.append(work_exp[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': work_exp, 'data': work_exp,
@ -477,6 +572,29 @@ async def man_account_form(
account[i_account].append(i_name) account[i_account].append(i_name)
else: else:
account[i_account] = [i_name] account[i_account] = [i_name]
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量所在地报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(account.keys())
# 取出最大长度key
max_key = max(columns, key=lambda x: len(account[x]))
for index, i in enumerate(account[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(account[key]):
add_data.append('')
continue
add_data.append(account[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': account, 'data': account,
@ -521,6 +639,29 @@ async def man_school_form(
school[i_school].append(i_name) school[i_school].append(i_name)
else: else:
school[i_school] = [i_name] school[i_school] = [i_name]
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量毕业院校报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(school.keys())
# 取出最大长度key
max_key = max(columns, key=lambda x: len(school[x]))
for index, i in enumerate(school[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(school[key]):
add_data.append('')
continue
add_data.append(school[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': school, 'data': school,
@ -568,6 +709,29 @@ async def man_work_for_form(
work_for[i_work_for].append(i_name) work_for[i_work_for].append(i_name)
else: else:
work_for[i_work_for] = [i_name] work_for[i_work_for] = [i_name]
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量就职公司报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(work_for.keys())
# 取出最大长度key
max_key = max(columns, key=lambda x: len(work_for[x]))
for index, i in enumerate(work_for[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(work_for[key]):
add_data.append('')
continue
add_data.append(work_for[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': work_for, 'data': work_for,
@ -622,6 +786,29 @@ async def man_owner_name_form(
owner_name['Boss直聘'].append(i_name) owner_name['Boss直聘'].append(i_name)
else: else:
owner_name['58同城'].append(i_name) owner_name['58同城'].append(i_name)
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量渠道报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(owner_name.keys())
# 取出最大长度key
max_key = max(columns, key=lambda x: len(owner_name[x]))
for index, i in enumerate(owner_name[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(owner_name[key]):
add_data.append('')
continue
add_data.append(owner_name[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': owner_name, 'data': owner_name,
@ -667,6 +854,29 @@ async def man_job_name_form(
job_name[i_job_name].append(i_name) job_name[i_job_name].append(i_name)
else: else:
job_name[i_job_name] = [i_name] job_name[i_job_name] = [i_name]
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量职位报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(job_name.keys())
# 取出最大长度key
max_key = max(columns, key=lambda x: len(job_name[x]))
for index, i in enumerate(job_name[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(job_name[key]):
add_data.append('')
continue
add_data.append(job_name[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': job_name, 'data': job_name,
@ -727,6 +937,29 @@ async def man_school_type_form(
school_type['211'].append(i_name) school_type['211'].append(i_name)
else: else:
school_type['其他'].append(i_name) school_type['其他'].append(i_name)
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量学校类型报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(school_type.keys())
# 取出最大长度key
max_key = max(columns, key=lambda x: len(school_type[x]))
for index, i in enumerate(school_type[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(school_type[key]):
add_data.append('')
continue
add_data.append(school_type[key][index])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': school_type, 'data': school_type,
@ -801,6 +1034,23 @@ async def man_info_form(
"phone": "电话", "phone": "电话",
"work_for": "上家公司" "work_for": "上家公司"
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_data = { res_true_data = {
'data': res_data, 'data': res_data,
'level_list': level_list 'level_list': level_list
@ -894,6 +1144,23 @@ async def every_stage_form(
"wait_work_num": "待入职", "wait_work_num": "待入职",
"work_in_num": "已入职" "work_in_num": "已入职"
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_data = { res_true_data = {
'data': res_data, 'data': res_data,
'level_list': level_list 'level_list': level_list
@ -1061,6 +1328,23 @@ async def hr_works_form(
"wait_work_num": "待入职", "wait_work_num": "待入职",
"work_num": "已入职" "work_num": "已入职"
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data1:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_msg = { res_true_msg = {
'data': res_data1, 'data': res_data1,
'level_list': level_list, 'level_list': level_list,
@ -1195,6 +1479,23 @@ async def stage_success_form(
"chance_4": "offer通过率", "chance_4": "offer通过率",
"chance_5": "待入职通过率" "chance_5": "待入职通过率"
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data1:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_data = { res_true_data = {
'data': res_data1, 'data': res_data1,
'level_list': level_list 'level_list': level_list
@ -1252,6 +1553,20 @@ async def interview_funnel_form(
res_msg['待入职'] += 1 res_msg['待入职'] += 1
if stage >= 7: if stage >= 7:
res_msg['已入职'] += 1 res_msg['已入职'] += 1
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人质量毕业院校报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(res_msg.keys())
add_data = []
for key in columns:
add_data.append(res_msg[key])
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_data = { res_data = {
'data': res_msg, 'data': res_msg,
@ -1291,6 +1606,17 @@ async def interview_start_form(
stage = i_data['interview_stage'] stage = i_data['interview_stage']
if stage >= 1: if stage >= 1:
res_msg['value'] += 1 res_msg['value'] += 1
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '初筛数量' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['初筛数量']
add_data = [res_msg['value']]
chk_data.append(add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_data = { res_data = {
'data': res_msg, 'data': res_msg,
@ -1330,6 +1656,17 @@ async def interview_exam_form(
stage = i_data['interview_stage'] stage = i_data['interview_stage']
if stage >= 3: if stage >= 3:
res_msg['value'] += 1 res_msg['value'] += 1
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '安排面试总次数' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['安排面试总次数']
add_data = [res_msg['value']]
chk_data.append(add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_data = { res_data = {
'data': res_msg, 'data': res_msg,
@ -1369,6 +1706,17 @@ async def interview_wait_in_form(
stage = i_data['interview_stage'] stage = i_data['interview_stage']
if stage >= 5: if stage >= 5:
res_msg['value'] += 1 res_msg['value'] += 1
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '待入职数量' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['待入职数量']
add_data = [res_msg['value']]
chk_data.append(add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_data = { res_data = {
'data': res_msg, 'data': res_msg,
@ -1414,7 +1762,31 @@ async def interview_stage1_owner_form(
for i in data.values(): for i in data.values():
owner_name = owner_dict[i['owner_name']] owner_name = owner_dict[i['owner_name']]
i_data = deepcopy(i) i_data = deepcopy(i)
chk_data[owner_name].append(i_data) chk_data[owner_name].append(i_data['name'])
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '初筛阶段渠道' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data1 = []
columns = list(chk_data.keys())
# 取出最大长度key
max_key = max(columns, key=lambda x: len(chk_data[x]))
for index, i in enumerate(chk_data[max_key]):
add_data = []
for key in columns:
if key == max_key:
add_data.append(i)
continue
if index >= len(chk_data[key]):
add_data.append('')
continue
add_data.append(chk_data[key][index])
true_add_data = deepcopy(add_data)
chk_data1.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data1, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_data = { res_data = {
'data': chk_data, 'data': chk_data,
'table_data': table_data, 'table_data': table_data,
@ -1445,6 +1817,18 @@ async def interview_job_num_form(
res_msg = { res_msg = {
'value': len(value) 'value': len(value)
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '开放中的职位数量' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['开放中的职位数量']
add_data = [res_msg['value']]
chk_data.append(add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
# 简历渠道 # 简历渠道
res_data = { res_data = {
'data': res_msg, 'data': res_msg,
@ -1453,7 +1837,7 @@ async def interview_job_num_form(
return schemas.Msg(code=200, msg='ok', data=res_data) return schemas.Msg(code=200, msg='ok', data=res_data)
# 招聘职位总人数 # 招聘职位总人数
@router.post("/interview_job_need_num_form") @router.post("/interview_job_need_num_form")
async def interview_job_need_num_form( async def interview_job_need_num_form(
request: Request, request: Request,
@ -1476,7 +1860,18 @@ async def interview_job_need_num_form(
res_msg = { res_msg = {
'value': sum(value) 'value': sum(value)
} }
# 简历渠道 # 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '招聘职位总人数' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['招聘职位总人数']
add_data = [res_msg['value']]
chk_data.append(add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_data = { res_data = {
'data': res_msg, 'data': res_msg,
'table_data': table_data 'table_data': table_data
@ -1576,6 +1971,23 @@ async def owner_form(
"offer_chance": "面试通过率", "offer_chance": "面试通过率",
"work_chance": "入职率", "work_chance": "入职率",
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_data = { res_true_data = {
'data': res_data, 'data': res_data,
'level_list': level_list 'level_list': level_list
@ -1687,6 +2099,23 @@ async def owner_effect(
"year_money": "成本", "year_money": "成本",
"one_money": "人均成本", "one_money": "人均成本",
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_msg = { res_true_msg = {
'data': res_data, 'data': res_data,
'level_list': level_list 'level_list': level_list
@ -1744,6 +2173,22 @@ async def interview_trend_form(
res_msg[chk_date]['初筛'] += 1 * count_num res_msg[chk_date]['初筛'] += 1 * count_num
if chk_stage >= 3: if chk_stage >= 3:
res_msg[chk_date]['创建面试的申请数'] += 1 * count_num res_msg[chk_date]['创建面试的申请数'] += 1 * count_num
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['日期', '初筛简历数', '初筛', '创建面试的申请数']
for i, value in res_msg.items():
add_data = [i]
for key in columns[1:]:
add_data.append(value.get(key, ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_data = { res_data = {
'data': res_msg, 'data': res_msg,
'table_data': table_data 'table_data': table_data
@ -1837,6 +2282,23 @@ async def year_trend_form(
"out_self_num": "主动离职", "out_self_num": "主动离职",
"out_must_num": "被动离职" "out_must_num": "被动离职"
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_data = { res_true_data = {
'data': res_data, 'data': res_data,
'level_list': level_list 'level_list': level_list
@ -1959,6 +2421,23 @@ async def year_job_form(
"work_num": "入职人数", "work_num": "入职人数",
"out_num": "离职人数" "out_num": "离职人数"
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data1:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_msg = { res_true_msg = {
'data': res_data1, 'data': res_data1,
'level_list': level_list, 'level_list': level_list,
@ -2021,6 +2500,22 @@ async def year_in_out(
continue continue
value = out_data['value'] value = out_data['value']
res_msg[out_date]['离职'] += value res_msg[out_date]['离职'] += value
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = ['日期', '入职', '离职']
for i, value in res_msg.items():
add_data = [i]
for key in columns[1:]:
add_data.append(value.get(key, ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_data = { res_data = {
'data': res_msg, 'data': res_msg,
'table_data': table_data 'table_data': table_data
@ -2117,6 +2612,23 @@ async def find_worker_form(
'm3': 'm3', 'm3': 'm3',
'm4': 'm4' 'm4': 'm4'
} }
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in res_data:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_true_msg = { res_true_msg = {
'data': res_data, 'data': res_data,
'level_list': level_list 'level_list': level_list
@ -2160,6 +2672,23 @@ async def find_count_info(
level_list.update({ level_list.update({
'count_id': '月份' 'count_id': '月份'
}) })
# 导出报表
if interview.where.get('out_form', '') == 'out':
xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time',
'') + '(包含起止日)'
chk_data = []
columns = list(level_list.values())
key_dict = {v: k for k, v in level_list.items()}
for i in data:
add_data = []
for key in columns:
add_data.append(i.get(key_dict[key], ''))
true_add_data = deepcopy(add_data)
chk_data.append(true_add_data)
chk_df = pd.DataFrame(data=chk_data, columns=columns)
download_xls = Download_xlsx(chk_df, xls_name)
return download_xls
res_msg = { res_msg = {
'data': data, 'data': data,
'level_list': level_list 'level_list': level_list