From db9bf7a442714ffa8cbe030cdf3db67bd534c601 Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期六, 18 十一月 2023 14:28:46 +0800 Subject: [PATCH] 增加HTTP地磅协议实现 --- src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 34 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..56683c8 100644 --- a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java +++ b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java @@ -1,11 +1,15 @@ 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.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; @@ -28,18 +32,6 @@ } @Override - public String report2GatewayBySn(double weigh, GatewayDevice device) { - - if (null == device) { - log.error("-----------娌℃湁鑾峰彇鍒拌澶囬厤缃俊鎭�-----"); - return "ERROR:娌℃湁鑾峰彇鍒拌澶囬厤缃俊鎭�"; - } - - - return null; - } - - @Override public BaseResp reportGrainData(BaseReqData reqData) { String topic = ScConstant.TOPIC_REPORT; @@ -59,7 +51,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 +92,7 @@ @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()); publishService.publishMqttWithTopic(reqData.getData(), topic); -- Gitblit v1.9.3