Ver Fonte

通过设备获取数据并发布到mqtt

liwei19941102 há 2 anos atrás
pai
commit
7ec333ee27
19 ficheiros alterados com 319 adições e 47 exclusões
  1. 16 6
      ruoyi-common/src/main/java/com/ruoyi/common/utils/mqtt/MQTTConnect.java
  2. 46 2
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblModBusController.java
  3. 81 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/MqttObj.java
  4. 8 2
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDatapoint.java
  5. 6 5
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipment.java
  6. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblDatapointBo.java
  7. 4 4
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentBo.java
  8. 7 2
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblDatapointVo.java
  9. 3 3
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentVo.java
  10. 4 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblDatapointMapper.java
  11. 11 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblEquipmentMqttMapper.java
  12. 7 6
      ruoyi-system/src/main/java/com/ruoyi/data/service/DataDealservice.java
  13. 45 11
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/DataDealServiceImpl.java
  14. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblDatapointServiceImpl.java
  15. 2 2
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentServiceImpl.java
  16. 11 0
      ruoyi-system/src/main/resources/mapper/data/TblDatapointMapper.xml
  17. 2 2
      ruoyi-system/src/main/resources/mapper/data/TblEquipmentMapper.xml
  18. 31 0
      ruoyi-system/src/main/resources/mapper/data/TblEquipmentModbusMapper.xml
  19. 33 0
      ruoyi-system/src/main/resources/mapper/data/TblEquipmentMqttMapper.xml

+ 16 - 6
ruoyi-common/src/main/java/com/ruoyi/common/utils/mqtt/MQTTConnect.java

@@ -35,6 +35,9 @@ public class MQTTConnect {
             mqttClient.setCallback(mqttCallback);
         }
         mqttClient.connect(options);
