From c2edd6b83a6568d5b92386bf432857cb2f91d95d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=80=C3=AE=C3=97=C3=9A=C3=95=C3=B1?= Date: Mon, 19 Sep 2022 20:09:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=962?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/forms.py | 30 ++++++++++++++++++------------ crud/crud_count_in_worker.py | 12 ++++++------ 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/api/api_v1/endpoints/forms.py b/api/api_v1/endpoints/forms.py index 34d00b2..5da5345 100644 --- a/api/api_v1/endpoints/forms.py +++ b/api/api_v1/endpoints/forms.py @@ -2029,24 +2029,30 @@ async def find_worker_form( table_data = await crud.api_interview_tables.get_one_table(db, table_id) if not table_data: return schemas.Msg(code=200, msg='报表数据错误', data={}) + find_column = interview.find_column + if not interview.find_column: + find_column = ['name', 'extension'] - data = await crud.worker_info.find_worker_some(db, findlist=interview.find_column) + data = await crud.worker_info.find_worker_some(db, findlist=find_column) if not data: return schemas.Msg(code=-9, msg='无数据', data=None) + new_data1 = [i for i in data if not i['extension'] or '岗位职级' not in i['extension']] + new_data2 = [i for i in data if i['extension'] and '岗位职级' in i['extension']] 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'], + '未评级': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == ''], + 'p1-p3': [i['name'] for i in new_data2 if i['extension']['岗位职级'] in ['P1', 'P2', 'P3']], + 'p4': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'P4'], + 'p5': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'P5'], + 'p6': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'P6'], + 'p7': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'P7'], + 'p8': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'P8'], + 'm1': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'M1'], + 'm2': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'M2'], + 'm3': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'M3'], + 'm4': [i['name'] for i in new_data2 if i['extension']['岗位职级'] == 'M4'], '总人数': len(data) } + res_msg['未评级'].extend([i['name'] for i in new_data1]) res_data = [] res_msg1 = { 'title': '数量', diff --git a/crud/crud_count_in_worker.py b/crud/crud_count_in_worker.py index 170a5e9..06f5478 100644 --- a/crud/crud_count_in_worker.py +++ b/crud/crud_count_in_worker.py @@ -11,14 +11,14 @@ class CRUDCountInWorker(CRUDBase): return await self.find_many(db, {}, {'_id': 0}) # 获取指定字段 - async def find_count_some(self, db: AsyncIOMotorDatabase, findlist=[]): - findWhere = {'_id': 0} - if findlist: - for key in findlist: - findWhere.update({ + async def find_count_some(self, db: AsyncIOMotorDatabase, find_list=[]): + find_where = {'_id': 0} + if find_list: + for key in find_list: + find_where.update({ key: 1 }) - return await self.find_many(db, {}, findWhere) + return await self.find_many(db, {}, find_where) # 查询单条数据 async def find_one_count(self, db: AsyncIOMotorDatabase, count_id):