From fcefe41e05439f548a58c7e5b6aa6e58f7b80ada Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期一, 23 十二月 2024 11:57:46 +0800
Subject: [PATCH] 1. 新增接口网格数据excel模板、网格数据excel导入 2. 接口解析网格数据抛出相关excel报错信息 3. FileExchange.kt新增excel转换到GridDataDetail列表方法 4. 新增导入excel的单元测试代码

---
 src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 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 ea62b09..c9c666a 100644
--- a/src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt
+++ b/src/main/kotlin/com/flightfeather/uav/common/utils/FileExchange.kt
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject
 import com.flightfeather.uav.common.exception.BizException
+import com.flightfeather.uav.domain.entity.GridDataDetail
 import com.flightfeather.uav.domain.entity.RealTimeData
 import com.flightfeather.uav.domain.entity.RealTimeDataVehicle
 import com.flightfeather.uav.socket.bean.AirData
@@ -93,6 +94,52 @@
     }
 
     /**
+     * 杞崲涓篜M2.5琛ㄦ牸鏁版嵁
+     */
+    fun exchangeGridData(file: InputStream): List<GridDataDetail> {
+        val headers = listOf(
+            "pointid",
+            "PM2.5"
+        )
+        val result = mutableListOf<GridDataDetail>()
+        try {
+            ExcelUtil.readXLXS(file, headerCheck = {
+                val cellIterator = it.cellIterator()
+                val headIterator = headers.iterator()
+                while (headIterator.hasNext()) {
+                    val head = headIterator.next()
+                    if (cellIterator.hasNext()) {
+                        val cellText = cellIterator.next().stringCellValue
+                        if (!cellText.equals(head)) {
+                            throw BizException("鏂囦欢鏍煎紡閿欒, 琛ㄥご[${head}]搴旇涓篬${cellText}]")
+                        }
+                    } else {
+                        throw BizException("鏂囦欢鏍煎紡閿欒, 琛ㄥご[${head}]缂哄け")
+                    }
+                }
+                true
+            }, onRow = {
+                val data = GridDataDetail().apply {
+                    try {
+                        this.cellId = it.getCell(0)?.numericCellValue?.toInt()
+                    } catch (e: Exception) {
+                        throw BizException("鍗曞厓鏍糩${it.rowNum}${0}]涓嶆槸鏁板瓧绫诲瀷")
+                    }
+                    try {
+                        this.pm25 = it.getCell(1)?.numericCellValue?.toFloat()
+                    } catch (e: Exception) {
+                        throw BizException("鍗曞厓鏍糩${it.rowNum}${1}]涓嶆槸鏁板瓧绫诲瀷")
+                    }
+                }
+                result.add(data)
+            })
+        } catch (e: BizException) {
+            throw e
+        }
+        return result
+    }
+
+    /**
      * 杞崲杞﹁浇璧拌埅鏁版嵁
      */
     fun exchangeVehicleData(deviceCode: String, file: InputStream): List<RealTimeDataVehicle> {

--
Gitblit v1.9.3