+        String key = "mqtt"+clientId;
+        CacheManagerEntity cacheManagerEntity = new CacheManagerEntity(mqttClient);
+        CacheManager.putCache(key,cacheManagerEntity);
     }
 
     /**
@@ -94,9 +97,6 @@ public class MQTTConnect {
     public void createMqttConnect(String Host,String clientId,String userName, String passWord) throws MqttException {
            MQTTConnect mqttConnect = new MQTTConnect();
            mqttConnect.setMqttClient(Host, clientId, userName,passWord,new Callback());
-           String key = "mqtt"+clientId;
-           CacheManagerEntity cacheManagerEntity = new CacheManagerEntity(mqttClient);
-           CacheManager.putCache(key,cacheManagerEntity);
     }
 
     /**
@@ -119,13 +119,23 @@ public class MQTTConnect {
     }
 
     public void pubMqttClient(String Host,String clientId,String userName, String passWord,String topic,int qos,String msg) throws MqttException {
+              MQTTConnect mqttConnect = new MQTTConnect();
               MqttClient mqttClientOld = (MqttClient) CacheManager.getCacheDataByKey("mqtt"+clientId);
               if(mqttClientOld != null){
-                  mqttClient = mqttClientOld;
+                  mqttConnect.setMqttClient(mqttClientOld);
+                  //mqttClient = mqttClientOld;
               }else{
-                  this.createMqttConnect(Host,clientId,userName,passWord);
+                  mqttConnect.setMqttClient(Host, clientId, userName,passWord,new Callback());
               }
-              this.pub(topic,msg,qos);
+              mqttConnect.pub(topic,msg,qos);
+    }
+
+    public MqttClient getMqttClient() {
+        return mqttClient;
+    }
+
+    public void setMqttClient(MqttClient mqttClient) {
+        this.mqttClient = mqttClient;
     }
 
     /**

+ 46 - 2
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblModBusController.java

@@ -9,17 +9,29 @@ import com.ruoyi.common.utils.mqtt.MQTTConnect;
 import com.ruoyi.common.utils.redis.CacheUtils;
 import com.ruoyi.data.domain.DataFormatBean;
 import com.ruoyi.data.domain.TblDatapoint;
+import com.ruoyi.data.domain.TblEquipment;
 import com.ruoyi.data.domain.TblModbusTcp;
 import com.ruoyi.data.domain.bo.TblMqttBo;
+import com.ruoyi.data.domain.vo.TblEquipmentVo;
 import com.ruoyi.data.domain.vo.TblMqttVo;
 import com.ruoyi.data.service.DataDealservice;
 import com.ruoyi.data.service.ITblDatapointService;
+import com.ruoyi.data.service.ITblEquipmentService;
 import lombok.RequiredArgsConstructor;
+import org.ehcache.xml.model.ThreadPoolsType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
 @Validated
 @RequiredArgsConstructor
 @RestController
@@ -32,10 +44,42 @@ public class TblModBusController extends BaseController {
 
     private final DataDealservice dealservice;
 
+    private final ITblEquipmentService tblEquipmentService;
+
+    static Queue<String> queue = new ConcurrentLinkedQueue<String>();
+
     @GetMapping("/test")
     public void test(DataFormatBean bean){
-        dealservice.setModBusTcp(bean);
-        dealservice.getModBusTcp(bean);
+//        dealservice.setModBusTcp(bean);
+//        dealservice.getModBusTcp(bean);
+          TblEquipmentVo tblEquipment = tblEquipmentService.queryById(bean.getPointId());
+          dealservice.getDataToMqtt(tblEquipment);
+    }
+
+
+    @GetMapping("/thread")
+    public void thread(DataFormatBean bean){
+//        dealservice.setModBusTcp(bean);
+//        dealservice.getModBusTcp(bean);
+        ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
+        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+        System.out.println("时间:" + sdf.format(new Date()) );
+        for (int i = 0; i < queue.size(); i++) {
+            executor.scheduleWithFixedDelay(new Runnable() {
+                @Override
+                public void run() {
+                    String value = ThreadPoolTask.queue.poll();
+                    if (value != "" && null != value) {
+                        System.out.println("时间:" + sdf.format(new Date()) + " 线程" + Thread.currentThread().getName() + " 执行了task: " + value);
+                    }
+                    try {
+                        TimeUnit.SECONDS.sleep(5);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }, 2, 6, TimeUnit.SECONDS);
+        }
     }
 
     @GetMapping("/modbusTcpCache")

+ 81 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/MqttObj.java

@@ -0,0 +1,81 @@
+package com.ruoyi.data.domain;
+
+import cn.hutool.json.JSON;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.util.Map;
+
+@Data
+public class MqttObj extends BaseEntity {
+    private static final long serialVersionUID=1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    private Long equipmentId;
+    /**
+     * 协议名称
+     */
+    private String protocolName;
+    /**
+     * 协议描述
+     */
+    private String protocolDesc;
+    /**
+     * 协议类型
+     */
+    private String protocolType;
+    /**
+     * Mqtt地址
+     */
+    private String serverAddress;
+    /**
+     * Mqtt主题
+     */
+    private String serverTopic;
+    /**
+     * 账号
+     */
+    private String account;
+    /**
+     * 密码
+     */
+    private String password;
+    /**
+     * 配置唯一uuid
+     */
+    private String uuid;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * mqtt状态 0:关闭,1:启用
+     */
+    private Long status;
+
+    private Map<String,Integer> topic;
+
+    public JSONObject getTopicQos(String type) {
+        JSONArray jsonArray = new JSONArray(serverTopic);
+        for(Object obj:jsonArray){
+            JSONObject jsonObject = new JSONObject(obj);
+            String name = (String) jsonObject.get("name");
+            if(name.contains(type)){
+                return jsonObject;
+            }
+        }
+        return null;
+    }
+
+    public void setTopic(Map<String, Integer> topic) {
+        this.topic = topic;
+    }
+}

+ 8 - 2
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDatapoint.java

