From ba482fb9b73b43e5fbe6a0e206a103535f8a0c42 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Wed, 29 Oct 2025 17:20:34 +0800
Subject: [PATCH] 1.航线(kmz)业务增加,Minio文件路径字段。 2.增加方法从URL中提取文件路径部分。

---
 ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
index 607c865..0beae7b 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
@@ -12,8 +12,10 @@
 import com.ard.route.domain.WaypointTurnReq;
 import com.ard.route.domain.kml.*;
 import com.ard.route.domain.route.ArdRouteInformation;
+import com.ard.route.domain.vo.KmzInfoVO;
 import com.ard.route.enums.kml.ExitOnRCLostEnums;
 import com.ard.route.service.IArdRouteInformationService;
+import com.ard.route.util.FileUtils;
 import com.ard.route.util.RouteFileUtils;
 import com.ard.route.service.UavRouteService;
 import com.thoughtworks.xstream.XStream;
@@ -29,16 +31,14 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 import java.util.zip.ZipOutputStream;
 
 import static com.ard.route.util.RouteFileUtils.*;
+import static com.ard.route.util.ToolUtils.extractFilePath;
 import static com.ard.route.util.ToolUtils.getFileNameWithoutExtension;
 
 /**
@@ -211,6 +211,7 @@
                 ArdRouteInformation ardRouteInformation = new ArdRouteInformation();
                 ardRouteInformation.setFileName(fileName);
                 ardRouteInformation.setFileNameNew(getFileNameWithoutExtension(kmzFilePath));
+                ardRouteInformation.setMinioUpPath(extractFilePath(kmzFilePath));
                 ardRouteInformation.setUpPath(kmzFilePath);
                 ardRouteInformation.setUpFileSize(fileSize);
                 ardRouteInformation.setCreateBy(SecurityUtils.getUsername());
@@ -221,4 +222,25 @@
             }
         }
     }
+
+    @Override
+    public KmzInfoVO parseKmz(String fileUrl) throws IOException {
+        KmzInfoVO kmzInfoVO = new KmzInfoVO();
+        File file = FileUtils.downloadUrlToTempFile(fileUrl);
+        try (ArchiveInputStream archiveInputStream = new ZipArchiveInputStream(FileUtil.getInputStream(file))) {
+            ArchiveEntry entry;
+            while (!Objects.isNull(entry = archiveInputStream.getNextEntry())) {
+                String name = entry.getName();
+                if (name.toLowerCase().endsWith(".kml")) {
+                    kmzInfoVO.setKmlInfo(RouteFileUtils.parseKml(archiveInputStream));
+                } else if (name.toLowerCase().endsWith(".wpml")) {
+                    kmzInfoVO.setWpmlInfo(RouteFileUtils.parseKml(archiveInputStream));
+                }
+            }
+            return kmzInfoVO;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 }

--
Gitblit v1.9.3