dao/src/main/java/com/sandu/ximon/dao/domain/C3mReportError.java
@@ -24,7 +24,7 @@ /** * 设å¤ç */ private String deviceCode; private String c3Mac; /** * æ éç dao/src/main/java/com/sandu/ximon/dao/mapper/C3mReportErrorMapper.java
@@ -2,6 +2,7 @@ import com.sandu.ximon.dao.domain.C3mReportError; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * @author Administrator @@ -9,6 +10,7 @@ * @createDate 2022-07-27 14:27:33 * @Entity com.sandu.ximon.dao.domain.C3mReportError */ @Mapper public interface C3mReportErrorMapper extends BaseMapper<C3mReportError> { } dao/src/main/resources/mapper/C3mReportErrorMapper.xml
@@ -6,15 +6,11 @@ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.C3mReportError"> <id property="c3mErrorId" column="c3m_error_id" jdbcType="BIGINT"/> <result property="deviceCode" column="device_code" jdbcType="VARCHAR"/> <result property="c3Mac" column="c3_mac" jdbcType="VARCHAR"/> <result property="errorCode" column="error_code" jdbcType="INTEGER"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> <result property="errorMsg" column="error_msg" jdbcType="VARCHAR"/> </resultMap> <sql id="Base_Column_List"> c3m_error_id,device_code,error_code, create_time,update_time,error_msg </sql> </mapper> ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java
@@ -9,10 +9,7 @@ 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.manager.iot.rrpc.enums.C3mRedisConstant; import com.sandu.ximon.admin.service.C3ChargingService; import com.sandu.ximon.admin.service.C3mOrderService; import com.sandu.ximon.admin.service.PoleBindingService; import com.sandu.ximon.admin.service.PoleService; import com.sandu.ximon.admin.service.*; import com.sandu.ximon.admin.utils.LogUtils; import com.sandu.ximon.admin.utils.RedisUtils; import com.sandu.ximon.dao.domain.C3mCharging; @@ -133,6 +130,14 @@ A5C3ErrorCodeReportInnerFrame errorCodeRequestFrame = new A5C3ErrorCodeReportInnerFrame().transformFrame(frame.getPayload()); log.info("C3å çµæ¡©ä¸æ¥å¤ç_errorCodeRequestFrame"); log.info(errorCodeRequestFrame.toString()); /** * ä¿åC3å çµæ¡©æ éæ°æ® */ if (errorCodeRequestFrame.isValidate() && (errorCodeRequestFrame.getErrorCode() != 0)) { SpringContextHolder.getBean(C3mReportErrorService.class).saveReportError(errorCodeRequestFrame); } } else if (C3ChargingEnum.StartCharging.getCode().equals(functionCode)) { log.info("å¿è·³ååºââC3å çµæ¡©å¼å§å çµ"); A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(frame.getPayload()); ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5C3ErrorCodeReportInnerFrame.java
@@ -1,5 +1,6 @@ package com.sandu.ximon.admin.manager.iot.frame.inner.report; import cn.hutool.core.util.HexUtil; import cn.hutool.core.util.StrUtil; import com.sandu.ximon.admin.manager.iot.frame.inner.BaseResponseInnerFrame; import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils; @@ -7,10 +8,7 @@ import lombok.ToString; /** * @author chenjiantian * @date 2021/12/6 14:46 * A5-81-42 * åç¯ä¸æ¥ampq æ éç * C3å çµæ¡©æ é䏿¥å¸§ */ @Data @ToString(callSuper = true) @@ -23,7 +21,7 @@ /** * æ éç */ private String errorCode; private int errorCode; @Override public A5C3ErrorCodeReportInnerFrame transformFrame(String hex) { @@ -39,10 +37,13 @@ setDestinationAddress(hex.substring(8, 16)); setErrorCode(hex.substring(16, hex.length() - 8)); //æ éç String errorCodeHex = hex.substring(16, hex.length() - 8); errorCode = HexUtil.hexToInt(errorCodeHex); setCrc32(hex.substring(hex.length() - 8)); // æ ¡éªCRC32 String frame = getFunctionCode() + getPayloadLength() + getDestinationAddress() + getErrorCode(); String frame = getFunctionCode() + getPayloadLength() + getDestinationAddress() + errorCodeHex; this.setValidate(CRC32Utils.validateFrame(frame, getCrc32())); return this; } ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/C3ErrorEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,115 @@ package com.sandu.ximon.admin.manager.iot.rrpc.enums; /** * @author ZZQ * å çµæ¡©éè¯¯ä¸æ¥ç * "æ éç ï¼ï¼ç¨äºè¿å¶è¡¨ç¤ºï¼ * 0x00000000,äºè¿å¶å³ä¸º[bit31:bit0] * å¯¹åºæ ébitä½ç½®1ï¼æ£å¸¸ç½®0" * bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 * ï¼å ·ä½é误å 容åèé讯åè®®ææ¡£ï¼ */ public enum C3ErrorEnum { /** * éä¿¡æµç¨è¶ æ¶ */ IO_OVER_TIME(1, "éä¿¡æµç¨è¶ æ¶"), /** * æ çµå */ NO_VOL(2, "æ çµå"), /** * æ çµæµ */ NO_CUR(4, "æ çµæµ"), /** * æ åç */ NO_POWER(8, "æ åç"), /** * å çµåçè¿å° */ LOWER_POWER(16, "å çµåçè¿å°"), /** * æ¼çµ */ OUTPUT_ELE_LEAKAGE(32, "æ¼çµ"), /** * è®¾å¤æ¸©åº¦è¿é« */ DEVICE_TEMPERATURE_HIGHER(64, "è®¾å¤æ¸©åº¦è¿é«"), /** * è®¾å¤æ¸©åº¦è¿ä½ */ DEVICE_TEMPERATURE_LOW(128, "è®¾å¤æ¸©åº¦è¿ä½"), /** * å çµè¶ æ¶ */ CHARING_OVER_TIME(256, "å çµè¶ æ¶"), /** * æ ç½ç» */ NO_NETWORK(512, "æ ç½ç»"), /** * è¿æ¥ä¸»æºè¶ æ¶ */ CONNECT_HOST_OVER_TIMED(1024, "è¿æ¥ä¸»æºè¶ æ¶"), /** * è¿æ¥æå¡å¨è¶ æ¶ */ CONNECT_SERVICE_OVER_TIMED(2048, "è¿æ¥æå¡å¨è¶ æ¶"), /** * 触æ¸å±æ ååº */ LED_ERROR(4096, "触æ¸å±æ ååº"), /** * åå ¥Flash失败 */ INPUT_FLASH_ERROR(8192, "åå ¥Flash失败"), /** * åå ¥EEProm失败 */ INPUT_EEPROM_ERROR(16384, "åå ¥EEProm失败"), /** * çµåè¿ä½ */ LOWER_VOL(32768, "çµåè¿ä½"), /** * çµåè¿é« */ OVER_VOL(65536, "çµåè¿é«"), /** * å°éæ éï¼ä¸è½éä¸ï¼ */ LOCK_ERROR(131072, "å°éæ éï¼ä¸è½éä¸ï¼"), /** * å°éæ éï¼ä¸è½è§£éï¼ */ UNLOCK_ERROR(262144, "å°éæ éï¼ä¸è½è§£éï¼"), /** * å çµå£1æ é */ Charging_port_error(524288, "å çµå£1æ é"), /** * å çµå£1ä¸è½è¿æ¥è½¦æº */ CONNECT_DEVICE_ERROR(2097152, "å çµå£1ä¸è½è¿æ¥è½¦æº"), ; private final Integer code; private final String message; C3ErrorEnum(Integer code, String message) { this.code = code; this.message = message; } public String getMessage() { return message; } public Integer getCode() { return code; } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java
@@ -1,8 +1,11 @@ package com.sandu.ximon.admin.service; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3ErrorCodeReportInnerFrame; import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ErrorEnum; import com.sandu.ximon.dao.domain.C3mReportError; import com.sandu.ximon.dao.mapper.C3mReportErrorMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; /** @@ -10,7 +13,28 @@ * @date 2022/7/27 */ @Service @AllArgsConstructor public class C3mReportErrorService extends BaseServiceImpl<C3mReportErrorMapper, C3mReportError> { /** * ä¿åå çµæ¡©æ éä¿¡æ¯ * * @param codeRespInnerFrame */ public void saveReportError(A5C3ErrorCodeReportInnerFrame codeRespInnerFrame) { C3mReportError c3MReportError = new C3mReportError(); c3MReportError.setC3Mac(codeRespInnerFrame.getDestinationAddress()); c3MReportError.setErrorCode(codeRespInnerFrame.getErrorCode()); StringBuilder sb = new StringBuilder(); Integer errorCode = codeRespInnerFrame.getErrorCode(); C3ErrorEnum[] values = C3ErrorEnum.values(); for (C3ErrorEnum value : values) { if ((value.getCode() & errorCode) > 0) { sb.append(value.getMessage()); } } c3MReportError.setErrorMsg(sb.toString()); save(c3MReportError); } }