diff --git a/src/main/java/org/springblade/modules/monitor/controller/MonitorController.java b/src/main/java/org/springblade/modules/monitor/controller/MonitorController.java index 432e986..b6e5ec9 100644 --- a/src/main/java/org/springblade/modules/monitor/controller/MonitorController.java +++ b/src/main/java/org/springblade/modules/monitor/controller/MonitorController.java @@ -17,7 +17,7 @@ public class MonitorController { * 判断设备是否正常 */ @GetMapping("/updateMonitorInfo") - public void ifFestival() { + public void updateMonitorInfo() { configMonitorService.updateMonitorInfo(); } @@ -29,4 +29,20 @@ public class MonitorController { public void monitoringEquip() { configMonitorService.monitoringEquip(); } + + /** + * 定时排查监控设备状态 + */ + @GetMapping("/updateDataWarn") + public void updateDataWarn() { + configMonitorService.updateDataWarn(); + } + + /** + * 定时排查监控设备状态 + */ + @GetMapping("/updateMonitor") + public void updateMonitor() { + configMonitorService.updateMonitor(); + } } 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 757dc9a..3caa726 100644 --- a/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.xml +++ b/src/main/java/org/springblade/modules/monitor/mapper/MonitorMapper.xml @@ -20,7 +20,8 @@ equip_code AS equipCode, equip_name AS equipName, warn_content AS warnContent, - DATE_FORMAT(warn_date, '%Y-%m-%d %H:%i:%s') AS warnDate + DATE_FORMAT(warn_date, '%Y-%m-%d %H:%i:%s') AS warnDate, + DATE_FORMAT(recovery_date, '%Y-%m-%d %H:%i:%s') AS recoveryDate FROM t_data_warn WHERE warn_type = '3' diff --git a/src/main/java/org/springblade/modules/monitor/service/IConfigMonitorService.java b/src/main/java/org/springblade/modules/monitor/service/IConfigMonitorService.java index 6f34dfe..c54b5be 100644 --- a/src/main/java/org/springblade/modules/monitor/service/IConfigMonitorService.java +++ b/src/main/java/org/springblade/modules/monitor/service/IConfigMonitorService.java @@ -49,6 +49,11 @@ public interface IConfigMonitorService extends IService { List getServiceList(); List getMiddleList(); - + List getServerParamsList(); + + + void updateDataWarn(); + + void updateMonitor(); } 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 eeb0071..6eedcbd 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springblade.modules.monitor.mapper.MonitorMapper; import org.springblade.modules.monitor.service.IBusinessMonitorService; import org.springframework.stereotype.Service; @@ -23,6 +24,9 @@ public class BusinessMonitorServiceImpl implements IBusinessMonitorService { @Override public List> resolveTips(String classCode, String pointCode) { + if(StringUtils.isEmpty(classCode)){ + classCode = "1000"; + } return monitorMapper.resolveTips(classCode, pointCode); } 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 4afb471..2140b4d 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 @@ -130,6 +130,11 @@ public class ConfigMonitorServiceImpl extends ServiceImpl list = baseMapper.selectList(queryWrapper); + //将所有设备状态更新为正常 + for(ConfigMonitor configMonitor : list){ + configMonitor.setStatus(1); + baseMapper.updateById(configMonitor); + } //按照父级id分组 Map> map = list.stream().collect(Collectors.groupingBy(ConfigMonitor::getParentId)); //获取取数时间间隔数据字典 @@ -194,7 +199,7 @@ public class ConfigMonitorServiceImpl extends ServiceImpl warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd"))); + List warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd")).eq(DataWarn::getStatus,1)); if(CollectionUtils.isEmpty(warnList)){ DataWarn dataWarn = new DataWarn(); dataWarn.setEquipCode(configMonitor.getEquipCode()); @@ -219,7 +224,7 @@ public class ConfigMonitorServiceImpl extends ServiceImpl warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd"))); + List warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd")).eq(DataWarn::getStatus,1)); if(CollectionUtils.isEmpty(warnList)){ DataWarn dataWarn = new DataWarn(); dataWarn.setEquipCode(configMonitor.getEquipCode()); @@ -245,7 +250,7 @@ public class ConfigMonitorServiceImpl extends ServiceImpl warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd"))); + List warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipName,configMonitor.getName()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd")).eq(DataWarn::getStatus,1)); if(CollectionUtils.isEmpty(warnList)){ DataWarn dataWarn = new DataWarn(); dataWarn.setEquipCode(configMonitor.getEquipCode()); @@ -280,7 +285,7 @@ public class ConfigMonitorServiceImpl extends ServiceImpl warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipCode,configMonitor.getEquipCode()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd"))); + List warnList = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getEquipCode,configMonitor.getEquipCode()).like(DataWarn::getWarnDate,DateFormatUtils.format(nowDate,"yyyy-MM-dd")).eq(DataWarn::getStatus,1)); if(CollectionUtils.isEmpty(warnList)){ DataWarn dataWarn = new DataWarn(); dataWarn.setEquipCode(configMonitor.getEquipCode()); @@ -430,6 +435,47 @@ public class ConfigMonitorServiceImpl extends ServiceImpl list = dataWarnMapper.selectList(Wrappers.lambdaQuery().eq(DataWarn::getWarnType,3).eq(DataWarn::getStatus,1)); + //循环所有数据,到监控表查询当前设备状态,如果设备状态正常,则更新报警恢复时间和状态 + if(CollectionUtils.isNotEmpty(list)){ + for(DataWarn dataWarn : list){ + if(StringUtils.isNotEmpty(dataWarn.getEquipCode())){ + ConfigMonitor monitor = baseMapper.selectOne(Wrappers.lambdaQuery().eq(ConfigMonitor::getEquipCode,dataWarn.getEquipCode()).eq(BaseEntity::getIsDeleted,0)); + if(monitor != null && monitor.getStatus() == 1){ + dataWarn.setRecoveryDate(new Date()); + dataWarn.setStatus(2); + dataWarnMapper.updateById(dataWarn); + } + }else{ + List configMonitors = baseMapper.selectList(Wrappers.lambdaQuery().eq(ConfigMonitor::getName,dataWarn.getEquipName()).eq(BaseEntity::getIsDeleted,0)); + if(CollectionUtils.isNotEmpty(configMonitors)){ + for(ConfigMonitor configMonitor : configMonitors){ + if(configMonitor.getStatus() == 1){ + dataWarn.setRecoveryDate(new Date()); + dataWarn.setStatus(2); + dataWarnMapper.updateById(dataWarn); + } + } + } + } + } + } + } + + @Override + public void updateMonitor() { + //更新服务器监控状态 + updateMonitorInfo(); + //更新设备监控状态 + monitoringEquip(); + //更新报警信息 + updateDataWarn(); + } + public List getParentIdList(List parentIdList, Long parentId) { parentIdList.add(parentId); if (parentId != 0) { 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 fb0bb10..6e9dc63 100644 --- a/src/main/java/org/springblade/modules/monitor/task/MonitorTaskJob.java +++ b/src/main/java/org/springblade/modules/monitor/task/MonitorTaskJob.java @@ -10,18 +10,10 @@ import org.springframework.stereotype.Component; public class MonitorTaskJob { private final IConfigMonitorService configMonitorService; - //更新服务器监控状态 - @Scheduled(cron ="0 0 0/1 * * ? ") - //@Scheduled(cron ="0 0/1 * * * ? ") - public void updateMonitorInfo(){ - configMonitorService.updateMonitorInfo(); - } - - //更新设备监控状态 @Scheduled(cron ="0 0/30 * * * ? ") - public void monitoringEquip(){ - configMonitorService.monitoringEquip(); + public void updateMonitor(){ + configMonitorService.updateMonitor(); }