__init__.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from fastapi import APIRouter, Request, Depends,Query,HTTPException
  4. from database import get_db
  5. from sqlalchemy.orm import Session
  6. from fastapi.responses import JSONResponse
  7. from models import *
  8. from utils import *
  9. from utils.ry_system_util import *
  10. from common.security import valid_access_token
  11. import traceback
  12. router = APIRouter()
  13. @router.get("/tree/{parent_id}")
  14. def read_all_areas(parent_id:int = 1,db: Session = Depends(get_db)):
  15. def parent_id_get_area_info(parent_id):
  16. query = db.query(GovdataArea)
  17. query = query.filter(GovdataArea.parent_id == parent_id)
  18. return query.all()
  19. def id_get_area_info(id):
  20. query = db.query(GovdataArea)
  21. query = query.filter(GovdataArea.id == id)
  22. return query.first()
  23. try:
  24. area_info = id_get_area_info(parent_id)
  25. area_list = parent_id_get_area_info(parent_id)
  26. data = []
  27. if parent_id>1:
  28. data.append({'id': area_info.id,
  29. 'label': f"{area_info.area_name}本级",
  30. 'personSum': 0,
  31. 'isShowSelect': True,
  32. 'parentLabel': area_info.area_name
  33. })
  34. for info in area_list:
  35. isShowSelect = True
  36. if parent_id_get_area_info(info.id):
  37. isShowSelect=False
  38. data.append({'id': info.id,
  39. 'label': info.area_name,
  40. 'personSum': 0,
  41. 'isShowSelect': isShowSelect,
  42. 'parentLabel': area_info.area_name})
  43. return {
  44. "code": 200,
  45. "msg": "成功",
  46. "data": data
  47. }
  48. except Exception as e:
  49. traceback.print_exc()
  50. raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
  51. @router.get("/tree2/{parent_id}")
  52. def read_all_areas(parent_id:int = 1,db: Session = Depends(get_db)):
  53. def parent_id_get_area_info(parent_id):
  54. query = db.query(GovdataArea)
  55. query = query.filter(GovdataArea.parent_id == parent_id)
  56. return query.all()
  57. def id_get_area_info(id):
  58. query = db.query(GovdataArea)
  59. query = query.filter(GovdataArea.id == id)
  60. return query.first()
  61. try:
  62. area_info = id_get_area_info(parent_id)
  63. parentLabel=''
  64. if area_info:
  65. parentLabel = area_info.area_name
  66. area_list = parent_id_get_area_info(parent_id)
  67. data = []
  68. for info in area_list:
  69. isShowSelect = True
  70. if parent_id_get_area_info(info.id):
  71. isShowSelect=False
  72. data.append({'id': info.id,
  73. 'label': info.area_name,
  74. 'personSum': 0,
  75. 'isShowSelect': isShowSelect,
  76. 'parentLabel': parentLabel})
  77. return {
  78. "code": 200,
  79. "msg": "成功",
  80. "data": data
  81. }
  82. except Exception as e:
  83. traceback.print_exc()
  84. raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
  85. @router.get("/allTree")
  86. def read_all_areas(db: Session = Depends(get_db)):
  87. filename = '/home/python3/xh_twapi01/routers/api/riskManagement/area_tree.json'
  88. # 打开文件并读取内容
  89. with open(filename, 'r', encoding='utf-8') as file:
  90. # 加载JSON内容到一个字典
  91. data = json.load(file)
  92. return {
  93. "code": 200,
  94. "msg": "成功",
  95. "data": data
  96. }