|
@@ -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
|
|
|
]
|