#!/usr/bin/env python3 # -*- coding: utf-8 -*- from fastapi import APIRouter, Request, Depends, Query, HTTPException, status,WebSocket,WebSocketDisconnect from common.security import valid_access_token,valid_websocket_token from fastapi.responses import JSONResponse from sqlalchemy.orm import Session from sqlalchemy.sql import func from common.auth_user import * from sqlalchemy import text from pydantic import BaseModel from common.BigDataCenterAPI import * from database import get_db from typing import List from models import * from utils import * from utils.spatial import * from utils.ry_system_util import * from utils.resource_provision_util import * from common.websocketManager import * import json import traceback router = APIRouter() @router.get("/data") async def get_count_info( user_id=Depends(valid_access_token), db: Session = Depends(get_db) ): try: data = {"warehouse_num": count_warehouse(db), "material_num": count_material(db), "area_material_count": count_area_material(db), "warehouse_material_count": count_warehouse_material(db), "type_material_count": count_type_material(db)} return {"code": 200, "msg": "获取成功", "data": data} except Exception as e: traceback.print_exc() raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}") @router.get("/count_room_material") async def get_count_info( user_id=Depends(valid_access_token), warehouseId:str = Query(None), db: Session = Depends(get_db) ): try: data = count_room_material(db,warehouseId) return {"code": 200, "msg": "获取成功", "data": data} except Exception as e: traceback.print_exc() raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")