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 f4ba3e18..c6dca97c 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 @@ -16,6 +16,7 @@ import com.alops.common.enums.BusinessType; import com.alops.common.utils.poi.ExcelUtil; import com.alops.system.domain.EquBase; import com.alops.system.domain.dto.EquBaseQueryDto; +import com.alops.system.domain.dto.EquMonitorHomeDto; import com.alops.system.domain.dto.MonitorListDto; import com.alops.system.domain.dto.MonitorStatisticDto; import com.alops.system.domain.vo.EquMonitorVO; @@ -64,17 +65,25 @@ public class EquBaseController extends BaseController * 查询多台设备的最新监测信息 **/ @PreAuthorize("@ss.hasPermi('device:files:query')") - @GetMapping("/monitorListById") - @ApiOperation("根据多个设备ID查询多台设备的最新监测信息") - public AjaxResult getMonitorListByIds(@RequestParam List ids) { - List monitors = equBaseService.selectEquMonitorListByIds(ids); - if (monitors != null && !monitors.isEmpty()) { - return AjaxResult.success("查询成功", monitors); - } else { - return AjaxResult.error("未找到相关设备或监测信息"); - } + @GetMapping("/monitorpage") + @ApiOperation("分页查询多台设备的最新监测信息") + public TableDataInfo getMonitorList() { + startPage(); // 无参调用,自动获取 pageNum/pageSize + List list = equBaseService.selectEquMonitorListPaged(); + return getDataTable(list); // 自动封装分页结果 } + /** + * 首页展示:查询每台设备的最新监测信息 + */ + @PreAuthorize("@ss.hasPermi('device:files:query')") + @GetMapping("/monitorById") + @ApiOperation("首页展示:查询每台设备的最新监测信息") + public TableDataInfo getLatestEquMonitorList() { + startPage(); // 启用分页(如果首页不分页可删除) + List list = equBaseService.selectLatestEquMonitorList(); + return getDataTable(list); + } /** diff --git a/ALOps_sys_backend/alops-admin/src/main/resources/application-druid.yml b/ALOps_sys_backend/alops-admin/src/main/resources/application-druid.yml index 5b4337af..16e1f2f9 100644 --- a/ALOps_sys_backend/alops-admin/src/main/resources/application-druid.yml +++ b/ALOps_sys_backend/alops-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://localhost:3306/aiops_sys?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://localhost:3306/alops_sys?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: 1234 + password: 200515 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/domain/dto/EquMonitorHomeDto.java b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/domain/dto/EquMonitorHomeDto.java new file mode 100644 index 00000000..23a3355b --- /dev/null +++ b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/domain/dto/EquMonitorHomeDto.java @@ -0,0 +1,20 @@ +package com.alops.system.domain.dto; + +import lombok.Data; + +import java.util.Date; + +/** + * 首页展示:设备监测简要信息 + */ +@Data +public class EquMonitorHomeDto { + private String name; // 设备名称 + private String location; // 设备位置 + private Float cpuUtilization; // CPU 使用率 + private Float memoryUtilization; // 内存使用率 + private Float temperature; // 温度 + private String health; // 健康度 + private String contWorkPeriod; // 持续运行时长 + private Date gatherTime; // 采集时间 +} diff --git a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/mapper/EquBaseMapper.java b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/mapper/EquBaseMapper.java index aeaca38b..028b2c45 100644 --- a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/mapper/EquBaseMapper.java +++ b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/mapper/EquBaseMapper.java @@ -4,19 +4,13 @@ import java.util.List; import java.util.Map; import com.alops.system.domain.EquBase; -import com.alops.system.domain.dto.EquBaseQueryDto; -import com.alops.system.domain.dto.MonitorLastDto; -import com.alops.system.domain.dto.MonitorListDto; -import com.alops.system.domain.dto.MonitorStatisticDto; +import com.alops.system.domain.dto.*; import com.alops.system.domain.vo.imageVo; import com.alops.system.domain.vo.queryEquBaseVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Update; import org.springframework.data.repository.query.Param; -import java.util.List; -import java.util.Map; - /** * 设备基本信息Mapper接口 @@ -63,7 +57,12 @@ public interface EquBaseMapper MonitorLastDto selectEquMonitorById(String id); List> selectEquMonitorByIdToList(EquBaseQueryDto queryDto); - List selectEquMonitorListByIds(List ids); + List selectEquMonitorListPaged(); + + /** + * 查询每台设备的最新监测信息(首页展示用) + */ + List selectLatestEquMonitorList(); /**分类统计界面信息 -YY**/ List selectEquStatisticByType(); diff --git a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/IEquBaseService.java b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/IEquBaseService.java index f269d6c1..4ee9e582 100644 --- a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/IEquBaseService.java +++ b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/IEquBaseService.java @@ -60,7 +60,12 @@ public interface IEquBaseService */ public List selectEquBaseList(EquBaseQueryDto equBase); - public List selectEquMonitorListByIds(List ids); + public List selectEquMonitorListPaged(); + + /** + * 查询每台设备的最新监测信息(首页展示用) + */ + List selectLatestEquMonitorList(); /**分类统计信息**/ List selectEquStatisticByType(); 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 021782de..1de921ea 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 @@ -134,8 +134,15 @@ public class EquBaseServiceImpl implements IEquBaseService * 查询多台设备的最新监测信息 **/ @Override - public List selectEquMonitorListByIds(List ids) { - return equBaseMapper.selectEquMonitorListByIds(ids); + public List selectEquMonitorListPaged() { + return equBaseMapper.selectEquMonitorListPaged(); + } + /** + * 查询多台设备的最新监测信息首页展示 + **/ + @Override + public List selectLatestEquMonitorList() { + return equBaseMapper.selectLatestEquMonitorList(); } diff --git a/ALOps_sys_backend/alops-system/src/main/resources/mapper/system/EquBaseMapper.xml b/ALOps_sys_backend/alops-system/src/main/resources/mapper/system/EquBaseMapper.xml index 96c9ff50..8b7f5744 100644 --- a/ALOps_sys_backend/alops-system/src/main/resources/mapper/system/EquBaseMapper.xml +++ b/ALOps_sys_backend/alops-system/src/main/resources/mapper/system/EquBaseMapper.xml @@ -152,39 +152,82 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT - b.id, - b.name, - b.ip, - t.name as equType, - m.name as manufacture, - b.version, - b.device_level AS deviceLevel, - b.location, - b.status, - g.cpu_utilization AS cpuUtilization, - g.health, - g.fan_speed AS fanSpeed, - g.cont_work_period AS contWorkPeriod, - b.failure_frequency AS failureFrequency, - -- 新增列:统计未处理告警数量 - (SELECT COUNT(1) - FROM alert_message a - WHERE a.equ_id = b.id AND a.status = 'HANDLED') AS unhandledAlertCount - FROM equ_base b - LEFT JOIN equ_gather g ON b.id = g.equ_id - LEFT JOIN equ_type t ON b.equ_type = t.id - LEFT JOIN equ_manu m ON b.manufacture = m.id - WHERE b.id IN - - #{id} - - AND g.cpu_utilization is not null + t.id, + t.name, + t.ip, + t.equType, + t.manufacture, + t.version, + t.deviceLevel, + t.location, + t.status, + t.cpuUtilization, + t.health, + t.fanSpeed, + t.contWorkPeriod, + t.failureFrequency, + t.unhandledAlertCount + FROM ( + SELECT + b.id, + b.name, + b.ip, + t.name AS equType, + m.name AS manufacture, + b.version, + b.device_level AS deviceLevel, + b.location, + b.status, + g.cpu_utilization AS cpuUtilization, + g.health, + g.fan_speed AS fanSpeed, + g.cont_work_period AS contWorkPeriod, + b.failure_frequency AS failureFrequency, + (SELECT COUNT(1) + FROM alert_message a + WHERE a.equ_id = b.id AND a.status = 'HANDLED') AS unhandledAlertCount, + ROW_NUMBER() OVER (PARTITION BY b.id ORDER BY g.gather_time DESC) AS rn + FROM equ_base b + LEFT JOIN equ_type t ON b.equ_type = t.id + LEFT JOIN equ_manu m ON b.manufacture = m.id + LEFT JOIN equ_gather g ON b.id = g.equ_id + ) t + WHERE t.rn = 1 + ORDER BY t.id + - ORDER BY g.gather_time desc limit 1 + +