diff --git a/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/equManagement/EquBaseController.java b/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/equManagement/EquBaseController.java index aced313e..5f3d6fbd 100644 --- a/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/equManagement/EquBaseController.java +++ b/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/equManagement/EquBaseController.java @@ -1,7 +1,9 @@ package com.alops.web.controller.equManagement; import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; @@ -105,9 +107,18 @@ public class EquBaseController extends BaseController @ApiOperation("按设备类型分类统计设备信息") public AjaxResult listMonitorInfoByType() { List list = equBaseService.selectEquStatisticByType(); - return AjaxResult.success("查询成功", list); + // 获取总设备数 + int totalCount = 0; + if (list != null) { + totalCount = list.stream().mapToInt(MonitorStatisticDto::getCount).sum(); + } + Map result = new HashMap<>(); + result.put("totalCount", totalCount); + result.put("list", list); + return AjaxResult.success("查询成功", result); } + /** * 获取设备基本信息详细信息 */ diff --git a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/domain/dto/MonitorStatisticDto.java b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/domain/dto/MonitorStatisticDto.java index cc27f6f1..6f9fb488 100644 --- a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/domain/dto/MonitorStatisticDto.java +++ b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/domain/dto/MonitorStatisticDto.java @@ -11,6 +11,11 @@ public class MonitorStatisticDto { private String equTypeName; // 设备类型名称 private List devices; // 属于该类型的设备列表 + // 新增统计数量字段 + private Integer count; + // 每类型占总设备数量的百分比 + private Double percentage; + @Data public static class DeviceSimpleInfo { private String id; diff --git a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/impl/EquBaseServiceImpl.java b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/impl/EquBaseServiceImpl.java index 0bf77d1b..8a046847 100644 --- a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/impl/EquBaseServiceImpl.java +++ b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/impl/EquBaseServiceImpl.java @@ -141,11 +141,40 @@ public class EquBaseServiceImpl implements IEquBaseService /** * 设备类型分类统计信息 **/ + @Override public List selectEquStatisticByType() { - return equBaseMapper.selectEquStatisticByType(); + List list = equBaseMapper.selectEquStatisticByType(); + if (list == null || list.isEmpty()) { + return list; + } + + // 计算每种类型的数量 + int totalCount = 0; + for (MonitorStatisticDto dto : list) { + int count = (dto.getDevices() != null) ? dto.getDevices().size() : 0; + dto.setCount(count); + totalCount += count; + } + + // 计算百分比 + for (MonitorStatisticDto dto : list) { + if (totalCount > 0) { + double percent = (dto.getCount() * 100.0) / totalCount; + dto.setPercentage(Math.round(percent * 100.0) / 100.0); // 保留两位小数 + } else { + dto.setPercentage(0.0); + } + } + this.totalDeviceCount = totalCount; // 注意:你可以在 service 中定义字段存储 + return list; } + // 在类中增加: + private int totalDeviceCount; + public int getTotalDeviceCount() { + return totalDeviceCount; + } /**