From b3644698feab88f1ab54a5ecc2c1142ac66899cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Tue, 20 Jan 2026 15:48:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/controller/AircraftController.java | 11 +- .../device/controller/DockController.java | 11 +- .../service/convert/BufferDeviceConvert.java | 153 ++++++++++++++++++ 3 files changed, 171 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/ruoyi/device/service/convert/BufferDeviceConvert.java diff --git a/src/main/java/com/ruoyi/device/controller/AircraftController.java b/src/main/java/com/ruoyi/device/controller/AircraftController.java index 29022aa..df49b62 100644 --- a/src/main/java/com/ruoyi/device/controller/AircraftController.java +++ b/src/main/java/com/ruoyi/device/controller/AircraftController.java @@ -5,6 +5,9 @@ import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.device.api.domain.AircraftDetailVO; import com.ruoyi.device.service.api.IAircraftService; +import com.ruoyi.device.service.api.IBufferDeviceService; +import com.ruoyi.device.service.convert.BufferDeviceConvert; +import com.ruoyi.device.service.dto.AircraftDetailDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -21,6 +24,9 @@ public class AircraftController extends BaseController @Autowired private IAircraftService aircraftService; + @Autowired + private IBufferDeviceService bufferDeviceService; + /** * 查看无人机详情 * @@ -31,7 +37,8 @@ public class AircraftController extends BaseController @GetMapping("/detail/{aircraftId}") public R getAircraftDetail(@PathVariable("aircraftId") Long aircraftId) { - AircraftDetailVO aircraftDetail = aircraftService.getAircraftDetail(aircraftId); - return R.ok(aircraftDetail); + AircraftDetailDTO dto = bufferDeviceService.getAircraftDetailById(aircraftId); + AircraftDetailVO vo = BufferDeviceConvert.toVO(dto); + return R.ok(vo); } } diff --git a/src/main/java/com/ruoyi/device/controller/DockController.java b/src/main/java/com/ruoyi/device/controller/DockController.java index 7cc6695..6f5a8d3 100644 --- a/src/main/java/com/ruoyi/device/controller/DockController.java +++ b/src/main/java/com/ruoyi/device/controller/DockController.java @@ -6,6 +6,9 @@ import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.device.api.domain.DockDetailVO; import com.ruoyi.device.api.domain.DockVO; import com.ruoyi.device.service.api.IDockService; +import com.ruoyi.device.service.api.IBufferDeviceService; +import com.ruoyi.device.service.convert.BufferDeviceConvert; +import com.ruoyi.device.service.dto.DockDetailDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -24,6 +27,9 @@ public class DockController extends BaseController @Autowired private IDockService dockService; + @Autowired + private IBufferDeviceService bufferDeviceService; + /** * 搜索机场 * @@ -49,7 +55,8 @@ public class DockController extends BaseController @GetMapping("/detail/{dockId}") public R getDockDetail(@PathVariable("dockId") Long dockId) { - DockDetailVO dockDetail = dockService.getDockDetail(dockId); - return R.ok(dockDetail); + DockDetailDTO dto = bufferDeviceService.getDockDetailById(dockId); + DockDetailVO vo = BufferDeviceConvert.toVO(dto); + return R.ok(vo); } } diff --git a/src/main/java/com/ruoyi/device/service/convert/BufferDeviceConvert.java b/src/main/java/com/ruoyi/device/service/convert/BufferDeviceConvert.java new file mode 100644 index 0000000..3e54489 --- /dev/null +++ b/src/main/java/com/ruoyi/device/service/convert/BufferDeviceConvert.java @@ -0,0 +1,153 @@ +package com.ruoyi.device.service.convert; + +import com.ruoyi.device.api.domain.AircraftDetailVO; +import com.ruoyi.device.api.domain.DockDetailVO; +import com.ruoyi.device.api.domain.NetworkVO; +import com.ruoyi.device.api.domain.PayloadDetailVO; +import com.ruoyi.device.api.domain.PayloadVO; +import com.ruoyi.device.service.dto.AircraftDetailDTO; +import com.ruoyi.device.service.dto.DockDetailDTO; +import com.ruoyi.device.service.dto.NetworkDTO; +import com.ruoyi.device.service.dto.PayloadDTO; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 设备缓冲服务转换类 + * 用于 DTO 到 VO 的转换 + * + * @author ruoyi + * @date 2026-01-20 + */ +public class BufferDeviceConvert +{ + public static DockDetailVO toVO(DockDetailDTO dto) + { + if (dto == null) + { + return null; + } + + DockDetailVO vo = new DockDetailVO(); + + vo.setDockId(dto.getDockId()); + vo.setDockName(dto.getDockName()); + vo.setManufacturerName(dto.getManufacturerName()); + vo.setFirmwareVersion(dto.getFirmwareVersion()); + vo.setSnNumber(dto.getSnNumber()); + vo.setBindTime(dto.getBindTime()); + vo.setMaintenanceDays(dto.getMaintenanceDays()); + vo.setDockName(dto.getDockName()); + vo.setDockStatus(dto.getDockStatus()); + vo.setBackupLongitude(dto.getBackupLongitude()); + vo.setBackupLatitude(dto.getBackupLatitude()); + vo.setRunningDuration(dto.getRunningDuration()); + vo.setMissionCount(dto.getMissionCount()); + vo.setWindSpeed(dto.getWindSpeed()); + vo.setRainfall(dto.getRainfall()); + vo.setEnvironmentTemperature(dto.getEnvironmentTemperature()); + vo.setEnvironmentHumidity(dto.getEnvironmentHumidity()); + vo.setNetworkType(dto.getNetworkType()); + vo.setNetworkDelay(dto.getNetworkDelay()); + vo.setAirConditionerStatus(dto.getAirConditionerStatus()); + vo.setCabinDoorStatus(dto.getCabinDoorStatus()); + vo.setDockRunStatus(dto.getDockRunStatus()); + vo.setInternalCamera(dto.getInternalCamera()); + vo.setExternalCamera(dto.getExternalCamera()); + vo.setChargingStatus(dto.getChargingStatus()); + vo.setCabinTemperature(dto.getCabinTemperature()); + vo.setCabinHumidity(dto.getCabinHumidity()); + vo.setElevatorPosition(dto.getElevatorPosition()); + vo.setXAxisClampStatus(dto.getXAxisClampStatus()); + vo.setYAxisClampStatus(dto.getYAxisClampStatus()); + + return vo; + } + + public static AircraftDetailVO toVO(AircraftDetailDTO dto) + { + if (dto == null) + { + return null; + } + + AircraftDetailVO vo = new AircraftDetailVO(); + + vo.setAircraftId(dto.getAircraftId()); + vo.setAircraftName(dto.getAircraftName()); + vo.setManufacturerName(dto.getManufacturerName()); + vo.setAircraftVersion(dto.getAircraftVersion()); + vo.setSnNumber(dto.getSnNumber()); + vo.setBatterySn(dto.getBatterySn()); + vo.setBindTime(dto.getBindTime()); + vo.setMaintenanceDays(dto.getMaintenanceDays()); + vo.setFlightDuration(dto.getFlightDuration()); + vo.setMissionCount(dto.getMissionCount()); + vo.setNetworkList(convertNetworkList(dto.getNetworkList())); + vo.setRtkSignal(dto.getRtkSignal()); + vo.setMaxAltitude(dto.getMaxAltitude()); + vo.setMaxDistance(dto.getMaxDistance()); + vo.setVoltage(dto.getVoltage()); + vo.setBatteryLevel(dto.getBatteryLevel()); + vo.setFlightTimeRemaining(dto.getFlightTimeRemaining()); + vo.setBatteryTemperature(dto.getBatteryTemperature()); + vo.setCycleCount(dto.getCycleCount()); + vo.setPayloadList(convertPayloadList(dto.getPayloadList())); + + return vo; + } + + private static List convertNetworkList(List networkDTOList) + { + if (networkDTOList == null) + { + return null; + } + + return networkDTOList.stream() + .map(BufferDeviceConvert::toVO) + .collect(Collectors.toList()); + } + + private static NetworkVO toVO(NetworkDTO dto) + { + if (dto == null) + { + return null; + } + + NetworkVO vo = new NetworkVO(); + vo.setNetworkType(dto.getNetworkType()); + vo.setNetworkDelay(dto.getNetworkDelay()); + + return vo; + } + + private static List convertPayloadList(List payloadDTOList) + { + if (payloadDTOList == null) + { + return null; + } + + return payloadDTOList.stream() + .map(BufferDeviceConvert::toPayloadDetailVO) + .collect(Collectors.toList()); + } + + private static PayloadDetailVO toPayloadDetailVO(PayloadDTO dto) + { + if (dto == null) + { + return null; + } + + PayloadDetailVO vo = new PayloadDetailVO(); + vo.setPayloadType(dto.getPayloadType()); + vo.setPayloadModel(dto.getPayloadType()); + vo.setFirmwareVersion(dto.getPayloadType()); + + return vo; + } +}