package com.sandu.ximon.admin.manager.iot.amqp.processor; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame; import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame; import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5AtmosphereReportEnum; import com.sandu.ximon.admin.service.AirDataService; import lombok.extern.slf4j.Slf4j; /** * @author ZZQ * @date 2021/12/14 * 大气数据上报处理 */ @Slf4j public class AirDataProcessor implements IMessageProcessor { private AirDataProcessor() { } public static AirDataProcessor getInstance() { return AirDataProcessor.AirDataProcessorHolder.INSTANCE; } private static class AirDataProcessorHolder { private static final AirDataProcessor INSTANCE = new AirDataProcessor(); } @Override public void process(String productKey, String deviceName, CommonFrame frame) { String functionCode = frame.getPayload().substring(2, 4); if (A5AtmosphereReportEnum.HeartBeat_Data.getCode().equals(functionCode)) { log.info("心跳相应——大气数据"); A5AtmosphereHeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5AtmosphereHeartbeatReportInnerFrame().transformFrame(frame.getPayload()); log.info(heartbeatReportInnerFrame.toString()); SpringContextHolder.getBean(AirDataService.class).saveReportData(deviceName, heartbeatReportInnerFrame.getHeartBeatDataPackage()); // SpringContextHolder.getBean(LightService.class).saveLight(deviceName,heartbeatReportInnerFrame.getHeartBeatDataPackage()); } } }