From 0d6e8d96aef7c3993b89a1f288169d7c93994e53 Mon Sep 17 00:00:00 2001 From: Administrator Date: Sat, 1 Jul 2023 13:49:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Crud/DailyCrud.py | 15 ++++++++++----- Mods/Notice/Utils.py | 17 +++++++++++++---- Router/DailyRouter.py | 7 +++---- Router/UserRouter.py | 4 ++-- 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/Crud/DailyCrud.py b/Crud/DailyCrud.py index c4a722d..809359f 100644 --- a/Crud/DailyCrud.py +++ b/Crud/DailyCrud.py @@ -3,7 +3,7 @@ from datetime import datetime from sqlalchemy import func, or_, and_ from sqlalchemy.orm import Session from Models.DailyModel import Daily -from Schemas.DailySchemas import DailyQuery +from Schemas.DailySchemas import DailyQuery, DailyTypeEnum def daily_get(db: Session, item_id): @@ -37,14 +37,19 @@ def daily_query(db: Session, params: DailyQuery, department: str, auth: str = No db_model = Daily if auth: auth_list = auth.split(',') - # 有日报管理权限的可以查看所有 - if '10' not in auth_list: + # 有日报管理权限的可以查看所有 10 + # 所有部门动态查看 2 + # + if '10' not in auth_list and '2' not in auth_list and params.type == DailyTypeEnum.动态: has_auth = [int(item) for item in auth_list if item in ['17', '18']] # query = query.filter(or_(*[func.find_in_set(str(item), Daily.required_auth) for item in has_auth], # Daily.required_auth._in['', None])) departments = [int(item) for item in department.split(",")] - query.filter(or_(Daily.department.in_(departments),and_(Daily.department.not_in(departments),or_(*[func.find_in_set(str(item), Daily.required_auth) for item in has_auth], - not Daily.required_auth)))) + query = query.filter(or_(Daily.department.in_(departments), and_(Daily.department.not_in(departments), + or_(*[func.find_in_set(str(item), + Daily.required_auth) + for item in has_auth], + not Daily.required_auth)))) for key, value in params_dict.items(): if key == 'department' and type(value) == list: query = query.filter(Daily.department.in_(value)) diff --git a/Mods/Notice/Utils.py b/Mods/Notice/Utils.py index 0b5ee3a..08fbd7e 100644 --- a/Mods/Notice/Utils.py +++ b/Mods/Notice/Utils.py @@ -12,6 +12,8 @@ from Utils.EmailUtils import send_email from Utils.SqlAlchemyUtils import get_db, get_db_i from datetime import datetime, date +test_email = ["wuchunquan@fecr.com.cn", "wangsichuan@fecr.com.cn"] + comment_notice_send = """您的日报有新的反馈: 日报内容: @@ -42,6 +44,10 @@ daily_fill_send = """您好 若在使用过程中出现问题,请联系小程序管理员王思川(wangsichuan@fecr.com.cn)帮助您处理。 祝你工作顺利。""" +daily_pdf_upload_notice = """您好 +今日的运行日报已上传,请于微信小程序【FECR业务助手】->【运行日报】查看 +""" + # 2023年的节假日,true的是放假的 holiday = {'01-01': True, '01-02': True, '01-21': True, '01-22': True, '01-23': True, '01-24': True, '01-25': True, '01-26': True, '01-27': True, '01-28': False, '01-29': False, '04-05': True, '04-23': False, '04-29': True, @@ -118,11 +124,14 @@ class DailyNotice: *[func.find_in_set(str(d_id), User.department) for d_id in can_watch_departments])): emails.append(user.email) + 数字化部emails = [item.email for item in db.query(User).filter(func.find_in_set('17', User.department))] - with ThreadPoolExecutor(max_workers=5) as executor: - # for email in emails: - # executor.submit(self.send_email, "每日运行日报已上传", email, '每日运行日报已上传') - executor.submit(self.send_email, "每日运行日报已上传", 'wangsichuan@fecr.com.cn', '每日运行日报已上传') + # task_args = [["", email, daily_pdf_upload_notice] for email in emails] + + # 测试 + task_args = [["每日运行日报已上传", email, daily_pdf_upload_notice] for email in test_email] + print(task_args) + self.email_send_thread(task_args) def start_timer_to_notice_daily_fill(self): diff --git a/Router/DailyRouter.py b/Router/DailyRouter.py index 36298ef..fa29154 100644 --- a/Router/DailyRouter.py +++ b/Router/DailyRouter.py @@ -289,12 +289,11 @@ def daily_export_to_pdf(req: DailySchemas.DailyExportToPdfReq, db: Session = Dep subject[k4] = first + '\n' + subject[k4] else: subject[k4] = '未报送' - current_date = datetime.datetime.now() merged_dict = { - "年": current_date.year, - "月": current_date.month, - "日": current_date.day + "年": req.day.year, + "月": req.day.month, + "日": req.day.day } merged_dict.update(department) merged_dict.update(lead) diff --git a/Router/UserRouter.py b/Router/UserRouter.py index 9018ad9..a5f7676 100644 --- a/Router/UserRouter.py +++ b/Router/UserRouter.py @@ -259,8 +259,8 @@ def get_user_can_watch_department(token_data: TokenData = Depends(token_data_dep can_watch_department.add(int(item)) if token_data.manage_departments: for item in token_data.manage_departments.split(","): - can_watch_department.add(int(item)) - can_watch_department_list = [department_dict[item] for item in can_watch_department] + can_watch_department.add(int(item)) + can_watch_department_list = [department_dict[item] for item in can_watch_department if item not in [1,2,3]] return {'item_list': can_watch_department_list, "count": len(can_watch_department_list)}