|
@@ -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)}"})
|