yhpcsb.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from fastapi import APIRouter, Request, Depends
  4. from database import get_db
  5. from sqlalchemy.orm import Session
  6. from utils import *
  7. from utils.sg_auth import *
  8. from models import *
  9. from sqlalchemy import text, exists, and_, or_, not_
  10. from exceptions import *
  11. import traceback
  12. router = APIRouter()
  13. @router.post("/accept")
  14. async def accept(
  15. request: Request,
  16. ext_info: str = Depends(yst_pass_ext),
  17. param: dict = Depends(yst_request_param),
  18. db: Session = Depends(get_db)
  19. ):
  20. try:
  21. bzid = get_req_param(param, 'uuid')
  22. print(param)
  23. sfzh = ext_info['cid']
  24. xm = ext_info['name']
  25. qydm = ext_info['corp']['cid']
  26. redis_key = "mmyj_yhxx_" + bzid
  27. yhxx_info = redis_get_json(redis_key)
  28. if yhxx_info is None:
  29. raise AppException(code=1, msg="数据异常")
  30. db_entity = db.query(YstQyjcxxEntity).filter(YstQyjcxxEntity.bzid == bzid).filter(YstQyjcxxEntity.status == 1).first()
  31. if db_entity is not None:
  32. result = {
  33. 'ret': 0,
  34. 'msg': '您的隐患排查上报已成功提交。',
  35. 'data': {
  36. 'ywid': db_entity.bzid
  37. }
  38. }
  39. return pt_sg_response(result)
  40. db.query(YstYhpcsbEntity).filter(YstYhpcsbEntity.bzid == bzid).filter(YstYhpcsbEntity.status == 0).delete()
  41. db.commit()
  42. new_yhpcsb = YstYhpcsbEntity(
  43. bzid = bzid,
  44. sfzh = sfzh,
  45. xm = xm,
  46. qydm = qydm,
  47. qymc = get_req_param(param, 'qymc'),
  48. qydz = get_req_param(param, 'qydz'),
  49. qyjb = get_req_param(param, 'qyjb'),
  50. fzdc = get_req_param(param, 'fzdc'),
  51. fzr = get_req_param(param, 'fzr'),
  52. fzrdh = get_req_param(param, 'fzrdh'),
  53. gm = get_req_param(param, 'gm'),
  54. gzcs = get_req_param(param, 'gzcs'),
  55. qzjjss = get_req_param(param, 'qzjjss'),
  56. swxrs = get_req_param(param, 'swxrs'),
  57. szdq = get_req_param(param, 'szdq'),
  58. xxdz = get_req_param(param, 'xxdz'),
  59. yhdmc = get_req_param(param, 'yhdmc'),
  60. yhdzt = get_req_param(param, 'yhdzt'),
  61. ywfzya = get_req_param(param, 'ywfzya'),
  62. zhlx = get_req_param(param, 'zhlx'),
  63. status = 1,
  64. create_time = datetime.now()
  65. )
  66. db.add(new_yhpcsb)
  67. db.commit()
  68. db.query(YssYstUploadFileEntity).filter(YssYstUploadFileEntity.uuid == bzid).update({"bzid": bzid})
  69. db.commit()
  70. resp = {
  71. 'ret': 0,
  72. 'msg': "您的隐患排查上报已成功提交。"
  73. }
  74. return yst_response(resp)
  75. except AppException as e:
  76. traceback.print_exc()
  77. result = {
  78. 'ret': 1,
  79. 'msg': "服务异常,本次办理提交失败,您可尝试重新提交。"
  80. }
  81. return pt_sg_response(result)
  82. @router.post("/query")
  83. async def query(
  84. request: Request,
  85. ext_info: str = Depends(yst_pass_ext),
  86. param: dict = Depends(yst_request_param),
  87. db: Session = Depends(get_db)
  88. ):
  89. sfzh = ext_info['cid']
  90. rows = db.query(YstYhpcsbEntity).filter(YstYhpcsbEntity.sfzh == sfzh).filter(YstYhpcsbEntity.status == 1).order_by(YstYhpcsbEntity.create_time.desc()).all()
  91. data = [
  92. {
  93. "id": row.id,
  94. "yhdmc": row.yhdmc,
  95. "yhdzt": row.yhdzt,
  96. "xxdz": row.xxdz,
  97. "szdq": row.szdq,
  98. "create_time": get_datetime_str(row.create_time)
  99. }
  100. for row in rows
  101. ]
  102. resp = {
  103. 'ret': 0,
  104. 'data': data
  105. }
  106. return yst_response(resp)
  107. @router.post("/detail")
  108. async def detail(
  109. request: Request,
  110. ext_info: str = Depends(yst_pass_ext),
  111. param: dict = Depends(yst_request_param),
  112. db: Session = Depends(get_db)
  113. ):
  114. try:
  115. sfzh = ext_info['cid']
  116. id = get_req_param(param, 'id')
  117. row = db.query(YstYhpcsbEntity).filter(YstYhpcsbEntity.sfzh == sfzh).filter(YstYhpcsbEntity.id == id).first()
  118. bzid = row.bzid
  119. data = get_model_dict(row)
  120. data["create_time"] = get_datetime_str(row.create_time)
  121. data["update_time"] = get_datetime_str(row.update_time)
  122. qtFile = []
  123. imageUrls = []
  124. rows = db.query(YssYstUploadFileEntity).filter(and_(YssYstUploadFileEntity.bzid == bzid, YssYstUploadFileEntity.file_type == 'yyzz')).all()
  125. for row in rows:
  126. imageUrls.append("/mmh5_yjxm_yst/ebus/yst_mmsyjjzhyjxt/api/yst/file/show?thumb=1&file_name={}".format(row.file_name))
  127. if len(imageUrls) > 0:
  128. qtFile.append({'fileName': '隐患点图片', 'imageUrls': imageUrls})
  129. resp = {
  130. 'ret': 0,
  131. 'msg': '',
  132. 'data': data,
  133. 'qtFile': qtFile
  134. }
  135. return yst_response(resp)
  136. except AppException as e:
  137. traceback.print_exc()
  138. result = {
  139. 'ret': 1,
  140. 'msg': "服务异常"
  141. }
  142. return pt_sg_response(result)