xiaoxie
2022-04-18 6bb8f45e270681dbcb70aed663b406e7d905e091
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java
@@ -1,6 +1,7 @@
package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.cmd;
import com.genersoft.iot.vmp.conf.UserSetup;
import com.genersoft.iot.vmp.conf.SipConfig;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector;
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
@@ -9,7 +10,7 @@
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.NotifyMessageHandler;
import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
import com.genersoft.iot.vmp.service.IDeviceAlarmService;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.utils.GpsUtil;
import org.dom4j.Element;
import org.slf4j.Logger;
@@ -21,7 +22,7 @@
import javax.sip.RequestEvent;
import static com.genersoft.iot.vmp.gb28181.utils.XmlUtil.getText;
import static com.genersoft.iot.vmp.gb28181.utils.XmlUtil.*;
@Component
public class AlarmNotifyMessageHandler extends SIPRequestProcessorParent implements InitializingBean, IMessageHandler {
@@ -36,10 +37,13 @@
    private EventPublisher publisher;
    @Autowired
    private UserSetup userSetup;
    private UserSetting userSetting;
    @Autowired
    private IVideoManagerStorager storager;
    private SipConfig sipConfig;
    @Autowired
    private IVideoManagerStorage storager;
    @Autowired
    private IDeviceAlarmService deviceAlarmService;
@@ -54,6 +58,9 @@
    @Override
    public void handForDevice(RequestEvent evt, Device device, Element rootElement) {
        if (!sipConfig.isAlarm()) {
            return;
        }
        Element deviceIdElement = rootElement.element("DeviceID");
        String channelId = deviceIdElement.getText().toString();
        DeviceAlarm deviceAlarm = new DeviceAlarm();
@@ -92,12 +99,17 @@
                mobilePosition.setGeodeticSystem("BD-09");
                mobilePosition.setCnLng(bp.getBdLng());
                mobilePosition.setCnLat(bp.getBdLat());
                if (!userSetup.getSavePositionHistory()) {
                if (!userSetting.getSavePositionHistory()) {
                    storager.clearMobilePositionsByDeviceId(device.getDeviceId());
                }
                storager.insertMobilePosition(mobilePosition);
            }
        }
        if (!StringUtils.isEmpty(deviceAlarm.getDeviceId())) {
            if (deviceAlarm.getAlarmMethod().equals("5")) {
                deviceAlarm.setAlarmType(getText(rootElement.element("Info"), "AlarmType"));
            }
        }
        logger.debug("存储报警信息、报警分类");
        // 存储报警信息、报警分类
        deviceAlarmService.add(deviceAlarm);