| | |
| | | package com.dji.sample.patches.controller; |
| | | |
| | | import com.dji.sample.patches.model.PageBean; |
| | | import com.dji.sample.patches.service.impl.PatchesServiceImpl; |
| | | import org.opengis.geometry.coordinate.Polygon; |
| | | 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.media.model.MediaFileEntity; |
| | | import com.dji.sample.media.service.impl.FileServiceImpl; |
| | | 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.DistrictCodeUtils; |
| | | import com.dji.sample.patches.utils.GeoToolsUtil; |
| | | import com.dji.sample.patches.utils.PointPO; |
| | | import com.dji.sample.patches.utils.TimerUtil; |
| | | import com.dji.sample.territory.service.impl.TbDkjbxxServiceImpl; |
| | | import com.dji.sample.wayline.model.entity.WaylineFileEntity; |
| | | import com.dji.sample.wayline.service.IWaylineFileService; |
| | | import com.dji.sample.wayline.service.IWaylineJobService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | @RequestMapping("${url.patches.prefix}${url.patches.version}") |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.IOException; |
| | | import java.net.URL; |
| | | import java.sql.SQLException; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | |
| | | import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; |
| | | |
| | | @RequestMapping("${url.patches.prefix}${url.patches.version}/Patches") |
| | | @RestController |
| | | public class PatchesController { |
| | | @Autowired |
| | | private PatchesServiceImpl patchesServiceimpl; |
| | | @GetMapping("/getPatches") |
| | | public PageBean page(@RequestParam(defaultValue = "1") Integer page, |
| | | @RequestParam(defaultValue = "5") Integer pageSize, |
| | | Integer id, String bsm, Polygon dkfw, String dklx){ |
| | | private GetPatchesService getPatchesService; |
| | | @Autowired |
| | | private ShpToDataSourceService shpToDataSourceService; |
| | | @Autowired |
| | | private IWaylineFileService waylineFileService; |
| | | @Autowired |
| | | private IWaylineJobService waylineJobService; |
| | | @Autowired |
| | | private TbDkjbxxServiceImpl tbDkjbxxService; |
| | | @Autowired |
| | | private FileServiceImpl fileService; |
| | | @Autowired |
| | | private TimerUtil timerUtil; |
| | | |
| | | /** |
| | | * 根据workspaceId获取图斑列表信息 |
| | | * |
| | | * @param page |
| | | * @param pageSize |
| | | * @param workspaceId |
| | | * @return |
| | | */ |
| | | @GetMapping("/listPatches") |
| | | public ResponseResult<PaginationData<LotInfo>> page(@RequestParam Integer page, |
| | | @RequestParam(name = "page_size", defaultValue = "10") Integer pageSize, |
| | | @RequestParam String workspaceId, |
| | | @RequestParam(name = "dkbh", required = false) String dkbh, |
| | | @RequestParam(name = "xzqdm", required = false) String xzqdm, |
| | | @RequestParam(name = "bsm", required = false) String bsm, |
| | | @RequestParam(name = "xmc", required = false) String xmc, |
| | | @RequestParam(name = "investigate", required = false) Integer investigate |
| | | ) { |
| | | fileService.getNoaddFile(); |
| | | //调用service分页查询 |
| | | PageBean pageBean =patchesServiceimpl.limitGet( id, bsm, dkfw, dklx, page, pageSize); |
| | | return pageBean; |
| | | PatchesParam param = PatchesParam.builder() |
| | | .page(page) |
| | | .workspaceId(workspaceId) |
| | | .pageSize(pageSize) |
| | | .dkbh(dkbh) |
| | | .xzqdm(xzqdm) |
| | | .bsm(bsm) |
| | | .xmc(xmc) |
| | | .investigate(investigate) |
| | | .build(); |
| | | PaginationData<LotInfo> data = getPatchesService.limitGet(param); |
| | | return ResponseResult.success(data); |
| | | } |
| | | |
| | | /** |
| | | * 删除图斑信息 |
| | | * 本接口不需要接收任何参数,调用成功后会删除相应的补丁信息。 |
| | | * |
| | | * @return 返回操作结果,如果操作成功,则返回一个成功的响应结果。 |
| | | */ |
| | | @DeleteMapping("/deletePatches") |
| | | public ResponseResult del(String workspaceId) { |
| | | int count = getPatchesService.delPatches(workspaceId); |
| | | return ResponseResult.success("删除的图斑数量是" + count); |
| | | } |
| | | |
| | | @DeleteMapping("/deleteOne") |
| | | public ResponseResult deleteOne(int id) { |
| | | int count = getPatchesService.deleteOne(id); |
| | | if (count != 0) { |
| | | return ResponseResult.success("图斑删除成功id为" + id); |
| | | } |
| | | return ResponseResult.error("图斑删除失败"); |
| | | } |
| | | |
| | | @GetMapping("/getXzq") |
| | | public ResponseResult xzq(@RequestParam String code) { |
| | | String xzq = DistrictCodeUtils.nameToCode(code); |
| | | return ResponseResult.success(xzq); |
| | | } |
| | | |
| | | @GetMapping("/getInfoById") |
| | | public ResponseResult<LotInfo> wayAndPatchesId(@RequestParam String patchesId) { |
| | | return ResponseResult.success(getPatchesService.getPatchesFromId(patchesId)); |
| | | } |
| | | |
| | | @GetMapping("/getWayline") |
| | | public ResponseResult getWayline(@RequestParam String waylineName, @RequestBody List<LotInfo> list) { |
| | | try { |
| | | MultipartFile file = timerUtil.getFile(waylineName, list, 25.8917266, 116.020940643); |
| | | return ResponseResult.success(file); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | @GetMapping("/getPoint") |
| | | public List<PointPO> getPoint(@RequestParam List<Integer> list, |
| | | @RequestParam Double airportLat, |
| | | @RequestParam Double airportLon) { |
| | | List<LotInfo> lotInfos = getPatchesService.getLotInfosByIds(list); |
| | | return GeoToolsUtil.getRoutePointOrder(lotInfos, airportLat, airportLon); |
| | | } |
| | | |
| | | @PostMapping("/patchesToWayline") |
| | | public ResponseResult patchesToWayline(@RequestBody List<LotInfo> lotInfos, |
| | | @RequestParam String waylineName, |
| | | @RequestParam String workspaceId, |
| | | @RequestParam (required = false) String patchesId, |
| | | @RequestParam double lat, |
| | | @RequestParam double lon, |
| | | @RequestParam(defaultValue = "1",required = false) String isTemp, |
| | | HttpServletRequest request) throws IOException { |
| | | CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM); |
| | | String creator = customClaim.getUsername(); |
| | | MultipartFile file = timerUtil.getFile(waylineName, lotInfos, lat, lon); |
| | | waylineFileService.importKmzFile(file, workspaceId, creator, patchesId,isTemp); |
| | | WaylineFileEntity entity = waylineFileService.selectByName(waylineName); |
| | | Map<String, String> 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); |
| | | } |
| | | |
| | | @GetMapping("/useMyTask") |
| | | public ResponseResult useMyTask() throws Exception { |
| | | try { |
| | | // TimerUtil.mytask10(); |
| | | // timerUtil.myTask2(); |
| | | // timerUtil.myTask3(); |
| | | // timerUtil.mytask4(); |
| | | // timerUtil.mytask5(); |
| | | // timerUtil.mytask6(); |
| | | // timerUtil.mytask7(); |
| | | |
| | | } catch (Exception e) { |
| | | throw new RuntimeException("db存储发送出现异常" + e); |
| | | } |
| | | return ResponseResult.success(); |
| | | } |
| | | |
| | | @GetMapping("/tests") |
| | | public ResponseResult use() { |
| | | ExecutorService executor = Executors.newSingleThreadExecutor(); |
| | | executor.execute(() -> { |
| | | try { |
| | | timerUtil.sendPostWithFileAndParameter("DB/result_db.db", |
| | | "635148ea-0ddb-4b23-945c-8a67abd813c9"); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | }); |
| | | executor.shutdown(); |
| | | return ResponseResult.success(); |
| | | } |
| | | |
| | | @PostMapping("/way") |
| | | public void getway(@RequestParam("file") MultipartFile file, |
| | | @RequestParam String workspaceId, |
| | | @RequestParam String waylineName, |
| | | @RequestParam String username) { |
| | | waylineFileService.importKmzFileBack(file, workspaceId, username); |
| | | } |
| | | |
| | | /** |
| | | * 根据图斑的地块编号获取相对应音视频 |
| | | * |
| | | * @param page |
| | | * @param pageSize |
| | | * @param workspaceId |
| | | * @param dkbh |
| | | * @return |
| | | */ |
| | | @GetMapping("/listPhoto") |
| | | public ResponseResult<PaginationData<MediaFileEntity>> 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<MediaFileEntity> paginationData = getPatchesService.getPhoto(param, dkbh); |
| | | return ResponseResult.success(paginationData); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); // 记录异常信息到控制台 |
| | | return ResponseResult.error("未匹配到相关图片"); // 返回错误信息,可以根据实际情况自定义 |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 上传图斑文件,解析文件并入库,再生成航线并返回 |
| | | * |
| | | * @param file |
| | | * @param workspaceId |
| | | * @param waylineName |
| | | * @param airportLat |
| | | * @param airportLon |
| | | * @param request |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @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 = shpToDataSourceService.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<String, String> 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); |
| | | } |
| | | } |