rain
2024-06-14 8d9a2d656e4ae007590c622e5f7c228adacdca49
src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
@@ -4,12 +4,17 @@
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.component.mqtt.model.CommonTopicReceiver;
import com.dji.sample.wayline.model.dto.WaylineJobCountDTO;
import com.dji.sample.wayline.model.dto.WaylineJobDTO;
import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.entity.WaylineJobEntity;
import com.dji.sample.wayline.model.enums.WaylineJobStatusEnum;
import com.dji.sample.wayline.model.param.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.messaging.MessageHeaders;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
/**
@@ -22,13 +27,25 @@
    /**
     * Create wayline job in the database.
     * @param param
     * @param customClaim   user info
     * @param workspaceId   user info
     * @param username      user info
     * @param beginTime     The time the job started.
     * @param endTime       The time the job ended.
     * @return
     */
    Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, CustomClaim customClaim);
    Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Long beginTime, Long endTime);
    /**
     * Create a sub-task based on the information of the parent task.
     * @param workspaceId
     * @param parentId
     * @return
     */
    Optional<WaylineJobDTO> createWaylineJobByParent(String workspaceId, String parentId);
    /**
     * Issue wayline mission to the dock.
     * 向机场发出航线任务
     * @param param
     * @param customClaim   user info
     * @return
@@ -36,12 +53,31 @@
    ResponseResult publishFlightTask(CreateJobParam param, CustomClaim customClaim) throws SQLException;
    /**
     * Issue wayline mission to the dock.
     * 向机场发出航线任务(重复任务和定时任务)
     * @param param
     * @param customClaim   user info
     * @return
     */
    ResponseResult publishFlightTaskCondition(CreateJobParam param, CustomClaim customClaim) throws SQLException;
    /**
     * Issue wayline mission to the dock.
     * 向机场添加航线任务指令
     * @param waylineJob
     * @return
     * @throws SQLException
     */
    ResponseResult publishOneFlightTask(WaylineJobDTO waylineJob) throws SQLException;
    /**
     * Execute the task immediately.
     * 执行立即任务
     * @param jobId
     * @throws SQLException
     * @return
     */
    Boolean executeFlightTask(String jobId);
    Boolean executeFlightTask(String workspaceId, String jobId);
    /**
     * Cancel the task Base on job Ids.
@@ -52,18 +88,38 @@
    void cancelFlightTask(String workspaceId, Collection<String> jobIds);
    /**
     * Cancel the dock tasks that have been issued but have not yet been executed.
     * @param workspaceId
     * @param dockSn
     * @param jobIds
     */
    void publishCancelTask(String workspaceId, String dockSn, List<String> jobIds);
    /**
     * Query wayline jobs based on conditions.
     * @param workspaceId
     * @param jobIds
     * @param status
     * @return
     */
    List<WaylineJobDTO> getJobsByConditions(String workspaceId, Collection<String> jobIds, WaylineJobStatusEnum status);
    /**
     * Query job information based on job id.
     * @param workspaceId
     * @param jobId
     * @return job information
     */
    Optional<WaylineJobDTO> getJobByJobId(String jobId);
    Optional<WaylineJobDTO> getJobByJobId(String workspaceId, String jobId);
    Optional<WaylineJobDTO> getJobByJobId(String workspaceId, String jobId,Boolean isBreakPoint);
    /**
     * Update job data.
     * @param dto
     * @return
     */
    Boolean updateJob(WaylineJobDTO dto);
    Boolean updateJob(WaylineJobDTO dto) ;
    /**
     * Paginate through all jobs in this workspace.
@@ -72,7 +128,18 @@
     * @param pageSize
     * @return
     */
    PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize);
    PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize, WaylineJobQueryParam waylineJobQueryParam);
    /**
     * 不分子任务列表
     *
     * @param workspaceId
     * @param page
     * @param pageSize
     * @param waylineJobQueryParam
     * @return
     */
    PaginationData<WaylineJobDTO> getJobsByWorkspaceIdNew(String workspaceId, long page, long pageSize, WaylineJobQueryParam waylineJobQueryParam, String order);
    /**
     * Process to get interface data of flight mission resources.
@@ -87,4 +154,47 @@
     * @param jobId
     */
    void uploadMediaHighestPriority(String workspaceId, String jobId);
    /**
     * Manually control the execution status of wayline job.
     * @param workspaceId
     * @param jobId
     * @param param
     */
    void updateJobStatus(String workspaceId, String jobId, UpdateJobParam param);
    /**
     * Query the wayline execution status of the dock.
     * @param dockSn
     * @return
     */
    WaylineJobStatusEnum getWaylineState(String dockSn);
    /**
     * 获取最新的航线任务
     * @param workspaceId
     * @param waylineJobQueryParam
     * @return
     */
    WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam);
    WaylineJobCountDTO patrolStatistics(String workspaceId,String queryTime,String deviceSn);
    void updateJobCollect(WaylineJobEntity waylineJob);
    ResponseResult flyByArea(String sn, FlyAreaParam flyAreaParam,String deviceSn) throws Exception;
    /**
     * 判断是否有下一次任务
     * @param job
     */
    ResponseResult checkNextJob(WaylineJobDTO job)  throws SQLException ;
    /**
     * 根据父Id获取子项
     * @param workspaceId
     * @param waylineJobQueryParam
     * @return
     */
    List<WaylineJobDTO> getChildrenJobs(String workspaceId, WaylineJobQueryParam waylineJobQueryParam);
}