liwei19941102 2 سال پیش
والد
کامیت
71528748a2
28فایلهای تغییر یافته به همراه1153 افزوده شده و 18 حذف شده
  1. 21 0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/PoolUtils.java
  2. 99 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblDataController.java
  3. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblEquipmentMqttController.java
  4. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblGatewayEquipmentController.java
  5. 58 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/DataPointUnit.java
  6. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/DeviceDataPoint.java
  7. 16 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/GateWayDevice.java
  8. 60 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDataObj.java
  9. 5 5
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDatapoint.java
  10. 2 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDtaDevices.java
  11. 39 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipmentMqtt.java
  12. 39 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblGatewayEquipment.java
  13. 43 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentMqttBo.java
  14. 43 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblGatewayEquipmentBo.java
  15. 43 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentMqttVo.java
  16. 43 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblGatewayEquipmentVo.java
  17. 18 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/DatapointUnitMapper.java
  18. 0 2
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblDatapointMapper.java
  19. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblGatewayEquipmentMapper.java
  20. 3 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblDatapointService.java
  21. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblEquipmentMqttService.java
  22. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblGatewayEquipmentService.java
  23. 8 1
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblDatapointServiceImpl.java
  24. 110 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentMqttServiceImpl.java
  25. 110 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblGatewayEquipmentServiceImpl.java
  26. 35 0
      ruoyi-system/src/main/resources/mapper/data/DatapointUnitMapper.xml
  27. 0 10
      ruoyi-system/src/main/resources/mapper/data/TblDatapointMapper.xml
  28. 14 0
      ruoyi-system/src/main/resources/mapper/data/TblGatewayEquipmentMapper.xml

+ 21 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/PoolUtils.java

@@ -0,0 +1,21 @@
+package com.ruoyi.common.utils;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public class TaskUtils {
+
+     private  static ScheduledExecutorService pool = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors());
+
+    public static ScheduledExecutorService getPool() {
+        return pool;
+    }
+
+    public static void setPool(ScheduledExecutorService pool) {
+        TaskUtils.pool = pool;
+    }
+}

+ 99 - 0
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblDataController.java

