baoyubo 1 settimana fa
parent
commit
d9126f83c6
1 ha cambiato i file con 44 aggiunte e 0 eliminazioni
  1. 44 0
      routers/api/rainfall/__init__.py

+ 44 - 0
routers/api/rainfall/__init__.py

@@ -156,3 +156,47 @@ END and T2.rainfall>0 ORDER BY T2.rainfall {sort}"""
         # 处理异常
         traceback.print_exc()
         return JSONResponse(status_code=500, content={"code": 500, "msg": f"Internal server error: {str(e)}"})
+
+@router.get('/get_rainfall_range')
+async def get_inspection_task_list(
+        request: Request,
+        sort: str = Query('desc'),
+        history_time: int = Query(None),
+        future_time: int = Query(None),
+        area: str = Query(''),
+        township: str = Query(''),
+        db: Session = Depends(get_db),
+        auth_user: AuthUser = Depends(find_auth_user),
+    user_id = Depends(valid_access_token)
+):
+    try:
+        if history_time:
+            sql=f"""SELECT ROW_NUMBER() OVER ( ORDER BY T2.rainfall {sort}) AS `row`,T1.area as `area`,T1.township as `township`,T1.address as `address`,T1.area_name as `area_name`,T2.rainfall as `rainfall`,T1.`code` as `code`  FROM sharedb.govdata_real_time_address T1 LEFT JOIN (select `latest_data`.`code` AS `code`,sum(`latest_data`.`rainfall`) AS `rainfall` from (select `govdata_rain_data_info`.`code` AS `code`,`govdata_rain_data_info`.`area_name` AS `area_name`,`govdata_rain_data_info`.`address` AS `address`,`govdata_rain_data_info`.`create_time` AS `create_time`,`govdata_rain_data_info`.`rainfall` AS `rainfall`,`govdata_rain_data_info`.`update_time` AS `update_time`,row_number() OVER (PARTITION BY `govdata_rain_data_info`.`code` ORDER BY `govdata_rain_data_info`.`create_time` desc )  AS `rn` from sharedb.`govdata_rain_data_info`) `latest_data` where ((`latest_data`.`rn` <= '{history_time}') and `latest_data`.`code` in (select `govdata_real_time_address`.`code` from sharedb.`govdata_real_time_address`)) group by `latest_data`.`code` order by `rainfall` desc) T2 on T1.code=T2.code where CASE 
+        WHEN '{area}'<>'' THEN
+            T1.area='{area}'
+        ELSE
+            1=1
+    END  and CASE 
+        WHEN '{township}'<>'' THEN
+            T1.township='{township}'
+        ELSE
+            1=1
+    END and T2.rainfall>0 ORDER BY T2.rainfall {sort}"""
+            da = db.execute(sql).fetchall()
+            outlist = [dict(row) for row in da]
+            # 返回结果
+            return { "code": 200,
+                "msg": "操作成功",
+                "data": outlist,}
+        if future_time:
+            return {"code": 200,
+                "msg": "操作成功",
+                "data": [{"row":1,"area":"茂名市","township":"茂南区","address":"暂无","area_name":"茂南","rainfall":0,"code":"1234"}]}
+        if history_time is None and future_time is None:
+            return {"code": 200,
+                "msg": "操作成功",
+                "data": []}
+    except Exception as e:
+        # 处理异常
+        traceback.print_exc()
+        return JSONResponse(status_code=500, content={"code": 500, "msg": f"Internal server error: {str(e)}"})