From d9a6f3c2503795f074ac602c24467f804417ad76 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期三, 01 十二月 2021 19:41:34 +0800 Subject: [PATCH] 1. 新增用电量日分析功能 --- src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt | 83 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 81 insertions(+), 2 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..c6dd971 100644 --- a/src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt +++ b/src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt @@ -1,14 +1,20 @@ 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 org.apache.poi.xssf.streaming.SXSSFWorkbook import java.io.File import java.io.FileInputStream import java.io.FileOutputStream +import java.io.InputStream import java.text.SimpleDateFormat import java.util.* +/** + * 鏃犱汉鑸归噰闆嗘暟鎹牸寮忚浆鎹� + */ class FileExchange { companion object { @@ -19,6 +25,79 @@ private const val PH = "65558" 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() { @@ -75,7 +154,7 @@ } - val newWorkBook = HSSFWorkbook() + val newWorkBook = SXSSFWorkbook(10000) ExcelUtil.write2(heads, contents, newWorkBook, "data") newWorkBook.write(out) @@ -164,7 +243,7 @@ contents.add(cList.toTypedArray()) } - val newWorkBook = HSSFWorkbook() + val newWorkBook = SXSSFWorkbook(10000) ExcelUtil.write2(heads, contents, newWorkBook, "data") newWorkBook.write(out) -- Gitblit v1.9.3