@@ -0,0 +1,99 @@
+package com.ruoyi.data.controller;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+import com.ruoyi.data.domain.DataPointUnit;
+import com.ruoyi.data.domain.DeviceDataPoint;
+import com.ruoyi.data.domain.GateWayDevice;
+import com.ruoyi.data.domain.bo.TblEquipmentBo;
+import com.ruoyi.data.domain.bo.TblGatewayBo;
+import com.ruoyi.data.domain.bo.TblGatewayEquipmentBo;
+import com.ruoyi.data.domain.vo.TblEquipmentVo;
+import com.ruoyi.data.domain.vo.TblGatewayEquipmentVo;
+import com.ruoyi.data.domain.vo.TblGatewayVo;
+import com.ruoyi.data.service.ITblDatapointService;
+import com.ruoyi.data.service.ITblEquipmentService;
+import com.ruoyi.data.service.ITblGatewayEquipmentService;
+import com.ruoyi.data.service.ITblGatewayService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.PageQuery;
+
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 网关设备点位数据
+ *
+ * @author ruoyi
+ * @date 2023-12-05
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/data/device")
+public class TblDataController extends BaseController {
+
+    private final ITblEquipmentService iTblEquipmentService;
+
+    private final ITblDatapointService iTblDatapointService;
+
+    private final ITblGatewayService iTblGatewayService;
+
+    private final ITblGatewayEquipmentService iTblGatewayEquipmentService;
+
+
+    /**
+     * 查询网关设备列表
+     */
+    @GetMapping("/deviceList")
+    public TableDataInfo<GateWayDevice> list(TblEquipmentBo bo, PageQuery pageQuery) {
+        TableDataInfo<GateWayDevice> obj= new TableDataInfo<GateWayDevice>();
+        TblEquipmentBo tblEquipmentBo = new TblEquipmentBo();
+        List<TblEquipmentVo> tblEquipmentVoList = iTblEquipmentService.queryList(tblEquipmentBo);
+        DataPointUnit dataPointUnitBo = new DataPointUnit();
+        List<DataPointUnit> dataPointUnitList = iTblDatapointService.getDataPointList(dataPointUnitBo);
+        List<DeviceDataPoint> deviceDataPoints = new ArrayList<DeviceDataPoint>();
+        for(TblEquipmentVo tblEquipmentVo:tblEquipmentVoList){
+            DeviceDataPoint deviceDataPoint = new DeviceDataPoint();
+            deviceDataPoint.setDevice(tblEquipmentVo);
+            List<DataPointUnit> dataPointUnits = new ArrayList<DataPointUnit>();
+            for(DataPointUnit dataPointUnit:dataPointUnitList){
+                 if(tblEquipmentVo.getId() == dataPointUnit.getDeviceId()){
+                     dataPointUnits.add(dataPointUnit);
+                 }
+            }
+            deviceDataPoint.setDataPointUnitList(dataPointUnits);
+            deviceDataPoints.add(deviceDataPoint);
+        }
+        TblGatewayBo tblGatewayBo = new TblGatewayBo();
+        List<TblGatewayVo> tblGatewayVoList = iTblGatewayService.queryList(tblGatewayBo);
+        TblGatewayEquipmentBo tblGatewayEquipmentBo = new TblGatewayEquipmentBo();
+        List<TblGatewayEquipmentVo> tblGatewayEquipmentVoList = iTblGatewayEquipmentService.queryList(tblGatewayEquipmentBo);
+        List<GateWayDevice> gateWayDeviceList = new ArrayList<GateWayDevice>();
+        for(TblGatewayVo vo:tblGatewayVoList){
+                GateWayDevice gateWayDevice = new GateWayDevice();
+                gateWayDevice.setTblGateway(vo);
+                List<DeviceDataPoint> deviceDataPointList = new ArrayList<DeviceDataPoint>();
+                for(TblGatewayEquipmentVo geVo:tblGatewayEquipmentVoList){
+                        if(vo.getId() == geVo.getGatewayId()){
+                             for(DeviceDataPoint deviceDataPoint:deviceDataPoints){
+                                 if(geVo.getEquipmentId() == deviceDataPoint.getDevice().getId()){
+                                     deviceDataPointList.add(deviceDataPoint);
+                                 }
+                             }
+                        }
+                }
+                gateWayDevice.setDeviceDataPointList(deviceDataPointList);
+                gateWayDeviceList.add(gateWayDevice);
+        }
+        obj.setRows(gateWayDeviceList);
+        return obj;
+    }
+
+
+
+}

+ 108 - 0
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblEquipmentMqttController.java

