import_status.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. from fastapi import APIRouter, Request, Depends, HTTPException, Query, BackgroundTasks
  2. from sqlalchemy.exc import IntegrityError
  3. from fastapi.responses import HTMLResponse, FileResponse
  4. from fastapi.responses import JSONResponse
  5. from database import get_db
  6. from sqlalchemy import text, exists, and_, or_, not_
  7. from sqlalchemy.orm import Session
  8. from models import *
  9. import json
  10. import random
  11. import os
  12. from sqlalchemy import create_engine, select
  13. from typing import Optional
  14. from utils.StripTagsHTMLParser import *
  15. from utils.three_proofing_responsible_util import *
  16. from utils.ry_system_util import *
  17. from common.db import db_event_management, db_user, db_area, db_emergency_plan
  18. from common.security import valid_access_token
  19. import traceback
  20. from utils import *
  21. from datetime import datetime, timedelta
  22. import pandas as pd
  23. import xlrd
  24. from common.db import db_dept
  25. from exceptions import AppException
  26. router = APIRouter()
  27. @router.get('/list')
  28. async def get_emergency_contact_list(
  29. page: int = Query(1, gt=0, description='页码'),
  30. pageSize: int = Query(10, gt=0, description='每页条目数量'),
  31. db: Session = Depends(get_db),
  32. user_id=Depends(valid_access_token)
  33. ):
  34. try:
  35. # 构建查询
  36. query = db.query(ThreeProofingResponsiblePersonImportFileStatus)
  37. query = query.filter(ThreeProofingResponsiblePersonImportFileStatus.user_id == user_id)
  38. # if area_code:
  39. # query = query.filter(ThreeProofingResponsiblePerson.area_code==area_code)
  40. # 计算总条目数
  41. total_items = query.count()
  42. # 排序
  43. query = query.order_by(ThreeProofingResponsiblePersonImportFileStatus.create_time.desc())
  44. # 执行分页查询
  45. infos = query.offset((page - 1) * pageSize).limit(pageSize).all()
  46. # 将查询结果转换为列表形式的字典
  47. infos_list = []
  48. for info in infos:
  49. infos_list.append({
  50. "id": info.id,
  51. "file_uuid": info.file_uuid,
  52. "file_name": info.file_name,
  53. "warning_num":info.warning_num,
  54. "error_num":info.error_num,
  55. "status": info.status,
  56. "create_time":info.create_time.strftime('%Y-%m-%d %H:%M:%S'),
  57. "update_time": info.update_time.strftime('%Y-%m-%d %H:%M:%S'),
  58. "remark": info.remark
  59. })
  60. # 返回结果+
  61. return {
  62. "code": 200,
  63. "msg": "成功",
  64. "data": infos_list,
  65. "total": total_items
  66. }
  67. except Exception as e:
  68. # 处理异常
  69. traceback.print_exc()
  70. raise HTTPException(status_code=500, detail=str(e))