baoyubo 1 week ago
parent
commit
753d1732e8
1 changed files with 17 additions and 4 deletions
  1. 17 4
      routers/api/rainfall/windspeed.py

+ 17 - 4
routers/api/rainfall/windspeed.py

@@ -33,8 +33,21 @@ async def get_inspection_task_list(
     user_id = Depends(valid_access_token)
 ):
     try:
-        sql=f"""SELECT row_number() OVER (PARTITION BY cn ORDER BY `T1`.`create_time` {sort} ) as `序号`,T2.area as `区县`,T2.township as `镇街`,T2.address as `站点地址`,T1.windspeed as `风速`,T1.windlevel as `风速等级`,T2.longitude as `站点经度`,T2.latitude as `站点纬度`,T1.`code` as `站点编号`,T1.create_time as `测速时间` FROM (SELECT *,row_number() OVER (PARTITION BY `govdata_wind_speed_data_info`.`code` ORDER BY `govdata_wind_speed_data_info`.`windspeed` {sort} )as cn FROM sharedb.`govdata_wind_speed_data_info`
-where create_time>= NOW() - INTERVAL {timeOption} HOUR and IF('{area}'='',1=1,area_name='{area}') )T1 LEFT JOIN sharedb.govdata_wind_stand_address T2 on T1.`code`=T2.`code` and IF('{township}'='',1=1,T2.township='{township}') ORDER BY `T1`.`create_time` {sort}"""
+        sql=f"""SELECT row_number() OVER ( ORDER BY `T1`.`windspeed` {sort} ) as `序号`,T2.area as `区县`,T2.township as `镇街`,T2.address as `站点地址`,T1.windspeed as `风速`,CASE 	WHEN T1.windspeed<0.3 THEN 0
+	WHEN 0.3<=T1.windspeed and T1.windspeed<=1.5 THEN		1
+	WHEN 1.6<=T1.windspeed and T1.windspeed<=3.3 THEN		2
+	WHEN 3.4<=T1.windspeed and T1.windspeed<=5.4 THEN		3
+	WHEN 5.5<=T1.windspeed and T1.windspeed<=7.9 THEN		4
+	WHEN 8.0<=T1.windspeed and T1.windspeed<=10.7 THEN		5
+	WHEN 10.8<=T1.windspeed and T1.windspeed<=13.8 THEN		6
+	WHEN 13.9<=T1.windspeed and T1.windspeed<=17.1 THEN		7
+	WHEN 17.2<=T1.windspeed and T1.windspeed<=20.7 THEN		8
+	WHEN 20.8<=T1.windspeed and T1.windspeed<=24.4 THEN		9
+	WHEN 24.5<=T1.windspeed and T1.windspeed<=28.4 THEN		10
+	WHEN 28.5<=T1.windspeed and T1.windspeed<=32.6 THEN		11
+	ELSE		12 END as `风速等级`,T2.longitude as `站点经度`,T2.latitude as `站点纬度`,T1.`code` as `站点编号` FROM (SELECT `code`,ROUND(SUM(windspeed)/COUNT(1),1)as windspeed FROM sharedb.`govdata_wind_speed_data_info`
+where create_time>= NOW() - INTERVAL {timeOption} HOUR and {'1=1' if area == '' else f"area_name='{area}'"} and del_flag<>'2' GROUP BY `code`)T1 LEFT JOIN sharedb.govdata_wind_stand_address T2 on T1.`code`=T2.`code` ORDER BY `T1`.`windspeed` {sort}"""
+        # print(sql)
         da = db.execute(sql).fetchall()
         outlist = [dict(row) for row in da]
         # 返回结果
@@ -74,7 +87,7 @@ def get_windspeed_data(db,timeOption):
         A.windspeed,
         B.`address`,
         ROW_NUMBER() OVER (PARTITION BY A.windlevel ORDER BY A.windspeed DESC) AS rn
-    FROM sharedb.govdata_wind_speed_data_info A JOIN sharedb.govdata_wind_stand_address B on A.`code`=B.`code` where A.create_time >= NOW() - INTERVAL {timeOption} HOUR
+    FROM sharedb.govdata_wind_speed_data_info A JOIN sharedb.govdata_wind_stand_address B on A.`code`=B.`code` where A.create_time >= NOW() - INTERVAL {timeOption} HOUR and A.del_flag<>'2'
 ),
 max_per_level AS (
     SELECT windlevel, windspeed AS maxspeed, address AS maxspeed_standaddress
@@ -86,7 +99,7 @@ summary AS (
         windlevel,
         COUNT(*) AS cnt,
         ROUND(COUNT(*) * 100 / SUM(COUNT(*)) OVER (), 2) AS ratio
-    FROM sharedb.govdata_wind_speed_data_info
+    FROM sharedb.govdata_wind_speed_data_info where del_flag<>'2'
     GROUP BY windlevel
 )
 SELECT