|
@@ -22,6 +22,7 @@ from urllib.parse import quote
|
|
|
import base64
|
|
|
from config import settings
|
|
|
from extensions import logger
|
|
|
+import os
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
@@ -936,7 +937,11 @@ async def upload_casualties(
|
|
|
body = Depends(remove_xss_json),
|
|
|
db: Session = Depends(get_db)
|
|
|
):
|
|
|
+ fileNames = []
|
|
|
eventId = body['event_id']
|
|
|
+ if 'fileNames' in body:
|
|
|
+ fileNames = body['fileNames']
|
|
|
+ del body['fileNames']
|
|
|
|
|
|
del body['event_id']
|
|
|
|
|
@@ -945,12 +950,20 @@ async def upload_casualties(
|
|
|
db.query(EventBase).filter(EventBase.event_code == eventId).update(body)
|
|
|
db.commit()
|
|
|
|
|
|
- if 'fileNames' in body:
|
|
|
+ if len(fileNames) > 0:
|
|
|
+
|
|
|
+ event_base = db.query(EventBase).filter(EventBase.event_code == eventId).first()
|
|
|
+
|
|
|
+ # 删除之前的总结报告,保留当前这一份
|
|
|
+ db.query(EventFile).filter(and_(EventFile.from_scenario == 'event_summary_file', EventFile.foreign_key == event_base.event_code)).update({"del_flag": "2"})
|
|
|
+ db.commit()
|
|
|
+
|
|
|
event_files = [
|
|
|
EventFile(
|
|
|
event_id=event_base.id,
|
|
|
file_name=fileName["name"], # 使用 fileName["name"] 作为文件名
|
|
|
- file_path=f'/data/upload/mergefile/{fileName["url"]}',
|
|
|
+ file_path=f'/data/upload/mergefile/uploads/{fileName["url"]}',
|
|
|
+ file_size=os.path.getsize(f'/data/upload/mergefile/uploads/{fileName["url"]}'),
|
|
|
storage_file_name=fileName["url"],
|
|
|
foreign_key=event_base.event_code,
|
|
|
from_scenario="event_summary_file",
|
|
@@ -958,7 +971,7 @@ async def upload_casualties(
|
|
|
create_time=datetime.now(),
|
|
|
del_flag='0'
|
|
|
)
|
|
|
- for fileName in body['fileNames'] # body['fileNames'] 现在是一个包含对象的数组,每个对象都有 'name' 和 'url' 属性
|
|
|
+ for fileName in fileNames # body['fileNames'] 现在是一个包含对象的数组,每个对象都有 'name' 和 'url' 属性
|
|
|
]
|
|
|
db.add_all(event_files)
|
|
|
db.commit()
|