10.7修正分页查询

dev
YYD-YY 9 months ago
parent 934195fb9e
commit ca3ae05b60
  1. 27
      ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/equManagement/EquBaseController.java
  2. 4
      ALOps_sys_backend/alops-admin/src/main/resources/application-druid.yml
  3. 20
      ALOps_sys_backend/alops-system/src/main/java/com/alops/system/domain/dto/EquMonitorHomeDto.java
  4. 15
      ALOps_sys_backend/alops-system/src/main/java/com/alops/system/mapper/EquBaseMapper.java
  5. 7
      ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/IEquBaseService.java
  6. 11
      ALOps_sys_backend/alops-system/src/main/java/com/alops/system/service/impl/EquBaseServiceImpl.java
  7. 67
      ALOps_sys_backend/alops-system/src/main/resources/mapper/system/EquBaseMapper.xml

@ -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<String> ids) {
List<MonitorListDto> 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<MonitorListDto> list = equBaseService.selectEquMonitorListPaged();
return getDataTable(list); // 自动封装分页结果
}
/**
* 首页展示查询每台设备的最新监测信息
*/
@PreAuthorize("@ss.hasPermi('device:files:query')")
@GetMapping("/monitorById")
@ApiOperation("首页展示:查询每台设备的最新监测信息")
public TableDataInfo getLatestEquMonitorList() {
startPage(); // 启用分页(如果首页不分页可删除)
List<EquMonitorHomeDto> list = equBaseService.selectLatestEquMonitorList();
return getDataTable(list);
}
/**

@ -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:
# 从数据源开关/默认关闭

@ -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; // 采集时间
}

@ -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<Map<String, Object>> selectEquMonitorByIdToList(EquBaseQueryDto queryDto);
List<MonitorListDto> selectEquMonitorListByIds(List<String> ids);
List<MonitorListDto> selectEquMonitorListPaged();
/**
* 查询每台设备的最新监测信息首页展示用
*/
List<EquMonitorHomeDto> selectLatestEquMonitorList();
/**分类统计界面信息 -YY**/
List<MonitorStatisticDto> selectEquStatisticByType();

@ -60,7 +60,12 @@ public interface IEquBaseService
*/
public List<queryEquBaseVO> selectEquBaseList(EquBaseQueryDto equBase);
public List<MonitorListDto> selectEquMonitorListByIds(List<String> ids);
public List<MonitorListDto> selectEquMonitorListPaged();
/**
* 查询每台设备的最新监测信息首页展示用
*/
List<EquMonitorHomeDto> selectLatestEquMonitorList();
/**分类统计信息**/
List<MonitorStatisticDto> selectEquStatisticByType();

@ -134,8 +134,15 @@ public class EquBaseServiceImpl implements IEquBaseService
* 查询多台设备的最新监测信息
**/
@Override
public List<MonitorListDto> selectEquMonitorListByIds(List<String> ids) {
return equBaseMapper.selectEquMonitorListByIds(ids);
public List<MonitorListDto> selectEquMonitorListPaged() {
return equBaseMapper.selectEquMonitorListPaged();
}
/**
* 查询多台设备的最新监测信息首页展示
**/
@Override
public List<EquMonitorHomeDto> selectLatestEquMonitorList() {
return equBaseMapper.selectLatestEquMonitorList();
}

@ -152,13 +152,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<select id="selectEquMonitorListByIds" parameterType="list" resultType="MonitorListDto">
<select id="selectEquMonitorListPaged" resultType="MonitorListDto">
SELECT
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,
t.name AS equType,
m.name AS manufacture,
b.version,
b.device_level AS deviceLevel,
b.location,
@ -168,23 +185,49 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
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
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_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
<foreach collection="list" item="id" open="(" separator="," close=")">
#{id}
</foreach>
AND g.cpu_utilization is not null
LEFT JOIN equ_gather g ON b.id = g.equ_id
) t
WHERE t.rn = 1
ORDER BY t.id
</select>
ORDER BY g.gather_time desc limit 1
<select id="selectLatestEquMonitorList" resultType="com.alops.system.domain.dto.EquMonitorHomeDto">
SELECT
t.name,
t.location,
t.cpuUtilization,
t.memoryUtilization,
t.temperature,
t.health,
t.contWorkPeriod,
t.gatherTime
FROM (
SELECT
b.name,
b.location,
g.cpu_utilization AS cpuUtilization,
g.memory_utilization AS memoryUtilization,
g.temperature,
g.health,
g.cont_work_period AS contWorkPeriod,
g.gather_time AS gatherTime,
ROW_NUMBER() OVER (PARTITION BY b.id ORDER BY g.gather_time DESC) AS rn
FROM equ_base b
LEFT JOIN equ_gather g ON b.id = g.equ_id
WHERE g.cpu_utilization IS NOT NULL
) t
WHERE t.rn = 1
ORDER BY t.name
</select>
<select id="selectEquMonitorById" parameterType="string" resultType="MonitorLastDto">
SELECT
g.cont_work_period AS contWorkPeriod,

Loading…
Cancel
Save