瀏覽代碼

项目提交

luogang 10 月之前
父節點
當前提交
e8fa88822f
共有 100 個文件被更改,包括 2248 次插入5017 次删除
  1. 1 1
      pom.xml
  2. 1 1
      ruoyi-admin/pom.xml
  3. 1 1
      ruoyi-modules/pom.xml
  4. 3 3
      ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml
  5. 12 12
      ruoyi-modules/ruoyi-generator/src/main/resources/vm/sql/sql.vm
  6. 0 58
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/config/CamelRouterConfig.java
  7. 0 105
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblBreakdownController.java
  8. 0 105
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblRulesController.java
  9. 0 105
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblRulesNodeController.java
  10. 0 239
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblSensorController.java
  11. 0 105
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblSensorRecordController.java
  12. 0 105
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblWarnController.java
  13. 0 93
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblBreakdown.java
  14. 0 61
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblRules.java
  15. 0 81
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblRulesNode.java
  16. 0 91
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblSensor.java
  17. 0 46
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblSensorRecord.java
  18. 0 93
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblWarn.java
  19. 0 93
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblBreakdownBo.java
  20. 0 59
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblRulesBo.java
  21. 0 79
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblRulesNodeBo.java
  22. 0 89
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblSensorBo.java
  23. 0 48
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblSensorRecordBo.java
  24. 0 91
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblWarnBo.java
  25. 0 112
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblBreakdownVo.java
  26. 0 98
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblRulesNodeVo.java
  27. 0 75
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblRulesVo.java
  28. 0 57
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblSensorRecordVo.java
  29. 0 114
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblSensorVo.java
  30. 0 112
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblWarnVo.java
  31. 0 15
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblBreakdownMapper.java
  32. 0 15
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblRulesMapper.java
  33. 0 15
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblRulesNodeMapper.java
  34. 0 15
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblSensorMapper.java
  35. 0 28
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblSensorRecordMapper.java
  36. 0 15
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblWarnMapper.java
  37. 0 68
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblBreakdownService.java
  38. 0 68
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblRulesNodeService.java
  39. 0 68
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblRulesService.java
  40. 0 72
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblSensorRecordService.java
  41. 0 68
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblSensorService.java
  42. 0 68
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblWarnService.java
  43. 0 44
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/GroovyMessageProcess.java
  44. 0 152
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/RuleProcess.java
  45. 0 150
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblBreakdownServiceImpl.java
  46. 0 150
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblRulesNodeServiceImpl.java
  47. 0 429
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblRulesServiceImpl.java
  48. 0 191
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblSensorRecordServiceImpl.java
  49. 0 153
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblSensorServiceImpl.java
  50. 0 151
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblWarnServiceImpl.java
  51. 0 22
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/mqtt/MqttConnectStatusListener.java
  52. 0 152
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/mqtt/MqttServerMessageListener.java
  53. 0 26
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/utils/GroovyDataUtils.java
  54. 0 43
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/utils/GroovyUtils.java
  55. 0 28
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/utils/MqttServerUtils.java
  56. 0 8
      ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/utils/ScriptCache.java
  57. 0 14
      ruoyi-modules/ruoyi-iot/src/main/resources/Test.groovy
  58. 0 7
      ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblBreakdownMapper.xml
  59. 0 7
      ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblSensorMapper.xml
  60. 0 116
      ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblSensorRecordMapper.xml
  61. 0 7
      ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblWarnMapper.xml
  62. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java
  63. 2 6
      ruoyi-modules/ruoyi-traffic/pom.xml
  64. 105 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/controller/SenAlgorithmConfigController.java
  65. 105 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/controller/SenClusterNodesController.java
  66. 105 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/controller/SenMonitorPointController.java
  67. 66 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/SenAlgorithmConfig.java
  68. 36 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/SenAlgorithmNodes.java
  69. 74 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/SenClusterNodes.java
  70. 68 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/SenMonitorPoint.java
  71. 72 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/bo/SenAlgorithmConfigBo.java
  72. 78 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/bo/SenClusterNodesBo.java
  73. 73 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/bo/SenMonitorPointBo.java
  74. 86 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/vo/SenAlgorithmConfigVo.java
  75. 91 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/vo/SenClusterNodesVo.java
  76. 82 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/vo/SenMonitorPointVo.java
  77. 21 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/mapper/SenAlgorithmConfigMapper.java
  78. 14 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/mapper/SenAlgorithmNodesMapper.java
  79. 15 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/mapper/SenClusterNodesMapper.java
  80. 15 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/mapper/SenMonitorPointMapper.java
  81. 68 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/ISenAlgorithmConfigService.java
  82. 68 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/ISenClusterNodesService.java
  83. 68 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/ISenMonitorPointService.java
  84. 148 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/impl/SenAlgorithmConfigServiceImpl.java
  85. 130 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/impl/SenClusterNodesServiceImpl.java
  86. 130 0
      ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/impl/SenMonitorPointServiceImpl.java
  87. 14 0
      ruoyi-modules/ruoyi-traffic/src/main/resources/mapper/SenAlgorithmConfigMapper.xml
  88. 1 1
      ruoyi-modules/ruoyi-traffic/src/main/resources/mapper/SenClusterNodesMapper.xml
  89. 1 1
      ruoyi-modules/ruoyi-traffic/src/main/resources/mapper/SenMonitorPointMapper.xml
  90. 0 62
      traffic-ui/src/api/demo/demo/index.ts
  91. 0 90
      traffic-ui/src/api/demo/demo/types.ts
  92. 0 62
      traffic-ui/src/api/demo/tree/index.ts
  93. 0 80
      traffic-ui/src/api/demo/tree/types.ts
  94. 63 0
      traffic-ui/src/api/manage/algorithmConfig/index.ts
  95. 119 0
      traffic-ui/src/api/manage/algorithmConfig/types.ts
  96. 63 0
      traffic-ui/src/api/manage/clusterNodes/index.ts
  97. 125 0
      traffic-ui/src/api/manage/clusterNodes/types.ts
  98. 63 0
      traffic-ui/src/api/manage/monitorPoint/index.ts
  99. 60 0
      traffic-ui/src/api/manage/monitorPoint/types.ts
  100. 0 17
      traffic-ui/src/api/sensor/index.ts

+ 1 - 1
pom.xml

@@ -372,7 +372,7 @@
 
             <dependency>
                 <groupId>org.dromara</groupId>
-                <artifactId>ruoyi-iot</artifactId>
+                <artifactId>ruoyi-traffic</artifactId>
                 <version>${revision}</version>
             </dependency>
 

+ 1 - 1
ruoyi-admin/pom.xml

@@ -89,7 +89,7 @@
 
         <dependency>
             <groupId>org.dromara</groupId>
-            <artifactId>ruoyi-iot</artifactId>
+            <artifactId>ruoyi-traffic</artifactId>
         </dependency>
 
 

+ 1 - 1
ruoyi-modules/pom.xml

@@ -13,7 +13,7 @@
         <module>ruoyi-generator</module>
 <!--        <module>ruoyi-job</module>-->
         <module>ruoyi-system</module>
-        <module>ruoyi-iot</module>
+        <module>ruoyi-traffic</module>
     </modules>
 
     <artifactId>ruoyi-modules</artifactId>

+ 3 - 3
ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml

@@ -1,10 +1,10 @@
 # 代码生成
 gen:
   # 作者
-  author: Lion Li
+  author:luogang
   # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
-  packageName: org.dromara.system
+  packageName: org.dromara
   # 自动去除表前缀,默认是false
   autoRemovePre: false
   # 表前缀(生成类名不会包含表前缀,多个用逗号分隔)
-  tablePrefix: sys_
+  tablePrefix: sen_

+ 12 - 12
ruoyi-modules/ruoyi-generator/src/main/resources/vm/sql/sql.vm

@@ -1,19 +1,19 @@
 -- 菜单 SQL
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 103, 1, sysdate(), null, null, '${functionName}菜单');
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 1, sysdate(), null, null, '${functionName}菜单');
 
 -- 按钮 SQL
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query',        '#', 103, 1, sysdate(), null, null, '');
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query',        '#', 1, sysdate(), null, null, '');
 
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add',          '#', 103, 1, sysdate(), null, null, '');
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add',          '#', 1, sysdate(), null, null, '');
 
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit',         '#', 103, 1, sysdate(), null, null, '');
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit',         '#', 1, sysdate(), null, null, '');
 
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove',       '#', 103, 1, sysdate(), null, null, '');
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove',       '#', 1, sysdate(), null, null, '');
 
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export',       '#', 103, 1, sysdate(), null, null, '');
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export',       '#', 1, sysdate(), null, null, '');

+ 0 - 58
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/config/CamelRouterConfig.java

@@ -1,58 +0,0 @@
-package org.dromara.config;
-
-import cn.hutool.core.io.file.FileReader;
-import jakarta.annotation.PostConstruct;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Route;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.dsl.xml.jaxb.CamelJaxbXmlRoutesBuilderLoader;
-import org.apache.camel.spi.Resource;
-import org.apache.camel.support.ResourceHelper;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-public class CamelRouterConfig  {
-    @Autowired
-    private CamelContext camelContext;
-
-    public boolean camelRouterRun(String xmlContent){
-        try {
-            CamelContext camelContext = this.camelContext;
-            Resource resource = ResourceHelper.fromString("a.xml", xmlContent);
-            CamelJaxbXmlRoutesBuilderLoader xmlRoutesBuilderLoader = new CamelJaxbXmlRoutesBuilderLoader();
-
-            RouteBuilder routeBuilder = xmlRoutesBuilderLoader.doLoadRouteBuilder(resource);
-            camelContext.addRoutes(routeBuilder);
-
-            camelContext.getRouteController().startAllRoutes();
-            return true;
-        } catch (Exception e) {
-            log.error("加载路由文件运行错误:{}\r\n ----------------------\r\n message:{}",xmlContent,e.getMessage());
-        }
-        return false;
-    }
-    public  boolean camelRouterRemove(String routeId){
-        try {
-            for (Route route : camelContext.getRoutes()) {
-                if(route.getId().equals(routeId)||route.getId().split("__")[0].equals(routeId)){
-                    camelContext.removeRoute(route.getId());
-                    camelContext.getRouteController().stopRoute(route.getId());
-                }
-            }
-            return true;
-        }catch (Exception e){
-            log.error("停止路由失败:{}",e.getMessage());
-        }
-        return false;
-    }
-
-
-
-
-}

+ 0 - 105
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblBreakdownController.java

@@ -1,105 +0,0 @@
-package org.dromara.controller;
-
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.domain.vo.TblBreakdownVo;
-import org.dromara.domain.bo.TblBreakdownBo;
-import org.dromara.service.ITblBreakdownService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-
-/**
- * 故障管理
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/system/breakdown")
-public class TblBreakdownController extends BaseController {
-
-    private final ITblBreakdownService tblBreakdownService;
-
-    /**
-     * 查询故障管理列表
-     */
-    @SaCheckPermission("system:breakdown:list")
-    @GetMapping("/list")
-    public TableDataInfo<TblBreakdownVo> list(TblBreakdownBo bo, PageQuery pageQuery) {
-        return tblBreakdownService.queryPageList(bo, pageQuery);
-    }
-
-    /**
-     * 导出故障管理列表
-     */
-    @SaCheckPermission("system:breakdown:export")
-    @Log(title = "故障管理", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(TblBreakdownBo bo, HttpServletResponse response) {
-        List<TblBreakdownVo> list = tblBreakdownService.queryList(bo);
-        ExcelUtil.exportExcel(list, "故障管理", TblBreakdownVo.class, response);
-    }
-
-    /**
-     * 获取故障管理详细信息
-     *
-     * @param id 主键
-     */
-    @SaCheckPermission("system:breakdown:query")
-    @GetMapping("/{id}")
-    public R<TblBreakdownVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
-        return R.ok(tblBreakdownService.queryById(id));
-    }
-
-    /**
-     * 新增故障管理
-     */
-    @SaCheckPermission("system:breakdown:add")
-    @Log(title = "故障管理", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblBreakdownBo bo) {
-        return toAjax(tblBreakdownService.insertByBo(bo));
-    }
-
-    /**
-     * 修改故障管理
-     */
-    @SaCheckPermission("system:breakdown:edit")
-    @Log(title = "故障管理", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblBreakdownBo bo) {
-        return toAjax(tblBreakdownService.updateByBo(bo));
-    }
-
-    /**
-     * 删除故障管理
-     *
-     * @param ids 主键串
-     */
-    @SaCheckPermission("system:breakdown:remove")
-    @Log(title = "故障管理", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public R<Void> remove(@NotEmpty(message = "主键不能为空")
-                          @PathVariable Long[] ids) {
-        return toAjax(tblBreakdownService.deleteWithValidByIds(List.of(ids), true));
-    }
-}

+ 0 - 105
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblRulesController.java

@@ -1,105 +0,0 @@
-package org.dromara.controller;
-
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.domain.vo.TblRulesVo;
-import org.dromara.domain.bo.TblRulesBo;
-import org.dromara.service.ITblRulesService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-
-/**
- * 规则
- *
- * @author Lion Li
- * @date 2024-08-14
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/system/rules")
-public class TblRulesController extends BaseController {
-
-    private final ITblRulesService tblRulesService;
-
-    /**
-     * 查询规则列表
-     */
-    @SaCheckPermission("system:rules:list")
-    @GetMapping("/list")
-    public TableDataInfo<TblRulesVo> list(TblRulesBo bo, PageQuery pageQuery) {
-        return tblRulesService.queryPageList(bo, pageQuery);
-    }
-
-    /**
-     * 导出规则列表
-     */
-    @SaCheckPermission("system:rules:export")
-    @Log(title = "规则", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(TblRulesBo bo, HttpServletResponse response) {
-        List<TblRulesVo> list = tblRulesService.queryList(bo);
-        ExcelUtil.exportExcel(list, "规则", TblRulesVo.class, response);
-    }
-
-    /**
-     * 获取规则详细信息
-     *
-     * @param id 主键
-     */
-    @SaCheckPermission("system:rules:query")
-    @GetMapping("/{id}")
-    public R<TblRulesVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
-        return R.ok(tblRulesService.queryById(id));
-    }
-
-    /**
-     * 新增规则
-     */
-    @SaCheckPermission("system:rules:add")
-    @Log(title = "规则", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblRulesBo bo) {
-        return toAjax(tblRulesService.insertByBo(bo));
-    }
-
-    /**
-     * 修改规则
-     */
-    @SaCheckPermission("system:rules:edit")
-    @Log(title = "规则", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblRulesBo bo) throws Exception {
-        return toAjax(tblRulesService.updateByBo(bo));
-    }
-
-    /**
-     * 删除规则
-     *
-     * @param ids 主键串
-     */
-    @SaCheckPermission("system:rules:remove")
-    @Log(title = "规则", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public R<Void> remove(@NotEmpty(message = "主键不能为空")
-                          @PathVariable Long[] ids) {
-        return toAjax(tblRulesService.deleteWithValidByIds(List.of(ids), true));
-    }
-}

+ 0 - 105
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblRulesNodeController.java

@@ -1,105 +0,0 @@
-package org.dromara.controller;
-
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.domain.vo.TblRulesNodeVo;
-import org.dromara.domain.bo.TblRulesNodeBo;
-import org.dromara.service.ITblRulesNodeService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-
-/**
- * 规则节点
- *
- * @author Lion Li
- * @date 2024-08-15
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/system/rulesNode")
-public class TblRulesNodeController extends BaseController {
-
-    private final ITblRulesNodeService tblRulesNodeService;
-
-    /**
-     * 查询规则节点列表
-     */
-    @SaCheckPermission("system:rulesNode:list")
-    @GetMapping("/list")
-    public TableDataInfo<TblRulesNodeVo> list(TblRulesNodeBo bo, PageQuery pageQuery) {
-        return tblRulesNodeService.queryPageList(bo, pageQuery);
-    }
-
-    /**
-     * 导出规则节点列表
-     */
-    @SaCheckPermission("system:rulesNode:export")
-    @Log(title = "规则节点", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(TblRulesNodeBo bo, HttpServletResponse response) {
-        List<TblRulesNodeVo> list = tblRulesNodeService.queryList(bo);
-        ExcelUtil.exportExcel(list, "规则节点", TblRulesNodeVo.class, response);
-    }
-
-    /**
-     * 获取规则节点详细信息
-     *
-     * @param id 主键
-     */
-    @SaCheckPermission("system:rulesNode:query")
-    @GetMapping("/{id}")
-    public R<TblRulesNodeVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
-        return R.ok(tblRulesNodeService.queryById(id));
-    }
-
-    /**
-     * 新增规则节点
-     */
-    @SaCheckPermission("system:rulesNode:add")
-    @Log(title = "规则节点", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblRulesNodeBo bo) {
-        return toAjax(tblRulesNodeService.insertByBo(bo));
-    }
-
-    /**
-     * 修改规则节点
-     */
-    @SaCheckPermission("system:rulesNode:edit")
-    @Log(title = "规则节点", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblRulesNodeBo bo) {
-        return toAjax(tblRulesNodeService.updateByBo(bo));
-    }
-
-    /**
-     * 删除规则节点
-     *
-     * @param ids 主键串
-     */
-    @SaCheckPermission("system:rulesNode:remove")
-    @Log(title = "规则节点", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public R<Void> remove(@NotEmpty(message = "主键不能为空")
-                          @PathVariable Long[] ids) {
-        return toAjax(tblRulesNodeService.deleteWithValidByIds(List.of(ids), true));
-    }
-}

+ 0 - 239
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblSensorController.java

