From 428851fa44382ddd420d88dc79ee944162e5f93a Mon Sep 17 00:00:00 2001
From: xingjinshuang <xingjs@qq.com>
Date: 星期四, 26 十二月 2024 17:18:52 +0800
Subject: [PATCH] @xingjs@20241226@添加查询管线工具类,修改解决查询站点接口token存在无法获取的情况,解决后可正常获取token,并查询出需要的站点;解析shp文件获取站点范围;新增把降水CSV文件内容解析保存到数据库中;计算CSV文件中的降水时间和降水总量

---
 src/main/java/com/se/simu/utils/CsvToSQLiteUtils.java |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/se/simu/utils/CsvToSQLiteUtils.java b/src/main/java/com/se/simu/utils/CsvToSQLiteUtils.java
index 1d35646..7dcf5fa 100644
--- a/src/main/java/com/se/simu/utils/CsvToSQLiteUtils.java
+++ b/src/main/java/com/se/simu/utils/CsvToSQLiteUtils.java
@@ -230,4 +230,43 @@
         }
     }
 
+    public static Double getTotal(String tableName) {
+        // 1. 鍒涘缓SQLite鏁版嵁搴撹繛鎺�
+        try (Connection conn = DriverManager.getConnection("jdbc:sqlite:rainfall.db")) {
+            if (conn != null) {
+                // 2. 鎵цSQL鏌ヨ
+                String queryDataSql = "SELECT sum(rainfall_difference) AS total" +
+                        "FROM " +
+                        "    (SELECT ABS( " +
+                        "        (SELECT rainfall" +
+                        "        FROM " + tableName +
+                        "        WHERE station_name = s.station_name" +
+                        "        ORDER BY  datetime ASC LIMIT 1) - " +
+                        "            (SELECT rainfall" +
+                        "            FROM " + tableName +
+                        "            WHERE station_name = s.station_name" +
+                        "            ORDER BY  datetime DESC LIMIT 1) ) AS rainfall_difference" +
+                        "            FROM " + tableName + "s" +
+                        "            GROUP BY  station_name)";
+                // 3. 澶勭悊鏌ヨ缁撴灉
+                try (PreparedStatement pstmt = conn.prepareStatement(queryDataSql)) {
+                    ResultSet rs = pstmt.executeQuery();
+                    while (rs.next()) {
+                        // 鑾峰彇鎬诲拰
+                        return rs.getDouble("total");
+                    }
+                } catch (SQLException e) {
+                    System.err.println("鏌ヨ鏁版嵁鏃跺嚭閿�: " + e.getMessage());
+                }
+            }
+        } catch (SQLException e) {
+            System.err.println("SQLite杩炴帴澶辫触: " + e.getMessage());
+        }
+
+        return null;
+    }
+
+    public static Integer getDuration(String tableName) {
+        return 1440;
+    }
 }

--
Gitblit v1.9.3