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.media.model.MinioPojo;
|
import com.dji.sample.media.util.MinioFileDownloader;
|
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
|
* @Date 2024/7/19 10:46
|
* @Version 1.0
|
*/
|
@RestController
|
@RequestMapping("/wayline/plane/createWayline")
|
public class CreateWayLineController {
|
@Autowired
|
private PatchesConfigPojo patchesConfigPojo;
|
@Autowired
|
private IWaylineFileService waylineFileService;
|
|
@Autowired
|
private MinioPojo pojo;
|
|
@PostMapping("/createPoints")
|
public ResponseResult createPoints(@RequestBody CreateWaylineParam param) {
|
return ResponseResult.success(PlaneCourseUtils.createWaylinePoints(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, 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();
|
}
|
|
@PostMapping("/{workspace_id}/updateWayLineFile")
|
public ResponseResult updateWayLineFile(@PathVariable(name = "workspace_id") String workspaceId,
|
@RequestBody CreateWaylineParam param,
|
HttpServletRequest request) throws IOException {
|
String kmz=param.getWaylineName()+".kmz";
|
// 初始化模板对象
|
MinioFileDownloader.deleteFileFromMinio(pojo.getEndpoint(), pojo.getAccessKey(), pojo.getSecretKey(), pojo.getBucket(), kmz);
|
CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
|
String creator = customClaim.getUsername();
|
// 初始化模板对象
|
XMLTemplateModel xmlModel = XMLTemplateModel.initPolygon(param);
|
// 生成航线文件
|
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.importPlaneKmzFile(multipartFile, workspaceId, creator, null, "1");
|
return ResponseResult.success();
|
}
|
}
|