From 1571cd0f137ced4345fa8785e166a29dc31b6ad1 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 13 五月 2025 17:42:39 +0800 Subject: [PATCH] 1. 新增动态污染溯源的数据异常判断逻辑 2. 新增动态污染溯源websocket连接功能 --- src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt | 42 +++++++++++++++++++++++------------------- 1 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt b/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt index 8c9f9df..741a06a 100644 --- a/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt +++ b/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt @@ -1,7 +1,7 @@ package com.flightfeather.uav.domain.entity -import com.flightfeather.uav.common.utils.DateUtil import com.flightfeather.uav.biz.dataprocess.AvgPair +import com.flightfeather.uav.common.utils.DateUtil import com.flightfeather.uav.lightshare.bean.DataVo import com.flightfeather.uav.socket.bean.AirData import com.flightfeather.uav.socket.eunm.FactorType @@ -10,14 +10,20 @@ import java.time.ZoneId import java.util.* import javax.persistence.Column +import javax.persistence.GeneratedValue +import javax.persistence.GenerationType import javax.persistence.Id -import kotlin.math.* +import kotlin.math.atan +import kotlin.math.cos +import kotlin.math.round +import kotlin.math.sin /** * 瀹炴椂鐩戞祴鏁版嵁鍩虹被 */ open class BaseRealTimeData { @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Int? = null @Column(name = "device_code") @@ -66,6 +72,9 @@ @Column(name = "NOI") var noi: Float? = null + @Column(name = "NO") + var no: Float? = null + var velocity: Float? = null @Column(name = "wind_speed") @@ -105,20 +114,7 @@ add(AirData().apply { setData(FactorType.WIND_SPEED, windSpeed) }) add(AirData().apply { setData(FactorType.WIND_DIRECTION, windDirection) }) add(AirData().apply { setData(FactorType.HEIGHT, height) }) - } - } - - fun getByFactorIndex(i: Int): Float? { - return when (i) { - 0 -> no2 - 1 -> co - 2 -> h2s - 3 -> so2 - 4 -> o3 - 5 -> pm25 - 6 -> pm10 - 7 -> voc - else -> null + add(AirData().apply { setData(FactorType.NO, no) }) } } @@ -138,17 +134,18 @@ FactorType.LNG -> longitude?.toFloat() FactorType.LAT -> latitude?.toFloat() FactorType.VELOCITY -> velocity -// FactorType.TIME -> noi +// FactorType.TIME -> dataTime?.time?.toFloat() FactorType.WIND_SPEED -> windSpeed FactorType.WIND_DIRECTION -> windDirection FactorType.HEIGHT -> height + FactorType.NO -> no else -> null } } } -fun List<BaseRealTimeData>.avg(): RealTimeDataGridMin { +fun List<BaseRealTimeData>.avg(): BaseRealTimeData { //椋庡悜閲囩敤鍗曚綅鐭㈤噺娉曟眰鍙栧潎鍊� var u = .0//涓滆タ鏂逛綅鍒嗛噺鎬诲拰 var v = .0//鍗楀寳鏂逛綅鍒嗛噺鎬诲拰 @@ -156,7 +153,7 @@ //闄ら鍚戝鐨勫叾浠栧洜瀛愰噰鐢ㄧ畻鏈钩鍧囨硶姹傚彇鍧囧�� val tmpList = mutableListOf<AvgPair>() - repeat(17) { + repeat(18) { tmpList.add(AvgPair(0f, 0)) } @@ -271,6 +268,12 @@ this.c++ } } + tmpList[17].apply { + it.no?.let { + t += it + this.c++ + } + } } return RealTimeDataGridMin().apply { @@ -295,6 +298,7 @@ velocity = tmpList[14].avg() windSpeed = tmpList[15].avg() height = tmpList[16].avg() + no = tmpList[17].avg() if (c != 0) { val avgU = u / c -- Gitblit v1.9.3