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