Ver código fonte

自动生成代码

liwei19941102 2 anos atrás
pai
commit
deff42c202
100 arquivos alterados com 8790 adições e 0 exclusões
  1. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblBreakdownController.java
  2. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblDatapointController.java
  3. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblEquipmentController.java
  4. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblEquipmentOrganizationalController.java
  5. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblEquipmentSbookController.java
  6. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblGatewayController.java
  7. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblModbusRtuController.java
  8. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblModbusTcpController.java
  9. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblMqttController.java
  10. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblRuleController.java
  11. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblRuleExecuteController.java
  12. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblRuleFilterController.java
  13. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblSensorSbookController.java
  14. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblVideoController.java
  15. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblVideoDetailController.java
  16. 108 0
      ruoyi-system/src/main/java/com/ruoyi/data/controller/TblWarnController.java
  17. 97 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblBreakdown.java
  18. 85 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblDatapoint.java
  19. 97 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipment.java
  20. 69 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipmentOrganizational.java
  21. 153 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipmentSbook.java
  22. 94 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblGateway.java
  23. 101 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblModbusRtu.java
  24. 85 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblModbusTcp.java
  25. 85 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblMqtt.java
  26. 93 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblRule.java
  27. 77 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblRuleExecute.java
  28. 85 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblRuleFilter.java
  29. 113 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblSensorSbook.java
  30. 97 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblVideo.java
  31. 93 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblVideoDetail.java
  32. 97 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/TblWarn.java
  33. 129 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblBreakdownBo.java
  34. 111 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblDatapointBo.java
  35. 129 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentBo.java
  36. 87 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentOrganizationalBo.java
  37. 213 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentSbookBo.java
  38. 117 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblGatewayBo.java
  39. 135 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblModbusRtuBo.java
  40. 111 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblModbusTcpBo.java
  41. 111 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblMqttBo.java
  42. 123 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblRuleBo.java
  43. 99 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblRuleExecuteBo.java
  44. 111 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblRuleFilterBo.java
  45. 153 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblSensorSbookBo.java
  46. 129 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblVideoBo.java
  47. 123 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblVideoDetailBo.java
  48. 129 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblWarnBo.java
  49. 129 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblBreakdownVo.java
  50. 111 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblDatapointVo.java
  51. 87 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentOrganizationalVo.java
  52. 213 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentSbookVo.java
  53. 129 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentVo.java
  54. 117 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblGatewayVo.java
  55. 135 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblModbusRtuVo.java
  56. 112 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblModbusTcpVo.java
  57. 111 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblMqttVo.java
  58. 99 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblRuleExecuteVo.java
  59. 111 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblRuleFilterVo.java
  60. 123 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblRuleVo.java
  61. 153 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblSensorSbookVo.java
  62. 123 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblVideoDetailVo.java
  63. 129 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblVideoVo.java
  64. 129 0
      ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblWarnVo.java
  65. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblBreakdownMapper.java
  66. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblDatapointMapper.java
  67. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblEquipmentMapper.java
  68. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblEquipmentOrganizationalMapper.java
  69. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblEquipmentSbookMapper.java
  70. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblGatewayMapper.java
  71. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblModbusRtuMapper.java
  72. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblModbusTcpMapper.java
  73. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblMqttMapper.java
  74. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblRuleExecuteMapper.java
  75. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblRuleFilterMapper.java
  76. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblRuleMapper.java
  77. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblSensorSbookMapper.java
  78. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblVideoDetailMapper.java
  79. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblVideoMapper.java
  80. 15 0
      ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblWarnMapper.java
  81. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblBreakdownService.java
  82. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblDatapointService.java
  83. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblEquipmentOrganizationalService.java
  84. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblEquipmentSbookService.java
  85. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblEquipmentService.java
  86. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblGatewayService.java
  87. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblModbusRtuService.java
  88. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblModbusTcpService.java
  89. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblMqttService.java
  90. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblRuleExecuteService.java
  91. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblRuleFilterService.java
  92. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblRuleService.java
  93. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblSensorSbookService.java
  94. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblVideoDetailService.java
  95. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblVideoService.java
  96. 49 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/ITblWarnService.java
  97. 123 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblBreakdownServiceImpl.java
  98. 120 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblDatapointServiceImpl.java
  99. 116 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentOrganizationalServiceImpl.java
  100. 137 0
      ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentSbookServiceImpl.java

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+ 97 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblBreakdown.java

@@ -0,0 +1,97 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 故障管理对象 tbl_breakdown
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_breakdown")
+public class TblBreakdown extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 故障名称
+     */
+    private String name;
+    /**
+     * 故障值
+     */
+    private Long val;
+    /**
+     * 设备id
+     */
+    private String equipmentId;
+    /**
+     * 故障设备
+     */
+    private String equipmentName;
+    /**
+     * 故障内容
+     */
+    private String content;
+    /**
+     * 处理人
+     */
+    private String handler;
+    /**
+     * 处理方式
+     */
+    private String handlerWay;
+    /**
+     * 处理描述
+     */
+    private String handlerContent;
+    /**
+     * 处理时间
+     */
+    private Date handlerTime;
+    /**
+     * 故障时间
+     */
+    private Date faultTime;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifer;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+
+}

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

@@ -0,0 +1,85 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 点位数据对象 tbl_datapoint
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_datapoint")
+public class TblDatapoint extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 设备id
+     */
+    private String deviceId;
+    /**
+     * 数据类型
+     */
+    private String dataType;
+    /**
+     * 从设备号
+     */
+    private String slaveDeviceNumber;
+    /**
+     * 起始地址
+     */
+    private Long addr;
+    /**
+     * 起始地址偏移量
+     */
+    private Long addrOffset;
+    /**
+     * 待读寄存器的个数
+     */
+    private Long len;
+    /**
+     * 变量类型
+     */
+    private String valueType;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private String utime;
+
+}

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

@@ -0,0 +1,97 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备对象 tbl_equipment
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_equipment")
+public class TblEquipment extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 设备名称
+     */
+    private String name;
+    /**
+     * 编码
+     */
+    private String sn;
+    /**
+     * 型号
+     */
+    private String model;
+    /**
+     * 规格
+     */
+    private String specs;
+    /**
+     * 设备类型
+     */
+    private String type;
+    /**
+     * 设备分类
+     */
+    private String equipmentTypeId;
+    /**
+     * 生产商
+     */
+    private String manufacturer;
+    /**
+     * 制造商
+     */
+    private String producer;
+    /**
+     * 图片
+     */
+    private String pictures;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 拓展字段1
+     */
+    private String expr1;
+    /**
+     * 拓展字段2
+     */
+    private String expr2;
+
+}

+ 69 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipmentOrganizational.java

@@ -0,0 +1,69 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备组织机构对象 tbl_equipment_organizational
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_equipment_organizational")
+public class TblEquipmentOrganizational extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 区域编码
+     */
+    private String sn;
+    /**
+     * 上层位置
+     */
+    private String parentId;
+    /**
+     * 区域名称
+     */
+    private String name;
+    /**
+     * 所属公司
+     */
+    private String company;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 153 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipmentSbook.java

@@ -0,0 +1,153 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备台账对象 tbl_equipment_sbook
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_equipment_sbook")
+public class TblEquipmentSbook extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 上层位置
+     */
+    private String equipmentTreeId;
+    /**
+     * 设备编码
+     */
+    private String sn;
+    /**
+     * 备用编码
+     */
+    private String spareSn;
+    /**
+     * 设备名称
+     */
+    private String name;
+    /**
+     * 设备信息
+     */
+    private String equipmentInfoId;
+    /**
+     * 所属公司
+     */
+    private String deptId;
+    /**
+     * 所属组织机构
+     */
+    private String deptName;
+    /**
+     * 所属类型
+     */
+    private String equipmentTypeId;
+    /**
+     * 负责人
+     */
+    private String personInCharge;
+    /**
+     * 安装日期
+     */
+    private Date installationDate;
+    /**
+     * 安装地点地址
+     */
+    private String address;
+    /**
+     * 关联设备id
+     */
+    private String deviceId;
+    /**
+     * 标签
+     */
+    private String tagids;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 保修期结束日期
+     */
+    private Date endOfWarrantyPeriod;
+    /**
+     * 制造日期
+     */
+    private Date manufacturingDate;
+    /**
+     * 资产编码
+     */
+    private String assetNo;
+    /**
+     * 资产编号
+     */
+    private String serialNumber;
+    /**
+     * 使用证编号
+     */
+    private String useCertificateNo;
+    /**
+     * 安全级别
+     */
+    private String securityLevel;
+    /**
+     * 使用年限
+     */
+    private Long usefulLife;
+    /**
+     * 变动日期
+     */
+    private Date changeDate;
+    /**
+     * 供货厂家
+     */
+    private String supplier;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 
+     */
+    private String expr1;
+    /**
+     * 
+     */
+    private String expr2;
+
+}

+ 94 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblGateway.java

@@ -0,0 +1,94 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 网关管理对象 tbl_gateway
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_gateway")
+public class TblGateway extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String 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;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+
+}

+ 101 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblModbusRtu.java

@@ -0,0 +1,101 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * modbus_rtu配置对象 tbl_modbus_rtu
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_modbus_rtu")
+public class TblModbusRtu extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 
+     */
+    private String protocolName;
+    /**
+     * 
+     */
+    private String protocolDesc;
+    /**
+     * 
+     */
+    private String protocolType;
+    /**
+     * 
+     */
+    private String apiUrl;
+    /**
+     * 
+     */
+    private String commPortId;
+    /**
+     * 
+     */
+    private Long commPortType;
+    /**
+     * 
+     */
+    private Long baudRate;
+    /**
+     * 
+     */
+    private Long dateBits;
+    /**
+     * 
+     */
+    private Long parity;
+    /**
+     * 
+     */
+    private Long stopBits;
+    /**
+     * 
+     */
+    private String uuid;
+    /**
+     * 
+     */
+    private String interval;
+    /**
+     * 
+     */
+    private String creator;
+    /**
+     * 
+     */
+    private Date ctime;
+    /**
+     * 
+     */
+    private String modifier;
+    /**
+     * 
+     */
+    private Date utime;
+    /**
+     * 
+     */
+    private String remark;
+
+}

+ 85 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblModbusTcp.java