@@ -1,239 +0,0 @@
-package org.dromara.controller;
-
-import java.util.*;
-
-import cn.hutool.core.lang.tree.Tree;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONUtil;
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import org.dromara.domain.bo.TblBreakdownBo;
-import org.dromara.domain.vo.TblBreakdownVo;
-import org.dromara.service.ITblBreakdownService;
-import org.dromara.system.domain.SysArea;
-import org.dromara.system.domain.bo.SysAreaBo;
-import org.dromara.system.domain.bo.SysDictDataBo;
-import org.dromara.system.domain.vo.SysAreaVo;
-import org.dromara.system.domain.vo.SysDictDataVo;
-import org.dromara.system.service.ISysAreaService;
-import org.dromara.system.service.ISysDictDataService;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.domain.vo.TblSensorVo;
-import org.dromara.domain.bo.TblSensorBo;
-import org.dromara.service.ITblSensorService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-
-/**
- * 传感器列
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/system/sensor")
-public class TblSensorController extends BaseController {
-
-    private final ITblSensorService tblSensorService;
-
-    private final ISysAreaService sysDeptService;
-
-    private final ISysDictDataService sysDictDataService;
-
-    private final ITblBreakdownService breakdownService;
-
-    /**
-     * 查询传感器列列表
-     */
-    @GetMapping("/list")
-    public TableDataInfo<TblSensorVo> list(TblSensorBo bo, PageQuery pageQuery) {
-        return tblSensorService.queryPageList(bo, pageQuery);
-    }
-
-    @GetMapping("/faultTop")
-    public R<List<TblSensorVo>> faultTop() {
-
-        List<TblBreakdownVo> breakdownVos = breakdownService.queryList(new TblBreakdownBo());
-        Map<Long,Integer> sendMap = new HashMap<>();
-        breakdownVos.forEach(item->{
-            if(sendMap.get(item.getSensorId())==null){
-                sendMap.put(item.getSensorId(),0);
-            }
-            sendMap.put(item.getSensorId(),sendMap.get(item.getSensorId())+1);
-        });
-        List<TblSensorVo> sensorVos =  tblSensorService.queryList(new TblSensorBo());
-        sensorVos.forEach(item->{
-            if(sendMap.get(item.getId())!=null){
-                item.setFaultCount(sendMap.get(item.getId())==null?0:sendMap.get(item.getId()));
-            }
-        });
-//        sensorVos.sort(Comparator.comparing(TblSensorVo::getFaultCount).reversed());
-
-        return R.ok(sensorVos);
-    }
-
-//    @GetMapping("/listTree")
-//    public R listTree(TblSensorBo bo) {
-//        List<TblSensorVo> list =  tblSensorService.queryList(bo);
-//        Map<String,Map<String,List<TblSensorVo>>> map = new HashMap<>();
-//        Map<Long,SysAreaVo> mapD = new HashMap<>();
-//        Map<String,String> mapdic = new HashMap<>();
-//
-//
-//        List<SysAreaVo> depts = sysDeptService.selectDeptList(new SysAreaBo());
-//        depts.forEach(item->{
-//            mapD.put(item.getAreaId(),item);
-//        });
-//        SysDictDataBo bod = new SysDictDataBo();
-//        bod.setDictType("sensor_type");
-//        List<SysDictDataVo> dictList = sysDictDataService.selectDictDataList(bod);
-//        dictList.forEach(item->{
-//            mapdic.put(item.getDictValue(),item.getDictLabel());
-//        });
-//
-//        List<String> deptids = new ArrayList<>();
-//
-//        //部门-摄像机-[a]
-//        list.forEach(item->{
-//            SysDeptVo d =  mapD.get(item.getCreateDept());
-//            for (String tt : d.getAncestors().split(",")) {
-//                if(!deptids.contains(tt)){
-//                    deptids.add(tt);
-//                }
-//            }
-//            if(!deptids.contains(d.getDeptId().toString())){
-//                deptids.add(d.getDeptId().toString());
-//            }
-//
-//            String deptname =  mapD.get(item.getCreateDept()).getDeptId().toString();
-//            if(map.get(deptname)==null) map.put(deptname,new HashMap<>());
-//            if(map.get(deptname).get(mapdic.get(item.getSensorType()))==null) map.get(deptname).put(mapdic.get(item.getSensorType()),new ArrayList<>());
-//            map.get(deptname).get(mapdic.get(item.getSensorType())).add(item);
-//        });
-//
-//        //过滤
-//        SysDeptBo depb = new SysDeptBo();
-//        depb.getParams().put("depts",deptids);
-//        List<Tree<Long>> depttree = sysDeptService.selectDeptTreeList(depb);
-//
-//        //宁夏-固原-摄像机-[a]
-//
-//        depttree.forEach(item->{
-//            buildDeviceTree(map,item);
-//
-//        });
-//
-//
-//
-//
-//
-//        return R.ok(depttree);
-//
-//    }
-
-    private void buildDeviceTree(Map<String,Map<String,List<TblSensorVo>>> mapd,Tree data){
-        data.put("value",data.get("label"));
-        if(mapd.get(data.get("id").toString())!=null){
-            if(data.getChildren()==null){
-                data.setChildren(new ArrayList<>());
-            }
-            List<Object> objects =new ArrayList<>();
-            mapd.get(data.get("id").toString()).forEach((k1,v1)->{
-                Map<String,Object> d1 = new HashMap<>();
-                d1.put("label",k1);
-                d1.put("value",k1);
-                List<Object> objects1 =new ArrayList<>();
-                v1.forEach(item1->{
-                    Map<String,Object> d2 = new HashMap<>();
-                    d2.put("label",item1.getName()+ StrUtil.format("[{}]", JSONUtil.parseObj(item1.getExt1()).getStr("ip")));
-                    d2.put("value",item1.getId());
-                    objects1.add(d2);
-                });
-                d1.put("children",objects1);
-                objects.add(d1);
-            });
-            data.getChildren().addAll(objects);
-        }
-        if(data.getChildren()!=null){
-            for (Object c : data.getChildren()) {
-                if(c instanceof  Tree){
-                    buildDeviceTree(mapd,(Tree) c);
-                }
-            }
-        }
-    }
-
-    /**
-     * 导出传感器列列表
-     */
-    @Log(title = "传感器列", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(TblSensorBo bo, HttpServletResponse response) {
-        List<TblSensorVo> list = tblSensorService.queryList(bo);
-        ExcelUtil.exportExcel(list, "传感器列", TblSensorVo.class, response);
-    }
-
-    /**
-     * 获取传感器列详细信息
-     *
-     * @param id 主键
-     */
-    @GetMapping("/{id}")
-    public R<TblSensorVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
-        return R.ok(tblSensorService.queryById(id));
-    }
-
-    /**
-     * 新增传感器列
-     */
-    @Log(title = "传感器列", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblSensorBo bo) {
-        return toAjax(tblSensorService.insertByBo(bo));
-    }
-
-    /**
-     * 修改传感器列
-     */
-    @Log(title = "传感器列", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblSensorBo bo) {
-        return toAjax(tblSensorService.updateByBo(bo));
-    }
-
-    /**
-     * 删除传感器列
-     *
-     * @param ids 主键串
-     */
-    @Log(title = "传感器列", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public R<Void> remove(@NotEmpty(message = "主键不能为空")
-                          @PathVariable Long[] ids) {
-        return toAjax(tblSensorService.deleteWithValidByIds(List.of(ids), true));
-    }
-
-    @PutMapping("/{id}/{name}")
-    public R<Object> sencmd(@NotNull(message = "主键不能为空")
-                                  @PathVariable Long id,@PathVariable String name) {
-        //TODO 发送指令
-        System.out.println(id);
-        System.out.println(name);
-        return R.ok();
-    }
-}

+ 0 - 105
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblSensorRecordController.java

@@ -1,105 +0,0 @@
-package org.dromara.controller;
-
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.domain.vo.TblSensorRecordVo;
-import org.dromara.domain.bo.TblSensorRecordBo;
-import org.dromara.service.ITblSensorRecordService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-
-/**
- * 传感器实时数据
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/system/sensorRecord")
-public class TblSensorRecordController extends BaseController {
-
-    private final ITblSensorRecordService tblSensorRecordService;
-
-    /**
-     * 查询传感器实时数据列表
-     */
-    @SaCheckPermission("system:sensorRecord:list")
-    @GetMapping("/list")
-    public TableDataInfo<TblSensorRecordVo> list(TblSensorRecordBo bo, PageQuery pageQuery) {
-        return tblSensorRecordService.queryPageList(bo, pageQuery);
-    }
-
-    /**
-     * 导出传感器实时数据列表
-     */
-    @SaCheckPermission("system:sensorRecord:export")
-    @Log(title = "传感器实时数据", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(TblSensorRecordBo bo, HttpServletResponse response) {
-        List<TblSensorRecordVo> list = tblSensorRecordService.queryList(bo);
-        ExcelUtil.exportExcel(list, "传感器实时数据", TblSensorRecordVo.class, response);
-    }
-
-    /**
-     * 获取传感器实时数据详细信息
-     *
-     * @param id 主键
-     */
-    @SaCheckPermission("system:sensorRecord:query")
-    @GetMapping("/{id}")
-    public R<TblSensorRecordVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
-        return R.ok(tblSensorRecordService.queryById(id));
-    }
-
-    /**
-     * 新增传感器实时数据
-     */
-    @SaCheckPermission("system:sensorRecord:add")
-    @Log(title = "传感器实时数据", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblSensorRecordBo bo) {
-        return toAjax(tblSensorRecordService.insertByBo(bo));
-    }
-
-    /**
-     * 修改传感器实时数据
-     */
-    @SaCheckPermission("system:sensorRecord:edit")
-    @Log(title = "传感器实时数据", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblSensorRecordBo bo) {
-        return toAjax(tblSensorRecordService.updateByBo(bo));
-    }
-
-    /**
-     * 删除传感器实时数据
-     *
-     * @param ids 主键串
-     */
-    @SaCheckPermission("system:sensorRecord:remove")
-    @Log(title = "传感器实时数据", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public R<Void> remove(@NotEmpty(message = "主键不能为空")
-                          @PathVariable Long[] ids) {
-        return toAjax(tblSensorRecordService.deleteWithValidByIds(List.of(ids), true));
-    }
-}

+ 0 - 105
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/controller/TblWarnController.java

@@ -1,105 +0,0 @@
-package org.dromara.controller;
-
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.domain.vo.TblWarnVo;
-import org.dromara.domain.bo.TblWarnBo;
-import org.dromara.service.ITblWarnService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-
-/**
- * 告警管理
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/system/warn")
-public class TblWarnController extends BaseController {
-
-    private final ITblWarnService tblWarnService;
-
-    /**
-     * 查询告警管理列表
-     */
-    @SaCheckPermission("system:warn:list")
-    @GetMapping("/list")
-    public TableDataInfo<TblWarnVo> list(TblWarnBo bo, PageQuery pageQuery) {
-        return tblWarnService.queryPageList(bo, pageQuery);
-    }
-
-    /**
-     * 导出告警管理列表
-     */
-    @SaCheckPermission("system:warn:export")
-    @Log(title = "告警管理", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(TblWarnBo bo, HttpServletResponse response) {
-        List<TblWarnVo> list = tblWarnService.queryList(bo);
-        ExcelUtil.exportExcel(list, "告警管理", TblWarnVo.class, response);
-    }
-
-    /**
-     * 获取告警管理详细信息
-     *
-     * @param id 主键
-     */
-    @SaCheckPermission("system:warn:query")
-    @GetMapping("/{id}")
-    public R<TblWarnVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
-        return R.ok(tblWarnService.queryById(id));
-    }
-
-    /**
-     * 新增告警管理
-     */
-    @SaCheckPermission("system:warn:add")
-    @Log(title = "告警管理", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody TblWarnBo bo) {
-        return toAjax(tblWarnService.insertByBo(bo));
-    }
-
-    /**
-     * 修改告警管理
-     */
-    @SaCheckPermission("system:warn:edit")
-    @Log(title = "告警管理", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblWarnBo bo) {
-        return toAjax(tblWarnService.updateByBo(bo));
-    }
-
-    /**
-     * 删除告警管理
-     *
-     * @param ids 主键串
-     */
-    @SaCheckPermission("system:warn:remove")
-    @Log(title = "告警管理", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public R<Void> remove(@NotEmpty(message = "主键不能为空")
-                          @PathVariable Long[] ids) {
-        return toAjax(tblWarnService.deleteWithValidByIds(List.of(ids), true));
-    }
-}

+ 0 - 93
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblBreakdown.java

@@ -1,93 +0,0 @@
-package org.dromara.domain;
-
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-
-import java.io.Serial;
-
-/**
- * 故障管理对象 tbl_breakdown
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("tbl_breakdown")
-public class TblBreakdown extends BaseEntity {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 
-     */
-    @TableId(value = "id")
-    private Long id;
-
-    /**
-     * 故障名称
-     */
-    private String name;
-
-    /**
-     * 故障值
-     */
-    private String val;
-
-    /**
-     * 设备id
-     */
-    private Long sensorId;
-
-    /**
-     * 故障设备
-     */
-    private String sensorName;
-
-    /**
-     * 故障内容
-     */
-    private String content;
-
-    /**
-     * 处理人
-     */
-    private String handler;
-
-    /**
-     * 处理方式
-     */
-    private String handlerWay;
-
-    /**
-     * 处理描述
-     */
-    private String handlerContent;
-
-    /**
-     * 处理时间
-     */
-    private Date handlerTime;
-
-    /**
-     * 故障时间
-     */
-    private Date faultTime;
-
-    /**
-     * 状态
-     */
-    private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-
-}

+ 0 - 61
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblRules.java

@@ -1,61 +0,0 @@
-package org.dromara.domain;
-
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serial;
-
-/**
- * 规则对象 tbl_rules
- *
- * @author Lion Li
- * @date 2024-08-14
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("tbl_rules")
-public class TblRules extends BaseEntity {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 编号
-     */
-    @TableId(value = "id")
-    private Long id;
-
-    /**
-     * 规则名称
-     */
-    private String name;
-
-    /**
-     * 规则路由
-     */
-    private String routes;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 扩展1
-     */
-    private String ext1;
-
-    /**
-     * 扩展2
-     */
-    private String ext2;
-
-    /**
-     * 状态  0未启用 1启用 
-     */
-    private String status;
-
-
-}

+ 0 - 81
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblRulesNode.java

@@ -1,81 +0,0 @@
-package org.dromara.domain;
-
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serial;
-
-/**
- * 规则节点对象 tbl_rules_node
- *
- * @author Lion Li
- * @date 2024-08-15
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("tbl_rules_node")
-public class TblRulesNode extends BaseEntity {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 编号
-     */
-    @TableId(value = "id")
-    private Long id;
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 节点data
-     */
-    private String nodedata;
-
-    /**
-     * 节点页面
-     */
-    private String nodeui;
-
-    /**
-     * 节点配置页面
-     */
-    private String nodeconfigui;
-
-    /**
-     * 类型 1 节点 2 连接线
-     */
-    private String type;
-
-    /**
-     * 分类
-     */
-    private String category;
-
-    /**
-     * 
-     */
-    private String ext1;
-
-    /**
-     * 
-     */
-    private String ext2;
-
-    /**
-     * 状态 1 可用 0不可用
-     */
-    private String status;
-
-
-}

+ 0 - 91
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblSensor.java

@@ -1,91 +0,0 @@
-package org.dromara.domain;
-
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serial;
-
-/**
- * 传感器列对象 tbl_sensor
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("tbl_sensor")
-public class TblSensor extends BaseEntity {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 
-     */
-    @TableId(value = "id")
-    private Long id;
-
-    /**
-     * 传感名称
-     */
-    private String name;
-
-    /**
-     * 传感编号
-     */
-    private String sn;
-
-    /**
-     * 传感器类型
-     */
-    private String sensorType;
-
-    /**
-     * 协议类型
-     */
-    private Long protocalType;
-
-    /**
-     * 描述
-     */
-    private String sensorDesc;
-
-    /**
-     * 状态
-     */
-    private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 测点数据
-     */
-    private String datapoints;
-
-    /**
-     * 动作事件
-     */
-    private String events;
-
-    /**
-     * 故障事件
-     */
-    private String faults;
-
-    /**
-     * 扩展1
-     */
-    private String ext1;
-
-    /**
-     * 扩展2
-     */
-    private String ext2;
-
-
-}

+ 0 - 46
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblSensorRecord.java

@@ -1,46 +0,0 @@
-package org.dromara.domain;
-
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serial;
-
-/**
- * 传感器实时数据对象 tbl_sensor_record
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("tbl_sensor_record")
-public class TblSensorRecord extends BaseEntity {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 
-     */
-    @TableId(value = "id")
-    private Long id;
-
-    /**
-     * 传感器id
-     */
-    private Long sensorId;
-
-    /**
-     * 测点名
-     */
-    private String pointName;
-
-    /**
-     * 测点数值
-     */
-    private String pointValue;
-
-
-}

+ 0 - 93
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/TblWarn.java

@@ -1,93 +0,0 @@
-package org.dromara.domain;
-
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-
-import java.io.Serial;
-
-/**
- * 告警管理对象 tbl_warn
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("tbl_warn")
-public class TblWarn extends BaseEntity {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 
-     */
-    @TableId(value = "id")
-    private Long id;
-
-    /**
-     * 告警名称
-     */
-    private String name;
-
-    /**
-     * 告警值
-     */
-    private String val;
-
-    /**
-     * 设备id
-     */
-    private Long sensorId;
-
-    /**
-     * 告警设备
-     */
-    private String sensorName;
-
-    /**
-     * 告警内容
-     */
-    private String content;
-
-    /**
-     * 处理人
-     */
-    private String handler;
-
-    /**
-     * 处理方式
-     */
-    private String handleWay;
-
-    /**
-     * 处理描述
-     */
-    private String handleContent;
-
-    /**
-     * 处理时间
-     */
-    private Date handleTime;
-
-    /**
-     * 告警时间
-     */
-    private Date alarmTime;
-
-    /**
-     * 状态 0待处理  1已处理
-     */
-    private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-
-}

+ 0 - 93
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblBreakdownBo.java

@@ -1,93 +0,0 @@
-package org.dromara.domain.bo;
-
-import org.dromara.domain.TblBreakdown;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-
-/**
- * 故障管理业务对象 tbl_breakdown
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = TblBreakdown.class, reverseConvertGenerate = false)
-public class TblBreakdownBo extends BaseEntity {
-
-    /**
-     * 
-     */
-    private Long id;
-
-    /**
-     * 故障名称
-     */
-    private String name;
-
-    /**
-     * 故障值
-     */
-    private String val;
-
-    /**
-     * 设备id
-     */
-    private Long sensorId;
-
-    /**
-     * 故障设备
-     */
-    private String sensorName;
-
-    /**
-     * 故障内容
-     */
-    private String content;
-
-    /**
-     * 处理人
-     */
-    private String handler;
-
-    /**
-     * 处理方式
-     */
-    private String handlerWay;
-
-    /**
-     * 处理描述
-     */
-
-    private String handlerContent;
-
-    /**
-     * 处理时间
-     */
-
-    private Date handlerTime;
-
-    /**
-     * 故障时间
-     */
-    private Date faultTime;
-
-    /**
-     * 状态
-     */
-    private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-
-}

+ 0 - 59
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblRulesBo.java

@@ -1,59 +0,0 @@
-package org.dromara.domain.bo;
-
-import org.dromara.domain.TblRules;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
-
-/**
- * 规则业务对象 tbl_rules
- *
- * @author Lion Li
- * @date 2024-08-14
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = TblRules.class, reverseConvertGenerate = false)
-public class TblRulesBo extends BaseEntity {
-
-    /**
-     * 编号
-     */
-    private Long id;
-
-    /**
-     * 规则名称
-     */
-    private String name;
-
-    /**
-     * 规则路由
-     */
-    private String routes;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 扩展1
-     */
-    private String ext1;
-
-    /**
-     * 扩展2
-     */
-    private String ext2;
-
-    /**
-     * 状态  0未启用 1启用 
-     */
-    private String status;
-
-
-}

+ 0 - 79
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblRulesNodeBo.java

@@ -1,79 +0,0 @@
-package org.dromara.domain.bo;
-
-import org.dromara.domain.TblRulesNode;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
-
-/**
- * 规则节点业务对象 tbl_rules_node
- *
- * @author Lion Li
- * @date 2024-08-15
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = TblRulesNode.class, reverseConvertGenerate = false)
-public class TblRulesNodeBo extends BaseEntity {
-
-    /**
-     * 编号
-     */
-    private Long id;
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 节点data
-     */
-    private String nodedata;
-
-    /**
-     * 节点页面
-     */
-    private String nodeui;
-
-    /**
-     * 节点配置页面
-     */
-    private String nodeconfigui;
-
-    /**
-     * 类型 1 节点 2 连接线
-     */
-    private String type;
-
-    /**
-     * 分类
-     */
-    private String category;
-
-    /**
-     * 
-     */
-    private String ext1;
-
-    /**
-     * 
-     */
-    private String ext2;
-
-    /**
-     * 状态 1 可用 0不可用
-     */
-    private String status;
-
-
-}

+ 0 - 89
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblSensorBo.java

@@ -1,89 +0,0 @@
-package org.dromara.domain.bo;
-
-import org.dromara.domain.TblSensor;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
-
-/**
- * 传感器列业务对象 tbl_sensor
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = TblSensor.class, reverseConvertGenerate = false)
-public class TblSensorBo extends BaseEntity {
-
-    /**
-     * 
-     */
-    private Long id;
-
-    /**
-     * 传感名称
-     */
-    private String name;
-
-    /**
-     * 传感编号
-     */
-    private String sn;
-
-    /**
-     * 传感器类型
-     */
-    private String sensorType;
-
-    /**
-     * 协议类型
-     */
-    private Long protocalType;
-
-    /**
-     * 描述
-     */
-    private String sensorDesc;
-
-    /**
-     * 状态
-     */
-    private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 测点数据
-     */
-    private String datapoints;
-
-    /**
-     * 动作事件
-     */
-    private String events;
-
-    /**
-     * 故障事件
-     */
-    private String faults;
-
-    /**
-     * 扩展1
-     */
-    private String ext1;
-
-    /**
-     * 扩展2
-     */
-    private String ext2;
-
-
-}

+ 0 - 48
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblSensorRecordBo.java

@@ -1,48 +0,0 @@
-package org.dromara.domain.bo;
-
-import org.dromara.domain.TblSensorRecord;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
-
-/**
- * 传感器实时数据业务对象 tbl_sensor_record
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = TblSensorRecord.class, reverseConvertGenerate = false)
-public class TblSensorRecordBo extends BaseEntity {
-
-    /**
-     * 
-     */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
-    private Long id;
-
-    /**
-     * 传感器id
-     */
-    @NotNull(message = "传感器id不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long sensorId;
-
-    /**
-     * 测点名
-     */
-    @NotBlank(message = "测点名不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String pointName;
-
-    /**
-     * 测点数值
-     */
-    @NotBlank(message = "测点数值不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String pointValue;
-
-
-}

+ 0 - 91
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/bo/TblWarnBo.java

@@ -1,91 +0,0 @@
-package org.dromara.domain.bo;
-
-import org.dromara.domain.TblWarn;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-
-/**
- * 告警管理业务对象 tbl_warn
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = TblWarn.class, reverseConvertGenerate = false)
-public class TblWarnBo extends BaseEntity {
-
-    /**
-     * 
-     */
-    private Long id;
-
-    /**
-     * 告警名称
-     */
-    private String name;
-
-    /**
-     * 告警值
-     */
-    private String val;
-
-    /**
-     * 设备id
-     */
-    private Long sensorId;
-
-    /**
-     * 告警设备
-     */
-    private String sensorName;
-
-    /**
-     * 告警内容
-     */
-    private String content;
-
-    /**
-     * 处理人
-     */
-    private String handler;
-
-    /**
-     * 处理方式
-     */
-    private String handleWay;
-
-    /**
-     * 处理描述
-     */
-    private String handleContent;
-
-    /**
-     * 处理时间
-     */
-    private Date handleTime;
-
-    /**
-     * 告警时间
-     */
-    private Date alarmTime;
-
-    /**
-     * 状态 0待处理  1已处理
-     */
-    private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-
-}

+ 0 - 112
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblBreakdownVo.java

@@ -1,112 +0,0 @@
-package org.dromara.domain.vo;
-
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.domain.TblBreakdown;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-
-/**
- * 故障管理视图对象 tbl_breakdown
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@ExcelIgnoreUnannotated
-@AutoMapper(target = TblBreakdown.class)
-public class TblBreakdownVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 
-     */
-    @ExcelProperty(value = "")
-    private Long id;
-
-    /**
-     * 故障名称
-     */
-    @ExcelProperty(value = "故障名称")
-    private String name;
-
-    /**
-     * 故障值
-     */
-    @ExcelProperty(value = "故障值")
-    private String val;
-
-    /**
-     * 设备id
-     */
-    @ExcelProperty(value = "设备id")
-    private Long sensorId;
-
-    /**
-     * 故障设备
-     */
-    @ExcelProperty(value = "故障设备")
-    private String sensorName;
-
-    /**
-     * 故障内容
-     */
-    @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;
-
-
-}

