This commit is contained in:
Administrator 2023-07-01 13:49:32 +08:00
parent e6ac126785
commit 0d6e8d96ae
4 changed files with 28 additions and 15 deletions

View File

@ -3,7 +3,7 @@ from datetime import datetime
from sqlalchemy import func, or_, and_ from sqlalchemy import func, or_, and_
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from Models.DailyModel import Daily from Models.DailyModel import Daily
from Schemas.DailySchemas import DailyQuery from Schemas.DailySchemas import DailyQuery, DailyTypeEnum
def daily_get(db: Session, item_id): 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 db_model = Daily
if auth: if auth:
auth_list = auth.split(',') auth_list = auth.split(',')
# 有日报管理权限的可以查看所有 # 有日报管理权限的可以查看所有 10
if '10' not in auth_list: # 所有部门动态查看 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']] 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], # query = query.filter(or_(*[func.find_in_set(str(item), Daily.required_auth) for item in has_auth],
# Daily.required_auth._in['', None])) # Daily.required_auth._in['', None]))
departments = [int(item) for item in department.split(",")] 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], query = query.filter(or_(Daily.department.in_(departments), and_(Daily.department.not_in(departments),
not Daily.required_auth)))) 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(): for key, value in params_dict.items():
if key == 'department' and type(value) == list: if key == 'department' and type(value) == list:
query = query.filter(Daily.department.in_(value)) query = query.filter(Daily.department.in_(value))

View File

@ -12,6 +12,8 @@ from Utils.EmailUtils import send_email
from Utils.SqlAlchemyUtils import get_db, get_db_i from Utils.SqlAlchemyUtils import get_db, get_db_i
from datetime import datetime, date from datetime import datetime, date
test_email = ["wuchunquan@fecr.com.cn", "wangsichuan@fecr.com.cn"]
comment_notice_send = """您的日报有新的反馈: comment_notice_send = """您的日报有新的反馈:
日报内容: 日报内容:
@ -42,6 +44,10 @@ daily_fill_send = """您好
若在使用过程中出现问题请联系小程序管理员王思川wangsichuan@fecr.com.cn帮助您处理 若在使用过程中出现问题请联系小程序管理员王思川wangsichuan@fecr.com.cn帮助您处理
祝你工作顺利""" 祝你工作顺利"""
daily_pdf_upload_notice = """您好
今日的运行日报已上传请于微信小程序FECR业务助手->运行日报查看
"""
# 2023年的节假日true的是放假的 # 2023年的节假日true的是放假的
holiday = {'01-01': True, '01-02': True, '01-21': True, '01-22': True, '01-23': True, '01-24': True, '01-25': 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, '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 *[func.find_in_set(str(d_id), User.department) for d_id in
can_watch_departments])): can_watch_departments])):
emails.append(user.email) 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: # task_args = [["", email, daily_pdf_upload_notice] for email in emails]
# 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 test_email]
print(task_args)
self.email_send_thread(task_args)
def start_timer_to_notice_daily_fill(self): def start_timer_to_notice_daily_fill(self):

View File

@ -289,12 +289,11 @@ def daily_export_to_pdf(req: DailySchemas.DailyExportToPdfReq, db: Session = Dep
subject[k4] = first + '\n' + subject[k4] subject[k4] = first + '\n' + subject[k4]
else: else:
subject[k4] = '未报送' subject[k4] = '未报送'
current_date = datetime.datetime.now() current_date = datetime.datetime.now()
merged_dict = { merged_dict = {
"": current_date.year, "": req.day.year,
"": current_date.month, "": req.day.month,
"": current_date.day "": req.day.day
} }
merged_dict.update(department) merged_dict.update(department)
merged_dict.update(lead) merged_dict.update(lead)

View File

@ -259,8 +259,8 @@ def get_user_can_watch_department(token_data: TokenData = Depends(token_data_dep
can_watch_department.add(int(item)) can_watch_department.add(int(item))
if token_data.manage_departments: if token_data.manage_departments:
for item in token_data.manage_departments.split(","): for item in token_data.manage_departments.split(","):
can_watch_department.add(int(item)) can_watch_department.add(int(item))
can_watch_department_list = [department_dict[item] for item in can_watch_department] 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)} return {'item_list': can_watch_department_list, "count": len(can_watch_department_list)}