DataQueryTemplate.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. from database import get_db
  4. from sqlalchemy.orm import Session
  5. from fastapi import Depends
  6. from models import *
  7. def get_idx_01(index_no:str,area_id:str=None, db: Session = Depends(get_db)):
  8. """
  9. 返回单个指标最新指标信息
  10. """
  11. if area_id == None:
  12. idx_info = db.query(OprIdxStat).filter(OprIdxStat.index_no==index_no).order_by(OprIdxStat.stat_dt.desc()).first()
  13. else:
  14. idx_info = db.query(OprIdxStat).filter(OprIdxStat.index_no == index_no,OprIdxStat.area_id == area_id).order_by(
  15. OprIdxStat.stat_dt.desc()).first()
  16. if idx_info==None:
  17. return {'msg':'指标不存在'}
  18. return {"stat_dt":idx_info.stat_dt,
  19. 'stat_lvl':idx_info.stat_lvl,
  20. 'area_id':idx_info.area_id,
  21. 'area_nm':idx_info.area_nm,
  22. 'index_no':idx_info.index_no,
  23. 'index_nm':idx_info.index_nm,
  24. 'index_value':idx_info.index_value,
  25. 'index_unit':idx_info.index_unit,
  26. 'etl_time':idx_info.etl_time}
  27. def get_idx_02(index_no:str,area_id:str=None, db: Session = Depends(get_db)):
  28. """
  29. 返回单个指标历史所有信息
  30. """
  31. if area_id == None:
  32. idx_info = db.query(OprIdxStat).filter(OprIdxStat.index_no==index_no).order_by(OprIdxStat.stat_dt.desc()).all()
  33. else:
  34. idx_info = db.query(OprIdxStat).filter(OprIdxStat.index_no == index_no,OprIdxStat.area_id == area_id).order_by(
  35. OprIdxStat.stat_dt.desc()).all()
  36. result = []
  37. if idx_info==None:
  38. return {'msg':'指标不存在'}
  39. for info in idx_info:
  40. result.append({"stat_dt":info.stat_dt,
  41. 'stat_lvl':info.stat_lvl,
  42. 'area_id':info.area_id,
  43. 'area_nm':info.area_nm,
  44. 'index_no':info.index_no,
  45. 'index_nm':info.index_nm,
  46. 'index_value':info.index_value,
  47. 'index_unit':info.index_unit,
  48. 'etl_time':info.etl_time})
  49. return result