from fastapi import APIRouter, Request, Depends, HTTPException, Query, BackgroundTasks from sqlalchemy.exc import IntegrityError from fastapi.responses import HTMLResponse, FileResponse from fastapi.responses import JSONResponse from database import get_db from sqlalchemy import text, exists, and_, or_, not_ from sqlalchemy.orm import Session from models import * import json import random import os from sqlalchemy import create_engine, select from typing import Optional from utils.StripTagsHTMLParser import * from utils.three_proofing_responsible_util import * from utils.ry_system_util import * from common.db import db_event_management, db_user, db_area, db_emergency_plan from common.security import valid_access_token import traceback from utils import * from datetime import datetime, timedelta import pandas as pd import xlrd from common.db import db_dept from exceptions import AppException router = APIRouter() @router.get('/list') async def get_emergency_contact_list( page: int = Query(1, gt=0, description='页码'), pageSize: int = Query(10, gt=0, description='每页条目数量'), db: Session = Depends(get_db), user_id=Depends(valid_access_token) ): try: # 构建查询 query = db.query(ThreeProofingResponsiblePersonImportFileStatus) query = query.filter(ThreeProofingResponsiblePersonImportFileStatus.user_id == user_id) # if area_code: # query = query.filter(ThreeProofingResponsiblePerson.area_code==area_code) # 计算总条目数 total_items = query.count() # 排序 query = query.order_by(ThreeProofingResponsiblePersonImportFileStatus.create_time.desc()) # 执行分页查询 infos = query.offset((page - 1) * pageSize).limit(pageSize).all() # 将查询结果转换为列表形式的字典 infos_list = [] for info in infos: infos_list.append({ "id": info.id, "file_uuid": info.file_uuid, "file_name": info.file_name, "warning_num":info.warning_num, "error_num":info.error_num, "status": info.status, "create_time":info.create_time.strftime('%Y-%m-%d %H:%M:%S'), "update_time": info.update_time.strftime('%Y-%m-%d %H:%M:%S'), "remark": info.remark }) # 返回结果+ return { "code": 200, "msg": "成功", "data": infos_list, "total": total_items } except Exception as e: # 处理异常 traceback.print_exc() raise HTTPException(status_code=500, detail=str(e))