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.A5C3CommonReportInnerFrame;
|
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3HeartbeatReportInnerFrame;
|
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3OperationReportInnerFrame;
|
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
|
import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingEnum;
|
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 (C3ChargingEnum.HEART_BEAT.getCode().equals(functionCode)) {
|
log.info("心跳相应——C3充电桩数据" + productKey + " ------- " + deviceName);
|
A5C3HeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5C3HeartbeatReportInnerFrame().transformFrame(frame.getPayload());
|
log.info("C3充电桩上报处理_heartbeatReportInnerFrame");
|
log.info(heartbeatReportInnerFrame.toString());
|
|
if (heartbeatReportInnerFrame.isValidate()) {
|
SpringContextHolder.getBean(C3ChargingService.class).updateReportState(deviceName
|
, heartbeatReportInnerFrame.getHeartBeatDataPackage().getC3Mac()
|
, heartbeatReportInnerFrame.getHeartBeatDataPackage().getStatusBit()
|
, heartbeatReportInnerFrame.getHeartBeatDataPackage().getDeviceTemperature());
|
}
|
} else if (C3ChargingEnum.StartCharging.getCode().equals(functionCode)) {
|
log.info("心跳响应——C3充电桩开始充电");
|
A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(frame.getPayload());
|
log.info("C3充电桩上报处理_heartbeatReportInnerFrame");
|
log.info(operationReportInnerFrame.toString());
|
|
// if (operationReportInnerFrame.isValidate()) {
|
// SpringContextHolder.getBean(C3ChargingService.class).saveReportData(deviceName, operationReportInnerFrame.getHeartBeatDataPackage());
|
// }
|
} else if (C3ChargingEnum.NETWORK_REQUEST.getCode().equals(functionCode)) {
|
A5C3CommonReportInnerFrame netRequestFrame = new A5C3CommonReportInnerFrame().transformFrame(frame.getPayload());
|
log.info("C3充电桩上报处理_netRequestFrame");
|
log.info(netRequestFrame.toString());
|
|
if (netRequestFrame.isValidate()) {
|
SpringContextHolder.getBean(C3ChargingService.class).saveReporEquipment(deviceName, netRequestFrame.getMcuUdid(), netRequestFrame.getDestinationAddress());
|
}
|
}
|
}
|
}
|