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