From 9b943ec14bf5f00bdb2453205079c2d54323619e 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 16:24:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=AF=BC=E5=87=BA1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/forms.py | 149 ++++++++++++++-------------------- models/interview_zsgc.py | 5 ++ 2 files changed, 65 insertions(+), 89 deletions(-) diff --git a/api/api_v1/endpoints/forms.py b/api/api_v1/endpoints/forms.py index bce66af..4801e7c 100644 --- a/api/api_v1/endpoints/forms.py +++ b/api/api_v1/endpoints/forms.py @@ -273,9 +273,8 @@ async def man_gander_form( gander['女'].append(i_name) # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人质量性别报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '候选人质量性别' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') len1 = len(gander['男']) len2 = len(gander['女']) chk_data = [] @@ -353,9 +352,8 @@ async def man_age_form( 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', - '') + '(包含起止日)' + if interview.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 @@ -429,9 +427,8 @@ async def man_education_form( else: education['硕士'].append(i_name) # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人质量学历报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '候选人质量学历' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = ['大专', '本科', '研究生', '博士', '硕士'] # 取出最大长度key @@ -506,9 +503,8 @@ async def man_work_exp_form( 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', - '') + '(包含起止日)' + if interview.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 @@ -573,9 +569,8 @@ async def man_account_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '候选人质量所在地' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = list(account.keys()) # 取出最大长度key @@ -640,9 +635,8 @@ async def man_school_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '候选人质量毕业院校' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = list(school.keys()) # 取出最大长度key @@ -710,9 +704,8 @@ async def man_work_for_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '候选人质量就职公司' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = list(work_for.keys()) # 取出最大长度key @@ -787,9 +780,8 @@ async def man_owner_name_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '候选人质量渠道' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = list(owner_name.keys()) # 取出最大长度key @@ -855,9 +847,8 @@ async def man_job_name_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '候选人质量职位' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = list(job_name.keys()) # 取出最大长度key @@ -938,9 +929,8 @@ async def man_school_type_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '候选人质量学校类型' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = list(school_type.keys()) # 取出最大长度key @@ -1035,9 +1025,8 @@ async def man_info_form( "work_for": "上家公司" } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} @@ -1145,9 +1134,8 @@ async def every_stage_form( "work_in_num": "已入职" } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} @@ -1329,9 +1317,8 @@ async def hr_works_form( "work_num": "已入职" } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = 'hr工作量' + 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()} @@ -1480,9 +1467,8 @@ async def stage_success_form( "chance_5": "待入职通过率" } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} @@ -1554,9 +1540,8 @@ async def interview_funnel_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '招聘漏斗' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = list(res_msg.keys()) add_data = [] @@ -1607,9 +1592,8 @@ async def interview_start_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '初筛数量' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = ['初筛数量'] add_data = [res_msg['value']] @@ -1657,11 +1641,10 @@ async def interview_exam_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '面试数量' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] - columns = ['安排面试总次数'] + columns = ['面试数量'] add_data = [res_msg['value']] chk_data.append(add_data) chk_df = pd.DataFrame(data=chk_data, columns=columns) @@ -1707,9 +1690,8 @@ async def interview_wait_in_form( 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '待入职数量' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = ['待入职数量'] add_data = [res_msg['value']] @@ -1764,9 +1746,8 @@ async def interview_stage1_owner_form( i_data = deepcopy(i) 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', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '初筛阶段渠道' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data1 = [] columns = list(chk_data.keys()) # 取出最大长度key @@ -1818,9 +1799,8 @@ async def interview_job_num_form( 'value': len(value) } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '开放中的职位数量' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '开放中的职位数量' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = ['开放中的职位数量'] add_data = [res_msg['value']] @@ -1861,9 +1841,8 @@ async def interview_job_need_num_form( 'value': sum(value) } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '招聘职位总人数' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.out_form == 'out': + xls_name = '招聘职位总人数' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', '') chk_data = [] columns = ['招聘职位总人数'] add_data = [res_msg['value']] @@ -1972,9 +1951,8 @@ async def owner_form( "work_chance": "入职率", } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} @@ -2100,9 +2078,8 @@ async def owner_effect( "one_money": "人均成本", } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} @@ -2174,9 +2151,8 @@ async def interview_trend_form( 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', - '') + '(包含起止日)' + if interview.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(): @@ -2205,7 +2181,7 @@ async def year_trend_form( db: AsyncIOMotorDatabase = Depends(get_database), current_user: schemas.UserDB = Depends(deps.get_current_user) ) -> schemas.Msg: - """ 招聘趋势分析报表 """ + """ 年度招聘趋势报表 """ await interview.init() res = interview.get_year_form_sql() sql = res['sql'] @@ -2283,9 +2259,8 @@ async def year_trend_form( "out_must_num": "被动离职" } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} @@ -2422,9 +2397,8 @@ async def year_job_form( "out_num": "离职人数" } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} @@ -2501,9 +2475,8 @@ async def year_in_out( 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', - '') + '(包含起止日)' + if interview.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(): @@ -2613,9 +2586,8 @@ async def find_worker_form( 'm4': 'm4' } # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} @@ -2673,9 +2645,8 @@ async def find_count_info( 'count_id': '月份' }) # 导出报表 - if interview.where.get('out_form', '') == 'out': - xls_name = '候选人明细报表' + interview.where.get('start_time', '') + '~' + interview.where.get('start_time', - '') + '(包含起止日)' + if interview.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()} diff --git a/models/interview_zsgc.py b/models/interview_zsgc.py index 25c9512..56051cf 100644 --- a/models/interview_zsgc.py +++ b/models/interview_zsgc.py @@ -31,11 +31,16 @@ class InterviewDo: self.data_in = {} self.where = {} self.data = {} + self.out_form = '' async def init(self, *args, **kwargs): self.find_column = self.query_in.find_column self.data_in = self.query_in.data_in self.where = self.query_in.interview_query + if 'out_form' in self.where: + out_form = self.where.pop('out_form') + self.out_form = out_form + self.data = self.query_in.data def handler_filts(self, where):