@@ -0,0 +1,85 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * modbus_tcp协议配置对象 tbl_modbus_tcp
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_modbus_tcp")
+public class TblModbusTcp extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 协议名称
+     */
+    private String protocolName;
+    /**
+     * 协议描述
+     */
+    private String protocolDesc;
+    /**
+     * 协议类型
+     */
+    private String protocolType;
+    /**
+     * modbusip地址
+     */
+    private String serverIp;
+    /**
+     * 端口
+     */
+    private String serverPort;
+    /**
+     * api接口地址
+     */
+    private String apiUrl;
+    /**
+     * 配置唯一UUID值
+     */
+    private String uuid;
+    /**
+     * 轮询间隔(ms)
+     */
+    private Long interval;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+
+}

+ 85 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblMqtt.java

@@ -0,0 +1,85 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * mqtt配置对象 tbl_mqtt
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_mqtt")
+public class TblMqtt extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 协议名称
+     */
+    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;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+
+}

+ 93 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblRule.java

@@ -0,0 +1,93 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 规则对象 tbl_rule
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_rule")
+public class TblRule extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 规则编号
+     */
+    private String sn;
+    /**
+     * 规则名称
+     */
+    private String name;
+    /**
+     * 触发类型
+     */
+    private String type;
+    /**
+     * 设备ID
+     */
+    private String equipmentId;
+    /**
+     * 传感器Id
+     */
+    private String sensorId;
+    /**
+     * 时间
+     */
+    private Date time;
+    /**
+     * 触发条件值
+     */
+    private String triggeringCondition;
+    /**
+     * 描述
+     */
+    private String description;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 
+     */
+    private String expr1;
+    /**
+     * 
+     */
+    private String expr2;
+
+}

+ 77 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblRuleExecute.java

@@ -0,0 +1,77 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 规则条件列对象 tbl_rule_execute
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_rule_execute")
+public class TblRuleExecute extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 规则Id
+     */
+    private String sn;
+    /**
+     * 条件Id
+     */
+    private String name;
+    /**
+     * 设备ID
+     */
+    private String equipmentId;
+    /**
+     * 执行动作
+     */
+    private String executeAction;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 
+     */
+    private String expr1;
+    /**
+     * 
+     */
+    private String expr2;
+
+}

+ 85 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblRuleFilter.java

@@ -0,0 +1,85 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 规则执行列对象 tbl_rule_filter
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_rule_filter")
+public class TblRuleFilter extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 规则Id
+     */
+    private String ruleId;
+    /**
+     * 过滤方式
+     */
+    private String filterWay;
+    /**
+     * 上限
+     */
+    private String upperLimit;
+    /**
+     * 下限
+     */
+    private String lowerLimit;
+    /**
+     * 过滤算法
+     */
+    private String filterAlgorithm;
+    /**
+     * 公式
+     */
+    private String formula;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 
+     */
+    private String expr1;
+    /**
+     * 
+     */
+    private String expr2;
+
+}

+ 113 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblSensorSbook.java

@@ -0,0 +1,113 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 传感器台账对象 tbl_sensor_sbook
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_sensor_sbook")
+public class TblSensorSbook extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 编号
+     */
+    private String sn;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 上层位置
+     */
+    private String equipmentTreeId;
+    /**
+     * 设备ID
+     */
+    private String equipmentId;
+    /**
+     * 设备名称
+     */
+    private String equipmentName;
+    /**
+     * 协议
+     */
+    private String protocolType;
+    /**
+     * 协议配置
+     */
+    private String configUuid;
+    /**
+     * 点表
+     */
+    private String datapointId;
+    /**
+     * 单位
+     */
+    private String unit;
+    /**
+     * 类型
+     */
+    private String type;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 标签
+     */
+    private String tagids;
+    /**
+     * 描述
+     */
+    private String description;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 
+     */
+    private String expr1;
+    /**
+     * 
+     */
+    private String expr2;
+
+}

+ 97 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblVideo.java

@@ -0,0 +1,97 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 视频对象 tbl_video
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_video")
+public class TblVideo extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 摄像头名称
+     */
+    private String name;
+    /**
+     * 平台编码
+     */
+    private String sn;
+    /**
+     * 主设备类型
+     */
+    private String type;
+    /**
+     * 主设备协议类型
+     */
+    private String protocolType;
+    /**
+     * 设备互联编码
+     */
+    private String connectCode;
+    /**
+     * 设备型号
+     */
+    private Long model;
+    /**
+     * 视频制式
+     */
+    private String videoFormat;
+    /**
+     * 设备提供商类型
+     */
+    private String vendorType;
+    /**
+     * 序列号
+     */
+    private String serialNumber;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 
+     */
+    private String expr1;
+    /**
+     * 
+     */
+    private String expr2;
+
+}

+ 93 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblVideoDetail.java

@@ -0,0 +1,93 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 摄像机详情对象 tbl_video_detail
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_video_detail")
+public class TblVideoDetail extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 视频通道输入号
+     */
+    private String videoChannel;
+    /**
+     * 摄像机编码
+     */
+    private String cameraCode;
+    /**
+     * 摄像机名称
+     */
+    private String cameraName;
+    /**
+     * 摄像机类型
+     */
+    private String cameraType;
+    /**
+     * 摄像机位置
+     */
+    private String cameraLocationDesc;
+    /**
+     * 经度
+     */
+    private String longitude;
+    /**
+     * 纬度
+     */
+    private String latitude;
+    /**
+     * 高度
+     */
+    private String height;
+    /**
+     * 音频输出通道
+     */
+    private String voiceOutCode;
+    /**
+     * 是否支持组播
+     */
+    private String isSupportBoardcast;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 97 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblWarn.java

@@ -0,0 +1,97 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 告警管理对象 tbl_warn
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_warn")
+public class TblWarn extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 告警名称
+     */
+    private String name;
+    /**
+     * 告警值
+     */
+    private Long val;
+    /**
+     * 设备id
+     */
+    private String equipmentId;
+    /**
+     * 告警设备
+     */
+    private String equipmentName;
+    /**
+     * 告警内容
+     */
+    private String content;
+    /**
+     * 处理人
+     */
+    private String handler;
+    /**
+     * 处理方式
+     */
+    private String handleWay;
+    /**
+     * 吃力描述
+     */
+    private String handleContent;
+    /**
+     * 处理时间
+     */
+    private Date handleTime;
+    /**
+     * 告警时间
+     */
+    private Date alarmTime;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date ctime;
+    /**
+     * 更新人
+     */
+    private String modifier;
+    /**
+     * 更新时间
+     */
+    private Date utime;
+
+}

+ 129 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblBreakdownBo.java

