package org.sxkj.odm.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.locationtech.jts.geom.Point; import org.springblade.core.tool.api.R; import org.springframework.web.multipart.MultipartFile; import org.sxkj.odm.entity.*; import org.sxkj.odm.vo.MapLatLng; import org.sxkj.odm.vo.OdmTaskInfoQueryParam; import org.sxkj.odm.vo.OdmTaskInfoVO; import org.sxkj.odm.vo.OdmTaskTilesVo; import org.sxkj.system.vo.TreeVo; import java.util.List; import java.util.Map; /** * odm 任务信息接口服务层 * @author zhongrj * @date 2024/09/11 * @version 0.1 */ public interface IOdmTaskInfoService extends IService { /** * 自定义分页列表查询 * @param page * @param odmTaskInfo * @return */ IPage selectOdmTaskInfoPage(IPage page, OdmTaskInfoVO odmTaskInfo); /** * 创建 odm 任务--定时创建 * @return */ Boolean createWebOdmTask(); /** * odm 任务创建 * @param jobId 航线任务id * @param ortRes 正射影像的分辨率,单位为 cm/pixel * @return */ Boolean createWebOdmTask(String jobId,Double ortRes); /** * 定时补漏odm任务的的生成(由其他原因到时没有创建到任务的) * @return */ Boolean leakRepairOdmTask(); /** * 保存 odm 任务信息 * @param jobId * @return */ Boolean saveOdmTaskInfo(String jobId); /** * 获取正射影像信息 * @param jobId 航线任务id * @return */ String getOrthoimageUrl(String jobId); /** * 定时更新odm 任务状态 * @return */ Integer updateOdmTaskInfo(); /** * 获取正射影像服务信息 * @param dkbh 图斑编号 * @param workspaceId 项目id * @return */ R getOrthoimageInfo(String dkbh,String workspaceId,String jobId); /** * 获取正射影像列表信息 * @param lotInfoId 图斑id * @param workspaceId 项目id * @return */ R getOrthoimageInfos(String lotInfoId,String workspaceId,String jobId); /** * 自定义删除 * @param idList * @return */ Boolean removeOdmTaskByIds(List idList); /** * 定时任务----异常 odm 任务重试 * @return */ Boolean runErrorWebOdmTask(); /** * 更新正射影像tif 信息到 附件表 * @return */ R updateOrthoimageToAttach(); /** * odm 任务重启 * @param taskId 航线任务id * @return */ Boolean restartOdmTask(String taskId); /** * 获取odm 任务下载url * @param dkbh * @param workspaceId * @return */ String getOdmTaskDownUrl(String dkbh, String workspaceId,String jobId); /** * 定时删除odm临时文件任务 * @return */ boolean deletedOdmTempFile(); /** * 定时删除odm拼图任务中失效的文件 * @return */ boolean deletedOdmTaskInVFile(); /** * 定时删除odm拼图任务中重复的任务(同一个图斑多个任务,保留最新的) * @return */ boolean deletedRepOdmTask(); /** * 定时删除odm拼图任务(航线任务已删除的) * @return */ boolean delRepOdmTaskByNoWayJob(); /** * tif 图片解析 * @param dkbh 地块编号 * @param flag 是否已完成拼图任务 * @return */ String tifParse(String dkbh,Boolean flag,String tifPath); List getPixelByPointList(String inputPath, List pointList); /** * 处理没有 tif 画面的 * @return */ boolean handleNotParseTif(); /** * 定时删除odm拼图任务(保留一个月内的数据) 按天来,动态传参 * @param day 天 * @return */ boolean delRepOdmTaskByBefOneMon(Integer day); /** * 历史odm tif 数据处理 * @return */ Boolean hisOdmTaskTifDataHandler(); /** * 视频处理成3d 白膜测试 * @return */ boolean videoToOdm(String jobId); /** * 根据经纬度获取tif数据 * @param longitude 经度 * @param latitude 纬度 * @return tif数据 */ List getTifDataByCoord(double longitude, double latitude); /** * 根据经纬度10公里获取tif数据 * @param longitude 经度 * @param latitude 纬度 * @return tif数据 */ List getAllTifDataByCoord(double longitude, double latitude); /** * 查询地图位置上3d-tiles数据 * @param dto * @return */ TreeVo getVoxGridTilesList(OdmTaskInfoQueryParam dto); /** * 查询地图位置上3d-tiles数据-单机巢 * @param dto * @return */ List getVoxGridTilesListBySinglePlayer(OdmTaskInfoQueryParam dto); /** * 历史 odm 新增相关字段数据补充 * @return */ int historyOdmTaskDataHandler(); /** * 测试远程调用资源模块 * @return */ Boolean testToResource(MultipartFile file); /** * 更新三维白膜信息到 附件表 * @return */ R updateVoxGridTilesToAttach(); /** * 3d白膜部分生成失败补充 * @return */ void tilesSup(); /** * 实景三维生成失败补充 * @return */ void liveTilesSup(); /** * 3d白膜部分生成失败补充 * @param odmTaskInfo * @return */ void tilesSupByParam(OdmTaskInfoVO odmTaskInfo); /** * tif 图片解析 * @param request * @return */ TifParseResponse tifParseNew(TifParseRequest request); /** * 获取历史 obj 网格数据 * @return */ int getHisObjGridData(); /** * 处理历史已飞的点云提取建筑生成白膜 * @return */ Boolean handleHistoryPointCloudTo3dtiles(); /** * 获取历史 点云数据 * @return */ int getHisPointCloudData(); /** * 航线路径规划 * @param param * @return */ List waylineFlightPathPlanning(List param); /** * 生成网格任务 */ void generateGridTask(); /** * 保存禁飞区面数据 * @param height 高度 * @param geoData geo 数据 * @return */ Map saveMultipolygonInfo(Double height, String geoData); /** * * @param ids */ Boolean deleteGrid(String ids); /** * 初始化机场地形高度 * @param centerLon * @param centerLat * @param dockSn * @return */ Boolean initAirportTerrainHeight(String centerLon, String centerLat, String dockSn); /** * 获取航线最大地形高度 * @param mapLatLng * @return */ Integer getWaylineMaxTerrainHeight(List mapLatLng); /** * 删除机场地形高度 * @param dockSn * @return */ Integer deleteAirportTerrainHeight(String dockSn); /** * 缓存机场地形高度参数 * @param centerLon * @param centerLat * @param dockSn */ Integer cacheAirportTerrainHeightParams(String centerLon, String centerLat, String dockSn); /** * 获取机场地形高度参数 * @return */ Map getAirportTerrainHeightParams(); }