From d4447ca99df2cfe978ca51790dd2891e9df0d492 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Thu, 25 Jul 2024 16:19:05 +0800
Subject: [PATCH] 修改人工拍照图片保存,新增面状航线保存、修改接口,图斑文件上传格式修改

---
 src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java |   67 +++++++++++++++++++++++++++------
 1 files changed, 55 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java b/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
index cc4d021..d52356e 100644
--- a/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
+++ b/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
@@ -1,11 +1,25 @@
 package com.dji.sample.wayline.plane.controller;
 
+import com.dji.sample.common.model.CustomClaim;
 import com.dji.sample.common.model.ResponseResult;
+import com.dji.sample.patches.config.pojo.PatchesConfigPojo;
+import com.dji.sample.patches.utils.MultipartFileTOFileUtil;
+import com.dji.sample.patches.utils.TimerUtil;
+import com.dji.sample.patches.utils.ZipUtil;
 import com.dji.sample.patches.xml.mode.XMLTemplateModel;
 import com.dji.sample.patches.xml.utils.CreateWaylineFileUtils;
 import com.dji.sample.wayline.plane.PlaneCourseUtils;
 import com.dji.sample.wayline.plane.param.CreateWaylineParam;
+import com.dji.sample.wayline.service.IWaylineFileService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
+
+import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
 
 /**
  * @Author AIX
@@ -15,25 +29,54 @@
 @RestController
 @RequestMapping("/wayline/plane/createWayline")
 public class CreateWayLineController {
+    @Autowired
+    private PatchesConfigPojo patchesConfigPojo;
+    @Autowired
+    private IWaylineFileService waylineFileService;
 
     @PostMapping("/createPoints")
     public ResponseResult createPoints(@RequestBody CreateWaylineParam param) {
         return ResponseResult.success(PlaneCourseUtils.createWaylinePoints(param));
     }
 
-    @PostMapping("/saveWayLineFile")
-    public ResponseResult saveWayLineFile(@RequestBody CreateWaylineParam param) {
-        // 初始化模板对象
+    @PostMapping("/{workspace_id}/saveWayLineFile")
+    public ResponseResult saveWayLineFile(@PathVariable(name = "workspace_id") String workspaceId,
+                                          @RequestBody CreateWaylineParam param,
+                                          HttpServletRequest request
+    ) throws IOException {
+        CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
+        String creator = customClaim.getUsername();
+//         初始化模板对象
         XMLTemplateModel xmlModel = XMLTemplateModel.initPolygon(param);
-
-        //生成航线文件
-        CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, "src\\main\\resources\\template\\template-polygon.xml", "src\\main\\resources\\template\\wpmz2\\template.xml");
-        CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, "src\\main\\resources\\template\\waylines-polygon.xml", "src\\main\\resources\\template\\wpmz2\\waylines.xml");
-
-        //kmz、上传航线库
-
+//        生成航线文件
+        CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneTemplate(), patchesConfigPojo.getPlaneTargetTemplate());
+        CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneWaylines(), patchesConfigPojo.getPlaneTargetWaylines());
+//        kmz、上传航线库
+        String destKMZFile = patchesConfigPojo.getPlaneKMZFile() + param.getWaylineName() + ".kmz"; // 输出的KMZ文件路径
+        ZipUtil.zipFolder(patchesConfigPojo.getSourceDir(), destKMZFile);
+        MultipartFile multipartFile = MultipartFileTOFileUtil.convert(new File(destKMZFile));
+        waylineFileService.importKmzFile(multipartFile, workspaceId, creator, null, "1");
         return ResponseResult.success();
-
     }
 
-}
+    @PutMapping("/{workspace_id}/updateWayLineFile/{id}")
+    public ResponseResult updateWayLineFile(@PathVariable(name = "workspace_id") String workspaceId,
+                                            @PathVariable(name = "id") String id,
+                                            @RequestBody CreateWaylineParam param,
+                                            HttpServletRequest request) throws IOException {
+        CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
+        String creator = customClaim.getUsername();
+        String newName = param.getWaylineName() + TimerUtil.getNowDay();
+//         初始化模板对象
+        XMLTemplateModel xmlModel = XMLTemplateModel.initPolygon(param);
+//        生成航线文件
+        CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneTemplate(), patchesConfigPojo.getPlaneTargetTemplate());
+        CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneWaylines(), patchesConfigPojo.getPlaneTargetWaylines());
+//        kmz、上传航线库
+        String destKMZFile = patchesConfigPojo.getPlaneKMZFile() + newName + ".kmz"; // 输出的KMZ文件路径
+        ZipUtil.zipFolder(patchesConfigPojo.getSourceDir(), destKMZFile);
+        MultipartFile multipartFile = MultipartFileTOFileUtil.convert(new File(destKMZFile));
+        waylineFileService.importPlaneKmzFile(multipartFile, workspaceId, creator, newName, id);
+        return ResponseResult.success();
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3