diff --git a/src/main/java/com/ruoyi/device/controller/StaticsController.java b/src/main/java/com/ruoyi/device/controller/StaticsController.java index c39cfae..4ee0f43 100644 --- a/src/main/java/com/ruoyi/device/controller/StaticsController.java +++ b/src/main/java/com/ruoyi/device/controller/StaticsController.java @@ -15,6 +15,8 @@ import com.ruoyi.device.service.dto.AircraftDetailDTO; import com.ruoyi.device.service.dto.DockDTO; import com.ruoyi.device.service.dto.DockDetailDTO; import com.ruoyi.device.service.dto.PayloadDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -34,6 +36,8 @@ import java.util.stream.Collectors; @RequestMapping("/statistics") public class StaticsController extends BaseController { + private static final Logger log = LoggerFactory.getLogger(StaticsController.class); + @Autowired private IDockService dockService; @@ -96,11 +100,13 @@ public class StaticsController extends BaseController } private StatisticsVO buildDjiStatisticsVO (){ - StatisticsVO vo = new StatisticsVO(); + log.info("========== 开始统计DJI设备信息 =========="); + StatisticsVO vo = new StatisticsVO(); // 获取所有机场 List docks = dockService.selectDockList(new DockDTO()); vo.setDockCount(docks != null ? docks.size() : 0); + log.info("机场总数: {}", vo.getDockCount()); // 批量获取机场详情 - 优化:从N次查询减少到1次批量查询 Map dockDetailsMap = null; @@ -118,18 +124,24 @@ public class StaticsController extends BaseController int offlineCount = 0; if (docks != null && dockDetailsMap != null) { + log.info("---------- 开始统计机场状态 ----------"); for (DockDTO dock : docks) { DockDetailDTO dockDetail = dockDetailsMap.get(dock.getDockId()); if (dockDetail != null && dockDetail.getDockStatus() != null) { String status = dockDetail.getDockStatus(); - if (DockStatusEnum.IDLE.getCode().equals(status)) { + log.info("机场[ID:{}, Name:{}] 状态: {}", dock.getDockId(), dock.getDockName(), status); + if (DockStatusEnum.IDLE.getCode().equalsIgnoreCase(status)) { idleCount++; - } else if (DockStatusEnum.WORKING.getCode().equals(status)) { + log.debug(" -> 匹配到IDLE状态"); + } else if (DockStatusEnum.WORKING.getCode().equalsIgnoreCase(status)) { workingCount++; - } else if (DockStatusEnum.Debugging.getCode().equals(status)) { + log.info(" -> 匹配到WORKING状态 (任务中)"); + } else if (DockStatusEnum.Debugging.getCode().equalsIgnoreCase(status)) { debuggingCount++; + log.debug(" -> 匹配到Debugging状态"); } else { offlineCount++; + log.debug(" -> 其他状态,归类为离线"); } } } @@ -140,9 +152,12 @@ public class StaticsController extends BaseController vo.setDebuggingDockCount(debuggingCount); vo.setOfflineDockCount(offlineCount); + log.info("机场状态统计结果 -> 空闲:{}, 任务中:{}, 调试:{}, 离线:{}", idleCount, workingCount, debuggingCount, offlineCount); + // 获取所有无人机 List aircrafts = aircraftService.selectAircraftList(new AircraftDTO()); vo.setAircraftCount(aircrafts != null ? aircrafts.size() : 0); + log.info("无人机总数: {}", vo.getAircraftCount()); // 批量获取无人机详情 - 优化:从N次查询减少到1次批量查询 Map aircraftDetailsMap = null; @@ -161,22 +176,30 @@ public class StaticsController extends BaseController int offlineAircraftCount = 0; if (aircrafts != null && aircraftDetailsMap != null) { + log.info("---------- 开始统计无人机状态 ----------"); for (AircraftDTO aircraft : aircrafts) { AircraftDetailDTO aircraftDetail = aircraftDetailsMap.get(aircraft.getAircraftId()); if (aircraftDetail != null && aircraftDetail.getAircraftStatus() != null) { String status = aircraftDetail.getAircraftStatus(); - if (AircraftStatusEnum.POWER_ON_IN_CABIN.getCode().equals(status)) { + log.info("无人机[ID:{}, Name:{}] 状态: {}", aircraft.getAircraftId(), aircraft.getAircraftName(), status); + if (AircraftStatusEnum.POWER_ON_IN_CABIN.getCode().equalsIgnoreCase(status)) { powerOnInCabinCount++; - } else if (AircraftStatusEnum.POWER_OFF_IN_CABIN.getCode().equals(status)) { + log.debug(" -> 匹配到舱内开机状态"); + } else if (AircraftStatusEnum.POWER_OFF_IN_CABIN.getCode().equalsIgnoreCase(status)) { powerOffInCabinCount++; - } else if (AircraftStatusEnum.IN_MISSION.getCode().equals(status)) { + log.debug(" -> 匹配到舱内关机状态"); + } else if (AircraftStatusEnum.IN_MISSION.getCode().equalsIgnoreCase(status)) { inMissionCount++; - } else if (AircraftStatusEnum.DEBUGGING.getCode().equals(status)) { + log.info(" -> 匹配到IN_MISSION状态 (任务中)"); + } else if (AircraftStatusEnum.DEBUGGING.getCode().equalsIgnoreCase(status)) { debuggingAircraftCount++; - } else if (AircraftStatusEnum.OFFLINE.getCode().equals(status)) { + log.debug(" -> 匹配到调试状态"); + } else if (AircraftStatusEnum.OFFLINE.getCode().equalsIgnoreCase(status)) { offlineAircraftCount++; + log.debug(" -> 匹配到离线状态"); } else { offlineAircraftCount++; + log.debug(" -> 其他状态,归类为离线"); } } } @@ -188,6 +211,9 @@ public class StaticsController extends BaseController vo.setDebuggingAircraftCount(debuggingAircraftCount); vo.setOfflineAircraftCount(offlineAircraftCount); + log.info("无人机状态统计结果 -> 舱内开机:{}, 舱内关机:{}, 任务中:{}, 调试:{}, 离线:{}", + powerOnInCabinCount, powerOffInCabinCount, inMissionCount, debuggingAircraftCount, offlineAircraftCount); + // 获取所有挂载 List payloads = payloadService.selectPayloadList(new PayloadDTO()); vo.setPayloadCount(payloads != null ? payloads.size() : 0); @@ -195,6 +221,10 @@ public class StaticsController extends BaseController // 统计离线挂载数量(暂时设置为0,因为挂载状态需要从实时数据获取) vo.setOfflinePayloadCount(0); + log.info("========== DJI设备统计完成 =========="); + log.info("最终统计结果: 机场总数={}, 任务中机场={}, 无人机总数={}, 任务中无人机={}", + vo.getDockCount(), vo.getWorkingDockCount(), vo.getAircraftCount(), vo.getInMissionCount()); + return vo; } } \ No newline at end of file