Kaynağa Gözat

Merge branch 'V0.0.6-iot' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.0.6-iot

jiawuxian 1 yıl önce
ebeveyn
işleme
2974a67b85
17 değiştirilmiş dosya ile 910 ekleme ve 208 silme
  1. 475 188
      project_data/sql/0.0.6-iot/soc/soc.sql
  2. 4 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmData.java
  3. 4 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/alarm/IotAlarmRuleSourceDeviceDto.java
  4. 8 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmRuleSourceMapper.java
  5. 15 4
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleServiceImpl.java
  6. 7 3
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleSourceServiceImpl.java
  7. 27 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotAlarmRuleSourceTotalVo.java
  8. 4 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotInitAlarmRuleVo.java
  9. 5 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/ProductDeviceTempVo.java
  10. 25 7
      soc-modules/soc-modules-iot/src/main/resources/mapper/IotAlarmRuleSourceMapper.xml
  11. 63 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/enums/AlarmRuleExpressOperateEnum.java
  12. 9 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotAlarmRuleExpressMapper.java
  13. 10 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotAlarmRuleSourceMapper.java
  14. 9 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotAlarmSystemFieldMapper.java
  15. 15 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IotAlarmDataService.java
  16. 210 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmDataServiceImpl.java
  17. 20 6
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java

+ 475 - 188
project_data/sql/0.0.6-iot/soc/soc.sql

@@ -4,55 +4,6 @@ DELIMITER ??
 DROP PROCEDURE IF EXISTS schema_change ??
 CREATE PROCEDURE schema_change () BEGIN
 
