Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
28684615de
|
@ -35,7 +35,7 @@ def daily_delete(db: Session, item_id):
|
|||
def daily_query(db: Session, params: DailyQuery, token_data: TokenData) -> [int]:
|
||||
print(params)
|
||||
department = token_data.department
|
||||
auth = token_data.auth_data
|
||||
auth = token_data.auth_data or ''
|
||||
params_dict = params.dict()
|
||||
query = db.query(Daily)
|
||||
db_model = Daily
|
||||
|
@ -44,43 +44,38 @@ def daily_query(db: Session, params: DailyQuery, token_data: TokenData) -> [int]
|
|||
# 有日报管理权限的可以查看所有 10
|
||||
# 所有部门动态查看 2
|
||||
# 动态权限设为了董监高的话,只有自己和董监高可以看
|
||||
if '10' not in auth_list and '2' not in auth_list and params.type == DailyTypeEnum.部门子公司日报:
|
||||
if '10' not in auth_list and '2' not in auth_list:
|
||||
has_auth = [int(item) for item in auth_list if item in ['17', '18']]
|
||||
departments = [int(item) for item in department.split(",")]
|
||||
# 筛选能有权限看的日报
|
||||
query = query.filter(
|
||||
or_(*[func.find_in_set(str(item), Daily.required_auth) for item in has_auth],
|
||||
Daily.required_auth == None, Daily.required_auth == '',
|
||||
Daily.fill_user == token_data.email
|
||||
))
|
||||
if params.type == DailyTypeEnum.部门子公司日报:
|
||||
业务部门 = []
|
||||
# 如果是只能看自己日报的,在业务部门内只能看自己日报
|
||||
if '20' in auth_list:
|
||||
for dp in db.query(Department).filter(Department.id.in_(departments)):
|
||||
if dp.type.value == '业务部门':
|
||||
业务部门.append(dp.id)
|
||||
|
||||
业务部门 = []
|
||||
# 如果是只能看自己日报的,在业务部门内只能看自己日报
|
||||
if '20' in auth_list:
|
||||
for dp in db.query(Department).filter(Department.id.in_(departments)):
|
||||
if dp.type.value == '业务部门':
|
||||
业务部门.append(dp.id)
|
||||
|
||||
# query = query.filter(or_(*[func.find_in_set(str(item), Daily.required_auth) for item in has_auth],
|
||||
# Daily.required_auth._in['', None]))
|
||||
|
||||
# 能看到自己部门所有动态
|
||||
# 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)
|
||||
# )))
|
||||
query_department = [d for d in departments if d not in 业务部门]
|
||||
if query_department:
|
||||
query = query.filter(or_(Daily.department.in_(query_department),
|
||||
Daily.fill_user == token_data.email)).filter(
|
||||
or_(*[func.find_in_set(str(item), Daily.required_auth) for item in has_auth],
|
||||
Daily.required_auth == None, Daily.required_auth == ''
|
||||
)
|
||||
)
|
||||
else:
|
||||
query = query.filter(Daily.fill_user == token_data.email)
|
||||
# 能看到自己动态 ,但看不到同部门的保密日报
|
||||
query_department = [d for d in departments if d not in 业务部门]
|
||||
if query_department:
|
||||
query = query.filter(or_(Daily.department.in_(query_department),
|
||||
)).filter(
|
||||
or_(*[func.find_in_set(str(item), Daily.required_auth) for item in has_auth],
|
||||
Daily.required_auth == None, Daily.required_auth == '',
|
||||
Daily.fill_user == token_data.email
|
||||
)
|
||||
)
|
||||
else:
|
||||
query = query.filter(Daily.fill_user == token_data.email)
|
||||
# 能看到自己动态 ,但看不到同部门的保密日报
|
||||
|
||||
for key, value in params_dict.items():
|
||||
if value in ['', None]:
|
||||
print(key, 'xxxxxxxxxxxx')
|
||||
continue
|
||||
if key == 'department' and type(value) == list:
|
||||
query = query.filter(Daily.department.in_(value))
|
||||
|
|
|
@ -34,15 +34,15 @@ comment_notice_send = """您于【{daily_time}】发布在【{daily_type}】的
|
|||
发布正文:
|
||||
{daily_content} """
|
||||
|
||||
daily_fill_send = """您好
|
||||
请于今日下班前登录微信小程序【FECR业务助手】填报当日您的工作内容。
|
||||
daily_fill_send = """您好:
|
||||
请于今日下班前登录微信小程序【FECR业务助手】填报您的工作内容。
|
||||
|
||||
具体填报步骤:
|
||||
1. 使用手机号或公司邮箱登录【FECR业务助手】。
|
||||
2. 选择【填报-部门日报】进行填报。
|
||||
2. 在填报页面中选择您的报送类型,进入相关填报页面进行操作。
|
||||
|
||||
若在使用过程中出现问题,请联系小程序管理员王思川(wangsichuan@fecr.com.cn)帮助您处理。
|
||||
祝你工作顺利。"""
|
||||
若在使用过程中出现问题,请联系陈肖珏(chenxiaojue@fecr.com.cn)帮助您处理。
|
||||
"""
|
||||
|
||||
daily_pdf_upload_notice = """您好
|
||||
今日的运行日报已上传,请于微信小程序【FECR业务助手】->【运行日报】查看
|
||||
|
@ -97,6 +97,7 @@ class DailyNotice:
|
|||
|
||||
def send_email(self, title, email, content):
|
||||
try:
|
||||
print('邮件', email)
|
||||
return self.email_send_func(title, email, content)
|
||||
except Exception as e:
|
||||
print('邮件发送错误', e)
|
||||
|
@ -137,14 +138,16 @@ class DailyNotice:
|
|||
|
||||
sended = False
|
||||
while True:
|
||||
time.sleep(60)
|
||||
if is_workday() and datetime.now().hour == 15 and datetime.now().minute < 5 and not sended:
|
||||
time.sleep(15)
|
||||
now = datetime.now()
|
||||
if is_workday() and now.hour == 15 and (35<= now.minute < 35 + 3) and not sended:
|
||||
sended = True
|
||||
try:
|
||||
user_list = get_user_not_fill_daily()
|
||||
args_list = [['日报填报提醒', user.email, daily_fill_send] for user in user_list]
|
||||
# self.email_send_thread(args_list)
|
||||
send_email('日报填报提醒', "fecribd@fecr.com.cn", daily_fill_send)
|
||||
# args_list = [['日报填报提醒', user.email, daily_fill_send] for user in user_list if user.name in ['王思川','伍春全','李凯','彭森','徐聿成','陈世杰']]
|
||||
self.email_send_thread(args_list)
|
||||
# send_email('日报填报提醒', "fecribd@fecr.com.cn", daily_fill_send)
|
||||
except Exception as e:
|
||||
print(e, 'start_timer_to_notice_daily_fill错误')
|
||||
|
||||
|
@ -154,6 +157,7 @@ class DailyNotice:
|
|||
def email_send_thread(self, args_list, sem=5):
|
||||
with ThreadPoolExecutor(max_workers=sem) as executor:
|
||||
for args in args_list:
|
||||
time.sleep(1)
|
||||
executor.submit(self.send_email, *args)
|
||||
|
||||
def init(self):
|
||||
|
|
|
@ -55,6 +55,7 @@ def file_upload(name: str = Header(None), file: UploadFile = File(...),
|
|||
mime_type=mime_type,
|
||||
user_id=token_data.email, common_type=common_type,
|
||||
file_url=file_url))
|
||||
print(user_file.to_dict(),'文件上传成功')
|
||||
return user_file.to_dict()
|
||||
|
||||
|
||||
|
|
|
@ -6,17 +6,17 @@ from typing import Literal, List, Any, Optional
|
|||
|
||||
Base = declarative_base()
|
||||
|
||||
# user = "root"
|
||||
# password = "123456"
|
||||
# host = "127.0.0.1"
|
||||
# db = 'daily'
|
||||
user = "root"
|
||||
password = "123456"
|
||||
host = "127.0.0.1"
|
||||
db = 'daily'
|
||||
# db = 'daily_test'
|
||||
|
||||
host = "139.9.249.34"
|
||||
post = "3306"
|
||||
user = "fecr"
|
||||
password = "fecr1988.wcq"
|
||||
db = "daily_test"
|
||||
# host = "139.9.249.34"
|
||||
# post = "3306"
|
||||
# user = "fecr"
|
||||
# password = "fecr1988.wcq"
|
||||
# db = "daily_test"
|
||||
|
||||
def get_engine():
|
||||
engine = create_engine(
|
||||
|
|
3
main.py
3
main.py
|
@ -8,10 +8,11 @@ from Config.log import uvicorn_log_config
|
|||
from Mods.Notice.Utils import daily_notice
|
||||
from Router import DailyRouter, UserRouter, AuthRouter, FileRouter
|
||||
from Utils.MiddlewareUtils import exception_handler, validation_exception_handler
|
||||
from Utils.PrintUtils import hook_print
|
||||
from Utils.SqlAlchemyUtils import init_database, get_db_i
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from Mods import Router as ModsRouter
|
||||
|
||||
hook_print()
|
||||
init_database()
|
||||
app = FastAPI(
|
||||
title="日报小程序",
|
||||
|
|
Loading…
Reference in New Issue