|
@@ -74,6 +74,56 @@ async def get_emergency_plan_list(
|
|
|
# 处理异常
|
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
|
|
|
+@router.get('/plan/{planNum}')
|
|
|
+async def get_emergency_plan(
|
|
|
+ planNum: str ,
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ # 构建查询
|
|
|
+ query = db.query(EmergencyPlan)
|
|
|
+ query = query.filter(EmergencyPlan.del_flag != '2')
|
|
|
+ # 应用查询条件
|
|
|
+ if planNum:
|
|
|
+ query = query.filter(EmergencyPlan.plan_number == planNum)
|
|
|
+
|
|
|
+ # 执行查询
|
|
|
+ emergency_plan = query.first()
|
|
|
+
|
|
|
+ file_query = db.query(EmergencyFile)
|
|
|
+ file_query = file_query.filter(EmergencyFile.del_flag != '2')
|
|
|
+
|
|
|
+ file_query = file_query.filter(EmergencyFile.from_scenario == 'emergencyPlans_plan')
|
|
|
+ file_query = file_query.filter(EmergencyFile.foreign_key == emergency_plan.plan_id)
|
|
|
+ files = file_query.all()
|
|
|
+ # 将查询结果转换为列表形式的字典
|
|
|
+ emergency_plans =
|
|
|
+ {
|
|
|
+ "planUid": emergency_plan.plan_id,
|
|
|
+ "planId": emergency_plan.plan_number,
|
|
|
+ "planName": emergency_plan.plan_name,
|
|
|
+ "planType": emergency_plan.plan_type_desc,
|
|
|
+ "organUnit": emergency_plan.organizing_unit,
|
|
|
+ "document": emergency_plan.document_number,
|
|
|
+ "publish_date": emergency_plan.publish_date.strftime('%Y-%m-%d'),
|
|
|
+ file_list:[{
|
|
|
+ "file_name":file.file_name,
|
|
|
+ "file_name_desc":file.file_name_desc,
|
|
|
+ "file_url":"/api/file/download/%s"%file.file_name
|
|
|
+ } for file in files ]
|
|
|
+ }
|
|
|
+
|
|
|
+ # 返回结果
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "成功获取预案详情",
|
|
|
+ "data": emergency_plans
|
|
|
+ }
|
|
|
+ except Exception as e:
|
|
|
+ # 处理异常
|
|
|
+ raise HTTPException(status_code=500, detail=str(e))
|
|
|
+
|
|
|
+
|
|
|
class File(BaseModel):
|
|
|
file_name:str
|
|
|
file_name_desc:str
|