+ 0 - 98
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblRulesNodeVo.java

@@ -1,98 +0,0 @@
-package org.dromara.domain.vo;
-
-import org.dromara.domain.TblRulesNode;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-
-/**
- * 规则节点视图对象 tbl_rules_node
- *
- * @author Lion Li
- * @date 2024-08-15
- */
-@Data
-@ExcelIgnoreUnannotated
-@AutoMapper(target = TblRulesNode.class)
-public class TblRulesNodeVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 编号
-     */
-    @ExcelProperty(value = "编号")
-    private Long id;
-
-    /**
-     * 名称
-     */
-    @ExcelProperty(value = "名称")
-    private String name;
-
-    /**
-     * 备注
-     */
-    @ExcelProperty(value = "备注")
-    private String remark;
-
-    /**
-     * 节点data
-     */
-    @ExcelProperty(value = "节点data")
-    private String nodedata;
-
-    /**
-     * 节点页面
-     */
-    @ExcelProperty(value = "节点页面")
-    private String nodeui;
-
-    /**
-     * 节点配置页面
-     */
-    @ExcelProperty(value = "节点配置页面")
-    private String nodeconfigui;
-
-    /**
-     * 类型 1 节点 2 连接线
-     */
-    @ExcelProperty(value = "类型 1 节点 2 连接线")
-    private String type;
-
-    /**
-     * 分类
-     */
-    @ExcelProperty(value = "分类")
-    private String category;
-
-    /**
-     * 
-     */
-    @ExcelProperty(value = "")
-    private String ext1;
-
-    /**
-     * 
-     */
-    @ExcelProperty(value = "")
-    private String ext2;
-
-    /**
-     * 状态 1 可用 0不可用
-     */
-    @ExcelProperty(value = "状态 1 可用 0不可用")
-    private String status;
-
-
-}

+ 0 - 75
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblRulesVo.java

@@ -1,75 +0,0 @@
-package org.dromara.domain.vo;
-
-import org.dromara.domain.TblRules;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-
-/**
- * 规则视图对象 tbl_rules
- *
- * @author Lion Li
- * @date 2024-08-14
- */
-@Data
-@ExcelIgnoreUnannotated
-@AutoMapper(target = TblRules.class)
-public class TblRulesVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 编号
-     */
-    @ExcelProperty(value = "编号")
-    private Long id;
-
-    /**
-     * 规则名称
-     */
-    @ExcelProperty(value = "规则名称")
-    private String name;
-
-    /**
-     * 规则路由
-     */
-    @ExcelProperty(value = "规则路由")
-    private String routes;
-
-    /**
-     * 备注
-     */
-    @ExcelProperty(value = "备注")
-    private String remark;
-
-    /**
-     * 扩展1
-     */
-    @ExcelProperty(value = "扩展1")
-    private String ext1;
-
-    /**
-     * 扩展2
-     */
-    @ExcelProperty(value = "扩展2")
-    private String ext2;
-
-    /**
-     * 状态  0未启用 1启用 
-     */
-    @ExcelProperty(value = "状态  0未启用 1启用 ")
-    private String status;
-
-
-    private Date createTime;
-}

+ 0 - 57
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblSensorRecordVo.java

@@ -1,57 +0,0 @@
-package org.dromara.domain.vo;
-
-import org.dromara.domain.TblSensorRecord;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-
-/**
- * 传感器实时数据视图对象 tbl_sensor_record
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@ExcelIgnoreUnannotated
-@AutoMapper(target = TblSensorRecord.class)
-public class TblSensorRecordVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 
-     */
-    @ExcelProperty(value = "")
-    private Long id;
-
-    /**
-     * 传感器id
-     */
-    @ExcelProperty(value = "传感器id")
-    private Long sensorId;
-
-    /**
-     * 测点名
-     */
-    @ExcelProperty(value = "测点名")
-    private String pointName;
-
-    /**
-     * 测点数值
-     */
-    @ExcelProperty(value = "测点数值")
-    private String pointValue;
-
-
-    private Date createTime;
-}

+ 0 - 114
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblSensorVo.java

@@ -1,114 +0,0 @@
-package org.dromara.domain.vo;
-
-import org.dromara.domain.TblSensor;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-
-/**
- * 传感器列视图对象 tbl_sensor
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@ExcelIgnoreUnannotated
-@AutoMapper(target = TblSensor.class)
-public class TblSensorVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 
-     */
-    @ExcelProperty(value = "")
-    private Long id;
-
-    /**
-     * 传感名称
-     */
-    @ExcelProperty(value = "传感名称")
-    private String name;
-
-    /**
-     * 传感编号
-     */
-    @ExcelProperty(value = "传感编号")
-    private String sn;
-
-    /**
-     * 传感器类型
-     */
-    @ExcelProperty(value = "传感器类型")
-    private String sensorType;
-
-    /**
-     * 协议类型
-     */
-    @ExcelProperty(value = "协议类型")
-    private Long protocalType;
-
-    /**
-     * 描述
-     */
-    @ExcelProperty(value = "描述")
-    private String sensorDesc;
-
-    /**
-     * 状态
-     */
-    @ExcelProperty(value = "状态")
-    private String status;
-
-    /**
-     * 备注
-     */
-    @ExcelProperty(value = "备注")
-    private String remark;
-
-    /**
-     * 测点数据
-     */
-    @ExcelProperty(value = "测点数据")
-    private String datapoints;
-
-    /**
-     * 动作事件
-     */
-    @ExcelProperty(value = "动作事件")
-    private String events;
-
-    /**
-     * 故障事件
-     */
-    @ExcelProperty(value = "故障事件")
-    private String faults;
-
-    @ExcelProperty(value = "扩展1")
-    private String ext1;
-
-    /**
-     * 扩展2
-     */
-    @ExcelProperty(value = "扩展2")
-    private String ext2;
-
-    @ExcelProperty(value = "创建时间")
-    private Date createTime;
-
-    @ExcelProperty(value = "创建部门")
-    private Long createDept;
-
-    private Integer faultCount;
-
-}

+ 0 - 112
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/domain/vo/TblWarnVo.java

@@ -1,112 +0,0 @@
-package org.dromara.domain.vo;
-
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.domain.TblWarn;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-
-/**
- * 告警管理视图对象 tbl_warn
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@Data
-@ExcelIgnoreUnannotated
-@AutoMapper(target = TblWarn.class)
-public class TblWarnVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 
-     */
-    @ExcelProperty(value = "")
-    private Long id;
-
-    /**
-     * 告警名称
-     */
-    @ExcelProperty(value = "告警名称")
-    private String name;
-
-    /**
-     * 告警值
-     */
-    @ExcelProperty(value = "告警值")
-    private String val;
-
-    /**
-     * 设备id
-     */
-    @ExcelProperty(value = "设备id")
-    private Long sensorId;
-
-    /**
-     * 告警设备
-     */
-    @ExcelProperty(value = "告警设备")
-    private String sensorName;
-
-    /**
-     * 告警内容
-     */
-    @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;
-
-    /**
-     * 状态 0待处理  1已处理
-     */
-    @ExcelProperty(value = "状态 0待处理  1已处理")
-    private String status;
-
-    /**
-     * 备注
-     */
-    @ExcelProperty(value = "备注")
-    private String remark;
-
-
-}

+ 0 - 15
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblBreakdownMapper.java

@@ -1,15 +0,0 @@
-package org.dromara.mapper;
-
-import org.dromara.domain.TblBreakdown;
-import org.dromara.domain.vo.TblBreakdownVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-/**
- * 故障管理Mapper接口
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-public interface TblBreakdownMapper extends BaseMapperPlus<TblBreakdown, TblBreakdownVo> {
-
-}

+ 0 - 15
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblRulesMapper.java

@@ -1,15 +0,0 @@
-package org.dromara.mapper;
-
-import org.dromara.domain.TblRules;
-import org.dromara.domain.vo.TblRulesVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-/**
- * 规则Mapper接口
- *
- * @author Lion Li
- * @date 2024-08-14
- */
-public interface TblRulesMapper extends BaseMapperPlus<TblRules, TblRulesVo> {
-
-}

+ 0 - 15
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblRulesNodeMapper.java

@@ -1,15 +0,0 @@
-package org.dromara.mapper;
-
-import org.dromara.domain.TblRulesNode;
-import org.dromara.domain.vo.TblRulesNodeVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-/**
- * 规则节点Mapper接口
- *
- * @author Lion Li
- * @date 2024-08-15
- */
-public interface TblRulesNodeMapper extends BaseMapperPlus<TblRulesNode, TblRulesNodeVo> {
-
-}

+ 0 - 15
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblSensorMapper.java

