liwei19941102 il y a 2 ans
Parent
commit
2e6dc45ea6
36 fichiers modifiés avec 746 ajouts et 99 suppressions
  1. 0 3
      ruoyi-system/src/main/java/com/ruoyi/data/controller/MqttController.java
  2. 66 50
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblDataController.java
  3. 18 18
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblModBusController.java
  4. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblSeneorController.java
  5. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblSensorController.java
  6. 2 4
      ruoyi-system/src/main/java/com/ruoyi/data/domain/GateWaySensor.java
  7. 40 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/PointUnit.java
  8. 17 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/SensorPoint.java
  9. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDatapoint.java
  10. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipment.java
  11. 3 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblGateway.java
  12. 9 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblSeneor.java
  13. 63 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblSensor.java
  14. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblDatapointBo.java
  15. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentBo.java
  16. 2 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblGatewayBo.java
  17. 17 5
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblSeneorBo.java
  18. 79 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblSensorBo.java
  19. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblDatapointVo.java
  20. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentVo.java
  21. 7 1
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblGatewayVo.java
  22. 14 2
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblSeneorVo.java
  23. 79 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblSensorVo.java
  24. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblSeneorMapper.java
  25. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblSensorMapper.java
  26. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblSeneorService.java
  27. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblSensorService.java
  28. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblDatapointServiceImpl.java
  29. 1 1
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentServiceImpl.java
  30. 3 1
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblSeneorServiceImpl.java
  31. 115 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblSensorServiceImpl.java
  32. 1 1
      ruoyi-system/src/main/resources/mapper/data/TblDatapointMapper.xml
  33. 1 1
      ruoyi-system/src/main/resources/mapper/data/TblEquipmentMapper.xml
  34. 1 0
      ruoyi-system/src/main/resources/mapper/data/TblGatewayMapper.xml
  35. 2 0
      ruoyi-system/src/main/resources/mapper/data/TblSeneorMapper.xml
  36. 24 0
      ruoyi-system/src/main/resources/mapper/data/TblSensorMapper.xml

+ 0 - 3
ruoyi-system/src/main/java/com/ruoyi/data/controller/MqttController.java

@@ -51,9 +51,6 @@ public class MqttController {
     public void pubOrder(OrderBean bean){
         mqttService.pubOrder(bean);
     }
-
-
-
 }
 
 

+ 66 - 50
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblDataController.java

