package com.dji.sample.patches.controller; import com.dji.sample.common.model.CustomClaim; import com.dji.sample.common.model.PaginationData; import com.dji.sample.common.model.ResponseResult; import com.dji.sample.common.util.MinioUrlUtils; import com.dji.sample.log.aspect.SysLogAnnotation; import com.dji.sample.media.model.MediaFileEntity; import com.dji.sample.patches.model.Param.PatchesParam; import com.dji.sample.patches.model.entity.LotInfo; //import com.dji.sample.patches.service.DbFileService; import com.dji.sample.patches.service.DbFileService; import com.dji.sample.patches.service.GetPatchesService; import com.dji.sample.patches.service.impl.ShpToDataSourceServiceImpl; import com.dji.sample.wayline.model.entity.WaylineFileEntity; 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.net.URL; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; @RequestMapping("${url.patches.prefix}${url.patches.version}/Patches") @RestController public class PatchesController { @Autowired private GetPatchesService getPatchesService; @Autowired private ShpToDataSourceServiceImpl shpToDataSourceServiceImpl; @Autowired private IWaylineFileService waylineFileService; @Autowired private DbFileService dbFileService; //获取图斑信息 @GetMapping("/listPatches") @SysLogAnnotation(operModul = "图斑", operType = "查询", operDesc = "查询图斑的全部信息") public ResponseResult> page(@RequestParam Integer page, @RequestParam(name = "page_size", defaultValue = "10") Integer pageSize, @RequestParam String workspaceId) { //调用service分页查询 PatchesParam param = PatchesParam.builder() .page(page) .workspaceId(workspaceId) .pageSize(pageSize).build(); PaginationData data = getPatchesService.limitGet(param); return ResponseResult.success(data); } //清空图斑文件 @DeleteMapping("/deletePatches") public ResponseResult del() { getPatchesService.delPatches(); return ResponseResult.success(); } @GetMapping("/dbFile") public ResponseResult dbfile(){ dbFileService.importDataFromSQLiteToMySQL(); return ResponseResult.success(); } //根据dkbh获取图斑图片 @GetMapping("/listPhoto") public ResponseResult> GetPatchesPhoto(@RequestParam(name = "page", defaultValue = "1") Integer page, @RequestParam(name = "page_size", defaultValue = "10") Integer pageSize, @RequestParam String workspaceId, @RequestParam String dkbh) { try { PatchesParam param = PatchesParam.builder() .page(page) .workspaceId(workspaceId) .pageSize(pageSize).build(); PaginationData paginationData = getPatchesService.getPhoto(param, dkbh); return ResponseResult.success(paginationData); } catch (Exception e) { e.printStackTrace(); // 记录异常信息到控制台 return ResponseResult.error("未匹配到相关图片"); // 返回错误信息,可以根据实际情况自定义 } } //上传图斑文件并返回航线 @PostMapping("/uploadLot") public ResponseResult getGeo(@RequestParam("file") MultipartFile file, @RequestParam String workspaceId, @RequestParam String waylineName, @RequestParam double airportLat, @RequestParam double airportLon, HttpServletRequest request) throws Exception { MultipartFile multipartFile = shpToDataSourceServiceImpl.insertGeo(file, workspaceId, waylineName, airportLat, airportLon); CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM); String creator = customClaim.getUsername(); waylineFileService.importKmzFileBack(multipartFile, workspaceId, creator); WaylineFileEntity entity = waylineFileService.selectByName(waylineName); Map infoMap = new HashMap<>(); URL url = null; try { url = waylineFileService.getObjectUrl(workspaceId, entity.getWaylineId()); infoMap.put("url", String.valueOf(MinioUrlUtils.getUrl(url))); infoMap.put("waylineId", entity.getWaylineId()); } catch (SQLException e) { throw new RuntimeException(e); } return ResponseResult.success(infoMap); // return ResponseResult.success(MinioUrlUtils.getUrl(url)); } }