package com.dji.sample.wayline.service; import com.dji.sample.wayline.model.dto.WaylineJobDTO; import com.dji.sample.wayline.model.enums.WaylineJobStatusEnum; import com.dji.sample.wayline.model.param.CreateJobParam; import com.dji.sample.wayline.model.param.FlighttaskPrepareParam; import com.dji.sdk.common.PaginationData; import java.util.Collection; import java.util.List; import java.util.Optional; /** * @author sean * @version 1.1 * @date 2022/6/1 */ public interface IWaylineJobService { /** * Create wayline job in the database. * @param param * @param workspaceId user info * @param username user info * @param beginTime The time the job started. * @param endTime The time the job ended. * @return */ Optional createWaylineJob(CreateJobParam param, String workspaceId, String username, Long beginTime, Long endTime); /** * Create wayline job in the database. * @param param * @param sn user info * @param username user info * @param beginTime The time the job started. * @param endTime The time the job ended. * @return */ Optional createWaylineJob(FlighttaskPrepareParam param, String sn, String workspaceId, String username, Long beginTime, Long endTime,String flightId); /** * Create a sub-task based on the information of the parent task. * @param workspaceId * @param parentId * @return */ Optional createWaylineJobByParent(String workspaceId, String parentId); /** * Query wayline jobs based on conditions. * @param workspaceId * @param jobIds * @param status * @return */ List getJobsByConditions(String workspaceId, Collection jobIds, WaylineJobStatusEnum status); /** * Query job information based on job id. * @param workspaceId * @param jobId * @return job information */ Optional getJobByJobId(String workspaceId, String jobId); /** * Update job data. * @param dto * @return */ Boolean updateJob(WaylineJobDTO dto); /** * Paginate through all jobs in this workspace. * @param workspaceId * @param page * @param pageSize * @return */ PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize); /** * Paginate through all jobs in this workspace. * @param page * @param pageSize * @return */ PaginationData getJobs(long page, long pageSize); /** * Query the wayline execution status of the dock. * @param dockSn * @return */ WaylineJobStatusEnum getWaylineState(String dockSn); }