package org.sxkj.odm.feign; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tenant.annotation.NonDS; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.sxkj.odm.entity.OdmTaskInfo; import org.sxkj.odm.entity.PointParam; import org.sxkj.odm.entity.TifParseRequest; import org.sxkj.odm.entity.TifParseResponse; import org.sxkj.odm.service.IOdmTaskInfoService; import org.sxkj.odm.service.impl.AsyncOdmTaskService; import java.util.List; import java.util.Map; @NonDS //@ApiIgnore @RestController @AllArgsConstructor @Slf4j public class OdmTaskInfoClient implements IOdmTaskInfoClient { @Autowired private IOdmTaskInfoService odmTaskInfoService; @Autowired private AsyncOdmTaskService asyncOdmTaskService; /** * 定时任务----创建 odm 任务 */ @Override @GetMapping(CREATE_WEB_ODM_TASK) public Boolean createWebOdmTask() { return odmTaskInfoService.createWebOdmTask(); } /** * 保存 odm 任务信息 * * @param jobId 航测任务job_id * @return */ @Override @GetMapping(SAVE_ODM_TASK_INFO) public void saveOdmTaskInfo(String jobId) { asyncOdmTaskService.saveOdmTaskInfo(jobId); } /** * 定时更新odm 任务状态 * * @return */ @Override @GetMapping(UPDATE_ODM_TASK) public Integer updateOdmTaskStatus() { return odmTaskInfoService.updateOdmTaskInfo(); } /** * 定时任务----异常 odm 任务重试 */ @Override @GetMapping(RUN_ERROR_WEB_ODM_TASK) public Boolean runErrorWebOdmTask() { return odmTaskInfoService.runErrorWebOdmTask(); } /** * 定时任务----定时补漏odm任务的的生成(由其他原因到时没有创建到任务的) */ @Override @GetMapping(LEAK_REPAIR_ODM_TASK) public void leakRepairOdmTask() { asyncOdmTaskService.leakRepairOdmTask(); } /** * 定时删除odm临时文件任务 * * @return */ @Override @GetMapping(DELETED_ODM_TEMP_FILE) public boolean deletedOdmTempFile() { return odmTaskInfoService.deletedOdmTempFile(); } /** * 定时删除odm拼图任务中失效的文件 * * @return */ @Override @GetMapping(DELETED_ODM_TASK_INVF_FILE) public boolean deletedOdmTaskInVFile() { return odmTaskInfoService.deletedOdmTaskInVFile(); } /** * 定时删除odm拼图任务中重复的任务(同一个图斑多个任务,保留最新的) * * @return */ @Override @GetMapping(DELETED_REP_ODM_TASK) public boolean deletedRepOdmTask() { return odmTaskInfoService.deletedRepOdmTask(); } /** * 定时删除odm拼图任务(航线任务已删除的) * * @return */ @Override @GetMapping(DEL_REP_ODM_TASK_BY_NO_WAY_JOB) public boolean delRepOdmTaskByNoWayJob() { return odmTaskInfoService.delRepOdmTaskByNoWayJob(); } /** * 定时补充odm历史任务tif图斑面叠加 * * @return */ @GetMapping(SUP_ODM_TB_TIF_DRAW) @Override public boolean supOdmTbTifDraw() { return odmTaskInfoService.handleNotParseTif(); } /** * 定时删除odm拼图任务(保留一个月内的数据) * * @return */ @GetMapping(DEL_REP_ODM_TASK_BY_BEF_ONE_MON) @Override public boolean delRepOdmTaskByBefOneMon(Integer day) { return odmTaskInfoService.delRepOdmTaskByBefOneMon(day); } /** * 航线飞行路径规划 * * @return */ @PostMapping(ROUTE_PLANNING) @Override public List waylineFlightPathPlanning(@RequestBody List param) { return odmTaskInfoService.waylineFlightPathPlanning(param); } /** * 生成网格定时任务 */ @GetMapping(GENERATE_GRID_TASK) @Override public void generateGridTask() { odmTaskInfoService.generateGridTask(); } /** * 保存禁飞区面数据 */ @GetMapping(SAVE_MULTIPOLYGON_INFO) @Override public Map saveMultipolygonInfo( Double height, String geoData) { return odmTaskInfoService.saveMultipolygonInfo(height, geoData); } /** * @param longitude 经度 * @param latitude 纬度 * @return */ @Override public List getTifDataByCoord(double longitude, double latitude) { return odmTaskInfoService.getTifDataByCoord(longitude, latitude); } /** * 根据经纬度获取10公里内tif数据 * * @param longitude 经度 * @param latitude 纬度 * @return */ @Override public List getAllTifDataByCoord(double longitude, double latitude) { return odmTaskInfoService.getAllTifDataByCoord(longitude, latitude); } /** * odm 3d 白膜叠加补充 * * @return */ @Override public void odmTilesSup() { odmTaskInfoService.tilesSup(); } // tif 获取高程信息 /** * tif 获取高程信息 (新版本) * * @param request 包含tif路径、起始点坐标等信息的请求对象 * @return 高程信息响应 */ @Override public TifParseResponse tifParseNew(TifParseRequest request) { return odmTaskInfoService.tifParseNew(request); } /** * 定时处理odm历史任务点云转3dtiles(需要提取建筑物面) * * @return */ @Override public boolean handleHistoryPointCloudTo3dtiles() { return odmTaskInfoService.handleHistoryPointCloudTo3dtiles(); } @Override public Boolean deleteGrid(@RequestParam("ids") String ids) { return odmTaskInfoService.deleteGrid(ids); } @Override public void updateAirportTerrainData() { log.info("更新机场地形数据任务开始"); Map airportTerrainHeightParams = odmTaskInfoService.getAirportTerrainHeightParams(); String centerLon = airportTerrainHeightParams.get("center_lon"); String centerLat = airportTerrainHeightParams.get("center_lat"); String dockSn = airportTerrainHeightParams.get("dock_sn"); Boolean result = odmTaskInfoService.initAirportTerrainHeight(centerLon, centerLat, dockSn); log.info("updateAirportTerrainData: {}", result); } /** * odm 3d 实景三维叠加补充 * @return */ @Override public void odmLiveTilesSup() { odmTaskInfoService.liveTilesSup(); } }