@@ -1,15 +0,0 @@
-package org.dromara.mapper;
-
-import org.dromara.domain.TblSensor;
-import org.dromara.domain.vo.TblSensorVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-/**
- * 传感器列Mapper接口
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-public interface TblSensorMapper extends BaseMapperPlus<TblSensor, TblSensorVo> {
-
-}

+ 0 - 28
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblSensorRecordMapper.java

@@ -1,28 +0,0 @@
-package org.dromara.mapper;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.apache.ibatis.annotations.Param;
-import org.dromara.domain.TblSensorRecord;
-import org.dromara.domain.vo.TblSensorRecordVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * 传感器实时数据Mapper接口
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-public interface TblSensorRecordMapper extends BaseMapperPlus<TblSensorRecord, TblSensorRecordVo> {
-
-    public void createTable(Map<String,Object> map);
-
-    public Integer insertData(TblSensorRecord record);
-
-    public IPage<TblSensorRecordVo> selectDataPage(Page<?> page, @Param("t") TblSensorRecord record);
-
-    public List<TblSensorRecordVo> selectData(TblSensorRecord record);
-}

+ 0 - 15
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/mapper/TblWarnMapper.java

@@ -1,15 +0,0 @@
-package org.dromara.mapper;
-
-import org.dromara.domain.TblWarn;
-import org.dromara.domain.vo.TblWarnVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-/**
- * 告警管理Mapper接口
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-public interface TblWarnMapper extends BaseMapperPlus<TblWarn, TblWarnVo> {
-
-}

+ 0 - 68
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblBreakdownService.java

@@ -1,68 +0,0 @@
-package org.dromara.service;
-
-import org.dromara.domain.vo.TblBreakdownVo;
-import org.dromara.domain.bo.TblBreakdownBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 故障管理Service接口
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-public interface ITblBreakdownService {
-
-    /**
-     * 查询故障管理
-     *
-     * @param id 主键
-     * @return 故障管理
-     */
-    TblBreakdownVo queryById(Long id);
-
-    /**
-     * 分页查询故障管理列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 故障管理分页列表
-     */
-    TableDataInfo<TblBreakdownVo> queryPageList(TblBreakdownBo bo, PageQuery pageQuery);
-
-    /**
-     * 查询符合条件的故障管理列表
-     *
-     * @param bo 查询条件
-     * @return 故障管理列表
-     */
-    List<TblBreakdownVo> queryList(TblBreakdownBo bo);
-
-    /**
-     * 新增故障管理
-     *
-     * @param bo 故障管理
-     * @return 是否新增成功
-     */
-    Boolean insertByBo(TblBreakdownBo bo);
-
-    /**
-     * 修改故障管理
-     *
-     * @param bo 故障管理
-     * @return 是否修改成功
-     */
-    Boolean updateByBo(TblBreakdownBo bo);
-
-    /**
-     * 校验并批量删除故障管理信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 0 - 68
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblRulesNodeService.java

@@ -1,68 +0,0 @@
-package org.dromara.service;
-
-import org.dromara.domain.vo.TblRulesNodeVo;
-import org.dromara.domain.bo.TblRulesNodeBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 规则节点Service接口
- *
- * @author Lion Li
- * @date 2024-08-15
- */
-public interface ITblRulesNodeService {
-
-    /**
-     * 查询规则节点
-     *
-     * @param id 主键
-     * @return 规则节点
-     */
-    TblRulesNodeVo queryById(Long id);
-
-    /**
-     * 分页查询规则节点列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 规则节点分页列表
-     */
-    TableDataInfo<TblRulesNodeVo> queryPageList(TblRulesNodeBo bo, PageQuery pageQuery);
-
-    /**
-     * 查询符合条件的规则节点列表
-     *
-     * @param bo 查询条件
-     * @return 规则节点列表
-     */
-    List<TblRulesNodeVo> queryList(TblRulesNodeBo bo);
-
-    /**
-     * 新增规则节点
-     *
-     * @param bo 规则节点
-     * @return 是否新增成功
-     */
-    Boolean insertByBo(TblRulesNodeBo bo);
-
-    /**
-     * 修改规则节点
-     *
-     * @param bo 规则节点
-     * @return 是否修改成功
-     */
-    Boolean updateByBo(TblRulesNodeBo bo);
-
-    /**
-     * 校验并批量删除规则节点信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 0 - 68
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblRulesService.java

@@ -1,68 +0,0 @@
-package org.dromara.service;
-
-import org.dromara.domain.vo.TblRulesVo;
-import org.dromara.domain.bo.TblRulesBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 规则Service接口
- *
- * @author Lion Li
- * @date 2024-08-14
- */
-public interface ITblRulesService {
-
-    /**
-     * 查询规则
-     *
-     * @param id 主键
-     * @return 规则
-     */
-    TblRulesVo queryById(Long id);
-
-    /**
-     * 分页查询规则列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 规则分页列表
-     */
-    TableDataInfo<TblRulesVo> queryPageList(TblRulesBo bo, PageQuery pageQuery);
-
-    /**
-     * 查询符合条件的规则列表
-     *
-     * @param bo 查询条件
-     * @return 规则列表
-     */
-    List<TblRulesVo> queryList(TblRulesBo bo);
-
-    /**
-     * 新增规则
-     *
-     * @param bo 规则
-     * @return 是否新增成功
-     */
-    Boolean insertByBo(TblRulesBo bo);
-
-    /**
-     * 修改规则
-     *
-     * @param bo 规则
-     * @return 是否修改成功
-     */
-    Boolean updateByBo(TblRulesBo bo) throws Exception;
-
-    /**
-     * 校验并批量删除规则信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 0 - 72
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblSensorRecordService.java

@@ -1,72 +0,0 @@
-package org.dromara.service;
-
-import org.dromara.domain.vo.TblSensorRecordVo;
-import org.dromara.domain.bo.TblSensorRecordBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 传感器实时数据Service接口
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-public interface ITblSensorRecordService {
-
-
-    void createTable(Map<String, Object> map);
-
-    /**
-     * 查询传感器实时数据
-     *
-     * @param id 主键
-     * @return 传感器实时数据
-     */
-    TblSensorRecordVo queryById(Long id);
-
-    /**
-     * 分页查询传感器实时数据列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 传感器实时数据分页列表
-     */
-    TableDataInfo<TblSensorRecordVo> queryPageList(TblSensorRecordBo bo, PageQuery pageQuery);
-
-    /**
-     * 查询符合条件的传感器实时数据列表
-     *
-     * @param bo 查询条件
-     * @return 传感器实时数据列表
-     */
-    List<TblSensorRecordVo> queryList(TblSensorRecordBo bo);
-
-    /**
-     * 新增传感器实时数据
-     *
-     * @param bo 传感器实时数据
-     * @return 是否新增成功
-     */
-    Boolean insertByBo(TblSensorRecordBo bo);
-
-    /**
-     * 修改传感器实时数据
-     *
-     * @param bo 传感器实时数据
-     * @return 是否修改成功
-     */
-    Boolean updateByBo(TblSensorRecordBo bo);
-
-    /**
-     * 校验并批量删除传感器实时数据信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 0 - 68
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblSensorService.java

@@ -1,68 +0,0 @@
-package org.dromara.service;
-
-import org.dromara.domain.vo.TblSensorVo;
-import org.dromara.domain.bo.TblSensorBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 传感器列Service接口
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-public interface ITblSensorService {
-
-    /**
-     * 查询传感器列
-     *
-     * @param id 主键
-     * @return 传感器列
-     */
-    TblSensorVo queryById(Long id);
-
-    /**
-     * 分页查询传感器列列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 传感器列分页列表
-     */
-    TableDataInfo<TblSensorVo> queryPageList(TblSensorBo bo, PageQuery pageQuery);
-
-    /**
-     * 查询符合条件的传感器列列表
-     *
-     * @param bo 查询条件
-     * @return 传感器列列表
-     */
-    List<TblSensorVo> queryList(TblSensorBo bo);
-
-    /**
-     * 新增传感器列
-     *
-     * @param bo 传感器列
-     * @return 是否新增成功
-     */
-    Boolean insertByBo(TblSensorBo bo);
-
-    /**
-     * 修改传感器列
-     *
-     * @param bo 传感器列
-     * @return 是否修改成功
-     */
-    Boolean updateByBo(TblSensorBo bo);
-
-    /**
-     * 校验并批量删除传感器列信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 0 - 68
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/ITblWarnService.java

@@ -1,68 +0,0 @@
-package org.dromara.service;
-
-import org.dromara.domain.vo.TblWarnVo;
-import org.dromara.domain.bo.TblWarnBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 告警管理Service接口
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-public interface ITblWarnService {
-
-    /**
-     * 查询告警管理
-     *
-     * @param id 主键
-     * @return 告警管理
-     */
-    TblWarnVo queryById(Long id);
-
-    /**
-     * 分页查询告警管理列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 告警管理分页列表
-     */
-    TableDataInfo<TblWarnVo> queryPageList(TblWarnBo bo, PageQuery pageQuery);
-
-    /**
-     * 查询符合条件的告警管理列表
-     *
-     * @param bo 查询条件
-     * @return 告警管理列表
-     */
-    List<TblWarnVo> queryList(TblWarnBo bo);
-
-    /**
-     * 新增告警管理
-     *
-     * @param bo 告警管理
-     * @return 是否新增成功
-     */
-    Boolean insertByBo(TblWarnBo bo);
-
-    /**
-     * 修改告警管理
-     *
-     * @param bo 告警管理
-     * @return 是否修改成功
-     */
-    Boolean updateByBo(TblWarnBo bo);
-
-    /**
-     * 校验并批量删除告警管理信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 0 - 44
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/GroovyMessageProcess.java

@@ -1,44 +0,0 @@
-package org.dromara.service.impl;
-
-import cn.hutool.core.io.file.FileReader;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.camel.Exchange;
-import org.dromara.service.ITblSensorRecordService;
-import org.dromara.utils.GroovyUtils;
-import org.dromara.utils.ScriptCache;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import cn.hutool.core.io.file.FileReader;
-import cn.hutool.core.util.StrUtil;
-import io.netty.util.internal.StringUtil;
-import lombok.Data;
-import org.apache.camel.Exchange;
-import org.apache.camel.PropertyInject;
-import org.apache.camel.spi.UriParam;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
-import java.nio.charset.StandardCharsets;
-import java.util.*;
-
-@Component("groovyMessageProcess")
-@Slf4j
-public class GroovyMessageProcess{
-
-    @Autowired
-    private ITblSensorRecordService sensorRecordService;
-    public void runScript(String scriptid,Exchange exchange){
-        exchange.getOut().setBody(GroovyUtils.runjs(ScriptCache.scriptCache.get(scriptid),Map.of("exchange",exchange,"sensorRecordService",sensorRecordService)));
-
-    }
-}
-
-

+ 0 - 152
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/RuleProcess.java

@@ -1,152 +0,0 @@
-package org.dromara.service.impl;
-
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.dromara.domain.TblBreakdown;
-import org.dromara.domain.bo.TblBreakdownBo;
-import org.dromara.domain.bo.TblWarnBo;
-import org.dromara.service.ITblBreakdownService;
-import org.dromara.service.ITblSensorService;
-import org.dromara.service.ITblWarnService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class RuleProcess {
-    @Autowired
-    private ITblSensorService sensorService;
-
-    @Autowired
-    private ITblWarnService tblWarnService;
-    @Autowired
-    private ITblBreakdownService tblBreakdownService;
-
-    public void insertAlarm(String content, Exchange exchange){
-//        System.out.println(exchange.getMessage().getBody().toString());
-//        System.out.println("------alarm------");
-        if(exchange.getMessage().getBody()!=null) {
-
-
-            String pointDataJSon = exchange.getMessage().getBody().toString();
-            if (!StrUtil.isEmptyIfStr(pointDataJSon)) {
-                try {
-                    JSONObject object = JSONUtil.parseObj(pointDataJSon);
-                    JSONObject objectp = object.getJSONObject("params");
-                    String sensorName = objectp.getStr("sensorName");
-                    TblWarnBo bo = new TblWarnBo();
-                    bo.setSensorId(object.getLong("sensorId"));
-                    bo.setSensorName(sensorName);
-                    bo.setContent(content);
-                    bo.setAlarmTime(DateUtil.date(object.getLong("createTime")));
-                    bo.setVal(object.getStr("pointValue"));
-                    bo.setName(objectp.getStr("pointLabel"));
-                    tblWarnService.insertByBo(bo);
-                } catch (Exception e) {
-                }
-            }
-        }
-    }
-
-    public void insertFattle(String content, Exchange exchange){
-        if(exchange.getMessage().getBody()!=null) {
-
-
-            String pointDataJSon = exchange.getMessage().getBody().toString();
-            if (!StrUtil.isEmptyIfStr(pointDataJSon)) {
-                try {
-                    JSONObject object = JSONUtil.parseObj(pointDataJSon);
-                    JSONObject objectp = object.getJSONObject("params");
-                    String sensorName = objectp.getStr("sensorName");
-                    TblBreakdownBo bo = new TblBreakdownBo();
-                    bo.setSensorId(object.getLong("sensorId"));
-                    bo.setSensorName(sensorName);
-                    bo.setContent(content);
-                    bo.setFaultTime(DateUtil.date(object.getLong("createTime")));
-                    bo.setVal(object.getStr("pointValue"));
-                    bo.setName(objectp.getStr("pointLabel"));
-                    tblBreakdownService.insertByBo(bo);
-                } catch (Exception e) {
-                }
-            }
-        }
-    }
-
-    public Object yz(String pointName,String fh,String value, Exchange exchange){
-
-        try{
-            String  inputdata = exchange.getMessage().getBody().toString();
-            JSONObject datapoint = JSONUtil.parseObj(inputdata);
-            if(datapoint.getObj("pointName").equals(pointName)) {
-
-                String pointvalue = datapoint.getObj("pointValue").toString();
-                switch (fh) {
-                    case "大于": {
-                        if (Double.parseDouble(pointvalue) > Double.parseDouble(value)) {
-                            return inputdata;
-                        }
-                        break;
-                    }
-                    case "小于": {
-                        if (Double.parseDouble(pointvalue) < Double.parseDouble(value)) {
-                            return inputdata;
-                        }
-                        break;
-                    }
-                    case "等于": {
-                        if (Double.parseDouble(pointvalue) == Double.parseDouble(value)) {
-                            return inputdata;
-                        }
-                        break;
-                    }
-                    case "大于等于": {
-                        if (Double.parseDouble(pointvalue) >= Double.parseDouble(value)) {
-                            return inputdata;
-                        }
-                        break;
-                    }
-                    case "小于等于": {
-                        if (Double.parseDouble(pointvalue) <= Double.parseDouble(value)) {
-                            return inputdata;
-                        }
-                        break;
-                    }
-                    case "不等于": {
-                        if (Double.parseDouble(pointvalue) != Double.parseDouble(value)) {
-                            return inputdata;
-                        }
-                        break;
-                    }
-                }
-            }
-        }catch (Exception e){
-
-        }
-        exchange.getMessage().setBody("");
-        return "";
-    }
-
-
-    public Object control(String eventName, Exchange exchange){
-
-        try{
-            String  inputdata = exchange.getMessage().getBody().toString();
-            JSONObject datapoint = JSONUtil.parseObj(inputdata);
-            //TODO 发送指令
-            System.out.println(eventName);
-            String[] c= eventName.split("__");
-
-            System.out.println(c[0]);
-            System.out.println(c[1]);
-
-        }catch (Exception e){
-
-        }
-        exchange.getMessage().setBody("");
-        return "";
-    }
-}

+ 0 - 150
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblBreakdownServiceImpl.java

@@ -1,150 +0,0 @@
-package org.dromara.service.impl;
-
-import cn.hutool.core.date.DateUtil;
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.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 org.dromara.domain.bo.TblBreakdownBo;
-import org.dromara.domain.vo.TblBreakdownVo;
-import org.dromara.domain.TblBreakdown;
-import org.dromara.mapper.TblBreakdownMapper;
-import org.dromara.service.ITblBreakdownService;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-
-/**
- * 故障管理Service业务层处理
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@RequiredArgsConstructor
-@Service
-public class TblBreakdownServiceImpl implements ITblBreakdownService {
-
-    private final TblBreakdownMapper baseMapper;
-
-    /**
-     * 查询故障管理
-     *
-     * @param id 主键
-     * @return 故障管理
-     */
-    @Override
-    public TblBreakdownVo queryById(Long id){
-        return baseMapper.selectVoById(id);
-    }
-
-    /**
-     * 分页查询故障管理列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 故障管理分页列表
-     */
-    @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);
-    }
-
-    /**
-     * 查询符合条件的故障管理列表
-     *
-     * @param bo 查询条件
-     * @return 故障管理列表
-     */
-    @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(bo.getSensorId() != null, TblBreakdown::getSensorId, bo.getSensorId());
-        lqw.like(StringUtils.isNotBlank(bo.getSensorName()), TblBreakdown::getSensorName, bo.getSensorName());
-        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());
-        if(bo.getParams()!=null && bo.getParams().get("startTime")!=null && bo.getParams().get("endTime")!=null){
-            String start= bo.getParams().get("startTime").toString();
-            String end= bo.getParams().get("endTime").toString();
-            lqw.gt( TblBreakdown::getCreateTime, start);
-            lqw.lt( TblBreakdown::getCreateTime, end);
-        }
-        return lqw;
-    }
-
-    /**
-     * 新增故障管理
-     *
-     * @param bo 故障管理
-     * @return 是否新增成功
-     */
-    @Override
-    public Boolean insertByBo(TblBreakdownBo bo) {
-        TblBreakdown add = MapstructUtils.convert(bo, TblBreakdown.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改故障管理
-     *
-     * @param bo 故障管理
-     * @return 是否修改成功
-     */
-    @Override
-    public Boolean updateByBo(TblBreakdownBo bo) {
-        TblBreakdown update = MapstructUtils.convert(bo, TblBreakdown.class);
-        validEntityBeforeSave(update);
-        if(update.getHandler()!=null && update.getHandlerTime()==null){
-            update.setHandlerTime(DateUtil.date());
-            update.setStatus("1");
-        }
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(TblBreakdown entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 校验并批量删除故障管理信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
-    }
-}

+ 0 - 150
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblRulesNodeServiceImpl.java

@@ -1,150 +0,0 @@
-package org.dromara.service.impl;
-
-import cn.hutool.core.codec.Base64;
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.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 org.dromara.domain.bo.TblRulesNodeBo;
-import org.dromara.domain.vo.TblRulesNodeVo;
-import org.dromara.domain.TblRulesNode;
-import org.dromara.mapper.TblRulesNodeMapper;
-import org.dromara.service.ITblRulesNodeService;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-
-/**
- * 规则节点Service业务层处理
- *
- * @author Lion Li
- * @date 2024-08-15
- */
-@RequiredArgsConstructor
-@Service
-public class TblRulesNodeServiceImpl implements ITblRulesNodeService {
-
-    private final TblRulesNodeMapper baseMapper;
-
-    /**
-     * 查询规则节点
-     *
-     * @param id 主键
-     * @return 规则节点
-     */
-    @Override
-    public TblRulesNodeVo queryById(Long id){
-        return baseMapper.selectVoById(id);
-    }
-
-    /**
-     * 分页查询规则节点列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 规则节点分页列表
-     */
-    @Override
-    public TableDataInfo<TblRulesNodeVo> queryPageList(TblRulesNodeBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<TblRulesNode> lqw = buildQueryWrapper(bo);
-        Page<TblRulesNodeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-        return TableDataInfo.build(result);
-    }
-
-    /**
-     * 查询符合条件的规则节点列表
-     *
-     * @param bo 查询条件
-     * @return 规则节点列表
-     */
-    @Override
-    public List<TblRulesNodeVo> queryList(TblRulesNodeBo bo) {
-        LambdaQueryWrapper<TblRulesNode> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
-    }
-
-    private LambdaQueryWrapper<TblRulesNode> buildQueryWrapper(TblRulesNodeBo bo) {
-        Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<TblRulesNode> lqw = Wrappers.lambdaQuery();
-        lqw.like(StringUtils.isNotBlank(bo.getName()), TblRulesNode::getName, bo.getName());
-        lqw.eq(StringUtils.isNotBlank(bo.getNodedata()), TblRulesNode::getNodedata, bo.getNodedata());
-        lqw.eq(StringUtils.isNotBlank(bo.getNodeui()), TblRulesNode::getNodeui, bo.getNodeui());
-        lqw.eq(StringUtils.isNotBlank(bo.getNodeconfigui()), TblRulesNode::getNodeconfigui, bo.getNodeconfigui());
-        lqw.eq(StringUtils.isNotBlank(bo.getType()), TblRulesNode::getType, bo.getType());
-        lqw.eq(StringUtils.isNotBlank(bo.getCategory()), TblRulesNode::getCategory, bo.getCategory());
-        lqw.eq(StringUtils.isNotBlank(bo.getExt1()), TblRulesNode::getExt1, bo.getExt1());
-        lqw.eq(StringUtils.isNotBlank(bo.getExt2()), TblRulesNode::getExt2, bo.getExt2());
-        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblRulesNode::getStatus, bo.getStatus());
-        return lqw;
-    }
-
-    /**
-     * 新增规则节点
-     *
-     * @param bo 规则节点
-     * @return 是否新增成功
-     */
-    @Override
-    public Boolean insertByBo(TblRulesNodeBo bo) {
-        TblRulesNode add = MapstructUtils.convert(bo, TblRulesNode.class);
-        validEntityBeforeSave(add);
-        if(add.getNodeconfigui()!=null){
-            add.setNodeconfigui(Base64.decodeStr(add.getNodeconfigui()));
-        }
-        if(add.getNodeui()!=null){
-            add.setNodeui(Base64.decodeStr(add.getNodeui()));
-        }
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改规则节点
-     *
-     * @param bo 规则节点
-     * @return 是否修改成功
-     */
-    @Override
-    public Boolean updateByBo(TblRulesNodeBo bo) {
-        TblRulesNode update = MapstructUtils.convert(bo, TblRulesNode.class);
-        validEntityBeforeSave(update);
-        if(update.getNodeconfigui()!=null){
-            update.setNodeconfigui(Base64.decodeStr(update.getNodeconfigui()));
-        }
-        if(update.getNodeui()!=null){
-            update.setNodeui(Base64.decodeStr(update.getNodeui()));
-        }
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(TblRulesNode entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 校验并批量删除规则节点信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
-    }
-}

+ 0 - 429
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblRulesServiceImpl.java

@@ -1,429 +0,0 @@
-package org.dromara.service.impl;
-
-import cn.hutool.core.codec.Base64;
-import cn.hutool.core.lang.UUID;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import jakarta.annotation.PostConstruct;
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.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.dromara.config.CamelRouterConfig;
-import org.dromara.utils.ScriptCache;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.dromara.domain.bo.TblRulesBo;
-import org.dromara.domain.vo.TblRulesVo;
-import org.dromara.domain.TblRules;
-import org.dromara.mapper.TblRulesMapper;
-import org.dromara.service.ITblRulesService;
-
-import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
-
-/**
- * 规则Service业务层处理
- *
- * @author Lion Li
- * @date 2024-08-14
- */
-@RequiredArgsConstructor
-@Service
-public class TblRulesServiceImpl implements ITblRulesService {
-
-    private static final Logger log = LoggerFactory.getLogger(TblRulesServiceImpl.class);
-    private final TblRulesMapper baseMapper;
-
-    @Autowired
-    private CamelRouterConfig camelRouterConfig;
-
-    /**
-     * 查询规则
-     *
-     * @param id 主键
-     * @return 规则
-     */
-    @Override
-    public TblRulesVo queryById(Long id){
-        TblRulesVo vo =      baseMapper.selectVoById(id);
-        if(vo.getExt1()!=null){
-            vo.setExt1(Base64.encode(vo.getExt1()));
-        }
-        return vo;
-    }
-
-    /**
-     * 分页查询规则列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 规则分页列表
-     */
-    @Override
-    public TableDataInfo<TblRulesVo> queryPageList(TblRulesBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<TblRules> lqw = buildQueryWrapper(bo);
-        Page<TblRulesVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-        return TableDataInfo.build(result);
-    }
-
-    /**
-     * 查询符合条件的规则列表
-     *
-     * @param bo 查询条件
-     * @return 规则列表
-     */
-    @Override
-    public List<TblRulesVo> queryList(TblRulesBo bo) {
-        LambdaQueryWrapper<TblRules> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
-    }
-
-    private LambdaQueryWrapper<TblRules> buildQueryWrapper(TblRulesBo bo) {
-        Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<TblRules> lqw = Wrappers.lambdaQuery();
-        lqw.like(StringUtils.isNotBlank(bo.getName()), TblRules::getName, bo.getName());
-        lqw.eq(StringUtils.isNotBlank(bo.getRoutes()), TblRules::getRoutes, bo.getRoutes());
-        lqw.eq(StringUtils.isNotBlank(bo.getRemark()), TblRules::getRemark, bo.getRemark());
-        lqw.eq(StringUtils.isNotBlank(bo.getExt1()), TblRules::getExt1, bo.getExt1());
-        lqw.eq(StringUtils.isNotBlank(bo.getExt2()), TblRules::getExt2, bo.getExt2());
-        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblRules::getStatus, bo.getStatus());
-        return lqw;
-    }
-
-    /**
-     * 新增规则
-     *
-     * @param bo 规则
-     * @return 是否新增成功
-     */
-    @Override
-    public Boolean insertByBo(TblRulesBo bo) {
-        TblRules add = MapstructUtils.convert(bo, TblRules.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改规则
-     *
-     * @param bo 规则
-     * @return 是否修改成功
-     */
-    @Override
-    public Boolean updateByBo(TblRulesBo bo) throws Exception {
-        TblRules update = MapstructUtils.convert(bo, TblRules.class);
-        validEntityBeforeSave(update);
-
-        if(update.getExt1()!=null) {
-            update.setExt1(Base64.decodeStr(update.getExt1()));
-            update.setRoutes(covetToUIToRouter(update.getExt1()));
-        }
-        if(update.getStatus()!=null){
-           TblRulesVo rulesVo =  baseMapper.selectVoById(update.getId());
-            if(update.getStatus().equals("1")){
-                //启用
-                camelRouterConfig.camelRouterRemove(rulesVo.getId().toString());
-                if(camelRouterConfig.camelRouterRun(covertToRouteXml(rulesVo))){
-                    //路由xml转换成功
-
-                }else{
-                    throw new Exception("路由xml转换失败");
-                }
-            }
-            if(update.getStatus().equals("0")){
-                //停用
-                if(camelRouterConfig.camelRouterRemove(rulesVo.getId().toString())){
-                    //路由xml转换成功
-                }else {
-                    throw new Exception("路由xml转换失败");
-                }
-            }
-        }
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(TblRules entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 校验并批量删除规则信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
-    }
-
-    private String covetToUIToRouter(String  uicell) throws Exception {
-        //分析并保存成路由xml
-        Map<String,Object> routeMap = new HashMap<>();
-        JSONArray cells = JSONUtil.parseObj(uicell).getJSONArray("cells");
-        if (cells != null) {
-            Map<String, JSONObject> hasMap = cells.stream().collect(Collectors.toMap(item -> JSONUtil.parseObj(item).getStr("id"), item -> JSONUtil.parseObj(item)));
-            //转换routejson
-            //查找连接线
-            List<Object> lines = cells.stream().filter(item -> JSONUtil.parseObj(item).getStr("shape").equals("edge")).collect(Collectors.toList());
-
-            List<String> tagers = new ArrayList<>();
-            lines.stream().forEach(item->{
-                JSONObject linet = (JSONObject) item;
-                tagers.add(linet.getJSONObject("target").getStr("cell"));
-            });
-            List<String> fromids = new ArrayList<>();
-            for (String id :hasMap.keySet()) {
-                if(!tagers.contains(id)){
-                    if(!hasMap.get(id).getStr("shape").equals("edge")){
-                        fromids.add(id);
-                    }
-                }
-            }
-            if(fromids.size()<1){
-                throw new Exception("未找到起始节点");
-            }
-            if(fromids.size()>1){
-                throw new Exception("起始节点不能有多个");
-            }
-
-            JSONObject fromdata = hasMap.get(fromids.get(0));
-            JSONObject fromonj = fromdata.getJSONObject("data").getJSONObject("data");
-            String from = fromonj.getStr("res");
-            if(StrUtil.isEmptyIfStr(from)) throw new Exception("未找到起始节点");
-            from = replacedata(from, fromonj);
-            List<Map<String,Object>> routes = new ArrayList<>();
-            routeMap = getnextNode(0,routes,fromdata,lines,hasMap);
-            routeMap.put("from", from);
-            routes.add(routeMap);
-
-            return JSONUtil.toJsonStr(routes);
-        }
-        return null;
-    }
-    private Map<String,Object> getnextNode(int indexp,List<Map<String,Object>> routes, JSONObject from,List<Object> lines,Map<String,JSONObject> allnode){
-        //先找线
-        Map<String,Object> tolist = new HashMap<>();
-        AtomicInteger index = new AtomicInteger(indexp);
-        List<String> targetids = new ArrayList<>();
-        AtomicReference<String> targetid = new AtomicReference<>("");
-        lines.stream().forEach(item->{
-            JSONObject linet = (JSONObject) item;
-            if(linet.getJSONObject("source").getStr("cell").equals(from.getStr("id"))){
-                targetids.add(linet.getJSONObject("target").getStr("cell"));
-                //目标线段
-                JSONObject linedata = linet.getJSONObject("data").getJSONObject("configdom").getJSONObject("data");
-                String lineto = linedata.getStr("res");
-                //线不做定义流程 跳过
-                if((!StrUtil.isEmptyIfStr(lineto))&&false){
-                    lineto = replacedata(lineto, linedata);
-                    tolist.put(StrUtil.format("to{}", index.getAndIncrement()), lineto);
-                }
-            }
-        });
-
-
-        for (String tid : targetids) {
-            if(!StrUtil.isEmptyIfStr(tid)){
-                JSONObject targetnode = allnode.get(tid);
-                JSONObject linedata = targetnode.getJSONObject("data").getJSONObject("data");
-                String targetstr = linedata.getStr("res");
-                if(!StrUtil.isEmptyIfStr(targetstr)){
-                    targetstr = replacedata(targetstr, linedata);
-                    //根据线找目标节点
-                    if(targetids.size()>1){
-                        //多节点需要采用 multicast
-                        if(tolist.get("multicast")==null){
-                            Map<String,Object> map = new HashMap<>();
-                            tolist.put("multicast",map);
-                        }
-                        //此处需要判断子节点
-                        Map<String,Object> c = getnextNode(1,routes,targetnode,lines,allnode);
-                        if(c.get("multicast")!=null){
-                            String UUid = UUID.fastUUID().toString();
-                            c.put("from","direct:"+ UUid );
-                            c.put(StrUtil.format("to{}", 0),targetstr);
-                            routes.add(c);
-                            ((Map<String,Object>)tolist.get("multicast")).put(StrUtil.format("to{}", index.getAndIncrement()), "direct:"+ UUid);
-                        }else{
-                            if(c.get("to1")!=null){
-                                String UUid = UUID.fastUUID().toString();
-                                c.put("from","direct:"+ UUid );
-                                c.put(StrUtil.format("to{}", 0),targetstr);
-                                routes.add(c);
-                                ((Map<String,Object>)tolist.get("multicast")).put(StrUtil.format("to{}", index.getAndIncrement()), "direct:"+ UUid);
-                            }else{
-                                ((Map<String,Object>)tolist.get("multicast")).put(StrUtil.format("to{}", index.getAndIncrement()), targetstr);
-                            }
-
-                        }
-                    }else{
-                        Map<String,Object> c = getnextNode(1,routes,targetnode,lines,allnode);
-                        if(c.get("multicast")!=null){
-                            String UUid = UUID.fastUUID().toString();
-                            c.put("from","direct:"+ UUid );
-                            c.put(StrUtil.format("to{}", 0),targetstr);
-                            routes.add(c);
-                            tolist.put(StrUtil.format("to{}", index.getAndIncrement()), "direct:"+ UUid);
-                        }else{
-                            if(c.get("to1")!=null){
-                                String UUid = UUID.fastUUID().toString();
-                                c.put("from","direct:"+ UUid );
-                                c.put(StrUtil.format("to{}", 0),targetstr);
-                                routes.add(c);
-                                tolist.put(StrUtil.format("to{}", index.getAndIncrement()), "direct:"+ UUid);
-                            }else{
-                                tolist.put(StrUtil.format("to{}", index.getAndIncrement()), targetstr);
-                            }
-                        }
-                    }
-                }
-
-            }
-        }
-        return tolist;
-
-    }
-
-    private String replacedata(String data,JSONObject jdata){
-        String rdata = data;
-        {
-            //公共参数修改
-            rdata = rdata.replaceAll("\\$\\{uuid}",UUID.fastUUID().toString());
-
-
-        }
-        {
-            //私有参数映射
-            for (String key : jdata.keySet()) {
-                if(key.contains("defscript")){
-                    String sc = jdata.getStr(key);
-                    for (String key1 : jdata.keySet()) {
-                        String tt= jdata.get(key1).toString();
-                        if(StrUtil.isEmptyIfStr(jdata.get(key1).toString())){
-                            tt = "\\\"\\\"";
-                        }
-                        sc = sc.replaceAll("\\$\\{"+key1+"}",tt);
-                    }
-                    jdata.set(key, sc);
-                }
-                if(rdata.contains("runScript")&& rdata.contains("${"+key+"}")){
-                    continue;
-                }
-                String tt= jdata.get(key).toString();
-                if(StrUtil.isEmptyIfStr(jdata.get(key).toString())){
-                    tt = "\\\"\\\"";
-                }
-                rdata = rdata.replaceAll("\\$\\{"+key+"}",tt);
-            }
-
-            for (String key : jdata.keySet()) {
-                if(rdata.contains("runScript") && rdata.contains("${"+key+"}")){
-                    String uuid = UUID.fastUUID().toString().replaceAll("_","");
-                    ScriptCache.scriptCache.put(uuid,jdata.get(key).toString());
-                    rdata = rdata.replaceAll("\\$\\{"+key+"}",uuid);
-                }
-            }
-        }
-
-        return rdata;
-    }
-
-    private String jsontoxml(JSONObject json){
-        int index = 0;
-        String xml = "";
-        if(json.getStr("from")!=null){
-            xml+= "<from id=\""+UUID.fastUUID().toString()+"\" uri=\""+json.getStr("from").toString()+"\"></from>";
-        }
-        if(json.getStr("to" + index)==null){
-            index++;
-        }
-
-        while (json.getStr("to" + index)!=null){
-            if(json.getStr("to" + index).toString().contains("runScript")){
-                String[] strs = json.getStr("to" + index).toString().split("_");
-                if(strs.length==3 && strs[1].equals("1")){
-                    //groovy
-                    xml+= "<to  id=\""+UUID.fastUUID().toString()+"\"  uri=\"bean:groovyMessageProcess??method=runScript("+strs[2]+")\"></to>";
-                }else{
-                    xml+= "";
-                }
-            }else{
-                xml+="<to  id=\""+UUID.fastUUID().toString()+"\" uri=\""+json.getStr("to" + index).toString()+"\"></to>";
-            }
-            index++;
-        }
-        if(json.getJSONObject("multicast")!=null){
-            xml+= "<multicast>"+ jsontoxml(json.getJSONObject("multicast"))+"</multicast>";
-        }
-        return xml;
-    }
-
-    private String covertToRouteXml(TblRulesVo rules) throws Exception {
-        if(StrUtil.isEmptyIfStr(rules.getRoutes())){
-            throw new Exception("规则未配置!");
-        }
-        if(rules.getRoutes().contains("runScript")){
-            rules.setRoutes(covetToUIToRouter(rules.getExt1()));
-        }
-        JSONArray dataj =  JSONUtil.parseArray( rules.getRoutes());
-        String xmlroutes = "";
-        for (Object jsonObject : dataj) {
-            xmlroutes+="<route id=\""+rules.getId()+"__"+UUID.fastUUID().toString()+"\">\n";
-            xmlroutes += jsontoxml((JSONObject)jsonObject);
-            xmlroutes+="\n</route>";
-
-        }
-
-        String xmlstring = "<routes xmlns=\"http://camel.apache.org/schema/spring\"> " +
-                xmlroutes+
-                " </routes>";
-
-        return xmlstring;
-    }
-
-
-    @PostConstruct
-    public void runAll()
-    {
-        List<TblRulesVo> lists = baseMapper.selectVoList();
-        for (TblRulesVo vo : lists) {
-            if(vo.getStatus().equals("1")){
-                //启用
-                try {
-                    if(camelRouterConfig.camelRouterRun(covertToRouteXml(vo))){
-                    //路由xml转换成功
-                        log.debug("系统初始化启动规则成功");
-                    };
-
-                }catch (Exception e){
-
-                }
-
-            }
-
-        }
-    }
-}

+ 0 - 191
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblSensorRecordServiceImpl.java

@@ -1,191 +0,0 @@
-package org.dromara.service.impl;
-
-import cn.hutool.core.date.DateField;
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.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 org.dromara.domain.bo.TblSensorRecordBo;
-import org.dromara.domain.vo.TblSensorRecordVo;
-import org.dromara.domain.TblSensorRecord;
-import org.dromara.mapper.TblSensorRecordMapper;
-import org.dromara.service.ITblSensorRecordService;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-import java.util.stream.Collectors;
-
-/**
- * 传感器实时数据Service业务层处理
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@RequiredArgsConstructor
-@Service
-public class TblSensorRecordServiceImpl implements ITblSensorRecordService {
-
-    private final TblSensorRecordMapper baseMapper;
-
-    @Override
-    public void createTable(Map<String, Object> map) {
-        baseMapper.createTable(map);
-    }
-
-    /**
-     * 查询传感器实时数据
-     *
-     * @param id 主键
-     * @return 传感器实时数据
-     */
-    @Override
-    public TblSensorRecordVo queryById(Long id){
-        return baseMapper.selectVoById(id);
-    }
-
-    /**
-     * 分页查询传感器实时数据列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 传感器实时数据分页列表
-     */
-    @Override
-    public TableDataInfo<TblSensorRecordVo> queryPageList(TblSensorRecordBo bo, PageQuery pageQuery) {
-//        LambdaQueryWrapper<TblSensorRecord> lqw = buildQueryWrapper(bo);
-//        Page<TblSensorRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-//        return TableDataInfo.build(result);
-        if(bo.getParams()!=null){
-            String startTime =  bo.getParams().get("startTime").toString();
-            String endTime =  bo.getParams().get("endTime").toString();
-            Date startTime1  = DateUtil.date(Long.parseLong(startTime)*1000);
-            Date endTime1  = DateUtil.date(Long.parseLong(endTime)*1000);
-
-            bo.getParams().put("startTime",DateUtil.format(startTime1,"yyyy-MM-dd HH:mm:ss"));
-            bo.getParams().put("endTime",DateUtil.format(endTime1,"yyyy-MM-dd HH:mm:ss"));
-
-            //计算月
-            List<DateTime> dateList =DateUtil.rangeToList(startTime1,endTime1, DateField.MONTH);
-            bo.getParams().put("datetimes",dateList.stream().map(date -> DateUtil.format(date,"yyyy_MM")).collect(Collectors.toList()));
-
-        }
-
-        TblSensorRecord r = new TblSensorRecord();
-        r.setParams(bo.getParams());
-        r.setId(bo.getId());
-        r.setSensorId(bo.getSensorId());
-        r.setPointName(bo.getPointName());
-        r.setPointValue(bo.getPointValue());
-        r.setCreateBy(bo.getCreateBy());
-        Page<TblSensorRecordVo> result = (Page<TblSensorRecordVo>) baseMapper.selectDataPage(pageQuery.build(),r);
-        return TableDataInfo.build(result);
-    }
-
-    /**
-     * 查询符合条件的传感器实时数据列表
-     *
-     * @param bo 查询条件
-     * @return 传感器实时数据列表
-     */
-    @Override
-    public List<TblSensorRecordVo> queryList(TblSensorRecordBo bo) {
-//        LambdaQueryWrapper<TblSensorRecord> lqw = buildQueryWrapper(bo);
-//        Page<TblSensorRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-//        return TableDataInfo.build(result);
-            if(bo.getParams()!=null){
-                String startTime =  bo.getParams().get("startTime").toString();
-                String endTime =  bo.getParams().get("endTime").toString();
-                Date startTime1  = DateUtil.date(Long.parseLong(startTime)*1000);
-                Date endTime1  = DateUtil.date(Long.parseLong(endTime)*1000);
-
-                bo.getParams().put("startTime",DateUtil.format(startTime1,"yyyy-MM-dd HH:mm:ss"));
-                bo.getParams().put("endTime",DateUtil.format(endTime1,"yyyy-MM-dd HH:mm:ss"));
-
-                //计算月
-                List<DateTime> dateList =DateUtil.rangeToList(startTime1,endTime1, DateField.MONTH);
-                bo.getParams().put("datetimes",dateList.stream().map(date -> DateUtil.format(date,"yyyy_MM")).collect(Collectors.toList()));
-
-            }
-            TblSensorRecord r = new TblSensorRecord();
-            r.setParams(bo.getParams());
-            r.setId(bo.getId());
-            r.setSensorId(bo.getSensorId());
-            r.setPointName(bo.getPointName());
-            r.setPointValue(bo.getPointValue());
-            r.setCreateBy(bo.getCreateBy());
-            List<TblSensorRecordVo> result = baseMapper.selectData(r);
-            return result;
-    }
-
-    private LambdaQueryWrapper<TblSensorRecord> buildQueryWrapper(TblSensorRecordBo bo) {
-        Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<TblSensorRecord> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getSensorId() != null, TblSensorRecord::getSensorId, bo.getSensorId());
-        lqw.like(StringUtils.isNotBlank(bo.getPointName()), TblSensorRecord::getPointName, bo.getPointName());
-        lqw.eq(StringUtils.isNotBlank(bo.getPointValue()), TblSensorRecord::getPointValue, bo.getPointValue());
-        return lqw;
-    }
-
-    /**
-     * 新增传感器实时数据
-     *
-     * @param bo 传感器实时数据
-     * @return 是否新增成功
-     */
-    @Override
-    public Boolean insertByBo(TblSensorRecordBo bo) {
-        TblSensorRecord add = MapstructUtils.convert(bo, TblSensorRecord.class);
-        if(bo.getParams()==null || bo.getParams().get("datetime")==null) return false;
-        baseMapper.createTable(bo.getParams());
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insertData(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改传感器实时数据
-     *
-     * @param bo 传感器实时数据
-     * @return 是否修改成功
-     */
-    @Override
-    public Boolean updateByBo(TblSensorRecordBo bo) {
-        TblSensorRecord update = MapstructUtils.convert(bo, TblSensorRecord.class);
-        validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(TblSensorRecord entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 校验并批量删除传感器实时数据信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
-    }
-}

+ 0 - 153
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblSensorServiceImpl.java

@@ -1,153 +0,0 @@
-package org.dromara.service.impl;
-
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.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.dromara.common.redis.utils.CacheUtils;
-import org.springframework.stereotype.Service;
-import org.dromara.domain.bo.TblSensorBo;
-import org.dromara.domain.vo.TblSensorVo;
-import org.dromara.domain.TblSensor;
-import org.dromara.mapper.TblSensorMapper;
-import org.dromara.service.ITblSensorService;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-
-/**
- * 传感器列Service业务层处理
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@RequiredArgsConstructor
-@Service
-public class TblSensorServiceImpl implements ITblSensorService {
-
-    private final TblSensorMapper baseMapper;
-
-    /**
-     * 查询传感器列
-     *
-     * @param id 主键
-     * @return 传感器列
-     */
-    @Override
-    public TblSensorVo queryById(Long id){
-        TblSensorVo vo = baseMapper.selectVoById(id);
-
-        JSONArray datapoints =JSONUtil.parseArray(vo.getDatapoints());
-        for (Object obj : datapoints) {
-            Object data = CacheUtils.get("sensorData","sensor_"+vo.getId()+((JSONObject)obj).getStr("name"));
-            if(data!=null){
-                ((JSONObject)obj).set("value",((JSONObject)data).get("value"));
-                ((JSONObject)obj).set("vdate",((JSONObject)data).get("vdate"));
-            }
-        }
-        vo.setDatapoints(JSONUtil.toJsonStr(datapoints));
-
-        return vo;
-    }
-
-    /**
-     * 分页查询传感器列列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 传感器列分页列表
-     */
-    @Override
-    public TableDataInfo<TblSensorVo> queryPageList(TblSensorBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<TblSensor> lqw = buildQueryWrapper(bo);
-        Page<TblSensorVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-        return TableDataInfo.build(result);
-    }
-
-    /**
-     * 查询符合条件的传感器列列表
-     *
-     * @param bo 查询条件
-     * @return 传感器列列表
-     */
-    @Override
-    public List<TblSensorVo> queryList(TblSensorBo bo) {
-        LambdaQueryWrapper<TblSensor> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
-    }
-
-    private LambdaQueryWrapper<TblSensor> buildQueryWrapper(TblSensorBo bo) {
-        Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<TblSensor> lqw = Wrappers.lambdaQuery();
-        lqw.like(StringUtils.isNotBlank(bo.getName()), TblSensor::getName, bo.getName());
-        lqw.eq(StringUtils.isNotBlank(bo.getSn()), TblSensor::getSn, bo.getSn());
-        lqw.eq(StringUtils.isNotBlank(bo.getSensorType()), TblSensor::getSensorType, bo.getSensorType());
-        lqw.eq(bo.getProtocalType() != null, TblSensor::getProtocalType, bo.getProtocalType());
-        lqw.eq(StringUtils.isNotBlank(bo.getSensorDesc()), TblSensor::getSensorDesc, bo.getSensorDesc());
-        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblSensor::getStatus, bo.getStatus());
-        lqw.eq(StringUtils.isNotBlank(bo.getDatapoints()), TblSensor::getDatapoints, bo.getDatapoints());
-        lqw.eq(StringUtils.isNotBlank(bo.getEvents()), TblSensor::getEvents, bo.getEvents());
-        lqw.eq(StringUtils.isNotBlank(bo.getFaults()), TblSensor::getFaults, bo.getFaults());
-        return lqw;
-    }
-
-    /**
-     * 新增传感器列
-     *
-     * @param bo 传感器列
-     * @return 是否新增成功
-     */
-    @Override
-    public Boolean insertByBo(TblSensorBo bo) {
-        TblSensor add = MapstructUtils.convert(bo, TblSensor.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改传感器列
-     *
-     * @param bo 传感器列
-     * @return 是否修改成功
-     */
-    @Override
-    public Boolean updateByBo(TblSensorBo bo) {
-        TblSensor update = MapstructUtils.convert(bo, TblSensor.class);
-        validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(TblSensor entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 校验并批量删除传感器列信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
-    }
-}

+ 0 - 151
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/impl/TblWarnServiceImpl.java

@@ -1,151 +0,0 @@
-package org.dromara.service.impl;
-
-import cn.hutool.core.date.DateUtil;
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.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.dromara.domain.TblBreakdown;
-import org.springframework.stereotype.Service;
-import org.dromara.domain.bo.TblWarnBo;
-import org.dromara.domain.vo.TblWarnVo;
-import org.dromara.domain.TblWarn;
-import org.dromara.mapper.TblWarnMapper;
-import org.dromara.service.ITblWarnService;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-
-/**
- * 告警管理Service业务层处理
- *
- * @author Lion Li
- * @date 2024-08-11
- */
-@RequiredArgsConstructor
-@Service
-public class TblWarnServiceImpl implements ITblWarnService {
-
-    private final TblWarnMapper baseMapper;
-
-    /**
-     * 查询告警管理
-     *
-     * @param id 主键
-     * @return 告警管理
-     */
-    @Override
-    public TblWarnVo queryById(Long id){
-        return baseMapper.selectVoById(id);
-    }
-
-    /**
-     * 分页查询告警管理列表
-     *
-     * @param bo        查询条件
-     * @param pageQuery 分页参数
-     * @return 告警管理分页列表
-     */
-    @Override
-    public TableDataInfo<TblWarnVo> queryPageList(TblWarnBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<TblWarn> lqw = buildQueryWrapper(bo);
-        Page<TblWarnVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-        return TableDataInfo.build(result);
-    }
-
-    /**
-     * 查询符合条件的告警管理列表
-     *
-     * @param bo 查询条件
-     * @return 告警管理列表
-     */
-    @Override
-    public List<TblWarnVo> queryList(TblWarnBo bo) {
-        LambdaQueryWrapper<TblWarn> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
-    }
-
-    private LambdaQueryWrapper<TblWarn> buildQueryWrapper(TblWarnBo bo) {
-        Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<TblWarn> lqw = Wrappers.lambdaQuery();
-        lqw.like(StringUtils.isNotBlank(bo.getName()), TblWarn::getName, bo.getName());
-        lqw.eq(StringUtils.isNotBlank(bo.getVal()), TblWarn::getVal, bo.getVal());
-        lqw.eq(bo.getSensorId() != null, TblWarn::getSensorId, bo.getSensorId());
-        lqw.like(StringUtils.isNotBlank(bo.getSensorName()), TblWarn::getSensorName, bo.getSensorName());
-        lqw.eq(StringUtils.isNotBlank(bo.getContent()), TblWarn::getContent, bo.getContent());
-        lqw.eq(StringUtils.isNotBlank(bo.getHandler()), TblWarn::getHandler, bo.getHandler());
-        lqw.eq(StringUtils.isNotBlank(bo.getHandleWay()), TblWarn::getHandleWay, bo.getHandleWay());
-        lqw.eq(StringUtils.isNotBlank(bo.getHandleContent()), TblWarn::getHandleContent, bo.getHandleContent());
-        lqw.eq(bo.getHandleTime() != null, TblWarn::getHandleTime, bo.getHandleTime());
-        lqw.eq(bo.getAlarmTime() != null, TblWarn::getAlarmTime, bo.getAlarmTime());
-        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblWarn::getStatus, bo.getStatus());
-        if(bo.getParams()!=null && bo.getParams().get("startTime")!=null && bo.getParams().get("endTime")!=null){
-            String start= bo.getParams().get("startTime").toString();
-            String end= bo.getParams().get("endTime").toString();
-            lqw.gt( TblWarn::getCreateTime, start);
-            lqw.lt( TblWarn::getCreateTime, end);
-        }
-        return lqw;
-    }
-
-    /**
-     * 新增告警管理
-     *
-     * @param bo 告警管理
-     * @return 是否新增成功
-     */
-    @Override
-    public Boolean insertByBo(TblWarnBo bo) {
-        TblWarn add = MapstructUtils.convert(bo, TblWarn.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改告警管理
-     *
-     * @param bo 告警管理
-     * @return 是否修改成功
-     */
-    @Override
-    public Boolean updateByBo(TblWarnBo bo) {
-        TblWarn update = MapstructUtils.convert(bo, TblWarn.class);
-        if(update.getHandler()!=null && update.getHandleTime()==null){
-            update.setHandleTime(DateUtil.date());
-            update.setStatus("1");
-        }
-        validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(TblWarn entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 校验并批量删除告警管理信息
-     *
-     * @param ids     待删除的主键集合
-     * @param isValid 是否进行有效性校验
-     * @return 是否删除成功
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteByIds(ids) > 0;
-    }
-}

+ 0 - 22
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/mqtt/MqttConnectStatusListener.java

@@ -1,22 +0,0 @@
-package org.dromara.service.mqtt;
-
-import lombok.extern.slf4j.Slf4j;
-import net.dreamlu.iot.mqtt.spring.server.event.MqttClientOfflineEvent;
-import net.dreamlu.iot.mqtt.spring.server.event.MqttClientOnlineEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-
-@Service
-@Slf4j
-public class MqttConnectStatusListener {
-
-    @EventListener
-    public void online(MqttClientOnlineEvent event){
-        log.info("客户端上线:{}",event.getClientId());
-    }
-
-    @EventListener
-    public void offline(MqttClientOfflineEvent event) {
-        log.info("MqttClientOfflineEvent:{}", event);
-    }
-}

+ 0 - 152
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/service/mqtt/MqttServerMessageListener.java

@@ -1,152 +0,0 @@
-package org.dromara.service.mqtt;
-
-import cn.hutool.core.date.DatePattern;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.spring.SpringUtil;
-import cn.hutool.json.JSON;
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import jakarta.annotation.PostConstruct;
-import lombok.extern.slf4j.Slf4j;
-import net.dreamlu.iot.mqtt.codec.MqttPublishMessage;
-import net.dreamlu.iot.mqtt.codec.MqttQoS;
-import net.dreamlu.iot.mqtt.core.server.MqttServer;
-import net.dreamlu.iot.mqtt.core.server.event.IMqttMessageListener;
-import net.dreamlu.iot.mqtt.core.server.model.Message;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
-import org.apache.camel.ProducerTemplate;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.redis.utils.CacheUtils;
-import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.config.CamelRouterConfig;
-import org.dromara.domain.TblSensor;
-import org.dromara.domain.TblSensorRecord;
-import org.dromara.domain.bo.TblSensorRecordBo;
-import org.dromara.domain.vo.TblSensorRecordVo;
-import org.dromara.domain.vo.TblSensorVo;
-import org.dromara.service.ITblSensorRecordService;
-import org.dromara.service.ITblSensorService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.tio.core.ChannelContext;
-
-import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Service
-@Slf4j
-public class MqttServerMessageListener implements IMqttMessageListener {
-
-    @Autowired
-    private ITblSensorRecordService tblSensorRecordService;
-
-    @Autowired
-    private ITblSensorService tablSensorService;
-
-
-    @Autowired
-    private CamelRouterConfig camelRouterConfig;
-
-    @Autowired
-    private CamelContext camelContext;
-
-    @Override
-    public void onMessage(ChannelContext context, String clientId, String topic, MqttQoS qoS, MqttPublishMessage message) {
-        log.info("clientId:{} message:{} payload:{}", clientId, message, new String(message.getPayload(), StandardCharsets.UTF_8));
-        if(topic!=null){
-            if(topic.toString().startsWith("/from/device")){
-                //获取设备编号
-                TblSensorVo sensorVo = null;
-                JSONObject deviceData = JSONUtil.parseObj(new String(message.getPayload(), StandardCharsets.UTF_8));
-                if(deviceData.getLong("id")!=null){
-                    sensorVo = tablSensorService.queryById(deviceData.getLong("id"));
-                }
-                if(sensorVo==null){
-                    log.error("系统不存在该设备!");
-                    return;
-                }
-                if(deviceData.getJSONArray("points")!=null){
-                    for(int i=0;i<deviceData.getJSONArray("points").size();i++){
-                        JSONObject point = deviceData.getJSONArray("points").getJSONObject(i);
-                        //设置实时值
-                        String datapoints = sensorVo.getDatapoints();
-                        JSONArray dataj =JSONUtil.parseArray(datapoints);
-                        String pointNameLabel = "";
-                        for (Object jsonObject : dataj) {
-                            if(((JSONObject)jsonObject).getStr("name").equals(point.getStr("name"))){
-                                pointNameLabel = ((JSONObject)jsonObject).getStr("label");
-                            }
-                        }
-
-
-                        //save record
-                        CacheUtils.put("sensorData","sensor_"+sensorVo.getId()+point.getStr("name"),point);
-                        TblSensorRecordBo bo = new TblSensorRecordBo();
-                        bo.setPointName(point.getStr("name"));
-                        bo.setPointValue(point.getStr("value"));
-                        bo.setSensorId(sensorVo.getId());
-                        bo.setCreateTime(DateUtil.date());
-                        bo.getParams().put("sensorName",sensorVo.getName());
-                        bo.getParams().put("pointLabel",pointNameLabel);
-                        bo.getParams().put("datetime",DateUtil.format(DateUtil.date(), "YYYY_MM"));
-                        if(tblSensorRecordService.insertByBo(bo)){
-                            //保存成功
-                            log.debug("保存数据成功");
-                        }
-                        process(sensorVo,bo);
-
-                    }
-
-                }
-
-            }
-        }
-    }
-
-    public void process(TblSensorVo sensorVo,TblSensorRecordBo bo){
-
-        Map<String,Boolean> map = new HashMap<>(Map.of("allDevice", false, "typeDevice_" + sensorVo.getSensorType(), false, "device_" + sensorVo.getId(), false));
-        //设备数据
-        ProducerTemplate template  = camelContext.createProducerTemplate();
-        camelContext.getRoutes().stream().forEach(route -> {
-            System.out.println(route.getEndpoint());
-            for (String key : map.keySet()) {
-                if(route.getEndpoint().toString().contains(key)){
-                    map.put(key,true);
-                }
-            }
-
-        });
-
-        //发送所有设备数据
-        for (String key : map.keySet()) {
-            if(map.get(key)){
-                try {
-                template.sendBody(StrUtil.format("direct:{}",key),JSONUtil.toJsonStr(bo));
-                }catch (Exception e){}
-            }
-
-        }
-
-
-
-    }
-
-//    @PostConstruct
-//    public void init(){
-//        //监听配置mqtt所有数据
-//        String xmlstring = "<routes xmlns=\"http://camel.apache.org/schema/spring\"> <route id=\"insertAlarm\">\n" +
-//                "        <from uri=\"direct:insertAlarm\"></from>\n" +
-//                "        <to uri=\"bean:ruleProcess?method=insertAlarm\"></to>\n" +
-//                "    </route></routes>";
-//
-//    }
-}

+ 0 - 26
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/utils/GroovyDataUtils.java

@@ -1,26 +0,0 @@
-package org.dromara.utils;
-
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.domain.TblSensorRecord;
-import org.dromara.domain.bo.TblSensorRecordBo;
-import org.dromara.domain.vo.TblSensorRecordVo;
-import org.dromara.service.ITblSensorRecordService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-@Component
-public class GroovyDataUtils {
-
-    @Autowired
-    private ITblSensorRecordService sensorRecordService;
-
-//    public List<TblSensorRecordVo> getLastWeekDatas(String sensorid){
-//
-//        TblSensorRecordBo bo = new TblSensorRecordBo();
-//
-//        sensorRecordService.queryPageList(bo, new PageQuery());
-//    }
-
-}

+ 0 - 43
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/utils/GroovyUtils.java

@@ -1,43 +0,0 @@
-package org.dromara.utils;
-
-import groovy.lang.Binding;
-import groovy.lang.GroovyShell;
-import org.apache.camel.Exchange;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Map;
-
-public class GroovyUtils {
-    private final static Logger logger = LoggerFactory.getLogger(GroovyUtils.class);
-    public  static Object runjs(String js, Map<String,Object> datap){
-        try{
-            if(js==null) return "";
-
-            Binding binding = new Binding();
-            if(datap.size()>0){
-                datap.keySet().forEach(key->{
-                    binding.setProperty(key, datap.get(key));
-                });
-            }
-            GroovyShell groovyShell = new GroovyShell(binding);
-            String script = js;
-
-            Object result = groovyShell.evaluate(script);
-            return result;
-        }catch (Exception e){
-            System.out.println(e.getMessage());
-            GroovyUtils.logger.error(e.getMessage());
-        }
-        return "";
-    }
-
-    public static void setExchange(Exchange exchange){
-
-    }
-
-//    public static void main(String[] args) {
-//
-//       System.out.println(JSUtils.runjs("function run(){ var c=[{  status:2,log:'{\"aa\":[\"21\",\"22\"]}'},{  status:1,log:'{\"aa\":[\"11\",\"12\"]}'}];return JSON.parse(c.filter(function(i){return i.status==2})[0].log).aa[0]  }"));
-//    }
-}

+ 0 - 28
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/utils/MqttServerUtils.java

@@ -1,28 +0,0 @@
-
-package org.dromara.utils;
-
-import cn.hutool.log.Log;
-import lombok.extern.slf4j.Slf4j;
-import net.dreamlu.iot.mqtt.codec.MqttPublishMessage;
-import net.dreamlu.iot.mqtt.codec.MqttQoS;
-import net.dreamlu.iot.mqtt.core.server.MqttServer;
-import net.dreamlu.iot.mqtt.core.server.auth.IMqttServerAuthHandler;
-import net.dreamlu.iot.mqtt.core.server.dispatcher.IMqttMessageDispatcher;
-import net.dreamlu.iot.mqtt.core.server.event.IMqttConnectStatusListener;
-import net.dreamlu.iot.mqtt.core.server.event.IMqttMessageListener;
-import net.dreamlu.iot.mqtt.core.server.model.Message;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-import org.tio.core.ChannelContext;
-import org.tio.core.ssl.ClientAuth;
-
-import java.nio.charset.StandardCharsets;
-
-@Component
-@Slf4j
-public class MqttServerUtils {
-
-   MqttServerUtils() {
-       System.out.println("--------------------------------");
-   }
-}

+ 0 - 8
ruoyi-modules/ruoyi-iot/src/main/java/org/dromara/utils/ScriptCache.java

@@ -1,8 +0,0 @@
-package org.dromara.utils;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ScriptCache {
-    public static Map<String,String> scriptCache = new HashMap<>();
-}

+ 0 - 14
ruoyi-modules/ruoyi-iot/src/main/resources/Test.groovy

@@ -1,14 +0,0 @@
-import cn.hutool.core.date.DateUtil
-import cn.hutool.json.JSONUtil
-import org.dromara.domain.bo.TblSensorRecordBo
-def runjs(){
-    TblSensorRecordBo bo = new TblSensorRecordBo();
-    bo.setSensorId(JSONUtil.parse(exchange.in.body)["sensorId"]);
-    bo.getParams().put("startTime", (int)(DateUtil.current()/1000 - 60*60*24*2))
-    bo.getParams().put("endTime",(int)(DateUtil.current()/1000))
-    def records =  sensorRecordService.queryList(bo);
-    //过去两天没数据就报断网故障
-    System.out.println(records.size())
-}
-runjs()
-

+ 0 - 7
ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblBreakdownMapper.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.mapper.TblBreakdownMapper">
-
-</mapper>

+ 0 - 7
ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblSensorMapper.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.mapper.TblSensorMapper">
-
-</mapper>

+ 0 - 116
ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblSensorRecordMapper.xml

@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.mapper.TblSensorRecordMapper">
-
-    <select id="createTable" parameterType="java.util.Map">
-        create table if not exists tbl_sensor_record_${datetime} (
-                                                                     id bigint not null auto_increment,
-                                                                     sensor_id bigint not null,
-                                                                     point_name varchar(255) not null,
-            point_value varchar(255) not null,
-            create_dept varchar(64) default null,
-            create_by varchar(64) default null,
-            create_time datetime default null,
-            update_by varchar(64) default null,
-            update_time datetime default null,
-            PRIMARY KEY (id)
-            )
-    </select>
-
-    <insert id="insertData" parameterType="org.dromara.domain.TblSensorRecord" useGeneratedKeys="true" keyProperty="id">
-        insert into tbl_sensor_record_${params.datetime} (id,sensor_id,
-                                                          point_name,
-                                                          point_value,create_time) values (#{id}, #{sensorId},
-                                                                               #{pointName},
-                                                                               #{pointValue},
-                                                                                           #{createTime}
-
-                                                                              )
-    </insert>
-
-    <select id="selectData" parameterType="org.dromara.domain.TblSensorRecord"
-            resultType="org.dromara.domain.vo.TblSensorRecordVo">
-       select * from (
-        <foreach collection="params.datetimes" item="datav" separator=" UNION ALL ">
-            select id,sensor_id,
-            point_name,
-            point_value,
-            create_dept,
-            create_by,
-            create_time,
-            update_by,
-            update_time from tbl_sensor_record_${datav} where 1=1
-            <if test="id!=null">
-                and id=#{id}
-            </if>
-            <if test="sensorId!=null">
-                and sensor_id=#{sensorId}
-            </if>
-            <if test="pointName!=null">
-                and point_name=#{pointName}
-            </if>
-            <if test="pointValue!=null">
-                and point_value=#{pointValue}
-            </if>
-            <if test="createDept!=null">
-                and create_dept=#{createDept}
-            </if>
-            <if test="createBy!=null">
-                and create_by=#{createBy}
-            </if>
-            <if test="params!=null and params.startTime!=null and params.endTime!=null">
-              <![CDATA[
-               and create_time > #{params.startTime} and create_time < #{params.endTime}
-              ]]>
-            </if>
-
-        </foreach>
-        ) AS t ORDER BY
-        create_time DESC;
-    </select>
-
-    <select id="selectDataPage"
-            resultType="org.dromara.domain.vo.TblSensorRecordVo">
-        select * from (
-        <foreach collection="t.params.datetimes" item="datav" separator=" UNION ALL ">
-            select id,sensor_id,
-            point_name,
-            point_value,
-            create_dept,
-            create_by,
-            create_time,
-            update_by,
-            update_time from tbl_sensor_record_${datav} where 1=1
-            <if test="t.id!=null">
-                and id=#{t.id}
-            </if>
-            <if test="t.sensorId!=null">
-                and sensor_id=#{t.sensorId}
-            </if>
-            <if test="t.pointName!=null">
-                and point_name=#{t.pointName}
-            </if>
-            <if test="t.pointValue!=null">
-                and point_value=#{t.pointValue}
-            </if>
-            <if test="t.createDept!=null">
-                and create_dept=#{t.createDept}
-            </if>
-            <if test="t.createBy!=null">
-                and create_by=#{t.createBy}
-            </if>
-            <if test="t.params!=null and t.params.startTime!=null and t.params.endTime!=null">
-                <![CDATA[
-               and create_time > #{t.params.startTime} and create_time < #{t.params.endTime}
-              ]]>
-            </if>
-
-        </foreach>
-        ) AS t ORDER BY
-        create_time DESC
-    </select>
-
-
-</mapper>

+ 0 - 7
ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblWarnMapper.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.mapper.TblWarnMapper">
-
-</mapper>

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java

@@ -275,7 +275,7 @@ public class SysUserController extends BaseController {
      */
     @SaCheckPermission("system:user:list")
     @GetMapping("/list/area/{areaId}")
-    public R<List<SysUserVo>> listByAept(@PathVariable @NotNull Long areaId) {
+    public R<List<SysUserVo>> listByArea(@PathVariable @NotNull Long areaId) {
         return R.ok(userService.selectUserListByArea(areaId));
     }
 

+ 2 - 6
ruoyi-modules/ruoyi-iot/pom.xml → ruoyi-modules/ruoyi-traffic/pom.xml

@@ -9,10 +9,10 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>ruoyi-iot</artifactId>
+    <artifactId>ruoyi-traffic</artifactId>
 
     <description>
-        物联
+        交通感知
     </description>
 
     <properties>
@@ -99,10 +99,6 @@
             <artifactId>ruoyi-common-encrypt</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>org.dromara</groupId>
-            <artifactId>ruoyi-common-tenant</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>org.dromara</groupId>

+ 105 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/controller/SenAlgorithmConfigController.java

@@ -0,0 +1,105 @@
+package org.dromara.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.domain.vo.SenAlgorithmConfigVo;
+import org.dromara.domain.bo.SenAlgorithmConfigBo;
+import org.dromara.service.ISenAlgorithmConfigService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 算法仓配置
+ *
+ * @author luogang
+ * @date 2024-09-12
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/manage/algorithmConfig")
+public class SenAlgorithmConfigController extends BaseController {
+
+    private final ISenAlgorithmConfigService senAlgorithmConfigService;
+
+    /**
+     * 查询算法仓配置列表
+     */
+    @SaCheckPermission("manage:algorithmConfig:list")
+    @GetMapping("/list")
+    public TableDataInfo<SenAlgorithmConfigVo> list(SenAlgorithmConfigBo bo, PageQuery pageQuery) {
+        return senAlgorithmConfigService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出算法仓配置列表
+     */
+    @SaCheckPermission("manage:algorithmConfig:export")
+    @Log(title = "算法仓配置", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(SenAlgorithmConfigBo bo, HttpServletResponse response) {
+        List<SenAlgorithmConfigVo> list = senAlgorithmConfigService.queryList(bo);
+        ExcelUtil.exportExcel(list, "算法仓配置", SenAlgorithmConfigVo.class, response);
+    }
+
+    /**
+     * 获取算法仓配置详细信息
+     *
+     * @param id 主键
+     */
+    @SaCheckPermission("manage:algorithmConfig:query")
+    @GetMapping("/{id}")
+    public R<SenAlgorithmConfigVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long id) {
+        return R.ok(senAlgorithmConfigService.queryById(id));
+    }
+
+    /**
+     * 新增算法仓配置
+     */
+    @SaCheckPermission("manage:algorithmConfig:add")
+    @Log(title = "算法仓配置", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody SenAlgorithmConfigBo bo) {
+        return toAjax(senAlgorithmConfigService.insertByBo(bo));
+    }
+
+    /**
+     * 修改算法仓配置
+     */
+    @SaCheckPermission("manage:algorithmConfig:edit")
+    @Log(title = "算法仓配置", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody SenAlgorithmConfigBo bo) {
+        return toAjax(senAlgorithmConfigService.updateByBo(bo));
+    }
+
+    /**
+     * 删除算法仓配置
+     *
+     * @param ids 主键串
+     */
+    @SaCheckPermission("manage:algorithmConfig:remove")
+    @Log(title = "算法仓配置", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] ids) {
+        return toAjax(senAlgorithmConfigService.deleteWithValidByIds(List.of(ids), true));
+    }
+}

+ 105 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/controller/SenClusterNodesController.java

@@ -0,0 +1,105 @@
+package org.dromara.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.domain.vo.SenClusterNodesVo;
+import org.dromara.domain.bo.SenClusterNodesBo;
+import org.dromara.service.ISenClusterNodesService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 集群配置
+ *
+ * @author luogang
+ * @date 2024-09-13
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/manage/clusterNodes")
+public class SenClusterNodesController extends BaseController {
+
+    private final ISenClusterNodesService senClusterNodesService;
+
+    /**
+     * 查询集群配置列表
+     */
+    @SaCheckPermission("manage:clusterNodes:list")
+    @GetMapping("/list")
+    public TableDataInfo<SenClusterNodesVo> list(SenClusterNodesBo bo, PageQuery pageQuery) {
+        return senClusterNodesService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出集群配置列表
+     */
+    @SaCheckPermission("manage:clusterNodes:export")
+    @Log(title = "集群配置", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(SenClusterNodesBo bo, HttpServletResponse response) {
+        List<SenClusterNodesVo> list = senClusterNodesService.queryList(bo);
+        ExcelUtil.exportExcel(list, "集群配置", SenClusterNodesVo.class, response);
+    }
+
+    /**
+     * 获取集群配置详细信息
+     *
+     * @param nodeId 主键
+     */
+    @SaCheckPermission("manage:clusterNodes:query")
+    @GetMapping("/{nodeId}")
+    public R<SenClusterNodesVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long nodeId) {
+        return R.ok(senClusterNodesService.queryById(nodeId));
+    }
+
+    /**
+     * 新增集群配置
+     */
+    @SaCheckPermission("manage:clusterNodes:add")
+    @Log(title = "集群配置", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody SenClusterNodesBo bo) {
+        return toAjax(senClusterNodesService.insertByBo(bo));
+    }
+
+    /**
+     * 修改集群配置
+     */
+    @SaCheckPermission("manage:clusterNodes:edit")
+    @Log(title = "集群配置", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody SenClusterNodesBo bo) {
+        return toAjax(senClusterNodesService.updateByBo(bo));
+    }
+
+    /**
+     * 删除集群配置
+     *
+     * @param nodeIds 主键串
+     */
+    @SaCheckPermission("manage:clusterNodes:remove")
+    @Log(title = "集群配置", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{nodeIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] nodeIds) {
+        return toAjax(senClusterNodesService.deleteWithValidByIds(List.of(nodeIds), true));
+    }
+}

+ 105 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/controller/SenMonitorPointController.java

@@ -0,0 +1,105 @@
+package org.dromara.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.domain.vo.SenMonitorPointVo;
+import org.dromara.domain.bo.SenMonitorPointBo;
+import org.dromara.service.ISenMonitorPointService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 监控点位信息
+ *
+ * @author luogang
+ * @date 2024-09-14
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/manage/monitorPoint")
+public class SenMonitorPointController extends BaseController {
+
+    private final ISenMonitorPointService senMonitorPointService;
+
+    /**
+     * 查询监控点位信息列表
+     */
+    @SaCheckPermission("manage:monitorPoint:list")
+    @GetMapping("/list")
+    public TableDataInfo<SenMonitorPointVo> list(SenMonitorPointBo bo, PageQuery pageQuery) {
+        return senMonitorPointService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出监控点位信息列表
+     */
+    @SaCheckPermission("manage:monitorPoint:export")
+    @Log(title = "监控点位信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(SenMonitorPointBo bo, HttpServletResponse response) {
+        List<SenMonitorPointVo> list = senMonitorPointService.queryList(bo);
+        ExcelUtil.exportExcel(list, "监控点位信息", SenMonitorPointVo.class, response);
+    }
+
+    /**
+     * 获取监控点位信息详细信息
+     *
+     * @param pointId 主键
+     */
+    @SaCheckPermission("manage:monitorPoint:query")
+    @GetMapping("/{pointId}")
+    public R<SenMonitorPointVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long pointId) {
+        return R.ok(senMonitorPointService.queryById(pointId));
+    }
+
+    /**
+     * 新增监控点位信息
+     */
+    @SaCheckPermission("manage:monitorPoint:add")
+    @Log(title = "监控点位信息", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody SenMonitorPointBo bo) {
+        return toAjax(senMonitorPointService.insertByBo(bo));
+    }
+
+    /**
+     * 修改监控点位信息
+     */
+    @SaCheckPermission("manage:monitorPoint:edit")
+    @Log(title = "监控点位信息", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody SenMonitorPointBo bo) {
+        return toAjax(senMonitorPointService.updateByBo(bo));
+    }
+
+    /**
+     * 删除监控点位信息
+     *
+     * @param pointIds 主键串
+     */
+    @SaCheckPermission("manage:monitorPoint:remove")
+    @Log(title = "监控点位信息", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{pointIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] pointIds) {
+        return toAjax(senMonitorPointService.deleteWithValidByIds(List.of(pointIds), true));
+    }
+}

+ 66 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/SenAlgorithmConfig.java

@@ -0,0 +1,66 @@
+package org.dromara.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 算法仓配置对象 sen_algorithm_config
+ *
+ * @author luogang
+ * @date 2024-09-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sen_algorithm_config")
+public class SenAlgorithmConfig extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id",type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 算法名称
+     */
+    private String algorithmName;
+
+    /**
+     * 算法类别(字典algorithm_category)
+     */
+    private Integer algorithmCategory;
+
+    /**
+     * 状态(0-启用1-禁用)
+     */
+    private String status;
+
+    /**
+     * 告警周期
+     */
+    private String alertCycle;
+
+    /**
+     * 算法提供商
+     */
+    private String algorithmProvider;
+
+    /**
+     * 算法硬件类型
+     */
+    private String hardwareType;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+
+}

+ 36 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/SenAlgorithmNodes.java

@@ -0,0 +1,36 @@
+package org.dromara.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+
+import java.io.Serial;
+
+/**
+ * 节点-算法关联对象 sen_algorithm_nodes
+ *
+ * @author luogang
+ * @date 2024-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sen_algorithm_nodes")
+public class SenAlgorithmNodes extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 节点id
+     */
+    private Long nodeId;
+    /**
+     * 算法id
+     */
+    @TableId
+    private Long algorithmId;
+
+
+}

+ 74 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/SenClusterNodes.java

@@ -0,0 +1,74 @@
+package org.dromara.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 集群配置对象 sen_cluster_nodes
+ *
+ * @author luogang
+ * @date 2024-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sen_cluster_nodes")
+public class SenClusterNodes extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 节点id
+     */
+    @TableId(value = "node_id",type = IdType.AUTO)
+    private Long nodeId;
+    /**
+     * 节点名称
+     */
+    private String nodeName;
+    /**
+     * 硬件类型
+     */
+    private String hardwareType;
+
+    /**
+     * 算法提供商
+     */
+    private String algorithmProvider;
+
+    /**
+     * 节点算力
+     */
+    private Long computePower;
+
+    /**
+     * 节点IP
+     */
+    private String nodeIp;
+
+    /**
+     * 算力路数
+     */
+    private Long computePaths;
+
+    /**
+     * 运行中任务数
+     */
+    private Long runningTasks;
+
+    /**
+     * 运行状态(0-运行中 1-已停止2-运行报错)
+     */
+    private String runningStatus;
+
+    /**
+     * 描述
+     */
+    private String nodeDesc;
+
+
+}

+ 68 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/SenMonitorPoint.java

@@ -0,0 +1,68 @@
+package org.dromara.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+
+import java.io.Serial;
+
+/**
+ * 监控点位信息对象 sen_monitor_point
+ *
+ * @author luogang
+ * @date 2024-09-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sen_monitor_point")
+public class SenMonitorPoint extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "point_id")
+    private Long pointId;
+
+    /**
+     * 行政区域
+     */
+    private String areaId;
+
+    /**
+     * 监控点名称
+     */
+    private String pointName;
+
+    /**
+     * 场景类型(1-高速公路 2-城市道路)
+     */
+    private String sceneType;
+
+    /**
+     * 经度
+     */
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    private String latitude;
+
+    /**
+     * 方向
+     */
+    private String direction;
+
+    /**
+     * 路口编号
+     */
+    private String intersectionId;
+
+
+}

+ 72 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/bo/SenAlgorithmConfigBo.java

@@ -0,0 +1,72 @@
+package org.dromara.domain.bo;
+
+import org.dromara.domain.SenAlgorithmConfig;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 算法仓配置业务对象 sen_algorithm_config
+ *
+ * @author luogang
+ * @date 2024-09-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SenAlgorithmConfig.class, reverseConvertGenerate = false)
+public class SenAlgorithmConfigBo extends BaseEntity {
+
+    /**
+     * 主键
+     */
+    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 算法名称
+     */
+    @NotBlank(message = "算法名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String algorithmName;
+    /**
+     * 算法类别(字典algorithm_category)
+     */
+    @NotNull(message = "算法类别(字典algorithm_category)不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Integer algorithmCategory;
+
+    /**
+     * 关联节点
+     */
+    private Long nodeId;
+
+    /**
+     * 状态(0-启用1-禁用)
+     */
+    @NotBlank(message = "状态(0-启用1-禁用)不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String status;
+
+    /**
+     * 告警周期
+     */
+    private String alertCycle;
+
+    /**
+     * 算法提供商
+     */
+    private String algorithmProvider;
+
+    /**
+     * 算法硬件类型
+     */
+    private String hardwareType;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+
+}

+ 78 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/bo/SenClusterNodesBo.java

@@ -0,0 +1,78 @@
+package org.dromara.domain.bo;
+
+import org.dromara.domain.SenClusterNodes;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 集群配置业务对象 sen_cluster_nodes
+ *
+ * @author luogang
+ * @date 2024-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SenClusterNodes.class, reverseConvertGenerate = false)
+public class SenClusterNodesBo extends BaseEntity {
+
+    /**
+     * 节点id
+     */
+    @NotNull(message = "节点id不能为空", groups = { EditGroup.class })
+    private Long nodeId;
+
+    /**
+     * 节点名称
+     */
+    @NotBlank(message = "节点名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String nodeName;
+    /**
+     * 硬件类型
+     */
+    @NotBlank(message = "硬件类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String hardwareType;
+
+    /**
+     * 算法提供商
+     */
+    private String algorithmProvider;
+
+    /**
+     * 节点算力
+     */
+    private Long computePower;
+
+    /**
+     * 节点IP
+     */
+    @NotBlank(message = "节点IP不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String nodeIp;
+
+    /**
+     * 算力路数
+     */
+    private Long computePaths;
+
+    /**
+     * 运行中任务数
+     */
+    private Long runningTasks;
+
+    /**
+     * 运行状态(0-运行中 1-已停止2-运行报错)
+     */
+    @NotBlank(message = "运行状态(0-运行中 1-已停止2-运行报错)不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String runningStatus;
+
+    /**
+     * 描述
+     */
+    private String nodeDesc;
+
+
+}

+ 73 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/bo/SenMonitorPointBo.java

@@ -0,0 +1,73 @@
+package org.dromara.domain.bo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+import org.dromara.domain.SenMonitorPoint;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 监控点位信息业务对象 sen_monitor_point
+ *
+ * @author luogang
+ * @date 2024-09-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SenMonitorPoint.class, reverseConvertGenerate = false)
+public class SenMonitorPointBo extends BaseEntity {
+    /**
+     * 主键
+     */
+    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
+    private Long pointId;
+    /**
+     * 监控点名称
+     */
+    @NotBlank(message = "监控点名称不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String pointName;
+
+    /**
+     * 行政区域
+     */
+    @NotBlank(message = "行政区域不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String areaId;
+    /**
+     * 行政区域名称
+     */
+    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "areaId")
+    private String areaName;
+    /**
+     * 场景类型(1-高速公路 2-城市道路)
+     */
+    @NotBlank(message = "场景类型(1-高速公路 2-城市道路)不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String sceneType;
+
+    /**
+     * 经度
+     */
+    @NotBlank(message = "经度不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @NotBlank(message = "纬度不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String latitude;
+
+    /**
+     * 方向
+     */
+    private String direction;
+
+    /**
+     * 路口编号
+     */
+    private String intersectionId;
+}

+ 86 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/vo/SenAlgorithmConfigVo.java

@@ -0,0 +1,86 @@
+package org.dromara.domain.vo;
+
+import org.dromara.domain.SenAlgorithmConfig;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 算法仓配置视图对象 sen_algorithm_config
+ *
+ * @author luogang
+ * @date 2024-09-12
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SenAlgorithmConfig.class)
+public class SenAlgorithmConfigVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ExcelProperty(value = "主键")
+    private Long id;
+
+    /**
+     * 算法名称
+     */
+    @ExcelProperty(value = "算法名称")
+    private String algorithmName;
+
+    /**
+     * 算法类别(字典algorithm_category)
+     */
+    @ExcelProperty(value = "算法类别", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "algorithm_category")
+    private Integer algorithmCategory;
+    /**
+     * 关联节点id
+     */
+    @ExcelProperty(value = "关联节点id")
+    private String nodeId;
+    /**
+     * 状态(0-启用1-禁用)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "common_status")
+    private String status;
+
+    /**
+     * 告警周期
+     */
+    @ExcelProperty(value = "告警周期")
+    private String alertCycle;
+
+    /**
+     * 算法提供商
+     */
+    @ExcelProperty(value = "算法提供商")
+    private String algorithmProvider;
+
+    /**
+     * 算法硬件类型
+     */
+    @ExcelProperty(value = "算法硬件类型")
+    private String hardwareType;
+
+    /**
+     * 描述
+     */
+    @ExcelProperty(value = "描述")
+    private String description;
+
+
+}

+ 91 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/vo/SenClusterNodesVo.java

@@ -0,0 +1,91 @@
+package org.dromara.domain.vo;
+
+import org.dromara.domain.SenClusterNodes;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * 集群配置视图对象 sen_cluster_nodes
+ *
+ * @author luogang
+ * @date 2024-09-13
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SenClusterNodes.class)
+public class SenClusterNodesVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 节点id
+     */
+    @ExcelProperty(value = "节点id")
+    private Long nodeId;
+
+    /**
+     * 节点名称
+     */
+    @ExcelProperty(value = "节点名称")
+    private String nodeName;
+
+    /**
+     * 硬件类型
+     */
+    @ExcelProperty(value = "硬件类型")
+    private String hardwareType;
+
+    /**
+     * 算法提供商
+     */
+    @ExcelProperty(value = "算法提供商")
+    private String algorithmProvider;
+
+    /**
+     * 节点算力
+     */
+    @ExcelProperty(value = "节点算力")
+    private Long computePower;
+
+    /**
+     * 节点IP
+     */
+    @ExcelProperty(value = "节点IP")
+    private String nodeIp;
+
+    /**
+     * 算力路数
+     */
+    @ExcelProperty(value = "算力路数")
+    private Long computePaths;
+
+    /**
+     * 运行中任务数
+     */
+    @ExcelProperty(value = "运行中任务数")
+    private Long runningTasks;
+
+    /**
+     * 运行状态(0-运行中 1-已停止2-运行报错)
+     */
+    @ExcelProperty(value = "运行状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "running_status")
+    private String runningStatus;
+
+    /**
+     * 描述
+     */
+    @ExcelProperty(value = "描述")
+    private String nodeDesc;
+
+
+}

+ 82 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/domain/vo/SenMonitorPointVo.java

@@ -0,0 +1,82 @@
+package org.dromara.domain.vo;
+
+import jakarta.validation.constraints.NotBlank;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+import org.dromara.domain.SenMonitorPoint;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 监控点位信息视图对象 sen_monitor_point
+ *
+ * @author luogang
+ * @date 2024-09-14
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SenMonitorPoint.class)
+public class SenMonitorPointVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 监控点名称
+     */
+    @ExcelProperty(value = "监控点名称")
+    private String pointName;
+
+//    /**
+//     * 行政区域
+//     */
+//    @ExcelProperty(value = "行政区域")
+//    private String areaId;
+
+    @ExcelProperty(value = "行政区域")
+    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "areaId")
+    private String areaName;
+    /**
+     * 场景类型(1-高速公路 2-城市道路)
+     */
+    @ExcelProperty(value = "场景类型", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "scene_type")
+    private String sceneType;
+
+    /**
+     * 经度
+     */
+    @ExcelProperty(value = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ExcelProperty(value = "纬度")
+    private String latitude;
+
+    /**
+     * 方向
+     */
+    @ExcelProperty(value = "方向")
+    private String direction;
+
+    /**
+     * 路口编号
+     */
+    @ExcelProperty(value = "路口编号")
+    private String intersectionId;
+
+
+}

+ 21 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/mapper/SenAlgorithmConfigMapper.java

@@ -0,0 +1,21 @@
+package org.dromara.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import org.dromara.domain.SenAlgorithmConfig;
+import org.dromara.domain.vo.SenAlgorithmConfigVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 算法仓配置Mapper接口
+ *
+ * @author luogang
+ * @date 2024-09-12
+ */
+public interface SenAlgorithmConfigMapper extends BaseMapperPlus<SenAlgorithmConfig,SenAlgorithmConfigVo> {
+
+    Page<SenAlgorithmConfigVo> selectVoPageWrapper(Page<SenAlgorithmConfigVo>  page, @Param("ew") Wrapper<SenAlgorithmConfig> queryWrapper);
+
+    SenAlgorithmConfigVo selectVoById(@Param("id") Long id);
+}

+ 14 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/mapper/SenAlgorithmNodesMapper.java

@@ -0,0 +1,14 @@
+package org.dromara.mapper;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.domain.SenAlgorithmNodes;
+
+/**
+ * 节点-算法关联配置Mapper接口
+ *
+ * @author luogang
+ * @date 2024-09-12
+ */
+public interface SenAlgorithmNodesMapper extends BaseMapperPlus<SenAlgorithmNodes, SenAlgorithmNodes> {
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/mapper/SenClusterNodesMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.mapper;
+
+import org.dromara.domain.SenClusterNodes;
+import org.dromara.domain.vo.SenClusterNodesVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 集群配置Mapper接口
+ *
+ * @author luogang
+ * @date 2024-09-13
+ */
+public interface SenClusterNodesMapper extends BaseMapperPlus<SenClusterNodes, SenClusterNodesVo> {
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/mapper/SenMonitorPointMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.mapper;
+
+import org.dromara.domain.SenMonitorPoint;
+import org.dromara.domain.vo.SenMonitorPointVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 监控点位信息Mapper接口
+ *
+ * @author luogang
+ * @date 2024-09-14
+ */
+public interface SenMonitorPointMapper extends BaseMapperPlus<SenMonitorPoint, SenMonitorPointVo> {
+
+}

+ 68 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/ISenAlgorithmConfigService.java

@@ -0,0 +1,68 @@
+package org.dromara.service;
+
+import org.dromara.domain.vo.SenAlgorithmConfigVo;
+import org.dromara.domain.bo.SenAlgorithmConfigBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 算法仓配置Service接口
+ *
+ * @author luogang
+ * @date 2024-09-12
+ */
+public interface ISenAlgorithmConfigService {
+
+    /**
+     * 查询算法仓配置
+     *
+     * @param id 主键
+     * @return 算法仓配置
+     */
+    SenAlgorithmConfigVo queryById(Long id);
+
+    /**
+     * 分页查询算法仓配置列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 算法仓配置分页列表
+     */
+    TableDataInfo<SenAlgorithmConfigVo> queryPageList(SenAlgorithmConfigBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的算法仓配置列表
+     *
+     * @param bo 查询条件
+     * @return 算法仓配置列表
+     */
+    List<SenAlgorithmConfigVo> queryList(SenAlgorithmConfigBo bo);
+
+    /**
+     * 新增算法仓配置
+     *
+     * @param bo 算法仓配置
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(SenAlgorithmConfigBo bo);
+
+    /**
+     * 修改算法仓配置
+     *
+     * @param bo 算法仓配置
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(SenAlgorithmConfigBo bo);
+
+    /**
+     * 校验并批量删除算法仓配置信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 68 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/ISenClusterNodesService.java

@@ -0,0 +1,68 @@
+package org.dromara.service;
+
+import org.dromara.domain.vo.SenClusterNodesVo;
+import org.dromara.domain.bo.SenClusterNodesBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 集群配置Service接口
+ *
+ * @author luogang
+ * @date 2024-09-13
+ */
+public interface ISenClusterNodesService {
+
+    /**
+     * 查询集群配置
+     *
+     * @param nodeId 主键
+     * @return 集群配置
+     */
+    SenClusterNodesVo queryById(Long nodeId);
+
+    /**
+     * 分页查询集群配置列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 集群配置分页列表
+     */
+    TableDataInfo<SenClusterNodesVo> queryPageList(SenClusterNodesBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的集群配置列表
+     *
+     * @param bo 查询条件
+     * @return 集群配置列表
+     */
+    List<SenClusterNodesVo> queryList(SenClusterNodesBo bo);
+
+    /**
+     * 新增集群配置
+     *
+     * @param bo 集群配置
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(SenClusterNodesBo bo);
+
+    /**
+     * 修改集群配置
+     *
+     * @param bo 集群配置
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(SenClusterNodesBo bo);
+
+    /**
+     * 校验并批量删除集群配置信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 68 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/ISenMonitorPointService.java

@@ -0,0 +1,68 @@
+package org.dromara.service;
+
+import org.dromara.domain.vo.SenMonitorPointVo;
+import org.dromara.domain.bo.SenMonitorPointBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 监控点位信息Service接口
+ *
+ * @author luogang
+ * @date 2024-09-14
+ */
+public interface ISenMonitorPointService {
+
+    /**
+     * 查询监控点位信息
+     *
+     * @param pointId 主键
+     * @return 监控点位信息
+     */
+    SenMonitorPointVo queryById(Long pointId);
+
+    /**
+     * 分页查询监控点位信息列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 监控点位信息分页列表
+     */
+    TableDataInfo<SenMonitorPointVo> queryPageList(SenMonitorPointBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的监控点位信息列表
+     *
+     * @param bo 查询条件
+     * @return 监控点位信息列表
+     */
+    List<SenMonitorPointVo> queryList(SenMonitorPointBo bo);
+
+    /**
+     * 新增监控点位信息
+     *
+     * @param bo 监控点位信息
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(SenMonitorPointBo bo);
+
+    /**
+     * 修改监控点位信息
+     *
+     * @param bo 监控点位信息
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(SenMonitorPointBo bo);
+
+    /**
+     * 校验并批量删除监控点位信息信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 148 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/impl/SenAlgorithmConfigServiceImpl.java

@@ -0,0 +1,148 @@
+package org.dromara.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.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.dromara.domain.SenAlgorithmNodes;
+import org.dromara.mapper.SenAlgorithmNodesMapper;
+import org.springframework.stereotype.Service;
+import org.dromara.domain.bo.SenAlgorithmConfigBo;
+import org.dromara.domain.vo.SenAlgorithmConfigVo;
+import org.dromara.domain.SenAlgorithmConfig;
+import org.dromara.mapper.SenAlgorithmConfigMapper;
+import org.dromara.service.ISenAlgorithmConfigService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 算法仓配置Service业务层处理
+ *
+ * @author luogang
+ * @date 2024-09-12
+ */
+@RequiredArgsConstructor
+@Service
+public class SenAlgorithmConfigServiceImpl implements ISenAlgorithmConfigService {
+
+    private final SenAlgorithmConfigMapper baseMapper;
+    private final SenAlgorithmNodesMapper algorithmNodesMapper;
+
+    /**
+     * 查询算法仓配置
+     *
+     * @param id 主键
+     * @return 算法仓配置
+     */
+    @Override
+    public SenAlgorithmConfigVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 分页查询算法仓配置列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 算法仓配置分页列表
+     */
+    @Override
+    public TableDataInfo<SenAlgorithmConfigVo> queryPageList(SenAlgorithmConfigBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<SenAlgorithmConfig> lqw = buildQueryWrapper(bo);
+        Page<SenAlgorithmConfigVo> result = baseMapper.selectVoPageWrapper(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的算法仓配置列表
+     *
+     * @param bo 查询条件
+     * @return 算法仓配置列表
+     */
+    @Override
+    public List<SenAlgorithmConfigVo> queryList(SenAlgorithmConfigBo bo) {
+        LambdaQueryWrapper<SenAlgorithmConfig> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SenAlgorithmConfig> buildQueryWrapper(SenAlgorithmConfigBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<SenAlgorithmConfig> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getAlgorithmName()), SenAlgorithmConfig::getAlgorithmName, bo.getAlgorithmName());
+        lqw.eq(bo.getAlgorithmCategory() != null, SenAlgorithmConfig::getAlgorithmCategory, bo.getAlgorithmCategory());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SenAlgorithmConfig::getStatus, bo.getStatus());
+        return lqw;
+    }
+
+    /**
+     * 新增算法仓配置
+     *
+     * @param bo 算法仓配置
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(SenAlgorithmConfigBo bo) {
+        SenAlgorithmConfig add = MapstructUtils.convert(bo, SenAlgorithmConfig.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+            //插入关联节点
+            SenAlgorithmNodes algorithmNodes =new SenAlgorithmNodes() ;
+            algorithmNodes.setAlgorithmId(bo.getId());
+            algorithmNodes.setNodeId(bo.getNodeId());
+            algorithmNodesMapper.insert(algorithmNodes);
+        }
+        return flag;
+    }
+
+    /**
+     * 修改算法仓配置
+     *
+     * @param bo 算法仓配置
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(SenAlgorithmConfigBo bo) {
+        SenAlgorithmConfig update = MapstructUtils.convert(bo, SenAlgorithmConfig.class);
+        validEntityBeforeSave(update);
+
+        SenAlgorithmNodes algorithmNodes =new SenAlgorithmNodes() ;
+        algorithmNodes.setAlgorithmId(bo.getId());
+        algorithmNodes.setNodeId(bo.getNodeId());
+         algorithmNodesMapper.deleteById(algorithmNodes.getAlgorithmId());
+        //插入关联节点
+         algorithmNodesMapper.insert(algorithmNodes);
+
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(SenAlgorithmConfig entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除算法仓配置信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        algorithmNodesMapper.deleteByIds(ids);
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 130 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/impl/SenClusterNodesServiceImpl.java

@@ -0,0 +1,130 @@
+package org.dromara.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.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 org.dromara.domain.bo.SenClusterNodesBo;
+import org.dromara.domain.vo.SenClusterNodesVo;
+import org.dromara.domain.SenClusterNodes;
+import org.dromara.mapper.SenClusterNodesMapper;
+import org.dromara.service.ISenClusterNodesService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 集群配置Service业务层处理
+ *
+ * @author luogang
+ * @date 2024-09-13
+ */
+@RequiredArgsConstructor
+@Service
+public class SenClusterNodesServiceImpl implements ISenClusterNodesService {
+
+    private final SenClusterNodesMapper baseMapper;
+
+    /**
+     * 查询集群配置
+     *
+     * @param nodeId 主键
+     * @return 集群配置
+     */
+    @Override
+    public SenClusterNodesVo queryById(Long nodeId){
+        return baseMapper.selectVoById(nodeId);
+    }
+
+    /**
+     * 分页查询集群配置列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 集群配置分页列表
+     */
+    @Override
+    public TableDataInfo<SenClusterNodesVo> queryPageList(SenClusterNodesBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<SenClusterNodes> lqw = buildQueryWrapper(bo);
+        Page<SenClusterNodesVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的集群配置列表
+     *
+     * @param bo 查询条件
+     * @return 集群配置列表
+     */
+    @Override
+    public List<SenClusterNodesVo> queryList(SenClusterNodesBo bo) {
+        LambdaQueryWrapper<SenClusterNodes> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SenClusterNodes> buildQueryWrapper(SenClusterNodesBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<SenClusterNodes> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getAlgorithmProvider()), SenClusterNodes::getAlgorithmProvider, bo.getAlgorithmProvider());
+        lqw.eq(StringUtils.isNotBlank(bo.getRunningStatus()), SenClusterNodes::getRunningStatus, bo.getRunningStatus());
+        return lqw;
+    }
+
+    /**
+     * 新增集群配置
+     *
+     * @param bo 集群配置
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(SenClusterNodesBo bo) {
+        SenClusterNodes add = MapstructUtils.convert(bo, SenClusterNodes.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setNodeId(add.getNodeId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改集群配置
+     *
+     * @param bo 集群配置
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(SenClusterNodesBo bo) {
+        SenClusterNodes update = MapstructUtils.convert(bo, SenClusterNodes.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(SenClusterNodes entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除集群配置信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 130 - 0
ruoyi-modules/ruoyi-traffic/src/main/java/org/dromara/service/impl/SenMonitorPointServiceImpl.java

@@ -0,0 +1,130 @@
+package org.dromara.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.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 org.dromara.domain.bo.SenMonitorPointBo;
+import org.dromara.domain.vo.SenMonitorPointVo;
+import org.dromara.domain.SenMonitorPoint;
+import org.dromara.mapper.SenMonitorPointMapper;
+import org.dromara.service.ISenMonitorPointService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 监控点位信息Service业务层处理
+ *
+ * @author luogang
+ * @date 2024-09-14
+ */
+@RequiredArgsConstructor
+@Service
+public class SenMonitorPointServiceImpl implements ISenMonitorPointService {
+
+    private final SenMonitorPointMapper baseMapper;
+
+    /**
+     * 查询监控点位信息
+     *
+     * @param pointId 主键
+     * @return 监控点位信息
+     */
+    @Override
+    public SenMonitorPointVo queryById(Long pointId){
+        return baseMapper.selectVoById(pointId);
+    }
+
+    /**
+     * 分页查询监控点位信息列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 监控点位信息分页列表
+     */
+    @Override
+    public TableDataInfo<SenMonitorPointVo> queryPageList(SenMonitorPointBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<SenMonitorPoint> lqw = buildQueryWrapper(bo);
+        Page<SenMonitorPointVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的监控点位信息列表
+     *
+     * @param bo 查询条件
+     * @return 监控点位信息列表
+     */
+    @Override
+    public List<SenMonitorPointVo> queryList(SenMonitorPointBo bo) {
+        LambdaQueryWrapper<SenMonitorPoint> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SenMonitorPoint> buildQueryWrapper(SenMonitorPointBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<SenMonitorPoint> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getPointName()), SenMonitorPoint::getPointName, bo.getPointName());
+        lqw.eq(StringUtils.isNotBlank(bo.getSceneType()), SenMonitorPoint::getSceneType, bo.getSceneType());
+        return lqw;
+    }
+
+    /**
+     * 新增监控点位信息
+     *
+     * @param bo 监控点位信息
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(SenMonitorPointBo bo) {
+        SenMonitorPoint add = MapstructUtils.convert(bo, SenMonitorPoint.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setPointId(add.getPointId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改监控点位信息
+     *
+     * @param bo 监控点位信息
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(SenMonitorPointBo bo) {
+        SenMonitorPoint update = MapstructUtils.convert(bo, SenMonitorPoint.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(SenMonitorPoint entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除监控点位信息信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 14 - 0
ruoyi-modules/ruoyi-traffic/src/main/resources/mapper/SenAlgorithmConfigMapper.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.mapper.SenAlgorithmConfigMapper">
+    <select id="selectVoPageWrapper" resultType="org.dromara.domain.vo.SenAlgorithmConfigVo">
+        SELECT sac.*, (SELECT sn.node_id FROM sen_algorithm_nodes sn WHERE sn.algorithm_id = sac.id) AS nodeId
+        FROM sen_algorithm_config sac ${ew.customSqlSegment}
+    </select>
+    <select id="selectVoById" resultType="org.dromara.domain.vo.SenAlgorithmConfigVo">
+        SELECT sac.*, (SELECT sn.node_id FROM sen_algorithm_nodes sn WHERE sn.algorithm_id = sac.id) AS nodeId
+        FROM sen_algorithm_config sac where  id = ${id}
+    </select>
+</mapper>

+ 1 - 1
ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblRulesMapper.xml → ruoyi-modules/ruoyi-traffic/src/main/resources/mapper/SenClusterNodesMapper.xml

@@ -2,6 +2,6 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.mapper.TblRulesMapper">
+<mapper namespace="org.dromara.mapper.SenClusterNodesMapper">
 
 </mapper>

+ 1 - 1
ruoyi-modules/ruoyi-iot/src/main/resources/mapper/TblRulesNodeMapper.xml → ruoyi-modules/ruoyi-traffic/src/main/resources/mapper/SenMonitorPointMapper.xml

@@ -2,6 +2,6 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.mapper.TblRulesNodeMapper">
+<mapper namespace="org.dromara.mapper.SenMonitorPointMapper">
 
 </mapper>

+ 0 - 62
traffic-ui/src/api/demo/demo/index.ts

@@ -1,62 +0,0 @@
-import request from '@/utils/request';
-import { AxiosPromise } from 'axios';
-import { DemoVO, DemoForm, DemoQuery } from '@/api/demo/demo/types';
-
-/**
- * 查询测试单列表
- * @param query
- * @returns {*}
- */
-export const listDemo = (query?: DemoQuery): AxiosPromise<DemoVO[]> => {
-  return request({
-    url: '/demo/demo/list',
-    method: 'get',
-    params: query
-  });
-};
-
-/**
- * 查询测试单详细
- * @param id
- */
-export const getDemo = (id: string | number): AxiosPromise<DemoVO> => {
-  return request({
-    url: '/demo/demo/' + id,
-    method: 'get'
-  });
-};
-
-/**
- * 新增测试单
- * @param data
- */
-export const addDemo = (data: DemoForm) => {
-  return request({
-    url: '/demo/demo',
-    method: 'post',
-    data: data
-  });
-};
-
-/**
- * 修改测试单
- * @param data
- */
-export const updateDemo = (data: DemoForm) => {
-  return request({
-    url: '/demo/demo',
-    method: 'put',
-    data: data
-  });
-};
-
-/**
- * 删除测试单
- * @param id
- */
-export const delDemo = (id: string | number | Array<string | number>) => {
-  return request({
-    url: '/demo/demo/' + id,
-    method: 'delete'
-  });
-};

+ 0 - 90
traffic-ui/src/api/demo/demo/types.ts

@@ -1,90 +0,0 @@
-export interface DemoVO {
-  /**
-   * 主键
-   */
-  id: string | number;
-
-  /**
-   * 部门id
-   */
-  deptId: string | number;
-
-  /**
-   * 用户id
-   */
-  userId: string | number;
-
-  /**
-   * 排序号
-   */
-  orderNum: number;
-
-  /**
-   * key键
-   */
-  testKey: string;
-
-  /**
-   * 值
-   */
-  value: string;
-}
-
-export interface DemoForm extends BaseEntity {
-  /**
-   * 主键
-   */
-  id?: string | number;
-
-  /**
-   * 部门id
-   */
-  deptId?: string | number;
-
-  /**
-   * 用户id
-   */
-  userId?: string | number;
-
-  /**
-   * 排序号
-   */
-  orderNum?: number;
-
-  /**
-   * key键
-   */
-  testKey?: string;
-
-  /**
-   * 值
-   */
-  value?: string;
-}
-
-export interface DemoQuery extends PageQuery {
-  /**
-   * 部门id
-   */
-  deptId?: string | number;
-
-  /**
-   * 用户id
-   */
-  userId?: string | number;
-
-  /**
-   * 排序号
-   */
-  orderNum?: number;
-
-  /**
-   * key键
-   */
-  testKey?: string;
-
-  /**
-   * 值
-   */
-  value?: string;
-}

+ 0 - 62
traffic-ui/src/api/demo/tree/index.ts

@@ -1,62 +0,0 @@
-import request from '@/utils/request';
-import { AxiosPromise } from 'axios';
-import { TreeVO, TreeForm, TreeQuery } from '@/api/demo/tree/types';
-
-/**
- * 查询测试树列表
- * @param query
- * @returns {*}
- */
-export const listTree = (query?: TreeQuery): AxiosPromise<TreeVO[]> => {
-  return request({
-    url: '/demo/tree/list',
-    method: 'get',
-    params: query
-  });
-};
-
-/**
- * 查询测试树详细
- * @param id
- */
-export const getTree = (id: string | number): AxiosPromise<TreeVO> => {
-  return request({
-    url: '/demo/tree/' + id,
-    method: 'get'
-  });
-};
-
-/**
- * 新增测试树
- * @param data
- */
-export const addTree = (data: TreeForm) => {
-  return request({
-    url: '/demo/tree',
-    method: 'post',
-    data: data
-  });
-};
-
-/**
- * 修改测试树
- * @param data
- */
-export const updateTree = (data: TreeForm) => {
-  return request({
-    url: '/demo/tree',
-    method: 'put',
-    data: data
-  });
-};
-
-/**
- * 删除测试树
- * @param id
- */
-export const delTree = (id: string | number | Array<string | number>) => {
-  return request({
-    url: '/demo/tree/' + id,
-    method: 'delete'
-  });
-};

+ 0 - 80
traffic-ui/src/api/demo/tree/types.ts

@@ -1,80 +0,0 @@
-export interface TreeVO {
-  /**
-   * 主键
-   */
-  id: string | number;
-
-  /**
-   * 父id
-   */
-  parentId: string | number;
-
-  /**
-   * 部门id
-   */
-  deptId: string | number;
-
-  /**
-   * 用户id
-   */
-  userId: string | number;
-
-  /**
-   * 值
-   */
-  treeName: string;
-
-  /**
-   * 子对象
-   */
-  children: TreeVO[];
-}
-
-export interface TreeForm extends BaseEntity {
-  /**
-   * 主键
-   */
-  id?: string | number;
-
-  /**
-   * 父id
-   */
-  parentId?: string | number;
-
-  /**
-   * 部门id
-   */
-  deptId?: string | number;
-
-  /**
-   * 用户id
-   */
-  userId?: string | number;
-
-  /**
-   * 值
-   */
-  treeName?: string;
-}
-
-export interface TreeQuery {
-  /**
-   * 父id
-   */
-  parentId?: string | number;
-
-  /**
-   * 部门id
-   */
-  deptId?: string | number;
-
-  /**
-   * 用户id
-   */
-  userId?: string | number;
-
-  /**
-   * 值
-   */
-  treeName?: string;
-}

+ 63 - 0
traffic-ui/src/api/manage/algorithmConfig/index.ts

@@ -0,0 +1,63 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { AlgorithmConfigVO, AlgorithmConfigForm, AlgorithmConfigQuery } from '@/api/manage/algorithmConfig/types';
+
+/**
+ * 查询算法仓配置列表
+ * @param query
+ * @returns {*}
+ */
+
+export const listAlgorithmConfig = (query?: AlgorithmConfigQuery): AxiosPromise<AlgorithmConfigVO[]> => {
+  return request({
+    url: '/manage/algorithmConfig/list',
+    method: 'get',
+    params: query
+  });
+};
+
+/**
+ * 查询算法仓配置详细
+ * @param id
+ */
+export const getAlgorithmConfig = (id: string | number): AxiosPromise<AlgorithmConfigVO> => {
+  return request({
+    url: '/manage/algorithmConfig/' + id,
+    method: 'get'
+  });
+};
+
+/**
+ * 新增算法仓配置
+ * @param data
+ */
+export const addAlgorithmConfig = (data: AlgorithmConfigForm) => {
+  return request({
+    url: '/manage/algorithmConfig',
+    method: 'post',
+    data: data
+  });
+};
+
+/**
+ * 修改算法仓配置
+ * @param data
+ */
+export const updateAlgorithmConfig = (data: AlgorithmConfigForm) => {
+  return request({
+    url: '/manage/algorithmConfig',
+    method: 'put',
+    data: data
+  });
+};
+
+/**
+ * 删除算法仓配置
+ * @param id
+ */
+export const delAlgorithmConfig = (id: string | number | Array<string | number>) => {
+  return request({
+    url: '/manage/algorithmConfig/' + id,
+    method: 'delete'
+  });
+};

+ 119 - 0
traffic-ui/src/api/manage/algorithmConfig/types.ts

@@ -0,0 +1,119 @@
+export interface AlgorithmConfigVO {
+  /**
+   * 主键
+   */
+  id: string | number;
+
+  /**
+   * 算法名称
+   */
+  algorithmName: string;
+
+  /**
+   * 算法类别(字典algorithm_category)
+   */
+  algorithmCategory: number;
+
+    /**
+   * 关联节点
+   */
+  nodeId: string | number;
+
+  /**
+   * 状态(0-启用1-禁用)
+   */
+  status: string;
+
+  /**
+   * 告警周期
+   */
+  alertCycle: string;
+
+  /**
+   * 算法提供商
+   */
+  algorithmProvider: string | number;
+
+  /**
+   * 算法硬件类型
+   */
+  hardwareType: string;
+
+  /**
+   * 描述
+   */
+  description: string;
+
+}
+
+export interface AlgorithmConfigForm extends BaseEntity {
+  /**
+   * 主键
+   */
+  id?: string | number;
+
+  /**
+   * 算法名称
+   */
+  algorithmName?: string;
+
+  /**
+   * 算法类别(字典algorithm_category)
+   */
+  algorithmCategory?: number;
+ /**
+   * 关联节点
+   */
+  nodeId?: number;
+  /**
+   * 状态(0-启用1-禁用)
+   */
+  status?: string;
+
+  /**
+   * 告警周期
+   */
+  alertCycle?: string;
+
+  /**
+   * 算法提供商
+   */
+  algorithmProvider?: string | number;
+
+  /**
+   * 算法硬件类型
+   */
+  hardwareType?: string;
+
+  /**
+   * 描述
+   */
+  description?: string;
+
+}
+
+export interface AlgorithmConfigQuery extends PageQuery {
+
+  /**
+   * 算法名称
+   */
+  algorithmName?: string;
+
+  /**
+   * 算法类别(字典algorithm_category)
+   */
+  algorithmCategory?: number;
+
+  /**
+   * 状态(0-启用1-禁用)
+   */
+  status?: string;
+
+    /**
+     * 日期范围参数
+     */
+    params?: any;
+}
+
+
+

+ 63 - 0
traffic-ui/src/api/manage/clusterNodes/index.ts

@@ -0,0 +1,63 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { ClusterNodesVO, ClusterNodesForm, ClusterNodesQuery } from '@/api/manage/clusterNodes/types';
+
+/**
+ * 查询集群配置列表
+ * @param query
+ * @returns {*}
+ */
+
+export const listClusterNodes = (query?: ClusterNodesQuery): AxiosPromise<ClusterNodesVO[]> => {
+  return request({
+    url: '/manage/clusterNodes/list',
+    method: 'get',
+    params: query
+  });
+};
+
+/**
+ * 查询集群配置详细
+ * @param nodeId
+ */
+export const getClusterNodes = (nodeId: string | number): AxiosPromise<ClusterNodesVO> => {
+  return request({
+    url: '/manage/clusterNodes/' + nodeId,
+    method: 'get'
+  });
+};
+
+/**
+ * 新增集群配置
+ * @param data
+ */
+export const addClusterNodes = (data: ClusterNodesForm) => {
+  return request({
+    url: '/manage/clusterNodes',
+    method: 'post',
+    data: data
+  });
+};
+
+/**
+ * 修改集群配置
+ * @param data
+ */
+export const updateClusterNodes = (data: ClusterNodesForm) => {
+  return request({
+    url: '/manage/clusterNodes',
+    method: 'put',
+    data: data
+  });
+};
+
+/**
+ * 删除集群配置
+ * @param nodeId
+ */
+export const delClusterNodes = (nodeId: string | number | Array<string | number>) => {
+  return request({
+    url: '/manage/clusterNodes/' + nodeId,
+    method: 'delete'
+  });
+};

+ 125 - 0
traffic-ui/src/api/manage/clusterNodes/types.ts

@@ -0,0 +1,125 @@
+export interface ClusterNodesVO {
+  /**
+   * 节点id
+   */
+  nodeId: string | number;
+
+   /**
+   * 节点名称
+   */
+   nodeName: string;
+
+  /**
+   * 硬件类型
+   */
+  hardwareType: string;
+
+  /**
+   * 算法提供商
+   */
+  algorithmProvider: string | number;
+
+  /**
+   * 节点算力
+   */
+  computePower: number;
+
+  /**
+   * 节点IP
+   */
+  nodeIp: string;
+
+  /**
+   * 算力路数
+   */
+  computePaths: number;
+
+  /**
+   * 运行中任务数
+   */
+  runningTasks: number;
+
+  /**
+   * 运行状态(0-运行中 1-已停止2-运行报错)
+   */
+  runningStatus: string;
+
+  /**
+   * 描述
+   */
+  nodeDesc: string;
+
+}
+
+export interface ClusterNodesForm extends BaseEntity {
+  /**
+   * 节点id
+   */
+  nodeId?: string | number;
+  /**
+   * 节点名称
+   */
+  nodeName?: string;
+
+  /**
+   * 硬件类型
+   */
+  hardwareType?: string;
+
+  /**
+   * 算法提供商
+   */
+  algorithmProvider?: string | number;
+
+  /**
+   * 节点算力
+   */
+  computePower?: number;
+
+  /**
+   * 节点IP
+   */
+  nodeIp?: string;
+
+  /**
+   * 算力路数
+   */
+  computePaths?: number;
+
+  /**
+   * 运行中任务数
+   */
+  runningTasks?: number;
+
+  /**
+   * 运行状态(0-运行中 1-已停止2-运行报错)
+   */
+  runningStatus?: string;
+
+  /**
+   * 描述
+   */
+  nodeDesc?: string;
+
+}
+
+export interface ClusterNodesQuery extends PageQuery {
+
+  /**
+   * 算法提供商
+   */
+  algorithmProvider?: string | number;
+
+  /**
+   * 运行状态(0-运行中 1-已停止2-运行报错)
+   */
+  runningStatus?: string;
+
+    /**
+     * 日期范围参数
+     */
+    params?: any;
+}
+
+
+

+ 63 - 0
traffic-ui/src/api/manage/monitorPoint/index.ts

@@ -0,0 +1,63 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { MonitorPointVO, MonitorPointForm, MonitorPointQuery } from '@/api/manage/monitorPoint/types';
+
+/**
+ * 查询监控点位信息列表
+ * @param query
+ * @returns {*}
+ */
+
+export const listMonitorPoint = (query?: MonitorPointQuery): AxiosPromise<MonitorPointVO[]> => {
+  return request({
+    url: '/manage/monitorPoint/list',
+    method: 'get',
+    params: query
+  });
+};
+
+/**
+ * 查询监控点位信息详细
+ * @param pointId
+ */
+export const getMonitorPoint = (pointId: string | number): AxiosPromise<MonitorPointVO> => {
+  return request({
+    url: '/manage/monitorPoint/' + pointId,
+    method: 'get'
+  });
+};
+
+/**
+ * 新增监控点位信息
+ * @param data
+ */
+export const addMonitorPoint = (data: MonitorPointForm) => {
+  return request({
+    url: '/manage/monitorPoint',
+    method: 'post',
+    data: data
+  });
+};
+
+/**
+ * 修改监控点位信息
+ * @param data
+ */
+export const updateMonitorPoint = (data: MonitorPointForm) => {
+  return request({
+    url: '/manage/monitorPoint',
+    method: 'put',
+    data: data
+  });
+};
+
+/**
+ * 删除监控点位信息
+ * @param pointId
+ */
+export const delMonitorPoint = (pointId: string | number | Array<string | number>) => {
+  return request({
+    url: '/manage/monitorPoint/' + pointId,
+    method: 'delete'
+  });
+};

+ 60 - 0
traffic-ui/src/api/manage/monitorPoint/types.ts

@@ -0,0 +1,60 @@
+export interface MonitorPointVO {
+  /**
+   * 监控点名称
+   */
+  pointName: string;
+  /**
+   * 行政区域
+   */
+  areaName: string;
+
+  /**
+   * 场景类型(1-高速公路 2-城市道路)
+   */
+  sceneType: string;
+
+  /**
+   * 经度
+   */
+  longitude: string;
+
+  /**
+   * 纬度
+   */
+  latitude: string;
+
+  /**
+   * 方向
+   */
+  direction: string;
+
+  /**
+   * 路口编号
+   */
+  intersectionId: string | number;
+
+}
+
+export interface MonitorPointForm extends BaseEntity {
+}
+
+export interface MonitorPointQuery extends PageQuery {
+
+  /**
+   * 监控点名称
+   */
+  pointName?: string;
+
+  /**
+   * 场景类型(1-高速公路 2-城市道路)
+   */
+  sceneType?: string;
+
+    /**
+     * 日期范围参数
+     */
+    params?: any;
+}
+
+
+

+ 0 - 17
traffic-ui/src/api/sensor/index.ts

@@ -1,17 +0,0 @@
-import request from '@/utils/request';
-import { AxiosPromise } from 'axios';
-
-
-/**
- * 查询规则列表
- * @param query
- * @returns {*}
- */
-
-export const listSensors = (query): AxiosPromise => {
-  return request({
-    url: '/system/sensor/list',
-    method: 'get',
-    params: query
-  });
-};

部分文件因文件數量過多而無法顯示