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.frame.inner.report.A5LightPoleHeelingHeartbeatReportInnerFrame; 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.manager.iot.rrpc.enums.LightPoleHeelingEnum; import com.sandu.ximon.admin.service.AirDataService; import com.sandu.ximon.admin.service.LightPoleHeelingService; import lombok.extern.slf4j.Slf4j; /** * @author ZZQ * @date 2022/3/24 9:45 */ @Slf4j public class PoleMonitorDataProcessor implements IMessageProcessor { public PoleMonitorDataProcessor() { } public static PoleMonitorDataProcessor getInstance() { return PoleMonitorDataProcessorHolder.INSTANCE; } private static class PoleMonitorDataProcessorHolder { private static final PoleMonitorDataProcessor INSTANCE = new PoleMonitorDataProcessor(); } @Override public void process(String productKey, String deviceName, CommonFrame frame) { String functionCode = frame.getPayload().substring(2, 4); if (LightPoleHeelingEnum.TheHeartbeatPackage.getCode().equals(functionCode)) { log.info("心跳相应——灯杆倾斜"); A5LightPoleHeelingHeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5LightPoleHeelingHeartbeatReportInnerFrame().transformFrame(frame.getPayload()); log.info(heartbeatReportInnerFrame.toString()); SpringContextHolder.getBean(LightPoleHeelingService.class).saveLightPoleHeelingHeartbeat(deviceName, heartbeatReportInnerFrame.getHeartBeatDataPackage()); // SpringContextHolder.getBean(LightService.class).saveLight(deviceName,heartbeatReportInnerFrame.getHeartBeatDataPackage()); } } }