瀏覽代碼

no message

libushang 6 月之前
父節點
當前提交
0094b11c25
共有 2 個文件被更改,包括 90 次插入4 次删除
  1. 1 0
      models/event_base.py
  2. 89 4
      routers/api/eventManagement/event.py

+ 1 - 0
models/event_base.py

@@ -103,6 +103,7 @@ class EventEmergencyNotify(Base):
     yzy_content = Column(String, default="", comment='消息内容')
     sent_time = Column(DateTime, default=datetime.now, comment='签名时间')
     sent_status = Column(Integer, default='0', comment='发送状态 0 待发送 1 发送成功 9 发送失败')
+    comment = Column(String, default="", server_default="", comment='领导批示')
 
     class Config:
         orm_mode = True

+ 89 - 4
routers/api/eventManagement/event.py

@@ -684,6 +684,79 @@ async def martch_emergency_plan(
         }
     }
 
+# 取消预案
+@router.post("/cancel_emergency_plan")
+async def cancel_emergency_plan(
+    request: Request,  
+    body = Depends(remove_xss_json), 
+    db: Session = Depends(get_db)
+):
+    eventId = body['eventId']
+
+    event_row = db.query(EventBase).filter(EventBase.event_code == eventId).first()
+    if event_row is None:
+        return {
+            "code": 500,
+            "msg": "事件编号不存在"
+        }
+    
+    plan_id = event_row.plan_id
+    if plan_id != "":
+        # 清空之前的下发内容
+        db.query(EventEmergencyNotify).filter(and_(EventEmergencyNotify.plan_id == plan_id, EventEmergencyNotify.event_id == eventId)).delete()
+        db.commit()
+
+    event_row.plan_id = ""
+    event_row.response_level = ""
+    db.commit()
+    
+    return {
+        "code": 200,
+        "msg": "取消响应成功"
+    }
+
+#变更响应登记    
+@router.post("/update_emergency_plan_response_level")
+async def update_emergency_plan_response_level(
+    request: Request,  
+    body = Depends(remove_xss_json), 
+    db: Session = Depends(get_db)
+):
+    eventId = body['eventId']
+    plan_id = body['plan_id']
+    response_level = body['response_level']
+
+    event_row = db.query(EventBase).filter(EventBase.event_code == eventId).first()
+    if event_row is None:
+        return {
+            "code": 500,
+            "msg": "事件编号不存在"
+        }
+    
+    plan_row = db.query(EmergencyPlan).filter(EmergencyPlan.plan_number == plan_id).first()
+    if plan_row is None:
+        return {
+            "code": 500,
+            "msg": "预案不存在"
+        }
+    
+    # 绑定预案ID和响应等级
+    event_row.plan_id = plan_row.plan_number
+    event_row.response_level = response_level
+    event_row.event_type = plan_row.event_type
+    event_row.del_flag = "0" # 临时事件改为正式事件
+    db.commit()
+
+    # 清空之前的下发内容
+    # db.query(EventEmergencyNotify).filter(and_(EventEmergencyNotify.plan_id == plan_id, EventEmergencyNotify.event_id == eventId)).delete()
+    # db.commit()
+
+    return {
+        "code": 200,
+        "msg": "变更响应登记成功"
+    }
+    
+
 
 # 启动预案
 @router.post("/lauch_emergency_plan")
@@ -702,11 +775,13 @@ async def lauch_emergency_plan(
             "msg": "事件编号不存在"
         }
     
+    '''
     if event_row.plan_id != '' and event_row.response_level != '':
         return {
             "code": 500,
             "msg": "预案已启动"
         }
+    '''
     
     plan_row = db.query(EmergencyPlan).filter(EmergencyPlan.plan_number == plan_id).first()
     if plan_row is None:
@@ -721,7 +796,7 @@ async def lauch_emergency_plan(
     event_row.event_type = plan_row.event_type
     event_row.del_flag = "0" # 临时事件改为正式事件
     db.commit()
-    
+
     return {
         "code": 200,
         "msg": "启动预案成功"
@@ -749,12 +824,14 @@ async def send_emergency_plan_task_by_yzy(
             "msg": "事件编号不存在"
         }
     
+    '''
     c1 = db.query(EventEmergencyNotify).filter(EventEmergencyNotify.event_id == eventId).count()
     if c1 > 0:
         return {
             "code": 500,
             "msg": "预案任务已下发"
         }
+    '''
     
     event_info = get_model_dict(event_row)
     plan_id = event_info['plan_id']
@@ -763,7 +840,7 @@ async def send_emergency_plan_task_by_yzy(
     if plan_id is None or plan_id == '':
         return {
             "code": 500,
-            "msg": "未关联预案"
+            "msg": "请先启动预案"
         }
     
     row = db.query(EmergencyPlan).filter(EmergencyPlan.plan_number == plan_id).first()
@@ -783,6 +860,10 @@ async def send_emergency_plan_task_by_yzy(
             "code": 500,
             "msg": "该预案没有相关通知部门"
         }
+    
+    # 清空之前的下发内容
+    db.query(EventEmergencyNotify).filter(and_(EventEmergencyNotify.plan_id == plan_id, EventEmergencyNotify.event_id == eventId)).delete()
+    db.commit()
 
     for row in rows:
         dept_id = row.dept_id
@@ -793,9 +874,11 @@ async def send_emergency_plan_task_by_yzy(
             leader_content = tasks[str(dept_id)]
 
         # 已下发的过滤掉,避免重发
+        '''
         row_exists = db.query(EventEmergencyNotify).filter(and_(EventEmergencyNotify.plan_id == plan_id, EventEmergencyNotify.event_id == eventId, EventEmergencyNotify.dept_id == dept_id)).first()
         if row_exists is not None:
             continue
+        '''
 
         if leader_content != "":
             # 领导批示
@@ -844,7 +927,8 @@ async def send_emergency_plan_task_by_yzy(
             yzy_user_id = yzy_user_id,
             yzy_content = yzy_content,
             sent_time = datetime.now(),
-            sent_status = 0
+            sent_status = 0,
+            comment = leader_content # 领导批示
         )
 
         db.add(event_emergency_notify)
@@ -940,7 +1024,8 @@ async def emergency_plan_task_list(
             "sent_status": row.sent_status,
             "sent_status_text": get_sent_status_text(row.sent_status),
             "yzy_content": row.yzy_content,
-            "nick_name": row.nick_name
+            "nick_name": row.nick_name,
+            "comment": row.comment
         }
         for row in rows
     ]