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; } }