From 20b8d870efbbb89564b599561fc69202ba41223f Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 10 四月 2026 13:36:42 +0800
Subject: [PATCH] 2026.4.10 1. 修复采样时间超过当前时间的数据依旧能存入数据库的bug
---
src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt | 25 ++++++++++++++++++++++---
1 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt b/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
index 8d7f42f..48bee10 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
@@ -6,14 +6,18 @@
import com.flightfeather.uav.domain.repository.AirDataRep
import com.flightfeather.uav.domain.repository.SceneInfoRep
import com.flightfeather.uav.domain.repository.SourceTraceRep
+import com.flightfeather.uav.lightshare.bean.DataVo
import com.flightfeather.uav.socket.bean.AirDataPackage
import com.flightfeather.uav.socket.decoder.AirDataDecoder
import com.flightfeather.uav.socket.decoder.DataPackageDecoder
import com.flightfeather.uav.socket.eunm.AirCommandUnit
import com.flightfeather.uav.socket.eunm.UWDeviceType
import io.netty.channel.ChannelHandlerContext
+import org.springframework.format.annotation.DateTimeFormat
import org.springframework.stereotype.Component
import java.text.SimpleDateFormat
+import java.time.LocalDateTime
+import java.time.format.DateTimeFormatter
import java.util.*
/**
@@ -52,15 +56,17 @@
//淇濆瓨
deviceSession.saveDevice(packageData.deviceCode, ctx)
saveToTxt(msg)
- saveToDataBase(packageData)?.takeIf { it.isNotEmpty() }?.get(0)?.let {
+ val res = saveToDataBase(packageData)
+ println("----鍐欏叆瀹屾垚")
+ res?.takeIf { it.isNotEmpty() }?.get(0)?.let {
// 姣忓彴璁惧鏈夊悇鑷崟鐙殑寮傚父鏁版嵁澶勭悊鍣�
if (!sourceTraceMap.containsKey(it.deviceCode)) {
sourceTraceMap[it.deviceCode] = SourceTraceController(sceneInfoRep, sourceTraceRep)
}
// 灏嗚蛋鑸暟鎹紶鍏ュ紓甯稿鐞嗗櫒
sourceTraceMap[it.deviceCode]?.addOneData(it)
+ println("----鍔ㄦ�佹函婧愬畬鎴�")
}
-
} else {
println("------${TAG}鏁版嵁BCC鏍¢獙澶辫触锛岃垗寮� [${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}]")
}
@@ -72,6 +78,9 @@
fun saveToDataBase(dataPackage: AirDataPackage): List<BaseRealTimeData>? {
when (dataPackage.commandUnit) {
AirCommandUnit.AirData.value -> {
+ val dataVo = dataPackage.toDataVo()
+ // 瀛樺偍鍓嶅垽鏂暟鎹槸鍚︽湁鏁�
+ if (!isValid(dataVo)) return null
// 浠son鏍煎紡瀛樺偍鍘熷鏁版嵁
airDataRep.saveAirData(dataPackage)
// 杩涜棰勫鐞嗗悗锛屽瓨鍌ㄨ嚦瀵瑰簲鏁版嵁琛�
@@ -80,7 +89,7 @@
dataProcessMap[dataPackage.deviceCode] = EPWDataPrep(UWDeviceType.getType(dataPackage.deviceCode))
}
return dataProcessMap[dataPackage.deviceCode]?.run {
- val list = this.mDataPrep2(dataPackage)// 鏁版嵁骞虫粦澶勭悊
+ val list = this.mDataPrep2(dataVo)// 鏁版嵁骞虫粦澶勭悊
airDataRep.savePrepData2(list)// 鎸夌収璁惧绫诲瀷瀛樺偍鑷冲搴旀暟鎹〃
}
}
@@ -145,4 +154,14 @@
return sb.toString()
}
+
+ /**
+ * 鏁版嵁鏈夋晥鎬у垽鏂�
+ */
+ private fun isValid(dataVo: DataVo): Boolean {
+ if (dataVo.time == null) return false
+ val check1 = LocalDateTime.parse(dataVo.time!!, DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:ss"))
+ .isBefore(LocalDateTime.now())
+ return check1
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3