From 46203ee88249d9a4046f3d453deb41edc562cf6c Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期二, 12 十二月 2023 12:36:53 +0800
Subject: [PATCH] 提交网关心跳和设备状态

---
 src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java |   75 ++++++++++++++++++++++++++++++-------
 1 files changed, 61 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
index f91b0b8..7ba5fdc 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
@@ -1,14 +1,20 @@
 package com.fzzy.gateway.hx2023.service;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.fzzy.api.data.PushProtocol;
 import com.fzzy.gateway.api.GatewayDeviceReportService;
 import com.fzzy.gateway.data.BaseReqData;
 import com.fzzy.gateway.data.BaseResp;
 import com.fzzy.gateway.entity.GatewayDevice;
 import com.fzzy.gateway.hx2023.ScConstant;
+import com.fzzy.gateway.hx2023.data.LprData;
+import com.fzzy.gateway.hx2023.data.WebSocketPacket;
+import com.fzzy.gateway.hx2023.data.WebSocketPacketHeader;
+import com.fzzy.gateway.hx2023.data.WeightInfo;
 import com.fzzy.gateway.hx2023.kafka.KafkaDeviceReportService;
 import com.fzzy.mqtt.MqttGatewayService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -25,18 +31,6 @@
     @Override
     public String getProtocol() {
         return PushProtocol.GATEWAY_SC_2023.getCode();
-    }
-
-    @Override
-    public String report2GatewayBySn(double weigh, GatewayDevice device) {
-
-        if (null == device) {
-            log.error("-----------娌℃湁鑾峰彇鍒拌澶囬厤缃俊鎭�-----");
-            return "ERROR:娌℃湁鑾峰彇鍒拌澶囬厤缃俊鎭�";
-        }
-
-
-        return null;
     }
 
     @Override
@@ -59,7 +53,35 @@
 
         String topic = ScConstant.TOPIC_MESSAGE_REPORT;
 
-        topic = topic.replace("${productId}", reqData.getProductId()).replace("{deviceId}", reqData.getDeviceId());
+        topic = topic.replace("${productId}", reqData.getProductId()).replace("${deviceId}", reqData.getDeviceId());
+
+        if (null == reqData.getData()) {
+            GatewayDevice device = reqData.getDevice();
+
+            WebSocketPacket packet = new WebSocketPacket();
+
+            WebSocketPacketHeader header = new WebSocketPacketHeader();
+            header.setDeviceName(device.getDeviceName());
+            header.setProductId(device.getProductId());
+            packet.setHeaders(header);
+            packet.setMessageType(ScConstant.MESSAGE_TYPE_REPORT_PROPERTY);
+            packet.setDeviceId(device.getDeviceId());
+
+            //璁剧疆淇℃伅涓讳綋
+            WeightInfo weightInfo = new WeightInfo();
+            weightInfo.setGrossWeight(reqData.getWeight());
+            weightInfo.setNetWeight(reqData.getWeight());
+            weightInfo.setNetWeight(reqData.getWeight());
+            weightInfo.setWeightUnit("KG");
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("weightInfo", JSONObject.toJSONString(weightInfo));
+
+            packet.setProperties(jsonObject);
+
+            packet.setTimestamp(System.currentTimeMillis());
+
+            reqData.setData(JSONObject.toJSONString(packet));
+        }
 
         publishService.publishMqttWithTopic(reqData.getData(), topic);
 
@@ -72,7 +94,32 @@
     @Override
     public BaseResp reportLprData(BaseReqData reqData) {
         String topic = ScConstant.TOPIC_MESSAGE_REPORT;
-        topic = topic.replace("${productId}", reqData.getProductId()).replace("{deviceId}", reqData.getDeviceId());
+        topic = topic.replace("${productId}", reqData.getProductId()).replace("${deviceId}", reqData.getDeviceId());
+
+        GatewayDevice device = reqData.getDevice();
+
+        if (StringUtils.isEmpty(reqData.getData())) {
+            WebSocketPacket packet = new WebSocketPacket();
+            WebSocketPacketHeader header = new WebSocketPacketHeader();
+            header.setDeviceName(reqData.getDeviceName());
+            header.setProductId(reqData.getProductId());
+
+            packet.setHeaders(header);
+            packet.setMessageType(ScConstant.MESSAGE_TYPE_REPORT_PROPERTY);
+            packet.setDeviceId(reqData.getDeviceId());
+            packet.setMessageId(System.currentTimeMillis() + "");
+            //璁剧疆淇℃伅涓讳綋
+            LprData lpr = new LprData();
+            lpr.setDeviceId(reqData.getDeviceId());
+            lpr.setCarNumber(reqData.getCarNumber());
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("carNumber", reqData.getCarNumber());
+            jsonObject.put("position", device.getPosition());
+            packet.setProperties(jsonObject);
+            packet.setTimestamp(System.currentTimeMillis());
+
+            reqData.setData(JSONObject.toJSONString(packet));
+        }
 
         publishService.publishMqttWithTopic(reqData.getData(), topic);
 

--
Gitblit v1.9.3