Merge remote-tracking branch 'origin/main'

This commit is contained in:
gyb 2026-03-16 11:48:08 +08:00
commit b4a7b290b7
10 changed files with 253 additions and 116 deletions

View File

@ -93,4 +93,13 @@ public class DockWithGPSVO implements Serializable {
@Schema(description = "无人机SN号")
private String snNumber;
@Schema(description = "舱内视频地址")
private String cabinVideoUrl;
@Schema(description = "舱外视频地址")
private String outsideVideoUrl;
@Schema(description = "直播视频地址")
private String liveVideoUrl;
}

View File

@ -32,4 +32,9 @@ public class DroneTakeoffRequest implements Serializable {
/** 最低电池电量 */
@Schema(description = "最低电池电量", example = "0.3")
private Double flyBatteryMin;
/**
* 任务ID
*/
private Long taskId;
}

View File

@ -0,0 +1,6 @@
com.ruoyi.device.api.factory.RemoteAircraftFallbackFactory
com.ruoyi.device.api.factory.RemoteAircraftFlyFallbackFactory
com.ruoyi.device.api.factory.RemoteDeviceFallbackFactory
com.ruoyi.device.api.factory.RemoteDockFallbackFactory
com.ruoyi.device.api.factory.RemoteGroupFallbackFactory
com.ruoyi.device.api.factory.RemoteStatisticsFallbackFactory

View File

