fix: 电话通知逻辑,功能修改,完善机制。
This commit is contained in:
@@ -104,6 +104,38 @@ public interface AquWarnCallNoticeMapper extends BaseMapper<AquWarnCallNotice> {
|
||||
@Select("SELECT * FROM aqu_call_notice WHERE call_status = 0 AND call_time <= #{now} ORDER BY call_time ASC")
|
||||
List<AquWarnCallNotice> selectDuePendingNotices(@Param("now") LocalDateTime now);
|
||||
|
||||
/**
|
||||
* 查询指定设备在指定时间之后是否已有「等待回执中(callStatus=1)」或「回执成功(callStatus=3)」的通知记录
|
||||
* 用于定时任务发出待发通知前的拦截判断:
|
||||
* - callStatus=1:前一条已发出但回执未到,不应重复拨打,等其超时后再发
|
||||
* - callStatus=3:已成功,直接取消后续记录
|
||||
*
|
||||
* @param deviceId 设备ID
|
||||
* @param afterTime 批次窗口起始时间
|
||||
* @return 满足条件的通知数量
|
||||
*/
|
||||
@Select("SELECT COUNT(1) FROM aqu_call_notice " +
|
||||
"WHERE device_id = #{deviceId} " +
|
||||
"AND call_status IN (1, 3) " +
|
||||
"AND call_time >= #{afterTime}")
|
||||
long countWaitingOrSuccessByDeviceAfter(@Param("deviceId") Long deviceId,
|
||||
@Param("afterTime") LocalDateTime afterTime);
|
||||
|
||||
/**
|
||||
* 查询指定设备在指定时间之后是否已有「回执成功」的通知记录(不区分 title)
|
||||
* 用于定时任务发出待发通知前,判断同批次是否已有成功回执,避免重复拨打
|
||||
*
|
||||
* @param deviceId 设备ID
|
||||
* @param afterTime 起始时间(通常取批次第一条记录的 callTime)
|
||||
* @return 满足条件的通知数量
|
||||
*/
|
||||
@Select("SELECT COUNT(1) FROM aqu_call_notice " +
|
||||
"WHERE device_id = #{deviceId} " +
|
||||
"AND call_status = 3 " +
|
||||
"AND call_time >= #{afterTime}")
|
||||
long countSuccessByDeviceAfter(@Param("deviceId") Long deviceId,
|
||||
@Param("afterTime") LocalDateTime afterTime);
|
||||
|
||||
/**
|
||||
* 通过 callNoticeId 查询关联的第一条告警消息内容
|
||||
* 用于定时任务重发时构建 TTS 参数
|
||||
|
||||
Reference in New Issue
Block a user