@@ -0,0 +1,108 @@
+package com.ruoyi.data.controller;
+
+import java.util.List;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.data.domain.vo.TblEquipmentMqttVo;
+import com.ruoyi.data.domain.bo.TblEquipmentMqttBo;
+import com.ruoyi.data.service.ITblEquipmentMqttService;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 【请填写功能名称】
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/data/equipmentMqtt")
+public class TblEquipmentMqttController extends BaseController {
+
+    private final ITblEquipmentMqttService iTblEquipmentMqttService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @SaCheckPermission("data:equipmentMqtt:list")
+    @GetMapping("/list")
+    public TableDataInfo<TblEquipmentMqttVo> list(TblEquipmentMqttBo bo, PageQuery pageQuery) {
+        return iTblEquipmentMqttService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @SaCheckPermission("data:equipmentMqtt:export")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(TblEquipmentMqttBo bo, HttpServletResponse response) {
+        List<TblEquipmentMqttVo> list = iTblEquipmentMqttService.queryList(bo);
+        ExcelUtil.exportExcel(list, "【请填写功能名称】", TblEquipmentMqttVo.class, response);
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     *
+     * @param id 主键
+     */
+    @SaCheckPermission("data:equipmentMqtt:query")
+    @GetMapping("/{id}")
+    public R<TblEquipmentMqttVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long id) {
+        return R.ok(iTblEquipmentMqttService.queryById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @SaCheckPermission("data:equipmentMqtt:add")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblEquipmentMqttBo bo) {
+        return toAjax(iTblEquipmentMqttService.insertByBo(bo));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @SaCheckPermission("data:equipmentMqtt:edit")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblEquipmentMqttBo bo) {
+        return toAjax(iTblEquipmentMqttService.updateByBo(bo));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     *
+     * @param ids 主键串
+     */
+    @SaCheckPermission("data:equipmentMqtt:remove")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] ids) {
+        return toAjax(iTblEquipmentMqttService.deleteWithValidByIds(Arrays.asList(ids), true));
+    }
+}

+ 108 - 0
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblGatewayEquipmentController.java

@@ -0,0 +1,108 @@
+package com.ruoyi.data.controller;
+
+import java.util.List;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.data.domain.vo.TblGatewayEquipmentVo;
+import com.ruoyi.data.domain.bo.TblGatewayEquipmentBo;
+import com.ruoyi.data.service.ITblGatewayEquipmentService;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 【请填写功能名称】
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/data/gatewayEquipment")
+public class TblGatewayEquipmentController extends BaseController {
+
+    private final ITblGatewayEquipmentService iTblGatewayEquipmentService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @SaCheckPermission("data:gatewayEquipment:list")
+    @GetMapping("/list")
+    public TableDataInfo<TblGatewayEquipmentVo> list(TblGatewayEquipmentBo bo, PageQuery pageQuery) {
+        return iTblGatewayEquipmentService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @SaCheckPermission("data:gatewayEquipment:export")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(TblGatewayEquipmentBo bo, HttpServletResponse response) {
+        List<TblGatewayEquipmentVo> list = iTblGatewayEquipmentService.queryList(bo);
+        ExcelUtil.exportExcel(list, "【请填写功能名称】", TblGatewayEquipmentVo.class, response);
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     *
+     * @param id 主键
+     */
+    @SaCheckPermission("data:gatewayEquipment:query")
+    @GetMapping("/{id}")
+    public R<TblGatewayEquipmentVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long id) {
+        return R.ok(iTblGatewayEquipmentService.queryById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @SaCheckPermission("data:gatewayEquipment:add")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblGatewayEquipmentBo bo) {
+        return toAjax(iTblGatewayEquipmentService.insertByBo(bo));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @SaCheckPermission("data:gatewayEquipment:edit")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblGatewayEquipmentBo bo) {
+        return toAjax(iTblGatewayEquipmentService.updateByBo(bo));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     *
+     * @param ids 主键串
+     */
+    @SaCheckPermission("data:gatewayEquipment:remove")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] ids) {
+        return toAjax(iTblGatewayEquipmentService.deleteWithValidByIds(Arrays.asList(ids), true));
+    }
+}

+ 58 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/DataPointUnit.java

@@ -0,0 +1,58 @@
+package com.ruoyi.data.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class DataPointUnit extends BaseEntity {
+    private static final long serialVersionUID=1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 设备id
+     */
+    private Long deviceId;
+    /**
+     * 数据类型
+     */
+    private Long dataType;
+    /**
+     * 从设备号
+     */
+    private String slaveDeviceNumber;
+    /**
+     * 起始地址
+     */
+    private Long addr;
+    /**
+     * 起始地址偏移量
+     */
+    private Long addrOffset;
+    /**
+     * 待读寄存器的个数
+     */
+    private Long len;
+    /**
+     * 变量类型
+     */
+    private String valueType;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private String unitName;
+
+    private String unitType;
+
+    private int toOffset;
+}

+ 15 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/DeviceDataPoint.java

@@ -0,0 +1,15 @@
+package com.ruoyi.data.domain;
+
+import com.ruoyi.data.domain.vo.TblEquipmentVo;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class DeviceDataPoint {
+
+    private TblEquipmentVo device;
+
+    private List<DataPointUnit> dataPointUnitList;
+
+}

+ 16 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/GateWayDevice.java

@@ -0,0 +1,16 @@
+package com.ruoyi.data.domain;
+
+import com.ruoyi.data.domain.vo.TblGatewayVo;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class GateWayDevice {
+
+    private TblGatewayVo tblGateway;
+
+    private List<DeviceDataPoint> deviceDataPointList;
+
+    private List<Integer> deviceIdList;
+}

+ 60 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDataObj.java

@@ -0,0 +1,60 @@
+package com.ruoyi.data.domain;
+
+import com.baomidou.mybatisplus.annotation.Version;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblDataObj extends BaseEntity {
+
+    private Long id;
+    /**
+     * 序列号
+     */
+    private String sn;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 网关id
+     */
+    private String gatewayId;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 远程控制
+     */
+    private String remoteManage;
+    /**
+     * 流量控制
+     */
+    private Long flowControl;
+    /**
+     * 流量控制类型
+     */
+    private String flowControlType;
+    /**
+     * 所属服务
+     */
+    private String belongService;
+    /**
+     * 版本
+     */
+    @Version
+    private String version;
+    /**
+     * 描述
+     */
+    private String description;
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

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

@@ -64,10 +64,10 @@ public class TblDatapoint extends BaseEntity {
      */
     private String remark;
 
-    private String unitName;
-
-    private String unitType;
-
-    private int toOffset;
+//    private String unitName;
+//
+//    private String unitType;
+//
+//    private int toOffset;
 
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDtaDevices.java

@@ -0,0 +1,2 @@
+package com.ruoyi.data.domain;public class TblDtaDevices {
+}

+ 39 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipmentMqtt.java

@@ -0,0 +1,39 @@
+package com.ruoyi.data.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】对象 tbl_equipment_mqtt
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_equipment_mqtt")
+public class TblEquipmentMqtt extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 
+     */
+    private Long equipmentId;
+    /**
+     * 
+     */
+    private Long mqttId;
+
+}

+ 39 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblGatewayEquipment.java

@@ -0,0 +1,39 @@
+package com.ruoyi.data.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】对象 tbl_gateway_equipment
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_gateway_equipment")
+public class TblGatewayEquipment extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 网关id
+     */
+    private Long gatewayId;
+    /**
+     * 设备id
+     */
+    private Long equipmentId;
+
+}

+ 43 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentMqttBo.java

@@ -0,0 +1,43 @@
+package com.ruoyi.data.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】业务对象 tbl_equipment_mqtt
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblEquipmentMqttBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long equipmentId;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long mqttId;
+
+
+}

+ 43 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblGatewayEquipmentBo.java

@@ -0,0 +1,43 @@
+package com.ruoyi.data.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】业务对象 tbl_gateway_equipment
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblGatewayEquipmentBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 网关id
+     */
+    @NotNull(message = "网关id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long gatewayId;
+
+    /**
+     * 设备id
+     */
+    @NotNull(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long equipmentId;
+
+
+}

+ 43 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentMqttVo.java

@@ -0,0 +1,43 @@
+package com.ruoyi.data.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import lombok.Data;
+import java.util.Date;
+
+import java.io.Serializable;
+
+/**
+ * 【请填写功能名称】视图对象 tbl_equipment_mqtt
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblEquipmentMqttVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long id;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long equipmentId;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long mqttId;
+
+
+}

+ 43 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblGatewayEquipmentVo.java

@@ -0,0 +1,43 @@
+package com.ruoyi.data.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import lombok.Data;
+import java.util.Date;
+
+import java.io.Serializable;
+
+/**
+ * 【请填写功能名称】视图对象 tbl_gateway_equipment
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblGatewayEquipmentVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long id;
+
+    /**
+     * 网关id
+     */
+    @ExcelProperty(value = "网关id")
+    private Long gatewayId;
+
+    /**
+     * 设备id
+     */
+    @ExcelProperty(value = "设备id")
+    private Long equipmentId;
+
+
+}

+ 18 - 0
ruoyi-system/src/main/java/com/ruoyi/data/mapper/DatapointUnitMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import com.ruoyi.data.domain.DataPointUnit;
+
+import java.util.List;
+
+/**
+ * 点位数据Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-12-05
+ */
+public interface DatapointUnitMapper extends BaseMapperPlus<DatapointUnitMapper, DataPointUnit, DataPointUnit> {
+
+    List<DataPointUnit> selectDataPointUnitList(DataPointUnit tblDatapoint);
+
+}

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

@@ -14,6 +14,4 @@ import java.util.List;
  */
 public interface TblDatapointMapper extends BaseMapperPlus<TblDatapointMapper, TblDatapoint, TblDatapointVo> {
 
-    List<TblDatapoint> selectByDeviceId(TblDatapoint tblDatapoint);
-
 }

+ 15 - 0
ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblGatewayEquipmentMapper.java

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblGatewayEquipment;
+import com.ruoyi.data.domain.vo.TblGatewayEquipmentVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+public interface TblGatewayEquipmentMapper extends BaseMapperPlus<TblGatewayEquipmentMapper, TblGatewayEquipment, TblGatewayEquipmentVo> {
+
+}

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/ITblDatapointService.java

@@ -1,5 +1,6 @@
 package com.ruoyi.data.service;
 
+import com.ruoyi.data.domain.DataPointUnit;
 import com.ruoyi.data.domain.TblDatapoint;
 import com.ruoyi.data.domain.TblSensorSbook;
 import com.ruoyi.data.domain.vo.TblDatapointVo;
@@ -51,4 +52,6 @@ public interface ITblDatapointService {
     void readPlcInt(TblDatapoint entity,String url,String uuid);
 
     void writePlcInt(TblDatapoint entity,String value,String url,String uuid);
+
+    List<DataPointUnit> getDataPointList(DataPointUnit dataPointUnit);
 }

+ 49 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/ITblEquipmentMqttService.java

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblEquipmentMqtt;
+import com.ruoyi.data.domain.vo.TblEquipmentMqttVo;
+import com.ruoyi.data.domain.bo.TblEquipmentMqttBo;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+public interface ITblEquipmentMqttService {
+
+    /**
+     * 查询【请填写功能名称】
+     */
+    TblEquipmentMqttVo queryById(Long id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    TableDataInfo<TblEquipmentMqttVo> queryPageList(TblEquipmentMqttBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    List<TblEquipmentMqttVo> queryList(TblEquipmentMqttBo bo);
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    Boolean insertByBo(TblEquipmentMqttBo bo);
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    Boolean updateByBo(TblEquipmentMqttBo bo);
+
+    /**
+     * 校验并批量删除【请填写功能名称】信息
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 49 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/ITblGatewayEquipmentService.java

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblGatewayEquipment;
+import com.ruoyi.data.domain.vo.TblGatewayEquipmentVo;
+import com.ruoyi.data.domain.bo.TblGatewayEquipmentBo;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+public interface ITblGatewayEquipmentService {
+
+    /**
+     * 查询【请填写功能名称】
+     */
+    TblGatewayEquipmentVo queryById(Long id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    TableDataInfo<TblGatewayEquipmentVo> queryPageList(TblGatewayEquipmentBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    List<TblGatewayEquipmentVo> queryList(TblGatewayEquipmentBo bo);
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    Boolean insertByBo(TblGatewayEquipmentBo bo);
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    Boolean updateByBo(TblGatewayEquipmentBo bo);
+
+    /**
+     * 校验并批量删除【请填写功能名称】信息
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

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

@@ -8,7 +8,8 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.data.domain.TblSensorSbook;
+import com.ruoyi.data.domain.DataPointUnit;
+import com.ruoyi.data.mapper.DatapointUnitMapper;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import com.ruoyi.data.domain.bo.TblDatapointBo;
@@ -36,6 +37,8 @@ public class TblDatapointServiceImpl implements ITblDatapointService {
 
     private final ModbusUtils modbusUtils;
 
+    private final DatapointUnitMapper datapointPointMapper;
+
     /**
      * 查询点位数据
      */
@@ -152,6 +155,10 @@ public class TblDatapointServiceImpl implements ITblDatapointService {
         }
     }
 
+    @Override
+    public List<DataPointUnit> getDataPointList(DataPointUnit dataPointUnit) {
+        return datapointPointMapper.selectDataPointUnitList(dataPointUnit);
+    }
 
 
 }

+ 110 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentMqttServiceImpl.java

@@ -0,0 +1,110 @@
+package com.ruoyi.data.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import com.ruoyi.data.domain.bo.TblEquipmentMqttBo;
+import com.ruoyi.data.domain.vo.TblEquipmentMqttVo;
+import com.ruoyi.data.domain.TblEquipmentMqtt;
+import com.ruoyi.data.mapper.TblEquipmentMqttMapper;
+import com.ruoyi.data.service.ITblEquipmentMqttService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+@RequiredArgsConstructor
+@Service
+public class TblEquipmentMqttServiceImpl implements ITblEquipmentMqttService {
+
+    private final TblEquipmentMqttMapper baseMapper;
+
+    /**
+     * 查询【请填写功能名称】
+     */
+    @Override
+    public TblEquipmentMqttVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @Override
+    public TableDataInfo<TblEquipmentMqttVo> queryPageList(TblEquipmentMqttBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TblEquipmentMqtt> lqw = buildQueryWrapper(bo);
+        Page<TblEquipmentMqttVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @Override
+    public List<TblEquipmentMqttVo> queryList(TblEquipmentMqttBo bo) {
+        LambdaQueryWrapper<TblEquipmentMqtt> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblEquipmentMqtt> buildQueryWrapper(TblEquipmentMqttBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblEquipmentMqtt> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getEquipmentId() != null, TblEquipmentMqtt::getEquipmentId, bo.getEquipmentId());
+        lqw.eq(bo.getMqttId() != null, TblEquipmentMqtt::getMqttId, bo.getMqttId());
+        return lqw;
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @Override
+    public Boolean insertByBo(TblEquipmentMqttBo bo) {
+        TblEquipmentMqtt add = BeanUtil.toBean(bo, TblEquipmentMqtt.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @Override
+    public Boolean updateByBo(TblEquipmentMqttBo bo) {
+        TblEquipmentMqtt update = BeanUtil.toBean(bo, TblEquipmentMqtt.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(TblEquipmentMqtt entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

+ 110 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblGatewayEquipmentServiceImpl.java

@@ -0,0 +1,110 @@
+package com.ruoyi.data.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import com.ruoyi.data.domain.bo.TblGatewayEquipmentBo;
+import com.ruoyi.data.domain.vo.TblGatewayEquipmentVo;
+import com.ruoyi.data.domain.TblGatewayEquipment;
+import com.ruoyi.data.mapper.TblGatewayEquipmentMapper;
+import com.ruoyi.data.service.ITblGatewayEquipmentService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-12-14
+ */
+@RequiredArgsConstructor
+@Service
+public class TblGatewayEquipmentServiceImpl implements ITblGatewayEquipmentService {
+
+    private final TblGatewayEquipmentMapper baseMapper;
+
+    /**
+     * 查询【请填写功能名称】
+     */
+    @Override
+    public TblGatewayEquipmentVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @Override
+    public TableDataInfo<TblGatewayEquipmentVo> queryPageList(TblGatewayEquipmentBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TblGatewayEquipment> lqw = buildQueryWrapper(bo);
+        Page<TblGatewayEquipmentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @Override
+    public List<TblGatewayEquipmentVo> queryList(TblGatewayEquipmentBo bo) {
+        LambdaQueryWrapper<TblGatewayEquipment> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblGatewayEquipment> buildQueryWrapper(TblGatewayEquipmentBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblGatewayEquipment> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getGatewayId() != null, TblGatewayEquipment::getGatewayId, bo.getGatewayId());
+        lqw.eq(bo.getEquipmentId() != null, TblGatewayEquipment::getEquipmentId, bo.getEquipmentId());
+        return lqw;
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @Override
+    public Boolean insertByBo(TblGatewayEquipmentBo bo) {
+        TblGatewayEquipment add = BeanUtil.toBean(bo, TblGatewayEquipment.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @Override
+    public Boolean updateByBo(TblGatewayEquipmentBo bo) {
+        TblGatewayEquipment update = BeanUtil.toBean(bo, TblGatewayEquipment.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(TblGatewayEquipment entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

+ 35 - 0
ruoyi-system/src/main/resources/mapper/data/DatapointUnitMapper.xml

@@ -0,0 +1,35 @@
+<?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.DatapointUnitMapper">
+
+    <resultMap type="com.ruoyi.data.domain.DataPointUnit" id="DatapointUnitResult">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="deviceId" column="device_id"/>
+        <result property="dataType" column="data_type"/>
+        <result property="slaveDeviceNumber" column="slave_device_number"/>
+        <result property="addr" column="addr"/>
+        <result property="addrOffset" column="addr_offset"/>
+        <result property="len" column="len"/>
+        <result property="valueType" column="value_type"/>
+        <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="unitName" column="unitName"/>
+        <result property="unitType" column="unitType"/>
+        <result property="toOffset" column="toOffset"/>
+    </resultMap>
+
+    <select id="selectDataPointUnitList" parameterType="DataPointUnit" resultMap="DatapointUnitResult">
+            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>

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

@@ -19,18 +19,8 @@ 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>

+ 14 - 0
ruoyi-system/src/main/resources/mapper/data/TblGatewayEquipmentMapper.xml

@@ -0,0 +1,14 @@
+<?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.TblGatewayEquipmentMapper">
+
+    <resultMap type="com.ruoyi.data.domain.TblGatewayEquipment" id="TblGatewayEquipmentResult">
+        <result property="id" column="id"/>
+        <result property="gatewayId" column="gateway_id"/>
+        <result property="equipmentId" column="equipment_id"/>
+    </resultMap>
+
+
+</mapper>