@@ -4,19 +4,10 @@ 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 com.ruoyi.data.domain.*;
+import com.ruoyi.data.domain.bo.*;
+import com.ruoyi.data.domain.vo.*;
+import com.ruoyi.data.service.*;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -45,53 +36,78 @@ public class TblDataController extends BaseController {
 
     private final ITblGatewayEquipmentService iTblGatewayEquipmentService;
 
+    private final ITblSensorService iTblSensorService;
+
+    private final ITblUnitService iTblUnitService;
+
 
     /**
      * 查询网关设备列表
      */
     @GetMapping("/deviceList")
-    public TableDataInfo<GateWayDevice> list(TblEquipmentBo bo, PageQuery pageQuery) {
-        TableDataInfo<GateWayDevice> obj= new TableDataInfo<GateWayDevice>();
+    public TableDataInfo<GateWaySensor> list(TblEquipmentBo bo, PageQuery pageQuery) {
+        TableDataInfo<GateWaySensor> obj = new TableDataInfo<GateWaySensor>();
+        TblGatewayBo tblGatewayBo = new TblGatewayBo();
+        List<TblGatewayVo> gatewayVoList = iTblGatewayService.queryList(tblGatewayBo);
         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);
-                 }
+        List<GateWaySensor> gateWaySensorList = new ArrayList<GateWaySensor>();
+        List<TblEquipmentVo> equipmentVoList = iTblEquipmentService.queryList(tblEquipmentBo);
+        List<SensorPoint> sensorPointList = getSensorPointList();
+        for(TblGatewayVo tblGatewayVo:gatewayVoList){
+               GateWaySensor gateWaySensor = new GateWaySensor();
+               gateWaySensor.setTblGateway(tblGatewayVo);
+               List<SensorPoint> sensorPoints = new ArrayList<SensorPoint>();
+               for(TblEquipmentVo tblEquipmentvo:equipmentVoList){
+                     if(tblEquipmentvo.getGatewayId() == tblGatewayVo.getId()){
+                             for(SensorPoint sensorPoint:sensorPointList){
+                                     if(sensorPoint.getTblSensorVo().getDeviceId() == tblEquipmentvo.getId()){
+                                         sensorPoints.add(sensorPoint);
+                                     }
+                             }
+                     }
+               }
+            gateWaySensor.setSensorPointList(sensorPoints);
+            gateWaySensorList.add(gateWaySensor);
+        }
+        obj.setRows(gateWaySensorList);
+        return obj;
+    }
+
+    private List<SensorPoint> getSensorPointList(){
+        List<SensorPoint> list = new ArrayList<>();
+        List<PointUnit> pointUnitlist = new ArrayList<>();
+        TblSensorBo sensorBo = new TblSensorBo();
+        List<TblSensorVo> tblSeneorVoList = iTblSensorService.queryList(sensorBo);
+        TblDatapointBo tblDatapointBo = new TblDatapointBo();
+        List<TblDatapointVo> tblDatapointVoList = iTblDatapointService.queryList(tblDatapointBo);
+        TblUnitBo tblUnitBo = new TblUnitBo();
+        List<TblUnitVo> tblUnitVoList = iTblUnitService.queryList(tblUnitBo);
+        for(TblDatapointVo tblDatapointVo:tblDatapointVoList){
+            PointUnit pointUnit= new PointUnit();
+            pointUnit.setPointInfo(tblDatapointVo);
+            for(TblUnitVo tblUnitVo:tblUnitVoList){
+                if(tblDatapointVo.getDataType() == tblUnitVo.getId()){
+                    pointUnit.setUnitName(tblUnitVo.getUnitName());
+                    pointUnit.setUnitType(tblUnitVo.getUnitType());
+                    pointUnit.setUnitSymbol(tblUnitVo.getUnitSymbol());
+                    pointUnit.setName(tblDatapointVo.getValueType());
+                    pointUnitlist.add(pointUnit);
+                }
             }
-            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);
-                                 }
-                             }
-                        }
+        for(TblSensorVo tblSensorVo:tblSeneorVoList){
+            SensorPoint sensorPoint = new SensorPoint();
+            sensorPoint.setTblSensorVo(tblSensorVo);
+            List<PointUnit> pointUnits = new ArrayList<PointUnit>();
+            for(PointUnit pointUnit:pointUnitlist){
+                if(tblSensorVo.getId() == pointUnit.getPointInfo().getSensorId()){
+                    pointUnits.add(pointUnit);
                 }
-                gateWayDevice.setDeviceDataPointList(deviceDataPointList);
-                gateWayDeviceList.add(gateWayDevice);
+            }
+            sensorPoint.setDataPoints(pointUnits);
+            list.add(sensorPoint);
         }
-        obj.setRows(gateWayDeviceList);
-        return obj;
+        return list;
     }
 
 

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

@@ -54,24 +54,24 @@ public class TblModBusController extends BaseController {
           dealservice.getDataToMqtt(tblEquipment);
     }
 
