From 06344d06ee31d3cad0616b66d10d750f0f15e238 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 11 Apr 2024 11:39:24 +0800
Subject: [PATCH] 图斑配置

---
 src/main/java/com/dji/sample/patches/config/pojo/PatchesConfigPojo.java           |   36 ++++++++++++
 src/main/java/com/dji/sample/patches/utils/MultipartFileTOFileUtil.java           |   21 ++++---
 src/main/java/com/dji/sample/patches/xml/utils/CreateWaylineFileUtils.java        |   19 +----
 src/main/resources/application-dev.yml                                            |   20 +++---
 src/main/resources/application-prod.yml                                           |    2 
 src/main/java/com/dji/sample/patches/service/impl/ShpToDataSourceServiceImpl.java |   36 +++++++-----
 6 files changed, 85 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/dji/sample/patches/config/pojo/PatchesConfigPojo.java b/src/main/java/com/dji/sample/patches/config/pojo/PatchesConfigPojo.java
new file mode 100644
index 0000000..be6f4de
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/config/pojo/PatchesConfigPojo.java
@@ -0,0 +1,36 @@
+package com.dji.sample.patches.config.pojo;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/4/11 11:04
+ */
+
+@Configuration
+@Data
+public class PatchesConfigPojo {
+
+    @Value("${patches.url.path.unzip}")
+    private String unzip;
+    @Value("${patches.url.path.kmz.destKMZFile}")
+    private String destKMZFile;
+    @Value("${patches.url.path.kmz.sourceDir}")
+    private String sourceDir;
+
+    @Value("${patches.xml.temple.template}")
+    private String template;
+    @Value("${patches.xml.temple.waylines}")
+    private String waylines;
+    @Value("${patches.xml.target.template}")
+    private String targetTemplate;
+    @Value("${patches.xml.target.waylines}")
+    private String targetWaylines;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/service/impl/ShpToDataSourceServiceImpl.java b/src/main/java/com/dji/sample/patches/service/impl/ShpToDataSourceServiceImpl.java
index 21bb3ff..81afe7e 100644
--- a/src/main/java/com/dji/sample/patches/service/impl/ShpToDataSourceServiceImpl.java
+++ b/src/main/java/com/dji/sample/patches/service/impl/ShpToDataSourceServiceImpl.java
@@ -1,5 +1,6 @@
 package com.dji.sample.patches.service.impl;
 
+import com.dji.sample.patches.config.pojo.PatchesConfigPojo;
 import com.dji.sample.patches.dao.ShpToDataSourceMapper;
 import com.dji.sample.patches.model.entity.LotInfo;
 import com.dji.sample.patches.service.ShpToDataSourceService;
@@ -15,10 +16,12 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
+
 import static com.dji.sample.patches.utils.FormatConversionUtil.getCentros;
 import static com.dji.sample.patches.utils.MultipartFileTOFileUtil.convert;
 import static com.dji.sample.patches.utils.ZipUtil.*;
@@ -32,18 +35,21 @@
 
     @Autowired
     private IWaylineFileService service;
-    String head = POLYGON;
-    @Value("${Patches.url.path.kmz.sourceDir}")
-    String sourceDir ;
-    @Value("${Patches.url.path.kmz.destKMZFile}")
-    String outkmz;
-    MultipartFile multipartFile;
+    private String head = POLYGON;
+    @Value("${patches.url.path.kmz.sourceDir}")
+    private String sourceDir;
+    @Value("${patches.url.path.kmz.destKMZFile}")
+    private String outkmz;
+    private MultipartFile multipartFile;
 
     String json;
-    public MultipartFile insertGeo(MultipartFile file, String workspaceId,String waylineName, double airportLat, double airportLon) throws Exception {
+
+    @Autowired
+    private PatchesConfigPojo patchesConfigPojo;
+
+    public MultipartFile insertGeo(MultipartFile file, String workspaceId, String waylineName, double airportLat, double airportLon) throws Exception {
         List<LotInfo> list = new ArrayList<>();
-        MultipartFileTOFileUtil multipartFileTOFileUtil = new MultipartFileTOFileUtil();
-        File file1 = multipartFileTOFileUtil.multipartFile2File(file);
+        File file1 = MultipartFileTOFileUtil.multipartFile2File(file, patchesConfigPojo.getUnzip());
         List<String> s = ShapeFileUtil.shpToGeoJson(file1);
         String[] arr1 = FormatConversionUtil.formatConversion(s);
         for (int i = 0; i < arr1.length; i++) {
@@ -58,23 +64,23 @@
             lotInfo.setDkfw(json);
             lotInfo.setDkbh("dkbh" + i);
             list.add(lotInfo);
-            String strs=getCentros(list);
-            String end =strs.replaceAll("\\(","").replaceAll(", NaN\\)","");
-            String[] points=end.split(",");
+            String strs = getCentros(list);
+            String end = strs.replaceAll("\\(", "").replaceAll(", NaN\\)", "");
+            String[] points = end.split(",");
             lotInfo.setXzb(Double.valueOf(points[0]));
             lotInfo.setYzb(Double.valueOf(points[1]));
             mapper.insert(lotInfo);
         }
         Coordinate[] coordinates = GeoToolsUtil.getRoutePointOrder(list, airportLat, airportLon);
         XMLTemplateModel xmlModel = XMLTemplateModel.init(coordinates, list);
-        CreateWaylineFileUtils.createWaylineFile(xmlModel);
+        CreateWaylineFileUtils.createWaylineFile(xmlModel,patchesConfigPojo.getWaylines(),patchesConfigPojo.getWaylines(),patchesConfigPojo.getWaylines(),patchesConfigPojo.getWaylines());
         // 压缩文件夹中的内容
-        String destKMZFile = outkmz+waylineName+".kmz"; // 输出的KMZ文件路径
+        String destKMZFile = outkmz + waylineName + ".kmz"; // 输出的KMZ文件路径
         zipFolder(sourceDir, destKMZFile);
         multipartFile = convert(new File(destKMZFile));
         return multipartFile;
     }
-    }
+}
 
 
 
