This commit is contained in:
Àî×ÚÕñ 2022-09-14 18:42:05 +08:00
parent ebc686d80d
commit e2efda9bc8

View File

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