| | |
| | | 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 { |
| | |
| | | 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() { |
| | |
| | | } |
| | | |
| | | |
| | | val newWorkBook = HSSFWorkbook() |
| | | val newWorkBook = SXSSFWorkbook(10000) |
| | | ExcelUtil.write2(heads, contents, newWorkBook, "data") |
| | | |
| | | newWorkBook.write(out) |
| | |
| | | contents.add(cList.toTypedArray()) |
| | | } |
| | | |
| | | val newWorkBook = HSSFWorkbook() |
| | | val newWorkBook = SXSSFWorkbook(10000) |
| | | ExcelUtil.write2(heads, contents, newWorkBook, "data") |
| | | |
| | | newWorkBook.write(out) |