From e80cfe9e2b8cb13170902abc4e5ed3c2493350b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 23 Jan 2026 14:20:00 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/device/api/enums/DockStatusEnum.java | 8 +++++++- ruoyi-modules/tuoheng-device | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/enums/DockStatusEnum.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/enums/DockStatusEnum.java index fe12a71..ddf797e 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/enums/DockStatusEnum.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/enums/DockStatusEnum.java @@ -31,7 +31,13 @@ public enum DockStatusEnum { /** * 待标定/未知 */ - UNKNOWN("UNKNOWN", "待标定"); + UNKNOWN("UNKNOWN", "待标定"), + + /** + * 待标定/未知 + */ + OFFLINE("OFFLINE", "离线"); + private final String code; private final String description; diff --git a/ruoyi-modules/tuoheng-device b/ruoyi-modules/tuoheng-device index 8daf7a6..b559487 160000 --- a/ruoyi-modules/tuoheng-device +++ b/ruoyi-modules/tuoheng-device @@ -1 +1 @@ -Subproject commit 8daf7a6d842dad1070246129f0629d7090ab1787 +Subproject commit b559487474c37573edfff43bc44ac60fcf6a7ace From b3e1e68b70adb759220f52882f72c587db0716d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 23 Jan 2026 15:11:23 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-api/tuoheng-api-device/pom.xml | 7 ++++ .../device/api/domain/AircraftDetailVO.java | 18 ++++++++++ .../ruoyi/device/api/domain/AircraftVO.java | 9 +++++ .../ruoyi/device/api/domain/DeviceTempVO.java | 3 ++ .../ruoyi/device/api/domain/DockDetailVO.java | 29 ++++++++++++++++ .../com/ruoyi/device/api/domain/DockVO.java | 16 +++++++++ .../device/api/domain/DockWithGPSVO.java | 34 ++++++++++--------- .../com/ruoyi/device/api/domain/GroupVO.java | 6 ++++ .../ruoyi/device/api/domain/NetworkVO.java | 4 +++ .../device/api/domain/PayloadDetailVO.java | 6 ++++ .../ruoyi/device/api/domain/PayloadVO.java | 6 ++++ .../ruoyi/device/api/domain/StatisticsVO.java | 28 ++++++++------- 12 files changed, 137 insertions(+), 29 deletions(-) diff --git a/ruoyi-api/tuoheng-api-device/pom.xml b/ruoyi-api/tuoheng-api-device/pom.xml index 1633a34..0272e9d 100644 --- a/ruoyi-api/tuoheng-api-device/pom.xml +++ b/ruoyi-api/tuoheng-api-device/pom.xml @@ -28,6 +28,13 @@ provided + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + provided + + \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftDetailVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftDetailVO.java index 6187208..1fb630e 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftDetailVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftDetailVO.java @@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -14,77 +15,94 @@ import java.util.List; * @date 2026-01-20 */ @Data +@Schema(description = "无人机详情VO对象") public class AircraftDetailVO extends AircraftVO { private static final long serialVersionUID = 1L; // ========== 基本信息区域 ========== /** 无人机版本 */ + @Schema(description = "无人机版本") @Excel(name = "无人机版本") private String aircraftVersion; /** 无人机SN号 */ + @Schema(description = "无人机SN号") @Excel(name = "无人机SN号") private String snNumber; /** 电池SN号 */ + @Schema(description = "电池SN号") @Excel(name = "电池SN号") private String batterySn; /** 绑定时间 */ + @Schema(description = "绑定时间") @Excel(name = "绑定时间") private Long bindTime; /** 运维剩余天数 */ + @Schema(description = "运维剩余天数") @Excel(name = "运维剩余天数") private Integer maintenanceDays; // ========== 统计信息区域 ========== /** 飞行时长 */ + @Schema(description = "飞行时长") @Excel(name = "飞行时长") private Integer flightDuration; /** 作业架次 */ + @Schema(description = "作业架次") @Excel(name = "作业架次") private Integer missionCount; // ========== 网络列表 ========== /** 网络列表 */ + @Schema(description = "网络列表") private List networkList; // ========== 遥测数据区域 ========== /** RTK信号 */ + @Schema(description = "RTK信号") @Excel(name = "RTK信号") private Double rtkSignal; /** 限高 */ + @Schema(description = "限高") @Excel(name = "限高") private Integer maxAltitude; /** 限远 */ + @Schema(description = "限远") @Excel(name = "限远") private Integer maxDistance; /** 电压 */ + @Schema(description = "电压") @Excel(name = "电压") private Integer voltage; /** 电量 */ + @Schema(description = "电量") @Excel(name = "电量") private Integer batteryLevel; /** 续航 */ + @Schema(description = "续航") @Excel(name = "续航") private Integer flightTimeRemaining; /** 电池温度 */ + @Schema(description = "电池温度") @Excel(name = "电池温度") private Double batteryTemperature; /** 循环次数 */ + @Schema(description = "循环次数") @Excel(name = "循环次数") private Integer cycleCount; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java index 0284704..414870d 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java @@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -14,35 +15,43 @@ import java.util.List; * @date 2026-01-20 */ @Data +@Schema(description = "无人机VO对象") public class AircraftVO implements Serializable { private static final long serialVersionUID = 1L; /** 无人机ID */ + @Schema(description = "无人机ID") @Excel(name = "无人机ID") private Long aircraftId; /** 无人机IOT ID */ + @Schema(description = "无人机IOT ID") @Excel(name = "无人机IOT ID") private String aircraftIotId; /** 无人机名称 */ + @Schema(description = "无人机名称") @Excel(name = "无人机名称") private String aircraftName; /** 无人机厂商 */ + @Schema(description = "无人机厂商") @Excel(name = "无人机厂商") private String aircraftManufacturer; /** 无人机型号 */ + @Schema(description = "无人机型号") @Excel(name = "无人机型号") private String aircraftModel; /** 无人机状态 */ + @Schema(description = "无人机状态") @Excel(name = "无人机状态") private String aircraftStatus; /** 挂载列表 */ + @Schema(description = "挂载列表") private List payloadList; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DeviceTempVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DeviceTempVO.java index bd1b1f4..82a3960 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DeviceTempVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DeviceTempVO.java @@ -1,6 +1,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; /** * 设备临时表对象 tuoheng_device_temp @@ -8,11 +9,13 @@ import com.ruoyi.common.core.web.domain.BaseEntity; * @author ruoyi * @date 2026-01-15 */ +@Schema(description = "设备临时表对象") public class DeviceTempVO extends BaseEntity { private static final long serialVersionUID = 1L; /** 主键ID */ + @Schema(description = "主键ID") private String id; public String getId() diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java index 286ccf1..221dfb8 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java @@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -13,6 +14,7 @@ import java.io.Serializable; * @date 2026-01-20 */ @Data +@Schema(description = "机场详情VO对象") public class DockDetailVO extends DockVO { private static final long serialVersionUID = 1L; @@ -22,24 +24,28 @@ public class DockDetailVO extends DockVO { /** * 固件版本 */ + @Schema(description = "固件版本") @Excel(name = "固件版本") private String firmwareVersion; /** * SN号 */ + @Schema(description = "SN号") @Excel(name = "SN号") private String snNumber; /** * 绑定时间 */ + @Schema(description = "绑定时间") @Excel(name = "绑定时间") private Long bindTime; /** * 运维剩余天数 */ + @Schema(description = "运维剩余天数") @Excel(name = "运维剩余天数") private Integer maintenanceDays; @@ -48,12 +54,14 @@ public class DockDetailVO extends DockVO { /** * 备降点坐标(经度) */ + @Schema(description = "备降点经度") @Excel(name = "备降点经度") private Double backupLongitude; /** * 备降点坐标(纬度) */ + @Schema(description = "备降点纬度") @Excel(name = "备降点纬度") private Double backupLatitude; @@ -62,36 +70,42 @@ public class DockDetailVO extends DockVO { /** * 运行时长 */ + @Schema(description = "运行时长") @Excel(name = "运行时长") private Integer runningDuration; /** * 作业架次 */ + @Schema(description = "作业架次") @Excel(name = "作业架次") private Integer missionCount; /** * 环境风速 */ + @Schema(description = "环境风速") @Excel(name = "环境风速") private Double windSpeed; /** * 环境雨量 */ + @Schema(description = "环境雨量") @Excel(name = "环境雨量") private Double rainfall; /** * 环境温度 */ + @Schema(description = "环境温度") @Excel(name = "环境温度") private Double environmentTemperature; /** * 环境湿度 */ + @Schema(description = "环境湿度") @Excel(name = "环境湿度") private Double environmentHumidity; @@ -100,12 +114,14 @@ public class DockDetailVO extends DockVO { /** * 网络类型 */ + @Schema(description = "网络类型") @Excel(name = "网络类型") private String networkType; /** * 网络延迟 */ + @Schema(description = "网络延迟") @Excel(name = "网络延迟") private Integer networkDelay; @@ -114,76 +130,89 @@ public class DockDetailVO extends DockVO { /** * 空调状态 */ + @Schema(description = "空调状态") @Excel(name = "空调状态") private String airConditionerStatus; /** * 舱门状态 */ + @Schema(description = "舱门状态") @Excel(name = "舱门状态") private String cabinDoorStatus; /** * 机场状态 */ + @Schema(description = "机场运行状态") @Excel(name = "机场运行状态") private String dockRunStatus; /** * 舱内摄像头 */ + @Schema(description = "舱内摄像头") @Excel(name = "舱内摄像头") private String internalCamera; /** * 舱外摄像头 */ + @Schema(description = "舱外摄像头") @Excel(name = "舱外摄像头") private String externalCamera; /** * 充放电状态 */ + @Schema(description = "充放电状态") @Excel(name = "充放电状态") private String chargingStatus; /** * 舱内温度 */ + @Schema(description = "舱内温度") @Excel(name = "舱内温度") private Double cabinTemperature; /** * 舱内湿度 */ + @Schema(description = "舱内湿度") @Excel(name = "舱内湿度") private Double cabinHumidity; /** * 升降架位置 */ + @Schema(description = "升降架位置") @Excel(name = "升降架位置") private String elevatorPosition; /** * X轴夹状态 */ + @Schema(description = "X轴夹状态") @Excel(name = "X轴夹状态") private String xAxisClampStatus; /** * Y轴夹状态 */ + @Schema(description = "Y轴夹状态") @Excel(name = "Y轴夹状态") private String yAxisClampStatus; /** *纬度 */ + @Schema(description = "纬度") private Double latitude; /** * 经度 */ + @Schema(description = "经度") private Double longitude; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java index d41a01f..e4cd20b 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java @@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -14,63 +15,78 @@ import java.util.List; * @date 2026-01-20 */ @Data +@Schema(description = "机场VO对象") public class DockVO implements Serializable { private static final long serialVersionUID = 1L; /** 机场ID */ + @Schema(description = "机场ID") @Excel(name = "机场ID") private Long dockId; /** 机场IOT ID */ + @Schema(description = "机场IOT ID") @Excel(name = "机场IOT ID") private String dockIotId; /** 机场名称 */ + @Schema(description = "机场名称") @Excel(name = "机场名称") private String dockName; /** 机场位置 */ + @Schema(description = "机场位置") @Excel(name = "机场位置") private String dockLocation; /** 机场厂商 */ + @Schema(description = "机场厂商") @Excel(name = "机场厂商") private String dockManufacturer; /** 机场型号 */ + @Schema(description = "机场型号") @Excel(name = "机场型号") private String dockModel; /** 机场状态 */ + @Schema(description = "机场状态") @Excel(name = "机场状态") private String dockStatus; /** 无人机ID */ + @Schema(description = "无人机ID") @Excel(name = "无人机ID") private Long aircraftId; /** 无人机IOT ID */ + @Schema(description = "无人机IOT ID") @Excel(name = "无人机IOT ID") private String aircraftIotId; /** 无人机名称 */ + @Schema(description = "无人机名称") @Excel(name = "无人机名称") private String aircraftName; /** 无人机厂商 */ + @Schema(description = "无人机厂商") @Excel(name = "无人机厂商") private String aircraftManufacturer; /** 无人机型号 */ + @Schema(description = "无人机型号") @Excel(name = "无人机型号") private String aircraftModel; /** 无人机状态 */ + @Schema(description = "无人机状态") @Excel(name = "无人机状态") private String aircraftStatus; /** 挂载列表 */ + @Schema(description = "挂载列表") private List payloadList; } diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java index 5f7abfc..044faba 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java @@ -1,6 +1,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -13,69 +14,70 @@ import java.util.List; * @date 2026-01-20 */ @Data +@Schema(description = "机场信息(含GPS坐标)") public class DockWithGPSVO implements Serializable { private static final long serialVersionUID = 1L; - /** 机场ID */ + @Schema(description = "机场ID") @Excel(name = "机场ID") private Long dockId; - /** 机场IOT ID */ + @Schema(description = "机场IOT ID") @Excel(name = "机场IOT ID") private String dockIotId; - /** 机场名称 */ + @Schema(description = "机场名称") @Excel(name = "机场名称") private String dockName; - /** 机场位置 */ + @Schema(description = "机场位置") @Excel(name = "机场位置") private String dockLocation; - /** 机场厂商 */ + @Schema(description = "机场厂商") @Excel(name = "机场厂商") private String dockManufacturer; - /** 机场型号 */ + @Schema(description = "机场型号") @Excel(name = "机场型号") private String dockModel; - /** 机场状态 */ + @Schema(description = "机场状态") @Excel(name = "机场状态") private String dockStatus; - /** 无人机ID */ + @Schema(description = "无人机ID") @Excel(name = "无人机ID") private Long aircraftId; - /** 无人机IOT ID */ + @Schema(description = "无人机IOT ID") @Excel(name = "无人机IOT ID") private String aircraftIotId; - /** 无人机名称 */ + @Schema(description = "无人机名称") @Excel(name = "无人机名称") private String aircraftName; - /** 无人机厂商 */ + @Schema(description = "无人机厂商") @Excel(name = "无人机厂商") private String aircraftManufacturer; - /** 无人机型号 */ + @Schema(description = "无人机型号") @Excel(name = "无人机型号") private String aircraftModel; - /** 无人机状态 */ + @Schema(description = "无人机状态") @Excel(name = "无人机状态") private String aircraftStatus; - /** 挂载列表 */ + @Schema(description = "挂载列表") private List payloadList; - /** 纬度 */ + @Schema(description = "纬度") private Double latitude; - /** 经度 */ + @Schema(description = "经度") private Double longitude; } diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/GroupVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/GroupVO.java index d78ef11..3d53591 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/GroupVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/GroupVO.java @@ -1,6 +1,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -13,24 +14,29 @@ import java.util.List; * @date 2026-01-20 */ @Data +@Schema(description = "分组VO对象") public class GroupVO implements Serializable { private static final long serialVersionUID = 1L; /** 分组ID */ + @Schema(description = "分组ID") @Excel(name = "分组ID") private Long groupId; /** 分组名称 */ + @Schema(description = "分组名称") @Excel(name = "分组名称") private String groupName; /** 无人机个数 */ + @Schema(description = "机场个数") @Excel(name = "机场个数") private Integer dockCount; /** 机场列表 */ + @Schema(description = "机场列表") private List dockList; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/NetworkVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/NetworkVO.java index 483b901..0a3b702 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/NetworkVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/NetworkVO.java @@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -13,15 +14,18 @@ import java.io.Serializable; * @date 2026-01-20 */ @Data +@Schema(description = "网络信息VO对象") public class NetworkVO implements Serializable { private static final long serialVersionUID = 1L; /** 网络类型 */ + @Schema(description = "网络类型") @Excel(name = "网络类型") private String networkType; /** 网络延迟 */ + @Schema(description = "网络延迟") @Excel(name = "网络延迟") private Integer networkDelay; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadDetailVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadDetailVO.java index 9849dba..0c717c2 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadDetailVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadDetailVO.java @@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -13,23 +14,28 @@ import java.io.Serializable; * @date 2026-01-20 */ @Data +@Schema(description = "挂载详情VO对象") public class PayloadDetailVO implements Serializable { private static final long serialVersionUID = 1L; /** 挂载类型 */ + @Schema(description = "挂载类型") @Excel(name = "挂载类型") private String payloadType; /** 挂载型号 */ + @Schema(description = "挂载型号") @Excel(name = "挂载型号") private String payloadModel; /** 固件版本 */ + @Schema(description = "固件版本") @Excel(name = "固件版本") private String firmwareVersion; /** 是否在线 */ + @Schema(description = "是否在线") @Excel(name = "是否在线") private String onlineStatus; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java index b0e61f4..6dae4e8 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java @@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -13,23 +14,28 @@ import java.io.Serializable; * @date 2026-01-20 */ @Data +@Schema(description = "挂载VO对象") public class PayloadVO implements Serializable { private static final long serialVersionUID = 1L; /** 挂载ID */ + @Schema(description = "挂载ID") @Excel(name = "挂载ID") private Long payloadId; /** 挂载名称 */ + @Schema(description = "挂载名称") @Excel(name = "挂载名称") private String payloadName; /** 挂载类型 */ + @Schema(description = "挂载类型") @Excel(name = "挂载类型") private String payloadType; /** 挂载状态 */ + @Schema(description = "挂载状态") @Excel(name = "挂载状态") private String payloadStatus; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/StatisticsVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/StatisticsVO.java index 387b825..c83718e 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/StatisticsVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/StatisticsVO.java @@ -1,5 +1,6 @@ package com.ruoyi.device.api.domain; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -11,49 +12,50 @@ import java.io.Serializable; * @date 2026-01-23 */ @Data +@Schema(description = "统计信息") public class StatisticsVO implements Serializable { private static final long serialVersionUID = 1L; // ========== 机场统计 ========== - /** 机场个数 */ + @Schema(description = "机场个数") private Integer dockCount; - /** 空闲机场个数 */ + @Schema(description = "空闲机场个数") private Integer idleDockCount; - /** 任务中机场个数 */ + @Schema(description = "任务中机场个数") private Integer workingDockCount; - /** 调试机场个数 */ + @Schema(description = "调试机场个数") private Integer debuggingDockCount; - /** 离线机场个数 */ + @Schema(description = "离线机场个数") private Integer offlineDockCount; // ========== 无人机统计 ========== - /** 无人机个数 */ + @Schema(description = "无人机个数") private Integer aircraftCount; - /** 舱内开机个数 */ + @Schema(description = "舱内开机个数") private Integer powerOnInCabinCount; - /** 舱内关机个数 */ + @Schema(description = "舱内关机个数") private Integer powerOffInCabinCount; - /** 任务中个数 */ + @Schema(description = "任务中个数") private Integer inMissionCount; - /** 调试中个数 */ + @Schema(description = "调试中个数") private Integer debuggingAircraftCount; - /** 离线个数 */ + @Schema(description = "离线个数") private Integer offlineAircraftCount; // ========== 挂载统计 ========== - /** 全部挂载个数 */ + @Schema(description = "全部挂载个数") private Integer payloadCount; - /** 离线个数 */ + @Schema(description = "离线挂载个数") private Integer offlinePayloadCount; } \ No newline at end of file From 6fdeda531519ab186c69830f17c817247dc8b517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 23 Jan 2026 15:15:38 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/device/api/domain/AircraftVO.java | 2 +- .../src/main/java/com/ruoyi/device/api/domain/DockVO.java | 4 ++-- .../main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java | 4 ++-- .../src/main/java/com/ruoyi/device/api/domain/PayloadVO.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java index 414870d..f43de7c 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java @@ -46,7 +46,7 @@ public class AircraftVO implements Serializable { private String aircraftModel; /** 无人机状态 */ - @Schema(description = "无人机状态") + @Schema(description = "无人机状态:POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线") @Excel(name = "无人机状态") private String aircraftStatus; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java index e4cd20b..977d038 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java @@ -51,7 +51,7 @@ public class DockVO implements Serializable { private String dockModel; /** 机场状态 */ - @Schema(description = "机场状态") + @Schema(description = "机场状态:IDLE-空闲中, Debugging-调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线") @Excel(name = "机场状态") private String dockStatus; @@ -81,7 +81,7 @@ public class DockVO implements Serializable { private String aircraftModel; /** 无人机状态 */ - @Schema(description = "无人机状态") + @Schema(description = "无人机状态:POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线") @Excel(name = "无人机状态") private String aircraftStatus; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java index 044faba..e6b7143 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java @@ -43,7 +43,7 @@ public class DockWithGPSVO implements Serializable { @Excel(name = "机场型号") private String dockModel; - @Schema(description = "机场状态") + @Schema(description = "机场状态:IDLE-空闲中, Debugging-调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线") @Excel(name = "机场状态") private String dockStatus; @@ -67,7 +67,7 @@ public class DockWithGPSVO implements Serializable { @Excel(name = "无人机型号") private String aircraftModel; - @Schema(description = "无人机状态") + @Schema(description = "无人机状态:POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线") @Excel(name = "无人机状态") private String aircraftStatus; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java index 6dae4e8..e407868 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java @@ -35,7 +35,7 @@ public class PayloadVO implements Serializable private String payloadType; /** 挂载状态 */ - @Schema(description = "挂载状态") + @Schema(description = "挂载状态:ONLINE-在线, OFFLINE-离线") @Excel(name = "挂载状态") private String payloadStatus; From 24299d7d2533f9c51a12fc56a736e2d0aac70336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 23 Jan 2026 16:19:47 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/api/RemoteStatisticsService.java | 18 ++++++++++++++++++ .../RemoteStatisticsFallbackFactory.java | 10 ++++++++++ ruoyi-modules/tuoheng-device | 2 +- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/RemoteStatisticsService.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/RemoteStatisticsService.java index 5ad0ea4..2769d3a 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/RemoteStatisticsService.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/RemoteStatisticsService.java @@ -25,4 +25,22 @@ public interface RemoteStatisticsService */ @GetMapping("/statistics") R getStatistics(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 获取系统统计信息 + * + * @param source 请求来源 + * @return 统计信息 + */ + @GetMapping("/statistics/dji") + R getDjiStatistics(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 获取系统统计信息 + * + * @param source 请求来源 + * @return 统计信息 + */ + @GetMapping("/statistics/th") + R getThStatistics(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); } \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/factory/RemoteStatisticsFallbackFactory.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/factory/RemoteStatisticsFallbackFactory.java index 68d4e70..d2512cd 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/factory/RemoteStatisticsFallbackFactory.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/factory/RemoteStatisticsFallbackFactory.java @@ -30,6 +30,16 @@ public class RemoteStatisticsFallbackFactory implements FallbackFactory getDjiStatistics(String source) { + return R.fail("获取统计信息失败:" + throwable.getMessage()); + } + + @Override + public R getThStatistics(String source) { + return R.fail("获取统计信息失败:" + throwable.getMessage()); + } }; } } \ No newline at end of file diff --git a/ruoyi-modules/tuoheng-device b/ruoyi-modules/tuoheng-device index b559487..603b62c 160000 --- a/ruoyi-modules/tuoheng-device +++ b/ruoyi-modules/tuoheng-device @@ -1 +1 @@ -Subproject commit b559487474c37573edfff43bc44ac60fcf6a7ace +Subproject commit 603b62cf212313eb63355c9562457d5975f5bafc From e942018c3fcea7f976b82aee000ad77ce93999d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 23 Jan 2026 16:40:19 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E8=A7=A3=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/device/api/domain/DockDetailVO.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java index 221dfb8..e657628 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java @@ -130,14 +130,16 @@ public class DockDetailVO extends DockVO { /** * 空调状态 */ - @Schema(description = "空调状态") + @Schema(description = "空调状态: IDLE-空闲模式, COOLING-制冷模式, HEATING-制热模式, DEHUMIDIFYING-除湿模式", + allowableValues = {"IDLE", "COOLING", "HEATING", "DEHUMIDIFYING"}) @Excel(name = "空调状态") private String airConditionerStatus; /** * 舱门状态 */ - @Schema(description = "舱门状态") + @Schema(description = "舱门状态: CLOSED-关闭, OPEN-打开, HALF_OPEN-半开, ABNORMAL-舱盖状态异常", + allowableValues = {"CLOSED", "OPEN", "HALF_OPEN", "ABNORMAL"}) @Excel(name = "舱门状态") private String cabinDoorStatus; From 8371f1ae1641e30fb88c6b1506f8c92c59e4fc67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 23 Jan 2026 17:03:01 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E8=A7=A3=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/device/api/domain/DockDetailVO.java | 15 ++++++++++----- ruoyi-modules/tuoheng-device | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java index e657628..c948853 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockDetailVO.java @@ -114,7 +114,8 @@ public class DockDetailVO extends DockVO { /** * 网络类型 */ - @Schema(description = "网络类型") + @Schema(description = "网络类型: FOUR_G-4G, ETHERNET-以太网, WIRED-有线, FIVE_G-5G, TWO_POINT_FOUR_G-2.4G", + allowableValues = {"FOUR_G", "ETHERNET", "WIRED", "FIVE_G", "TWO_POINT_FOUR_G"}) @Excel(name = "网络类型") private String networkType; @@ -146,7 +147,8 @@ public class DockDetailVO extends DockVO { /** * 机场状态 */ - @Schema(description = "机场运行状态") + @Schema(description = "机场运行状态: IDLE-空闲中, Debugging-现场调试/远程调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线", + allowableValues = {"IDLE", "Debugging", "Upgrading", "Working", "UNKNOWN", "OFFLINE"}) @Excel(name = "机场运行状态") private String dockRunStatus; @@ -188,21 +190,24 @@ public class DockDetailVO extends DockVO { /** * 升降架位置 */ - @Schema(description = "升降架位置") + @Schema(description = "升降架位置: BOTTOM-底部, TOP-顶部", + allowableValues = {"BOTTOM", "TOP"}) @Excel(name = "升降架位置") private String elevatorPosition; /** * X轴夹状态 */ - @Schema(description = "X轴夹状态") + @Schema(description = "X轴夹状态: OPEN-开启, CLOSE-关闭", + allowableValues = {"OPEN", "CLOSE"}) @Excel(name = "X轴夹状态") private String xAxisClampStatus; /** * Y轴夹状态 */ - @Schema(description = "Y轴夹状态") + @Schema(description = "Y轴夹状态: OPEN-开启, CLOSE-关闭", + allowableValues = {"OPEN", "CLOSE"}) @Excel(name = "Y轴夹状态") private String yAxisClampStatus; diff --git a/ruoyi-modules/tuoheng-device b/ruoyi-modules/tuoheng-device index 603b62c..1cf8217 160000 --- a/ruoyi-modules/tuoheng-device +++ b/ruoyi-modules/tuoheng-device @@ -1 +1 @@ -Subproject commit 603b62cf212313eb63355c9562457d5975f5bafc +Subproject commit 1cf82176a79864bccb39122a68dc455f28b4a9c5 From 7e17d1e8efc82fee1c6f010a756acbdc6b29d771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 23 Jan 2026 17:22:34 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E8=A7=A3=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/device/api/domain/AircraftVO.java | 3 ++- .../src/main/java/com/ruoyi/device/api/domain/DockVO.java | 6 ++++-- .../java/com/ruoyi/device/api/domain/DockWithGPSVO.java | 6 ++++-- .../main/java/com/ruoyi/device/api/domain/NetworkVO.java | 3 ++- .../java/com/ruoyi/device/api/domain/PayloadDetailVO.java | 3 ++- .../main/java/com/ruoyi/device/api/domain/PayloadVO.java | 6 ++++-- 6 files changed, 18 insertions(+), 9 deletions(-) diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java index f43de7c..8006bcd 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/AircraftVO.java @@ -46,7 +46,8 @@ public class AircraftVO implements Serializable { private String aircraftModel; /** 无人机状态 */ - @Schema(description = "无人机状态:POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线") + @Schema(description = "无人机状态: POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线", + allowableValues = {"POWER_ON_IN_CABIN", "POWER_OFF_IN_CABIN", "POWER_ON_OUT_CABIN", "POWER_OFF_OUT_CABIN", "IN_MISSION", "DEBUGGING", "OFFLINE"}) @Excel(name = "无人机状态") private String aircraftStatus; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java index 977d038..df147f6 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockVO.java @@ -51,7 +51,8 @@ public class DockVO implements Serializable { private String dockModel; /** 机场状态 */ - @Schema(description = "机场状态:IDLE-空闲中, Debugging-调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线") + @Schema(description = "机场状态: IDLE-空闲中, Debugging-现场调试/远程调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线", + allowableValues = {"IDLE", "Debugging", "Upgrading", "Working", "UNKNOWN", "OFFLINE"}) @Excel(name = "机场状态") private String dockStatus; @@ -81,7 +82,8 @@ public class DockVO implements Serializable { private String aircraftModel; /** 无人机状态 */ - @Schema(description = "无人机状态:POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线") + @Schema(description = "无人机状态: POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线", + allowableValues = {"POWER_ON_IN_CABIN", "POWER_OFF_IN_CABIN", "POWER_ON_OUT_CABIN", "POWER_OFF_OUT_CABIN", "IN_MISSION", "DEBUGGING", "OFFLINE"}) @Excel(name = "无人机状态") private String aircraftStatus; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java index e6b7143..aee5382 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DockWithGPSVO.java @@ -43,7 +43,8 @@ public class DockWithGPSVO implements Serializable { @Excel(name = "机场型号") private String dockModel; - @Schema(description = "机场状态:IDLE-空闲中, Debugging-调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线") + @Schema(description = "机场状态: IDLE-空闲中, Debugging-现场调试/远程调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线", + allowableValues = {"IDLE", "Debugging", "Upgrading", "Working", "UNKNOWN", "OFFLINE"}) @Excel(name = "机场状态") private String dockStatus; @@ -67,7 +68,8 @@ public class DockWithGPSVO implements Serializable { @Excel(name = "无人机型号") private String aircraftModel; - @Schema(description = "无人机状态:POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线") + @Schema(description = "无人机状态: POWER_ON_IN_CABIN-舱内开机, POWER_OFF_IN_CABIN-舱内关机, POWER_ON_OUT_CABIN-舱外开机, POWER_OFF_OUT_CABIN-舱外关机, IN_MISSION-任务中, DEBUGGING-调试, OFFLINE-离线", + allowableValues = {"POWER_ON_IN_CABIN", "POWER_OFF_IN_CABIN", "POWER_ON_OUT_CABIN", "POWER_OFF_OUT_CABIN", "IN_MISSION", "DEBUGGING", "OFFLINE"}) @Excel(name = "无人机状态") private String aircraftStatus; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/NetworkVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/NetworkVO.java index 0a3b702..f95ae09 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/NetworkVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/NetworkVO.java @@ -20,7 +20,8 @@ public class NetworkVO implements Serializable private static final long serialVersionUID = 1L; /** 网络类型 */ - @Schema(description = "网络类型") + @Schema(description = "网络类型: FOUR_G-4G, ETHERNET-以太网, WIRED-有线, FIVE_G-5G, TWO_POINT_FOUR_G-2.4G", + allowableValues = {"FOUR_G", "ETHERNET", "WIRED", "FIVE_G", "TWO_POINT_FOUR_G"}) @Excel(name = "网络类型") private String networkType; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadDetailVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadDetailVO.java index 0c717c2..4b83a6a 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadDetailVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadDetailVO.java @@ -20,7 +20,8 @@ public class PayloadDetailVO implements Serializable private static final long serialVersionUID = 1L; /** 挂载类型 */ - @Schema(description = "挂载类型") + @Schema(description = "挂载类型: SPEAKER-喊话器, CAMERA-相机, OTHER-其他", + allowableValues = {"SPEAKER", "CAMERA", "OTHER"}) @Excel(name = "挂载类型") private String payloadType; diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java index e407868..bc3a3fc 100644 --- a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/PayloadVO.java @@ -30,12 +30,14 @@ public class PayloadVO implements Serializable private String payloadName; /** 挂载类型 */ - @Schema(description = "挂载类型") + @Schema(description = "挂载类型: SPEAKER-喊话器, CAMERA-相机, OTHER-其他", + allowableValues = {"SPEAKER", "CAMERA", "OTHER"}) @Excel(name = "挂载类型") private String payloadType; /** 挂载状态 */ - @Schema(description = "挂载状态:ONLINE-在线, OFFLINE-离线") + @Schema(description = "挂载状态: ONLINE-在线, OFFLINE-离线", + allowableValues = {"ONLINE", "OFFLINE"}) @Excel(name = "挂载状态") private String payloadStatus; From 83f0226d11dc8693eb58bbfb7b4d83b71021b873 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Sat, 24 Jan 2026 09:27:09 +0800 Subject: [PATCH 08/12] xx --- docker/thingsboard/reademe.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/thingsboard/reademe.md b/docker/thingsboard/reademe.md index 4074ab8..614033d 100644 --- a/docker/thingsboard/reademe.md +++ b/docker/thingsboard/reademe.md @@ -21,3 +21,5 @@ docker-compose up -d - 用户名:sysadmin@thingsboard.org - 密码:sysadmin + +# 网关脚本的镜像需要修改为 registry.t-aaron.com/thingsboard/tb-gateway:3.7.8.1 \ No newline at end of file From f77d71f2028c56547f05ea7320c16300ba59173d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Sat, 24 Jan 2026 09:32:20 +0800 Subject: [PATCH 09/12] push --- docker/thingsboard/dji.conf | 349 ++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) create mode 100644 docker/thingsboard/dji.conf diff --git a/docker/thingsboard/dji.conf b/docker/thingsboard/dji.conf new file mode 100644 index 0000000..9419699 --- /dev/null +++ b/docker/thingsboard/dji.conf @@ -0,0 +1,349 @@ +{ + "broker": { + "host": "mqtt.t-aaron.com", + "port": 10883, + "version": 5, + "clientId": "ThingsBoard_gateway", + "security": { + "type": "basic", + "username": "admin", + "password": "admin" + }, + "maxNumberOfWorkers": 100, + "maxMessageNumberPerWorker": 10 + }, + "mapping": [ + { + "topicFilter": "thing/product/7C+/osd", + "subscriptionQos": 0, + "converter": { + "type": "json", + "deviceInfo": { + "deviceNameExpression": "(?<=thing/product/)[^/]+(?=/osd)", + "deviceNameExpressionSource": "topic", + "deviceProfileExpressionSource": "message", + "deviceProfileExpression": "default" + }, + "attributes": [ + { + "key": "dock_sn", + "type": "string", + "value": "${gateway}" + }, + { + "key": "sub_device.device_sn", + "type": "string", + "value": "${data.sub_device.device_sn}" + }, + { + "key": "mode_code", + "type": "integer", + "value": "${data.mode_code}" + }, + { + "key": "firmware_version", + "type": "string", + "value": "${data.firmware_version}" + }, + { + "key": "latitude", + "type": "double", + "value": "${data.latitude}" + }, + { + "key": "longitude", + "type": "double", + "value": "${data.longitude}" + } + ], + "timeseries": [ + { + "key": "air_conditioner.air_conditioner_state", + "type": "string", + "value": "${data.air_conditioner.air_conditioner_state}" + }, + { + "key": "flighttask_step_code", + "type": "integer", + "value": "${data.flighttask_step_code}" + }, + { + "key": "drone_in_dock", + "type": "string", + "value": "${data.drone_in_dock}" + }, + { + "key": "sub_device.device_online_status", + "type": "integer", + "value": "${data.sub_device.device_online_status}" + }, + { + "key": "drone_charge_state.state", + "type": "integer", + "value": "${data.drone_charge_state.state}" + }, + { + "key": "air_conditioner.air_conditioner_state", + "type": "integer", + "value": "${data.air_conditioner.air_conditioner_state}" + }, + { + "key": "humidity", + "type": "double", + "value": "${data.humidity}" + }, + { + "key": "temperature", + "type": "double", + "value": "${data.temperature}" + }, + { + "key": "acc_time", + "type": "integer", + "value": "${data.acc_time}" + }, + { + "key": "network_state.type", + "type": "integer", + "value": "${data.network_state.type}" + }, + { + "key": "wind_speed", + "type": "double", + "value": "${data.wind_speed}" + }, + { + "key": "rainfall", + "type": "integer", + "value": "${data.rainfall}" + }, + { + "key": "position_state.rtk_number", + "type": "integer", + "value": "${data.position_state.rtk_number}" + }, + { + "key": "alternate_land_point.longitude", + "type": "double", + "value": "${data.alternate_land_point.longitude}" + }, + { + "key": "alternate_land_point.latitude", + "type": "double", + "value": "${data.alternate_land_point.latitude}" + }, + { + "key": "environment_temperature", + "type": "double", + "value": "${data.environment_temperature}" + }, + { + "key": "network_state.rate", + "type": "double", + "value": "${data.network_state.rate}" + }, + { + "key": "cover_state", + "type": "integer", + "value": "${data.cover_state}" + } + ] + } + }, + { + "topicFilter": "thing/product/158+/osd", + "subscriptionQos": 0, + "converter": { + "type": "json", + "deviceInfo": { + "deviceNameExpression": "(?<=thing/product/)[^/]+(?=/osd)", + "deviceNameExpressionSource": "topic", + "deviceProfileExpressionSource": "message", + "deviceProfileExpression": "default" + }, + "attributes": [ + { + "key": "mode_code", + "type": "integer", + "value": "${data.mode_code}" + }, + { + "key": "dock_sn", + "type": "string", + "value": "${gateway}" + } + ], + "timeseries": [ + { + "key": "total_flight_sorties", + "type": "string", + "value": "${data.total_flight_sorties}" + }, + { + "key": "height_limit", + "type": "integer", + "value": "${data.height_limit}" + }, + { + "key": "distance_limit_status.distance_limit", + "type": "integer", + "value": "${distance_limit_status.distance_limit}" + }, + { + "key": "battery", + "type": "string", + "value": "${data.battery}" + } + ] + } + }, + { + "topicFilter": "thing/product/7C+/state", + "subscriptionQos": 0, + "converter": { + "type": "json", + "deviceInfo": { + "deviceNameExpression": "(?<=thing/product/)[^/]+(?=/state)", + "deviceNameExpressionSource": "topic", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "default" + }, + "attributes": [ + { + "key": "firmware_version", + "type": "string", + "value": "${data.firmware_version}" + } + ], + "timeseries": [] + } + }, + { + "topicFilter": "thing/product/158+/state", + "subscriptionQos": 0, + "converter": { + "type": "json", + "deviceInfo": { + "deviceNameExpression": "(?<=thing/product/)[^/]+(?=/state)", + "deviceNameExpressionSource": "topic", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "default" + }, + "attributes": [ + { + "key": "firmware_version", + "type": "string", + "value": "${data.firmware_version}" + } + ], + "timeseries": [ + { + "key": "psdk_widget_values", + "type": "string", + "value": "${data.psdk_widget_values}" + }, + { + "key": "home_latitude", + "type": "double", + "value": "${data.home_latitude}" + }, + { + "key": "home_longitude", + "type": "double", + "value": "${data.home_longitude}" + }, + { + "key": "total_flight_time", + "type": "integer", + "value": "${data.total_flight_time}" + } + ] + } + } + ], + "requestsMapping": { + "connectRequests": [ + { + "topicFilter": "sensor/connect", + "deviceInfo": { + "deviceNameExpressionSource": "message", + "deviceNameExpression": "${serialNumber}", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "Thermometer" + } + }, + { + "topicFilter": "sensor/+/connect", + "deviceInfo": { + "deviceNameExpressionSource": "topic", + "deviceNameExpression": "(?<=sensor/)(.*?)(?=/connect)", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "Thermometer" + } + } + ], + "disconnectRequests": [ + { + "topicFilter": "sensor/disconnect", + "deviceInfo": { + "deviceNameExpressionSource": "message", + "deviceNameExpression": "${serialNumber}" + } + }, + { + "topicFilter": "sensor/+/disconnect", + "deviceInfo": { + "deviceNameExpressionSource": "topic", + "deviceNameExpression": "(?<=sensor/)(.*?)(?=/connect)" + } + } + ], + "attributeRequests": [ + { + "retain": false, + "topicFilter": "v1/devices/me/attributes/request", + "deviceInfo": { + "deviceNameExpressionSource": "message", + "deviceNameExpression": "${serialNumber}" + }, + "attributeNameExpressionSource": "message", + "attributeNameExpression": "${versionAttribute}, ${pduAttribute}", + "topicExpression": "devices/${deviceName}/attrs", + "valueExpression": "${attributeKey}: ${attributeValue}" + } + ], + "attributeUpdates": [ + { + "retain": true, + "deviceNameFilter": ".*", + "attributeFilter": "firmwareVersion", + "topicExpression": "sensor/${deviceName}/${attributeKey}", + "valueExpression": "{\"${attributeKey}\":\"${attributeValue}\"}" + } + ], + "serverSideRpc": [ + { + "type": "twoWay", + "deviceNameFilter": ".*", + "methodFilter": "echo", + "requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}", + "responseTopicExpression": "sensor/${deviceName}/response/${methodName}/${requestId}", + "responseTopicQoS": 1, + "responseTimeout": 10000, + "valueExpression": "${params}" + }, + { + "type": "oneWay", + "deviceNameFilter": ".*", + "methodFilter": "no-reply", + "requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}", + "valueExpression": "${params}" + } + ] + }, + "name": "DOCK", + "id": "28239240-5e44-4fb8-9f66-c29c638903ae", + "logLevel": "INFO", + "enableRemoteLogging": false, + "configVersion": "3.7.8" +} \ No newline at end of file From 1d5a1468ef694af47b155c4c4bb0658c87dfd47c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Sat, 24 Jan 2026 10:33:51 +0800 Subject: [PATCH 10/12] xx --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 2d9c6b3..5a886e4 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,8 @@ docker/mysql/data/ docker/mysql/db/*.sql docker/nacos/logs/ docker/redis/data/ +docker/minio/data/ +docker/minio/config/ docker/nginx/html/dist/* !docker/nginx/html/dist/.gitkeep runtime/* From fbbd6734cb39a33805111e5463814c23ee68285e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Sat, 24 Jan 2026 10:59:56 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0minio=E7=9A=84=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E8=BD=AC=E5=8F=91=E5=92=8Cminio=E7=9A=84=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E6=8B=89=E8=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/a_th_web/conf/nginx.conf | 12 ++++++++++++ docker/docker-compose.yml | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/docker/a_th_web/conf/nginx.conf b/docker/a_th_web/conf/nginx.conf index 8102642..5c1a9e8 100644 --- a/docker/a_th_web/conf/nginx.conf +++ b/docker/a_th_web/conf/nginx.conf @@ -28,6 +28,18 @@ http { proxy_pass http://ruoyi-gateway:8080/; } + location /minio/ { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_connect_timeout 300; + proxy_http_version 1.1; + proxy_set_header Connection ""; + chunked_transfer_encoding off; + proxy_pass http://ruoyi-minio:9000/; + } + # 避免actuator暴露 if ($uri ~ "/actuator") { return 403; diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 66895c6..8dbc33b 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -52,6 +52,21 @@ services: volumes: - ./redis/conf/redis.conf:/home/ruoyi/redis/redis.conf command: redis-server /home/ruoyi/redis/redis.conf + ruoyi-minio: + container_name: ruoyi-minio + image: registry.t-aaron.com/minio/minio:RELEASE.2024-12-18T13-15-44Z + environment: + - MINIO_ROOT_USER=minioadmin + - MINIO_ROOT_PASSWORD=minioadmin + - TZ=Asia/Shanghai + ports: + - "9000:9000" + - "9001:9001" + volumes: + - ./minio/data:/data + - ./minio/config:/root/.minio + command: server /data --console-address ":9001" + restart: unless-stopped ruoyi-nginx: container_name: ruoyi-nginx image: nginx-runtime From 40961ce7fbc83b92ecf5d84d6ba0f627b8262889 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Sat, 24 Jan 2026 11:03:15 +0800 Subject: [PATCH 12/12] xx --- docker/deploy.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/deploy.sh b/docker/deploy.sh index abe4d97..afaede9 100644 --- a/docker/deploy.sh +++ b/docker/deploy.sh @@ -34,6 +34,7 @@ port(){ docker-compose build --no-cache ruoyi-mysql && docker-compose up -d ruoyi-mysql docker-compose build --no-cache ruoyi-redis && docker-compose up -d ruoyi-redis docker-compose build --no-cache ruoyi-nacos && docker-compose up -d ruoyi-nacos +docker-compose build --no-cache ruoyi-minio && docker-compose up -d ruoyi-minio docker-compose build --no-cache ruoyi-gateway && docker-compose up -d ruoyi-gateway docker-compose build --no-cache ruoyi-nginx && docker-compose up -d ruoyi-nginx docker-compose build --no-cache ruoyi-hyf && docker-compose up -d ruoyi-hyf