ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -46,6 +46,8 @@ @Resource ArdAlarmStealelecMapper ardAlarmStealelecMapper; @Resource ArdAlarmTubeMapper ardAlarmTubeMapper; @Resource IArdAlarmTubeService ardAlarmTubeService; @Resource ArdTubesMapper ardTubesMapper; @@ -59,7 +61,7 @@ String refreshTime = configService.selectConfigByKey("refreshTime"); switch (condition.getCommand()) { case 1001: List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectAllByCommandArdAlarmStealelecList(refreshTime); List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectListAllByCommand(refreshTime); return ardAlarmStealelecs.stream() .map(ardAlarmStealelec -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() @@ -74,6 +76,22 @@ return globalAlarmData; }) .collect(Collectors.toList()); case 1014: List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime); return ardAlarmTubes.stream() .map(ardAlarmTube -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmTube.getId()) .setName(ardAlarmTube.getTubeName()) .setAlarmTime(ardAlarmTube.getAlarmTime()) .setLongitude(ardAlarmTube.getLongitude()) .setLatitude(ardAlarmTube.getLatitude()) .setAltitude(ardAlarmTube.getAltitude()) .setCount(ardAlarmTube.getCount()) .setTotal(ardAlarmTube.getTotal()); return globalAlarmData; }) .collect(Collectors.toList()); default: return null; } @@ -84,14 +102,21 @@ SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); switch (condition.getCommand()) { case 1001: String id = condition.getId(); ArdAlarmStealelec ardAlarmStealelec = ardAlarmStealelecMapper.selectByPrimaryKey(id); ArdAlarmStealelec ardAlarmStealelec = ardAlarmStealelecMapper.selectByPrimaryKey(condition.getId()); if(StringUtils.isNotNull(ardAlarmStealelec)) { String describe = ardAlarmStealelec.getDescribe(); String startTime = fmt.format(ardAlarmStealelec.getStartTime()); int i = ardAlarmStealelecMapper.updateViewTimeByDescribe(describe, startTime, DateUtils.getTime()); return ardAlarmStealelec; } case 1014: ArdAlarmTube ardAlarmTube = ardAlarmTubeMapper.selectArdAlarmTubeById(condition.getId()); if(StringUtils.isNotNull(ardAlarmTube)) { String tubeId = ardAlarmTube.getTubeId(); String alarmTime = fmt.format(ardAlarmTube.getAlarmTime()); int i = ardAlarmTubeMapper.updateViewTimeByTubeId(tubeId, alarmTime, DateUtils.getTime()); return ardAlarmTube; } default: return null; } } ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java
@@ -13,6 +13,6 @@ ArdAlarmStealelec selectByPrimaryKey(String id); List<ArdAlarmStealelec> selectRealByCondition(@Param("refreshTime")String refreshTime,@Param("deptId")Long deptId); List<ArdAlarmStealelec> selectHistoryByCondition(GlobalAlarmCondition condition); List<ArdAlarmStealelec> selectAllByCommandArdAlarmStealelecList(@Param("refreshTime")String refreshTime); List<ArdAlarmStealelec> selectListAllByCommand(@Param("refreshTime")String refreshTime); int updateViewTimeByDescribe(@Param("describe")String describe,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime); } ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/domain/ArdAlarmTube.java
@@ -86,5 +86,12 @@ @Excel(name = "查看时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date viewTime; /** * 报警总数 */ private Integer total; /** * 未读报警数量 */ private Integer count; } ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java
@@ -1,7 +1,10 @@ package com.ruoyi.alarm.tubeAlarm.mapper; import java.util.List; import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube; import org.apache.ibatis.annotations.Param; /** @@ -59,4 +62,7 @@ * @return 结果 */ public int deleteArdAlarmTubeByIds(String[] ids); public List<ArdAlarmTube> selectListAllByCommand(@Param("refreshTime")String refreshTime); public int updateViewTimeByTubeId(@Param("tubeId")String tubeId,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime); } ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
@@ -129,4 +129,31 @@ #{id} </foreach> </delete> <select id="selectListAllByCommand" resultMap="ArdAlarmTubeResult"> SELECT T.* FROM ( SELECT aat.ID, aat.tube_id, aat.tube_name, aat.alarm_time, aat.longitude, aat.latitude, aat.altitude, ROW_NUMBER() OVER ( PARTITION BY aat.tube_id ORDER BY aat.alarm_time DESC ) AS rn, COUNT(CASE WHEN aat.view_time IS NULL THEN 1 END) OVER ( PARTITION BY aat.tube_id ) AS COUNT, COUNT ( aat.alarm_time ) OVER ( PARTITION BY tube_id ) AS total FROM ard_alarm_tube aat WHERE aat.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE ) ) T WHERE T.rn = 1 </select> <update id="updateViewTimeByTubeId" parameterType="String"> update ard_alarm_tube set view_time=#{viewTime} where tube_id = #{tubeId} and alarm_time<=#{alarmTime} and view_time is null </update> </mapper> ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml
@@ -40,7 +40,7 @@ </if> </where> </select> <select id="selectAllByCommandArdAlarmStealelecList" resultMap="BaseResultMap"> <select id="selectListAllByCommand" resultMap="BaseResultMap"> SELECT T.* FROM ( SELECT aas.ID,