m_count.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from fastapi import APIRouter, Request, Depends, Query, HTTPException, status,WebSocket,WebSocketDisconnect
  4. from common.security import valid_access_token,valid_websocket_token
  5. from fastapi.responses import JSONResponse
  6. from sqlalchemy.orm import Session
  7. from sqlalchemy.sql import func
  8. from common.auth_user import *
  9. from sqlalchemy import text
  10. from pydantic import BaseModel
  11. from common.BigDataCenterAPI import *
  12. from database import get_db
  13. from typing import List
  14. from models import *
  15. from utils import *
  16. from utils.spatial import *
  17. from utils.ry_system_util import *
  18. from utils.resource_provision_util import *
  19. from common.websocketManager import *
  20. import json
  21. import traceback
  22. router = APIRouter()
  23. @router.get("/data")
  24. async def get_count_info(
  25. db: Session = Depends(get_db)
  26. ):
  27. try:
  28. data = {"warehouse_num": count_warehouse(db),
  29. "material_num": count_material(db),
  30. "area_material_count": count_area_material(db),
  31. "warehouse_material_count": count_warehouse_material(db),
  32. "type_material_count": count_type_material(db)}
  33. return {"code": 200, "msg": "获取成功", "data": data}
  34. except Exception as e:
  35. traceback.print_exc()
  36. raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
  37. @router.get("/count_room_material")
  38. async def get_count_info(
  39. warehouseId:str = Query(None),
  40. db: Session = Depends(get_db)
  41. ):
  42. try:
  43. data = count_room_material(db,warehouseId)
  44. return {"code": 200, "msg": "获取成功", "data": data}
  45. except Exception as e:
  46. traceback.print_exc()
  47. raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")