libushang před 3 měsíci
rodič
revize
b81aac068a

+ 7 - 1
routers/api/eventManagement/event.py

@@ -870,7 +870,13 @@ async def lauch_emergency_plan(
 
     return {
         "code": 200,
-        "msg": "启动预案成功"
+        "msg": "启动预案成功",
+        "data": {
+            "event_id": eventId,
+            "plan_id": event_row.plan_id,
+            "response_level": event_row.response_level,
+            "event_type": event_row.event_type
+        }
     }
 
 

+ 92 - 0
routers/api/resourceProvison/emergency_resources.py

@@ -19,6 +19,9 @@ from utils import *
 from sqlalchemy import create_engine, Column, Integer, String, Boolean, MetaData, Table, \
     inspect, exists,or_,text,insert,asc,desc
 
+# 目录在文档上传接口写死
+UPLOAD_mergefile_PATH = '/data/upload/mergefile'
+
 router = APIRouter()
 
 # 水利工程管理
@@ -319,7 +322,96 @@ def update_unit(unit_id: int, update_data: UnitSchema, db: Session = Depends(get
         traceback.print_exc()
         db.rollback()
         raise HTTPException(status_code=400, detail=str(e))
+    
+# 导入
+@router.post('/rescue_units/import')
+async def import_doc(
+    request: Request, 
+    db: Session = Depends(get_db), 
+    body = Depends(remove_xss_json), 
+    user_id = Depends(valid_access_token)
+):
+    # print(body)
+    
+    try:
+        filename = body['filename']
+        if len(filename) == 0:
+            raise Exception()
+        
+        file = filename[0]
+        url = file['url']
+        file_path = f"{UPLOAD_mergefile_PATH}/uploads/{url}"
+        file_path = os.path.abspath(file_path)
+        print(file_path)
+        
+        book = xlrd.open_workbook(file_path)
+        sheet = book.sheet_by_index(0)
+
+        data = []
+        '''
+        for i in range(9, sheet.nrows):
+
+            # 预案名称
+            plan_name = sheet.cell(i, 0).value
+
+            # 一级目录
+            title1 = sheet.cell(i, 1).value
+
+            # 二级目录
+            title2 = sheet.cell(i, 2).value
+
+            # 三级目录
+            title3 = sheet.cell(i, 3).value
 
+            # 正文
+            content = sheet.cell(i, 4).value
+
+            if len(plan_name) < 1 and len(title1) < 1 and len(title2) < 1 and len(title3) < 1 and len(content) < 1 :
+                break
+
+            data.append({
+                'plan_name': plan_name,
+                'title1': title1,
+                'title2': title2,
+                'title3': title3,
+                'content': content,
+            })
+
+        if len(data) > 0:
+            db.query(EmergencyDoc).filter(EmergencyDoc.plan_id == plan_id).delete()
+            db.commit()
+
+        title1 = ''
+        content = ''
+        docs = []
+        for n in data:
+            if n['title1'] != '':
+                if len(docs) > 0:
+                    add_doc_1(db, title1, content, docs, plan_id)
+
+                docs = []
+                title1 = n['title1']
+                content = n['content']
+                if n['title2'] != '':
+                    docs.append(n)
+                continue
+
+            docs.append(n)
+
+        if len(docs) > 0:
+            add_doc_1(db, title1, content, docs, plan_id)
+        '''
+
+        return {
+            'code': 200,
+            'msg': '导入成功'
+        }
+    except Exception:
+        traceback.print_exc()
+        return {
+            'code': 500,
+            'msg': '导入发生异常'
+        }
 
 #救援人员接口
 

+ 5 - 1
routers/api/upload_file/__init__.py

@@ -170,7 +170,11 @@ async def mergefile(identifier: str = Query(''),
 
 
 @router.get("/download/{filename}")
-async def download_file(filename: str,filenameDesc: str = None, user_id=Depends(valid_access_token)):
+async def download_file(
+    filename: str,
+    filenameDesc: str = None, 
+    user_id = Depends(valid_access_token)
+):
     """
     根据提供的文件名下载文件。
     :param filename: 要下载的文件的名称。