1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- from fastapi import APIRouter, Request, Depends,Query, HTTPException, status
- from common.security import valid_access_token
- from fastapi.responses import JSONResponse
- from sqlalchemy.orm import Session
- from sqlalchemy import and_, or_
- from pydantic import BaseModel
- from datetime import datetime
- from database import get_db
- from typing import List
- from models import *
- from utils import *
- import json
- import traceback
- from . import response
- router = APIRouter()
- @router.get('/list')
- async def get_emergency_response_list(
- planNum:str,
- page: int = Query(1, gt=0, description='页码'),
- pageSize: int = Query(5, gt=0, description='每页条目数量'),
- db: Session = Depends(get_db),
- user_id = Depends(valid_access_token)
- ):
- try:
- # 查询所有响应事件
- query = db.query(EmergencyResponse)
- query = query.filter(EmergencyResponse.del_flag!='2')
- query = query.filter(EmergencyResponse.plan_id==planNum)
- # 计算总条目数
- 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:
- # 处理异常
- traceback.print_exc()
- raise HTTPException(status_code=500, detail=str(e))
|