From 550015b5880bb1ff6db68667a0568cbf4891ceb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=80=C3=AE=C3=97=C3=9A=C3=95=C3=B1?= Date: Thu, 22 Sep 2022 15:58:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/forms.py | 541 +++++++++++++++++++++++++++++++++- 1 file changed, 535 insertions(+), 6 deletions(-) diff --git a/api/api_v1/endpoints/forms.py b/api/api_v1/endpoints/forms.py index a09df79..bce66af 100644 --- a/api/api_v1/endpoints/forms.py +++ b/api/api_v1/endpoints/forms.py @@ -265,13 +265,40 @@ async def man_gander_form( # 处理数据 for interview_data in data.values(): - i_name = interview_data.get('name', '默认名字') + i_name = interview_data.get('name', '') i_gander = interview_data.get('gander', '男') if i_gander == '男': gander['男'].append(i_name) else: 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 = { 'data': gander, 'table_data': table_data @@ -313,7 +340,7 @@ async def man_age_form( # 处理数据 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) if i_age <= 29: age['20-29'].append(i_name) @@ -325,7 +352,29 @@ async def man_age_form( age['50-59'].append(i_name) else: 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 = { 'data': age, 'table_data': table_data @@ -379,6 +428,29 @@ async def man_education_form( education['博士'].append(i_name) else: 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 = { 'data': education, @@ -433,6 +505,29 @@ async def man_work_exp_form( work_exp['10-20'].append(i_name) else: 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 = { 'data': work_exp, @@ -477,6 +572,29 @@ async def man_account_form( account[i_account].append(i_name) else: 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 = { 'data': account, @@ -521,6 +639,29 @@ async def man_school_form( school[i_school].append(i_name) else: 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 = { 'data': school, @@ -568,6 +709,29 @@ async def man_work_for_form( work_for[i_work_for].append(i_name) else: 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 = { 'data': work_for, @@ -622,6 +786,29 @@ async def man_owner_name_form( owner_name['Boss直聘'].append(i_name) else: 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 = { 'data': owner_name, @@ -667,6 +854,29 @@ async def man_job_name_form( job_name[i_job_name].append(i_name) else: 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 = { 'data': job_name, @@ -727,6 +937,29 @@ async def man_school_type_form( school_type['211'].append(i_name) else: 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 = { 'data': school_type, @@ -801,6 +1034,23 @@ async def man_info_form( "phone": "电话", "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 = { 'data': res_data, 'level_list': level_list @@ -894,6 +1144,23 @@ async def every_stage_form( "wait_work_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 = { 'data': res_data, 'level_list': level_list @@ -1061,6 +1328,23 @@ async def hr_works_form( "wait_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 = { 'data': res_data1, 'level_list': level_list, @@ -1195,6 +1479,23 @@ async def stage_success_form( "chance_4": "offer通过率", "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 = { 'data': res_data1, 'level_list': level_list @@ -1252,6 +1553,20 @@ async def interview_funnel_form( res_msg['待入职'] += 1 if stage >= 7: 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 = { 'data': res_msg, @@ -1291,6 +1606,17 @@ async def interview_start_form( stage = i_data['interview_stage'] if stage >= 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 = { 'data': res_msg, @@ -1330,6 +1656,17 @@ async def interview_exam_form( stage = i_data['interview_stage'] if stage >= 3: 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 = { 'data': res_msg, @@ -1369,6 +1706,17 @@ async def interview_wait_in_form( stage = i_data['interview_stage'] if stage >= 5: 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 = { 'data': res_msg, @@ -1414,7 +1762,31 @@ async def interview_stage1_owner_form( for i in data.values(): owner_name = owner_dict[i['owner_name']] 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 = { 'data': chk_data, 'table_data': table_data, @@ -1445,6 +1817,18 @@ async def interview_job_num_form( res_msg = { '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 = { 'data': res_msg, @@ -1453,7 +1837,7 @@ async def interview_job_num_form( return schemas.Msg(code=200, msg='ok', data=res_data) -# 招聘职位总人数数 +# 招聘职位总人数 @router.post("/interview_job_need_num_form") async def interview_job_need_num_form( request: Request, @@ -1476,7 +1860,18 @@ async def interview_job_need_num_form( res_msg = { '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 = { 'data': res_msg, 'table_data': table_data @@ -1576,6 +1971,23 @@ async def owner_form( "offer_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 = { 'data': res_data, 'level_list': level_list @@ -1687,6 +2099,23 @@ async def owner_effect( "year_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 = { 'data': res_data, 'level_list': level_list @@ -1744,6 +2173,22 @@ async def interview_trend_form( res_msg[chk_date]['初筛'] += 1 * count_num if chk_stage >= 3: 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 = { 'data': res_msg, 'table_data': table_data @@ -1837,6 +2282,23 @@ async def year_trend_form( "out_self_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 = { 'data': res_data, 'level_list': level_list @@ -1959,6 +2421,23 @@ async def year_job_form( "work_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 = { 'data': res_data1, 'level_list': level_list, @@ -2021,6 +2500,22 @@ async def year_in_out( continue value = out_data['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 = { 'data': res_msg, 'table_data': table_data @@ -2117,6 +2612,23 @@ async def find_worker_form( 'm3': 'm3', '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 = { 'data': res_data, 'level_list': level_list @@ -2160,6 +2672,23 @@ async def find_count_info( level_list.update({ '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 = { 'data': data, 'level_list': level_list