From 9a139b15be65dcd83ae187bb384627097c6a811a Mon Sep 17 00:00:00 2001 From: vince <757871790@qq.com> Date: 星期二, 26 十二月 2023 20:29:16 +0800 Subject: [PATCH] 修改解析,增加仓温仓湿度 --- src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java | 89 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 75 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..2d572be 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,22 @@ package com.fzzy.gateway.hx2023.service; +import com.alibaba.fastjson2.JSONObject; import com.fzzy.api.data.PushProtocol; +import com.fzzy.data.ConfigData; 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 jdk.nashorn.internal.runtime.regexp.joni.Config; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -21,6 +29,8 @@ private KafkaDeviceReportService kafkaDeviceReportService; @Resource private MqttGatewayService publishService; + @Resource + private ConfigData configData; @Override public String getProtocol() { @@ -28,22 +38,20 @@ } @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; topic = topic.replace("${productId}", reqData.getProductId()).replace("${deviceId}", reqData.getDeviceId()); + + //濡傛灉鏄祴璇曟ā寮忎笉鎵ц鎺ㄩ�� + if(configData.getActive().indexOf("dev")>=0){ + + log.info("----------------------------鎺ㄩ�丮QTT绮儏淇℃伅锛屾敞锛氳皟璇曟ā寮忎笉鎺ㄩ��---------------------------"); + log.info("-----TOPIC-----{}", topic); + log.info("-----Message-----{}", reqData.getData()); + + return new BaseResp(); + } publishService.publishMqttWithTopic(reqData.getData(), topic); @@ -59,7 +67,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 +108,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