@ -3,8 +3,7 @@ package com.ruoyi.task.api;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.task.api.domain.TaskDTO;
import com.ruoyi.task.api.domain.TaskQueryVO;
import com.ruoyi.task.api.domain.TaskVO;
import com.ruoyi.task.api.domain.TaskTempVO;
import com.ruoyi.task.api.enums.StatusEnum;
import com.ruoyi.task.api.factory.RemoteTaskFallbackFactory;
@ -35,12 +34,12 @@ public interface RemoteTaskService
/**
* 创建无关联计划的任务
*
* @param taskDTO 任务DTO
* @param taskVO 任务DTO
* @param source 请求来源
* @return 结果
*/
@PostMapping("/task")
R<Long> createTaskWithoutPlan(@RequestBody TaskDTO taskDTO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
R<Long> createTaskWithoutPlan(@RequestBody TaskVO taskVO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 根据ID获取任务
@ -50,7 +49,7 @@ public interface RemoteTaskService
* @return 结果
*/
@GetMapping("/task/{taskId}")
R<TaskDTO> getTaskById(@PathVariable("taskId") Long taskId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
R<TaskVO> getTaskById(@PathVariable("taskId") Long taskId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
// /**
// * 查询任务列表
@ -65,12 +64,12 @@ public interface RemoteTaskService
/**
* 更新任务
*
* @param taskDTO 任务DTO
* @param taskVO 任务DTO
* @param source 请求来源
* @return 结果
*/
@PutMapping("/task")
R<Boolean> updateTask(@RequestBody TaskDTO taskDTO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
R<Boolean> updateTask(@RequestBody TaskVO taskVO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 删除任务
@ -90,7 +89,7 @@ public interface RemoteTaskService
* @return 结果
*/
@GetMapping("/task/uav/{uavId}")
R<List<TaskDTO>> getTaskByUavId(@PathVariable("uavId") String uavId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
R<List<TaskVO>> getTaskByUavId(@PathVariable("uavId") String uavId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 根据无人机ID获取最新的一条任务
@ -100,7 +99,7 @@ public interface RemoteTaskService
* @return 结果
*/
@GetMapping("/task/uav/current/{uavId}")
R<TaskDTO> getCurrentTaskByUavId(@PathVariable("uavId") String uavId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
R<TaskVO> getCurrentTaskByUavId(@PathVariable("uavId") String uavId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
@ -114,4 +113,14 @@ public interface RemoteTaskService
*/
@PutMapping("/task/status/{taskId}")
R<Boolean> updateTaskStatus(@PathVariable("taskId") Long taskId, @RequestParam("status") StatusEnum status, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 设置 recovery true
*
* @param taskId 任务ID
* @param source 请求来源
* @return 结果
*/
@PutMapping("/task/recovery/{taskId}")
R<Boolean> updateTaskRecovery(@PathVariable("taskId") Long taskId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

View File

@ -9,13 +9,13 @@ import java.util.Map;
* @author ruoyi
* @date 2026-03-09
*/
public class TaskStatByMonthDTO {
public class TaskStatByMonthVO {
/** 总数 */
private Integer total;
/** 每日任务列表 key:日期(1-31) value:任务列表 */
private Map<Integer, List<TaskStatItemDTO>> days;
private Map<Integer, List<TaskStatItemVO>> days;
public Integer getTotal() {
return total;
@ -25,11 +25,11 @@ public class TaskStatByMonthDTO {
this.total = total;
}
public Map<Integer, List<TaskStatItemDTO>> getDays() {
public Map<Integer, List<TaskStatItemVO>> getDays() {
return days;
}
public void setDays(Map<Integer, List<TaskStatItemDTO>> days) {
public void setDays(Map<Integer, List<TaskStatItemVO>> days) {
this.days = days;
}
}

View File

@ -1,95 +0,0 @@
package com.ruoyi.task.api.domain;
import com.ruoyi.task.api.enums.StatusEnum;
import java.util.Date;
/**
* 任务统计项DTO
*
* @author ruoyi
* @date 2026-03-09
*/
public class TaskStatItemDTO {
private Long taskId;
private Long planId;
private String taskName;
private String planName;
private Date startTime;
private Date endTime;
private Date actualStartTime;
private Date actualEndTime;
private StatusEnum status;
public Long getTaskId() {
return taskId;
}
public void setTaskId(Long taskId) {
this.taskId = taskId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getTaskName() {
return taskName;
}
public void setTaskName(String taskName) {
this.taskName = taskName;
}
public String getPlanName() {
return planName;
}
public void setPlanName(String planName) {
this.planName = planName;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public Date getActualStartTime() {
return actualStartTime;
}
public void setActualStartTime(Date actualStartTime) {
this.actualStartTime = actualStartTime;
}
public Date getActualEndTime() {
return actualEndTime;
}
public void setActualEndTime(Date actualEndTime) {
this.actualEndTime = actualEndTime;
}
public StatusEnum getStatus() {
return status;
}
public void setStatus(StatusEnum status) {
this.status = status;
}
}

View File

@ -0,0 +1,187 @@
package com.ruoyi.task.api.domain;
import com.ruoyi.task.api.enums.StatusEnum;
import com.ruoyi.task.api.enums.TaskCategoryEnum;
import com.ruoyi.task.api.enums.TaskTypeEnum;
import java.util.Date;
/**
* 任务统计项DTO
*
* @author ruoyi
* @date 2026-03-09
*/
public class TaskStatItemVO {
private Long taskId;
private Long planId;
private String taskName;
private String planName;
private String routeName;
private String airVendor;
private String airType;
private Date planStartDate;
private Date planEndDate;
private Date startTime;
private Date endTime;
private Date actualStartTime;
private Date actualEndTime;
private StatusEnum status;
private TaskTypeEnum taskType;
private TaskCategoryEnum taskCategory;
private String airlineType;
private Date taskCreateTime;
private String taskCreateBy;
public Long getTaskId() {
return taskId;
}
public void setTaskId(Long taskId) {
this.taskId = taskId;
}
public Long getPlanId() {
return planId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public String getTaskName() {
return taskName;
}
public void setTaskName(String taskName) {
this.taskName = taskName;
}
public String getPlanName() {
return planName;
}
public void setPlanName(String planName) {
this.planName = planName;
}
public String getRouteName() {
return routeName;
}
public void setRouteName(String routeName) {
this.routeName = routeName;
}
public String getAirVendor() {
return airVendor;
}
public void setAirVendor(String airVendor) {
this.airVendor = airVendor;
}
public String getAirType() {
return airType;
}
public void setAirType(String airType) {
this.airType = airType;
}
public Date getPlanStartDate() {
return planStartDate;
}
public void setPlanStartDate(Date planStartDate) {
this.planStartDate = planStartDate;
}
public Date getPlanEndDate() {
return planEndDate;
}
public void setPlanEndDate(Date planEndDate) {
this.planEndDate = planEndDate;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public Date getActualStartTime() {
return actualStartTime;
}
public void setActualStartTime(Date actualStartTime) {
this.actualStartTime = actualStartTime;
}
public Date getActualEndTime() {
return actualEndTime;
}
public void setActualEndTime(Date actualEndTime) {
this.actualEndTime = actualEndTime;
}
public StatusEnum getStatus() {
return status;
}
public void setStatus(StatusEnum status) {
this.status = status;
}
public TaskTypeEnum getTaskType() {
return taskType;
}
public void setTaskType(TaskTypeEnum taskType) {
this.taskType = taskType;
}
public TaskCategoryEnum getTaskCategory() {
return taskCategory;
}
public void setTaskCategory(TaskCategoryEnum taskCategory) {
this.taskCategory = taskCategory;
}
public String getAirlineType() {
return airlineType;
}
public void setAirlineType(String airlineType) {
this.airlineType = airlineType;
}
public Date getTaskCreateTime() {
return taskCreateTime;
}
public void setTaskCreateTime(Date taskCreateTime) {
this.taskCreateTime = taskCreateTime;
}
public String getTaskCreateBy() {
return taskCreateBy;
}
public void setTaskCreateBy(String taskCreateBy) {
this.taskCreateBy = taskCreateBy;
}
}

View File

@ -13,7 +13,7 @@ import java.util.Date;
* @author ruoyi
* @date 2026-03-05
*/
public class TaskDTO {
public class TaskVO {
/** 任务ID */
private Long id;
@ -42,6 +42,9 @@ public class TaskDTO {
/** 状态 */
private StatusEnum status;
/** 错误是否恢复 */
private Boolean recovery;
/** 开始时间 */
private Date startTime;
@ -136,6 +139,14 @@ public class TaskDTO {
this.status = status;
}
public Boolean getRecovery() {
return recovery;
}
public void setRecovery(Boolean recovery) {
this.recovery = recovery;
}
public Date getStartTime() {
return startTime;
}

View File

@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
public enum StatusEnum {
PENDING("pending", "待执行"),
CHECKING("checking", "自检中"),
RUNNING("running", "执行中"),
COMPLETED("completed", "已完成"),
FAILED("failed", "失败"),

View File

@ -2,8 +2,7 @@ package com.ruoyi.task.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.task.api.RemoteTaskService;
import com.ruoyi.task.api.domain.TaskDTO;
import com.ruoyi.task.api.domain.TaskQueryVO;
import com.ruoyi.task.api.domain.TaskVO;
import com.ruoyi.task.api.domain.TaskTempVO;
import com.ruoyi.task.api.enums.StatusEnum;
import org.slf4j.Logger;
@ -38,12 +37,12 @@ public class RemoteTaskFallbackFactory implements FallbackFactory<RemoteTaskServ
}
@Override
public R<Long> createTaskWithoutPlan(TaskDTO taskDTO, String source) {
public R<Long> createTaskWithoutPlan(TaskVO taskVO, String source) {
return R.fail("创建任务失败");
}
@Override
public R<TaskDTO> getTaskById(Long taskId, String source) {
public R<TaskVO> getTaskById(Long taskId, String source) {
return R.fail("获取任务失败");
}
@ -53,7 +52,7 @@ public class RemoteTaskFallbackFactory implements FallbackFactory<RemoteTaskServ
// }
@Override
public R<Boolean> updateTask(TaskDTO taskDTO, String source) {
public R<Boolean> updateTask(TaskVO taskVO, String source) {
return R.fail("更新任务失败");
}
@ -63,12 +62,12 @@ public class RemoteTaskFallbackFactory implements FallbackFactory<RemoteTaskServ
}
@Override
public R<List<TaskDTO>> getTaskByUavId(String uavId, String source) {
public R<List<TaskVO>> getTaskByUavId(String uavId, String source) {
return R.ok(Collections.emptyList());
}
@Override
public R<TaskDTO> getCurrentTaskByUavId(String uavId, String source) {
public R<TaskVO> getCurrentTaskByUavId(String uavId, String source) {
return R.fail("获取最新任务失败");
}
@ -78,6 +77,11 @@ public class RemoteTaskFallbackFactory implements FallbackFactory<RemoteTaskServ
public R<Boolean> updateTaskStatus(Long taskId, StatusEnum status, String source) {
return R.fail("修改执行状态失败");
}
@Override
public R<Boolean> updateTaskRecovery(Long taskId, String source) {
return R.fail("设置recovery失败");
}
};
}
}