diff --git a/src/main/java/org/springblade/modules/monitor/controller/BusinessMonitorController.java b/src/main/java/org/springblade/modules/monitor/controller/BusinessMonitorController.java index 4f948ae..57603d9 100644 --- a/src/main/java/org/springblade/modules/monitor/controller/BusinessMonitorController.java +++ b/src/main/java/org/springblade/modules/monitor/controller/BusinessMonitorController.java @@ -55,16 +55,15 @@ public class BusinessMonitorController { * 查询设备列表 * * @param classCode - * @param warnStatus * @param equipCode * @return */ @GetMapping("/getEquipList") public R getEquipList(Integer currentPage, Integer pageSize, @RequestParam("classCode") String classCode, - String warnStatus, - String equipCode) { - return R.data(businessMonitorService.getEquipList(currentPage, pageSize, classCode, warnStatus, equipCode)); + String equipCode, + String equipName) { + return R.data(businessMonitorService.getEquipList(currentPage, pageSize, classCode, equipCode, equipName)); } /** @@ -74,8 +73,8 @@ public class BusinessMonitorController { * @return */ @GetMapping("/getWarnMsg") - public R getWarnMsg(@RequestParam("equipCode") String equipCode) { - return R.data(businessMonitorService.getWarnMsg(equipCode)); + public R getWarnMsg(@RequestParam("equipCode") String equipCode,@RequestParam("equipName") String equipName) { + return R.data(businessMonitorService.getWarnMsg(equipCode,equipName)); } /** @@ -85,7 +84,7 @@ public class BusinessMonitorController { * @return */ @GetMapping("/getWarnHisList") - public R getWarnHisList(Integer currentPage, Integer pageSize, @RequestParam("equipCode") String equipCode) { - return R.data(businessMonitorService.getWarnHisList(currentPage, pageSize, equipCode)); + public R getWarnHisList(Integer currentPage, Integer pageSize, @RequestParam("equipCode") String equipCode,@RequestParam("equipName") String equipName) { + return R.data(businessMonitorService.getWarnHisList(currentPage, pageSize, equipCode,equipName)); } } diff --git a/src/main/java/org/springblade/modules/monitor/entity/DataWarn.java b/src/main/java/org/springblade/modules/monitor/entity/DataWarn.java new file mode 100644 index 0000000..daadf0d --- /dev/null +++ b/src/main/java/org/springblade/modules/monitor/entity/DataWarn.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.modules.monitor.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 设备报警记录表实体类 + * + * @author BladeX + * @since 2022-01-13 + */ +@Data +@TableName("t_data_warn") +@ApiModel(value = "DataWarn对象", description = "设备报警记录表") +public class DataWarn implements Serializable { + + private static final long serialVersionUID = 1L; + + public DataWarn() { + } + + + private Long id; + /** + * 设备code + */ + @ApiModelProperty(value = "设备code") + private String equipCode; + /** + * 设备名称 + */ + @ApiModelProperty(value = "设备名称") + private String equipName; + /** + * 设备种类 + */ + @ApiModelProperty(value = "设备种类") + private String classCode; + /** + * 位置 + */ + @ApiModelProperty(value = "位置") + private String location; + /** + * 设备名称 + */ + @ApiModelProperty(value = "区域") + private String area; + + /** + * 报警类型,报警类型,0:无报警,1:事件报警,2:设备报警 + */ + @ApiModelProperty(value = "报警类型,报警类型,0:无报警,1:事件报警,2:设备报警") + private Integer warnType; + /** + * 报警标识(系统中自定义的值) + */ + @ApiModelProperty(value = "报警标识(系统中自定义的值)") + private Integer warnCode; + /** + * 报警值(设备实际的报警值) + */ + @ApiModelProperty(value = "报警值(设备实际的报警值)") + private String warnValue; + /** + * 报警内容 + */ + @ApiModelProperty(value = "报警内容") + private String warnContent; + /** + * 报警时间 + */ + @ApiModelProperty(value = "报警时间") + private Date warnDate; + /** + * 恢复类型, 0自动, 1手动 + */ + @ApiModelProperty(value = "恢复类型, 0自动, 1手动") + private Integer recoveryType; + /** + * 恢复人 + */ + @ApiModelProperty(value = "恢复人") + private String recoveryPerson; + /** + * 恢复时间 + */ + @ApiModelProperty(value = "恢复时间") + private Date recoveryDate; + /** + * 状态:1:报警 2:恢复 + */ + @ApiModelProperty(value = "状态") + private Integer status; + /** + * 确认状态:0:未确认, 1:已确认 + */ + @ApiModelProperty(value = "确认状态") + private Integer confirmStatus; + /** + * 通知人 + */ + @JsonIgnore + @ApiModelProperty(value = "通知人") + private Long notifier; +} diff --git a/src/main/java/org/springblade/modules/monitor/mapper/DataWarnMapper.java b/src/main/java/org/springblade/modules/monitor/mapper/DataWarnMapper.java new file mode 100644 index 0000000..f2905ab --- /dev/null +++ b/src/main/java/org/springblade/modules/monitor/mapper/DataWarnMapper.java @@ -0,0 +1,18 @@ + +package org.springblade.modules.monitor.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.monitor.entity.DataWarn; + +import java.util.List; + +/** + * 设备报警记录表 Mapper 接口 + * + * @author + * @since 2022-01-07 + */ +public interface DataWarnMapper extends BaseMapper { + + +} diff --git a/src/main/java/org/springblade/modules/monitor/mapper/DataWarnMapper.xml b/src/main/java/org/springblade/modules/monitor/mapper/DataWarnMapper.xml new file mode 100644 index 0000000..fb91ca0 --- /dev/null +++ b/src/main/java/org/springblade/modules/monitor/mapper/DataWarnMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.java b/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.java index d42b816..02e26b0 100644 --- a/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.java +++ b/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.java @@ -27,13 +27,12 @@ public interface MonitorMapper { * 查询设备列表 * * @param classCode - * @param warnStatus * @param equipCode * @return */ - List> getEquipList(@Param("offset") int offset, @Param("size") int size, @Param("classCode") String classCode, @Param("warnStatus") String warnStatus, @Param("equipCode") String equipCode); + List> getEquipList(@Param("offset") int offset, @Param("size") int size, @Param("classCode") String classCode,@Param("equipCode") String equipCode, @Param("equipName") String equipName); - int getEquipListTotal(@Param("classCode") String classCode, @Param("warnStatus") String warnStatus, @Param("equipCode") String equipCode); + int getEquipListTotal(@Param("classCode") String classCode, @Param("equipCode") String equipCode); /** * 查询设备当前报警信息 @@ -41,7 +40,7 @@ public interface MonitorMapper { * @param equipCode * @return */ - List> getWarnMsg(@Param("equipCode") String equipCode); + List> getWarnMsg(@Param("equipCode") String equipCode,@Param("equipName") String equipName); /** * 查询设备报警记录 @@ -49,7 +48,7 @@ public interface MonitorMapper { * @param equipCode * @return */ - List> getWarnHisList(@Param("offset") int offset, @Param("size") int size, @Param("equipCode") String equipCode); + List> getWarnHisList(@Param("offset") int offset, @Param("size") int size, @Param("equipCode") String equipCode,@Param("equipName") String equipName); - int getWarnHisListTotal(@Param("equipCode") String equipCode); + int getWarnHisListTotal(@Param("equipCode") String equipCode,@Param("equipName") String equipName); } diff --git a/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.xml b/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.xml index 1b5732d..f8f5e8d 100644 --- a/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.xml +++ b/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.xml @@ -16,46 +16,30 @@ @@ -68,8 +52,13 @@ warn_content as warnContent, DATE_FORMAT(warn_date, '%Y-%m-%d %H:%i:%s') AS warnDate from t_data_warn - where equip_code = #{equipCode} - and status = 1 + where status = 1 + + and equip_name = #{equipName} + + + and equip_code = #{equipCode} + order by warn_date desc limit 1 @@ -86,8 +75,13 @@ DATE_FORMAT(recovery_date, '%Y-%m-%d %H:%i:%s') AS recoveryDate, status as status from t_data_warn - where equip_code = #{equipCode} - and status = 1 + where status = 1 + + and equip_name = #{equipName} + + + and equip_code = #{equipCode} + order by warn_date desc limit #{offset}, #{size} @@ -95,7 +89,12 @@ diff --git a/src/main/java/org/springblade/modules/monitor/service/IBusinessMonitorService.java b/src/main/java/org/springblade/modules/monitor/service/IBusinessMonitorService.java index 950f040..b1516fe 100644 --- a/src/main/java/org/springblade/modules/monitor/service/IBusinessMonitorService.java +++ b/src/main/java/org/springblade/modules/monitor/service/IBusinessMonitorService.java @@ -27,11 +27,10 @@ public interface IBusinessMonitorService { * @param currentPage * @param pageSize * @param classCode - * @param warnStatus * @param equipCode * @return */ - IPage getEquipList(Integer currentPage, Integer pageSize, String classCode, String warnStatus, String equipCode); + IPage getEquipList(Integer currentPage, Integer pageSize, String classCode, String equipCode,String equipName); /** * 查询设备当前报警信息 @@ -39,7 +38,7 @@ public interface IBusinessMonitorService { * @param equipCode * @return */ - List> getWarnMsg(String equipCode); + List> getWarnMsg(String equipCode,String equipName); /** * 查询设备报警记录 @@ -49,5 +48,5 @@ public interface IBusinessMonitorService { * @param equipCode * @return */ - IPage getWarnHisList(Integer currentPage, Integer pageSize, String equipCode); + IPage getWarnHisList(Integer currentPage, Integer pageSize, String equipCode,String equipName); } diff --git a/src/main/java/org/springblade/modules/monitor/service/IDataWarnService.java b/src/main/java/org/springblade/modules/monitor/service/IDataWarnService.java new file mode 100644 index 0000000..7f58b2a --- /dev/null +++ b/src/main/java/org/springblade/modules/monitor/service/IDataWarnService.java @@ -0,0 +1,19 @@ + +package org.springblade.modules.monitor.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.monitor.entity.DataWarn; + +import java.util.List; + +/** + * 设备报警记录表 服务类 + * + * @author + * @since 2022-01-07 + */ +public interface IDataWarnService extends IService { + + + +} diff --git a/src/main/java/org/springblade/modules/monitor/service/impl/BusinessMonitorServiceImpl.java b/src/main/java/org/springblade/modules/monitor/service/impl/BusinessMonitorServiceImpl.java index 5dd913e..eeb0071 100644 --- a/src/main/java/org/springblade/modules/monitor/service/impl/BusinessMonitorServiceImpl.java +++ b/src/main/java/org/springblade/modules/monitor/service/impl/BusinessMonitorServiceImpl.java @@ -27,7 +27,7 @@ public class BusinessMonitorServiceImpl implements IBusinessMonitorService { } @Override - public IPage getEquipList(Integer currentPage, Integer pageSize, String classCode, String warnStatus, String equipCode) { + public IPage getEquipList(Integer currentPage, Integer pageSize, String classCode, String equipCode, String equipName) { // 初始化分页参数 if (currentPage == null || currentPage == 0) { currentPage = 1; @@ -37,20 +37,20 @@ public class BusinessMonitorServiceImpl implements IBusinessMonitorService { } IPage page = new Page(); - page.setRecords(monitorMapper.getEquipList((currentPage -1) * pageSize, pageSize, classCode, warnStatus, equipCode)); - page.setTotal(monitorMapper.getEquipListTotal(classCode, warnStatus, equipCode)); + page.setRecords(monitorMapper.getEquipList((currentPage -1) * pageSize, pageSize, classCode, equipCode,equipName)); + page.setTotal(monitorMapper.getEquipListTotal(classCode, equipCode)); page.setCurrent(currentPage); page.setSize(pageSize); return page; } @Override - public List> getWarnMsg(String equipCode) { - return monitorMapper.getWarnMsg(equipCode); + public List> getWarnMsg(String equipCode,String equipName) { + return monitorMapper.getWarnMsg(equipCode,equipName); } @Override - public IPage getWarnHisList(Integer currentPage, Integer pageSize, String equipCode) { + public IPage getWarnHisList(Integer currentPage, Integer pageSize, String equipCode,String equipName) { // 初始化分页参数 if (currentPage == null || currentPage == 0) { currentPage = 1; @@ -60,8 +60,8 @@ public class BusinessMonitorServiceImpl implements IBusinessMonitorService { } IPage page = new Page(); - page.setRecords(monitorMapper.getWarnHisList((currentPage -1) * pageSize, pageSize, equipCode)); - page.setTotal(monitorMapper.getWarnHisListTotal(equipCode)); + page.setRecords(monitorMapper.getWarnHisList((currentPage -1) * pageSize, pageSize, equipCode,equipName)); + page.setTotal(monitorMapper.getWarnHisListTotal(equipCode,equipName)); page.setCurrent(currentPage); page.setSize(pageSize); return page; diff --git a/src/main/java/org/springblade/modules/monitor/service/impl/ConfigMonitorServiceImpl.java b/src/main/java/org/springblade/modules/monitor/service/impl/ConfigMonitorServiceImpl.java index 2ae82ea..6cdff88 100644 --- a/src/main/java/org/springblade/modules/monitor/service/impl/ConfigMonitorServiceImpl.java +++ b/src/main/java/org/springblade/modules/monitor/service/impl/ConfigMonitorServiceImpl.java @@ -30,6 +30,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateUtils; +import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.MonitorConstant; import org.springblade.common.utils.HttpUtil; import org.springblade.common.utils.IpUtil; @@ -37,7 +38,9 @@ import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.utils.StringUtil; import org.springblade.modules.monitor.entity.ConfigMonitor; +import org.springblade.modules.monitor.entity.DataWarn; import org.springblade.modules.monitor.mapper.ConfigMonitorMapper; +import org.springblade.modules.monitor.mapper.DataWarnMapper; import org.springblade.modules.monitor.service.IConfigMonitorService; import org.springblade.modules.monitor.vo.ConfigMonitorVO; import org.springblade.modules.system.entity.Dict; @@ -67,6 +70,8 @@ public class ConfigMonitorServiceImpl extends ServiceImpl warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd"))); + if(CollectionUtils.isEmpty(warnList)){ + DataWarn dataWarn = new DataWarn(); + dataWarn.setEquipCode(configMonitor.getEquipCode()); + dataWarn.setEquipName(configMonitor.getName()); + dataWarn.setClassCode(configMonitor.getClassCode()); + dataWarn.setWarnDate(nowDate); + dataWarn.setWarnContent("服务异常"); + dataWarn.setStatus(1); + dataWarn.setWarnType(3); + dataWarnMapper.insert(dataWarn); + } continue; } //mqtt服务排查 @@ -196,6 +213,18 @@ public class ConfigMonitorServiceImpl extends ServiceImpl warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd"))); + if(CollectionUtils.isEmpty(warnList)){ + DataWarn dataWarn = new DataWarn(); + dataWarn.setEquipCode(configMonitor.getEquipCode()); + dataWarn.setEquipName(configMonitor.getName()); + dataWarn.setClassCode(configMonitor.getClassCode()); + dataWarn.setWarnDate(nowDate); + dataWarn.setWarnContent("MQTT服务异常"); + dataWarn.setStatus(1); + dataWarn.setWarnType(3); + dataWarnMapper.insert(dataWarn); + } continue; } } @@ -210,6 +239,18 @@ public class ConfigMonitorServiceImpl extends ServiceImpl warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd"))); + if(CollectionUtils.isEmpty(warnList)){ + DataWarn dataWarn = new DataWarn(); + dataWarn.setEquipCode(configMonitor.getEquipCode()); + dataWarn.setEquipName(configMonitor.getName()); + dataWarn.setClassCode(configMonitor.getClassCode()); + dataWarn.setWarnDate(nowDate); + dataWarn.setWarnContent(isNormal?"网关异常":"网关通信异常"); + dataWarn.setStatus(1); + dataWarn.setWarnType(3); + dataWarnMapper.insert(dataWarn); + } } } else { //如果是静默,根据parentId将所有子节点状态改为静默 @@ -232,6 +273,20 @@ public class ConfigMonitorServiceImpl extends ServiceImpl warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipCode,configMonitor.getEquipCode()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd"))); + if(CollectionUtils.isEmpty(warnList)){ + DataWarn dataWarn = new DataWarn(); + dataWarn.setEquipCode(configMonitor.getEquipCode()); + dataWarn.setEquipName(configMonitor.getName()); + dataWarn.setClassCode(configMonitor.getClassCode()); + dataWarn.setWarnDate(nowDate); + dataWarn.setWarnContent("设备异常"); + dataWarn.setStatus(1); + dataWarn.setWarnType(3); + dataWarnMapper.insert(dataWarn); + } + } //将父级id设备状态更新为正常 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -242,8 +297,6 @@ public class ConfigMonitorServiceImpl extends ServiceImpl implements IDataWarnService { + + +} diff --git a/src/main/java/org/springblade/modules/monitor/task/MonitorTaskJob.java b/src/main/java/org/springblade/modules/monitor/task/MonitorTaskJob.java index 4f7f510..fb0bb10 100644 --- a/src/main/java/org/springblade/modules/monitor/task/MonitorTaskJob.java +++ b/src/main/java/org/springblade/modules/monitor/task/MonitorTaskJob.java @@ -19,7 +19,7 @@ public class MonitorTaskJob { //更新设备监控状态 - @Scheduled(cron ="0 0/5 * * * ? ") + @Scheduled(cron ="0 0/30 * * * ? ") public void monitoringEquip(){ configMonitorService.monitoringEquip(); }