diff --git a/ruoyi-admin/src/main/resources/static/file/alarmAudio.mp3 b/ruoyi-admin/src/main/resources/static/file/alarmAudio.mp3 new file mode 100644 index 0000000..4d4bc06 Binary files /dev/null and b/ruoyi-admin/src/main/resources/static/file/alarmAudio.mp3 differ diff --git a/ruoyi-admin/src/main/resources/templates/index.html b/ruoyi-admin/src/main/resources/templates/index.html index 645dba9..0153f97 100644 --- a/ruoyi-admin/src/main/resources/templates/index.html +++ b/ruoyi-admin/src/main/resources/templates/index.html @@ -308,6 +308,22 @@ function tankuan(){ $(".tipfloat").animate({height:"show"},800); } +document.getElementById('alarmPrompt').addEventListener('click', function() { + var alarmAudio = document.getElementById('alarmAudio'); + alarmAudio.play(); // 播放音频 +}); +// 报警音频播放函数 +function playAlarmSound() { + var alarmAudio = document.getElementById('alarmAudio'); + if (alarmAudio) { + alarmAudio.play(); + } else { + // 如果audio元素不存在,则动态创建 + alarmAudio = new Audio('/file/alarmAudio.mp3'); + alarmAudio.play(); + } +} + function deleteValue(){ /*alert(123) console.log("时间:"+myDate.toLocaleTimeString())*/ @@ -325,8 +341,9 @@ function deleteValue(){ /*$("#myModalButton").click();*/ getAlarmPormat(); tankuan(); - setTimeout("document.getElementById('closeIconButton').onclick()",1000*8); - + // 添加报警音频播放逻辑 + playAlarmSound(); + setTimeout("document.getElementById('closeIconButton').onclick()",1000 * 8); } }, error: function (data) { diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java index cf8b9ef..c5e106d 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java @@ -2,14 +2,19 @@ package com.ruoyi.quartz.task; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.system.domain.TArraytemperaturedata; +import com.ruoyi.system.domain.TSetmonitorthresholdvalue; import com.ruoyi.system.domain.T_Alarm_Data; +import com.ruoyi.system.domain.T_W_Temperturedata; import com.ruoyi.system.domain.dto.T_Alarm_DataDTO; import com.ruoyi.system.mapper.TArraytemperaturedataMapper; +import com.ruoyi.system.mapper.TSetmonitorthresholdvalueMapper; import com.ruoyi.system.mapper.T_Alarm_DataMapper; +import com.ruoyi.system.mapper.T_W_TemperturedataMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.ruoyi.common.utils.StringUtils; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; @@ -27,6 +32,12 @@ public class RyTask { @Autowired private TArraytemperaturedataMapper tArraytemperaturedataMapper; + @Autowired + private T_W_TemperturedataMapper tWTemperturedataMapper; + + @Autowired + private TSetmonitorthresholdvalueMapper setmonitorthresholdvalueMapper; + @Autowired private T_Alarm_DataMapper tAlarmDataMapper; @@ -55,7 +66,7 @@ public class RyTask { } /** - * + * 阵列温度传感器报警 */ public void ArrayTemperatureSensorAlarm() { String nowTime = DateUtils.getTime(); @@ -91,4 +102,65 @@ public class RyTask { } } + /** + * 温度传感器报警 + */ + public void temperatureAlarm() { + String nowTime = DateUtils.getTime(); + String beginTime = LocalDateTime + .parse(nowTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + .plusMinutes(-2) // 加一分钟 + .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + T_W_Temperturedata selectData = new T_W_Temperturedata(); + HashMap selectMap = new HashMap<>(); + selectMap.put("beginTime", beginTime); + selectMap.put("endTime", nowTime); + selectData.setParams(selectMap); + List dataList = tWTemperturedataMapper.selectT_W_illdataList(selectData); + + T_Alarm_Data alarmData = new T_Alarm_Data(); + alarmData.setAlarmStatus(1); //0-已处理 1-未处理 + List dataDTOList = tAlarmDataMapper.selectT_Alarm_DataList(alarmData); + List alarmList = dataDTOList.stream().map(T_Alarm_DataDTO::getMonitorId).collect(Collectors.toList()); + + TSetmonitorthresholdvalue selectValue = new TSetmonitorthresholdvalue(); + selectValue.setMonitorType(16); + List thresholdlist = setmonitorthresholdvalueMapper.selectTSetmonitorthresholdvalueList(selectValue); + for (T_W_Temperturedata data : dataList) { + String monitorId = data.getMonitorId(); + if (alarmList.contains(monitorId)){ + continue; + } + for (TSetmonitorthresholdvalue value : thresholdlist) { + if (value.getMonitorId().equals(monitorId)){ + BigDecimal temperatureMax = value.getTemperatureMax(); + BigDecimal temperatureMin = value.getTemperatureMin(); + if (StringUtils.isNotNull(temperatureMax) && data.getTempreture().compareTo(temperatureMax) > 0){ + T_Alarm_Data insertData = new T_Alarm_Data(); + insertData.setMonitorId(data.getMonitorId()); + insertData.setCollectTime(DateUtils.getNowDate()); + insertData.setAlarmType(0);//0-过高报警 1-过低报警 + insertData.setMonitorType(16); + insertData.setAlarmStatus(1); + insertData.setAlarmData(data.getTempreture()); + insertData.setCause(value.gettMaxIdea() != null ? value.gettMaxIdea() : "温度过高"); + tAlarmDataMapper.insertT_Alarm_Data(insertData); + } + if (StringUtils.isNotNull(temperatureMin) && temperatureMin.compareTo(data.getTempreture()) > 0){ + T_Alarm_Data insertData = new T_Alarm_Data(); + insertData.setMonitorId(data.getMonitorId()); + insertData.setCollectTime(DateUtils.getNowDate()); + insertData.setAlarmType(0);//0-过高报警 1-过低报警 + insertData.setMonitorType(16); + insertData.setAlarmStatus(1); + insertData.setAlarmData(data.getTempreture()); + insertData.setCause(value.gettMinIdea() != null ? value.gettMinIdea() : "温度过底"); + tAlarmDataMapper.insertT_Alarm_Data(insertData); + } + break; + } + } + } + } + } diff --git a/ruoyi-system/src/main/resources/mapper/system/TSetmonitorthresholdvalueMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSetmonitorthresholdvalueMapper.xml index 0a2f18e..ee5a0ff 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TSetmonitorthresholdvalueMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TSetmonitorthresholdvalueMapper.xml @@ -126,6 +126,7 @@ and stv.monitorId = #{monitorId} + and t1.monitorType = #{monitorType} diff --git a/ruoyi-system/src/main/resources/mapper/system/T_W_TemperturedataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/T_W_TemperturedataMapper.xml index 45d46da..ae36d44 100644 --- a/ruoyi-system/src/main/resources/mapper/system/T_W_TemperturedataMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/T_W_TemperturedataMapper.xml @@ -121,7 +121,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.monitorId = #{monitorId} and t1.collectTime between #{params.beginCollectTime} and #{params.endCollectTime} and t1.collectTime between #{startTime} and #{endTime} - and t2.secondType=1 and (t1.illuminance>1)