From 423b61bfb18ceab430303bada28f93631f0e8392 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 12 八月 2022 16:05:17 +0800
Subject: [PATCH] 充电桩
---
dao/src/main/resources/mapper/C3mReportErrorMapper.xml | 1
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/C3ErrorEnum.java | 42 +++++++-------
ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java | 1
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3ChargingController.java | 28 ++++----
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5C3ErrorCodeReportInnerFrame.java | 52 ++++++++++++++++-
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java | 4 +
dao/src/main/java/com/sandu/ximon/dao/domain/C3mReportError.java | 5 -
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java | 12 ---
8 files changed, 87 insertions(+), 58 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/C3mReportError.java b/dao/src/main/java/com/sandu/ximon/dao/domain/C3mReportError.java
index 9529bdc..c59e178 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/C3mReportError.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/C3mReportError.java
@@ -28,11 +28,6 @@
private String c3Mac;
/**
- * 鏁呴殰鐮�
- */
- private Integer errorCode;
-
- /**
* 鍒涘缓鏃堕棿
*/
private LocalDateTime createTime;
diff --git a/dao/src/main/resources/mapper/C3mReportErrorMapper.xml b/dao/src/main/resources/mapper/C3mReportErrorMapper.xml
index 67b9abe..f0cdd84 100644
--- a/dao/src/main/resources/mapper/C3mReportErrorMapper.xml
+++ b/dao/src/main/resources/mapper/C3mReportErrorMapper.xml
@@ -7,7 +7,6 @@
<resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.C3mReportError">
<id property="c3mErrorId" column="c3m_error_id" jdbcType="BIGINT"/>
<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"/>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3ChargingController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3ChargingController.java
index 998335c..9c4754f 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3ChargingController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3ChargingController.java
@@ -42,20 +42,20 @@
return ResponseUtil.success(c3ChargingService.getChargingInfo(poleId));
}
-// /**
-// * 鍏呯數寮�鍚�
-// */
-// @AnonymousAccess
-// @PostMapping("/startCharging")
-// public ResponseVO<Object> startCharging(@RequestBody C3ChargingParam c3ChargingParam) {
-// String result = c3ChargingService.startCharging(c3ChargingParam.getC3Mac(), c3ChargingParam.getChargingCapacity(), c3ChargingParam.getChargeAmount());
-// if ("鎿嶄綔鎴愬姛".equals(result)) {
-// return ResponseUtil.success(result);
-// } else {
-// return ResponseUtil.fail(result);
-// }
-//
-// }
+ /**
+ * 鍏呯數寮�鍚�
+ */
+ @AnonymousAccess
+ @PostMapping("/startCharging")
+ public ResponseVO<Object> startCharging(@RequestBody C3ChargingParam c3ChargingParam) {
+ String result = c3ChargingService.startCharging(c3ChargingParam.getC3Mac(), c3ChargingParam.getChargingCapacity(), c3ChargingParam.getChargeAmount());
+ if ("鎿嶄綔鎴愬姛".equals(result)) {
+ return ResponseUtil.success(result);
+ } else {
+ return ResponseUtil.fail(result);
+ }
+
+ }
/**
* 鍏呯數缁撴潫鈥斺�斿皬绋嬪簭鐢ㄦ埛缁撴潫锛屼笉闇�瑕乼oken锛岄渶瑕乷penId
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java
index 403cd41..3d6c011 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java
@@ -134,8 +134,10 @@
/**
* 淇濆瓨C3鍏呯數妗╂晠闅滄暟鎹�
*/
- if (errorCodeRequestFrame.isValidate() && (errorCodeRequestFrame.getErrorCode() != 0)) {
+ if (errorCodeRequestFrame.isValidate() && errorCodeRequestFrame.getErrorMessage() != null) {
SpringContextHolder.getBean(C3mReportErrorService.class).saveReportError(errorCodeRequestFrame);
+ } else {
+ System.out.println("鏁版嵁鏍¢獙寮傚父锛�");
}
} else if (C3ChargingEnum.StartCharging.getCode().equals(functionCode)) {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5C3ErrorCodeReportInnerFrame.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5C3ErrorCodeReportInnerFrame.java
index 0ed6a5d..1b26226 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5C3ErrorCodeReportInnerFrame.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5C3ErrorCodeReportInnerFrame.java
@@ -3,7 +3,9 @@
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.enums.C3ErrorEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils;
+import com.sandu.ximon.admin.utils.StringUtil;
import lombok.Data;
import lombok.ToString;
@@ -21,10 +23,11 @@
/**
* 鏁呴殰鐮�
*/
- private int errorCode;
+ private String errorMessage;
@Override
public A5C3ErrorCodeReportInnerFrame transformFrame(String hex) {
+ //F04500080000048E0000001CA2D92F64
if (StrUtil.isBlank(hex)) {
return null;
}
@@ -37,14 +40,55 @@
setDestinationAddress(hex.substring(8, 16));
- //鏁呴殰鐮�
+ //鏁呴殰淇℃伅
String errorCodeHex = hex.substring(16, hex.length() - 8);
- errorCode = HexUtil.hexToInt(errorCodeHex);
+ String errorInfo = errorInfo(errorCodeHex);
+ if (!StringUtil.strIsNullOrEmpty(errorInfo)) {
+ setErrorMessage(errorInfo);
+ }
setCrc32(hex.substring(hex.length() - 8));
// 鏍¢獙CRC32
- String frame = getFunctionCode() + getPayloadLength() + getDestinationAddress() + errorCodeHex;
+ String frame = hex.substring(2,hex.length()-8);
this.setValidate(CRC32Utils.validateFrame(frame, getCrc32()));
return this;
}
+
+ /**
+ * 鏀堕泦鏁呴殰淇℃伅
+ *
+ * @param hexStr
+ * @return
+ */
+ public String errorInfo(String hexStr) {
+ String errorMsg = "";
+ String str = hexStr2BinStr(hexStr);
+
+ int index = str.indexOf("1");
+ while ((index = str.indexOf("1", index)) > 0) {
+ C3ErrorEnum[] values = C3ErrorEnum.values();
+ for (C3ErrorEnum value : values) {
+ if (value.getCode() == index) {
+ errorMsg = errorMsg + value.getMessage() + ";";
+ }
+ }
+ index = index + 1;
+ }
+ return errorMsg;
+ }
+
+ /**
+ * 16杩涘埗瀛楃涓茶浆涓轰簩杩涘埗
+ */
+ public String hexStr2BinStr(String hexStr) {
+ if (hexStr == null || hexStr.length() % 2 != 0) {
+ return null;
+ }
+ String bString = "", tmp;
+ for (int i = 0; i < hexStr.length(); i++) {
+ tmp = "0000" + Integer.toBinaryString(Integer.parseInt(hexStr.substring(i, i + 1), 16));
+ bString += tmp.substring(tmp.length() - 4);
+ }
+ return bString;
+ }
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/C3ErrorEnum.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/C3ErrorEnum.java
index 5b5f95b..33b7755 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/C3ErrorEnum.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/C3ErrorEnum.java
@@ -13,87 +13,87 @@
/**
* 閫氫俊娴佺▼瓒呮椂
*/
- IO_OVER_TIME(1, "閫氫俊娴佺▼瓒呮椂"),
+ IO_OVER_TIME(31, "閫氫俊娴佺▼瓒呮椂"),
/**
* 鏃犵數鍘�
*/
- NO_VOL(2, "鏃犵數鍘�"),
+ NO_VOL(30, "鏃犵數鍘�"),
/**
* 鏃犵數娴�
*/
- NO_CUR(4, "鏃犵數娴�"),
+ NO_CUR(29, "鏃犵數娴�"),
/**
* 鏃犲姛鐜�
*/
- NO_POWER(8, "鏃犲姛鐜�"),
+ NO_POWER(28, "鏃犲姛鐜�"),
/**
* 鍏呯數鍔熺巼杩囧皬
*/
- LOWER_POWER(16, "鍏呯數鍔熺巼杩囧皬"),
+ LOWER_POWER(27, "鍏呯數鍔熺巼杩囧皬"),
/**
* 婕忕數
*/
- OUTPUT_ELE_LEAKAGE(32, "婕忕數"),
+ OUTPUT_ELE_LEAKAGE(26, "婕忕數"),
/**
* 璁惧娓╁害杩囬珮
*/
- DEVICE_TEMPERATURE_HIGHER(64, "璁惧娓╁害杩囬珮"),
+ DEVICE_TEMPERATURE_HIGHER(25, "璁惧娓╁害杩囬珮"),
/**
* 璁惧娓╁害杩囦綆
*/
- DEVICE_TEMPERATURE_LOW(128, "璁惧娓╁害杩囦綆"),
+ DEVICE_TEMPERATURE_LOW(24, "璁惧娓╁害杩囦綆"),
/**
* 鍏呯數瓒呮椂
*/
- CHARING_OVER_TIME(256, "鍏呯數瓒呮椂"),
+ CHARING_OVER_TIME(23, "鍏呯數瓒呮椂"),
/**
* 鏃犵綉缁�
*/
- NO_NETWORK(512, "鏃犵綉缁�"),
+ NO_NETWORK(22, "鏃犵綉缁�"),
/**
* 杩炴帴涓绘満瓒呮椂
*/
- CONNECT_HOST_OVER_TIMED(1024, "杩炴帴涓绘満瓒呮椂"),
+ CONNECT_HOST_OVER_TIMED(21, "杩炴帴涓绘満瓒呮椂"),
/**
* 杩炴帴鏈嶅姟鍣ㄨ秴鏃�
*/
- CONNECT_SERVICE_OVER_TIMED(2048, "杩炴帴鏈嶅姟鍣ㄨ秴鏃�"),
+ CONNECT_SERVICE_OVER_TIMED(20, "杩炴帴鏈嶅姟鍣ㄨ秴鏃�"),
/**
* 瑙︽懜灞忔棤鍝嶅簲
*/
- LED_ERROR(4096, "瑙︽懜灞忔棤鍝嶅簲"),
+ LED_ERROR(19, "瑙︽懜灞忔棤鍝嶅簲"),
/**
* 鍐欏叆Flash澶辫触
*/
- INPUT_FLASH_ERROR(8192, "鍐欏叆Flash澶辫触"),
+ INPUT_FLASH_ERROR(18, "鍐欏叆Flash澶辫触"),
/**
* 鍐欏叆EEProm澶辫触
*/
- INPUT_EEPROM_ERROR(16384, "鍐欏叆EEProm澶辫触"),
+ INPUT_EEPROM_ERROR(17, "鍐欏叆EEProm澶辫触"),
/**
* 鐢靛帇杩囦綆
*/
- LOWER_VOL(32768, "鐢靛帇杩囦綆"),
+ LOWER_VOL(16, "鐢靛帇杩囦綆"),
/**
* 鐢靛帇杩囬珮
*/
- OVER_VOL(65536, "鐢靛帇杩囬珮"),
+ OVER_VOL(15, "鐢靛帇杩囬珮"),
/**
* 鍦伴攣鏁呴殰锛堜笉鑳介攣涓婏級
*/
- LOCK_ERROR(131072, "鍦伴攣鏁呴殰锛堜笉鑳介攣涓婏級"),
+ LOCK_ERROR(14, "鍦伴攣鏁呴殰锛堜笉鑳介攣涓婏級"),
/**
* 鍦伴攣鏁呴殰锛堜笉鑳借В閿侊級
*/
- UNLOCK_ERROR(262144, "鍦伴攣鏁呴殰锛堜笉鑳借В閿侊級"),
+ UNLOCK_ERROR(13, "鍦伴攣鏁呴殰锛堜笉鑳借В閿侊級"),
/**
* 鍏呯數鍙�1鏁呴殰
*/
- Charging_port_error(524288, "鍏呯數鍙�1鏁呴殰"),
+ Charging_port_error(12, "鍏呯數鍙�1鏁呴殰"),
/**
* 鍏呯數鍙�1涓嶈兘杩炴帴杞︽満
*/
- CONNECT_DEVICE_ERROR(2097152, "鍏呯數鍙�1涓嶈兘杩炴帴杞︽満"),
+ CONNECT_DEVICE_ERROR(10, "鍏呯數鍙�1涓嶈兘杩炴帴杞︽満"),
;
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java
index 6004160..6fe18c8 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java
@@ -32,17 +32,7 @@
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());
+ c3MReportError.setErrorMsg(codeRespInnerFrame.getErrorMessage());
save(c3MReportError);
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java
index e784c19..d088869 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java
@@ -56,7 +56,6 @@
c3ReportErrorBos.forEach(c3ReportError -> {
ErrorMsgDto errorMsgDto = new ErrorMsgDto();
errorMsgDto.setMac(c3ReportError.getC3Mac());
- errorMsgDto.setErrorCode(c3ReportError.getErrorCode());
errorMsgDto.setErrorDesc(c3ReportError.getErrorMsg());
errorMsgDto.setErrorTime(c3ReportError.getCreateTime());
errorMsgDto.setDeviceType(3);
--
Gitblit v1.9.3