@ -25,6 +25,7 @@ import org.springframework.core.task.TaskExecutor;
import org.springframework.kafka.core.KafkaTemplate ;
import org.springframework.stereotype.Component ;
import java.math.BigInteger ;
import java.sql.Timestamp ;
import java.time.LocalDateTime ;
import java.util.* ;
@ -42,8 +43,6 @@ public class BatchDeviceMessageProcessor {
@Resource
private TdengineBatchConfig < TdengineDataVo > tdengineBatchConfig ;
@Resource
private TdengineBatchConfig < AlarmMessageLog > alarmProcessor ;
@Resource
private HandDetectorService handDetectorService ;
@Resource
private HandAlarmService handAlarmService ;
@ -207,11 +206,6 @@ public class BatchDeviceMessageProcessor {
log . debug ( "[批量持久化] 处理日志: {} 条" , context . processedLogs . size ( ) ) ;
}
// 3. 批量保存报警消息日志
if ( ! context . alarmMessageLogs . isEmpty ( ) ) {
alarmProcessor . addToBatch ( context . alarmMessageLogs ) ;
log . debug ( "[批量持久化] 报警消息: {} 条" , context . alarmMessageLogs . size ( ) ) ;
}
// 4. 批量创建气体报警
if ( ! context . gasAlarmsToCreate . isEmpty ( ) ) {
// 2. 批量保存
@ -450,6 +444,15 @@ public class BatchDeviceMessageProcessor {
String battery = json . getStr ( "battery" ) ;
String user = json . getStr ( "user" ) ;
Integer boot = json . getInt ( "boot" ) ;
String sig = json . getStr ( "sig" ) ;
Long mem = json . getLong ( "mem" ) ;
device . setBoot ( boot ) ;
device . setSig ( sig ) ;
device . setMem ( mem ) ;
device . setUserName ( user ) ;
device . setValue ( gasValue ) ;
device . setSn ( sn ) ;
@ -851,25 +854,16 @@ public class BatchDeviceMessageProcessor {
String msgContent = String . format ( "%s%s,%s气体浓度为%s" ,
handVo . getUserName ( ) , statusText , gasName , valueStr ) ;
// 记录报警消息日志
AlarmMessageLog alarmMessageLog = new AlarmMessageLog ( ) ;
alarmMessageLog . setDetectorId ( handVo . getId ( ) ) ;
alarmMessageLog . setHolderName ( handVo . getUserName ( ) ) ;
alarmMessageLog . setSn ( handVo . getSn ( ) ) ;
alarmMessageLog . setDeptId ( handVo . getDeptId ( ) ) ;
alarmMessageLog . setTenantId ( handVo . getTenantId ( ) ) ;
alarmMessageLog . setMessage ( msgContent ) ;
alarmMessageLog . setRemark ( "系统自动触发报警推送" ) ;
try {
AlarmDispatchEvent event = new AlarmDispatchEvent (
handVo . getId ( ) ,
handVo . getDeptId ( ) ,
handVo . getTenantId ( ) ,
handVo . getSn ( ) ,
handVo . getUserName ( ) ,
msgContent
) ;
// 使用 sourceSn 作为 Key,保证同一个部门/设备的报警排队有序处理
String key = handVo . getSn ( ) ;
String json = JsonUtils . toJsonString ( event ) ;
@ -878,7 +872,6 @@ public class BatchDeviceMessageProcessor {
log . error ( "[报警推送] 准备推送数据失败" , e ) ;
}
context . alarmMessageLogs . add ( alarmMessageLog ) ;
}
@ -942,7 +935,6 @@ public class BatchDeviceMessageProcessor {
// 待保存的日志
List < HandOriginalLog > originalLogs = new ArrayList < > ( ) ;
List < TdengineDataVo > processedLogs = new ArrayList < > ( ) ;
List < AlarmMessageLog > alarmMessageLogs = new ArrayList < > ( ) ;
// 待保存的报警
List < HandAlarmDO > gasAlarmsToCreate = new ArrayList < > ( ) ;