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