Commit 26fb654f by gdj

增加任务统计接口和今日任务接口。

parent 744cfdef
package com.dji.sample.wayline.controller;
import com.dji.sample.common.model.CustomClaim;
import com.dji.sample.wayline.model.dto.TaskStatisticDTO;
import com.dji.sample.wayline.model.dto.WaylineJobDTO;
import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.param.UpdateJobParam;
......@@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.sql.SQLException;
import java.util.List;
import java.util.Set;
import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
......@@ -100,4 +102,33 @@ public class WaylineJobController {
flighttaskService.updateJobStatus(workspaceId, jobId, param);
return HttpResultResponse.success();
}
/**
* 统计数据
* @param workspaceId
* @return
*/
@GetMapping("/{workspace_id}/jobs/statistics")
public HttpResultResponse<List<TaskStatisticDTO>> getTaskStatistics(@PathVariable(name = "workspace_id") String workspaceId,
@RequestParam(name = "time_type", defaultValue = "0") Integer timeType) {
List<TaskStatisticDTO> dto = waylineJobService.getTaskStatistics(workspaceId, timeType);
return HttpResultResponse.success(dto);
}
/**
* 今日任务
* @param page
* @param pageSize
* @param workspaceId
* @return
*/
@GetMapping("/{workspace_id}/todayJobs")
public HttpResultResponse<PaginationData<WaylineJobDTO>> getTodayJobs(@RequestParam(defaultValue = "1") Long page,
@RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
@RequestParam(name = "dock_sns", required = false) String dockSns,
@PathVariable(name = "workspace_id") String workspaceId) {
PaginationData<WaylineJobDTO> data = waylineJobService.getTodayJobsByWorkspaceId(workspaceId, dockSns, page, pageSize);
return HttpResultResponse.success(data);
}
}
package com.dji.sample.wayline.model.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author guan
*/
@Data
public class TaskSceneStatisticDTO implements Serializable {
private Integer taskScene;
private String taskSceneName;
private Integer count;
}
package com.dji.sample.wayline.model.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author guan
*/
@Data
public class TaskStatisticDTO implements Serializable {
String date;
Integer count;
Integer finishCount;
Integer unfinishCount;
//
/**
* 任务状态统计
*/
List<TaskStatusStatisticDTO> statusList;
/**
* 任务起飞类型统计
*/
List<TaskSceneStatisticDTO> sceneList;
}
package com.dji.sample.wayline.model.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author guan
*/
@Data
public class TaskStatusStatisticDTO implements Serializable {
Integer taskStatus;
String taskStatusName;
Integer count;
}
package com.dji.sample.wayline.model.dto;
import com.dji.sample.wayline.model.enums.TaskSceneEnum;
import com.dji.sdk.cloudapi.wayline.OutOfControlActionEnum;
import com.dji.sdk.cloudapi.wayline.TaskTypeEnum;
import com.dji.sdk.cloudapi.wayline.WaylineTypeEnum;
......@@ -68,4 +69,10 @@ public class WaylineJobDTO {
private WaylineTaskConditionDTO conditions;
private String parentId;
/**
* 起飞类型
*/
private TaskSceneEnum taskScene;
}
......@@ -82,4 +82,11 @@ public class WaylineJobEntity implements Serializable {
@TableField("parent_id")
private String parentId;
/**
* 任务起飞类型
*/
@TableField("task_scene")
private Integer taskScene;
}
package com.dji.sample.wayline.model.enums;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
/**
* 任务创建原因
* @author guan
*/
@Getter
public enum TaskSceneEnum {
MODEL_TASK(0, "建模任务"),
ROUTINE_PATROL_TASK(1, "常规巡查任务"),
TEMPORARY_TAKEOFF_TASK(2, "临时起飞任务");
int scene;
String sceneName;
TaskSceneEnum(int scene, String sceneName) {
this.scene = scene;
this.sceneName = sceneName;
}
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
public static TaskSceneEnum find(Integer scene) {
return Arrays.stream(values()).filter(taskSceneEnum -> taskSceneEnum.scene == scene).findAny().get();
}
public static Optional<TaskSceneEnum> find(String sceneName) {
return Arrays.stream(values()).filter(taskSceneEnum -> taskSceneEnum.sceneName.equals(sceneName)).findAny();
}
}
package com.dji.sample.wayline.service;
import com.dji.sample.wayline.model.dto.TaskStatisticDTO;
import com.dji.sample.wayline.model.dto.WaylineJobDTO;
import com.dji.sample.wayline.model.enums.WaylineJobStatusEnum;
import com.dji.sample.wayline.model.param.CreateJobParam;
......@@ -79,9 +80,26 @@ public interface IWaylineJobService {
PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, String dockSns, long page, long pageSize);
/**
* 今日任务
* @param workspaceId
* @param dockSns
* @param page
* @param pageSize
* @return
*/
PaginationData<WaylineJobDTO> getTodayJobsByWorkspaceId(String workspaceId, String dockSns, long page, long pageSize);
/**
* Query the wayline execution status of the dock.
* @param dockSn
* @return
*/
WaylineJobStatusEnum getWaylineState(String dockSn);
/**
* 统计任务数据
* @param workspaceId
*/
List<TaskStatisticDTO> getTaskStatistics(String workspaceId, Integer timeType);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment