From ebaaa34038ebda73630c9ab82465c5f76692b5c2 Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期二, 05 十二月 2023 00:01:48 +0800 Subject: [PATCH] 提交粮情协议2,完成 --- 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