#!/usr/bin/env python3 # -*- coding: utf-8 -*- from fastapi import APIRouter, Request, Depends,Query, HTTPException, status,BackgroundTasks 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, timedelta from dateutil.relativedelta import relativedelta from database import get_db from typing import List from models import * from utils import * from utils.ry_system_util import * from utils.riskManagement_uitl import * import json import traceback router = APIRouter() @router.get('/list') async def get_inspection_task_list( business: str = Query(None, description='巡查业务'), cycle :str = Query(None, description='巡查周期'), 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(RiskManagementInspectionTask) query = query.filter(RiskManagementInspectionTask.del_flag != '2') # 应用查询条件 if business: query = query.filter(RiskManagementInspectionTask.inspection_business == business) if cycle: query = query.filter(RiskManagementInspectionTask.inspection_cycle == cycle) # 计算总条目数 total_items = query.count() # 排序 query = query.order_by(RiskManagementInspectionTask.create_time.desc()) # 执行分页查询 InspectionTasks = query.offset((page - 1) * pageSize).limit(pageSize).all() # 将查询结果转换为列表形式的字典 InspectionTasks_list = [] for task in InspectionTasks: if task.task_status=='3': task_status = '3' #'已完结' else: if datetime.now()