vince
2023-11-08 96f7af2f3bf9a36dd48e0e6bf4f8a8ca1e31ed7d
src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
@@ -1,11 +1,16 @@
package com.fzzy.gateway.hx2023.service;
import com.alibaba.fastjson2.JSONObject;
import com.fzzy.api.data.GatewayProtocol;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.gateway.api.DeviceReportService;
import com.fzzy.gateway.entity.GatewayDevice;
import com.fzzy.gateway.hx2023.ScConstant;
import com.fzzy.gateway.hx2023.data.KafaGrainData;
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.KafkaDeviceReport;
import com.fzzy.gateway.hx2023.websocket.WebSocketDeviceReport;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -19,6 +24,8 @@
    @Resource
    private WebSocketDeviceReport webSocketDeviceReport;
    @Resource
    private KafkaDeviceReport kafkaDeviceReport;
    @Override
    public String getProvinceProtocol() {
@@ -38,19 +45,42 @@
            WebSocketPacket packet = new WebSocketPacket();
            //productId的值在webSocket执行发送方法中补充
            WebSocketPacketHeader header = new WebSocketPacketHeader();
            header.setDeviceName(device.getDeviceName());
            header.setProductId("hx-weigh-big-01");
            //header.set
            packet.setHeaders(header);
            packet.setMessageType("");
            packet.setMessageType(ScConstant.MESSAGE_TYPE_REPORT_PROPERTY);
            packet.setDeviceId(device.getDeviceId());
            packet.setProperties(null);
            //设置信息主体
            WeightInfo weightInfo = new WeightInfo();
            weightInfo.setGrossWeight(weigh);
            weightInfo.setNetWeight(weigh);
            weightInfo.setNetWeight(weigh);
            weightInfo.setWeightUnit("KG");
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("weightInfo", JSONObject.toJSONString(weightInfo));
            packet.setProperties(jsonObject);
            packet.setTimestamp(System.currentTimeMillis());
            webSocketDeviceReport.sendByPacket(packet);
        }
        if (GatewayProtocol.GATE_MQTT.equals(device.getPushProtocol())) {
            //TODO ---->>>后期添加支持
        }
        return null;
    }
    @Override
    public String pushGrainData2Cloud(KafaGrainData data) {
        return kafkaDeviceReport.sendGrainData2Cloud(data);
    }
}