From 250e06806354179fccbae86fd7738f9f0ae80816 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期三, 28 九月 2022 15:10:40 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/A5LightDataEnum.java                          |    2 +
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java                                 |   35 +++++++++++++++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java                   |    7 +++
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightCleanErrorCodeInnerFrame.java |   26 +++++++++++++
 4 files changed, 69 insertions(+), 1 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java
index 32ddc22..9982a80 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java
@@ -61,9 +61,14 @@
             A5LightErrorCodeReportInnerFrame codeRespInnerFrame = new A5LightErrorCodeReportInnerFrame().transformFrame(frame.getPayload());
             log.info(codeRespInnerFrame.isValidate() + "鏄惁閫氳繃鏍¢獙");
             log.info(codeRespInnerFrame.getErrorCode() + "鏁呴殰鐮�");
-            if (codeRespInnerFrame.isValidate() && (codeRespInnerFrame.getErrorCode() != 0)) {
+            if (codeRespInnerFrame.isValidate()) {
                 SpringContextHolder.getBean(LightReportErrorService.class).saveReportError(deviceName, codeRespInnerFrame);
             }
+            //0000  琛ㄧず娌℃湁鏁呴殰锛屽彂閫佹竻闄ゆ晠闅滄寚浠�
+            if (codeRespInnerFrame.getErrorCode() == 0) {
+                System.out.println("娓呴櫎鏁呴殰鎿嶄綔!");
+                SpringContextHolder.getBean(LightReportErrorService.class).cleanErrorCode(deviceName, codeRespInnerFrame.getDestinationAddress());
+            }
         }
     }
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightCleanErrorCodeInnerFrame.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightCleanErrorCodeInnerFrame.java
new file mode 100644
index 0000000..ebef290
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightCleanErrorCodeInnerFrame.java
@@ -0,0 +1,26 @@
+package com.sandu.ximon.admin.manager.iot.frame.inner.request;
+
+import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5LightDataEnum;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum;
+import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils;
+
+/**
+ * A5->01->29 鏁呴殰鐮佷笂鎶ユ竻闄�
+ */
+public class A5LightCleanErrorCodeInnerFrame implements IRequestInnerFrame {
+    //鐏ご鍦板潃
+    private String payload;
+
+    public A5LightCleanErrorCodeInnerFrame(String address) {
+        this.payload = address;
+    }
+
+    @Override
+    public String getEncodeFrame() {
+        String functionCode = A5LightDataEnum.LightCleanErrorCode.getCode();
+        String payloadLength = "0002";
+        String frame = functionCode + payloadLength + payload;
+        return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase());
+    }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/A5LightDataEnum.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/A5LightDataEnum.java
index 06987c8..2b25b7c 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/A5LightDataEnum.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/A5LightDataEnum.java
@@ -19,6 +19,8 @@
     LightTimer("23"),
     // 娓呴櫎鍗曠伅绱鏁版嵁
     LightReset("25"),
+    //鏁呴殰鐮佷笂鎶ユ竻闄�
+    LightCleanErrorCode("29"),
     //璁剧疆鏃ュ巻锛堝悓蹇冭烦鍖呬腑鐨�6瀛楄妭鏃ユ湡鏃堕棿锛�
     SetCalendar("28"),
     LIGHT_HEART_BEAT("LightReportData:light_heart_beat/");
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java
index 113438f..064ac73 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java
@@ -1,14 +1,25 @@
 package com.sandu.ximon.admin.service;
 
 import com.github.pagehelper.PageHelper;
+import com.sandu.common.execption.BusinessException;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3QueryReportInnerFrame;
 import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightErrorCodeReportInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightOperationReportInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.request.A5LightCleanErrorCodeInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.request.C3QueryAddressReqInnerFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
 import com.sandu.ximon.admin.manager.iot.rrpc.enums.LightErrorEnum;
+import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.dao.bo.LightReportErrorBo;
 import com.sandu.ximon.dao.domain.LightReportError;
 import com.sandu.ximon.dao.mapper.LightReportErrorMapper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -17,6 +28,7 @@
  * @author chenjiantian
  * @date 2021/12/17 17:47
  */
+@Slf4j
 @Service
 public class LightReportErrorService extends BaseServiceImpl<LightReportErrorMapper, LightReportError> {
 
@@ -24,6 +36,7 @@
         LightReportError lightReportError = new LightReportError();
         lightReportError.setDeviceCode(deviceName);
         lightReportError.setErrorCode(codeRespInnerFrame.getErrorCode());
+        lightReportError.setLightAddress(codeRespInnerFrame.getDestinationAddress());
         save(lightReportError);
     }
 
@@ -74,4 +87,26 @@
         return lightReportErrorBos;
     }
 
+    /**
+     * 娓呴櫎鏁呴殰鐮�
+     *
+     * @param deviceName
+     * @param address
+     */
+    public void cleanErrorCode(String deviceName, String address) {
+        A5LightCleanErrorCodeInnerFrame a5LightCleanErrorCodeInnerFram = new A5LightCleanErrorCodeInnerFrame(address);
+
+        A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_LIGHT_DATA.getCode(), a5LightCleanErrorCodeInnerFram);
+        System.out.println(a5Frame + "            -----a5Frame");
+
+        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(deviceName, a5Frame);
+        StoreOperationRecordsUtils.storeInnerFrameData(deviceName, "鍗曠伅甯�-鍗曠伅鏁呴殰娓呴櫎", a5Frame, commonFrame);
+
+        System.out.println(commonFrame + "            -----commonFrame");
+        A5LightOperationReportInnerFrame operationReportInnerFrame = new A5LightOperationReportInnerFrame().transformFrame(commonFrame.getPayload());
+        if (operationReportInnerFrame.isValidate()) {
+            log.error("娓呴櫎鏁呴殰鐮佹垚鍔燂紝code锛�" + deviceName + "锛岀伅澶村湴鍧�锛�" + address);
+        }
+    }
 }
+

--
Gitblit v1.9.3