-    @GetMapping("/tests")
-    public void equipment(TblEquipmentBo bo){
-        List<TblEquipmentVo> tblEquipmentVoList = tblEquipmentService.queryList(bo);
-        for(TblEquipmentVo vo:tblEquipmentVoList){
-            dealservice.getDataToMqtt(vo);
-        }
-        ScheduledExecutorService pool = PoolUtils.getPool();
-        for(TblEquipmentVo vo:tblEquipmentVoList){
-            TblModbusTcpVo tblModbusTcp = tblModbusTcpService.queryById(vo.getProtocalId());
-            pool.scheduleAtFixedRate(new Runnable() {
-                @Override
-                public void run() {
-                        dealservice.getDataToMqtt(vo);
-                }
-            },5,tblModbusTcp.getIntervals(),TimeUnit.SECONDS);//推迟5秒执行,然后每10秒执行一次
-
-        }
-    }
+//    @GetMapping("/tests")
+//    public void equipment(TblEquipmentBo bo){
+//        List<TblEquipmentVo> tblEquipmentVoList = tblEquipmentService.queryList(bo);
+//        for(TblEquipmentVo vo:tblEquipmentVoList){
+//            dealservice.getDataToMqtt(vo);
+//        }
+//        ScheduledExecutorService pool = PoolUtils.getPool();
+//        for(TblEquipmentVo vo:tblEquipmentVoList){
+//            TblModbusTcpVo tblModbusTcp = tblModbusTcpService.queryById(vo.get());
+//            pool.scheduleAtFixedRate(new Runnable() {
+//                @Override
+//                public void run() {
+//                        dealservice.getDataToMqtt(vo);
+//                }
+//            },5,tblModbusTcp.getIntervals(),TimeUnit.SECONDS);//推迟5秒执行,然后每10秒执行一次
+//
+//        }
+//    }
 
 
     @GetMapping("/thread")

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblSeneorController.java

@@ -29,7 +29,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
  * 传感器列
  *
  * @author ruoyi
- * @date 2023-12-05
+ * @date 2023-12-15
  */
 @Validated
 @RequiredArgsConstructor

+ 108 - 0
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblSensorController.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.TblSensorVo;
+import com.ruoyi.data.domain.bo.TblSensorBo;
+import com.ruoyi.data.service.ITblSensorService;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 传感器列
+ *
+ * @author ruoyi
+ * @date 2023-12-15
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/data/sensor")
+public class TblSensorController extends BaseController {
+
+    private final ITblSensorService iTblSensorService;
+
+    /**
+     * 查询传感器列列表
+     */
+    @SaCheckPermission("data:sensor:list")
+    @GetMapping("/list")
+    public TableDataInfo<TblSensorVo> list(TblSensorBo bo, PageQuery pageQuery) {
+        return iTblSensorService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出传感器列列表
+     */
+    @SaCheckPermission("data:sensor:export")
+    @Log(title = "传感器列", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(TblSensorBo bo, HttpServletResponse response) {
+        List<TblSensorVo> list = iTblSensorService.queryList(bo);
+        ExcelUtil.exportExcel(list, "传感器列", TblSensorVo.class, response);
+    }
+
+    /**
+     * 获取传感器列详细信息
+     *
+     * @param id 主键
+     */
+    @SaCheckPermission("data:sensor:query")
+    @GetMapping("/{id}")
+    public R<TblSensorVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long id) {
+        return R.ok(iTblSensorService.queryById(id));
+    }
+
+    /**
+     * 新增传感器列
+     */
+    @SaCheckPermission("data:sensor:add")
+    @Log(title = "传感器列", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblSensorBo bo) {
+        return toAjax(iTblSensorService.insertByBo(bo));
+    }
+
+    /**
+     * 修改传感器列
+     */
+    @SaCheckPermission("data:sensor:edit")
+    @Log(title = "传感器列", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblSensorBo bo) {
+        return toAjax(iTblSensorService.updateByBo(bo));
+    }
+
+    /**
+     * 删除传感器列
+     *
+     * @param ids 主键串
+     */
+    @SaCheckPermission("data:sensor:remove")
+    @Log(title = "传感器列", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] ids) {
+        return toAjax(iTblSensorService.deleteWithValidByIds(Arrays.asList(ids), true));
+    }
+}

+ 2 - 4
ruoyi-system/src/main/java/com/ruoyi/data/domain/GateWayDevice.java → ruoyi-system/src/main/java/com/ruoyi/data/domain/GateWaySensor.java

@@ -6,11 +6,9 @@ import lombok.Data;
 import java.util.List;
 
 @Data