-    --  设备表增加字段
---     IF NOT EXISTS(SELECT *
---                   FROM information_schema.columns
---                   WHERE table_schema = DATABASE()
---                     AND table_name = 'sys_device'
---                     AND column_name = 'category_id') THEN
---         ALTER TABLE sys_device
---             ADD COLUMN `category_id` bigint NULL COMMENT '设备分类' AFTER `definition`;
---     END IF;
-
---     IF NOT EXISTS(SELECT *
---                   FROM information_schema.columns
---                   WHERE table_schema = DATABASE()
---                     AND table_name = 'sys_device'
---                     AND column_name = 'host_code') THEN
---         ALTER TABLE sys_device
---             ADD COLUMN `host_code`  varchar(225) NULL COMMENT '主机code' AFTER `category_id`;
---     END IF;
-
---  设备表增加设备分类字段
---     IF NOT EXISTS(SELECT *
---                   FROM information_schema.columns
---                   WHERE table_schema = DATABASE()
---                     AND table_name = 'sys_device'
---                     AND column_name = 'device_code') THEN
---         ALTER TABLE `sys_device` 
--- 			ADD COLUMN `device_code` varchar(64) NULL COMMENT '设备编号' AFTER `org_name`,
--- 			ADD COLUMN `source` int NULL DEFAULT 0 COMMENT '来源,0或null:手动添加,1:主机平台,' AFTER `definition`;
--- 		update sys_device set device_code=UUID() WHERE device_code is null;
--- 		update sys_device set source=0 WHERE source is null;
---     END IF;
---     IF NOT EXISTS(SELECT *
---                   FROM information_schema.columns
---                   WHERE table_schema = DATABASE()
---                     AND table_name = 'sys_device'
---                     AND column_name = 'type') THEN
---         ALTER TABLE sys_device
---             ADD COLUMN `type`  varchar(25) NULL COMMENT '设备型号' AFTER `host_code`;
---     END IF;
-
---     IF NOT EXISTS(SELECT *
---                   FROM information_schema.columns
---                   WHERE table_schema = DATABASE()
---                     AND table_name = 'sys_device'
---                     AND column_name = 'ip') THEN
---         ALTER TABLE sys_device
---             ADD COLUMN `ip`  varchar(225) NULL COMMENT '设备ip' AFTER `type`;
---     END IF;
-
     IF NOT EXISTS(SELECT *
                   FROM information_schema.columns
                   WHERE table_schema = DATABASE()
@@ -62,16 +13,6 @@ CREATE PROCEDURE schema_change () BEGIN
             ADD COLUMN `org_path`  varchar(225) NULL COMMENT '机构path' AFTER `org_name`;
     END IF;
 
-
-
---     IF NOT EXISTS(SELECT *
---                   FROM information_schema.columns
---                   WHERE table_schema = DATABASE()
---                     AND table_name = 'sys_device'
---                     AND column_name = 'channel_code') THEN
---         ALTER TABLE sys_device
---             ADD COLUMN `channel_code`  varchar(225) NULL COMMENT '通道号' AFTER `host_code`;
---     END IF;
 	IF EXISTS(SELECT *
                   FROM information_schema.columns
                   WHERE table_schema = DATABASE()
@@ -123,47 +64,214 @@ update iot_alarm_subsystem_log set `status`=2 WHERE status is null;
 UPDATE iot_alarm_subsystem set status_change_time =status_update_time WHERE status_change_time is null;
 UPDATE iot_alarm_subsystem_log set status_change_time =status_update_time WHERE status_change_time is null;
 
+drop table if exists iot_device;
+CREATE TABLE `iot_device` (
+          `id` bigint NOT NULL,
+          `org_id` bigint DEFAULT NULL COMMENT '所属机构',
+          `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构名称',
+          `org_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构path',
+          `equipment_code` varchar(64) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备唯一标识',
+          `equipment_name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备名称',
+          `category_id` bigint DEFAULT NULL COMMENT '设备分类',
+          `camera_code` varchar(64) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '摄像机标识',
+          `camera_user_name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '摄像机登录用户名',
+          `camera_password` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '摄像机登录密码',
+          `net_address` varchar(20) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT 'ip地址',
+          `producer` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '厂商',
+          `device_type` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备型号',
+          `equipment_addr` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备的地址',
+          `device_id` bigint DEFAULT NULL COMMENT '资产设备id',
+          `deleted` int DEFAULT NULL COMMENT '0:未删除,1:删除',
+          `source` int DEFAULT NULL COMMENT '来源,0:资产设备,1:iot推送',
+          `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+          `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+          `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+          `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+          `net_status` int DEFAULT NULL COMMENT '网络状态:0:未知,1:在线,2:离线,3:异常',
+          PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
-drop table if exists mediator_video_days_check;
-CREATE TABLE `mediator_video_days_check` (
+drop table if exists iot_dvr_channel;
+CREATE TABLE `iot_dvr_channel` (
+       `id` bigint NOT NULL,
+       `org_id` bigint DEFAULT NULL COMMENT '所属机构',
+       `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构名称',
+       `org_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构path',
+       `host_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '监控主机(硬盘录像机)的编码',
+       `channel_code` int DEFAULT NULL COMMENT '通道编号',
+       `channel_name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '通道名称',
+       `channel_addr` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '通道地址',
+       `device_id` bigint DEFAULT NULL COMMENT '资产设备id',
+       `deleted` int DEFAULT NULL COMMENT '0:未删除,1:删除',
+       `source` int DEFAULT NULL COMMENT '来源,0:资产设备,1:iot推送',
+       `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+       `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+       `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+       `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+       PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+
+drop table if exists iot_alarm_defence_area;
+CREATE TABLE `iot_alarm_defence_area` (
+      `id` bigint NOT NULL,
+      `org_id` bigint DEFAULT NULL COMMENT '机构id',
+      `org_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
+      `org_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构path',
+      `organization_guid` varchar(225) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构guid',
+      `alarm_host_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警主机唯一标识',
+      `sub_system_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '子系统编号',
+      `defence_area_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '防区名称',
+      `sensor_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '传感器类型',
+      `category_id` bigint DEFAULT NULL COMMENT '设备分类',
+      `sensor_type_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '专感器类型名称',
+      `defence_area_index` int DEFAULT NULL COMMENT '防区序号(在子系统的编号)',
+      `state` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'alarm:报警,bypass:旁路,normal:正常,activity:活动,unKnown:未知',
+      `state_text` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '状态描述',
+      `state_update_time` datetime DEFAULT NULL COMMENT '状态变更时间',
+      `deleted` int DEFAULT NULL COMMENT '是否删除',
+      `create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
+      `update_time` datetime(6) DEFAULT NULL COMMENT '更新时间',
+      `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+      `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人',
+      PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='报警防区';
+
+drop table if exists iot_alarm_defence_area_data;
+CREATE TABLE `iot_alarm_defence_area_data` (
+       `id` bigint NOT NULL,
+       `organization_guid` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构guid',
+       `org_id` bigint DEFAULT NULL,
+       `org_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+       `org_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+       `alarm_host_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警主机唯一标识',
+       `defence_area_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警主机子系统唯一标识',
+       `defence_area_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '传感器名称',
+       `defence_area_index` int DEFAULT NULL COMMENT '输入标识',
+       `defence_area_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'alarm:报警,bypass:旁路,normal:正常,activity:活动,unKnown:未知',
+       `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+       `device_id` bigint DEFAULT NULL COMMENT '设备id',
+       `sensor_data` bigint DEFAULT NULL COMMENT '设备id',
+       `create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
+       PRIMARY KEY (`id`) USING BTREE,
+       KEY `index_deviceId` (`device_id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='防区传感器报警信息,日志';
+
+drop table if exists iot_alarm_defence_area_alarm_data;
+CREATE TABLE `iot_alarm_defence_area_alarm_data` (
      `id` bigint NOT NULL,
-     `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
-     `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
-     `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
+     `org_id` bigint DEFAULT NULL,
+     `org_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+     `org_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+     `defence_area_id` bigint DEFAULT NULL COMMENT '设备id',
+     `alarm_host_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警主机唯一标识',
+     `sub_system_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警主机子系统唯一标识',
+     `defence_area_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '防区名称',
+     `defence_area_index` int DEFAULT NULL COMMENT '输入标识',
+     `defence_area_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'alarm:报警,bypass:旁路,normal:正常,activity:活动,unKnown:未知',
      `update_time` datetime DEFAULT NULL COMMENT '修改时间',
-     `org_id` bigint DEFAULT '0' COMMENT '机构',
-     `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
-     `org_path` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
-     `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道序号',
-     `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道的名称',
-     `check_date` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '计划存储天数起止日期',
-     `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机唯一标识',
-     `lose_date` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '计划存储天数起止日期',
-     `plan_days` int DEFAULT '0' COMMENT '计划存储总天数',
-     `real_days` int DEFAULT '0' COMMENT '计划日期内实际存储总天数',
-     `equipment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
-     `status` int DEFAULT NULL COMMENT '是否报警 0:未报警,1:报警',
-     `earliest_video_time` datetime DEFAULT NULL COMMENT '最早录像日期',
-     PRIMARY KEY (`id`) USING BTREE,
-     KEY `idx_user_orgId` (`org_id`) USING BTREE,
-     KEY `idx_user_orgPath` (`org_path`) USING BTREE,
-     KEY `idx_code` (`equipment_code`(191),`channel_code`(191))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='录像机天数检查';
+     `isdo` int DEFAULT '0' COMMENT '处理状态 0:未处理,1:已处理(误报),2:已处理(无需处理),3:已处理(运维单)',
+     `organization_guid` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构guid',
+     PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='防区传感器报警信息报警表,记录报警';
 
-drop table if exists mediator_video_days_check_log;
-CREATE TABLE `mediator_video_days_check_log` (
+drop table if exists iot_alarm_defence_area_data_log;
+CREATE TABLE `iot_alarm_defence_area_data_log` (
+       `id` bigint NOT NULL,
+       `organization_guid` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构guid',
+       `org_id` bigint DEFAULT NULL,
+       `org_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+       `org_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+       `alarm_host_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警主机唯一标识',
+       `defence_area_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警主机子系统唯一标识',
+       `defence_area_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '传感器名称',
+       `defence_area_index` int DEFAULT NULL COMMENT '输入标识',
+       `defence_area_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'alarm:报警,bypass:旁路,normal:正常,activity:活动,unKnown:未知',
+       `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+       `device_id` bigint DEFAULT NULL COMMENT '设备id',
+       `defence_area_data_id` bigint DEFAULT NULL COMMENT '防区数据表id',
+       PRIMARY KEY (`id`) USING BTREE,
+       KEY `index_deviceId` (`device_id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='防区传感器报警信息,日志';
+
+drop table if exists iot_dvr_disk;
+CREATE TABLE `iot_dvr_disk` (
+        `id` bigint NOT NULL,
+        `org_id` bigint DEFAULT NULL COMMENT '所属机构',
+        `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构名称',
+        `org_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构path',
+        `host_code` varchar(64) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '监控主机唯一标识',
+        `disk_name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '硬盘名称',
+        `disk_index` int DEFAULT NULL COMMENT '硬盘序号',
+        `total` int DEFAULT NULL COMMENT '硬盘总的空间大小(单位:MB)',
+        `available` int DEFAULT NULL COMMENT '硬盘可用空间大小(单位:MB)',
+        `state` int DEFAULT NULL COMMENT '硬盘状态。0:正常,1:异常',
+        `state_update_time` datetime DEFAULT NULL COMMENT '最后一次状态更新时间',
+        `deleted` int DEFAULT NULL COMMENT '0:未删除,1:删除',
+        `source` int DEFAULT NULL COMMENT '来源,0:资产设备,1:iot推送',
+        `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+        `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+        `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+        `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+        PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+
+drop table if exists iot_dvr_disk_log;
+CREATE TABLE `iot_dvr_disk_log` (
+        `id` bigint NOT NULL,
+        `iot_dvr_disk_id` bigint NOT NULL,
+        `org_id` bigint DEFAULT NULL COMMENT '所属机构',
+        `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构名称',
+        `org_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构path',
+        `host_code` varchar(64) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '监控主机唯一标识',
+        `disk_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '硬盘名称',
+        `disk_index` int DEFAULT NULL COMMENT '硬盘序号',
+        `state` int DEFAULT NULL COMMENT '硬盘状态。0:正常,1:异常',
+        `status_update_time` datetime DEFAULT NULL COMMENT '最后一次状态更新时间',
+        `deleted` int DEFAULT NULL COMMENT '0:未删除,1:删除',
+        `source` int DEFAULT NULL COMMENT '来源,0:资产设备,1:iot推送',
+        `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+        `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+        `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+        `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+        PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+
+drop table if exists mediator_video_days_check;
+CREATE TABLE `mediator_video_days_check` (
          `id` bigint NOT NULL,
+         `org_id` bigint DEFAULT '0' COMMENT '机构',
+         `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
+         `org_path` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+         `equipment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '录像机名称',
+         `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机唯一标识',
+         `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道序号',
+         `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道的名称',
+         `check_date` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计划存储天数起止日期',
+         `lose_date` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '未录像日期集合',
+         `plan_days` int DEFAULT '0' COMMENT '计划存储总天数',
+         `real_days` int DEFAULT '0' COMMENT '计划日期内实际存储总天数',
+         `status` int DEFAULT NULL COMMENT '是否报警 0:未报警,1:报警',
+         `earliest_video_time` datetime DEFAULT NULL COMMENT '最早录像日期',
          `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
          `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
-         `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
          `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+         `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
+         PRIMARY KEY (`id`) USING BTREE,
+         KEY `idx_user_orgId` (`org_id`) USING BTREE,
+         KEY `idx_user_orgPath` (`org_path`) USING BTREE,
+         KEY `idx_code` (`equipment_code`(191),`channel_code`(191)) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='录像机天数检查';;
+
+drop table if exists mediator_video_days_check_log;
+CREATE TABLE `mediator_video_days_check_log` (
+         `id` bigint NOT NULL,
          `org_id` bigint DEFAULT '0' COMMENT '机构',
          `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
-         `org_path` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+         `org_path` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+         `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机唯一标识',
          `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道序号',
          `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道的名称',
          `check_date` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '计划存储天数起止日期',
-         `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机唯一标识',
          `lose_date` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '计划存储天数起止日期',
          `plan_days` int DEFAULT '0' COMMENT '计划存储总天数',
          `real_days` int DEFAULT '0' COMMENT '计划日期内实际存储总天数',
@@ -171,62 +279,103 @@ CREATE TABLE `mediator_video_days_check_log` (
          `status` int DEFAULT NULL,
          `earliest_video_time` datetime DEFAULT NULL COMMENT '最早录像日期',
          `equipment_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+         `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+         `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
+         `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
+         `update_time` datetime DEFAULT NULL COMMENT '修改时间',
          PRIMARY KEY (`id`) USING BTREE,
          KEY `idx_user_orgId` (`org_id`) USING BTREE,
          KEY `idx_user_orgPath` (`org_path`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='录像机天数检查日志';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='录像机天数检查日志';;
 
 drop table if exists mediator_video_integrity_check;
 CREATE TABLE `mediator_video_integrity_check` (
-          `id` bigint NOT NULL,
-          `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
-          `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
-          `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
-          `update_time` datetime DEFAULT NULL COMMENT '修改时间',
-          `org_id` bigint DEFAULT '0' COMMENT '机构',
-          `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
-          `org_path` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
-          `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道序号',
-          `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道的名称',
-          `check_span` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '检查日期录像计划规则集合',
-          `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机唯一标识',
-          `lose_span` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '检查日期录像丢失情况集合',
-          `record_date` date DEFAULT NULL COMMENT '录像情况检查日期',
-          `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '设备名称',
-          `status` int DEFAULT NULL COMMENT '0:正常 1:部分丢失 2:全部丢失',
-          `equipment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
-          `plan_days` int DEFAULT NULL COMMENT '录像计划存储多少天',
-          `lose_span_old` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '录像机唯一标识',
-          PRIMARY KEY (`id`) USING BTREE,
-          KEY `idx_user_orgId` (`org_id`) USING BTREE,
-          KEY `idx_user_orgPath` (`org_path`) USING BTREE,
-          KEY `idx_code` (`channel_code`(191),`equipment_code`(191)),
-          KEY `idx_recordDate_orgPath_status` (`record_date`,`org_path`,`status`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='录像机完整性检查表';
-
-
-drop table if exists mediator_video_diagnosis;
-CREATE TABLE `mediator_video_diagnosis` (
-    `id` bigint NOT NULL,
-    `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
-    `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
-    `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
-    `update_time` datetime DEFAULT NULL COMMENT '修改时间',
-    `org_id` bigint DEFAULT '0' COMMENT '机构',
-    `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
-    `org_path` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
-    `alarm_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '报警/恢复时间',
-    `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道序号',
-    `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道的名称',
-    `detail_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '质量当前状态详情',
-    `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机唯一标识',
-    `is_alarm` int DEFAULT NULL COMMENT '报警状态标识',
-    `equipment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
-    PRIMARY KEY (`id`) USING BTREE,
-    KEY `idx_user_orgId` (`org_id`) USING BTREE,
-    KEY `idx_user_orgPath` (`org_path`) USING BTREE,
-    KEY `idx_code` (`channel_code`(191),`equipment_code`(191))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='视频质量诊断结果';
+      `id` bigint NOT NULL,
+      `org_id` bigint DEFAULT '0' COMMENT '机构',
+      `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
+      `org_path` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+      `equipment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '录像机名称',
+      `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机唯一标识',
+      `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道序号',
+      `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道的名称',
+      `check_span` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '检查日期录像计划规则集合',
+      `lose_span` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '检查日期录像丢失情况集合',
+      `lose_duration` int DEFAULT NULL COMMENT '丢失时长,分钟',
+      `record_date` date DEFAULT NULL COMMENT '录像情况检查日期',
+      `status` int DEFAULT NULL COMMENT '0:正常 1:部分丢失 2:全部丢失',
+      `plan_days` int DEFAULT NULL COMMENT '录像计划存储多少天',
+      `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+      `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
+      `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
+      `update_time` datetime NOT NULL COMMENT '修改时间',
+      PRIMARY KEY (`id`) USING BTREE,
+      KEY `idx_user_orgId` (`org_id`) USING BTREE,
+      KEY `idx_user_orgPath` (`org_path`) USING BTREE,
+      KEY `idx_code` (`channel_code`(191),`equipment_code`(191)) USING BTREE,
+      KEY `idx_recordDate_orgPath_status` (`record_date`,`org_path`,`status`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='录像机完整性检查表';
+
+drop table if exists mediator_video_integrity_check_log;
+CREATE TABLE `mediator_video_integrity_check_log` (
+      `id` bigint NOT NULL,
+      `org_id` bigint DEFAULT '0' COMMENT '机构',
+      `org_name` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
+      `org_path` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+      `video_integrity_check_id` bigint DEFAULT NULL COMMENT '录像完整性id',
+      `equipment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '录像机名称',
+      `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机唯一标识',
+      `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道序号',
+      `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道的名称',
+      `check_span` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '检查日期录像计划规则集合',
+      `lose_span` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '检查日期录像丢失情况集合',
+      `lose_duration` int DEFAULT NULL COMMENT '丢失时长,分钟',
+      `record_date` date DEFAULT NULL COMMENT '录像情况检查日期',
+      `status` int DEFAULT NULL COMMENT '0:正常 1:部分丢失 2:全部丢失',
+      `plan_days` int DEFAULT NULL COMMENT '录像计划存储多少天',
+      `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+      `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
+      `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
+      `update_time` datetime NOT NULL COMMENT '修改时间',
+      PRIMARY KEY (`id`) USING BTREE,
+      KEY `idx_user_orgId` (`org_id`) USING BTREE,
+      KEY `idx_user_orgPath` (`org_path`) USING BTREE,
+      KEY `idx_code` (`channel_code`(191),`equipment_code`(191)) USING BTREE,
+      KEY `idx_recordDate_orgPath_status` (`record_date`,`org_path`,`status`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='录像机完整性最后一次检测状态表';
+
+
+drop table if exists mediator_video_diagnosis_record;
+CREATE TABLE `mediator_video_diagnosis_record` (
+       `id` bigint NOT NULL,
+       `org_id` bigint NOT NULL COMMENT '机构id',
+       `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
+       `org_path` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+       `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备id',
+       `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道名称',
+       `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道序号',
+       `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备名称',
+       `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备id',
+       `signal_lost` int NOT NULL DEFAULT '0' COMMENT '信号丢失  0: 正常 | 1:异常',
+       `occlude` int NOT NULL DEFAULT '0' COMMENT '遮挡  0: 正常 | 1:异常',
+       `brightness` int NOT NULL DEFAULT '0' COMMENT '亮度  0: 正常 | 1:异常',
+       `color_cast` int NOT NULL DEFAULT '0' COMMENT '偏色  0: 正常 | 1:异常',
+       `snowflake` int NOT NULL DEFAULT '0' COMMENT '雪花  0: 正常 | 1:异常',
+       `stripe` int NOT NULL DEFAULT '0' COMMENT '条纹  0: 正常 | 1:异常',
+       `contrast` int NOT NULL DEFAULT '0' COMMENT '对比度  0: 正常 | 1:异常',
+       `blurry` int NOT NULL DEFAULT '0' COMMENT '模糊  0: 正常 | 1:异常',
+       `equipment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+       `alarm_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '报警/恢复时间',
+       `is_alarm` int DEFAULT NULL COMMENT '报警状态标识',
+       `detail_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '质量当前状态详情',
+       `img_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '录像质量诊断图片',
+       `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+       `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
+       `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
+       `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+       PRIMARY KEY (`id`),
+       KEY `idx_videodiagnosisrecord_updatetime` (`update_time`),
+       KEY `idx_code` (`equipment_code`(191),`channel_code`(191))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
 drop table if exists mediator_video_diagnosis_log;
 CREATE TABLE `mediator_video_diagnosis_log` (
@@ -237,7 +386,7 @@ CREATE TABLE `mediator_video_diagnosis_log` (
         `update_time` datetime DEFAULT NULL COMMENT '修改时间',
         `org_id` bigint DEFAULT '0' COMMENT '机构',
         `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
-        `org_path` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+        `org_path` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
         `alarm_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '报警/恢复时间',
         `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道序号',
         `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '通道的名称',
@@ -246,43 +395,105 @@ CREATE TABLE `mediator_video_diagnosis_log` (
         `is_alarm` int DEFAULT NULL COMMENT '报警状态标识',
         `video_diagnosis_id` bigint DEFAULT NULL COMMENT '视频质量诊断结果ID',
         `equipment_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+        `img_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '录像质量诊断图片',
         PRIMARY KEY (`id`) USING BTREE,
         KEY `idx_user_orgId` (`org_id`) USING BTREE,
         KEY `idx_user_orgPath` (`org_path`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='视频质量诊断结果';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='视频质量诊断结果';
+
+drop table if exists iot_dvr_hard_disk_detection;
+CREATE TABLE `iot_dvr_hard_disk_detection` (
+       `id` bigint NOT NULL,
+       `org_id` bigint DEFAULT '0' COMMENT '机构',
+       `org_name` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
+       `org_path` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+       `equipment_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机的唯一标识',
+       `equipment_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机的名称',
+       `check_time` datetime DEFAULT NULL COMMENT '检测时间',
+       `check_status` int DEFAULT '0' COMMENT '检测状态;0:检测成功、1:检测失败',
+       `state_update_time` datetime DEFAULT NULL COMMENT '状态更新时间',
+       `detail_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '硬盘当前状态信息',
+       `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+       `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+       `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+       `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+       PRIMARY KEY (`id`) USING BTREE,
+       KEY `idx_user_orgId` (`org_id`) USING BTREE,
+       KEY `idx_user_orgPath` (`org_path`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT=' 录像机硬盘检测表';
+
+drop table if exists iot_dvr_hard_disk_detection_log;
+CREATE TABLE `iot_dvr_hard_disk_detection_log` (
+       `id` bigint NOT NULL,
+       `org_id` bigint DEFAULT '0' COMMENT '机构',
+       `org_name` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
+       `org_path` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
+       `equipment_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机的唯一标识',
+       `equipment_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '录像机的名称',
+       `check_time` datetime DEFAULT NULL COMMENT '检测时间',
+       `check_status` int DEFAULT '0' COMMENT '检测状态;0:检测成功、1:检测失败',
+       `detail_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '硬盘当前状态信息',
+       `status_update_time` datetime DEFAULT NULL COMMENT '状态更新时间',
+       `video_recorder_hard_disk_detection_id` bigint DEFAULT NULL COMMENT '录像机硬盘检测ID',
+       `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+       `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+       `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+       `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+       PRIMARY KEY (`id`) USING BTREE,
+       KEY `idx_user_orgId` (`org_id`) USING BTREE,
+       KEY `idx_user_orgPath` (`org_path`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT=' 录像机硬盘检测日志表';
+
+drop table if exists iot_sensor;
+CREATE TABLE `iot_sensor` (
+          `id` bigint NOT NULL,
+          `org_id` bigint DEFAULT NULL COMMENT '所属机构',
+          `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构名称',
+          `org_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构path',
+          `host_code` varchar(64) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '视频物联网检测主机唯一标识,(此字段暂不可用)',
+          `device_name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备名称',
+          `device_code` varchar(64) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备code',
+          `category_id` bigint DEFAULT NULL COMMENT '传感器类型编码',
+          `device_type` varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备类型编码',
+          `device_id` bigint DEFAULT NULL COMMENT '资产设备id',
+          `infos` varchar(2000) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '属性信息数组',
+          `state` int DEFAULT NULL,
+          `state_update_time` datetime DEFAULT NULL COMMENT '最后一次状态更新时间',
+          `deleted` int DEFAULT NULL COMMENT '0:未删除,1:删除',
+          `source` int DEFAULT NULL COMMENT '来源,0:资产设备,1:iot推送',
+          `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+          `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+          `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+          `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+          PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci  COMMENT=' 录像机硬盘检测日志表';
+
+drop table if exists iot_sensor_log;
+CREATE TABLE `iot_sensor_log` (
+          `id` bigint NOT NULL,
+          `iot_sensor_id` bigint DEFAULT NULL,
+          `org_id` bigint DEFAULT NULL COMMENT '所属机构',
+          `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构名称',
+          `org_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属机构path',
+          `host_code` varchar(64) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '视频物联网检测主机唯一标识',
+          `device_name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备名称',
+          `device_code` varchar(64) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备code',
+          `category_id` bigint DEFAULT NULL COMMENT '传感器类型编码',
+          `device_id` bigint DEFAULT NULL COMMENT '资产设备id',
+          `device_type` varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '设备类型编码',
+          `infos` varchar(2000) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL COMMENT '属性信息数组',
+          `state` int DEFAULT NULL,
+          `state_update_time` datetime DEFAULT NULL COMMENT '最后一次状态更新时间',
+          `source` int DEFAULT NULL COMMENT '来源,0:资产设备,1:iot推送',
+          `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+          `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+          `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+          `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+          PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=gbk;
+
+
 
-drop table if exists mediator_video_diagnosis_record;
-CREATE TABLE `mediator_video_diagnosis_record` (
-           `id` bigint NOT NULL,
-           `org_id` bigint NOT NULL COMMENT '机构id',
-           `org_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '机构名称',
-           `org_path` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '机构',
-           `video_diagnosis_id` bigint DEFAULT NULL COMMENT '视频质量诊断id',
-           `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
-           `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
-           `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
-           `update_time` datetime DEFAULT NULL COMMENT '修改时间',
-           `equipment_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备id',
-           `channel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道名称',
-           `channel_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道序号',
-           `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备名称',
-           `device_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备id',
-           `signal_lost` int NOT NULL DEFAULT '0' COMMENT '信号丢失  0: 正常 | 1:异常',
-           `occlude` int NOT NULL DEFAULT '0' COMMENT '遮挡  0: 正常 | 1:异常',
-           `brightness` int NOT NULL DEFAULT '0' COMMENT '亮度  0: 正常 | 1:异常',
-           `color_cast` int NOT NULL DEFAULT '0' COMMENT '偏色  0: 正常 | 1:异常',
-           `snowflake` int NOT NULL DEFAULT '0' COMMENT '雪花  0: 正常 | 1:异常',
-           `stripe` int NOT NULL DEFAULT '0' COMMENT '条纹  0: 正常 | 1:异常',
-           `contrast` int NOT NULL DEFAULT '0' COMMENT '对比度  0: 正常 | 1:异常',
-           `blurry` int NOT NULL DEFAULT '0' COMMENT '模糊  0: 正常 | 1:异常',
-           `equipment_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
-           `alarm_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '报警/恢复时间',
-           `is_alarm` int DEFAULT NULL COMMENT '报警状态标识',
-           `detail_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '质量当前状态详情',
-           PRIMARY KEY (`id`),
-           KEY `idx_videodiagnosisrecord_updatetime` (`update_time`),
-           KEY `idx_code` (`equipment_code`(191),`channel_code`(191))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
 drop table if exists mediator_north_error;
 CREATE TABLE `mediator_north_error` (
@@ -308,24 +519,100 @@ CREATE TABLE `mediator_north_msg_id` (
 
 drop table if exists mediator_category;
 CREATE TABLE `mediator_category` (
-      `id` bigint NOT NULL AUTO_INCREMENT,
-      `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
-      `parent_id` bigint DEFAULT '0' COMMENT '上级分类',
-      `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
-      `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
-      `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
-      `update_time` datetime DEFAULT NULL COMMENT '修改时间',
-      `code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'code',
-      `deleted` int DEFAULT '0' COMMENT '删除',
-      `level` int DEFAULT NULL COMMENT '层级',
-      `type` bit(1) DEFAULT NULL COMMENT '0:消防,1:安防',
-      `expire_day` int NOT NULL DEFAULT '0' COMMENT '过期天数',
-      PRIMARY KEY (`id`) USING BTREE,
-      KEY `idx_category_parentId` (`parent_id`) USING BTREE
-) ENGINE=InnoDB AUTO_INCREMENT=3713672266842158 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
+     `id` bigint NOT NULL AUTO_INCREMENT,
+     `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+     `parent_id` bigint DEFAULT '0' COMMENT '上级分类',
+     `create_by` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+     `create_time` datetime DEFAULT NULL COMMENT '创建人名称',
+     `update_by` varchar(125) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT '修改人名称',
+     `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+     `code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'code',
+     `deleted` int DEFAULT '0' COMMENT '删除',
+     `level` int DEFAULT NULL COMMENT '层级',
+     `type` bit(1) DEFAULT NULL COMMENT '0:消防,1:安防',
+     PRIMARY KEY (`id`) USING BTREE,
+     KEY `idx_category_parentId` (`parent_id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=3713672266842158 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+
+delete from mediator_category;
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (1, '监控主机', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '14', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (1001, 'UPS', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '22', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (1002, '机柜', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '23', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (1003, '显示器', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '24', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (1004, '配电箱', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '25', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3396885624111104, '指纹验证设备', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '19', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3396885854699520, '人脸验证设备', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '20', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3396886337634304, '网络交换机', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '21', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712194117894144, '边缘巡检类', -1, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '1', 0, 1, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712194381643776, '物联网网关类', -1, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '2', 0, 1, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712194584903680, '物联采集类', -1, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '3', 0, 1, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712194930442240, '烟雾传感器', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '4', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712195941285888, '温湿度采集器', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '5', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712196701503488, '水浸传感器', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '6', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712197092999168, '门磁、窗磁传感器(Lora无线)', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '7', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712197283692544, '卷帘门门磁', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '8', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712197446270976, '地磁传感器', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '9', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712197694111744, '燃气报警器', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '10', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712197882822656, '断电检测传感器、总控、传输模块', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '11', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712198046793728, '蓝牙标签', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '12', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712198166114160, '智能电表', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '53', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712198166118400, '蓝牙接收器', 3712194584903680, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '13', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712198717341696, '传感器接入网关', 3712194381643776, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '2', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712198908510208, 'Lora无线网关', 3712194381643776, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '3', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712199107215360, '视频物联网监测主机', 3712194117894144, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '1', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3712199107215361, 'IOT BOX', 3712194117894144, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '1', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713670431768576, '主机设备类', -1, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '4', 0, 1, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713671711473664, '摄像头', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '18', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713671920926720, '报警主机', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '15', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672073773056, '对讲主机', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '16', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842112, '门禁主机', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '17', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842113, '报警主机传感器', -1, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '5', 0, 1, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842114, '紧急按钮', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '111', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842115, '微波', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '112', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842116, '红外', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '113', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842117, '红外微波双鉴', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '114', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842118, '烟感', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '115', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842119, '门磁', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '116', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842120, '入侵', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '117', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842121, '温度', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '118', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842122, '湿度', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '119', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842123, '水浸', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '120', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842124, '防拆', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '121', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842125, '震动', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '122', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842126, '破碎', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '123', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842127, '位移', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '124', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842128, '其它', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '125', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842129, '巡检主机传感器', -1, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '6', 0, 1, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842130, '卷帘门门磁', 3713672266842129, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '111', 0, 2, NULL);
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842131, '红外对射', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '126', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842132, '智能分析仪', 3713670431768576, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '26', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842133, '联动门', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '127', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842134, '安全门', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '128', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842135, '语音播报器', 3713672266842113, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '129', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842136, '安防设施', -1, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '201', 0, 1, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842137, '狼牙棒', 3713672266842136, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '202', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842138, '电警棍', 3713672266842136, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '203', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842139, '橡胶棍', 3713672266842136, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '205', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842140, '防暴钢叉', 3713672266842136, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '204', 0, 2, b'1');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842141, '消防设施', -1, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '301', 0, 1, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842142, '烟感器', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '302', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842144, '水喷淋', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '303', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842145, '消防广播', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '304', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842146, '广播联动器', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '305', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842147, '声光报警器', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '306', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842148, '禁烟标牌', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '307', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842149, '消防栓箱', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '308', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842150, '1211灭火器', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '309', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842151, '干粉灭火器', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '310', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842152, '悬挂式干粉灭火器', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '311', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842153, '防烟面罩', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '312', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842154, '紧急疏散标牌', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '313', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842155, '紧急消防报警器', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '314', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842156, '火灾报警控制器', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '315', 0, 2, b'0');
+INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_by`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`) VALUES (3713672266842157, '防火门', 3713672266842141, NULL, '2024-02-27 14:45:16', NULL, '2024-02-27 14:45:16', '316', 0, 2, b'0');
+
+
 
-delete  from mediator_category where id=3712199107215361;
-INSERT INTO `mediator_category`(`id`, `name`, `parent_id`, `create_time`, `update_by`, `update_time`, `code`, `deleted`, `level`, `type`, `expire_day`) VALUES (3712199107215361, 'IOT BOX', 3712194117894144, NULL, NULL, NULL,  '1', 0, 2, NULL, 0);
 
 
 

+ 4 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmData.java

@@ -41,6 +41,10 @@ public class IotAlarmData {
     @TableField("device_id")
     private Long deviceId;
 
+    @ApiModelProperty(value = "机构id")
+    @TableField("org_id")
+    private Long orgId;
+
     @ApiModelProperty(value = "报警源类型(设备类型):4:烟雾传感器;5: 温湿度采集器;6:水浸; 7:门磁、窗磁;8:卷帘门门磁;9:地磁;10燃气报警器;50:报警防区")
     @TableField("source_type")
     private Integer sourceType;

+ 4 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/alarm/IotAlarmRuleSourceDeviceDto.java

@@ -19,6 +19,10 @@ public class IotAlarmRuleSourceDeviceDto {
     @ApiModelProperty(value = "设备名称")
     private String deviceName;
 
+    @ApiModelProperty(value = "是否包含机构子集")
+    private boolean includeSub;
+
+
     /**
      * @see ProductTypeEnum
      */

+ 8 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmRuleSourceMapper.java

@@ -6,6 +6,7 @@ import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleSource;
 import com.xunmei.iot.dto.alarm.IotAlarmRuleSourceDeviceDto;
 import com.xunmei.iot.vo.alarm.IotAlarmRuleSourceDetailVo;
 import com.xunmei.iot.vo.alarm.IotAlarmRuleSourceDeviceVo;
+import com.xunmei.iot.vo.alarm.IotAlarmRuleSourceTotalVo;
 import com.xunmei.iot.vo.alarm.ProductTypeDataVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -35,4 +36,11 @@ public interface IotAlarmRuleSourceMapper extends BaseMapper<IotAlarmRuleSource>
      * @return
      */
     Page<IotAlarmRuleSourceDeviceVo> selectDeviceList(Page<IotAlarmRuleSourceDeviceVo> page, @Param("param")IotAlarmRuleSourceDeviceDto param);
+
+    /**
+     * 获取数据
+     * @param ruleId
+     * @return
+     */
+    List<IotAlarmRuleSourceTotalVo> getRuleSourceSize(@Param("ruleId") Long ruleId);
 }

+ 15 - 4
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmRule;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleExpress;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleSource;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmSystemField;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.IDHelper;
@@ -17,15 +18,14 @@ import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.iot.dto.alarm.IotAlarmRuleDto;
 import com.xunmei.iot.dto.alarm.IotAlarmRuleExpressDto;
 import com.xunmei.iot.mapper.IotAlarmRuleMapper;
+import com.xunmei.iot.mapper.IotAlarmRuleSourceMapper;
 import com.xunmei.iot.mapper.IotAlarmSystemFieldMapper;
 import com.xunmei.iot.service.IotAlarmRuleExpressService;
 import com.xunmei.iot.service.IotAlarmRuleService;
-import com.xunmei.iot.vo.alarm.IotAlarmRuleEditVo;
-import com.xunmei.iot.vo.alarm.IotAlarmRuleExpressEditVo;
-import com.xunmei.iot.vo.alarm.IotAlarmSystemFieldVo;
-import com.xunmei.iot.vo.alarm.IotInitAlarmRuleVo;
+import com.xunmei.iot.vo.alarm.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.*;
@@ -40,6 +40,9 @@ public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, Iot
     @Autowired
     private IotAlarmRuleExpressService iotAlarmRuleExpressService;
 
+    @Autowired
+    private IotAlarmRuleSourceMapper iotAlarmRuleSourceMapper;
+
     @Override
     public IotInitAlarmRuleVo getAddInitAlarmRuleData() throws Exception {
 
@@ -116,6 +119,8 @@ public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, Iot
 
         List<IotAlarmRuleExpress> appAlarmRuleExpressList = iotAlarmRuleExpressService.list(new LambdaQueryWrapper<IotAlarmRuleExpress>().eq(IotAlarmRuleExpress::getRuleId, ruleId));
         List<IotAlarmRuleExpressEditVo> appAlarmRuleExpressEditVos = new ArrayList<>();
+        List<IotAlarmRuleSourceTotalVo> iotAlarmRuleSourceTotalVos = iotAlarmRuleSourceMapper.getRuleSourceSize(ruleId);
+        ruleVo.setIotAlarmRuleSourceTotalVos(iotAlarmRuleSourceTotalVos);
         for (IotAlarmRuleExpress express : appAlarmRuleExpressList) {
             IotAlarmRuleExpressEditVo expressNew = new IotAlarmRuleExpressEditVo();
             BeanHelper.copyProperties(expressNew, express);
@@ -164,6 +169,7 @@ public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, Iot
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void saveOrUpdateAlarmRule(IotAlarmRuleDto ruleDto) throws Exception {
         IotAlarmRule rule = new IotAlarmRule();
         BeanHelper.copyProperties(rule, ruleDto);
@@ -209,5 +215,10 @@ public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, Iot
         LambdaQueryWrapper<IotAlarmRuleExpress> ruleExpressWrapper = new LambdaQueryWrapper<>();
         ruleExpressWrapper.eq(IotAlarmRuleExpress::getRuleId,ruleId);
         iotAlarmRuleExpressService.remove(ruleExpressWrapper);
+
+        //删除绑定设备数据
+        LambdaQueryWrapper<IotAlarmRuleSource> iots = new LambdaQueryWrapper<>();
+        iots.eq(IotAlarmRuleSource::getRuleId,ruleId);
+        iotAlarmRuleSourceMapper.delete(iots);
     }
 }

+ 7 - 3
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleSourceServiceImpl.java

@@ -61,7 +61,6 @@ public class IotAlarmRuleSourceServiceImpl extends ServiceImpl<IotAlarmRuleSourc
         List<ProductTypeDataVo> productTypeDataVos = iotAlarmRuleSourceMapper.selectRuleDevice(detailVo.getRuleId());
         //3.处理其他sql获取不了的数据
         for (ProductTypeDataVo pdv : productTypeDataVos) {
-            pdv.setTypeText(ProductTypeEnum.getName(pdv.getType()));
             dealDevice(pdv);
         }
         iotAlarmRuleSourceDetailVo.setTypeDataList(productTypeDataVos);
@@ -97,7 +96,6 @@ public class IotAlarmRuleSourceServiceImpl extends ServiceImpl<IotAlarmRuleSourc
             if (ValueTypeEnum.AllDevice.getText().equals(productType.getValueType()) && productType.getIsAllDeviceEnable()) {
                 ruleSource.setId(IDHelper.id());
                 ruleSource.setOrgId(null);
-
                 ruleSource.setSourceType(productType.getType());
                 ruleSource.setValue(null);
                 ruleSource.setValueType(ValueTypeEnum.AllDevice.getText());
@@ -106,6 +104,12 @@ public class IotAlarmRuleSourceServiceImpl extends ServiceImpl<IotAlarmRuleSourc
             }
             if (productType.getDeviceTempList() != null) {
                 for (ProductDeviceTempVo deviceTempVo : productType.getDeviceTempList()) {
+                    //查询当前设备是否有其他规则绑定,如果有则删除,解绑
+                    QueryWrapper<IotAlarmRuleSource> iqw = new QueryWrapper<>();
+                    iqw.lambda().eq(IotAlarmRuleSource::getOrgId,deviceTempVo.getOrgId())
+                            .eq(IotAlarmRuleSource::getValue,deviceTempVo.getDeviceId())
+                            .eq(IotAlarmRuleSource::getSourceType,productType.getType());
+                    iotAlarmRuleSourceMapper.delete(iqw);
                     ruleSource.setId(IDHelper.id());
                     ruleSource.setOrgId(deviceTempVo.getOrgId());
                     ruleSource.setSourceType(productType.getType());
@@ -171,7 +175,7 @@ public class IotAlarmRuleSourceServiceImpl extends ServiceImpl<IotAlarmRuleSourc
         if(StringUtils.isEmpty(valueType)){
             //未配置设备关联时
             pdv.setIsAllDeviceEnable(false);
-            pdv.setValueType(ValueTypeEnum.AllDevice.getText());
+            pdv.setValueType(ValueTypeEnum.Device.getText());
         }else{
             if(ValueTypeEnum.AllDevice.getText().equals(valueType)){
                 //配置按设备类型关联时

+ 27 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotAlarmRuleSourceTotalVo.java

@@ -0,0 +1,27 @@
+package com.xunmei.iot.vo.alarm;
+
+import lombok.Data;
+
+@Data
+public class IotAlarmRuleSourceTotalVo {
+
+    /**
+     * 告警规则id
+     */
+    private String ruleId;
+
+    /**
+     * 资源类型代码 如: 4, 5
+     */
+    private String sourceType;
+
+    /**
+     * 资源类型,如 水浸,烟感
+     */
+    private String sourceName;
+
+    /**
+     * 资源数量,如 1,23,
+     */
+    private String sourceSize;
+}

+ 4 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotInitAlarmRuleVo.java

@@ -24,4 +24,8 @@ public class IotInitAlarmRuleVo implements Serializable {
      * 告警规则
      */
     private List<Map<String,Object>>  iotAlarmRuleExpressEditVosBySourceType;
+    /**
+     * 每种规则绑定设备详情
+     */
+    private List<IotAlarmRuleSourceTotalVo> iotAlarmRuleSourceTotalVos;
 }

+ 5 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/ProductDeviceTempVo.java

@@ -28,4 +28,9 @@ public class ProductDeviceTempVo {
      * 机构名称
      */
     private String orgName;
+
+    /**
+     * 机构path
+     */
+    private String orgPath;
 }

+ 25 - 7
soc-modules/soc-modules-iot/src/main/resources/mapper/IotAlarmRuleSourceMapper.xml

@@ -17,11 +17,12 @@
     <resultMap id="product_type_data" type="com.xunmei.iot.vo.alarm.ProductTypeDataVo">
         <result property="type" column="type"/>
         <result property="valueType" column="value_type"/>
-        <result property="valueType" column="value_type"/>
+        <result property="typeText" column="type_text"/>
         <collection property="deviceTempList" ofType="com.xunmei.iot.vo.alarm.ProductDeviceTempVo">
             <result property="deviceId" column="device_id"/>
             <result property="orgId" column="org_id"/>
             <result property="orgName" column="org_name"/>
+            <result property="orgPath" column="org_path"/>
         </collection>
     </resultMap>
 
@@ -29,14 +30,17 @@
     <select id="selectRuleDevice" resultMap="product_type_data">
         SELECT
             a.source_type AS type,
+            d.source_type_des as type_text,
             b.value_type,
             b.`value` AS device_id,
             b.org_id,
-            c.`name` AS org_name
+            c.`name` AS org_name,
+            c.path AS org_path
         FROM
-            (	select rule_id,source_type from iot_alarm_rule_express  GROUP BY source_type,rule_id) a
-                LEFT JOIN iot_alarm_rule_source b ON a.rule_id = b.rule_id and a.source_type=b.source_type
+            ( SELECT rule_id, source_type FROM iot_alarm_rule_express GROUP BY source_type, rule_id ) a
+                LEFT JOIN iot_alarm_rule_source b ON a.rule_id = b.rule_id AND a.source_type = b.source_type
                 LEFT JOIN sys_org c ON b.org_id = c.id
+                LEFT JOIN (select source_type,source_type_des from iot_alarm_system_field GROUP BY source_type,source_type_des) d on a.source_type = d.source_type
         where a.rule_id = #{ruleId}
     </select>
     <select id="selectDeviceList" resultType="com.xunmei.iot.vo.alarm.IotAlarmRuleSourceDeviceVo">
@@ -48,13 +52,27 @@
         CONCAT(b.affiliated_area,'-',b.affiliated_bank,'-',b.short_name) as org_name
         FROM
         iot_sensor d
-        LEFT JOIN mediator_category c ON c.id = d.category_id
         LEFT JOIN sys_org b ON d.org_id = b.id
-        where d.org_id = #{param.orgId}
-        and c.code = #{param.type}
+        where 1=1
+        <if test="param.includeSub == false">
+         and   d.org_id = #{param.orgId}
+        </if>
+        <if test="param.includeSub == true">
+        and   b.path like concat((select path from sys_org where id = #{param.orgId} ),'%')
+        </if>
+        and d.device_type = #{param.type}
         <if test="param.deviceName != null and param.deviceName != ''">
             and d.device_name like concat('%',#{param.deviceName},'%')
         </if>
 
     </select>
+    <select id="getRuleSourceSize" resultType="com.xunmei.iot.vo.alarm.IotAlarmRuleSourceTotalVo">
+        SELECT
+            a.source_type,
+            a.source_type_des AS source_name,
+            IFNULL( b.source_size, 0 ) AS source_size
+        FROM
+            ( SELECT source_type, source_type_des FROM iot_alarm_system_field GROUP BY source_type, source_type_des ) a
+                LEFT JOIN ( SELECT rule_id, source_type, count(*) source_size FROM iot_alarm_rule_source WHERE rule_id = #{ruleId} GROUP BY rule_id, source_type ) b ON a.source_type = b.source_type
+    </select>
 </mapper>

+ 63 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/enums/AlarmRuleExpressOperateEnum.java

@@ -0,0 +1,63 @@
+package com.xunmei.mediator.api.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @author jingyuanchao
+ * @date 2022/8/1 12:52
+ */
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+public enum AlarmRuleExpressOperateEnum {
+
+    /**
+     * 操作符,GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等
+     * 于)、EQUALS(等于)、STARTS_WITH(以什么开始)、
+     * ENDS_WITH(以什么结束)、CONTAIN(包含)
+     */
+    GT("GT"),
+    GTE("GTE"),
+    LT("LT"),
+    LTE("LTE"),
+    EQUALS("EQUALS"),
+    STARTS_WITH("STARTS_WITH"),
+    ENDS_WITH("ENDS_WITH"),
+    CONTAIN("CONTAIN");
+
+
+    private String text;
+
+    /**
+     * 根据code获取name
+     */
+    public static String getName(String code) {
+        AlarmRuleExpressOperateEnum e = enumMap.get(code);
+        return e != null ? e.getText() : "";
+    }
+
+    /**
+     * 根据code获取枚举对象
+     */
+    public static AlarmRuleExpressOperateEnum getOperateEnum(String code) {
+        return enumMap.get(code);
+    }
+
+    /**
+     * 所有枚举
+     */
+    private static final Map<String, AlarmRuleExpressOperateEnum> enumMap = new LinkedHashMap<>();
+
+    static {
+        for (AlarmRuleExpressOperateEnum typeEnum : AlarmRuleExpressOperateEnum.values()) {
+            enumMap.put(typeEnum.text, typeEnum);
+        }
+    }
+
+
+}

+ 9 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotAlarmRuleExpressMapper.java

@@ -0,0 +1,9 @@
+package com.xunmei.mediator.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleExpress;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface IotAlarmRuleExpressMapper extends BaseMapper<IotAlarmRuleExpress> {
+}

+ 10 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotAlarmRuleSourceMapper.java

@@ -0,0 +1,10 @@
+package com.xunmei.mediator.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleSource;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface IotAlarmRuleSourceMapper extends BaseMapper<IotAlarmRuleSource> {
+
+}

+ 9 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotAlarmSystemFieldMapper.java

@@ -0,0 +1,9 @@
+package com.xunmei.mediator.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmSystemField;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface IotAlarmSystemFieldMapper extends BaseMapper<IotAlarmSystemField> {
+}

+ 15 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IotAlarmDataService.java

@@ -1,8 +1,11 @@
 package com.xunmei.mediator.api.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.iot.domain.IotSensor;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
 
+import java.util.List;
+
 /**
  * <p>
  * 告警数据表 服务类
@@ -12,5 +15,17 @@ import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
  * @since 2024-01-26
  */
 public interface IotAlarmDataService extends IService<IotAlarmData> {
+    /**
+     * 生成告警数据逻辑梳理
+     * 1.根据传入的设备数据,判断设备类型。
+     * 2.根据设备类型获取设备绑定规则。
+     * 3.根据绑定规则判断适用于星期几,时间段。
+     * 4.根据绑定的规则判断是否需要生成告警数据。
+     * 5.如果结果是告警,判断是否已有告警数据,如果有则不生成告警数据。如果是告警结束,则修改告警数据的结束时间。
+     */
+    void dealSensorData(IotSensor iotSensor)throws Exception;
+
+
+    void dealSensorListData(List<IotSensor> iotSensor)throws Exception;
 
 }

+ 210 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmDataServiceImpl.java

@@ -1,11 +1,34 @@
 package com.xunmei.mediator.api.service.impl;
 
 
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.domain.iot.domain.IotSensor;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleExpress;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleSource;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmSystemField;
+import com.xunmei.common.core.enums.CategoryDataEnum;
+import com.xunmei.common.core.utils.DateUtils;
+import com.xunmei.mediator.api.enums.AlarmRuleExpressOperateEnum;
 import com.xunmei.mediator.api.mapper.IotAlarmDataMapper;
+import com.xunmei.mediator.api.mapper.IotAlarmRuleExpressMapper;
+import com.xunmei.mediator.api.mapper.IotAlarmRuleSourceMapper;
+import com.xunmei.mediator.api.mapper.IotAlarmSystemFieldMapper;
 import com.xunmei.mediator.api.service.IotAlarmDataService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -18,4 +41,191 @@ import org.springframework.stereotype.Service;
 @Service
 public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, IotAlarmData> implements IotAlarmDataService {
 
+    @Autowired
+    private IotAlarmRuleSourceMapper iotAlarmRuleSourceMapper;
+
+    @Autowired
+    private IotAlarmRuleExpressMapper iotAlarmRuleExpressMapper;
+
+    @Autowired
+    private IotAlarmSystemFieldMapper iotAlarmSystemFieldMapper;
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void dealSensorData(IotSensor iotSensor) throws Exception {
+        /**
+         * 生成告警数据逻辑梳理
+         * 1.根据传入的设备数据,判断设备类型。
+         * 2.根据设备类型获取设备绑定规则。
+         * 3.根据绑定规则判断适用于星期几,时间段。
+         * 4.根据绑定的规则判断是否需要生成告警数据。
+         * 5.如果结果是告警,判断是否已有告警数据,如果有则不生成告警数据。如果是告警结束,则修改告警数据的结束时间。
+         */
+        Date now = new Date();
+        //判断是否有绑定规则
+        QueryWrapper<IotAlarmRuleSource> qw = new QueryWrapper<>();
+        qw.lambda().eq(IotAlarmRuleSource::getValue,iotSensor.getDeviceCode())
+                        .eq(IotAlarmRuleSource::getOrgId,iotSensor.getOrgId());
+        IotAlarmRuleSource iotAlarmRuleSource = iotAlarmRuleSourceMapper.selectOne(qw);
+        if(iotAlarmRuleSource == null){
+            //设备未绑定规则,不做处理
+            return;
+        }
+
+
+        //获取该设备对应的规则
+        int weekDay = DateUtil.thisDayOfWeek() - 1;
+        System.out.println(weekDay);
+        QueryWrapper<IotAlarmRuleExpress> ruleExpress = new QueryWrapper<>();
+        ruleExpress.lambda().eq(IotAlarmRuleExpress::getRuleId,iotAlarmRuleSource.getRuleId())
+                .eq(IotAlarmRuleExpress::getSourceType,iotAlarmRuleSource.getSourceType())
+                .eq(IotAlarmRuleExpress::getWeekDay,weekDay);
+        List<IotAlarmRuleExpress> iotAlarmRuleExpresses = iotAlarmRuleExpressMapper.selectList(ruleExpress);
+
+        List<IotAlarmSystemField> fields = iotAlarmSystemFieldMapper.selectList(null);
+        Map<String, IotAlarmSystemField> fieldMap = fields.stream().collect(Collectors.toMap(IotAlarmSystemField::getSysFieldCode, Function.identity()));
+        String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd");
+        boolean isAlarm = false;
+        boolean isExpress = false;
+        List<IotAlarmData> list = new ArrayList<>();
+        for (IotAlarmRuleExpress express : iotAlarmRuleExpresses) {
+            boolean isOk = comparetoTime(express, dateStr, now);
+            if(!isOk){
+                //不在时间段内
+                continue;
+            }
+            isExpress = true;
+            IotAlarmData alarmData = createAlarmData(iotSensor, express, fieldMap);
+            if(alarmData != null){
+                isAlarm = true;
+                list.add(alarmData);
+            }
+        }
+
+        String deviceCode = iotSensor.getDeviceCode();
+        QueryWrapper<IotAlarmData> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(IotAlarmData::getDeviceId,deviceCode)
+                .eq(IotAlarmData::getOrgId,iotSensor.getOrgId())
+                .isNull(IotAlarmData::getEndTime);
+        List<IotAlarmData> alarms = baseMapper.selectList(queryWrapper);
+        if(isAlarm && alarms.size() == 0){
+            //报警中,且表中没有告警数据,则插入数据
+            this.saveBatch(list);
+        }
+        if(isExpress && !isAlarm && alarms.size() != 0){
+            //报警恢复
+            IotAlarmData iotAlarmData = alarms.get(0);
+            iotAlarmData.setEndTime(LocalDateTime.now());
+            this.updateById(iotAlarmData);
+        }
+
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void dealSensorListData(List<IotSensor> iotSensor) throws Exception {
+        if(ObjectUtil.isEmpty(iotSensor)){
+            return;
+        }
+        for (IotSensor sensor : iotSensor) {
+            dealSensorData(sensor);
+        }
+    }
+
+    private IotAlarmData createAlarmData(IotSensor iotSensor,IotAlarmRuleExpress express,Map<String, IotAlarmSystemField> fieldMap){
+        IotAlarmData iotAlarmData = null;
+        String operator = express.getOperator();
+        String value = express.getValue();
+        String infos = iotSensor.getInfos();
+        Map<String, String> dataMap = dealInfos(infos);
+        IotAlarmSystemField field = fieldMap.get(express.getFieldcode());
+        String sensorValue = dataMap.get(field.getName());
+        if(AlarmRuleExpressOperateEnum.EQUALS.getText().equals(operator)){
+            if(sensorValue.equals(value)){
+                //对上了
+                iotAlarmData = builderAlarm(sensorValue,field,express,iotSensor);
+            }
+        }
+
+        if(AlarmRuleExpressOperateEnum.GT.getText().equals(operator)){
+            if(Integer.parseInt(value) > Integer.parseInt(sensorValue)){
+                //对上了
+                iotAlarmData = builderAlarm(sensorValue,field,express,iotSensor);
+            }
+        }
+
+        if(AlarmRuleExpressOperateEnum.GTE.getText().equals(operator)){
+            if(Integer.parseInt(value) >= Integer.parseInt(sensorValue)){
+                //对上了
+                iotAlarmData = builderAlarm(sensorValue,field,express,iotSensor);
+            }
+        }
+
+        if(AlarmRuleExpressOperateEnum.LT.getText().equals(operator)){
+            if(Integer.parseInt(value) < Integer.parseInt(sensorValue)){
+                //对上了
+                iotAlarmData = builderAlarm(sensorValue,field,express,iotSensor);
+            }
+        }
+
+        if(AlarmRuleExpressOperateEnum.LTE.getText().equals(operator)){
+            if(Integer.parseInt(value) <= Integer.parseInt(sensorValue)){
+                //对上了
+                iotAlarmData = builderAlarm(sensorValue,field,express,iotSensor);
+            }
+        }
+
+        if(AlarmRuleExpressOperateEnum.LTE.getText().equals(operator)){
+            if(Integer.parseInt(value) <= Integer.parseInt(sensorValue)){
+                //对上了
+                iotAlarmData = builderAlarm(sensorValue,field,express,iotSensor);
+            }
+        }
+        return iotAlarmData;
+    }
+
+
+    private IotAlarmData builderAlarm(String sensorValue,IotAlarmSystemField field,IotAlarmRuleExpress express,IotSensor iotSensor){
+        IotAlarmData iotAlarmData = new IotAlarmData();
+        iotAlarmData.setAlarmValue(sensorValue + field.getUnit());
+        iotAlarmData.setTime(LocalDateTime.now());
+        iotAlarmData.setRuleId(express.getRuleId());
+        iotAlarmData.setDeviceId(iotSensor.getDeviceId());
+        iotAlarmData.setSourceType(field.getSourceType());
+        iotAlarmData.setSourceTypeDes(field.getSourceTypeDes());
+        iotAlarmData.setFieldCode(field.getSysFieldCode());
+        iotAlarmData.setOperator(express.getOperator());
+        iotAlarmData.setValue(express.getValue());
+        iotAlarmData.setValueText(express.getValueText());
+        iotAlarmData.setContent(iotSensor.getDeviceName() + "触发" + field.getName());
+        return iotAlarmData;
+    }
+
+    private Map<String,String> dealInfos(String infos){
+        JSONArray objects = JSONArray.parseArray(infos);
+        Map<String,String> map = new HashMap<>();
+        for (Object object : objects) {
+            JSONObject data = (JSONObject) object;
+            map.put(data.getString("name"),data.getString("val"));
+        }
+        return map;
+    }
+
+    private boolean comparetoTime(IotAlarmRuleExpress express,String dateStr,Date now){
+        //判断是否在规则时间段内
+        String format = "yyyy-MM-dd HH:mm:ss";
+        String start = dateStr + " " + express.getStartTime();
+        String end = dateStr + " " + express.getEndTime();
+
+        Date startTime = DateUtils.dateTime(format, start);
+        Date endTime = DateUtils.dateTime(format, end);
+
+        boolean isOk = false;
+        if(now.after(startTime) && now.before(endTime)){
+            isOk = true;
+        }
+        return isOk;
+    }
+
+
 }

+ 20 - 6
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java

@@ -13,10 +13,7 @@ import com.xunmei.common.core.enums.CategoryDataEnum;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.mediator.api.mapper.IotSensorMapper;
-import com.xunmei.mediator.api.service.EquipmentSyncService;
-import com.xunmei.mediator.api.service.IotSensorLogService;
-import com.xunmei.mediator.api.service.IotSensorService;
-import com.xunmei.mediator.api.service.NorthErrorService;
+import com.xunmei.mediator.api.service.*;
 import com.xunmei.mediator.util.CheckDataUtil;
 import com.xunmei.mediator.util.RedisCheckRepeatDataUtil;
 import com.xunmei.system.api.RemoteOrgService;
@@ -31,8 +28,11 @@ import com.xunmei.system.api.util.LogUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.support.TransactionSynchronization;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
 
 import javax.annotation.Resource;
 import java.text.ParseException;
@@ -57,8 +57,9 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
     private NorthErrorService northErrorService;
     @Resource
     private IotSensorLogService iotSensorLogService;
-    @Resource
-    private EquipmentSyncService equipmentSyncService;
+
+    @Autowired
+    private IotAlarmDataService iotAlarmDataService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -121,6 +122,19 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
         northErrorService.saveErrorData(errors);
         updateBatchById(sensorList);
         iotSensorLogService.saveBatch(sensorLogList);
+
+        TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
+            @Override
+            public void afterCommit() {
+                try {
+                    iotAlarmDataService.dealSensorListData(sensorList);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        });
+
+
     }
 
     private String dealInfoData(String infoStr) {