diff --git a/api/api_v1/endpoints/forms.py b/api/api_v1/endpoints/forms.py index 7ad8936..08b903d 100644 --- a/api/api_v1/endpoints/forms.py +++ b/api/api_v1/endpoints/forms.py @@ -931,42 +931,42 @@ async def hr_works_form( if ck_job_id not in job_ids: job_ids.append(ck_job_id) res_msg[job_name] = {hr_name: { - '初筛': 0, - '复筛': 0, - '面试': 0, - '创建面试': 0, - '面试签到': 0, - 'offer': 0, - '待入职': 0, - '已入职': 0 + 'start_num': 0, + 'screen_num': 0, + 'exam_num': 0, + 'exam_set_num': 0, + 'exam_ok_num': 0, + 'offer_num': 0, + 'wait_work_num': 0, + 'work_num': 0 }} # 已录入职位 else: if hr_name not in res_msg[job_name]: res_msg[job_name][hr_name] = { - '初筛': 0, - '复筛': 0, - '面试': 0, - '创建面试': 0, - '面试签到': 0, - 'offer': 0, - '待入职': 0, - '已入职': 0 + 'start_num': 0, + 'screen_num': 0, + 'exam_num': 0, + 'exam_set_num': 0, + 'exam_ok_num': 0, + 'offer_num': 0, + 'wait_work_num': 0, + 'work_num': 0 } stage = ck_data['interview_stage'] if stage >= 1: - res_msg[job_name][hr_name]['初筛'] += 1 + res_msg[job_name][hr_name]['start_num'] += 1 if stage >= 2: - res_msg[job_name][hr_name]['复筛'] += 1 + res_msg[job_name][hr_name]['screen_num'] += 1 if stage >= 3: - res_msg[job_name][hr_name]['面试'] += 1 + res_msg[job_name][hr_name]['exam_num'] += 1 if stage >= 4: - res_msg[job_name][hr_name]['offer'] += 1 + res_msg[job_name][hr_name]['offer_num'] += 1 if stage >= 5: - res_msg[job_name][hr_name]['待入职'] += 1 + res_msg[job_name][hr_name]['wait_work_num'] += 1 if stage >= 7: - res_msg[job_name][hr_name]['已入职'] += 1 + res_msg[job_name][hr_name]['work_num'] += 1 interview_records = await crud.interview_record.find_job_some(db, hr_names) for record in interview_records: record_job_name = record['job_names'] @@ -975,28 +975,28 @@ async def hr_works_form( if record_job_name in res_msg: if record_hr_name not in res_msg[record_job_name]: res_msg[record_job_name][record_hr_name] = { - '初筛': 0, - '复筛': 0, - '面试': 0, - '创建面试': 0, - '面试签到': 0, - 'offer': 0, - '待入职': 0, - '已入职': 0 + 'start_num': 0, + 'screen_num': 0, + 'exam_num': 0, + 'exam_set_num': 0, + 'exam_ok_num': 0, + 'offer_num': 0, + 'wait_work_num': 0, + 'work_num': 0 } - res_msg[record_job_name][record_hr_name]['创建面试'] += 1 + res_msg[record_job_name][record_hr_name]['exam_set_num'] += 1 if record_interview_sign: - res_msg[record_job_name][record_hr_name]['面试签到'] += 1 + res_msg[record_job_name][record_hr_name]['exam_ok_num'] += 1 for job_name1, msg_data in res_msg.items(): count_data = { - '初筛': 0, - '复筛': 0, - '面试': 0, - '创建面试': 0, - '面试签到': 0, - 'offer': 0, - '待入职': 0, - '已入职': 0 + 'start_num': 0, + 'screen_num': 0, + 'exam_num': 0, + 'exam_set_num': 0, + 'exam_ok_num': 0, + 'offer_num': 0, + 'wait_work_num': 0, + 'work_num': 0 } for key, value_data in msg_data.items(): for true_key, num in value_data.items(): @@ -1015,8 +1015,36 @@ async def hr_works_form( res_data['其他'] = {k: v} else: res_data['其他'].update({k: v}) + res_data1 = [] + for k, v in res_data.items(): + data1 = {'date_name': k} + for k1, v1 in v.items(): + data2 = {'job_name': k1} + for k2, v2 in v1.items(): + v2.update(data1) + v2.update(data2) + v2.update({'name': k2}) + true_data = deepcopy(v2) + res_data1.append(true_data) + level_list = { + "date_name": "部门", + "job_name": "职位", + "name": "HR", + "start_num": "初筛", + "screen_num": "复筛", + "exam_num": "面试", + "exam_set_num": "创建面试", + "exam_ok_num": "面试签到", + "offer_num": "offer", + "wait_work_num": "待入职", + "work_num": "已入职" + } + res_true_msg = { + 'data': res_data1, + 'level_list': level_list, + } res_true_data = { - 'data': res_data, + 'data': res_true_msg, 'table_data': table_data } return schemas.Msg(code=200, msg='ok', data=res_true_data) @@ -1614,13 +1642,13 @@ async def year_job_form( res_msg[str(i)] = {} for job_id in job_ids: res_msg[str(i)][job_id] = { - '简历推荐数': 0, - '有效简历数': 0, - '到场面试数': 0, - '面试通过': 0, - 'offer发出数': 0, - '入职人数': 0, - '离职人数': 0 + 'start_num': 0, + 'ok_num': 0, + 'exam_num': 0, + 'exam_pass_num': 0, + 'offer_num': 0, + 'work_num': 0, + 'out_num': 0 } for chk_data in data.values(): @@ -1635,19 +1663,19 @@ async def year_job_form( count_num = chk_data['value'] chk_job_id = chk_data['job_id'] if chk_stage >= 1: - res_msg[chk_date][chk_job_id]['简历推荐数'] += 1 * count_num + res_msg[chk_date][chk_job_id]['start_num'] += 1 * count_num if chk_stage >= 2: - res_msg[chk_date][chk_job_id]['有效简历数'] += 1 * count_num + res_msg[chk_date][chk_job_id]['ok_num'] += 1 * count_num if chk_stage >= 3: - res_msg[chk_date][chk_job_id]['到场面试数'] += 1 * count_num + res_msg[chk_date][chk_job_id]['exam_num'] += 1 * count_num if chk_stage >= 4: - res_msg[chk_date][chk_job_id]['面试通过'] += 1 * count_num + res_msg[chk_date][chk_job_id]['exam_pass_num'] += 1 * count_num if chk_stage >= 5: - res_msg[chk_date][chk_job_id]['offer发出数'] += 1 * count_num + res_msg[chk_date][chk_job_id]['offer_num'] += 1 * count_num if chk_stage >= 7: - res_msg[chk_date][chk_job_id]['入职人数'] += 1 * count_num + res_msg[chk_date][chk_job_id]['work_num'] += 1 * count_num if chk_stage >= 9: - res_msg[chk_date][chk_job_id]['离职人数'] += 1 * count_num + res_msg[chk_date][chk_job_id]['out_num'] += 1 * count_num res_data = {} for k, v in res_msg.items(): res_data[k] = {} @@ -1659,8 +1687,21 @@ async def year_job_form( else: res_data[k]['其他'] = {} res_data[k]['其他'].update({'其他': v1}) + res_data1 = [] + for k, v in res_data.items(): + data1 = {'time': k} + for k1, v1 in v.items(): + data2 = {'date_name': k1} + for k2, v2 in v1.items(): + v2.update(data1) + v2.update(data2) + v2.update({'job_name': k2}) + true_data = deepcopy(v2) + res_data1.append(true_data) level_list = { "time": "时间", + "date_name": "部门", + "job_name": "职位", "start_num": "简历推荐数", "ok_num": "有效简历数", "exam_num": "到场面试数", @@ -1669,8 +1710,12 @@ async def year_job_form( "work_num": "入职人数", "out_num": "离职人数" } + res_true_msg = { + 'data': res_data1, + 'level_list': level_list, + } res_true_data = { - 'data': res_data, + 'data': res_true_msg, 'table_data': table_data } return schemas.Msg(code=200, msg='ok', data=res_true_data)