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<PointParam> waylineFlightPathPlanning(@RequestBody List<PointParam> param) {
|
return odmTaskInfoService.waylineFlightPathPlanning(param);
|
}
|
|
/**
|
* 生成网格定时任务
|
*/
|
@GetMapping(GENERATE_GRID_TASK)
|
@Override
|
public void generateGridTask() {
|
odmTaskInfoService.generateGridTask();
|
}
|
|
/**
|
* 保存禁飞区面数据
|
*/
|
@GetMapping(SAVE_MULTIPOLYGON_INFO)
|
@Override
|
public Map<String, Object> saveMultipolygonInfo( Double height, String geoData) {
|
return odmTaskInfoService.saveMultipolygonInfo(height, geoData);
|
}
|
|
/**
|
* @param longitude 经度
|
* @param latitude 纬度
|
* @return
|
*/
|
|
@Override
|
public List<OdmTaskInfo> getTifDataByCoord(double longitude, double latitude) {
|
return odmTaskInfoService.getTifDataByCoord(longitude, latitude);
|
}
|
|
/**
|
* 根据经纬度获取10公里内tif数据
|
*
|
* @param longitude 经度
|
* @param latitude 纬度
|
* @return
|
*/
|
@Override
|
public List<OdmTaskInfo> 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<String, String> 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();
|
}
|
|
}
|