报表
This commit is contained in:
parent
bfda4c0e6e
commit
36b29c4b35
@ -1777,3 +1777,140 @@ async def year_in_out(
|
|||||||
'table_data': table_data
|
'table_data': table_data
|
||||||
}
|
}
|
||||||
return schemas.Msg(code=200, msg='ok', data=res_data)
|
return schemas.Msg(code=200, msg='ok', data=res_data)
|
||||||
|
|
||||||
|
|
||||||
|
# 查询入职人员信息
|
||||||
|
@router.post("/find_worker_form")
|
||||||
|
async def find_worker_form(
|
||||||
|
request: Request,
|
||||||
|
interview: InterviewDo = Depends(InterviewDo),
|
||||||
|
ck_db: CKDrive = Depends(get_ck_db),
|
||||||
|
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||||
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||||
|
) -> schemas.Msg:
|
||||||
|
""" 人才密度报表 """
|
||||||
|
await interview.init()
|
||||||
|
|
||||||
|
# 获取报表相关参数
|
||||||
|
table_id = interview.data_in.get('table_id', '')
|
||||||
|
if not table_id:
|
||||||
|
return schemas.Msg(code=200, msg='报表数据错误', data={})
|
||||||
|
|
||||||
|
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
|
||||||
|
if not table_data:
|
||||||
|
return schemas.Msg(code=200, msg='报表数据错误', data={})
|
||||||
|
|
||||||
|
data = await crud.worker_info.find_worker_some(db, findlist=interview.find_column)
|
||||||
|
if not data:
|
||||||
|
return schemas.Msg(code=-9, msg='无数据', data=None)
|
||||||
|
res_msg = {
|
||||||
|
'未评级': [i['name'] for i in data if i['job_level'] == '未评级'],
|
||||||
|
'p1-p3': [i['name'] for i in data if i['job_level'] in ['p1', 'p2', 'p3']],
|
||||||
|
'p4': [i['name'] for i in data if i['job_level'] == 'p4'],
|
||||||
|
'p5': [i['name'] for i in data if i['job_level'] == 'p5'],
|
||||||
|
'p6': [i['name'] for i in data if i['job_level'] == 'p6'],
|
||||||
|
'p7': [i['name'] for i in data if i['job_level'] == 'p7'],
|
||||||
|
'p8': [i['name'] for i in data if i['job_level'] == 'p8'],
|
||||||
|
'm1': [i['name'] for i in data if i['job_level'] == 'm1'],
|
||||||
|
'm2': [i['name'] for i in data if i['job_level'] == 'm2'],
|
||||||
|
'm3': [i['name'] for i in data if i['job_level'] == 'm3'],
|
||||||
|
'm4': [i['name'] for i in data if i['job_level'] == 'm4'],
|
||||||
|
'总人数': len(data)
|
||||||
|
}
|
||||||
|
res_data = []
|
||||||
|
res_msg1 = {
|
||||||
|
'title': '数量',
|
||||||
|
'未评级': len(res_msg['未评级']),
|
||||||
|
'p1-p3': len(res_msg['p1-p3']),
|
||||||
|
'p4': len(res_msg['p4']),
|
||||||
|
'p5': len(res_msg['p5']),
|
||||||
|
'p6': len(res_msg['p6']),
|
||||||
|
'p7': len(res_msg['p7']),
|
||||||
|
'p8': len(res_msg['p8']),
|
||||||
|
'm1': len(res_msg['m1']),
|
||||||
|
'm2': len(res_msg['m2']),
|
||||||
|
'm3': len(res_msg['m3']),
|
||||||
|
'm4': len(res_msg['m4']),
|
||||||
|
}
|
||||||
|
res_data.append(res_msg1)
|
||||||
|
res_msg2 = {
|
||||||
|
'title': '占比',
|
||||||
|
'未评级': round(res_msg1['未评级'] / res_msg['总人数'], 2),
|
||||||
|
'p1-p3': round(res_msg1['p1-p3'] / res_msg['总人数'], 2),
|
||||||
|
'p4': round(res_msg1['p4'] / res_msg['总人数'], 2),
|
||||||
|
'p5': round(res_msg1['p5'] / res_msg['总人数'], 2),
|
||||||
|
'p6': round(res_msg1['p6'] / res_msg['总人数'], 2),
|
||||||
|
'p7': round(res_msg1['p7'] / res_msg['总人数'], 2),
|
||||||
|
'p8': round(res_msg1['p8'] / res_msg['总人数'], 2),
|
||||||
|
'm1': round(res_msg1['m1'] / res_msg['总人数'], 2),
|
||||||
|
'm2': round(res_msg1['m2'] / res_msg['总人数'], 2),
|
||||||
|
'm3': round(res_msg1['m3'] / res_msg['总人数'], 2),
|
||||||
|
'm4': round(res_msg1['m4'] / res_msg['总人数'], 2),
|
||||||
|
}
|
||||||
|
res_data.append(res_msg2)
|
||||||
|
level_list = {
|
||||||
|
'title': '职级',
|
||||||
|
'未评级': '未评级',
|
||||||
|
'p1-p3': 'p1-p3',
|
||||||
|
'p4': 'p4',
|
||||||
|
'p5': 'p5',
|
||||||
|
'p6': 'p6',
|
||||||
|
'p7': 'p7',
|
||||||
|
'p8': 'p8',
|
||||||
|
'm1': 'm1',
|
||||||
|
'm2': 'm2',
|
||||||
|
'm3': 'm3',
|
||||||
|
'm4': 'm4'
|
||||||
|
}
|
||||||
|
res_true_msg = {
|
||||||
|
'data': res_data,
|
||||||
|
'level_list': level_list
|
||||||
|
}
|
||||||
|
res_true_data = {
|
||||||
|
'data': res_true_msg,
|
||||||
|
'table_data': table_data
|
||||||
|
}
|
||||||
|
return schemas.Msg(code=200, msg='ok', data=res_true_data)
|
||||||
|
|
||||||
|
|
||||||
|
# 查询统计数据
|
||||||
|
@router.post("/find_count_info")
|
||||||
|
async def find_count_info(
|
||||||
|
|
||||||
|
request: Request,
|
||||||
|
interview: InterviewDo = Depends(InterviewDo),
|
||||||
|
ck_db: CKDrive = Depends(get_ck_db),
|
||||||
|
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||||
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||||
|
) -> schemas.Msg:
|
||||||
|
""" 在职人员年份分布 """
|
||||||
|
await interview.init()
|
||||||
|
|
||||||
|
# 获取报表相关参数
|
||||||
|
table_id = interview.data_in.get('table_id', '')
|
||||||
|
if not table_id:
|
||||||
|
return schemas.Msg(code=200, msg='报表数据错误', data={})
|
||||||
|
|
||||||
|
table_data = await crud.api_interview_tables.get_one_table(db, table_id)
|
||||||
|
if not table_data:
|
||||||
|
return schemas.Msg(code=200, msg='报表数据错误', data={})
|
||||||
|
data = await crud.count_in_worker.find_count_some(db)
|
||||||
|
true_index = 0
|
||||||
|
max_num = 0
|
||||||
|
for index, i in enumerate(data):
|
||||||
|
if len(i.keys()) > max_num:
|
||||||
|
true_index = index
|
||||||
|
index_key = [k for k in data[true_index].keys()]
|
||||||
|
level_list = {i: i for i in index_key}
|
||||||
|
level_list.update({
|
||||||
|
'count_id': '月份'
|
||||||
|
})
|
||||||
|
res_msg = {
|
||||||
|
'data': data,
|
||||||
|
'level_list': level_list
|
||||||
|
}
|
||||||
|
res_data = {
|
||||||
|
'data': res_msg,
|
||||||
|
'table_data': table_data
|
||||||
|
}
|
||||||
|
return schemas.Msg(code=200, msg='ok', data=res_data)
|
||||||
|
@ -124,6 +124,21 @@ async def add_count_info(
|
|||||||
return schemas.Msg(code=-10, msg='本月数据已添加', data=None)
|
return schemas.Msg(code=-10, msg='本月数据已添加', data=None)
|
||||||
worker_data = await crud.worker_info.find_worker_some(db, findlist=['name', 'work_in'])
|
worker_data = await crud.worker_info.find_worker_some(db, findlist=['name', 'work_in'])
|
||||||
insert_data = {
|
insert_data = {
|
||||||
|
'2008': 0,
|
||||||
|
'2009': 0,
|
||||||
|
'2010': 0,
|
||||||
|
'2011': 0,
|
||||||
|
'2012': 0,
|
||||||
|
'2013': 0,
|
||||||
|
'2014': 0,
|
||||||
|
'2015': 0,
|
||||||
|
'2016': 0,
|
||||||
|
'2017': 0,
|
||||||
|
'2018': 0,
|
||||||
|
'2019': 0,
|
||||||
|
'2020': 0,
|
||||||
|
'2021': 0,
|
||||||
|
'2022': 0,
|
||||||
'count_id': count_id
|
'count_id': count_id
|
||||||
}
|
}
|
||||||
for chk_data in worker_data:
|
for chk_data in worker_data:
|
||||||
|
Loading…
Reference in New Issue
Block a user