package com.dji.sample.territory.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.model.entity.DroneFlightLogEntity; import com.dji.sample.media.model.MediaFileEntity; import com.dji.sample.patches.dao.GetPatchesMapper; import com.dji.sample.patches.model.Param.PatchesParam; import com.dji.sample.patches.model.entity.LotInfo; import com.dji.sample.patches.service.GetPatchesService; import com.dji.sample.patches.service.ShpToDataSourceService; import com.dji.sample.patches.utils.GeoToolsUtil; import com.dji.sample.patches.utils.MultipartFileTOFileUtil; import com.dji.sample.patches.xml.mode.XMLTemplateModel; import com.dji.sample.patches.xml.utils.CreateWaylineFileUtils; import com.dji.sample.territory.model.entity.TbDkjbxxEntity; import com.dji.sample.territory.model.entity.param.UploadUrlParam; import com.dji.sample.territory.service.ITbDkjbxxService; import com.dji.sample.territory.service.ITbFJService; import com.dji.sample.wayline.model.entity.WaylineFileEntity; import com.dji.sample.wayline.service.IWaylineFileService; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; import org.locationtech.jts.geom.Coordinate; 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 java.net.URL; import java.sql.SQLException; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; /** * @PROJECT_NAME: drone * @DESCRIPTION: * @USER: aix * @DATE: 2024/4/10 11:20 */ @RestController @Slf4j @RequestMapping("/territory/tbdkjbxx") public class TbDkjbxxController { @Autowired private ITbDkjbxxService tbDkjbxxService; @Autowired private ShpToDataSourceService shpToDataSourceService; @Autowired private IWaylineFileService waylineFileService; @GetMapping("/list") public ResponseResult list() { List list = tbDkjbxxService.list(); return ResponseResult.success(list); } /** * 上传文件并保存到数据库 * * @param file 需要上传的文件,通过multipart/form-data方式提交 * @return */ @PostMapping("/upload") public ResponseResult uploadFile(@RequestParam("file") MultipartFile file, @RequestParam String taskName, @RequestParam String taskId){ String workspaceId="4a574db8-4ad3-48f7-9f16-3edbcd8056e1"; if (file==null){ return ResponseResult.error("上传文件为空"); } tbDkjbxxService.uploadFile(file); List list = tbDkjbxxService.list(); if (list.size()==0){ return ResponseResult.error("上传文件数据为空"); } try { shpToDataSourceService.savaInMysql(list, workspaceId,taskId,taskName); }catch (Exception e){ return ResponseResult.error("上传db文件的内容格式不匹配"); } return ResponseResult.success("上传成功"); } @PostMapping("/uploadUrl") public ResponseResult uploadUrl(@RequestBody UploadUrlParam param) { tbDkjbxxService.uploadUrl(param.getDbUrl(), param.getTaskName()); String workspaceId = "4a574db8-4ad3-48f7-9f16-3edbcd8056e1"; List list = tbDkjbxxService.list(); shpToDataSourceService.savaInMysql(list, workspaceId, param.getTaskId(), param.getTaskName()); return ResponseResult.success(200); } /** * 将sqlite里的数据入库并生成航线 * * @param workspaceId * @param waylineName * @param airportLat * @param airportLon * @param request * @return * @throws Exception */ // @PostMapping("/uploadLot") // public ResponseResult getGeo(@RequestParam String workspaceId, // @RequestParam String waylineName, // @RequestParam double airportLat, // @RequestParam double airportLon, // HttpServletRequest request) throws Exception { // List list = tbDkjbxxService.list(); // shpToDataSourceService.savaInMysql(list, workspaceId); // MultipartFile multipartFile = tbDkjbxxService.listFile(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); // } }