diff --git a/src/main/java/com/dji/sample/patches/utils/MultipartFileTOFileUtil.java b/src/main/java/com/dji/sample/patches/utils/MultipartFileTOFileUtil.java
index 8d59f7f..4c3d68d 100644
--- a/src/main/java/com/dji/sample/patches/utils/MultipartFileTOFileUtil.java
+++ b/src/main/java/com/dji/sample/patches/utils/MultipartFileTOFileUtil.java
@@ -1,25 +1,28 @@
 package com.dji.sample.patches.utils;
 
-import org.apache.http.entity.ContentType;
-import org.apache.tomcat.util.http.fileupload.FileItem;
+import com.dji.sample.patches.config.pojo.PatchesConfigPojo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.MediaType;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import java.io.*;
 import java.util.UUID;
 
 public class MultipartFileTOFileUtil {
-    @Value("${Patches.url.path.unzip}")
-    String url;
-    //MultiparFile转File
-    public File multipartFile2File(MultipartFile multipartFile) {
+
+
+    /**
+     * MultiparFile转File
+     * @param multipartFile
+     * @param unzipPath
+     * @return
+     */
+    public static File multipartFile2File(MultipartFile multipartFile, String unzipPath) {
         String tmpFileDir = null;
         // 创建临时文件
         String randomFileName = UUID.randomUUID().toString();
-        tmpFileDir = url+ randomFileName;
+        tmpFileDir = unzipPath + randomFileName;
         File file = new File(tmpFileDir);
         InputStream inputStream = null;
         FileOutputStream outputStream = null;
diff --git a/src/main/java/com/dji/sample/patches/xml/utils/CreateWaylineFileUtils.java b/src/main/java/com/dji/sample/patches/xml/utils/CreateWaylineFileUtils.java
index a7f1cfc..a503b0c 100644
--- a/src/main/java/com/dji/sample/patches/xml/utils/CreateWaylineFileUtils.java
+++ b/src/main/java/com/dji/sample/patches/xml/utils/CreateWaylineFileUtils.java
@@ -18,20 +18,11 @@
 @Slf4j
 public class CreateWaylineFileUtils {
 
-    @Value("${xml.temple.template}")
-    static String templeFilePath;
-    @Value("${xml.temple.waylines}")
-    static String waylineFilePath;
-
-    @Value("${xml.target.template}")
-    static String targetTempleFilePath;
-    @Value("${xml.target.waylines}")
-    static String targetWaylineFilePath;
     /**
      * 生成航线文件
      * @param xmlModel
      */
-    public static void createWaylineFile(XMLTemplateModel xmlModel) {
+    public static void createWaylineFile(XMLTemplateModel xmlModel,String templeFilePath,String targetTempleFilePath,String waylineFilePath,String targetWaylineFilePath) {
 
 
 //        xml2XmlDoc(xmlModel, "home\\drone\\server\\template\\template.xml", "home\\drone\\server\\template\\wpmz\\template.kml");
@@ -52,12 +43,12 @@
         Writer out = null;
         try {
             // 将模板文件路径拆分为文件夹路径和文件名称
-            String tempLetDir = templetFilePath.substring(0, templetFilePath.lastIndexOf("\\"));
+            String tempLetDir = templetFilePath.substring(0, templetFilePath.lastIndexOf("/"));
             // 注意:templetFilePath.lastIndexOf("/")中,有的文件分隔符为:\ 要注意文件路径的分隔符
-            String templetName = templetFilePath.substring(templetFilePath.lastIndexOf("\\") + 1);
+            String templetName = templetFilePath.substring(templetFilePath.lastIndexOf("/") + 1);
             // 将目标文件保存路径拆分为文件夹路径和文件名称
-            String targetDir = targetFilePath.substring(0, targetFilePath.lastIndexOf("\\"));
-            String targetName = targetFilePath.substring(targetFilePath.lastIndexOf("\\") + 1);
+            String targetDir = targetFilePath.substring(0, targetFilePath.lastIndexOf("/"));
+            String targetName = targetFilePath.substring(targetFilePath.lastIndexOf("/") + 1);
             Configuration configuration = new Configuration();
             configuration.setDefaultEncoding(String.valueOf(StandardCharsets.UTF_8));
             // 如果目标文件目录不存在创建
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 69d18b5..71140ab 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -87,18 +87,18 @@
   out-net-file-address: http://dev.jxpskj.com:9000
 
 #图斑的解压地址和图斑文件转航线文件的地址
-Patches:
+patches:
   url:
     path:
       unzip: D:\\tmp\\
       kmz:
-        destKMZFile: src\\main\\resources\\template\\kmz\\
-        sourceDir: src\\main\\resources\\template\\wpmz\\
+        destKMZFile: src/main/resources/template/kmz/
+        sourceDir: src/main/resources/template/wpmz/
 
-xml:
-  temple:
-    template: src\\main\\resources\\template\\template.xml
-    waylines: src\\main\\resources\\template\\waylines.xml
-  target:
-    template: src\\main\\resources\\template\\wpmz\\template.kml
-    waylines: src\\main\\resources\\template\\wpmz\\waylines.wpml
\ No newline at end of file
+  xml:
+    temple:
+      template: src/main/resources/template/template.xml
+      waylines: src/main/resources/template/waylines.xml
+    target:
+      template: src/main/resources/template/wpmz/template.kml
+      waylines: src/main/resources/template/wpmz/waylines.wpml
\ No newline at end of file
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 9e5e365..afc5548 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -90,7 +90,7 @@
   out-net-file-address: http://dev.jxpskj.com:9000
 
 #图斑的解压地址和图斑文件转航线文件的地址
-Patches:
+patches:
   url:
     path:
       unzip: /home/drone/server/temp/

--
Gitblit v1.9.3