From 29723c0c6658effce1419aadc01354853965ec6d Mon Sep 17 00:00:00 2001
From: 张洋洋 <10611411+yang-yang-z@user.noreply.gitee.com>
Date: 星期三, 08 一月 2025 11:17:21 +0800
Subject: [PATCH] [add]h5读取改造

---
 src/main/java/com/se/simu/service/Impl/SemFilesSimuServiceImpl.java |   47 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/se/simu/service/Impl/SemFilesSimuServiceImpl.java b/src/main/java/com/se/simu/service/Impl/SemFilesSimuServiceImpl.java
index 264693b..47c4014 100644
--- a/src/main/java/com/se/simu/service/Impl/SemFilesSimuServiceImpl.java
+++ b/src/main/java/com/se/simu/service/Impl/SemFilesSimuServiceImpl.java
@@ -4,22 +4,30 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.se.simu.service.SemFilesSimuService;
+import com.se.simu.utils.ZipUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
 import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
 import java.sql.*;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 
 @Slf4j
 @Service
 public class SemFilesSimuServiceImpl implements SemFilesSimuService {
 
+    @Value("${config.outPath}")
+    private String outPath;
 
     /**
      * 鑾峰彇 INTRODUCE
@@ -69,12 +77,9 @@
             Connection connection = connectToSQLiteWithCopy(filePath);
             System.out.println("SQLite鏁版嵁搴撹繛鎺ユ垚鍔燂紒");
             Statement stmt = connection.createStatement();
-
-
             // 鏌ヨENTITY琛ㄧ殑鏁版嵁骞惰繑鍥濲SON鏍煎紡鐨勭粨鏋�
 //            result = queryEntityTable(stmt);
             result = queryDynamizersTable(stmt);
-
             // 鍏抽棴杩炴帴
             connection.close();
             return result;
@@ -222,7 +227,7 @@
      * @return JSON鏍煎紡鐨勬煡璇㈢粨鏋�
      * @throws SQLException 濡傛灉鏌ヨ杩囩▼涓彂鐢熼敊璇�
      */
-    public static JSONObject queryDynamizersTable(Statement stmt) throws SQLException {
+    public JSONObject queryDynamizersTable(Statement stmt) throws SQLException {
         // 鏋勫缓SQL鏌ヨ璇彞
         String querySql = "SELECT URL, GMLID, DATA FROM DYNAMIZERS";
         // 鍒涘缓涓�涓� JSON 瀵硅薄鐢ㄤ簬瀛樺偍缁撴灉
@@ -237,17 +242,29 @@
                 jsonObject.put("URL", rs.getString("URL"));
                 jsonObject.put("GMLID", rs.getString("GMLID"));
                 // 鑾峰彇 BLOB 鏁版嵁骞跺皢鍏惰浆鎹负 Base64 缂栫爜瀛楃涓�
-                String blobData = rs.getString("DATA");
-//                System.out.println("blobData = " + blobData);
-               /* if (blobData != null) {
-                    // 灏� BLOB 鏁版嵁杞崲涓哄瓧鑺傛暟缁�
-                    byte[] blobBytes = blobData.getBytes(1, (int) blobData.length());
-                    // 灏嗗瓧鑺傛暟缁勮浆鎹负 Base64 瀛楃涓�
-                    String base64Data = Base64.getEncoder().encodeToString(blobBytes);
-                    // 灏� Base64 瀛楃涓叉斁鍏� JSON 瀵硅薄
-                    jsonObject.put("DATA", base64Data);
-                }*/
-                // 灏嗘瘡涓�琛岀殑缁撴灉娣诲姞鍒� JSON 鏁扮粍涓�
+                byte[] blobData = rs.getBytes("DATA");
+                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+                String dirpath = outPath + "\\" + formatter.format(LocalDateTime.now());
+                String filepath = outPath + "\\" + formatter.format(LocalDateTime.now()) + "\\" + rs.getString("URL");
+                try {
+                    File file = new File(dirpath);
+                    if (!file.exists()) {
+                        file.mkdirs();
+                    }
+                    File resultFile = new File(filepath);
+                    resultFile.createNewFile();
+                    try (FileOutputStream fos = new FileOutputStream(filepath)) {
+                        fos.write(blobData);
+                        ZipUtils.unzip(filepath,dirpath);
+                        System.out.println("Bytes written to file successfully.");
+                        resultFile.delete();
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                jsonObject.put("DATA", filepath);
                 jsonArray.add(jsonObject);
             }
             // 灏嗘煡璇㈢粨鏋滄斁鍏ユ渶缁堢殑 JSON 瀵硅薄涓�

--
Gitblit v1.9.3