| | |
| | | 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 |
| | |
| | | @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("/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(); |
| | | |
| | | } |
| | | |
| | | } |
| | | @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(); |
| | | } |
| | | } |