From 070005ffba3ce5cb80e27448bca668aa25edee62 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期五, 11 六月 2021 17:02:51 +0800 Subject: [PATCH] 1. 新增走航任务增删改查相关功能 2. 新增无人船数据excel导入功能 3. 优化多参数接收逻辑,解决单个数据头导致数据包结构判断错误问题 --- src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt | 75 +++++++++++++++++++++++++++++++++++++ 1 files changed, 75 insertions(+), 0 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt b/src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt index b282399..3c9d5fb 100644 --- a/src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt +++ b/src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt @@ -1,11 +1,13 @@ package com.flightfeather.uav.common.utils import com.alibaba.fastjson.JSONObject +import com.flightfeather.uav.domain.entity.RealTimeData import com.flightfeather.uav.socket.bean.AirData import org.apache.poi.hssf.usermodel.HSSFWorkbook import java.io.File import java.io.FileInputStream import java.io.FileOutputStream +import java.io.InputStream import java.text.SimpleDateFormat import java.util.* @@ -21,6 +23,79 @@ private val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") } + fun exchangeBoatData(deviceCode: String, file: InputStream): List<RealTimeData> { + val workbook = HSSFWorkbook(file) + val sheet = workbook.getSheetAt(0) + + val dataList = mutableListOf<RealTimeData>() + + for (i in 1 until sheet.lastRowNum) { + val row = sheet.getRow(i) + val time = row.getCell(2).numericCellValue.toLong() * 1000 + val lat = row.getCell(4).numericCellValue + val lng = row.getCell(5).numericCellValue + val value = row.getCell(6).stringCellValue + + //鏃堕棿 + val datetime = Date(time) + //鐩戞祴鍥犲瓙 + val jO = JSONObject.parseObject(value) + val tmp = jO.getDoubleValue(TMP) + val spC = jO.getDoubleValue(SPCOND) + val tur = jO.getDoubleValue(TUR) + val dO = jO.getDoubleValue(DO) + val ph = jO.getDoubleValue(PH) + + val factorsList = mutableListOf<AirData>() + + factorsList.apply { + add(AirData().apply { + factorId = "1" + factorName = "TMP" + factorData = tmp + physicalQuantity = 0.0 + }) + add(AirData().apply { + factorId = "2" + factorName = "spC" + factorData = spC + physicalQuantity = 0.0 + }) + add(AirData().apply { + factorId = "3" + factorName = "tur" + factorData = tur + physicalQuantity = 0.0 + }) + add(AirData().apply { + factorId = "4" + factorName = "DO" + factorData = dO + physicalQuantity = 0.0 + }) + add(AirData().apply { + factorId = "5" + factorName = "PH" + factorData = ph + physicalQuantity = 0.0 + }) + } + + val factors = JSONObject.toJSON(factorsList).toString() + + dataList.add(RealTimeData().apply { + this.deviceCode = deviceCode + latitude = lat.toBigDecimal() + longitude = lng.toBigDecimal() + dataTime = datetime + createTime = Date() + this.factors = factors + }) + } + + return dataList + } + fun doTask() { //source val path = "E:\\宸ヤ綔\\閲戝北璧拌埅\\MissionData.xls" -- Gitblit v1.9.3