libushang 6 bulan lalu
induk
melakukan
07a116e8af

+ 98 - 1
routers/api/eventManagement/event_xp.py

@@ -11,7 +11,7 @@ import random
 from sqlalchemy import create_engine, select
 from typing import Optional
 from utils.StripTagsHTMLParser import *
-from common.db import db_event_management, db_dept, db_user, db_area, db_emergency_plan
+from common.db import db_event_management, db_dept, db_user, db_area, db_emergency_plan, db_dict
 from common.security import valid_access_token
 import traceback
 from utils import *
@@ -126,6 +126,7 @@ async def create_leader_user(
     db: Session = Depends(get_db),
     user_id = Depends(valid_access_token)
 ):
+    '''
     event_id = body['event_id']
     if 'users' not in body:
 
@@ -151,8 +152,104 @@ async def create_leader_user(
         )
         db.add(new_user)
         db.commit()
+    '''
 
+    notify_id = body['id']
+    notify_info = db.query(EventEmergencyNotify).filter(EventEmergencyNotify.id == notify_id).first()
+    dept_id = notify_info.dept_id
+    dept_name = notify_info.dept_name
+    event_id = notify_info.event_id
+    
+    data1 = body['data1']
+    if data1 is not None and len(data1) > 0:
+        db.query(EventLeaderUser).filter(and_(EventLeaderUser.user_type == '赶赴现场人员', EventLeaderUser.del_flag == '0').update({"del_flag": "1"}))
+        db.commit()
+        
+        for n in data1:            
+            new_user = EventLeaderUser(
+                unit_id = dept_id,
+                unit_name = dept_name,
+                event_id = event_id,
+                user_type = '赶赴现场人员',
+                user_name = n['name'],
+                mobile = n['phone'],
+                create_time = datetime.now(),
+                recorded_by = user_id,
+                del_flag = '0'
+            )
+            db.add(new_user)
+            db.commit()
+
+    data2 = body['data2']
+    if data2 is not None and len(data2) > 0:
+        db.query(EventLeaderUser).filter(and_(EventLeaderUser.user_type == '指挥部值守人员', EventLeaderUser.del_flag == '0').update({"del_flag": "1"}))
+        db.commit()
+        
+        for n in data2:
+            new_user = EventLeaderUser(
+                unit_id = dept_id,
+                unit_name = dept_name,
+                event_id = event_id,
+                user_type = '指挥部值守人员',
+                user_name = n['name'],
+                mobile = n['phone'],
+                create_time = datetime.now(),
+                recorded_by = user_id,
+                del_flag = '0'
+            )
+            db.add(new_user)
+            db.commit()
+    
     return {
         "code": 200,
         "msg": "上报事件指挥人员成功"
     }
+
+
+@router.get('/emergency_notify/detail')
+async def get_info_detail(
+    request: Request, 
+    id: str = Query(None, description='信息编号'),
+    db: Session = Depends(get_db),
+    user_id = Depends(valid_access_token)):
+    
+    try: 
+        # 构建查询
+        notify_info = db.query(EventEmergencyNotify).filter(EventEmergencyNotify.id == id).first()
+        if notify_info is not None:
+            event_id = notify_info.event_id
+            plan_id = notify_info.plan_id
+            sent_time = notify_info.sent_time
+
+            plan_info = db.query(EmergencyPlan).filter(EmergencyPlan.plan_number == plan_id).first()
+            plan_name = plan_info.plan_name
+            
+            event_info  = db.query(EventBase).filter(EventBase.event_code == event_id).first()
+            event_title  = db_event_management.get_event_title(db, event_id)
+            response_level = db_dict.get_dict_label(db, "response_level", event_info.response_level)
+
+            data = {
+                "id": notify_info.id,
+                "title": f"{plan_name}{response_level}通知",
+                "response_level": response_level,
+                "sent_time": sent_time.strftime("%Y-%m-%d %H:%M"),
+                "event_title": event_title,
+                "content": notify_info.yzy_content            
+            }
+
+            return {
+                "code": 200,
+                "msg": "查询成功",
+                "data": data
+            }
+        else:
+            return {
+                "code": 500,
+                "msg": "查询失败"
+            }
+
+    except Exception as e:
+        # 处理异常
+        traceback.print_exc()
+        raise HTTPException(status_code=500, detail=str(e))
+    

+ 2 - 1
routers/api/infoPublish/msg_center.py

@@ -180,12 +180,13 @@ async def get_center_list(
 
                     detail = {
                         "title": row.title,
+                        "event_id": row.event_id,
                         "organizing_unit": plan_info.organizing_unit, # 发布单位
                         "plan_name": plan_name, # 预案名称
                         "response_level": response_level, # 相应级别
                         "sent_time": get_datetime_str(sent_time), # 发送时间
                         "yzy_content": notify_info.yzy_content, # 消息内容
-                        "detail_url": "/infoDetails?id="+str(row.id)
+                        "detail_url": "/event/emergencyNotify?id="+foreign_key
                     }
                 except:
                     traceback.print_exc()