From 6f7dd4d0d6a039059d53594c28b681d69e94e288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=80=C3=AE=C3=97=C3=9A=C3=95=C3=B1?= Date: Wed, 14 Sep 2022 15:43:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/forms.py | 49 ++++++++++++++++++++++++----------- crud/crud_owner_info.py | 4 +-- 2 files changed, 36 insertions(+), 17 deletions(-) diff --git a/api/api_v1/endpoints/forms.py b/api/api_v1/endpoints/forms.py index cffb2a1..f8485c7 100644 --- a/api/api_v1/endpoints/forms.py +++ b/api/api_v1/endpoints/forms.py @@ -980,13 +980,22 @@ async def hr_works_form( for true_key, num in value_data.items(): count_data[true_key] += num res_msg[job_name1].update({'总计': count_data}) - res_data = { - 'msg': res_msg, - 'job_sector': job_name_sector - } + + res_data = {} + for k, v in res_msg.items(): + if k in job_name_sector: + if job_name_sector[k] not in res_data: + res_data[job_name_sector[k]] = {k: v} + else: + res_data[job_name_sector[k]].update({k: v}) + else: + if '其他' in res_data: + res_data['其他'] = {k: v} + else: + res_data['其他'].update({k: v}) res_true_data = { 'data': res_data, - 'table_data':table_data + 'table_data': table_data } return schemas.Msg(code=200, msg='ok', data=res_true_data) @@ -1308,14 +1317,16 @@ async def owner_effect( res_msg[key]['exam_num'] = exam_num res_msg[key]['offer_num'] = offer_num res_msg[key]['work_num'] = work_num + res_msg[key]['year_money'] = 0 + year = interview.where.get('start_time', '2022').split('-')[0] + owner_info = await crud.owner_info.find_owner_some(db, where={'year': year}, + findlist=['owner_name', 'year_money']) + for i in owner_info: + if i['owner_name'] in res_msg: + res_msg[i['owner_name']]['year_money'] = i['year_money'] - owner_info = await crud.owner_info.find_owner_some(db, findlist=['owner_name', 'year_money', 'year']) - res_data = { - 'res_msg': res_msg, - 'owner_info': owner_info - } res_true_data = { - 'data': res_data, + 'data': res_msg, 'table_data': table_data } return schemas.Msg(code=200, msg='ok', data=res_true_data) @@ -1526,10 +1537,18 @@ async def year_job_form( res_msg[chk_date][chk_job_id]['入职人数'] += 1 * count_num if chk_stage >= 9: res_msg[chk_date][chk_job_id]['离职人数'] += 1 * count_num - res_data = { - 'res_msg': res_msg, - 'job_data': job_dict - } + res_data = {} + for k, v in res_msg.items(): + res_data[k] = {} + for k1, v1 in v.items(): + if k1 in job_dict: + if job_dict[k1]['sector'] not in res_data[k]: + res_data[k][job_dict[k1]['sector']] = {} + res_data[k][job_dict[k1]['sector']].update({job_dict[k1]['name']: v1}) + else: + res_data[k]['其他'] = {} + res_data[k]['其他'].update({'其他': v1}) + res_true_data = { 'data': res_data, 'table_data': table_data diff --git a/crud/crud_owner_info.py b/crud/crud_owner_info.py index 4db019c..44debe6 100644 --- a/crud/crud_owner_info.py +++ b/crud/crud_owner_info.py @@ -11,14 +11,14 @@ class CRUDOwnerInfo(CRUDBase): return await self.find_many(db, {}, {'_id': 0}) # 获取指定字段 - async def find_owner_some(self, db: AsyncIOMotorDatabase, findlist=[]): + async def find_owner_some(self, db: AsyncIOMotorDatabase, where={}, findlist=[]): findWhere = {'_id': 0} if findlist: for key in findlist: findWhere.update({ key: 1 }) - return await self.find_many(db, {}, findWhere) + return await self.find_many(db, where, findWhere) # 更新一条渠道信息 async def update_owner(self, db: AsyncIOMotorDatabase, where, updatedata):