فهرست منبع

测试读取底码表

malijun 1 سال پیش
والد
کامیت
ccb86361c7

+ 3 - 0
electricity/meter/build.gradle

@@ -51,6 +51,9 @@ dependencies {
 
     implementation("com.taosdata.jdbc:taos-jdbcdriver:$taosVersion2")
     implementation("com.baomidou:dynamic-datasource-spring-boot-starter:$mybatisPlusVersion")
+    implementation("org.apache.poi:poi:5.2.3")
+    implementation ("org.apache.poi:poi-ooxml:5.2.3")
+
 
 
 

+ 38 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/saveHistory/CheckExcelFormat.java

@@ -0,0 +1,38 @@
+package com.gyee.gaia.meter.service.saveHistory;
+import org.apache.poi.ss.usermodel.*;
+
+import java.io.FileInputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+
+public class CheckExcelFormat {
+
+    public static void main(String[] args) throws UnsupportedEncodingException {
+        System.setOut(new PrintStream(System.out, true, "UTF-8"));
+
+        String fileName = "C:\\Users\\24410\\Desktop\\data.xlsx";
+        checkExcelFormat(fileName);
+    }
+
+    public static void checkExcelFormat(String fileName) {
+        try (Workbook workbook = WorkbookFactory.create(new FileInputStream(fileName))) {
+            Sheet sheet = workbook.getSheetAt(0); // 假设数据在第一个Sheet中
+
+            // 获取文件格式信息
+            String fileFormat = workbook.getClass().getSimpleName();
+            System.out.println("文件格式: " + fileFormat);
+
+            // 获取Sheet名称
+            String sheetName = sheet.getSheetName();
+            System.out.println("Sheet名称: " + sheetName);
+
+            // 获取行数和列数
+            int rowCount = sheet.getLastRowNum() + 1;
+            int columnCount = sheet.getRow(0).getLastCellNum();
+            System.out.println("行数: " + rowCount);
+            System.out.println("列数: " + columnCount);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 73 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/saveHistory/ReadFromXLSX2Test.java

@@ -0,0 +1,73 @@
+package com.gyee.gaia.meter.service.saveHistory;
+
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+
+import lombok.Data;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+public class ReadFromXLSX2Test {
+
+    public static void main(String[] args) throws UnsupportedEncodingException {
+        System.setOut(new PrintStream(System.out, true, "UTF-8"));
+        System.out.println("hello");
+        String fileName = "C:\\Users\\24410\\Desktop\\data2.xlsx";
+        List<Record> records = readDataFromFile(fileName);
+        // TODO: 将records保存到数据库中
+        // 打印每天的数据记录
+        for (Record record : records) {
+            System.out.println(record.getDate() + ":");
+            System.out.println("止码: " + record.getStopCode());
+            System.out.println("电量: " + record.getElectricity());
+            System.out.println();
+        }
+    }
+
+    public static List<Record> readDataFromFile(String fileName) {
+
+        List<Record> records = new ArrayList<>();
+
+        try (FileInputStream fileInputStream = new FileInputStream(new File(fileName));
+//             InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, StandardCharsets.UTF_8);
+        )
+        {
+            Workbook workbook = new XSSFWorkbook(fileInputStream);
+            Sheet sheet = workbook.getSheetAt(0);
+            int lastRowNum = sheet.getLastRowNum();
+            int day = 1;
+            for (int i = 0; i < lastRowNum; i+=2) {
+
+                Record record = new Record();
+
+                Row dateRow = sheet.getRow(i);
+                String dateStr = dateRow.getCell(0).getStringCellValue();
+                record.setDate(dateStr);
+
+                Row stopCodeRow = sheet.getRow(i);
+                double stopCode = stopCodeRow.getCell(1).getNumericCellValue();
+                record.setStopCode(stopCode);
+
+                Row electricityRow = sheet.getRow(i+1);
+                double electricity = electricityRow.getCell(1).getNumericCellValue();
+                record.setElectricity(electricity);
+                day++;
+                records.add(record);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return records;
+    }
+
+    @Data
+    static class Record {
+        private String date;
+        private double stopCode;
+        private double electricity;
+
+    }
+}

+ 106 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/saveHistory/ReadFromXLSXTest.java

@@ -0,0 +1,106 @@
+package com.gyee.gaia.meter.service.saveHistory;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import com.gyee.gaia.meter.entity.MeterInfoBottomcode;
+import lombok.Data;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class ReadFromXLSXTest {
+
+    public static void main(String[] args) throws UnsupportedEncodingException {
+        System.setOut(new PrintStream(System.out, true, "UTF-8"));
+        System.out.println("hello");
+        String fileName = "C:\\Users\\24410\\Desktop\\data.xlsx";
+        List<MeterInfoBottomcode> records = readDataFromFile(fileName);
+        // TODO: 将records保存到数据库中
+        // 打印每天的数据记录
+        for (MeterInfoBottomcode record : records) {
+            System.out.println("name: " + record.getName());
+            System.out.println("startTime: " + record.getStartTime());
+            System.out.println("起码: " + record.getStartValue());
+            System.out.println("endTime: " + record.getEndTime());
+            System.out.println("止码: " + record.getEndValue());
+            System.out.println("dayValue: " + record.getDayValue());
+            System.out.println("编码: " + record.getCode());
+            System.out.println("场站: " + record.getWindpowerstationId());
+            System.out.println();
+        }
+    }
+
+    public static List<MeterInfoBottomcode> readDataFromFile(String fileName) {
+
+        List<MeterInfoBottomcode> records = new ArrayList<>();
+
+        try (FileInputStream fileInputStream = new FileInputStream(new File(fileName));
+        ) {
+            Workbook workbook = new XSSFWorkbook(fileInputStream);
+            Sheet sheet = workbook.getSheetAt(0);
+            int lastRowNum = sheet.getLastRowNum();
+
+            int day = 0;
+
+            for (int i = 1; i <= lastRowNum; i += 2) {
+                day++;
+
+                MeterInfoBottomcode record = new MeterInfoBottomcode();
+
+                Row dateRow = sheet.getRow(i);
+
+                String StringDate = dateRow.getCell(0).getStringCellValue();
+                DateTime dateTime = DateUtil.parse(StringDate);
+
+                record.setStartTime(dateTime.toLocalDateTime());
+                record.setEndTime(DateUtil.endOfDay(dateTime).toLocalDateTime());
+
+                Row infoRow = sheet.getRow(0);
+
+                record.setName(infoRow.getCell(0).getStringCellValue());
+                record.setCode(infoRow.getCell(1).getStringCellValue());
+                record.setWindpowerstationId(infoRow.getCell(3).getStringCellValue());
+
+                Row stopCodeRow = sheet.getRow(i);
+                double stopCode = stopCodeRow.getCell(2).getNumericCellValue();
+                record.setEndValue(BigDecimal.valueOf(stopCode).setScale(4, RoundingMode.HALF_EVEN));
+
+
+                Row electricityRow = sheet.getRow(i + 1);
+                double electricity = electricityRow.getCell(2).getNumericCellValue();
+                record.setDayValue(BigDecimal.valueOf(electricity).setScale(4, RoundingMode.HALF_EVEN));
+
+
+                Row startCodeRow = sheet.getRow(i-1);
+                double startCode = startCodeRow.getCell(2).getNumericCellValue();
+                record.setStartValue(BigDecimal.valueOf(startCode).setScale(4, RoundingMode.HALF_EVEN));
+
+
+
+
+                records.add(record);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return records;
+    }
+
+}

+ 0 - 9
electricity/meter/src/main/java/com/gyee/gaia/meter/service/saveTDengine/TDLLFDLTest.java

@@ -505,15 +505,6 @@ class TDLLFDLTest {
         }
     }
 
-    @Test
-    public void test(){
-        MeterInfoCalculating oneFCRFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>()
-                .eq("date", LocalDateTime.now())
-                .eq("code", "DL.NX_GD_WINDSTATIONFDL_DAY")
-        );
-        System.out.println(oneFCRFDL);
-
-    }
 }
 
 

+ 3 - 3
electricity/meter/src/main/resources/bootstrap.yaml

@@ -3,7 +3,7 @@ spring:
     name: meter
   profiles:
     # 环境配置
-    active: prod
+    active: dev
 
   cloud:
     nacos:
@@ -17,9 +17,9 @@ spring:
         # 配置文件格式
         file-extension: yml
         #开发环境配置命名空间
-#        namespace: fe339fbd-7113-405f-8d2a-70659c5d53e4
+        namespace: fe339fbd-7113-405f-8d2a-70659c5d53e4
         #生产环境配置命名空间
-        namespace: d148acca-95e7-4e07-a566-9a69012bcf01
+#        namespace: d148acca-95e7-4e07-a566-9a69012bcf01
         group: meter
         refresh-enabled: true
         # 共享配置