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.A5C3HeartbeatReportInnerFrame; import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame; import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingReportEnum; import com.sandu.ximon.admin.service.C3ChargingService; import lombok.extern.slf4j.Slf4j; /** * @author ZZQ * @date 2022/3/11 16:24 */ @Slf4j public class c3ChargingProcessor implements IMessageProcessor { public c3ChargingProcessor() { } public static c3ChargingProcessor c3ChargingProcessorgetInstance() { return c3ChargingProcessor.C3ChargingProcessorHolder.INSTANCE; } private static class C3ChargingProcessorHolder { private static final c3ChargingProcessor INSTANCE = new c3ChargingProcessor(); } @Override public void process(String productKey, String deviceName, CommonFrame frame) { String functionCode = frame.getPayload().substring(2, 4); if (C3ChargingReportEnum.HeartBeat_Data.getCode().equals(functionCode)) { log.info("心跳相应——C3充电桩数据"+productKey+" ------- "+deviceName); A5C3HeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5C3HeartbeatReportInnerFrame().transformFrame(frame.getPayload()); log.info("C3充电桩上报处理_heartbeatReportInnerFrame"); log.info(heartbeatReportInnerFrame.toString()); SpringContextHolder.getBean(C3ChargingService.class).saveReportData(deviceName, heartbeatReportInnerFrame.getHeartBeatDataPackage()); } } }