Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
ed58b65d76
|
|
@ -52,6 +52,8 @@ docker/mysql/data/
|
||||||
docker/mysql/db/*.sql
|
docker/mysql/db/*.sql
|
||||||
docker/nacos/logs/
|
docker/nacos/logs/
|
||||||
docker/redis/data/
|
docker/redis/data/
|
||||||
|
docker/minio/data/
|
||||||
|
docker/minio/config/
|
||||||
docker/nginx/html/dist/*
|
docker/nginx/html/dist/*
|
||||||
!docker/nginx/html/dist/.gitkeep
|
!docker/nginx/html/dist/.gitkeep
|
||||||
runtime/*
|
runtime/*
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,18 @@ http {
|
||||||
proxy_pass http://ruoyi-gateway:8080/;
|
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暴露
|
# 避免actuator暴露
|
||||||
if ($uri ~ "/actuator") {
|
if ($uri ~ "/actuator") {
|
||||||
return 403;
|
return 403;
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ port(){
|
||||||
docker-compose build --no-cache ruoyi-mysql && docker-compose up -d ruoyi-mysql
|
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-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-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-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-nginx && docker-compose up -d ruoyi-nginx
|
||||||
docker-compose build --no-cache ruoyi-hyf && docker-compose up -d ruoyi-hyf
|
docker-compose build --no-cache ruoyi-hyf && docker-compose up -d ruoyi-hyf
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,21 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./redis/conf/redis.conf:/home/ruoyi/redis/redis.conf
|
- ./redis/conf/redis.conf:/home/ruoyi/redis/redis.conf
|
||||||
command: redis-server /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:
|
ruoyi-nginx:
|
||||||
container_name: ruoyi-nginx
|
container_name: ruoyi-nginx
|
||||||
image: nginx-runtime
|
image: nginx-runtime
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
}
|
||||||
|
|
@ -21,3 +21,5 @@ docker-compose up -d
|
||||||
- 用户名:sysadmin@thingsboard.org
|
- 用户名:sysadmin@thingsboard.org
|
||||||
- 密码:sysadmin
|
- 密码:sysadmin
|
||||||
|
|
||||||
|
|
||||||
|
# 网关脚本的镜像需要修改为 registry.t-aaron.com/thingsboard/tb-gateway:3.7.8.1
|
||||||
|
|
@ -28,6 +28,13 @@
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- SpringDoc OpenAPI -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springdoc</groupId>
|
||||||
|
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
@ -25,4 +25,22 @@ public interface RemoteStatisticsService
|
||||||
*/
|
*/
|
||||||
@GetMapping("/statistics")
|
@GetMapping("/statistics")
|
||||||
R<StatisticsVO> getStatistics(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
R<StatisticsVO> getStatistics(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取系统统计信息
|
||||||
|
*
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 统计信息
|
||||||
|
*/
|
||||||
|
@GetMapping("/statistics/dji")
|
||||||
|
R<StatisticsVO> getDjiStatistics(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取系统统计信息
|
||||||
|
*
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 统计信息
|
||||||
|
*/
|
||||||
|
@GetMapping("/statistics/th")
|
||||||
|
R<StatisticsVO> getThStatistics(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
}
|
}
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -14,77 +15,94 @@ import java.util.List;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "无人机详情VO对象")
|
||||||
public class AircraftDetailVO extends AircraftVO {
|
public class AircraftDetailVO extends AircraftVO {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
// ========== 基本信息区域 ==========
|
// ========== 基本信息区域 ==========
|
||||||
|
|
||||||
/** 无人机版本 */
|
/** 无人机版本 */
|
||||||
|
@Schema(description = "无人机版本")
|
||||||
@Excel(name = "无人机版本")
|
@Excel(name = "无人机版本")
|
||||||
private String aircraftVersion;
|
private String aircraftVersion;
|
||||||
|
|
||||||
/** 无人机SN号 */
|
/** 无人机SN号 */
|
||||||
|
@Schema(description = "无人机SN号")
|
||||||
@Excel(name = "无人机SN号")
|
@Excel(name = "无人机SN号")
|
||||||
private String snNumber;
|
private String snNumber;
|
||||||
|
|
||||||
/** 电池SN号 */
|
/** 电池SN号 */
|
||||||
|
@Schema(description = "电池SN号")
|
||||||
@Excel(name = "电池SN号")
|
@Excel(name = "电池SN号")
|
||||||
private String batterySn;
|
private String batterySn;
|
||||||
|
|
||||||
/** 绑定时间 */
|
/** 绑定时间 */
|
||||||
|
@Schema(description = "绑定时间")
|
||||||
@Excel(name = "绑定时间")
|
@Excel(name = "绑定时间")
|
||||||
private Long bindTime;
|
private Long bindTime;
|
||||||
|
|
||||||
/** 运维剩余天数 */
|
/** 运维剩余天数 */
|
||||||
|
@Schema(description = "运维剩余天数")
|
||||||
@Excel(name = "运维剩余天数")
|
@Excel(name = "运维剩余天数")
|
||||||
private Integer maintenanceDays;
|
private Integer maintenanceDays;
|
||||||
|
|
||||||
// ========== 统计信息区域 ==========
|
// ========== 统计信息区域 ==========
|
||||||
|
|
||||||
/** 飞行时长 */
|
/** 飞行时长 */
|
||||||
|
@Schema(description = "飞行时长")
|
||||||
@Excel(name = "飞行时长")
|
@Excel(name = "飞行时长")
|
||||||
private Integer flightDuration;
|
private Integer flightDuration;
|
||||||
|
|
||||||
/** 作业架次 */
|
/** 作业架次 */
|
||||||
|
@Schema(description = "作业架次")
|
||||||
@Excel(name = "作业架次")
|
@Excel(name = "作业架次")
|
||||||
private Integer missionCount;
|
private Integer missionCount;
|
||||||
|
|
||||||
// ========== 网络列表 ==========
|
// ========== 网络列表 ==========
|
||||||
|
|
||||||
/** 网络列表 */
|
/** 网络列表 */
|
||||||
|
@Schema(description = "网络列表")
|
||||||
private List<NetworkVO> networkList;
|
private List<NetworkVO> networkList;
|
||||||
|
|
||||||
// ========== 遥测数据区域 ==========
|
// ========== 遥测数据区域 ==========
|
||||||
|
|
||||||
/** RTK信号 */
|
/** RTK信号 */
|
||||||
|
@Schema(description = "RTK信号")
|
||||||
@Excel(name = "RTK信号")
|
@Excel(name = "RTK信号")
|
||||||
private Double rtkSignal;
|
private Double rtkSignal;
|
||||||
|
|
||||||
/** 限高 */
|
/** 限高 */
|
||||||
|
@Schema(description = "限高")
|
||||||
@Excel(name = "限高")
|
@Excel(name = "限高")
|
||||||
private Integer maxAltitude;
|
private Integer maxAltitude;
|
||||||
|
|
||||||
/** 限远 */
|
/** 限远 */
|
||||||
|
@Schema(description = "限远")
|
||||||
@Excel(name = "限远")
|
@Excel(name = "限远")
|
||||||
private Integer maxDistance;
|
private Integer maxDistance;
|
||||||
|
|
||||||
/** 电压 */
|
/** 电压 */
|
||||||
|
@Schema(description = "电压")
|
||||||
@Excel(name = "电压")
|
@Excel(name = "电压")
|
||||||
private Integer voltage;
|
private Integer voltage;
|
||||||
|
|
||||||
/** 电量 */
|
/** 电量 */
|
||||||
|
@Schema(description = "电量")
|
||||||
@Excel(name = "电量")
|
@Excel(name = "电量")
|
||||||
private Integer batteryLevel;
|
private Integer batteryLevel;
|
||||||
|
|
||||||
/** 续航 */
|
/** 续航 */
|
||||||
|
@Schema(description = "续航")
|
||||||
@Excel(name = "续航")
|
@Excel(name = "续航")
|
||||||
private Integer flightTimeRemaining;
|
private Integer flightTimeRemaining;
|
||||||
|
|
||||||
/** 电池温度 */
|
/** 电池温度 */
|
||||||
|
@Schema(description = "电池温度")
|
||||||
@Excel(name = "电池温度")
|
@Excel(name = "电池温度")
|
||||||
private Double batteryTemperature;
|
private Double batteryTemperature;
|
||||||
|
|
||||||
/** 循环次数 */
|
/** 循环次数 */
|
||||||
|
@Schema(description = "循环次数")
|
||||||
@Excel(name = "循环次数")
|
@Excel(name = "循环次数")
|
||||||
private Integer cycleCount;
|
private Integer cycleCount;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -14,35 +15,44 @@ import java.util.List;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "无人机VO对象")
|
||||||
public class AircraftVO implements Serializable {
|
public class AircraftVO implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 无人机ID */
|
/** 无人机ID */
|
||||||
|
@Schema(description = "无人机ID")
|
||||||
@Excel(name = "无人机ID")
|
@Excel(name = "无人机ID")
|
||||||
private Long aircraftId;
|
private Long aircraftId;
|
||||||
|
|
||||||
/** 无人机IOT ID */
|
/** 无人机IOT ID */
|
||||||
|
@Schema(description = "无人机IOT ID")
|
||||||
@Excel(name = "无人机IOT ID")
|
@Excel(name = "无人机IOT ID")
|
||||||
private String aircraftIotId;
|
private String aircraftIotId;
|
||||||
|
|
||||||
/** 无人机名称 */
|
/** 无人机名称 */
|
||||||
|
@Schema(description = "无人机名称")
|
||||||
@Excel(name = "无人机名称")
|
@Excel(name = "无人机名称")
|
||||||
private String aircraftName;
|
private String aircraftName;
|
||||||
|
|
||||||
/** 无人机厂商 */
|
/** 无人机厂商 */
|
||||||
|
@Schema(description = "无人机厂商")
|
||||||
@Excel(name = "无人机厂商")
|
@Excel(name = "无人机厂商")
|
||||||
private String aircraftManufacturer;
|
private String aircraftManufacturer;
|
||||||
|
|
||||||
/** 无人机型号 */
|
/** 无人机型号 */
|
||||||
|
@Schema(description = "无人机型号")
|
||||||
@Excel(name = "无人机型号")
|
@Excel(name = "无人机型号")
|
||||||
private String aircraftModel;
|
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-离线",
|
||||||
|
allowableValues = {"POWER_ON_IN_CABIN", "POWER_OFF_IN_CABIN", "POWER_ON_OUT_CABIN", "POWER_OFF_OUT_CABIN", "IN_MISSION", "DEBUGGING", "OFFLINE"})
|
||||||
@Excel(name = "无人机状态")
|
@Excel(name = "无人机状态")
|
||||||
private String aircraftStatus;
|
private String aircraftStatus;
|
||||||
|
|
||||||
/** 挂载列表 */
|
/** 挂载列表 */
|
||||||
|
@Schema(description = "挂载列表")
|
||||||
private List<PayloadVO> payloadList;
|
private List<PayloadVO> payloadList;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ruoyi.device.api.domain;
|
package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备临时表对象 tuoheng_device_temp
|
* 设备临时表对象 tuoheng_device_temp
|
||||||
|
|
@ -8,11 +9,13 @@ import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
* @date 2026-01-15
|
* @date 2026-01-15
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "设备临时表对象")
|
||||||
public class DeviceTempVO extends BaseEntity
|
public class DeviceTempVO extends BaseEntity
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 主键ID */
|
/** 主键ID */
|
||||||
|
@Schema(description = "主键ID")
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
public String getId()
|
public String getId()
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -13,6 +14,7 @@ import java.io.Serializable;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "机场详情VO对象")
|
||||||
public class DockDetailVO extends DockVO {
|
public class DockDetailVO extends DockVO {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
@ -22,24 +24,28 @@ public class DockDetailVO extends DockVO {
|
||||||
/**
|
/**
|
||||||
* 固件版本
|
* 固件版本
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "固件版本")
|
||||||
@Excel(name = "固件版本")
|
@Excel(name = "固件版本")
|
||||||
private String firmwareVersion;
|
private String firmwareVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SN号
|
* SN号
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "SN号")
|
||||||
@Excel(name = "SN号")
|
@Excel(name = "SN号")
|
||||||
private String snNumber;
|
private String snNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 绑定时间
|
* 绑定时间
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "绑定时间")
|
||||||
@Excel(name = "绑定时间")
|
@Excel(name = "绑定时间")
|
||||||
private Long bindTime;
|
private Long bindTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 运维剩余天数
|
* 运维剩余天数
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "运维剩余天数")
|
||||||
@Excel(name = "运维剩余天数")
|
@Excel(name = "运维剩余天数")
|
||||||
private Integer maintenanceDays;
|
private Integer maintenanceDays;
|
||||||
|
|
||||||
|
|
@ -48,12 +54,14 @@ public class DockDetailVO extends DockVO {
|
||||||
/**
|
/**
|
||||||
* 备降点坐标(经度)
|
* 备降点坐标(经度)
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "备降点经度")
|
||||||
@Excel(name = "备降点经度")
|
@Excel(name = "备降点经度")
|
||||||
private Double backupLongitude;
|
private Double backupLongitude;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备降点坐标(纬度)
|
* 备降点坐标(纬度)
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "备降点纬度")
|
||||||
@Excel(name = "备降点纬度")
|
@Excel(name = "备降点纬度")
|
||||||
private Double backupLatitude;
|
private Double backupLatitude;
|
||||||
|
|
||||||
|
|
@ -62,36 +70,42 @@ public class DockDetailVO extends DockVO {
|
||||||
/**
|
/**
|
||||||
* 运行时长
|
* 运行时长
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "运行时长")
|
||||||
@Excel(name = "运行时长")
|
@Excel(name = "运行时长")
|
||||||
private Integer runningDuration;
|
private Integer runningDuration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 作业架次
|
* 作业架次
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "作业架次")
|
||||||
@Excel(name = "作业架次")
|
@Excel(name = "作业架次")
|
||||||
private Integer missionCount;
|
private Integer missionCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 环境风速
|
* 环境风速
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "环境风速")
|
||||||
@Excel(name = "环境风速")
|
@Excel(name = "环境风速")
|
||||||
private Double windSpeed;
|
private Double windSpeed;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 环境雨量
|
* 环境雨量
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "环境雨量")
|
||||||
@Excel(name = "环境雨量")
|
@Excel(name = "环境雨量")
|
||||||
private Double rainfall;
|
private Double rainfall;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 环境温度
|
* 环境温度
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "环境温度")
|
||||||
@Excel(name = "环境温度")
|
@Excel(name = "环境温度")
|
||||||
private Double environmentTemperature;
|
private Double environmentTemperature;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 环境湿度
|
* 环境湿度
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "环境湿度")
|
||||||
@Excel(name = "环境湿度")
|
@Excel(name = "环境湿度")
|
||||||
private Double environmentHumidity;
|
private Double environmentHumidity;
|
||||||
|
|
||||||
|
|
@ -100,12 +114,15 @@ public class DockDetailVO extends DockVO {
|
||||||
/**
|
/**
|
||||||
* 网络类型
|
* 网络类型
|
||||||
*/
|
*/
|
||||||
|
@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 = "网络类型")
|
@Excel(name = "网络类型")
|
||||||
private String networkType;
|
private String networkType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 网络延迟
|
* 网络延迟
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "网络延迟")
|
||||||
@Excel(name = "网络延迟")
|
@Excel(name = "网络延迟")
|
||||||
private Integer networkDelay;
|
private Integer networkDelay;
|
||||||
|
|
||||||
|
|
@ -114,76 +131,95 @@ public class DockDetailVO extends DockVO {
|
||||||
/**
|
/**
|
||||||
* 空调状态
|
* 空调状态
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "空调状态: IDLE-空闲模式, COOLING-制冷模式, HEATING-制热模式, DEHUMIDIFYING-除湿模式",
|
||||||
|
allowableValues = {"IDLE", "COOLING", "HEATING", "DEHUMIDIFYING"})
|
||||||
@Excel(name = "空调状态")
|
@Excel(name = "空调状态")
|
||||||
private String airConditionerStatus;
|
private String airConditionerStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 舱门状态
|
* 舱门状态
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "舱门状态: CLOSED-关闭, OPEN-打开, HALF_OPEN-半开, ABNORMAL-舱盖状态异常",
|
||||||
|
allowableValues = {"CLOSED", "OPEN", "HALF_OPEN", "ABNORMAL"})
|
||||||
@Excel(name = "舱门状态")
|
@Excel(name = "舱门状态")
|
||||||
private String cabinDoorStatus;
|
private String cabinDoorStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 机场状态
|
* 机场状态
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "机场运行状态: IDLE-空闲中, Debugging-现场调试/远程调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线",
|
||||||
|
allowableValues = {"IDLE", "Debugging", "Upgrading", "Working", "UNKNOWN", "OFFLINE"})
|
||||||
@Excel(name = "机场运行状态")
|
@Excel(name = "机场运行状态")
|
||||||
private String dockRunStatus;
|
private String dockRunStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 舱内摄像头
|
* 舱内摄像头
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "舱内摄像头")
|
||||||
@Excel(name = "舱内摄像头")
|
@Excel(name = "舱内摄像头")
|
||||||
private String internalCamera;
|
private String internalCamera;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 舱外摄像头
|
* 舱外摄像头
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "舱外摄像头")
|
||||||
@Excel(name = "舱外摄像头")
|
@Excel(name = "舱外摄像头")
|
||||||
private String externalCamera;
|
private String externalCamera;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充放电状态
|
* 充放电状态
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "充放电状态")
|
||||||
@Excel(name = "充放电状态")
|
@Excel(name = "充放电状态")
|
||||||
private String chargingStatus;
|
private String chargingStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 舱内温度
|
* 舱内温度
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "舱内温度")
|
||||||
@Excel(name = "舱内温度")
|
@Excel(name = "舱内温度")
|
||||||
private Double cabinTemperature;
|
private Double cabinTemperature;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 舱内湿度
|
* 舱内湿度
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "舱内湿度")
|
||||||
@Excel(name = "舱内湿度")
|
@Excel(name = "舱内湿度")
|
||||||
private Double cabinHumidity;
|
private Double cabinHumidity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 升降架位置
|
* 升降架位置
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "升降架位置: BOTTOM-底部, TOP-顶部",
|
||||||
|
allowableValues = {"BOTTOM", "TOP"})
|
||||||
@Excel(name = "升降架位置")
|
@Excel(name = "升降架位置")
|
||||||
private String elevatorPosition;
|
private String elevatorPosition;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* X轴夹状态
|
* X轴夹状态
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "X轴夹状态: OPEN-开启, CLOSE-关闭",
|
||||||
|
allowableValues = {"OPEN", "CLOSE"})
|
||||||
@Excel(name = "X轴夹状态")
|
@Excel(name = "X轴夹状态")
|
||||||
private String xAxisClampStatus;
|
private String xAxisClampStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Y轴夹状态
|
* Y轴夹状态
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "Y轴夹状态: OPEN-开启, CLOSE-关闭",
|
||||||
|
allowableValues = {"OPEN", "CLOSE"})
|
||||||
@Excel(name = "Y轴夹状态")
|
@Excel(name = "Y轴夹状态")
|
||||||
private String yAxisClampStatus;
|
private String yAxisClampStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*纬度
|
*纬度
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "纬度")
|
||||||
private Double latitude;
|
private Double latitude;
|
||||||
/**
|
/**
|
||||||
* 经度
|
* 经度
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "经度")
|
||||||
private Double longitude;
|
private Double longitude;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -14,63 +15,80 @@ import java.util.List;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "机场VO对象")
|
||||||
public class DockVO implements Serializable {
|
public class DockVO implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 机场ID */
|
/** 机场ID */
|
||||||
|
@Schema(description = "机场ID")
|
||||||
@Excel(name = "机场ID")
|
@Excel(name = "机场ID")
|
||||||
private Long dockId;
|
private Long dockId;
|
||||||
|
|
||||||
/** 机场IOT ID */
|
/** 机场IOT ID */
|
||||||
|
@Schema(description = "机场IOT ID")
|
||||||
@Excel(name = "机场IOT ID")
|
@Excel(name = "机场IOT ID")
|
||||||
private String dockIotId;
|
private String dockIotId;
|
||||||
|
|
||||||
/** 机场名称 */
|
/** 机场名称 */
|
||||||
|
@Schema(description = "机场名称")
|
||||||
@Excel(name = "机场名称")
|
@Excel(name = "机场名称")
|
||||||
private String dockName;
|
private String dockName;
|
||||||
|
|
||||||
/** 机场位置 */
|
/** 机场位置 */
|
||||||
|
@Schema(description = "机场位置")
|
||||||
@Excel(name = "机场位置")
|
@Excel(name = "机场位置")
|
||||||
private String dockLocation;
|
private String dockLocation;
|
||||||
|
|
||||||
/** 机场厂商 */
|
/** 机场厂商 */
|
||||||
|
@Schema(description = "机场厂商")
|
||||||
@Excel(name = "机场厂商")
|
@Excel(name = "机场厂商")
|
||||||
private String dockManufacturer;
|
private String dockManufacturer;
|
||||||
|
|
||||||
/** 机场型号 */
|
/** 机场型号 */
|
||||||
|
@Schema(description = "机场型号")
|
||||||
@Excel(name = "机场型号")
|
@Excel(name = "机场型号")
|
||||||
private String dockModel;
|
private String dockModel;
|
||||||
|
|
||||||
/** 机场状态 */
|
/** 机场状态 */
|
||||||
|
@Schema(description = "机场状态: IDLE-空闲中, Debugging-现场调试/远程调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线",
|
||||||
|
allowableValues = {"IDLE", "Debugging", "Upgrading", "Working", "UNKNOWN", "OFFLINE"})
|
||||||
@Excel(name = "机场状态")
|
@Excel(name = "机场状态")
|
||||||
private String dockStatus;
|
private String dockStatus;
|
||||||
|
|
||||||
/** 无人机ID */
|
/** 无人机ID */
|
||||||
|
@Schema(description = "无人机ID")
|
||||||
@Excel(name = "无人机ID")
|
@Excel(name = "无人机ID")
|
||||||
private Long aircraftId;
|
private Long aircraftId;
|
||||||
|
|
||||||
/** 无人机IOT ID */
|
/** 无人机IOT ID */
|
||||||
|
@Schema(description = "无人机IOT ID")
|
||||||
@Excel(name = "无人机IOT ID")
|
@Excel(name = "无人机IOT ID")
|
||||||
private String aircraftIotId;
|
private String aircraftIotId;
|
||||||
|
|
||||||
/** 无人机名称 */
|
/** 无人机名称 */
|
||||||
|
@Schema(description = "无人机名称")
|
||||||
@Excel(name = "无人机名称")
|
@Excel(name = "无人机名称")
|
||||||
private String aircraftName;
|
private String aircraftName;
|
||||||
|
|
||||||
/** 无人机厂商 */
|
/** 无人机厂商 */
|
||||||
|
@Schema(description = "无人机厂商")
|
||||||
@Excel(name = "无人机厂商")
|
@Excel(name = "无人机厂商")
|
||||||
private String aircraftManufacturer;
|
private String aircraftManufacturer;
|
||||||
|
|
||||||
/** 无人机型号 */
|
/** 无人机型号 */
|
||||||
|
@Schema(description = "无人机型号")
|
||||||
@Excel(name = "无人机型号")
|
@Excel(name = "无人机型号")
|
||||||
private String aircraftModel;
|
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-离线",
|
||||||
|
allowableValues = {"POWER_ON_IN_CABIN", "POWER_OFF_IN_CABIN", "POWER_ON_OUT_CABIN", "POWER_OFF_OUT_CABIN", "IN_MISSION", "DEBUGGING", "OFFLINE"})
|
||||||
@Excel(name = "无人机状态")
|
@Excel(name = "无人机状态")
|
||||||
private String aircraftStatus;
|
private String aircraftStatus;
|
||||||
|
|
||||||
/** 挂载列表 */
|
/** 挂载列表 */
|
||||||
|
@Schema(description = "挂载列表")
|
||||||
private List<PayloadVO> payloadList;
|
private List<PayloadVO> payloadList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ruoyi.device.api.domain;
|
package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -13,69 +14,72 @@ import java.util.List;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "机场信息(含GPS坐标)")
|
||||||
public class DockWithGPSVO implements Serializable {
|
public class DockWithGPSVO implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 机场ID */
|
@Schema(description = "机场ID")
|
||||||
@Excel(name = "机场ID")
|
@Excel(name = "机场ID")
|
||||||
private Long dockId;
|
private Long dockId;
|
||||||
|
|
||||||
/** 机场IOT ID */
|
@Schema(description = "机场IOT ID")
|
||||||
@Excel(name = "机场IOT ID")
|
@Excel(name = "机场IOT ID")
|
||||||
private String dockIotId;
|
private String dockIotId;
|
||||||
|
|
||||||
/** 机场名称 */
|
@Schema(description = "机场名称")
|
||||||
@Excel(name = "机场名称")
|
@Excel(name = "机场名称")
|
||||||
private String dockName;
|
private String dockName;
|
||||||
|
|
||||||
/** 机场位置 */
|
@Schema(description = "机场位置")
|
||||||
@Excel(name = "机场位置")
|
@Excel(name = "机场位置")
|
||||||
private String dockLocation;
|
private String dockLocation;
|
||||||
|
|
||||||
/** 机场厂商 */
|
@Schema(description = "机场厂商")
|
||||||
@Excel(name = "机场厂商")
|
@Excel(name = "机场厂商")
|
||||||
private String dockManufacturer;
|
private String dockManufacturer;
|
||||||
|
|
||||||
/** 机场型号 */
|
@Schema(description = "机场型号")
|
||||||
@Excel(name = "机场型号")
|
@Excel(name = "机场型号")
|
||||||
private String dockModel;
|
private String dockModel;
|
||||||
|
|
||||||
/** 机场状态 */
|
@Schema(description = "机场状态: IDLE-空闲中, Debugging-现场调试/远程调试, Upgrading-固件升级中, Working-作业中, UNKNOWN-待标定, OFFLINE-离线",
|
||||||
|
allowableValues = {"IDLE", "Debugging", "Upgrading", "Working", "UNKNOWN", "OFFLINE"})
|
||||||
@Excel(name = "机场状态")
|
@Excel(name = "机场状态")
|
||||||
private String dockStatus;
|
private String dockStatus;
|
||||||
|
|
||||||
/** 无人机ID */
|
@Schema(description = "无人机ID")
|
||||||
@Excel(name = "无人机ID")
|
@Excel(name = "无人机ID")
|
||||||
private Long aircraftId;
|
private Long aircraftId;
|
||||||
|
|
||||||
/** 无人机IOT ID */
|
@Schema(description = "无人机IOT ID")
|
||||||
@Excel(name = "无人机IOT ID")
|
@Excel(name = "无人机IOT ID")
|
||||||
private String aircraftIotId;
|
private String aircraftIotId;
|
||||||
|
|
||||||
/** 无人机名称 */
|
@Schema(description = "无人机名称")
|
||||||
@Excel(name = "无人机名称")
|
@Excel(name = "无人机名称")
|
||||||
private String aircraftName;
|
private String aircraftName;
|
||||||
|
|
||||||
/** 无人机厂商 */
|
@Schema(description = "无人机厂商")
|
||||||
@Excel(name = "无人机厂商")
|
@Excel(name = "无人机厂商")
|
||||||
private String aircraftManufacturer;
|
private String aircraftManufacturer;
|
||||||
|
|
||||||
/** 无人机型号 */
|
@Schema(description = "无人机型号")
|
||||||
@Excel(name = "无人机型号")
|
@Excel(name = "无人机型号")
|
||||||
private String aircraftModel;
|
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-离线",
|
||||||
|
allowableValues = {"POWER_ON_IN_CABIN", "POWER_OFF_IN_CABIN", "POWER_ON_OUT_CABIN", "POWER_OFF_OUT_CABIN", "IN_MISSION", "DEBUGGING", "OFFLINE"})
|
||||||
@Excel(name = "无人机状态")
|
@Excel(name = "无人机状态")
|
||||||
private String aircraftStatus;
|
private String aircraftStatus;
|
||||||
|
|
||||||
/** 挂载列表 */
|
@Schema(description = "挂载列表")
|
||||||
private List<PayloadVO> payloadList;
|
private List<PayloadVO> payloadList;
|
||||||
|
|
||||||
/** 纬度 */
|
@Schema(description = "纬度")
|
||||||
private Double latitude;
|
private Double latitude;
|
||||||
|
|
||||||
/** 经度 */
|
@Schema(description = "经度")
|
||||||
private Double longitude;
|
private Double longitude;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ruoyi.device.api.domain;
|
package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -13,24 +14,29 @@ import java.util.List;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "分组VO对象")
|
||||||
public class GroupVO implements Serializable
|
public class GroupVO implements Serializable
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 分组ID */
|
/** 分组ID */
|
||||||
|
@Schema(description = "分组ID")
|
||||||
@Excel(name = "分组ID")
|
@Excel(name = "分组ID")
|
||||||
private Long groupId;
|
private Long groupId;
|
||||||
|
|
||||||
/** 分组名称 */
|
/** 分组名称 */
|
||||||
|
@Schema(description = "分组名称")
|
||||||
@Excel(name = "分组名称")
|
@Excel(name = "分组名称")
|
||||||
private String groupName;
|
private String groupName;
|
||||||
|
|
||||||
/** 无人机个数 */
|
/** 无人机个数 */
|
||||||
|
@Schema(description = "机场个数")
|
||||||
@Excel(name = "机场个数")
|
@Excel(name = "机场个数")
|
||||||
private Integer dockCount;
|
private Integer dockCount;
|
||||||
|
|
||||||
/** 机场列表 */
|
/** 机场列表 */
|
||||||
|
@Schema(description = "机场列表")
|
||||||
private List<DockVO> dockList;
|
private List<DockVO> dockList;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -13,15 +14,19 @@ import java.io.Serializable;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "网络信息VO对象")
|
||||||
public class NetworkVO implements Serializable
|
public class NetworkVO implements Serializable
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 网络类型 */
|
/** 网络类型 */
|
||||||
|
@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 = "网络类型")
|
@Excel(name = "网络类型")
|
||||||
private String networkType;
|
private String networkType;
|
||||||
|
|
||||||
/** 网络延迟 */
|
/** 网络延迟 */
|
||||||
|
@Schema(description = "网络延迟")
|
||||||
@Excel(name = "网络延迟")
|
@Excel(name = "网络延迟")
|
||||||
private Integer networkDelay;
|
private Integer networkDelay;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -13,23 +14,29 @@ import java.io.Serializable;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "挂载详情VO对象")
|
||||||
public class PayloadDetailVO implements Serializable
|
public class PayloadDetailVO implements Serializable
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 挂载类型 */
|
/** 挂载类型 */
|
||||||
|
@Schema(description = "挂载类型: SPEAKER-喊话器, CAMERA-相机, OTHER-其他",
|
||||||
|
allowableValues = {"SPEAKER", "CAMERA", "OTHER"})
|
||||||
@Excel(name = "挂载类型")
|
@Excel(name = "挂载类型")
|
||||||
private String payloadType;
|
private String payloadType;
|
||||||
|
|
||||||
/** 挂载型号 */
|
/** 挂载型号 */
|
||||||
|
@Schema(description = "挂载型号")
|
||||||
@Excel(name = "挂载型号")
|
@Excel(name = "挂载型号")
|
||||||
private String payloadModel;
|
private String payloadModel;
|
||||||
|
|
||||||
/** 固件版本 */
|
/** 固件版本 */
|
||||||
|
@Schema(description = "固件版本")
|
||||||
@Excel(name = "固件版本")
|
@Excel(name = "固件版本")
|
||||||
private String firmwareVersion;
|
private String firmwareVersion;
|
||||||
|
|
||||||
/** 是否在线 */
|
/** 是否在线 */
|
||||||
|
@Schema(description = "是否在线")
|
||||||
@Excel(name = "是否在线")
|
@Excel(name = "是否在线")
|
||||||
private String onlineStatus;
|
private String onlineStatus;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
import com.ruoyi.common.core.annotation.Excel;
|
import com.ruoyi.common.core.annotation.Excel;
|
||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -13,23 +14,30 @@ import java.io.Serializable;
|
||||||
* @date 2026-01-20
|
* @date 2026-01-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "挂载VO对象")
|
||||||
public class PayloadVO implements Serializable
|
public class PayloadVO implements Serializable
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 挂载ID */
|
/** 挂载ID */
|
||||||
|
@Schema(description = "挂载ID")
|
||||||
@Excel(name = "挂载ID")
|
@Excel(name = "挂载ID")
|
||||||
private Long payloadId;
|
private Long payloadId;
|
||||||
|
|
||||||
/** 挂载名称 */
|
/** 挂载名称 */
|
||||||
|
@Schema(description = "挂载名称")
|
||||||
@Excel(name = "挂载名称")
|
@Excel(name = "挂载名称")
|
||||||
private String payloadName;
|
private String payloadName;
|
||||||
|
|
||||||
/** 挂载类型 */
|
/** 挂载类型 */
|
||||||
|
@Schema(description = "挂载类型: SPEAKER-喊话器, CAMERA-相机, OTHER-其他",
|
||||||
|
allowableValues = {"SPEAKER", "CAMERA", "OTHER"})
|
||||||
@Excel(name = "挂载类型")
|
@Excel(name = "挂载类型")
|
||||||
private String payloadType;
|
private String payloadType;
|
||||||
|
|
||||||
/** 挂载状态 */
|
/** 挂载状态 */
|
||||||
|
@Schema(description = "挂载状态: ONLINE-在线, OFFLINE-离线",
|
||||||
|
allowableValues = {"ONLINE", "OFFLINE"})
|
||||||
@Excel(name = "挂载状态")
|
@Excel(name = "挂载状态")
|
||||||
private String payloadStatus;
|
private String payloadStatus;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.ruoyi.device.api.domain;
|
package com.ruoyi.device.api.domain;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -11,49 +12,50 @@ import java.io.Serializable;
|
||||||
* @date 2026-01-23
|
* @date 2026-01-23
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Schema(description = "统计信息")
|
||||||
public class StatisticsVO implements Serializable
|
public class StatisticsVO implements Serializable
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
// ========== 机场统计 ==========
|
// ========== 机场统计 ==========
|
||||||
/** 机场个数 */
|
@Schema(description = "机场个数")
|
||||||
private Integer dockCount;
|
private Integer dockCount;
|
||||||
|
|
||||||
/** 空闲机场个数 */
|
@Schema(description = "空闲机场个数")
|
||||||
private Integer idleDockCount;
|
private Integer idleDockCount;
|
||||||
|
|
||||||
/** 任务中机场个数 */
|
@Schema(description = "任务中机场个数")
|
||||||
private Integer workingDockCount;
|
private Integer workingDockCount;
|
||||||
|
|
||||||
/** 调试机场个数 */
|
@Schema(description = "调试机场个数")
|
||||||
private Integer debuggingDockCount;
|
private Integer debuggingDockCount;
|
||||||
|
|
||||||
/** 离线机场个数 */
|
@Schema(description = "离线机场个数")
|
||||||
private Integer offlineDockCount;
|
private Integer offlineDockCount;
|
||||||
|
|
||||||
// ========== 无人机统计 ==========
|
// ========== 无人机统计 ==========
|
||||||
/** 无人机个数 */
|
@Schema(description = "无人机个数")
|
||||||
private Integer aircraftCount;
|
private Integer aircraftCount;
|
||||||
|
|
||||||
/** 舱内开机个数 */
|
@Schema(description = "舱内开机个数")
|
||||||
private Integer powerOnInCabinCount;
|
private Integer powerOnInCabinCount;
|
||||||
|
|
||||||
/** 舱内关机个数 */
|
@Schema(description = "舱内关机个数")
|
||||||
private Integer powerOffInCabinCount;
|
private Integer powerOffInCabinCount;
|
||||||
|
|
||||||
/** 任务中个数 */
|
@Schema(description = "任务中个数")
|
||||||
private Integer inMissionCount;
|
private Integer inMissionCount;
|
||||||
|
|
||||||
/** 调试中个数 */
|
@Schema(description = "调试中个数")
|
||||||
private Integer debuggingAircraftCount;
|
private Integer debuggingAircraftCount;
|
||||||
|
|
||||||
/** 离线个数 */
|
@Schema(description = "离线个数")
|
||||||
private Integer offlineAircraftCount;
|
private Integer offlineAircraftCount;
|
||||||
|
|
||||||
// ========== 挂载统计 ==========
|
// ========== 挂载统计 ==========
|
||||||
/** 全部挂载个数 */
|
@Schema(description = "全部挂载个数")
|
||||||
private Integer payloadCount;
|
private Integer payloadCount;
|
||||||
|
|
||||||
/** 离线个数 */
|
@Schema(description = "离线挂载个数")
|
||||||
private Integer offlinePayloadCount;
|
private Integer offlinePayloadCount;
|
||||||
}
|
}
|
||||||
|
|
@ -31,7 +31,13 @@ public enum DockStatusEnum {
|
||||||
/**
|
/**
|
||||||
* 待标定/未知
|
* 待标定/未知
|
||||||
*/
|
*/
|
||||||
UNKNOWN("UNKNOWN", "待标定");
|
UNKNOWN("UNKNOWN", "待标定"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 待标定/未知
|
||||||
|
*/
|
||||||
|
OFFLINE("OFFLINE", "离线");
|
||||||
|
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
private final String description;
|
private final String description;
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,16 @@ public class RemoteStatisticsFallbackFactory implements FallbackFactory<RemoteSt
|
||||||
{
|
{
|
||||||
return R.fail("获取统计信息失败:" + throwable.getMessage());
|
return R.fail("获取统计信息失败:" + throwable.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<StatisticsVO> getDjiStatistics(String source) {
|
||||||
|
return R.fail("获取统计信息失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<StatisticsVO> getThStatistics(String source) {
|
||||||
|
return R.fail("获取统计信息失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 8daf7a6d842dad1070246129f0629d7090ab1787
|
Subproject commit 1cf82176a79864bccb39122a68dc455f28b4a9c5
|
||||||
Loading…
Reference in New Issue