-public class GateWayDevice {
+public class GateWaySensor {
 
     private TblGatewayVo tblGateway;
 
-    private List<DeviceDataPoint> deviceDataPointList;
-
-    private List<Integer> deviceIdList;
+    private List<SensorPoint> sensorPointList;
 }

+ 40 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/PointUnit.java

@@ -0,0 +1,40 @@
+package com.ruoyi.data.domain;
+
+import com.ruoyi.data.domain.vo.TblDatapointVo;
+import lombok.Data;
+
+@Data
+public class PointUnit {
+
+    private String name;
+    /**
+     *
+     */
+    private String unitSymbol;
+    /**
+     *
+     */
+    private String unitName;
+    /**
+     *
+     */
+    private String isStandard;
+    /**
+     *
+     */
+    private String unitType;
+    /**
+     *
+     */
+    private Long toStandardRatio;
+    /**
+     *
+     */
+    private Long toOffset;
+    /**
+     *
+     */
+    private String remark;
+
+    private TblDatapointVo pointInfo;
+}

+ 17 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/SensorPoint.java

@@ -0,0 +1,17 @@
+package com.ruoyi.data.domain;
+
+import com.ruoyi.data.domain.vo.TblSensorVo;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SensorPoint {
+
+//    private TblSens
+    private TblSensorVo tblSensorVo;
+
+    private List<PointUnit> dataPoints;
+
+}
+

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

@@ -34,7 +34,7 @@ public class TblDatapoint extends BaseEntity {
     /**
      * 设备id
      */
-    private Long deviceId;
+    private Long sensorId;
     /**
      * 数据类型
      */

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

@@ -71,7 +71,7 @@ public class TblEquipment extends BaseEntity {
     /**
      * 协议Id
      */
-    private Long protocalId;
+    private Long gatewayId;
     /**
      * 协议类型
      */

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblGateway.java

@@ -23,7 +23,7 @@ public class TblGateway extends BaseEntity {
     private static final long serialVersionUID=1L;
 
     /**
-     * 
+     *
      */
     @TableId(value = "id")
     private Long id;
@@ -73,4 +73,6 @@ public class TblGateway extends BaseEntity {
      */
     private String remark;
 
+    private String protocalType;
+
 }

+ 9 - 1
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblSeneor.java

@@ -13,7 +13,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
  * 传感器列对象 tbl_seneor
  *
  * @author ruoyi
- * @date 2023-12-05
+ * @date 2023-12-15
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -36,10 +36,18 @@ public class TblSeneor extends BaseEntity {
      */
     private String sn;
     /**
+     * 设备id
+     */
+    private Long deviceId;
+    /**
      * 传感器类型
      */
     private String sensorType;
     /**
+     * 协议类型
+     */
+    private Long protocalType;
+    /**
      * 描述
      */
     private String sensorDesc;

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblSensor.java

@@ -0,0 +1,63 @@
+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_sensor
+ *
+ * @author ruoyi
+ * @date 2023-12-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_sensor")
+public class TblSensor extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 传感器名称
+     */
+    private String name;
+    /**
+     * 传感器编号
+     */
+    private String sn;
+    /**
+     * 设备id
+     */
+    private Long deviceId;
+    /**
+     * 传感器类型
+     */
+    private String sensorType;
+    /**
+     * 协议类型
+     */
+    private Long protocalType;
+    /**
+     * 描述
+     */
+    private String sensorDesc;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

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

@@ -39,7 +39,7 @@ public class TblDatapointBo extends BaseEntity {
      * 设备id
      */
     @NotNull(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long deviceId;
+    private Long sensorId;
 
     /**
      * 数据类型

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

@@ -117,7 +117,7 @@ public class TblEquipmentBo extends BaseEntity {
      * 协议Id
      */
 //    @NotBlank(message = "拓展字段1不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long protocalId;
+    private Long gatewayId;
 
     /**
      * 协议类型

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

@@ -90,5 +90,7 @@ public class TblGatewayBo extends BaseEntity {
     private String remark;
 
 
+    private String protocalType;
+
 
 }

+ 17 - 5
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblSeneorBo.java

@@ -14,7 +14,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
  * 传感器列业务对象 tbl_seneor
  *
  * @author ruoyi
- * @date 2023-11-28
+ * @date 2023-12-15
  */
 
 @Data
@@ -22,9 +22,9 @@ import com.ruoyi.common.core.domain.BaseEntity;
 public class TblSeneorBo extends BaseEntity {
 
     /**
-     *
+     * 
      */
-//    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = { EditGroup.class })
     private Long id;
 
     /**
@@ -40,15 +40,27 @@ public class TblSeneorBo extends BaseEntity {
     private String sn;
 
     /**
+     * 设备id
+     */
+    @NotNull(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long deviceId;
+
+    /**
      * 传感器类型
      */
     @NotBlank(message = "传感器类型不能为空", groups = { AddGroup.class, EditGroup.class })
     private String sensorType;
 
     /**
+     * 协议类型
+     */
+    @NotNull(message = "协议类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long protocalType;
+
+    /**
      * 描述
      */
-//    @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
     private String sensorDesc;
 
     /**
@@ -60,7 +72,7 @@ public class TblSeneorBo extends BaseEntity {
     /**
      * 备注
      */
-//    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
 

+ 79 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblSensorBo.java

@@ -0,0 +1,79 @@
+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_sensor
+ *
+ * @author ruoyi
+ * @date 2023-12-15
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblSensorBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 传感器名称
+     */
+    @NotBlank(message = "传感器名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 传感器编号
+     */
+    @NotBlank(message = "传感器编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 设备id
+     */
+    @NotNull(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long deviceId;
+
+    /**
+     * 传感器类型
+     */
+    @NotBlank(message = "传感器类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sensorType;
+
+    /**
+     * 协议类型
+     */
+    @NotNull(message = "协议类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long protocalType;
+
+    /**
+     * 描述
+     */
+    @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sensorDesc;
+
+    /**
+     * 状态
+     */
+    @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String status;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+
+}

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

@@ -37,7 +37,7 @@ public class TblDatapointVo implements Serializable {
      * 设备id
      */
     @ExcelProperty(value = "设备id")
-    private Long deviceId;
+    private Long sensorId;
 
     /**
      * 数据类型

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

@@ -91,7 +91,7 @@ public class TblEquipmentVo implements Serializable {
      * 拓展字段1
      */
     @ExcelProperty(value = "拓展字段1")
-    private Long protocalId;
+    private Long gatewayId;
 
     /**
      * 拓展字段2

+ 7 - 1
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblGatewayVo.java

@@ -22,7 +22,7 @@ public class TblGatewayVo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
-     * 
+     *
      */
     @ExcelProperty(value = "")
     private Long id;
@@ -88,4 +88,10 @@ public class TblGatewayVo implements Serializable {
     private String remark;
 
 
+    /**
+     *协议类型
+     */
+    @ExcelProperty(value = "协议类型")
+    private String protocalType;
+
 }

+ 14 - 2
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblSeneorVo.java

@@ -13,7 +13,7 @@ import java.io.Serializable;
  * 传感器列视图对象 tbl_seneor
  *
  * @author ruoyi
- * @date 2023-12-05
+ * @date 2023-12-15
  */
 @Data
 @ExcelIgnoreUnannotated
@@ -22,7 +22,7 @@ public class TblSeneorVo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
-     * 
+     *
      */
     @ExcelProperty(value = "")
     private Long id;
@@ -40,12 +40,24 @@ public class TblSeneorVo implements Serializable {
     private String sn;
 
     /**
+     * 设备id
+     */
+    @ExcelProperty(value = "设备id")
+    private Long deviceId;
+
+    /**
      * 传感器类型
      */
     @ExcelProperty(value = "传感器类型")
     private String sensorType;
 
     /**
+     * 协议类型
+     */
+    @ExcelProperty(value = "协议类型")
+    private Long protocalType;
+
+    /**
      * 描述
      */
     @ExcelProperty(value = "描述")

+ 79 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblSensorVo.java

@@ -0,0 +1,79 @@
+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_sensor
+ *
+ * @author ruoyi
+ * @date 2023-12-15
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblSensorVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long id;
+
+    /**
+     * 传感器名称
+     */
+    @ExcelProperty(value = "传感器名称")
+    private String name;
+
+    /**
+     * 传感器编号
+     */
+    @ExcelProperty(value = "传感器编号")
+    private String sn;
+
+    /**
+     * 设备id
+     */
+    @ExcelProperty(value = "设备id")
+    private Long deviceId;
+
+    /**
+     * 传感器类型
+     */
+    @ExcelProperty(value = "传感器类型")
+    private String sensorType;
+
+    /**
+     * 协议类型
+     */
+    @ExcelProperty(value = "协议类型")
+    private Long protocalType;
+
+    /**
+     * 描述
+     */
+    @ExcelProperty(value = "描述")
+    private String sensorDesc;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblSeneorMapper.java

@@ -8,7 +8,7 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
  * 传感器列Mapper接口
  *
  * @author ruoyi
- * @date 2023-12-05
+ * @date 2023-12-15
  */
 public interface TblSeneorMapper extends BaseMapperPlus<TblSeneorMapper, TblSeneor, TblSeneorVo> {
 

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblSensor;
+import com.ruoyi.data.domain.vo.TblSensorVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 传感器列Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-12-15
+ */
+public interface TblSensorMapper extends BaseMapperPlus<TblSensorMapper, TblSensor, TblSensorVo> {
+
+}

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

@@ -13,7 +13,7 @@ import java.util.List;
  * 传感器列Service接口
  *
  * @author ruoyi
- * @date 2023-12-05
+ * @date 2023-12-15
  */
 public interface ITblSeneorService {
 

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblSensor;
+import com.ruoyi.data.domain.vo.TblSensorVo;
+import com.ruoyi.data.domain.bo.TblSensorBo;
+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-15
+ */
+public interface ITblSensorService {
+
+    /**
+     * 查询传感器列
+     */
+    TblSensorVo queryById(Long id);
+
+    /**
+     * 查询传感器列列表
+     */
+    TableDataInfo<TblSensorVo> queryPageList(TblSensorBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询传感器列列表
+     */
+    List<TblSensorVo> queryList(TblSensorBo bo);
+
+    /**
+     * 新增传感器列
+     */
+    Boolean insertByBo(TblSensorBo bo);
+
+    /**
+     * 修改传感器列
+     */
+    Boolean updateByBo(TblSensorBo bo);
+
+    /**
+     * 校验并批量删除传感器列信息
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

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

@@ -70,7 +70,7 @@ public class TblDatapointServiceImpl implements ITblDatapointService {
         Map<String, Object> params = bo.getParams();
         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(bo.getSensorId() != null, TblDatapoint::getSensorId, bo.getSensorId());
         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());

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

@@ -70,7 +70,7 @@ 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(bo.getProtocalId() != null, TblEquipment::getProtocalId, bo.getProtocalId());
+        lqw.eq(bo.getGatewayId() != null, TblEquipment::getGatewayId, bo.getGatewayId());
         lqw.eq(bo.getEquipmentTypeId() != null, TblEquipment::getEquipmentTypeId, bo.getEquipmentTypeId());
         return lqw;
     }

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

@@ -23,7 +23,7 @@ import java.util.Collection;
  * 传感器列Service业务层处理
  *
  * @author ruoyi
- * @date 2023-12-05
+ * @date 2023-12-15
  */
 @RequiredArgsConstructor
 @Service
@@ -63,7 +63,9 @@ public class TblSeneorServiceImpl implements ITblSeneorService {
         LambdaQueryWrapper<TblSeneor> lqw = Wrappers.lambdaQuery();
         lqw.like(StringUtils.isNotBlank(bo.getName()), TblSeneor::getName, bo.getName());
         lqw.eq(StringUtils.isNotBlank(bo.getSn()), TblSeneor::getSn, bo.getSn());
+        lqw.eq(bo.getDeviceId() != null, TblSeneor::getDeviceId, bo.getDeviceId());
         lqw.eq(StringUtils.isNotBlank(bo.getSensorType()), TblSeneor::getSensorType, bo.getSensorType());
+        lqw.eq(bo.getProtocalType() != null, TblSeneor::getProtocalType, bo.getProtocalType());
         lqw.eq(StringUtils.isNotBlank(bo.getSensorDesc()), TblSeneor::getSensorDesc, bo.getSensorDesc());
         lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblSeneor::getStatus, bo.getStatus());
         return lqw;

+ 115 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblSensorServiceImpl.java

@@ -0,0 +1,115 @@
+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.TblSensorBo;
+import com.ruoyi.data.domain.vo.TblSensorVo;
+import com.ruoyi.data.domain.TblSensor;
+import com.ruoyi.data.mapper.TblSensorMapper;
+import com.ruoyi.data.service.ITblSensorService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 传感器列Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-12-15
+ */
+@RequiredArgsConstructor
+@Service
+public class TblSensorServiceImpl implements ITblSensorService {
+
+    private final TblSensorMapper baseMapper;
+
+    /**
+     * 查询传感器列
+     */
+    @Override
+    public TblSensorVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询传感器列列表
+     */
+    @Override
+    public TableDataInfo<TblSensorVo> queryPageList(TblSensorBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TblSensor> lqw = buildQueryWrapper(bo);
+        Page<TblSensorVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询传感器列列表
+     */
+    @Override
+    public List<TblSensorVo> queryList(TblSensorBo bo) {
+        LambdaQueryWrapper<TblSensor> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblSensor> buildQueryWrapper(TblSensorBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblSensor> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getName()), TblSensor::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getSn()), TblSensor::getSn, bo.getSn());
+        lqw.eq(bo.getDeviceId() != null, TblSensor::getDeviceId, bo.getDeviceId());
+        lqw.eq(StringUtils.isNotBlank(bo.getSensorType()), TblSensor::getSensorType, bo.getSensorType());
+        lqw.eq(bo.getProtocalType() != null, TblSensor::getProtocalType, bo.getProtocalType());
+        lqw.eq(StringUtils.isNotBlank(bo.getSensorDesc()), TblSensor::getSensorDesc, bo.getSensorDesc());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblSensor::getStatus, bo.getStatus());
+        return lqw;
+    }
+
+    /**
+     * 新增传感器列
+     */
+    @Override
+    public Boolean insertByBo(TblSensorBo bo) {
+        TblSensor add = BeanUtil.toBean(bo, TblSensor.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改传感器列
+     */
+    @Override
+    public Boolean updateByBo(TblSensorBo bo) {
+        TblSensor update = BeanUtil.toBean(bo, TblSensor.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(TblSensor entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除传感器列
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

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

@@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="com.ruoyi.data.domain.TblDatapoint" id="TblDatapointResult">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
-        <result property="deviceId" column="device_id"/>
+        <result property="sensorId" column="sensor_id"/>
         <result property="dataType" column="data_type"/>
         <result property="slaveDeviceNumber" column="slave_device_number"/>
         <result property="addr" column="addr"/>

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

@@ -16,7 +16,7 @@ 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="protocalId" column="protocal_id"/>
+        <result property="gatewayId" column="gateway_id"/>
         <result property="protocalType" column="protocal_type"/>
         <result property="createBy" column="create_by"/>
         <result property="createTime" column="create_time"/>

+ 1 - 0
ruoyi-system/src/main/resources/mapper/data/TblGatewayMapper.xml

@@ -21,6 +21,7 @@ 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="protocalType" column="protocal_type"/>
     </resultMap>
 
 

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

@@ -8,7 +8,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="id" column="id"/>
         <result property="name" column="name"/>
         <result property="sn" column="sn"/>
+        <result property="deviceId" column="device_id"/>
         <result property="sensorType" column="sensor_type"/>
+        <result property="protocalType" column="protocal_type"/>
         <result property="sensorDesc" column="sensor_desc"/>
         <result property="status" column="status"/>
         <result property="remark" column="remark"/>

+ 24 - 0
ruoyi-system/src/main/resources/mapper/data/TblSensorMapper.xml

@@ -0,0 +1,24 @@
+<?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.TblSensorMapper">
+
+    <resultMap type="com.ruoyi.data.domain.TblSensor" id="TblSensorResult">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="sn" column="sn"/>
+        <result property="deviceId" column="device_id"/>
+        <result property="sensorType" column="sensor_type"/>
+        <result property="protocalType" column="protocal_type"/>
+        <result property="sensorDesc" column="sensor_desc"/>
+        <result property="status" column="status"/>
+        <result property="remark" column="remark"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="updateBy" column="update_by"/>
+    </resultMap>
+
+
+</mapper>