From 676768eb780debade859b7fb4e6d77533be7e41d Mon Sep 17 00:00:00 2001 From: YYD-YY <2962062657@qq.com> Date: Mon, 6 Oct 2025 15:50:46 +0800 Subject: [PATCH] =?UTF-8?q?10.6=E4=BF=AE=E6=94=B9=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../equManagement/EquBaseController.java | 13 +++++++- .../domain/dto/MonitorStatisticDto.java | 5 +++ .../service/impl/EquBaseServiceImpl.java | 31 ++++++++++++++++++- 3 files changed, 47 insertions(+), 2 deletions(-) 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; + } /**