@@ -0,0 +1,129 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 故障管理业务对象 tbl_breakdown
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblBreakdownBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 故障名称
+     */
+    @NotBlank(message = "故障名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 故障值
+     */
+    @NotNull(message = "故障值不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long val;
+
+    /**
+     * 设备id
+     */
+    @NotBlank(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentId;
+
+    /**
+     * 故障设备
+     */
+    @NotBlank(message = "故障设备不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentName;
+
+    /**
+     * 故障内容
+     */
+    @NotBlank(message = "故障内容不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String content;
+
+    /**
+     * 处理人
+     */
+    @NotBlank(message = "处理人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String handler;
+
+    /**
+     * 处理方式
+     */
+    @NotBlank(message = "处理方式不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String handlerWay;
+
+    /**
+     * 处理描述
+     */
+    @NotBlank(message = "处理描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String handlerContent;
+
+    /**
+     * 处理时间
+     */
+    @NotNull(message = "处理时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date handlerTime;
+
+    /**
+     * 故障时间
+     */
+    @NotNull(message = "故障时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date faultTime;
+
+    /**
+     * 状态
+     */
+    @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String status;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifer;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+
+}

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

@@ -0,0 +1,111 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 点位数据业务对象 tbl_datapoint
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblDatapointBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 名称
+     */
+    @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 设备id
+     */
+    @NotBlank(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String deviceId;
+
+    /**
+     * 数据类型
+     */
+    @NotBlank(message = "数据类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String dataType;
+
+    /**
+     * 从设备号
+     */
+    @NotBlank(message = "从设备号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String slaveDeviceNumber;
+
+    /**
+     * 起始地址
+     */
+    @NotNull(message = "起始地址不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long addr;
+
+    /**
+     * 起始地址偏移量
+     */
+    @NotNull(message = "起始地址偏移量不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long addrOffset;
+
+    /**
+     * 待读寄存器的个数
+     */
+    @NotNull(message = "待读寄存器的个数不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long len;
+
+    /**
+     * 变量类型
+     */
+    @NotBlank(message = "变量类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String valueType;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotBlank(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String utime;
+
+
+}

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

@@ -0,0 +1,129 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备业务对象 tbl_equipment
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblEquipmentBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 设备名称
+     */
+    @NotBlank(message = "设备名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 编码
+     */
+    @NotBlank(message = "编码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 型号
+     */
+    @NotBlank(message = "型号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String model;
+
+    /**
+     * 规格
+     */
+    @NotBlank(message = "规格不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String specs;
+
+    /**
+     * 设备类型
+     */
+    @NotBlank(message = "设备类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String type;
+
+    /**
+     * 设备分类
+     */
+    @NotBlank(message = "设备分类不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentTypeId;
+
+    /**
+     * 生产商
+     */
+    @NotBlank(message = "生产商不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String manufacturer;
+
+    /**
+     * 制造商
+     */
+    @NotBlank(message = "制造商不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String producer;
+
+    /**
+     * 图片
+     */
+    @NotBlank(message = "图片不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String pictures;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 拓展字段1
+     */
+    @NotBlank(message = "拓展字段1不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr1;
+
+    /**
+     * 拓展字段2
+     */
+    @NotBlank(message = "拓展字段2不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr2;
+
+
+}

+ 87 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentOrganizationalBo.java

@@ -0,0 +1,87 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备组织机构业务对象 tbl_equipment_organizational
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblEquipmentOrganizationalBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 区域编码
+     */
+    @NotBlank(message = "区域编码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 上层位置
+     */
+    @NotBlank(message = "上层位置不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String parentId;
+
+    /**
+     * 区域名称
+     */
+    @NotBlank(message = "区域名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 所属公司
+     */
+    @NotBlank(message = "所属公司不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String company;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+
+}

+ 213 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentSbookBo.java

@@ -0,0 +1,213 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备台账业务对象 tbl_equipment_sbook
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblEquipmentSbookBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 上层位置
+     */
+    @NotBlank(message = "上层位置不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentTreeId;
+
+    /**
+     * 设备编码
+     */
+    @NotBlank(message = "设备编码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 备用编码
+     */
+    @NotBlank(message = "备用编码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String spareSn;
+
+    /**
+     * 设备名称
+     */
+    @NotBlank(message = "设备名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 设备信息
+     */
+    @NotBlank(message = "设备信息不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentInfoId;
+
+    /**
+     * 所属公司
+     */
+    @NotBlank(message = "所属公司不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String deptId;
+
+    /**
+     * 所属组织机构
+     */
+    @NotBlank(message = "所属组织机构不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String deptName;
+
+    /**
+     * 所属类型
+     */
+    @NotBlank(message = "所属类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentTypeId;
+
+    /**
+     * 负责人
+     */
+    @NotBlank(message = "负责人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String personInCharge;
+
+    /**
+     * 安装日期
+     */
+    @NotNull(message = "安装日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date installationDate;
+
+    /**
+     * 安装地点地址
+     */
+    @NotBlank(message = "安装地点地址不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String address;
+
+    /**
+     * 关联设备id
+     */
+    @NotBlank(message = "关联设备id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String deviceId;
+
+    /**
+     * 标签
+     */
+    @NotBlank(message = "标签不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String tagids;
+
+    /**
+     * 状态
+     */
+    @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String status;
+
+    /**
+     * 保修期结束日期
+     */
+    @NotNull(message = "保修期结束日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date endOfWarrantyPeriod;
+
+    /**
+     * 制造日期
+     */
+    @NotNull(message = "制造日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date manufacturingDate;
+
+    /**
+     * 资产编码
+     */
+    @NotBlank(message = "资产编码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String assetNo;
+
+    /**
+     * 资产编号
+     */
+    @NotBlank(message = "资产编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String serialNumber;
+
+    /**
+     * 使用证编号
+     */
+    @NotBlank(message = "使用证编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String useCertificateNo;
+
+    /**
+     * 安全级别
+     */
+    @NotBlank(message = "安全级别不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String securityLevel;
+
+    /**
+     * 使用年限
+     */
+    @NotNull(message = "使用年限不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long usefulLife;
+
+    /**
+     * 变动日期
+     */
+    @NotNull(message = "变动日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date changeDate;
+
+    /**
+     * 供货厂家
+     */
+    @NotBlank(message = "供货厂家不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String supplier;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr1;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr2;
+
+
+}

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

@@ -0,0 +1,117 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 网关管理业务对象 tbl_gateway
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblGatewayBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 序列号
+     */
+    @NotBlank(message = "序列号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 名称
+     */
+    @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 网关id
+     */
+    @NotBlank(message = "网关id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String gatewayId;
+
+    /**
+     * 状态
+     */
+    @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String status;
+
+    /**
+     * 远程控制
+     */
+    @NotBlank(message = "远程控制不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remoteManage;
+
+    /**
+     * 流量控制
+     */
+    @NotNull(message = "流量控制不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long flowControl;
+
+    /**
+     * 流量控制类型
+     */
+    @NotBlank(message = "流量控制类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String flowControlType;
+
+    /**
+     * 所属服务
+     */
+    @NotBlank(message = "所属服务不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String belongService;
+
+    /**
+     * 描述
+     */
+    @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String description;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+
+}

+ 135 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblModbusRtuBo.java

@@ -0,0 +1,135 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * modbus_rtu配置业务对象 tbl_modbus_rtu
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblModbusRtuBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolName;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolDesc;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolType;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String apiUrl;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String commPortId;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long commPortType;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long baudRate;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long dateBits;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long parity;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long stopBits;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String uuid;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String interval;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 
+     */
+    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+
+}

+ 111 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblModbusTcpBo.java

@@ -0,0 +1,111 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * modbus_tcp协议配置业务对象 tbl_modbus_tcp
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblModbusTcpBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 协议名称
+     */
+    @NotBlank(message = "协议名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolName;
+
+    /**
+     * 协议描述
+     */
+    @NotBlank(message = "协议描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolDesc;
+
+    /**
+     * 协议类型
+     */
+    @NotBlank(message = "协议类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolType;
+
+    /**
+     * modbusip地址
+     */
+    @NotBlank(message = "modbusip地址不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String serverIp;
+
+    /**
+     * 端口
+     */
+    @NotBlank(message = "端口不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String serverPort;
+
+    /**
+     * api接口地址
+     */
+    @NotBlank(message = "api接口地址不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String apiUrl;
+
+    /**
+     * 配置唯一UUID值
+     */
+    @NotBlank(message = "配置唯一UUID值不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String uuid;
+
+    /**
+     * 轮询间隔(ms)
+     */
+    @NotNull(message = "轮询间隔(ms)不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long interval;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+
+}

+ 111 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblMqttBo.java

@@ -0,0 +1,111 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * mqtt配置业务对象 tbl_mqtt
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblMqttBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 协议名称
+     */
+    @NotBlank(message = "协议名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolName;
+
+    /**
+     * 协议描述
+     */
+    @NotBlank(message = "协议描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolDesc;
+
+    /**
+     * 协议类型
+     */
+    @NotBlank(message = "协议类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolType;
+
+    /**
+     * Mqtt地址
+     */
+    @NotBlank(message = "Mqtt地址不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String serverAddress;
+
+    /**
+     * Mqtt主题
+     */
+    @NotBlank(message = "Mqtt主题不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String serverTopic;
+
+    /**
+     * 账号
+     */
+    @NotBlank(message = "账号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String account;
+
+    /**
+     * 密码
+     */
+    @NotBlank(message = "密码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String password;
+
+    /**
+     * 配置唯一uuid
+     */
+    @NotBlank(message = "配置唯一uuid不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String uuid;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+
+}

+ 123 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblRuleBo.java

@@ -0,0 +1,123 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 规则业务对象 tbl_rule
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblRuleBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 规则编号
+     */
+    @NotBlank(message = "规则编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 规则名称
+     */
+    @NotBlank(message = "规则名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 触发类型
+     */
+    @NotBlank(message = "触发类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String type;
+
+    /**
+     * 设备ID
+     */
+    @NotBlank(message = "设备ID不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentId;
+
+    /**
+     * 传感器Id
+     */
+    @NotBlank(message = "传感器Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sensorId;
+
+    /**
+     * 时间
+     */
+    @NotNull(message = "时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date time;
+
+    /**
+     * 触发条件值
+     */
+    @NotBlank(message = "触发条件值不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String triggeringCondition;
+
+    /**
+     * 描述
+     */
+    @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String description;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr1;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr2;
+
+
+}

+ 99 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblRuleExecuteBo.java

@@ -0,0 +1,99 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 规则条件列业务对象 tbl_rule_execute
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblRuleExecuteBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 规则Id
+     */
+    @NotBlank(message = "规则Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 条件Id
+     */
+    @NotBlank(message = "条件Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 设备ID
+     */
+    @NotBlank(message = "设备ID不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentId;
+
+    /**
+     * 执行动作
+     */
+    @NotBlank(message = "执行动作不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String executeAction;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr1;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr2;
+
+
+}

+ 111 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblRuleFilterBo.java

@@ -0,0 +1,111 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 规则执行列业务对象 tbl_rule_filter
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblRuleFilterBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 规则Id
+     */
+    @NotBlank(message = "规则Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String ruleId;
+
+    /**
+     * 过滤方式
+     */
+    @NotBlank(message = "过滤方式不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String filterWay;
+
+    /**
+     * 上限
+     */
+    @NotBlank(message = "上限不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String upperLimit;
+
+    /**
+     * 下限
+     */
+    @NotBlank(message = "下限不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String lowerLimit;
+
+    /**
+     * 过滤算法
+     */
+    @NotBlank(message = "过滤算法不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String filterAlgorithm;
+
+    /**
+     * 公式
+     */
+    @NotBlank(message = "公式不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String formula;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr1;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr2;
+
+
+}

+ 153 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblSensorSbookBo.java

@@ -0,0 +1,153 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 传感器台账业务对象 tbl_sensor_sbook
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblSensorSbookBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 编号
+     */
+    @NotBlank(message = "编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 名称
+     */
+    @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 上层位置
+     */
+    @NotBlank(message = "上层位置不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentTreeId;
+
+    /**
+     * 设备ID
+     */
+    @NotBlank(message = "设备ID不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentId;
+
+    /**
+     * 设备名称
+     */
+    @NotBlank(message = "设备名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentName;
+
+    /**
+     * 协议
+     */
+    @NotBlank(message = "协议不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolType;
+
+    /**
+     * 协议配置
+     */
+    @NotBlank(message = "协议配置不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String configUuid;
+
+    /**
+     * 点表
+     */
+    @NotBlank(message = "点表不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String datapointId;
+
+    /**
+     * 单位
+     */
+    @NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String unit;
+
+    /**
+     * 类型
+     */
+    @NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String type;
+
+    /**
+     * 状态
+     */
+    @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String status;
+
+    /**
+     * 标签
+     */
+    @NotBlank(message = "标签不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String tagids;
+
+    /**
+     * 描述
+     */
+    @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String description;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr1;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr2;
+
+
+}

+ 129 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblVideoBo.java

@@ -0,0 +1,129 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 视频业务对象 tbl_video
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblVideoBo extends BaseEntity {
+
+    /**
+     * id
+     */
+    @NotBlank(message = "id不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 摄像头名称
+     */
+    @NotBlank(message = "摄像头名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 平台编码
+     */
+    @NotBlank(message = "平台编码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String sn;
+
+    /**
+     * 主设备类型
+     */
+    @NotBlank(message = "主设备类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String type;
+
+    /**
+     * 主设备协议类型
+     */
+    @NotBlank(message = "主设备协议类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String protocolType;
+
+    /**
+     * 设备互联编码
+     */
+    @NotBlank(message = "设备互联编码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String connectCode;
+
+    /**
+     * 设备型号
+     */
+    @NotNull(message = "设备型号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long model;
+
+    /**
+     * 视频制式
+     */
+    @NotBlank(message = "视频制式不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String videoFormat;
+
+    /**
+     * 设备提供商类型
+     */
+    @NotBlank(message = "设备提供商类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String vendorType;
+
+    /**
+     * 序列号
+     */
+    @NotBlank(message = "序列号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String serialNumber;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr1;
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String expr2;
+
+
+}

+ 123 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblVideoDetailBo.java

@@ -0,0 +1,123 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 摄像机详情业务对象 tbl_video_detail
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblVideoDetailBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 视频通道输入号
+     */
+    @NotBlank(message = "视频通道输入号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String videoChannel;
+
+    /**
+     * 摄像机编码
+     */
+    @NotBlank(message = "摄像机编码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String cameraCode;
+
+    /**
+     * 摄像机名称
+     */
+    @NotBlank(message = "摄像机名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String cameraName;
+
+    /**
+     * 摄像机类型
+     */
+    @NotBlank(message = "摄像机类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String cameraType;
+
+    /**
+     * 摄像机位置
+     */
+    @NotBlank(message = "摄像机位置不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String cameraLocationDesc;
+
+    /**
+     * 经度
+     */
+    @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @NotBlank(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String latitude;
+
+    /**
+     * 高度
+     */
+    @NotBlank(message = "高度不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String height;
+
+    /**
+     * 音频输出通道
+     */
+    @NotBlank(message = "音频输出通道不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String voiceOutCode;
+
+    /**
+     * 是否支持组播
+     */
+    @NotBlank(message = "是否支持组播不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String isSupportBoardcast;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+
+}

+ 129 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblWarnBo.java

@@ -0,0 +1,129 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 告警管理业务对象 tbl_warn
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TblWarnBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 告警名称
+     */
+    @NotBlank(message = "告警名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 告警值
+     */
+    @NotNull(message = "告警值不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long val;
+
+    /**
+     * 设备id
+     */
+    @NotBlank(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentId;
+
+    /**
+     * 告警设备
+     */
+    @NotBlank(message = "告警设备不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String equipmentName;
+
+    /**
+     * 告警内容
+     */
+    @NotBlank(message = "告警内容不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String content;
+
+    /**
+     * 处理人
+     */
+    @NotBlank(message = "处理人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String handler;
+
+    /**
+     * 处理方式
+     */
+    @NotBlank(message = "处理方式不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String handleWay;
+
+    /**
+     * 吃力描述
+     */
+    @NotBlank(message = "吃力描述不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String handleContent;
+
+    /**
+     * 处理时间
+     */
+    @NotNull(message = "处理时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date handleTime;
+
+    /**
+     * 告警时间
+     */
+    @NotNull(message = "告警时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date alarmTime;
+
+    /**
+     * 状态
+     */
+    @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String status;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @NotBlank(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @NotBlank(message = "更新人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date utime;
+
+
+}

+ 129 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblBreakdownVo.java

@@ -0,0 +1,129 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_breakdown
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblBreakdownVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 故障名称
+     */
+    @ExcelProperty(value = "故障名称")
+    private String name;
+
+    /**
+     * 故障值
+     */
+    @ExcelProperty(value = "故障值")
+    private Long val;
+
+    /**
+     * 设备id
+     */
+    @ExcelProperty(value = "设备id")
+    private String equipmentId;
+
+    /**
+     * 故障设备
+     */
+    @ExcelProperty(value = "故障设备")
+    private String equipmentName;
+
+    /**
+     * 故障内容
+     */
+    @ExcelProperty(value = "故障内容")
+    private String content;
+
+    /**
+     * 处理人
+     */
+    @ExcelProperty(value = "处理人")
+    private String handler;
+
+    /**
+     * 处理方式
+     */
+    @ExcelProperty(value = "处理方式")
+    private String handlerWay;
+
+    /**
+     * 处理描述
+     */
+    @ExcelProperty(value = "处理描述")
+    private String handlerContent;
+
+    /**
+     * 处理时间
+     */
+    @ExcelProperty(value = "处理时间")
+    private Date handlerTime;
+
+    /**
+     * 故障时间
+     */
+    @ExcelProperty(value = "故障时间")
+    private Date faultTime;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifer;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+
+}

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

@@ -0,0 +1,111 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_datapoint
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblDatapointVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 名称
+     */
+    @ExcelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 设备id
+     */
+    @ExcelProperty(value = "设备id")
+    private String deviceId;
+
+    /**
+     * 数据类型
+     */
+    @ExcelProperty(value = "数据类型")
+    private String dataType;
+
+    /**
+     * 从设备号
+     */
+    @ExcelProperty(value = "从设备号")
+    private String slaveDeviceNumber;
+
+    /**
+     * 起始地址
+     */
+    @ExcelProperty(value = "起始地址")
+    private Long addr;
+
+    /**
+     * 起始地址偏移量
+     */
+    @ExcelProperty(value = "起始地址偏移量")
+    private Long addrOffset;
+
+    /**
+     * 待读寄存器的个数
+     */
+    @ExcelProperty(value = "待读寄存器的个数")
+    private Long len;
+
+    /**
+     * 变量类型
+     */
+    @ExcelProperty(value = "变量类型")
+    private String valueType;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private String utime;
+
+
+}

+ 87 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentOrganizationalVo.java

@@ -0,0 +1,87 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_organizational
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblEquipmentOrganizationalVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 区域编码
+     */
+    @ExcelProperty(value = "区域编码")
+    private String sn;
+
+    /**
+     * 上层位置
+     */
+    @ExcelProperty(value = "上层位置")
+    private String parentId;
+
+    /**
+     * 区域名称
+     */
+    @ExcelProperty(value = "区域名称")
+    private String name;
+
+    /**
+     * 所属公司
+     */
+    @ExcelProperty(value = "所属公司")
+    private String company;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 213 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentSbookVo.java

@@ -0,0 +1,213 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_sbook
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblEquipmentSbookVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 上层位置
+     */
+    @ExcelProperty(value = "上层位置")
+    private String equipmentTreeId;
+
+    /**
+     * 设备编码
+     */
+    @ExcelProperty(value = "设备编码")
+    private String sn;
+
+    /**
+     * 备用编码
+     */
+    @ExcelProperty(value = "备用编码")
+    private String spareSn;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String name;
+
+    /**
+     * 设备信息
+     */
+    @ExcelProperty(value = "设备信息")
+    private String equipmentInfoId;
+
+    /**
+     * 所属公司
+     */
+    @ExcelProperty(value = "所属公司")
+    private String deptId;
+
+    /**
+     * 所属组织机构
+     */
+    @ExcelProperty(value = "所属组织机构")
+    private String deptName;
+
+    /**
+     * 所属类型
+     */
+    @ExcelProperty(value = "所属类型")
+    private String equipmentTypeId;
+
+    /**
+     * 负责人
+     */
+    @ExcelProperty(value = "负责人")
+    private String personInCharge;
+
+    /**
+     * 安装日期
+     */
+    @ExcelProperty(value = "安装日期")
+    private Date installationDate;
+
+    /**
+     * 安装地点地址
+     */
+    @ExcelProperty(value = "安装地点地址")
+    private String address;
+
+    /**
+     * 关联设备id
+     */
+    @ExcelProperty(value = "关联设备id")
+    private String deviceId;
+
+    /**
+     * 标签
+     */
+    @ExcelProperty(value = "标签")
+    private String tagids;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    /**
+     * 保修期结束日期
+     */
+    @ExcelProperty(value = "保修期结束日期")
+    private Date endOfWarrantyPeriod;
+
+    /**
+     * 制造日期
+     */
+    @ExcelProperty(value = "制造日期")
+    private Date manufacturingDate;
+
+    /**
+     * 资产编码
+     */
+    @ExcelProperty(value = "资产编码")
+    private String assetNo;
+
+    /**
+     * 资产编号
+     */
+    @ExcelProperty(value = "资产编号")
+    private String serialNumber;
+
+    /**
+     * 使用证编号
+     */
+    @ExcelProperty(value = "使用证编号")
+    private String useCertificateNo;
+
+    /**
+     * 安全级别
+     */
+    @ExcelProperty(value = "安全级别")
+    private String securityLevel;
+
+    /**
+     * 使用年限
+     */
+    @ExcelProperty(value = "使用年限")
+    private Long usefulLife;
+
+    /**
+     * 变动日期
+     */
+    @ExcelProperty(value = "变动日期")
+    private Date changeDate;
+
+    /**
+     * 供货厂家
+     */
+    @ExcelProperty(value = "供货厂家")
+    private String supplier;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr1;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr2;
+
+
+}

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

@@ -0,0 +1,129 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblEquipmentVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String name;
+
+    /**
+     * 编码
+     */
+    @ExcelProperty(value = "编码")
+    private String sn;
+
+    /**
+     * 型号
+     */
+    @ExcelProperty(value = "型号")
+    private String model;
+
+    /**
+     * 规格
+     */
+    @ExcelProperty(value = "规格")
+    private String specs;
+
+    /**
+     * 设备类型
+     */
+    @ExcelProperty(value = "设备类型")
+    private String type;
+
+    /**
+     * 设备分类
+     */
+    @ExcelProperty(value = "设备分类")
+    private String equipmentTypeId;
+
+    /**
+     * 生产商
+     */
+    @ExcelProperty(value = "生产商")
+    private String manufacturer;
+
+    /**
+     * 制造商
+     */
+    @ExcelProperty(value = "制造商")
+    private String producer;
+
+    /**
+     * 图片
+     */
+    @ExcelProperty(value = "图片")
+    private String pictures;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 拓展字段1
+     */
+    @ExcelProperty(value = "拓展字段1")
+    private String expr1;
+
+    /**
+     * 拓展字段2
+     */
+    @ExcelProperty(value = "拓展字段2")
+    private String expr2;
+
+
+}

+ 117 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblGatewayVo.java

@@ -0,0 +1,117 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblGatewayVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 序列号
+     */
+    @ExcelProperty(value = "序列号")
+    private String sn;
+
+    /**
+     * 名称
+     */
+    @ExcelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 网关id
+     */
+    @ExcelProperty(value = "网关id")
+    private String gatewayId;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    /**
+     * 远程控制
+     */
+    @ExcelProperty(value = "远程控制")
+    private String remoteManage;
+
+    /**
+     * 流量控制
+     */
+    @ExcelProperty(value = "流量控制")
+    private Long flowControl;
+
+    /**
+     * 流量控制类型
+     */
+    @ExcelProperty(value = "流量控制类型")
+    private String flowControlType;
+
+    /**
+     * 所属服务
+     */
+    @ExcelProperty(value = "所属服务")
+    private String belongService;
+
+    /**
+     * 描述
+     */
+    @ExcelProperty(value = "描述")
+    private String description;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+
+}

+ 135 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblModbusRtuVo.java

@@ -0,0 +1,135 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * modbus_rtu配置视图对象 tbl_modbus_rtu
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblModbusRtuVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String protocolName;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String protocolDesc;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String protocolType;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String apiUrl;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String commPortId;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long commPortType;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long baudRate;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long dateBits;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long parity;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Long stopBits;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String uuid;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String interval;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String creator;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Date ctime;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String modifier;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private Date utime;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String remark;
+
+
+}

+ 112 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblModbusTcpVo.java

@@ -0,0 +1,112 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * modbus_tcp协议配置视图对象 tbl_modbus_tcp
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblModbusTcpVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 协议名称
+     */
+    @ExcelProperty(value = "协议名称")
+    private String protocolName;
+
+    /**
+     * 协议描述
+     */
+    @ExcelProperty(value = "协议描述")
+    private String protocolDesc;
+
+    /**
+     * 协议类型
+     */
+    @ExcelProperty(value = "协议类型")
+    private String protocolType;
+
+    /**
+     * modbusip地址
+     */
+    @ExcelProperty(value = "modbusip地址")
+    private String serverIp;
+
+    /**
+     * 端口
+     */
+    @ExcelProperty(value = "端口")
+    private String serverPort;
+
+    /**
+     * api接口地址
+     */
+    @ExcelProperty(value = "api接口地址")
+    private String apiUrl;
+
+    /**
+     * 配置唯一UUID值
+     */
+    @ExcelProperty(value = "配置唯一UUID值")
+    private String uuid;
+
+    /**
+     * 轮询间隔(ms)
+     */
+    @ExcelProperty(value = "轮询间隔", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "m=s")
+    private Long interval;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+
+}

+ 111 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblMqttVo.java

@@ -0,0 +1,111 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * mqtt配置视图对象 tbl_mqtt
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblMqttVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 协议名称
+     */
+    @ExcelProperty(value = "协议名称")
+    private String protocolName;
+
+    /**
+     * 协议描述
+     */
+    @ExcelProperty(value = "协议描述")
+    private String protocolDesc;
+
+    /**
+     * 协议类型
+     */
+    @ExcelProperty(value = "协议类型")
+    private String protocolType;
+
+    /**
+     * Mqtt地址
+     */
+    @ExcelProperty(value = "Mqtt地址")
+    private String serverAddress;
+
+    /**
+     * Mqtt主题
+     */
+    @ExcelProperty(value = "Mqtt主题")
+    private String serverTopic;
+
+    /**
+     * 账号
+     */
+    @ExcelProperty(value = "账号")
+    private String account;
+
+    /**
+     * 密码
+     */
+    @ExcelProperty(value = "密码")
+    private String password;
+
+    /**
+     * 配置唯一uuid
+     */
+    @ExcelProperty(value = "配置唯一uuid")
+    private String uuid;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+
+}

+ 99 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblRuleExecuteVo.java

@@ -0,0 +1,99 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_rule_execute
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblRuleExecuteVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 规则Id
+     */
+    @ExcelProperty(value = "规则Id")
+    private String sn;
+
+    /**
+     * 条件Id
+     */
+    @ExcelProperty(value = "条件Id")
+    private String name;
+
+    /**
+     * 设备ID
+     */
+    @ExcelProperty(value = "设备ID")
+    private String equipmentId;
+
+    /**
+     * 执行动作
+     */
+    @ExcelProperty(value = "执行动作")
+    private String executeAction;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr1;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr2;
+
+
+}

+ 111 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblRuleFilterVo.java

@@ -0,0 +1,111 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_rule_filter
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblRuleFilterVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 规则Id
+     */
+    @ExcelProperty(value = "规则Id")
+    private String ruleId;
+
+    /**
+     * 过滤方式
+     */
+    @ExcelProperty(value = "过滤方式")
+    private String filterWay;
+
+    /**
+     * 上限
+     */
+    @ExcelProperty(value = "上限")
+    private String upperLimit;
+
+    /**
+     * 下限
+     */
+    @ExcelProperty(value = "下限")
+    private String lowerLimit;
+
+    /**
+     * 过滤算法
+     */
+    @ExcelProperty(value = "过滤算法")
+    private String filterAlgorithm;
+
+    /**
+     * 公式
+     */
+    @ExcelProperty(value = "公式")
+    private String formula;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr1;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr2;
+
+
+}

+ 123 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblRuleVo.java

@@ -0,0 +1,123 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_rule
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblRuleVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 规则编号
+     */
+    @ExcelProperty(value = "规则编号")
+    private String sn;
+
+    /**
+     * 规则名称
+     */
+    @ExcelProperty(value = "规则名称")
+    private String name;
+
+    /**
+     * 触发类型
+     */
+    @ExcelProperty(value = "触发类型")
+    private String type;
+
+    /**
+     * 设备ID
+     */
+    @ExcelProperty(value = "设备ID")
+    private String equipmentId;
+
+    /**
+     * 传感器Id
+     */
+    @ExcelProperty(value = "传感器Id")
+    private String sensorId;
+
+    /**
+     * 时间
+     */
+    @ExcelProperty(value = "时间")
+    private Date time;
+
+    /**
+     * 触发条件值
+     */
+    @ExcelProperty(value = "触发条件值")
+    private String triggeringCondition;
+
+    /**
+     * 描述
+     */
+    @ExcelProperty(value = "描述")
+    private String description;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr1;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr2;
+
+
+}

+ 153 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblSensorSbookVo.java

@@ -0,0 +1,153 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_sbook
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblSensorSbookVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private String sn;
+
+    /**
+     * 名称
+     */
+    @ExcelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 上层位置
+     */
+    @ExcelProperty(value = "上层位置")
+    private String equipmentTreeId;
+
+    /**
+     * 设备ID
+     */
+    @ExcelProperty(value = "设备ID")
+    private String equipmentId;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String equipmentName;
+
+    /**
+     * 协议
+     */
+    @ExcelProperty(value = "协议")
+    private String protocolType;
+
+    /**
+     * 协议配置
+     */
+    @ExcelProperty(value = "协议配置")
+    private String configUuid;
+
+    /**
+     * 点表
+     */
+    @ExcelProperty(value = "点表")
+    private String datapointId;
+
+    /**
+     * 单位
+     */
+    @ExcelProperty(value = "单位")
+    private String unit;
+
+    /**
+     * 类型
+     */
+    @ExcelProperty(value = "类型")
+    private String type;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    /**
+     * 标签
+     */
+    @ExcelProperty(value = "标签")
+    private String tagids;
+
+    /**
+     * 描述
+     */
+    @ExcelProperty(value = "描述")
+    private String description;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr1;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr2;
+
+
+}

+ 123 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblVideoDetailVo.java

@@ -0,0 +1,123 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_video_detail
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblVideoDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 视频通道输入号
+     */
+    @ExcelProperty(value = "视频通道输入号")
+    private String videoChannel;
+
+    /**
+     * 摄像机编码
+     */
+    @ExcelProperty(value = "摄像机编码")
+    private String cameraCode;
+
+    /**
+     * 摄像机名称
+     */
+    @ExcelProperty(value = "摄像机名称")
+    private String cameraName;
+
+    /**
+     * 摄像机类型
+     */
+    @ExcelProperty(value = "摄像机类型")
+    private String cameraType;
+
+    /**
+     * 摄像机位置
+     */
+    @ExcelProperty(value = "摄像机位置")
+    private String cameraLocationDesc;
+
+    /**
+     * 经度
+     */
+    @ExcelProperty(value = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ExcelProperty(value = "纬度")
+    private String latitude;
+
+    /**
+     * 高度
+     */
+    @ExcelProperty(value = "高度")
+    private String height;
+
+    /**
+     * 音频输出通道
+     */
+    @ExcelProperty(value = "音频输出通道")
+    private String voiceOutCode;
+
+    /**
+     * 是否支持组播
+     */
+    @ExcelProperty(value = "是否支持组播")
+    private String isSupportBoardcast;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 129 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblVideoVo.java

@@ -0,0 +1,129 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_video
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblVideoVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @ExcelProperty(value = "id")
+    private String id;
+
+    /**
+     * 摄像头名称
+     */
+    @ExcelProperty(value = "摄像头名称")
+    private String name;
+
+    /**
+     * 平台编码
+     */
+    @ExcelProperty(value = "平台编码")
+    private String sn;
+
+    /**
+     * 主设备类型
+     */
+    @ExcelProperty(value = "主设备类型")
+    private String type;
+
+    /**
+     * 主设备协议类型
+     */
+    @ExcelProperty(value = "主设备协议类型")
+    private String protocolType;
+
+    /**
+     * 设备互联编码
+     */
+    @ExcelProperty(value = "设备互联编码")
+    private String connectCode;
+
+    /**
+     * 设备型号
+     */
+    @ExcelProperty(value = "设备型号")
+    private Long model;
+
+    /**
+     * 视频制式
+     */
+    @ExcelProperty(value = "视频制式")
+    private String videoFormat;
+
+    /**
+     * 设备提供商类型
+     */
+    @ExcelProperty(value = "设备提供商类型")
+    private String vendorType;
+
+    /**
+     * 序列号
+     */
+    @ExcelProperty(value = "序列号")
+    private String serialNumber;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr1;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String expr2;
+
+
+}

+ 129 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblWarnVo.java

@@ -0,0 +1,129 @@
+package com.ruoyi.data.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_warn
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class TblWarnVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    @ExcelProperty(value = "")
+    private String id;
+
+    /**
+     * 告警名称
+     */
+    @ExcelProperty(value = "告警名称")
+    private String name;
+
+    /**
+     * 告警值
+     */
+    @ExcelProperty(value = "告警值")
+    private Long val;
+
+    /**
+     * 设备id
+     */
+    @ExcelProperty(value = "设备id")
+    private String equipmentId;
+
+    /**
+     * 告警设备
+     */
+    @ExcelProperty(value = "告警设备")
+    private String equipmentName;
+
+    /**
+     * 告警内容
+     */
+    @ExcelProperty(value = "告警内容")
+    private String content;
+
+    /**
+     * 处理人
+     */
+    @ExcelProperty(value = "处理人")
+    private String handler;
+
+    /**
+     * 处理方式
+     */
+    @ExcelProperty(value = "处理方式")
+    private String handleWay;
+
+    /**
+     * 吃力描述
+     */
+    @ExcelProperty(value = "吃力描述")
+    private String handleContent;
+
+    /**
+     * 处理时间
+     */
+    @ExcelProperty(value = "处理时间")
+    private Date handleTime;
+
+    /**
+     * 告警时间
+     */
+    @ExcelProperty(value = "告警时间")
+    private Date alarmTime;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date ctime;
+
+    /**
+     * 更新人
+     */
+    @ExcelProperty(value = "更新人")
+    private String modifier;
+
+    /**
+     * 更新时间
+     */
+    @ExcelProperty(value = "更新时间")
+    private Date utime;
+
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblBreakdown;
+import com.ruoyi.data.domain.vo.TblBreakdownVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 故障管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblBreakdownMapper extends BaseMapperPlus<TblBreakdownMapper, TblBreakdown, TblBreakdownVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblDatapoint;
+import com.ruoyi.data.domain.vo.TblDatapointVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 点位数据Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblDatapointMapper extends BaseMapperPlus<TblDatapointMapper, TblDatapoint, TblDatapointVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblEquipment;
+import com.ruoyi.data.domain.vo.TblEquipmentVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 设备Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblEquipmentMapper extends BaseMapperPlus<TblEquipmentMapper, TblEquipment, TblEquipmentVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblEquipmentOrganizational;
+import com.ruoyi.data.domain.vo.TblEquipmentOrganizationalVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 设备组织机构Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblEquipmentOrganizationalMapper extends BaseMapperPlus<TblEquipmentOrganizationalMapper, TblEquipmentOrganizational, TblEquipmentOrganizationalVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblEquipmentSbook;
+import com.ruoyi.data.domain.vo.TblEquipmentSbookVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 设备台账Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblEquipmentSbookMapper extends BaseMapperPlus<TblEquipmentSbookMapper, TblEquipmentSbook, TblEquipmentSbookVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblGateway;
+import com.ruoyi.data.domain.vo.TblGatewayVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 网关管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblGatewayMapper extends BaseMapperPlus<TblGatewayMapper, TblGateway, TblGatewayVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblModbusRtu;
+import com.ruoyi.data.domain.vo.TblModbusRtuVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * modbus_rtu配置Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblModbusRtuMapper extends BaseMapperPlus<TblModbusRtuMapper, TblModbusRtu, TblModbusRtuVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblModbusTcp;
+import com.ruoyi.data.domain.vo.TblModbusTcpVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * modbus_tcp协议配置Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblModbusTcpMapper extends BaseMapperPlus<TblModbusTcpMapper, TblModbusTcp, TblModbusTcpVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblMqtt;
+import com.ruoyi.data.domain.vo.TblMqttVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * mqtt配置Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblMqttMapper extends BaseMapperPlus<TblMqttMapper, TblMqtt, TblMqttVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblRuleExecute;
+import com.ruoyi.data.domain.vo.TblRuleExecuteVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 规则条件列Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblRuleExecuteMapper extends BaseMapperPlus<TblRuleExecuteMapper, TblRuleExecute, TblRuleExecuteVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblRuleFilter;
+import com.ruoyi.data.domain.vo.TblRuleFilterVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 规则执行列Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblRuleFilterMapper extends BaseMapperPlus<TblRuleFilterMapper, TblRuleFilter, TblRuleFilterVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblRule;
+import com.ruoyi.data.domain.vo.TblRuleVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 规则Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblRuleMapper extends BaseMapperPlus<TblRuleMapper, TblRule, TblRuleVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblSensorSbook;
+import com.ruoyi.data.domain.vo.TblSensorSbookVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 传感器台账Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblSensorSbookMapper extends BaseMapperPlus<TblSensorSbookMapper, TblSensorSbook, TblSensorSbookVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblVideoDetail;
+import com.ruoyi.data.domain.vo.TblVideoDetailVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 摄像机详情Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblVideoDetailMapper extends BaseMapperPlus<TblVideoDetailMapper, TblVideoDetail, TblVideoDetailVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblVideo;
+import com.ruoyi.data.domain.vo.TblVideoVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 视频Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblVideoMapper extends BaseMapperPlus<TblVideoMapper, TblVideo, TblVideoVo> {
+
+}

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

@@ -0,0 +1,15 @@
+package com.ruoyi.data.mapper;
+
+import com.ruoyi.data.domain.TblWarn;
+import com.ruoyi.data.domain.vo.TblWarnVo;
+import com.ruoyi.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 告警管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface TblWarnMapper extends BaseMapperPlus<TblWarnMapper, TblWarn, TblWarnVo> {
+
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblBreakdown;
+import com.ruoyi.data.domain.vo.TblBreakdownVo;
+import com.ruoyi.data.domain.bo.TblBreakdownBo;
+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-11-24
+ */
+public interface ITblBreakdownService {
+
+    /**
+     * 查询故障管理
+     */
+    TblBreakdownVo queryById(String id);
+
+    /**
+     * 查询故障管理列表
+     */
+    TableDataInfo<TblBreakdownVo> queryPageList(TblBreakdownBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询故障管理列表
+     */
+    List<TblBreakdownVo> queryList(TblBreakdownBo bo);
+
+    /**
+     * 新增故障管理
+     */
+    Boolean insertByBo(TblBreakdownBo bo);
+
+    /**
+     * 修改故障管理
+     */
+    Boolean updateByBo(TblBreakdownBo bo);
+
+    /**
+     * 校验并批量删除故障管理信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblDatapoint;
+import com.ruoyi.data.domain.vo.TblDatapointVo;
+import com.ruoyi.data.domain.bo.TblDatapointBo;
+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-11-24
+ */
+public interface ITblDatapointService {
+
+    /**
+     * 查询点位数据
+     */
+    TblDatapointVo queryById(String id);
+
+    /**
+     * 查询点位数据列表
+     */
+    TableDataInfo<TblDatapointVo> queryPageList(TblDatapointBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询点位数据列表
+     */
+    List<TblDatapointVo> queryList(TblDatapointBo bo);
+
+    /**
+     * 新增点位数据
+     */
+    Boolean insertByBo(TblDatapointBo bo);
+
+    /**
+     * 修改点位数据
+     */
+    Boolean updateByBo(TblDatapointBo bo);
+
+    /**
+     * 校验并批量删除点位数据信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblEquipmentOrganizational;
+import com.ruoyi.data.domain.vo.TblEquipmentOrganizationalVo;
+import com.ruoyi.data.domain.bo.TblEquipmentOrganizationalBo;
+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-11-24
+ */
+public interface ITblEquipmentOrganizationalService {
+
+    /**
+     * 查询设备组织机构
+     */
+    TblEquipmentOrganizationalVo queryById(String id);
+
+    /**
+     * 查询设备组织机构列表
+     */
+    TableDataInfo<TblEquipmentOrganizationalVo> queryPageList(TblEquipmentOrganizationalBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询设备组织机构列表
+     */
+    List<TblEquipmentOrganizationalVo> queryList(TblEquipmentOrganizationalBo bo);
+
+    /**
+     * 新增设备组织机构
+     */
+    Boolean insertByBo(TblEquipmentOrganizationalBo bo);
+
+    /**
+     * 修改设备组织机构
+     */
+    Boolean updateByBo(TblEquipmentOrganizationalBo bo);
+
+    /**
+     * 校验并批量删除设备组织机构信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblEquipmentSbook;
+import com.ruoyi.data.domain.vo.TblEquipmentSbookVo;
+import com.ruoyi.data.domain.bo.TblEquipmentSbookBo;
+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-11-24
+ */
+public interface ITblEquipmentSbookService {
+
+    /**
+     * 查询设备台账
+     */
+    TblEquipmentSbookVo queryById(String id);
+
+    /**
+     * 查询设备台账列表
+     */
+    TableDataInfo<TblEquipmentSbookVo> queryPageList(TblEquipmentSbookBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询设备台账列表
+     */
+    List<TblEquipmentSbookVo> queryList(TblEquipmentSbookBo bo);
+
+    /**
+     * 新增设备台账
+     */
+    Boolean insertByBo(TblEquipmentSbookBo bo);
+
+    /**
+     * 修改设备台账
+     */
+    Boolean updateByBo(TblEquipmentSbookBo bo);
+
+    /**
+     * 校验并批量删除设备台账信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblEquipment;
+import com.ruoyi.data.domain.vo.TblEquipmentVo;
+import com.ruoyi.data.domain.bo.TblEquipmentBo;
+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-11-24
+ */
+public interface ITblEquipmentService {
+
+    /**
+     * 查询设备
+     */
+    TblEquipmentVo queryById(String id);
+
+    /**
+     * 查询设备列表
+     */
+    TableDataInfo<TblEquipmentVo> queryPageList(TblEquipmentBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询设备列表
+     */
+    List<TblEquipmentVo> queryList(TblEquipmentBo bo);
+
+    /**
+     * 新增设备
+     */
+    Boolean insertByBo(TblEquipmentBo bo);
+
+    /**
+     * 修改设备
+     */
+    Boolean updateByBo(TblEquipmentBo bo);
+
+    /**
+     * 校验并批量删除设备信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblGateway;
+import com.ruoyi.data.domain.vo.TblGatewayVo;
+import com.ruoyi.data.domain.bo.TblGatewayBo;
+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-11-24
+ */
+public interface ITblGatewayService {
+
+    /**
+     * 查询网关管理
+     */
+    TblGatewayVo queryById(String id);
+
+    /**
+     * 查询网关管理列表
+     */
+    TableDataInfo<TblGatewayVo> queryPageList(TblGatewayBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询网关管理列表
+     */
+    List<TblGatewayVo> queryList(TblGatewayBo bo);
+
+    /**
+     * 新增网关管理
+     */
+    Boolean insertByBo(TblGatewayBo bo);
+
+    /**
+     * 修改网关管理
+     */
+    Boolean updateByBo(TblGatewayBo bo);
+
+    /**
+     * 校验并批量删除网关管理信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblModbusRtu;
+import com.ruoyi.data.domain.vo.TblModbusRtuVo;
+import com.ruoyi.data.domain.bo.TblModbusRtuBo;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * modbus_rtu配置Service接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface ITblModbusRtuService {
+
+    /**
+     * 查询modbus_rtu配置
+     */
+    TblModbusRtuVo queryById(String id);
+
+    /**
+     * 查询modbus_rtu配置列表
+     */
+    TableDataInfo<TblModbusRtuVo> queryPageList(TblModbusRtuBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询modbus_rtu配置列表
+     */
+    List<TblModbusRtuVo> queryList(TblModbusRtuBo bo);
+
+    /**
+     * 新增modbus_rtu配置
+     */
+    Boolean insertByBo(TblModbusRtuBo bo);
+
+    /**
+     * 修改modbus_rtu配置
+     */
+    Boolean updateByBo(TblModbusRtuBo bo);
+
+    /**
+     * 校验并批量删除modbus_rtu配置信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblModbusTcp;
+import com.ruoyi.data.domain.vo.TblModbusTcpVo;
+import com.ruoyi.data.domain.bo.TblModbusTcpBo;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * modbus_tcp协议配置Service接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface ITblModbusTcpService {
+
+    /**
+     * 查询modbus_tcp协议配置
+     */
+    TblModbusTcpVo queryById(String id);
+
+    /**
+     * 查询modbus_tcp协议配置列表
+     */
+    TableDataInfo<TblModbusTcpVo> queryPageList(TblModbusTcpBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询modbus_tcp协议配置列表
+     */
+    List<TblModbusTcpVo> queryList(TblModbusTcpBo bo);
+
+    /**
+     * 新增modbus_tcp协议配置
+     */
+    Boolean insertByBo(TblModbusTcpBo bo);
+
+    /**
+     * 修改modbus_tcp协议配置
+     */
+    Boolean updateByBo(TblModbusTcpBo bo);
+
+    /**
+     * 校验并批量删除modbus_tcp协议配置信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblMqtt;
+import com.ruoyi.data.domain.vo.TblMqttVo;
+import com.ruoyi.data.domain.bo.TblMqttBo;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * mqtt配置Service接口
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+public interface ITblMqttService {
+
+    /**
+     * 查询mqtt配置
+     */
+    TblMqttVo queryById(String id);
+
+    /**
+     * 查询mqtt配置列表
+     */
+    TableDataInfo<TblMqttVo> queryPageList(TblMqttBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询mqtt配置列表
+     */
+    List<TblMqttVo> queryList(TblMqttBo bo);
+
+    /**
+     * 新增mqtt配置
+     */
+    Boolean insertByBo(TblMqttBo bo);
+
+    /**
+     * 修改mqtt配置
+     */
+    Boolean updateByBo(TblMqttBo bo);
+
+    /**
+     * 校验并批量删除mqtt配置信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblRuleExecute;
+import com.ruoyi.data.domain.vo.TblRuleExecuteVo;
+import com.ruoyi.data.domain.bo.TblRuleExecuteBo;
+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-11-24
+ */
+public interface ITblRuleExecuteService {
+
+    /**
+     * 查询规则条件列
+     */
+    TblRuleExecuteVo queryById(String id);
+
+    /**
+     * 查询规则条件列列表
+     */
+    TableDataInfo<TblRuleExecuteVo> queryPageList(TblRuleExecuteBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询规则条件列列表
+     */
+    List<TblRuleExecuteVo> queryList(TblRuleExecuteBo bo);
+
+    /**
+     * 新增规则条件列
+     */
+    Boolean insertByBo(TblRuleExecuteBo bo);
+
+    /**
+     * 修改规则条件列
+     */
+    Boolean updateByBo(TblRuleExecuteBo bo);
+
+    /**
+     * 校验并批量删除规则条件列信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblRuleFilter;
+import com.ruoyi.data.domain.vo.TblRuleFilterVo;
+import com.ruoyi.data.domain.bo.TblRuleFilterBo;
+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-11-24
+ */
+public interface ITblRuleFilterService {
+
+    /**
+     * 查询规则执行列
+     */
+    TblRuleFilterVo queryById(String id);
+
+    /**
+     * 查询规则执行列列表
+     */
+    TableDataInfo<TblRuleFilterVo> queryPageList(TblRuleFilterBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询规则执行列列表
+     */
+    List<TblRuleFilterVo> queryList(TblRuleFilterBo bo);
+
+    /**
+     * 新增规则执行列
+     */
+    Boolean insertByBo(TblRuleFilterBo bo);
+
+    /**
+     * 修改规则执行列
+     */
+    Boolean updateByBo(TblRuleFilterBo bo);
+
+    /**
+     * 校验并批量删除规则执行列信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblRule;
+import com.ruoyi.data.domain.vo.TblRuleVo;
+import com.ruoyi.data.domain.bo.TblRuleBo;
+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-11-24
+ */
+public interface ITblRuleService {
+
+    /**
+     * 查询规则
+     */
+    TblRuleVo queryById(String id);
+
+    /**
+     * 查询规则列表
+     */
+    TableDataInfo<TblRuleVo> queryPageList(TblRuleBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询规则列表
+     */
+    List<TblRuleVo> queryList(TblRuleBo bo);
+
+    /**
+     * 新增规则
+     */
+    Boolean insertByBo(TblRuleBo bo);
+
+    /**
+     * 修改规则
+     */
+    Boolean updateByBo(TblRuleBo bo);
+
+    /**
+     * 校验并批量删除规则信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

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

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblVideoDetail;
+import com.ruoyi.data.domain.vo.TblVideoDetailVo;
+import com.ruoyi.data.domain.bo.TblVideoDetailBo;
+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-11-24
+ */
+public interface ITblVideoDetailService {
+
+    /**
+     * 查询摄像机详情
+     */
+    TblVideoDetailVo queryById(String id);
+
+    /**
+     * 查询摄像机详情列表
+     */
+    TableDataInfo<TblVideoDetailVo> queryPageList(TblVideoDetailBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询摄像机详情列表
+     */
+    List<TblVideoDetailVo> queryList(TblVideoDetailBo bo);
+
+    /**
+     * 新增摄像机详情
+     */
+    Boolean insertByBo(TblVideoDetailBo bo);
+
+    /**
+     * 修改摄像机详情
+     */
+    Boolean updateByBo(TblVideoDetailBo bo);
+
+    /**
+     * 校验并批量删除摄像机详情信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblVideo;
+import com.ruoyi.data.domain.vo.TblVideoVo;
+import com.ruoyi.data.domain.bo.TblVideoBo;
+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-11-24
+ */
+public interface ITblVideoService {
+
+    /**
+     * 查询视频
+     */
+    TblVideoVo queryById(String id);
+
+    /**
+     * 查询视频列表
+     */
+    TableDataInfo<TblVideoVo> queryPageList(TblVideoBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询视频列表
+     */
+    List<TblVideoVo> queryList(TblVideoBo bo);
+
+    /**
+     * 新增视频
+     */
+    Boolean insertByBo(TblVideoBo bo);
+
+    /**
+     * 修改视频
+     */
+    Boolean updateByBo(TblVideoBo bo);
+
+    /**
+     * 校验并批量删除视频信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

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

@@ -0,0 +1,49 @@
+package com.ruoyi.data.service;
+
+import com.ruoyi.data.domain.TblWarn;
+import com.ruoyi.data.domain.vo.TblWarnVo;
+import com.ruoyi.data.domain.bo.TblWarnBo;
+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-11-24
+ */
+public interface ITblWarnService {
+
+    /**
+     * 查询告警管理
+     */
+    TblWarnVo queryById(String id);
+
+    /**
+     * 查询告警管理列表
+     */
+    TableDataInfo<TblWarnVo> queryPageList(TblWarnBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询告警管理列表
+     */
+    List<TblWarnVo> queryList(TblWarnBo bo);
+
+    /**
+     * 新增告警管理
+     */
+    Boolean insertByBo(TblWarnBo bo);
+
+    /**
+     * 修改告警管理
+     */
+    Boolean updateByBo(TblWarnBo bo);
+
+    /**
+     * 校验并批量删除告警管理信息
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

+ 123 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblBreakdownServiceImpl.java

@@ -0,0 +1,123 @@
+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.TblBreakdownBo;
+import com.ruoyi.data.domain.vo.TblBreakdownVo;
+import com.ruoyi.data.domain.TblBreakdown;
+import com.ruoyi.data.mapper.TblBreakdownMapper;
+import com.ruoyi.data.service.ITblBreakdownService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 故障管理Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@RequiredArgsConstructor
+@Service
+public class TblBreakdownServiceImpl implements ITblBreakdownService {
+
+    private final TblBreakdownMapper baseMapper;
+
+    /**
+     * 查询故障管理
+     */
+    @Override
+    public TblBreakdownVo queryById(String id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询故障管理列表
+     */
+    @Override
+    public TableDataInfo<TblBreakdownVo> queryPageList(TblBreakdownBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TblBreakdown> lqw = buildQueryWrapper(bo);
+        Page<TblBreakdownVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询故障管理列表
+     */
+    @Override
+    public List<TblBreakdownVo> queryList(TblBreakdownBo bo) {
+        LambdaQueryWrapper<TblBreakdown> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblBreakdown> buildQueryWrapper(TblBreakdownBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblBreakdown> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getName()), TblBreakdown::getName, bo.getName());
+        lqw.eq(bo.getVal() != null, TblBreakdown::getVal, bo.getVal());
+        lqw.eq(StringUtils.isNotBlank(bo.getEquipmentId()), TblBreakdown::getEquipmentId, bo.getEquipmentId());
+        lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), TblBreakdown::getEquipmentName, bo.getEquipmentName());
+        lqw.eq(StringUtils.isNotBlank(bo.getContent()), TblBreakdown::getContent, bo.getContent());
+        lqw.eq(StringUtils.isNotBlank(bo.getHandler()), TblBreakdown::getHandler, bo.getHandler());
+        lqw.eq(StringUtils.isNotBlank(bo.getHandlerWay()), TblBreakdown::getHandlerWay, bo.getHandlerWay());
+        lqw.eq(StringUtils.isNotBlank(bo.getHandlerContent()), TblBreakdown::getHandlerContent, bo.getHandlerContent());
+        lqw.eq(bo.getHandlerTime() != null, TblBreakdown::getHandlerTime, bo.getHandlerTime());
+        lqw.eq(bo.getFaultTime() != null, TblBreakdown::getFaultTime, bo.getFaultTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblBreakdown::getStatus, bo.getStatus());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreator()), TblBreakdown::getCreator, bo.getCreator());
+        lqw.eq(bo.getCtime() != null, TblBreakdown::getCtime, bo.getCtime());
+        lqw.eq(StringUtils.isNotBlank(bo.getModifer()), TblBreakdown::getModifer, bo.getModifer());
+        lqw.eq(bo.getUtime() != null, TblBreakdown::getUtime, bo.getUtime());
+        return lqw;
+    }
+
+    /**
+     * 新增故障管理
+     */
+    @Override
+    public Boolean insertByBo(TblBreakdownBo bo) {
+        TblBreakdown add = BeanUtil.toBean(bo, TblBreakdown.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改故障管理
+     */
+    @Override
+    public Boolean updateByBo(TblBreakdownBo bo) {
+        TblBreakdown update = BeanUtil.toBean(bo, TblBreakdown.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(TblBreakdown entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除故障管理
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

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

@@ -0,0 +1,120 @@
+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.TblDatapointBo;
+import com.ruoyi.data.domain.vo.TblDatapointVo;
+import com.ruoyi.data.domain.TblDatapoint;
+import com.ruoyi.data.mapper.TblDatapointMapper;
+import com.ruoyi.data.service.ITblDatapointService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 点位数据Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@RequiredArgsConstructor
+@Service
+public class TblDatapointServiceImpl implements ITblDatapointService {
+
+    private final TblDatapointMapper baseMapper;
+
+    /**
+     * 查询点位数据
+     */
+    @Override
+    public TblDatapointVo queryById(String id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询点位数据列表
+     */
+    @Override
+    public TableDataInfo<TblDatapointVo> queryPageList(TblDatapointBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TblDatapoint> lqw = buildQueryWrapper(bo);
+        Page<TblDatapointVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询点位数据列表
+     */
+    @Override
+    public List<TblDatapointVo> queryList(TblDatapointBo bo) {
+        LambdaQueryWrapper<TblDatapoint> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblDatapoint> buildQueryWrapper(TblDatapointBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblDatapoint> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getName()), TblDatapoint::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getDeviceId()), TblDatapoint::getDeviceId, bo.getDeviceId());
+        lqw.eq(StringUtils.isNotBlank(bo.getDataType()), 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());
+        lqw.eq(bo.getLen() != null, TblDatapoint::getLen, bo.getLen());
+        lqw.eq(StringUtils.isNotBlank(bo.getValueType()), TblDatapoint::getValueType, bo.getValueType());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreator()), TblDatapoint::getCreator, bo.getCreator());
+        lqw.eq(bo.getCtime() != null, TblDatapoint::getCtime, bo.getCtime());
+        lqw.eq(StringUtils.isNotBlank(bo.getModifier()), TblDatapoint::getModifier, bo.getModifier());
+        lqw.eq(StringUtils.isNotBlank(bo.getUtime()), TblDatapoint::getUtime, bo.getUtime());
+        return lqw;
+    }
+
+    /**
+     * 新增点位数据
+     */
+    @Override
+    public Boolean insertByBo(TblDatapointBo bo) {
+        TblDatapoint add = BeanUtil.toBean(bo, TblDatapoint.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改点位数据
+     */
+    @Override
+    public Boolean updateByBo(TblDatapointBo bo) {
+        TblDatapoint update = BeanUtil.toBean(bo, TblDatapoint.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(TblDatapoint entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除点位数据
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

+ 116 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentOrganizationalServiceImpl.java

@@ -0,0 +1,116 @@
+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.TblEquipmentOrganizationalBo;
+import com.ruoyi.data.domain.vo.TblEquipmentOrganizationalVo;
+import com.ruoyi.data.domain.TblEquipmentOrganizational;
+import com.ruoyi.data.mapper.TblEquipmentOrganizationalMapper;
+import com.ruoyi.data.service.ITblEquipmentOrganizationalService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 设备组织机构Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@RequiredArgsConstructor
+@Service
+public class TblEquipmentOrganizationalServiceImpl implements ITblEquipmentOrganizationalService {
+
+    private final TblEquipmentOrganizationalMapper baseMapper;
+
+    /**
+     * 查询设备组织机构
+     */
+    @Override
+    public TblEquipmentOrganizationalVo queryById(String id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询设备组织机构列表
+     */
+    @Override
+    public TableDataInfo<TblEquipmentOrganizationalVo> queryPageList(TblEquipmentOrganizationalBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TblEquipmentOrganizational> lqw = buildQueryWrapper(bo);
+        Page<TblEquipmentOrganizationalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询设备组织机构列表
+     */
+    @Override
+    public List<TblEquipmentOrganizationalVo> queryList(TblEquipmentOrganizationalBo bo) {
+        LambdaQueryWrapper<TblEquipmentOrganizational> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblEquipmentOrganizational> buildQueryWrapper(TblEquipmentOrganizationalBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblEquipmentOrganizational> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getSn()), TblEquipmentOrganizational::getSn, bo.getSn());
+        lqw.eq(StringUtils.isNotBlank(bo.getParentId()), TblEquipmentOrganizational::getParentId, bo.getParentId());
+        lqw.like(StringUtils.isNotBlank(bo.getName()), TblEquipmentOrganizational::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getCompany()), TblEquipmentOrganizational::getCompany, bo.getCompany());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreator()), TblEquipmentOrganizational::getCreator, bo.getCreator());
+        lqw.eq(bo.getCtime() != null, TblEquipmentOrganizational::getCtime, bo.getCtime());
+        lqw.eq(StringUtils.isNotBlank(bo.getModifier()), TblEquipmentOrganizational::getModifier, bo.getModifier());
+        lqw.eq(bo.getUtime() != null, TblEquipmentOrganizational::getUtime, bo.getUtime());
+        return lqw;
+    }
+
+    /**
+     * 新增设备组织机构
+     */
+    @Override
+    public Boolean insertByBo(TblEquipmentOrganizationalBo bo) {
+        TblEquipmentOrganizational add = BeanUtil.toBean(bo, TblEquipmentOrganizational.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改设备组织机构
+     */
+    @Override
+    public Boolean updateByBo(TblEquipmentOrganizationalBo bo) {
+        TblEquipmentOrganizational update = BeanUtil.toBean(bo, TblEquipmentOrganizational.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(TblEquipmentOrganizational entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除设备组织机构
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

+ 137 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentSbookServiceImpl.java

@@ -0,0 +1,137 @@
+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.TblEquipmentSbookBo;
+import com.ruoyi.data.domain.vo.TblEquipmentSbookVo;
+import com.ruoyi.data.domain.TblEquipmentSbook;
+import com.ruoyi.data.mapper.TblEquipmentSbookMapper;
+import com.ruoyi.data.service.ITblEquipmentSbookService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 设备台账Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-11-24
+ */
+@RequiredArgsConstructor
+@Service
+public class TblEquipmentSbookServiceImpl implements ITblEquipmentSbookService {
+
+    private final TblEquipmentSbookMapper baseMapper;
+
+    /**
+     * 查询设备台账
+     */
+    @Override
+    public TblEquipmentSbookVo queryById(String id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询设备台账列表
+     */
+    @Override
+    public TableDataInfo<TblEquipmentSbookVo> queryPageList(TblEquipmentSbookBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TblEquipmentSbook> lqw = buildQueryWrapper(bo);
+        Page<TblEquipmentSbookVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询设备台账列表
+     */
+    @Override
+    public List<TblEquipmentSbookVo> queryList(TblEquipmentSbookBo bo) {
+        LambdaQueryWrapper<TblEquipmentSbook> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblEquipmentSbook> buildQueryWrapper(TblEquipmentSbookBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblEquipmentSbook> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getEquipmentTreeId()), TblEquipmentSbook::getEquipmentTreeId, bo.getEquipmentTreeId());
+        lqw.eq(StringUtils.isNotBlank(bo.getSn()), TblEquipmentSbook::getSn, bo.getSn());
+        lqw.eq(StringUtils.isNotBlank(bo.getSpareSn()), TblEquipmentSbook::getSpareSn, bo.getSpareSn());
+        lqw.like(StringUtils.isNotBlank(bo.getName()), TblEquipmentSbook::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getEquipmentInfoId()), TblEquipmentSbook::getEquipmentInfoId, bo.getEquipmentInfoId());
+        lqw.eq(StringUtils.isNotBlank(bo.getDeptId()), TblEquipmentSbook::getDeptId, bo.getDeptId());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), TblEquipmentSbook::getDeptName, bo.getDeptName());
+        lqw.eq(StringUtils.isNotBlank(bo.getEquipmentTypeId()), TblEquipmentSbook::getEquipmentTypeId, bo.getEquipmentTypeId());
+        lqw.eq(StringUtils.isNotBlank(bo.getPersonInCharge()), TblEquipmentSbook::getPersonInCharge, bo.getPersonInCharge());
+        lqw.eq(bo.getInstallationDate() != null, TblEquipmentSbook::getInstallationDate, bo.getInstallationDate());
+        lqw.eq(StringUtils.isNotBlank(bo.getAddress()), TblEquipmentSbook::getAddress, bo.getAddress());
+        lqw.eq(StringUtils.isNotBlank(bo.getDeviceId()), TblEquipmentSbook::getDeviceId, bo.getDeviceId());
+        lqw.eq(StringUtils.isNotBlank(bo.getTagids()), TblEquipmentSbook::getTagids, bo.getTagids());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblEquipmentSbook::getStatus, bo.getStatus());
+        lqw.eq(bo.getEndOfWarrantyPeriod() != null, TblEquipmentSbook::getEndOfWarrantyPeriod, bo.getEndOfWarrantyPeriod());
+        lqw.eq(bo.getManufacturingDate() != null, TblEquipmentSbook::getManufacturingDate, bo.getManufacturingDate());
+        lqw.eq(StringUtils.isNotBlank(bo.getAssetNo()), TblEquipmentSbook::getAssetNo, bo.getAssetNo());
+        lqw.eq(StringUtils.isNotBlank(bo.getSerialNumber()), TblEquipmentSbook::getSerialNumber, bo.getSerialNumber());
+        lqw.eq(StringUtils.isNotBlank(bo.getUseCertificateNo()), TblEquipmentSbook::getUseCertificateNo, bo.getUseCertificateNo());
+        lqw.eq(StringUtils.isNotBlank(bo.getSecurityLevel()), TblEquipmentSbook::getSecurityLevel, bo.getSecurityLevel());
+        lqw.eq(bo.getUsefulLife() != null, TblEquipmentSbook::getUsefulLife, bo.getUsefulLife());
+        lqw.eq(bo.getChangeDate() != null, TblEquipmentSbook::getChangeDate, bo.getChangeDate());
+        lqw.eq(StringUtils.isNotBlank(bo.getSupplier()), TblEquipmentSbook::getSupplier, bo.getSupplier());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreator()), TblEquipmentSbook::getCreator, bo.getCreator());
+        lqw.eq(bo.getCtime() != null, TblEquipmentSbook::getCtime, bo.getCtime());
+        lqw.eq(StringUtils.isNotBlank(bo.getModifier()), TblEquipmentSbook::getModifier, bo.getModifier());
+        lqw.eq(bo.getUtime() != null, TblEquipmentSbook::getUtime, bo.getUtime());
+        lqw.eq(StringUtils.isNotBlank(bo.getExpr1()), TblEquipmentSbook::getExpr1, bo.getExpr1());
+        lqw.eq(StringUtils.isNotBlank(bo.getExpr2()), TblEquipmentSbook::getExpr2, bo.getExpr2());
+        return lqw;
+    }
+
+    /**
+     * 新增设备台账
+     */
+    @Override
+    public Boolean insertByBo(TblEquipmentSbookBo bo) {
+        TblEquipmentSbook add = BeanUtil.toBean(bo, TblEquipmentSbook.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改设备台账
+     */
+    @Override
+    public Boolean updateByBo(TblEquipmentSbookBo bo) {
+        TblEquipmentSbook update = BeanUtil.toBean(bo, TblEquipmentSbook.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(TblEquipmentSbook entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除设备台账
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff