修改获取机场状态的代码

This commit is contained in:
孙小云 2026-01-21 15:47:50 +08:00
parent ac9a8944cb
commit cb1c303a6c
1 changed files with 30 additions and 1 deletions

View File

@ -9,9 +9,11 @@ import com.ruoyi.device.domain.model.Device;
import com.ruoyi.device.domain.model.Dock;
import com.ruoyi.device.domain.model.thingsboard.AttributeMap;
import com.ruoyi.device.domain.model.thingsboard.TelemetryMap;
import com.ruoyi.device.domain.model.thingsboard.constants.DeviceAttributes;
import com.ruoyi.device.service.api.IBufferDeviceService;
import com.ruoyi.device.service.dto.AircraftDetailDTO;
import com.ruoyi.device.service.dto.DockDetailDTO;
import com.ruoyi.device.service.enums.DockStatusEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -83,11 +85,38 @@ public class BufferDeviceImpl implements IBufferDeviceService
AttributeMap attributeMap = thingsBoardDomain.getPredefinedDeviceAttributes(deviceIotId);
TelemetryMap telemetryMap = thingsBoardDomain.getPredefinedDeviceTelemetry(deviceIotId);
// 根据 MODE_CODE 设置机场状态
// MODE_CODE 定义: {"0":"空闲中","1":"现场调试","2":"远程调试","3":"固件升级中","4":"作业中","5":"待标定"}
attributeMap.get(DeviceAttributes.MODE_CODE).ifPresent(modeCode -> {
String dockStatus = mapModeCodeToDockStatus(modeCode);
dto.setDockStatus(dockStatus);
});
return dto;
}
/**
* MODE_CODE 映射到机场状态
* @param modeCode 模式代码
* @return 机场状态字符串
*/
private String mapModeCodeToDockStatus(Integer modeCode) {
switch (modeCode) {
case 0:
return DockStatusEnum.IDLE.getCode();
case 1:
case 2:
return DockStatusEnum.Debugging.getCode();
case 3:
return DockStatusEnum.FIRMWARE_UPGRADING.getCode();
case 4:
return DockStatusEnum.WORKING.getCode();
case 5:
default:
return DockStatusEnum.UNKNOWN.getCode();
}
}
private AircraftDetailDTO getChangeAbleAirDetailDTO(String deviceIotId)
{