Parcourir la source

补充培训列表查询接口

baoyubo il y a 9 mois
Parent
commit
ac49a50340
2 fichiers modifiés avec 90 ajouts et 38 suppressions
  1. 2 1
      models/yjya_base.py
  2. 88 37
      routers/api/emergencyPlans/__init__.py

+ 2 - 1
models/yjya_base.py

@@ -82,13 +82,14 @@ class EmergencyTrainingSession(Base):
 
     id = Column(Integer, autoincrement=True, primary_key=True)
     training_id = Column(String(50), nullable=False,comment='培训uid')
-    training_content = Column(String(255), nullable=False, comment='培训内容')
+    training_theme = Column(String(100), nullable=False,comment='培训主题')
     training_unit = Column(String(255), nullable=False, comment='培训单位')
     participant_count = Column(Integer, comment='参与人数')
     training_method = Column(String(255), comment='培训方式')
     start_time = Column(DateTime, comment='培训开始时间')
     end_time = Column(DateTime, comment='培训结束时间')
     training_location = Column(String(255), comment='培训地点')
+    training_content = Column(Text, nullable=False, comment='培训内容')
     drill_lon = Column(Numeric(9, 6), comment='培训经度')
     drill_lat = Column(Numeric(9, 6), comment='培训纬度')
     plan_number = Column(String(50), nullable=False,comment='预案编号')

+ 88 - 37
routers/api/emergencyPlans/__init__.py

@@ -35,43 +35,41 @@ async def get_emergency_plan_list(
         if plan_name:
             query = query.filter(EmergencyPlan.plan_name.like(f'%{plan_name}%'))
 
-            # 计算总条目数
-            total_items = query.count()
-
-            # 执行分页查询
-            emergency_plans = query.offset((page - 1) * page_size).limit(page_size).all()
+        # 计算总条目数
+        total_items = query.count()
 
-            # 将查询结果转换为列表形式的字典
-            emergency_plans_list = [
-                {
-                    "plan_id": plan.plan_id,
-                    "plan_number": plan.plan_number,
-                    "plan_name": plan.plan_name,
-                    "plan_type_desc": plan.plan_type_desc,
-                    "organizing_unit": plan.organizing_unit,
-                    "document_number": plan.document_number,
-                    "publish_date": plan.publish_date.strftime('%Y-%m-%d %H:%M:%S')
-                }
-                for plan in emergency_plans
-            ]
+        # 执行分页查询
+        emergency_plans = query.offset((page - 1) * page_size).limit(page_size).all()
 
-            # 构建分页信息
-            pagination_info = {
-                "total": total_items,
-                "page": page,
-                "page_size": page_size,
-                "total_pages": (total_items + page_size - 1) // page_size
+        # 将查询结果转换为列表形式的字典
+        emergency_plans_list = [
+            {
+                "planUid": plan.plan_id,
+                "planId": plan.plan_number,
+                "planName": plan.plan_name,
+                "planType": plan.plan_type_desc,
+                "organUnit": plan.organizing_unit,
+                "document": plan.document_number,
+                "publish_date": plan.publish_date.strftime('%Y-%m-%d')
             }
+            for plan in emergency_plans
+        ]
 
-            # 返回结果
-            return {
-                "code": 200,
-                "msg": "成功获取预案列表",
-                "data": {
-                    "list": emergency_plans_list
-                },
-                "pagination": pagination_info
-            }
+        # 构建分页信息
+        pagination_info = {
+
+        }
+
+        # 返回结果
+        return {
+            "code": 200,
+            "msg": "成功获取预案列表",
+            "data": emergency_plans_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))
@@ -255,10 +253,10 @@ async def get_emergency_plan_list(
                 "drillTime": drill.planned_time.strftime('%Y-%m-%d %H:%M:%S'),
                 "drillAddress": drill.drill_location,
                 "drillProject":drill.drillProject,
-                "drillVideo":[{    'file_name':'123456.doc',
-    'file_name_desc':'测试.doc'}],
-                "drillPicture": [{    'file_name':'123456.doc',
-    'file_name_desc':'测试.doc'}]
+                "drillVideo":[{    'file_name':'123456.mp4',
+    'file_name_desc':'测试.mp4'}],
+                "drillPicture": [{    'file_name':'123456.png',
+    'file_name_desc':'测试.png'}]
             }
             for drill in emergency_drill
         ]
@@ -274,6 +272,59 @@ async def get_emergency_plan_list(
             "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))
+
+
+@router.get('/training/list')
+async def get_emergency_plan_list(
+    planNum: str = Query(None, description='预案编号'),
+    page: int = Query(1, gt=0, description='页码'),
+    page_size: int = Query(10, gt=0, description='每页条目数量'),
+    db: Session = Depends(get_db)
+):
+    try:
+        # 构建查询
+        query = db.query(EmergencyTrainingSession)
+        query = query.filter(EmergencyTrainingSession.del_flag != '2')
+        # 应用查询条件
+        if planNum:
+            query = query.filter(EmergencyTrainingSession.plan_number == planNum)
+        else:
+            return 'planNum不存在'
+
+        # 计算总条目数
+        total_items = query.count()
+
+        # 执行分页查询
+        emergency_training = query.all()   # .offset((page - 1) * page_size).limit(page_size)
+        # print(emergency_drill)
+        # 将查询结果转换为列表形式的字典
+        emergency_training_list = [
+            {
+                "drillId": training.drill_id,
+                "drillName": training.drill_name,
+                "drillUnit": training.organizing_unit,
+                "year": training.planned_annual,
+                "drillTime": training.planned_time.strftime('%Y-%m-%d %H:%M:%S'),
+                "drillAddress": training.drill_location,
+                "drillProject":training.drillProject
+            }
+            for training in emergency_training
+        ]
+
+
+            # 返回结果
+        return {
+            "code": 200,
+            "msg": "成功",
+            "data": emergency_training_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))