Ver código fonte

补充演练列表查询接口

baoyubo 9 meses atrás
pai
commit
f95d2229bf
2 arquivos alterados com 54 adições e 2 exclusões
  1. 3 2
      models/yjya_base.py
  2. 51 0
      routers/api/emergencyPlans/__init__.py

+ 3 - 2
models/yjya_base.py

@@ -64,9 +64,10 @@ class EmergencyDrill(Base):
     drill_id = Column(String(50), comment='演练uid' )
     drill_name = Column(String(255), nullable=False, comment='演练名称')
     organizing_unit = Column(String(255), nullable=False, comment='演练单位')
-    plan_id = Column(String(50), nullable=False,comment='预案uid')
+    plan_number = Column(String(50), nullable=False,comment='预案编号')
     # 前端确认传输什么数据
     drill_location = Column(String(255), comment='演练地点')
+    drillProject = Column(String(255), comment='演练方案')
     drill_lon = Column(Numeric(9, 6), comment='演练经度')
     drill_lat = Column(Numeric(9, 6), comment='演练纬度')
     planned_annual = Column(Integer, comment='计划年度')
@@ -90,5 +91,5 @@ class EmergencyTrainingSession(Base):
     training_location = Column(String(255), comment='培训地点')
     drill_lon = Column(Numeric(9, 6), comment='培训经度')
     drill_lat = Column(Numeric(9, 6), comment='培训纬度')
-    plan_id = Column(String(50), nullable=False,comment='预案uid')
+    plan_number = Column(String(50), nullable=False,comment='预案编号')
     del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')

+ 51 - 0
routers/api/emergencyPlans/__init__.py

@@ -220,3 +220,54 @@ async def create_emergency_plan(
 #             e = detail
 #         raise HTTPException(status_code=500, detail=str(e))
 
+
+@router.get('/drill/list')
+async def get_emergency_plan_list(
+    planNum: str = Query(None, description='预案编号'),
+    db: Session = Depends(get_db)
+):
+    try:
+        # 构建查询
+        query = db.query(EmergencyDrill)
+        query = query.filter(EmergencyDrill.del_flag != '2')
+        # 应用查询条件
+        if plan_type:
+            query = query.filter(EmergencyPlan.plan_number == planNum)
+
+
+            # 计算总条目数
+            total_items = query.count()
+
+            # 执行分页查询
+            emergency_drill = query.offset((page - 1) * page_size).limit(page_size).all()
+
+            # 将查询结果转换为列表形式的字典
+            emergency_drill_list = [
+                {
+                    "drillId": drill.drill_id,
+                    "drillName": drill.drill_name,
+                    "drillUnit": drill.organizing_unit,
+                    "year": drill.planned_annual,
+                    "drillTime": drill.planned_time.strftime('%Y-%m-%d %H:%M:%S'),
+                    "drillAddress": drill.drill_location,
+                    "drillProject":drillProject,
+                    "drillVideo":"视频链接",
+                    "drillPicture": "图片链接"
+                }
+                for drill in emergency_drill
+            ]
+
+
+            # 返回结果
+            return {
+                "code": 200,
+                "msg": "成功",
+                "data": emergency_drill_list,
+                "total": total_items,
+                "page": page,
+                "page_size": page_size,
+                "total_pages": (total_items + page_size - 1) // page_size
+            }
+    except Exception as e:
+        # 处理异常
+        raise HTTPException(status_code=500, detail=str(e))