From 879378a9a2e73278dc822c97f8d1dda589919b6d Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 21 五月 2021 17:36:44 +0800
Subject: [PATCH] 1. 根据新的协议,扩展了设备编号的位数从1位至6位; 2. 新增监测因子无人机高度;

---
 src/main/kotlin/com/flightfeather/uav/repository/impl/AirDataRepositoryImpl.kt |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 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 c507354..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.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
@@ -15,7 +19,6 @@
 class AirDataRepositoryImpl(private val realTimeDataMapper: RealTimeDataMapper): AirDataRepository {
 
     override fun saveAirData(dataPackage: AirDataPackage): Int {
-
         val data = RealTimeData().apply {
             deviceCode = dataPackage.deviceCode
             latitude
@@ -25,6 +28,25 @@
             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