rain
2024-07-30 ceaf77720ca99f61a3b69147f8d7b3127bf8c5b7
src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
@@ -18,6 +18,7 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.io.File;
import java.io.IOException;
@@ -40,48 +41,48 @@
    private MinioPojo pojo;
    @PostMapping("/createPoints")
    public ResponseResult createPoints(@RequestBody CreateWaylineParam param) {
    public ResponseResult createPoints(@RequestBody @Valid CreateWaylineParam param) {
        return ResponseResult.success(PlaneCourseUtils.createWaylinePoints(param));
    }
    @PostMapping("/{workspace_id}/saveWayLineFile")
    public ResponseResult saveWayLineFile(@PathVariable(name = "workspace_id") String workspaceId,
                                          @RequestBody CreateWaylineParam param,
                                          @RequestBody @Valid 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");
//        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();
    }
    @PutMapping("/{workspace_id}/updateWayLineFile/{id}")
    @PostMapping("/{workspace_id}/updateWayLineFile")
    public ResponseResult updateWayLineFile(@PathVariable(name = "workspace_id") String workspaceId,
                                            @PathVariable(name = "id") String id,
                                            @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());
        MinioFileDownloader.deleteFileFromMinio(pojo.getEndpoint(), pojo.getAccessKey(), pojo.getSecretKey(), pojo.getBucket(), param.getWaylineName());
//        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, param.getWaylineName(), id);
        waylineFileService.importPlaneKmzFile(multipartFile, workspaceId, creator, null, "1");
        return ResponseResult.success();
    }
}