From d978297ae85b2d7453054e616bbbe87bfabe9cbe Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 12 七月 2021 17:38:09 +0800
Subject: [PATCH] 1. 新增用电量数据查询接口 2. 调整污染权重算法

---
 src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt |   34 ++++++++++++++++++++++++++++------
 1 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt b/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
index 055349d..34532fc 100644
--- a/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt
@@ -3,9 +3,13 @@
 import com.flightfeather.uav.domain.entity.RealTimeData
 import com.flightfeather.uav.domain.mapper.RealTimeDataMapper
 import com.flightfeather.uav.repository.AirDataRepository
-import com.flightfeather.uav.socket.bean.AirPackageData
+import com.flightfeather.uav.socket.bean.AirData
+import com.flightfeather.uav.socket.bean.AirDataPackage
+import com.flightfeather.uav.socket.eunm.FactorType
 import com.google.gson.Gson
 import org.springframework.stereotype.Repository
+import java.text.SimpleDateFormat
+import java.util.*
 
 /**
  * @author riku
@@ -14,17 +18,35 @@
 @Repository
 class AirDataRepositoryImpl(private val realTimeDataMapper: RealTimeDataMapper): AirDataRepository {
 
-    override fun saveAirData(packageData: AirPackageData): Int {
-
+    override fun saveAirData(dataPackage: AirDataPackage): Int {
         val data = RealTimeData().apply {
-            deviceCode = packageData.deviceCode
+            deviceCode = dataPackage.deviceCode
             latitude
             longitude
             altitude
             height
-            factors = Gson().toJson(packageData.dataUnit)
-            dataTime = packageData.dataTime
+            factors = Gson().toJson(dataPackage.dataUnit)
+            dataTime = dataPackage.dataTime
         }
+        dataPackage.dataUnit.forEach {
+            if (it is AirData) {
+                when (it.factorId?.toInt()) {
+                    FactorType.LAT.value -> {
+                        data.latitude = it.factorData?.toBigDecimal()
+                    }
+                    FactorType.LNG.value -> {
+                        data.longitude = it.factorData?.toBigDecimal()
+                    }
+                    FactorType.TIME.value -> {
+                        it.statusList?.takeIf {l-> l.isNotEmpty() }?.get(0)?.let {d ->
+                            data.dataTime = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(d)
+                        }
+                    }
+                }
+            }
+        }
+
+
         realTimeDataMapper.insert(data)
 
         return 0

--
Gitblit v1.9.3