Selaa lähdekoodia

调整预案管理表结构

baoyubo 10 kuukautta sitten
vanhempi
commit
3ce6727e1f
2 muutettua tiedostoa jossa 84 lisäystä ja 1 poistoa
  1. 29 1
      models/yjya_base.py
  2. 55 0
      routers/api/emergencyPlans/__init__.py

+ 29 - 1
models/yjya_base.py

@@ -53,6 +53,8 @@ class EmergencyFile(Base):
     from_scenario = Column(String(50), comment='对应标识 --技术字段')
     create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
     update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
+    create_dept = Column(BigInteger, default=None, comment='创建部门')
+    create_by = Column(BigInteger, default=None, comment='创建者')
     del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)') #更新预案信息的时候 先将原有的进行备注删除
 
     # 关联到 EmergencyPlan 实例
@@ -75,6 +77,8 @@ class EmergencyDrill(Base):
     planned_time = Column(DateTime, comment='计划演练时间')
     create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
     update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
+    create_dept = Column(BigInteger, default=None, comment='创建部门')
+    create_by = Column(BigInteger, default=None, comment='创建者')
     del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
 
 
@@ -94,4 +98,28 @@ class EmergencyTrainingSession(Base):
     training_lon = Column(Numeric(9, 6), comment='培训经度')
     training_lat = Column(Numeric(9, 6), comment='培训纬度')
     plan_number = Column(String(50), nullable=False,comment='预案编号')
-    del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
+    create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
+    update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
+    create_dept = Column(BigInteger, default=None, comment='创建部门')
+    create_by = Column(BigInteger, default=None, comment='创建者')
+    del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
+
+
+class EmergencyResponse(Base):
+    __tablename__ = 'emergency_responses'
+
+    id = Column(Integer, autoincrement=True, primary_key=True)
+    plan_id = Column(String(50), nullable=False,comment='预案id')
+    response_id = Column(String(50), nullable=False, comment='响应编号')
+    event_name = Column(String(255), nullable=False, comment='事件名称')
+    event_type = Column(String(100), nullable=False, comment='事件类型')
+    response_unit = Column(String(255), comment='响应单位')
+    event_address = Column(String(255), comment='事件地点')
+    response_level = Column(String(100), comment='响应级别')
+    response_start_time = Column(DateTime, comment='响应开始时间')
+    response_end_time = Column(DateTime, comment='响应结束时间')
+    create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
+    update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
+    create_dept = Column(BigInteger, default=None, comment='创建部门')
+    create_by = Column(BigInteger, default=None, comment='创建者')
+    del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')

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

@@ -978,3 +978,58 @@ async def delete_emergency_training(
         if str(e) == '':
             e = detail
         raise HTTPException(status_code=500, detail=str(e))
+
+
+@router.get('/response/list/{plan_id}')
+async def get_emergency_response_list(
+    plan_id:str,
+    page: int = Query(1, gt=0, description='页码'),
+    pageSize: int = Query(5, gt=0, description='每页条目数量'),
+    db: Session = Depends(get_db)
+):
+    try:
+        # 查询所有响应事件
+
+        query = db.query(EmergencyResponse)
+        query = query.filter(EmergencyResponse.del_flag!='2')
+        query = query.filter(EmergencyResponse.plan_id==plan_id)
+
+        # 计算总条目数
+        total_items = query.count()
+
+        # 排序
+
+        query = query.order_by(EmergencyResponse.response_start_time.desc())
+        # 执行分页查询
+        responses = query.offset((page - 1) * pageSize).limit(pageSize).all()
+
+
+
+        # 将查询结果转换为列表形式的字典
+        response_list = [
+            {
+                "responseId": response.response_id,
+                "eventName": response.event_name,
+                "eventType": response.event_type,
+                "responseUnit": response.response_unit,
+                "eventAddress": response.event_address,
+                "responseLevel": response.response_level,
+                "responseStartTime": response.response_start_time.strftime('%Y-%m-%d %H:%M:%S') if response.response_start_time else '',
+                "responseEndTime": response.response_end_time.strftime('%Y-%m-%d %H:%M:%S') if response.response_end_time else '',
+            }
+            for response in responses
+        ]
+
+        # 返回结果
+        return {
+            "code": 200,
+            "msg": "成功获取响应列表",
+            "data": response_list,
+            "total": total_items,
+            "page": page,
+            "pageSize": pageSize,
+            "totalPages": (total_items + pageSize - 1) // pageSize
+        }
+    except Exception as e:
+        # 处理异常
+        raise HTTPException(status_code=500, detail=str(e))