fix: 电话通知判断逻辑问题修复。
This commit is contained in:
@@ -19,10 +19,10 @@ public interface AquWarnCallNoticeMapper extends BaseMapper<AquWarnCallNotice> {
|
||||
|
||||
/**
|
||||
* 查询指定设备、告警标题、时间范围内「回执成功」的通知数量
|
||||
* 只有 callStatus=3(回执成功)的记录才算真正通知到人,才会触发抑制
|
||||
* 只有 callStatus=3(回执成功)的记录才算真正通知到人,用于长时间(N小时)抑制判断
|
||||
*
|
||||
* @param deviceId 设备ID
|
||||
* @param title 告警标题(如"溶解氧"、"设备离线"等)
|
||||
* @param title 告警标题
|
||||
* @param afterTime 起始时间
|
||||
* @return 满足条件的通知数量
|
||||
*/
|
||||
@@ -33,14 +33,34 @@ public interface AquWarnCallNoticeMapper extends BaseMapper<AquWarnCallNotice> {
|
||||
"AND w.title = #{title} " +
|
||||
"AND n.call_status = 3 " +
|
||||
"AND n.call_time >= #{afterTime}")
|
||||
long countByDeviceAndTitleAfter(@Param("deviceId") Long deviceId,
|
||||
@Param("title") String title,
|
||||
@Param("afterTime") LocalDateTime afterTime);
|
||||
long countSuccessByDeviceAndTitleAfter(@Param("deviceId") Long deviceId,
|
||||
@Param("title") String title,
|
||||
@Param("afterTime") LocalDateTime afterTime);
|
||||
|
||||
/**
|
||||
* 查询指定设备、告警标题、时段范围内「回执成功」的通知数量(免打扰模式:每个时段只通知一次)
|
||||
* 查询指定设备、告警标题、时间范围内「活跍通知批次」的数量
|
||||
* 活跍 = callStatus IN (0,1,2),即本轮通知进行中,用于防止在当前属于未处理完成的通知批次内重复创建
|
||||
*
|
||||
* @param deviceId 设备ID
|
||||
* @param title 告警标题
|
||||
* @param afterTime 起始时间
|
||||
* @return 满足条件的通知数量
|
||||
*/
|
||||
@Select("SELECT COUNT(1) FROM aqu_call_notice n " +
|
||||
"INNER JOIN aqu_map_message_warn_call_notice m ON m.call_notice_id = n.id " +
|
||||
"INNER JOIN aqu_message_warn w ON w.id = m.message_warn_id " +
|
||||
"WHERE n.device_id = #{deviceId} " +
|
||||
"AND w.title = #{title} " +
|
||||
"AND n.call_status IN (0, 1, 2) " +
|
||||
"AND n.call_time >= #{afterTime}")
|
||||
long countActiveByDeviceAndTitleAfter(@Param("deviceId") Long deviceId,
|
||||
@Param("title") String title,
|
||||
@Param("afterTime") LocalDateTime afterTime);
|
||||
|
||||
/**
|
||||
* 查询指定设备、告警标题、时段范围内「活跍或成功」的通知数量(免打扰模式)
|
||||
* 时段划分:08:00-14:00、14:00-20:00、20:00-08:00
|
||||
* 只有 callStatus=3(回执成功)的记录才算真正通知到人,才会触发抑制
|
||||
* 包含 callStatus IN (0,1,2,3),只要当前时段内有任意状态的通知就不再重复创建
|
||||
*
|
||||
* @param deviceId 设备ID
|
||||
* @param title 告警标题
|
||||
@@ -52,7 +72,7 @@ public interface AquWarnCallNoticeMapper extends BaseMapper<AquWarnCallNotice> {
|
||||
"INNER JOIN aqu_message_warn w ON w.id = m.message_warn_id " +
|
||||
"WHERE n.device_id = #{deviceId} " +
|
||||
"AND w.title = #{title} " +
|
||||
"AND n.call_status = 3 " +
|
||||
"AND n.call_status IN (0, 1, 2, 3) " +
|
||||
"AND n.call_time >= #{periodStart}")
|
||||
long countByDeviceAndTitleInPeriod(@Param("deviceId") Long deviceId,
|
||||
@Param("title") String title,
|
||||
|
||||
Reference in New Issue
Block a user