@@ -23,7 +23,7 @@ public class TblDatapoint extends BaseEntity {
     private static final long serialVersionUID=1L;
 
     /**
-     * 
+     *
      */
     @TableId(value = "id")
     private Long id;
@@ -38,7 +38,7 @@ public class TblDatapoint extends BaseEntity {
     /**
      * 数据类型
      */
-    private String dataType;
+    private Long dataType;
     /**
      * 从设备号
      */
@@ -64,4 +64,10 @@ public class TblDatapoint extends BaseEntity {
      */
     private String remark;
 
+    private String unitName;
+
+    private String unitType;
+
+    private int toOffset;
+
 }

+ 6 - 5
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipment.java

@@ -1,6 +1,7 @@
 package com.ruoyi.data.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.io.Serializable;
@@ -23,7 +24,7 @@ public class TblEquipment extends BaseEntity {
     private static final long serialVersionUID=1L;
 
     /**
-     * 
+     *
      */
     @TableId(value = "id")
     private Long id;
@@ -68,12 +69,12 @@ public class TblEquipment extends BaseEntity {
      */
     private String remark;
     /**
-     * 拓展字段1
+     * 协议Id
      */
-    private String expr1;
+    private Long protocalId;
     /**
-     * 拓展字段2
+     * 协议类型
      */
-    private String expr2;
+    private Integer protocalType;
 
 }

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblDatapointBo.java

@@ -45,7 +45,7 @@ public class TblDatapointBo extends BaseEntity {
      * 数据类型
      */
     @NotBlank(message = "数据类型不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String dataType;
+    private Long dataType;
 
     /**
      * 从设备号

+ 4 - 4
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentBo.java

@@ -114,16 +114,16 @@ public class TblEquipmentBo extends BaseEntity {
     private String remark;
 
     /**
-     * 拓展字段1
+     * 协议Id
      */
 //    @NotBlank(message = "拓展字段1不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String expr1;
+    private Long protocalId;
 
     /**
-     * 拓展字段2
+     * 协议类型
      */
 //    @NotBlank(message = "拓展字段2不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String expr2;
+    private Integer protocalType;
 
 
 }

+ 7 - 2
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblDatapointVo.java

@@ -22,7 +22,7 @@ public class TblDatapointVo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
-     * 
+     *
      */
     @ExcelProperty(value = "")
     private Long id;
@@ -43,7 +43,7 @@ public class TblDatapointVo implements Serializable {
      * 数据类型
      */
     @ExcelProperty(value = "数据类型")
-    private String dataType;
+    private Long dataType;
 
     /**
      * 从设备号
@@ -81,5 +81,10 @@ public class TblDatapointVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    private String unitName;
+
+    private String unitType;
+
+    private int toOffset;
 
 }

+ 3 - 3
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentVo.java

@@ -22,7 +22,7 @@ public class TblEquipmentVo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
-     * 
+     *
      */
     @ExcelProperty(value = "")
     private Long id;
@@ -91,13 +91,13 @@ public class TblEquipmentVo implements Serializable {
      * 拓展字段1
      */
     @ExcelProperty(value = "拓展字段1")
-    private String expr1;
+    private Long protocalId;
 
     /**
      * 拓展字段2
      */
     @ExcelProperty(value = "拓展字段2")
-    private String expr2;
+    private Integer protocalType;
 
 
 }

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblDatapointMapper.java

@@ -4,6 +4,8 @@ import com.ruoyi.data.domain.TblDatapoint;
 import com.ruoyi.data.domain.vo.TblDatapointVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 
+import java.util.List;
+
 /**
  * 点位数据Mapper接口
  *
@@ -12,4 +14,6 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
  */
 public interface TblDatapointMapper extends BaseMapperPlus<TblDatapointMapper, TblDatapoint, TblDatapointVo> {
 
+    List<TblDatapoint> selectByDeviceId(TblDatapoint tblDatapoint);
+
 }

+ 11 - 0
ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblEquipmentMqttMapper.java

@@ -0,0 +1,11 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.MqttObj;
+
+import java.util.List;
+
+public interface TblEquipmentMqttMapper {
+
+    List<MqttObj> selectMqttListByDeviceId(MqttObj mqttObj);
+
+}

+ 7 - 6
ruoyi-system/src/main/java/com/ruoyi/data/service/DataDealservice.java

@@ -1,13 +1,14 @@
 package com.ruoyi.data.service;
 
-import com.ruoyi.data.domain.DataFormatBean;
-import com.ruoyi.data.domain.TblModbusTcp;
-import com.ruoyi.data.domain.TblMqtt;
+import com.ruoyi.data.domain.*;
+import com.ruoyi.data.domain.vo.TblEquipmentVo;
 
 //协议获取数据接口
 public interface DataDealservice {
 
-    String getModBusTcp(DataFormatBean dataFormatBean);
+    String getModBusTcp(TblDatapoint tblDatapoint,TblModbusTcp tblModbusTcp);
+
+//    String getModBusTcp(MQ tblDatapoint, TblModbusTcp tblModbusTcp);
 
     void setModBusTcp(DataFormatBean dataFormatBean);
 
@@ -15,7 +16,7 @@ public interface DataDealservice {
 
     void createMqttConnect(TblMqtt tblMqtt);
 
-    void pubMqttClient(TblMqtt tblMqtt,String topic,int qos,String msg);
-
+   // void pubMqttClient(TblMqtt tblMqtt,String topic,int qos,String msg);
 
+    void getDataToMqtt(TblEquipmentVo tblEquipment);
 }

+ 45 - 11
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/DataDealServiceImpl.java

@@ -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);
+                }
+            }
+    }
 
 }

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblDatapointServiceImpl.java

@@ -68,7 +68,7 @@ public class TblDatapointServiceImpl implements ITblDatapointService {
         LambdaQueryWrapper<TblDatapoint> lqw = Wrappers.lambdaQuery();
         lqw.like(StringUtils.isNotBlank(bo.getName()), TblDatapoint::getName, bo.getName());
         lqw.eq(bo.getDeviceId() != null, TblDatapoint::getDeviceId, bo.getDeviceId());
-        lqw.eq(StringUtils.isNotBlank(bo.getDataType()), TblDatapoint::getDataType, bo.getDataType());
+        lqw.eq(bo.getDataType() != null, TblDatapoint::getDataType, bo.getDataType());
         lqw.eq(StringUtils.isNotBlank(bo.getSlaveDeviceNumber()), TblDatapoint::getSlaveDeviceNumber, bo.getSlaveDeviceNumber());
         lqw.eq(bo.getAddr() != null, TblDatapoint::getAddr, bo.getAddr());
         lqw.eq(bo.getAddrOffset() != null, TblDatapoint::getAddrOffset, bo.getAddrOffset());

+ 2 - 2
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentServiceImpl.java

@@ -70,8 +70,8 @@ public class TblEquipmentServiceImpl implements ITblEquipmentService {
         lqw.eq(StringUtils.isNotBlank(bo.getManufacturer()), TblEquipment::getManufacturer, bo.getManufacturer());
         lqw.eq(StringUtils.isNotBlank(bo.getProducer()), TblEquipment::getProducer, bo.getProducer());
         lqw.eq(StringUtils.isNotBlank(bo.getPictures()), TblEquipment::getPictures, bo.getPictures());
-        lqw.eq(StringUtils.isNotBlank(bo.getExpr1()), TblEquipment::getExpr1, bo.getExpr1());
-        lqw.eq(StringUtils.isNotBlank(bo.getExpr2()), TblEquipment::getExpr2, bo.getExpr2());
+        lqw.eq(bo.getProtocalId() != null, TblEquipment::getProtocalId, bo.getProtocalId());
+        lqw.eq(bo.getEquipmentTypeId() != null, TblEquipment::getEquipmentTypeId, bo.getEquipmentTypeId());
         return lqw;
     }
 

+ 11 - 0
ruoyi-system/src/main/resources/mapper/data/TblDatapointMapper.xml

@@ -19,7 +19,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime" column="create_time"/>
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
+        <result property="unitName" column="unitName"/>
+        <result property="unitType" column="unitType"/>
+        <result property="toOffset" column="toOffset"/>
+
     </resultMap>
 
+    <select id="selectByDeviceId" parameterType="TblDatapoint" resultMap="TblDatapointResult">
+            select a.*,b.name as unitName,b.unit_type as unitType,b.to_offset as toOffset
+            from tbl_datapoint a left join tbl_unit b on a.data_type = b.id
+            <where>
+            <if test="deviceId != null "> and device_id = #{deviceId}</if>
+            </where>
+    </select>
 
 </mapper>

+ 2 - 2
ruoyi-system/src/main/resources/mapper/data/TblEquipmentMapper.xml

@@ -16,8 +16,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="producer" column="producer"/>
         <result property="pictures" column="pictures"/>
         <result property="remark" column="remark"/>
-        <result property="expr1" column="expr1"/>
-        <result property="expr2" column="expr2"/>
+        <result property="protocalId" column="protocal_id"/>
+        <result property="protocalType" column="protocal_type"/>
         <result property="createBy" column="create_by"/>
         <result property="createTime" column="create_time"/>
         <result property="updateBy" column="update_by"/>

+ 31 - 0
ruoyi-system/src/main/resources/mapper/data/TblEquipmentModbusMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.data.mapper.TblModbusTcpMapper">
+
+    <resultMap type="com.ruoyi.data.domain.TblModbusTcp" id="EquipmentModbusTcpResult">
+        <result property="id" column="id"/>
+        <result property="protocolName" column="protocol_name"/>
+        <result property="protocolDesc" column="protocol_desc"/>
+        <result property="protocolType" column="protocol_type"/>
+        <result property="serverIp" column="server_ip"/>
+        <result property="serverPort" column="server_port"/>
+        <result property="apiUrl" column="api_url"/>
+        <result property="uuid" column="uuid"/>
+        <result property="intervals" column="intervals"/>
+        <result property="remark" column="remark"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <select id="selectTcpByDeviceId" parameterType="TblEquipment" resultMap="EquipmentModbusTcpResult">
+        select b.*
+        from tbl_equipment_modbus a left join tbl_modbus_tcp on a.modbus_id = b.id
+        <where>
+            <if test="id != null "> and a.equipment_id = #{id}</if>
+        </where>
+    </select>
+</mapper>

+ 33 - 0
ruoyi-system/src/main/resources/mapper/data/TblEquipmentMqttMapper.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.data.mapper.TblEquipmentMqttMapper">
+
+    <resultMap type="com.ruoyi.data.domain.MqttObj" id="MqttObjResult">
+        <result property="id" column="id"/>
+        <result property="equipmentId" column="equipment_id"/>
+        <result property="protocolName" column="protocol_name"/>
+        <result property="protocolDesc" column="protocol_desc"/>
+        <result property="protocolType" column="protocol_type"/>
+        <result property="serverAddress" column="server_address"/>
+        <result property="serverTopic" column="server_topic"/>
+        <result property="account" column="account"/>
+        <result property="password" column="password"/>
+        <result property="uuid" column="uuid"/>
+        <result property="remark" column="remark"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+    </resultMap>
+
+    <select id="selectMqttListByDeviceId" parameterType="MqttObj" resultMap="MqttObjResult">
+          select a.equipment_id as equipmentId,b.* from tbl_equipment_mqtt a left join tbl_mqtt b on a.mqtt_id = b.id
+        <where>
+            <if test="equipmentId != null "> and a.equipment_id = #{equipmentId}</if>
+        </where>
+    </select>
+
+</mapper>