|
|
@@ -1,17 +1,16 @@
|
|
|
package com.ruoyi.data.service.impl;
|
|
|
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import com.ruoyi.common.utils.ModbusUtils;
|
|
|
import com.ruoyi.common.utils.mqtt.MQTTConnect;
|
|
|
-import com.ruoyi.data.domain.DataFormatBean;
|
|
|
-import com.ruoyi.data.domain.TblDatapoint;
|
|
|
-import com.ruoyi.data.domain.TblModbusTcp;
|
|
|
-import com.ruoyi.data.domain.TblMqtt;
|
|
|
-import com.ruoyi.data.mapper.TblDatapointMapper;
|
|
|
-import com.ruoyi.data.mapper.TblModbusTcpMapper;
|
|
|
+import com.ruoyi.data.domain.*;
|
|
|
+import com.ruoyi.data.domain.vo.TblEquipmentVo;
|
|
|
+import com.ruoyi.data.mapper.*;
|
|
|
import com.ruoyi.data.service.DataDealservice;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
@RequiredArgsConstructor
|
|
|
@@ -22,12 +21,21 @@ public class DataDealServiceImpl implements DataDealservice {
|
|
|
|
|
|
private final TblModbusTcpMapper tblModbusTcpMapper;
|
|
|
|
|
|
+ private final TblUnitMapper tblUnitMapper;
|
|
|
+
|
|
|
private final ModbusUtils modbusUtils;
|
|
|
+
|
|
|
+ private final TblEquipmentMapper tblEquipmentMapper;
|
|
|
+
|
|
|
+ private final TblMqttMapper tblMqttMapper;
|
|
|
+
|
|
|
+ private final TblEquipmentMqttMapper tbleEquipmentMqttMapper;
|
|
|
@Override
|
|
|
- public String getModBusTcp(DataFormatBean dataFormatBean) {
|
|
|
+ public String getModBusTcp(TblDatapoint tblDatapoint, TblModbusTcp tblModbusTcp) {
|
|
|
String value = "";
|
|
|
- TblDatapoint tblDatapoint = datapointMapper.selectById(dataFormatBean.getPointId());
|
|
|
- TblModbusTcp tblModbusTcp = tblModbusTcpMapper.selectById(dataFormatBean.getModbusUuId());
|
|
|
+// TblDatapoint tblDatapoint = datapointMapper.selectById(dataFormatBean.getPointId());
|
|
|
+// TblModbusTcp tblModbusTcp = tblModbusTcpMapper.selectById(dataFormatBean.getModbusUuId());
|
|
|
+ TblUnit tblUnit = tblUnitMapper.selectById(tblDatapoint.getDataType());
|
|
|
String str = "holding-register:"+(tblDatapoint.getAddr()+tblDatapoint.getAddrOffset())+":UINT["+tblDatapoint.getLen()+"]";
|
|
|
String url = "modbus-tcp://"+tblModbusTcp.getServerIp()+":"+tblModbusTcp.getServerPort();
|
|
|
String connectKey = "tcp"+tblModbusTcp.getUuid();
|
|
|
@@ -77,8 +85,7 @@ public class DataDealServiceImpl implements DataDealservice {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void pubMqttClient(TblMqtt tblMqtt,String topic,int qos,String msg) {
|
|
|
+ public void pubMqttClient(MqttObj tblMqtt,String topic,int qos,String msg) {
|
|
|
MQTTConnect mqttConnect = new MQTTConnect();
|
|
|
try {
|
|
|
mqttConnect.pubMqttClient(tblMqtt.getServerAddress(),tblMqtt.getUuid(),tblMqtt.getAccount(),tblMqtt.getPassword(),topic,qos,msg);
|
|
|
@@ -87,5 +94,32 @@ public class DataDealServiceImpl implements DataDealservice {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void getDataToMqtt(TblEquipmentVo tblEquipment) {
|
|
|
+ TblDatapoint dataPointParam = new TblDatapoint();
|
|
|
+ dataPointParam.setDeviceId(tblEquipment.getId());
|
|
|
+ TblModbusTcp tblModbusTcp = tblModbusTcpMapper.selectById(tblEquipment.getProtocalId());
|
|
|
+ List<TblDatapoint> datapointList= datapointMapper.selectByDeviceId(dataPointParam);
|
|
|
+ JSONObject jsonObject = new JSONObject ();
|
|
|
+ for(TblDatapoint datapoint : datapointList){
|
|
|
+ String value = this.getModBusTcp(datapoint,tblModbusTcp);
|
|
|
+ jsonObject.put(datapoint.getValueType(),value);
|
|
|
+ }
|
|
|
+ String jsonStr = jsonObject.toString();
|
|
|
+ System.out.println(jsonStr);
|
|
|
+ MqttObj tblMqtt = new MqttObj();
|
|
|
+ tblMqtt.setEquipmentId(tblEquipment.getId());
|
|
|
+ List<MqttObj> tblMqttList = tbleEquipmentMqttMapper.selectMqttListByDeviceId(tblMqtt);
|
|
|
+ for(MqttObj obj:tblMqttList){
|
|
|
+ JSONObject topicObj = obj.getTopicQos("tcp");
|
|
|
+ if(topicObj != null){
|
|
|
+ String topic = topicObj.get("name").toString().replace("#","");
|
|
|
+ this.pubMqttClient(obj,topic,Integer.parseInt(topicObj.get("qos").toString()),jsonStr);
|
|
|
+ }else{
|
|
|
+ String topic = "sensor/modbustcp/"+tblEquipment.getId();
|
|
|
+ this.pubMqttClient(obj,topic,0,jsonStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|