|
|
@ -3,25 +3,33 @@ package org.dromara.sample.wayline.controller; |
|
|
|
import io.swagger.v3.oas.annotations.Operation; |
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag; |
|
|
|
import jakarta.servlet.http.HttpServletRequest; |
|
|
|
import jakarta.servlet.http.HttpServletResponse; |
|
|
|
import jakarta.validation.Valid; |
|
|
|
import org.dromara.business.api.domain.vo.RemoteBusinessAlertVo; |
|
|
|
import org.dromara.common.core.domain.R; |
|
|
|
import org.dromara.common.satoken.utils.LoginHelper; |
|
|
|
import org.dromara.common.sdk.cloudapi.wayline.FlighttaskProgress; |
|
|
|
import org.dromara.common.sdk.cloudapi.wayline.WaylineJobTypeEnum; |
|
|
|
import org.dromara.common.sdk.common.HttpResultResponse; |
|
|
|
import org.dromara.common.sdk.common.PaginationData; |
|
|
|
import org.dromara.sample.component.mqtt.model.EventsReceiver; |
|
|
|
import org.dromara.sample.media.model.MediaFileDTO; |
|
|
|
import org.dromara.sample.wayline.model.dto.WaylineJobDTO; |
|
|
|
import org.dromara.sample.wayline.model.param.CreateJobParam; |
|
|
|
import org.dromara.sample.wayline.model.param.UpdateJobParam; |
|
|
|
import org.dromara.sample.wayline.service.IFlightTaskService; |
|
|
|
import org.dromara.sample.wayline.service.IWaylineFileService; |
|
|
|
import org.dromara.sample.wayline.service.IWaylineJobService; |
|
|
|
import org.dromara.sample.wayline.service.IWaylineRedisService; |
|
|
|
import org.dromara.system.api.model.LoginUser; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
import java.net.URL; |
|
|
|
import java.sql.SQLException; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
|
|
|
@ -41,6 +49,11 @@ public class WaylineJobController { |
|
|
|
@Autowired |
|
|
|
private IFlightTaskService flighttaskService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IWaylineRedisService waylineRedisService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IWaylineFileService waylineFileService; |
|
|
|
/** |
|
|
|
* Create a wayline task for the Dock. |
|
|
|
* @param request |
|
|
@ -108,6 +121,21 @@ public class WaylineJobController { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@GetMapping("/{workspace_id}/getJobFileUrlByDeviceSn") |
|
|
|
@Operation(summary = "根据设备查询飞行任务。", description = "根据设备查询飞行任务。") |
|
|
|
public void getJobFileUrlByDeviceSn(@PathVariable(name = "workspace_id") String workspaceId, |
|
|
|
@RequestParam(name = "device_sn") String deviceSn, HttpServletRequest req, HttpServletResponse rsp) { |
|
|
|
try { |
|
|
|
Optional<EventsReceiver<FlighttaskProgress>> runningWaylineJob = waylineRedisService.getRunningWaylineJob(deviceSn); |
|
|
|
if(runningWaylineJob.isEmpty())return; |
|
|
|
String jobId = runningWaylineJob.get().getOutput().getExt().getFlightId(); |
|
|
|
Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobId(workspaceId, jobId); |
|
|
|
if(waylineJobDTO.isEmpty())return; |
|
|
|
URL url = waylineFileService.getObjectUrl(workspaceId, waylineJobDTO.get().getFileId()); |
|
|
|
rsp.sendRedirect(url.toString()); |
|
|
|
} catch (IOException | SQLException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|