From 01ac08186355e85cab4a7c6f4403180184894f23 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期六, 09 十月 2021 14:38:44 +0800 Subject: [PATCH] 1. 新增网格化数据统计功能 --- 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