ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java
@@ -20,6 +20,7 @@ import com.sandu.ximon.admin.vo.C3mOrderVO; import com.sandu.ximon.dao.domain.C3mCharging; import com.sandu.ximon.dao.domain.C3mOrder; import com.sandu.ximon.dao.domain.Pole; import com.sandu.ximon.dao.domain.PoleBinding; import com.sandu.ximon.dao.enums.OrderStatus; import com.sandu.ximon.dao.enums.OrderType; @@ -64,6 +65,7 @@ log.info(netRequestFrame.toString()); if (netRequestFrame.isValidate()) { //保存充电桩硬件信息 boolean b = SpringContextHolder.getBean(C3ChargingService.class).saveReporEquipment(deviceName, netRequestFrame.getMcuUdid(), netRequestFrame.getDestinationAddress()); if (!b) { return; @@ -74,6 +76,18 @@ A5C3CommonReportInnerFrame codeRequestFrame = new A5C3CommonReportInnerFrame().transformFrame(frame.getPayload()); log.info("C3充电桩上报处理_codeRequestFrame"); log.info(codeRequestFrame.toString()); if (codeRequestFrame.isValidate()) { if (deviceName != null) { //设置二维码 Pole pole = SpringContextHolder.getBean(PoleService.class).getOne(Wrappers.lambdaQuery(Pole.class).eq(Pole::getDeviceCode, deviceName)); if (pole != null) { String testUrl = "http://www.ximonsmart.com/charge/#/charge/" + pole.getId() + "/" + System.currentTimeMillis(); SpringContextHolder.getBean(C3ChargingService.class).QrCode(codeRequestFrame.getDestinationAddress(), testUrl); } } } } else if (C3ChargingEnum.HEART_BEAT.getCode().equals(functionCode)) { log.info("心跳相应——C3充电桩数据" + productKey + " ------- " + deviceName); A5C3HeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5C3HeartbeatReportInnerFrame().transformFrame(frame.getPayload()); ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5C3CommonReportInnerFrame.java
@@ -22,6 +22,7 @@ @Override public A5C3CommonReportInnerFrame transformFrame(String hex) { //FEA582000CF04100040000048EE4FC6C507D9BE44D // 长度不一致时,返回null if (StrUtil.isBlank(hex)) { return null; ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3QrCodeReqInnerFrame.java
@@ -1,5 +1,6 @@ package com.sandu.ximon.admin.manager.iot.frame.inner.request; import cn.hutool.core.util.HexUtil; import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame; import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingEnum; import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum; @@ -14,13 +15,14 @@ private final String payload; public C3QrCodeReqInnerFrame(String c3Mac, String qrCodeData) { payload = c3Mac + qrCodeData; System.out.println("qrCodeData: " + qrCodeData); String encodeHexStr = HexUtil.encodeHexStr(qrCodeData).toUpperCase(); payload = c3Mac + encodeHexStr; } @Override public String getEncodeFrame() { String functionCode = C3ChargingEnum.QR_CODE_REQUEST.getCode(); String functionCode = C3ChargingEnum.QrCode.getCode(); //长度可变,不定长 String payloadLength = SupplementUtils.suppleZero(Integer.toHexString((payload.length() / 2)).toUpperCase(), 4); String frame = functionCode + payloadLength + payload; ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -26,6 +26,7 @@ import com.sandu.ximon.dao.bo.C3ChargingBo; import com.sandu.ximon.dao.domain.C3mCharging; import com.sandu.ximon.dao.domain.C3mChargingCharge; import com.sandu.ximon.dao.domain.Pole; import com.sandu.ximon.dao.domain.PoleBinding; import com.sandu.ximon.dao.mapper.C3mChargingMapper; import lombok.AllArgsConstructor; @@ -58,7 +59,7 @@ * @return 是否成功 */ public boolean updateReportState(String deviceName, String c3Mac, String statusBit, String deviceTemperature) { C3mCharging one = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, c3Mac)); C3mCharging one = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, deviceName)); if (one != null) { // one.setStatusBit(Integer.valueOf(statusBit)); one.setDeviceTemperature(deviceTemperature); @@ -90,24 +91,17 @@ c3mCharging.setPoleDevicesCode(deviceName); c3mCharging.setC3Mac(c3Mac); flag = save(c3mCharging); //设置费率 C3mCharging c3mCharging1 = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, mcuUdid)); List<C3mChargingCharge> list = c3mChargingChargeService.list(Wrappers.lambdaQuery(C3mChargingCharge.class).eq(C3mChargingCharge::getC3Id, c3mCharging1.getC3Id())); if (list.size() == 0) {//费率表中没有此充电桩数据时 添加默认费率 c3mChargingChargeService.initCharge((c3mCharging1.getC3Id()).intValue()); } } else { //将设备信息添加到充电桩设备表 one.setPoleDevicesCode(deviceName); one.setC3Mac(c3Mac); flag = updateById(one); //设置费率 C3mCharging c3mCharging1 = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, mcuUdid)); List<C3mChargingCharge> list = c3mChargingChargeService.list(Wrappers.lambdaQuery(C3mChargingCharge.class).eq(C3mChargingCharge::getC3Id, c3mCharging1.getC3Id())); if (list.size() == 0) {//费率表中没有此充电桩数据时 添加默认费率 c3mChargingChargeService.initCharge((c3mCharging1.getC3Id()).intValue()); } } //设置费率 C3mCharging c3mCharging1 = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, mcuUdid)); List<C3mChargingCharge> list = c3mChargingChargeService.list(Wrappers.lambdaQuery(C3mChargingCharge.class).eq(C3mChargingCharge::getC3Id, c3mCharging1.getC3Id())); if (list.size() == 0) {//费率表中没有此充电桩数据时 添加默认费率 c3mChargingChargeService.initCharge((c3mCharging1.getC3Id()).intValue()); } // /** // * 添加绑定关系开始 ximon-admin/src/main/resources/application-local.yml
@@ -39,7 +39,7 @@ enable: true listenter: isOpen: false isOpen: true minio: endpoint: 47.106.172.9