648540858
2022-11-17 d340a37a00c8d5ea2605ca0f40a920efbeb9546f
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java
@@ -1,6 +1,6 @@
package com.genersoft.iot.vmp.service.redisMsg;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson2.JSON;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
@@ -16,7 +16,10 @@
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import javax.sip.InvalidArgumentException;
import javax.sip.SipException;
import javax.validation.constraints.NotNull;
import java.text.ParseException;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -78,16 +81,28 @@
                        List<ParentPlatform> parentPlatforms = storage.queryEnableParentPlatformList(true);
                        if (parentPlatforms.size() > 0) {
                            for (ParentPlatform parentPlatform : parentPlatforms) {
                                commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm);
                                try {
                                    commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm);
                                } catch (SipException | InvalidArgumentException | ParseException e) {
                                    logger.error("[命令发送失败] 国标级联 发送报警: {}", e.getMessage());
                                }
                            }
                        }
                    }else {
                        Device device = storage.queryVideoDevice(gbId);
                        ParentPlatform platform = storage.queryParentPlatByServerGBId(gbId);
                        if (device != null && platform == null) {
                            commander.sendAlarmMessage(device, deviceAlarm);
                            try {
                                commander.sendAlarmMessage(device, deviceAlarm);
                            } catch (InvalidArgumentException | SipException | ParseException e) {
                                logger.error("[命令发送失败] 发送报警: {}", e.getMessage());
                            }
                        }else if (device == null && platform != null){
                            commanderForPlatform.sendAlarmMessage(platform, deviceAlarm);
                            try {
                                commanderForPlatform.sendAlarmMessage(platform, deviceAlarm);
                            } catch (InvalidArgumentException | SipException | ParseException e) {
                                logger.error("[命令发送失败] 发送报警: {}", e.getMessage());
                            }
                        }else {
                            logger.warn("无法确定" + gbId + "是平台还是设备");
                        }