Parcourir la source

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

jiawuxian il y a 1 an
Parent
commit
9171645f00
46 fichiers modifiés avec 745 ajouts et 760 suppressions
  1. 3 3
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmCode.java
  2. 14 6
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmData.java
  3. 5 5
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmRule.java
  4. 26 7
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmRuleExpress.java
  5. 8 4
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmRuleSource.java
  6. 9 5
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmSystemField.java
  7. 8 4
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmSystemFieldMapperDevice.java
  8. 0 65
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorTimeTemplate.java
  9. 55 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotAlarmRuleController.java
  10. 16 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotAlarmRuleSourceController.java
  11. 54 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/alarm/IotAlarmRuleDto.java
  12. 68 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/alarm/IotAlarmRuleExpressDto.java
  13. 9 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmRuleExpressMapper.java
  14. 9 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmRuleMapper.java
  15. 10 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmRuleSourceMapper.java
  16. 9 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmSystemFieldMapper.java
  17. 7 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmRuleExpressService.java
  18. 33 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmRuleService.java
  19. 10 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmRuleSourceService.java
  20. 11 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleExpressServiceImpl.java
  21. 168 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleServiceImpl.java
  22. 11 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleSourceServiceImpl.java
  23. 49 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotAlarmRuleEditVo.java
  24. 50 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotAlarmRuleExpressEditVo.java
  25. 54 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotAlarmSystemFieldVo.java
  26. 27 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotInitAlarmRuleVo.java
  27. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotDvrDiskMapper.java
  28. 0 26
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmRuleExpressMapper.java
  29. 0 22
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmRuleMapper.java
  30. 0 21
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmRuleSourceMapper.java
  31. 0 18
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmSystemFieldMapper.java
  32. 0 16
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmSystemFieldMapperDeviceMapper.java
  33. 0 312
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/EquipmentSyncService.java
  34. 0 20
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorAlarmRuleExpressService.java
  35. 0 19
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorAlarmRuleService.java
  36. 0 19
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorAlarmRuleSourceService.java
  37. 0 4
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmSubSystemServiceImpl.java
  38. 20 14
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrDiskServiceImpl.java
  39. 0 27
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/MediatorAlarmRuleExpressServiceImpl.java
  40. 0 25
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/MediatorAlarmRuleServiceImpl.java
  41. 0 27
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/MediatorAlarmRuleSourceServiceImpl.java
  42. 0 37
      soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmRuleExpressMapper.xml
  43. 0 25
      soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmRuleMapper.xml
  44. 0 16
      soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmRuleSourceMapper.xml
  45. 0 8
      soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmSystemFieldMapper.xml
  46. 0 5
      soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmSystemFieldMapperDeviceMapper.xml

+ 3 - 3
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmCode.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmCode.java

@@ -25,9 +25,9 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@TableName("mediator_alarm_code")
-@ApiModel(value = "MediatorAlarmCode对象", description = "")
-public class MediatorAlarmCode implements Serializable {
+@TableName("iot_alarm_code")
+@ApiModel(value = "IotAlarmCode对象", description = "")
+public class IotAlarmCode implements Serializable {
 
     private static final long serialVersionUID = 1L;
 

+ 14 - 6
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmData.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmData.java

@@ -2,9 +2,13 @@ package com.xunmei.common.core.domain.mediator.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableId;
+
 import java.time.LocalDateTime;
+
 import com.baomidou.mybatisplus.annotation.TableField;
+
 import java.io.Serializable;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -20,13 +24,13 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@TableName("mediator_alarm_data")
-@ApiModel(value="MediatorAlarmData对象", description="告警数据表")
-public class MediatorAlarmData {
+@TableName("iot_alarm_data")
+@ApiModel(value = "IotAlarmData", description = "告警数据表")
+public class IotAlarmData {
 
     private static final long serialVersionUID = 1L;
 
-      @TableId("id")
+    @TableId("id")
     private Long id;
 
     @ApiModelProperty(value = "规则id")
@@ -49,11 +53,15 @@ public class MediatorAlarmData {
     @TableField("field_code")
     private String fieldCode;
 
-    @ApiModelProperty(value = "告警时间")
+    @ApiModelProperty(value = "告警开始时间")
     @TableField("time")
     private LocalDateTime time;
 
-    @ApiModelProperty(value = "操作符,GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等	于)、EQUALS(等于)")
+    @ApiModelProperty(value = "告警结束时间")
+    @TableField("end_time")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "操作符,GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等于)、EQUALS(等于)")
     @TableField("operator")
     private String operator;
 

+ 5 - 5
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmRule.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmRule.java

@@ -24,9 +24,9 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@TableName("mediator_alarm_rule")
-@ApiModel(value = "MediatorAlarmRule对象", description = "告警规则表")
-public class MediatorAlarmRule implements Serializable {
+@TableName("iot_alarm_rule")
+@ApiModel(value = "IotAlarmRule对象", description = "告警规则表")
+public class IotAlarmRule implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -45,9 +45,9 @@ public class MediatorAlarmRule implements Serializable {
     @TableField("isdeleted")
     private Integer isdeleted;
 
-    @ApiModelProperty(value = "alarm:告警,inspection:一键巡检")
+    @ApiModelProperty(value = "alarm:告警,inspection:一键巡检;默认值为告警")
     @TableField("type")
-    private String type;
+    private String type = "alarm";
 
     @ApiModelProperty(value = "备注信息")
     @TableField("remark")

+ 26 - 7
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmRuleExpress.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmRuleExpress.java

@@ -2,9 +2,13 @@ package com.xunmei.common.core.domain.mediator.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableId;
+
 import java.time.LocalDateTime;
+
 import com.baomidou.mybatisplus.annotation.TableField;
+
 import java.io.Serializable;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -20,13 +24,13 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@TableName("mediator_alarm_rule_express")
-@ApiModel(value="MediatorAlarmRuleExpress对象", description="告警规则表达式表")
-public class MediatorAlarmRuleExpress implements Serializable {
+@TableName("iot_alarm_rule_express")
+@ApiModel(value = "IotAlarmRuleExpress对象", description = "告警规则表达式表")
+public class IotAlarmRuleExpress implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-      @TableId("id")
+    @TableId("id")
     private Long id;
 
     @ApiModelProperty(value = "规则编码")
@@ -37,7 +41,7 @@ public class MediatorAlarmRuleExpress implements Serializable {
     @TableField("fieldCode")
     private String fieldcode;
 
-    @ApiModelProperty(value = "操作符,GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等	于)、EQUALS(等于)、STARTS_WITH(以什么开始)、	ENDS_WITH(以什么结束)、CONTAIN(包含)")
+    @ApiModelProperty(value = "操作符,GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等于)、EQUALS(等于)、STARTS_WITH(以什么开始)、	ENDS_WITH(以什么结束)、CONTAIN(包含)")
     @TableField("operator")
     private String operator;
 
@@ -53,13 +57,28 @@ public class MediatorAlarmRuleExpress implements Serializable {
     @TableField("source_type")
     private Integer sourceType;
 
-    @ApiModelProperty(value = "时间模板编码")
+    /**
+     * 采用时间段方式,农信版本不使用时间模板,不撤防不加入报警列表
+     */
+/*    @ApiModelProperty(value = "时间模板编码")
     @TableField("time_template_id")
     private Integer timeTemplateId;
 
     @ApiModelProperty(value = "是否使用作息时间模板(0否1是)")
     @TableField("is_use_work_template")
-    private Integer isUseWorkTemplate;
+    private Integer isUseWorkTemplate;*/
+
+    @ApiModelProperty(value = "规则使用周期:1.周一,2.周二,3.周三,4.周四,5.周五,6.周六,7.周日")
+    @TableField("week_day")
+    private Integer weekDay;
+
+    @ApiModelProperty(value = "开始时间")
+    @TableField("start_time")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @TableField("end_time")
+    private String endTime;
 
     @ApiModelProperty(value = "创建人")
     @TableField("create_by")

+ 8 - 4
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmRuleSource.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmRuleSource.java

@@ -2,9 +2,13 @@ package com.xunmei.common.core.domain.mediator.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableId;
+
 import java.time.LocalDateTime;
+
 import com.baomidou.mybatisplus.annotation.TableField;
+
 import java.io.Serializable;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -20,13 +24,13 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@TableName("mediator_alarm_rule_source")
-@ApiModel(value="MediatorAlarmRuleSource对象", description="告警规则与设备源关系表")
-public class MediatorAlarmRuleSource implements Serializable {
+@TableName("iot_alarm_rule_source")
+@ApiModel(value = "IotAlarmRuleSource对象", description = "告警规则与设备源关系表")
+public class IotAlarmRuleSource implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-      @TableId("id")
+    @TableId("id")
     private Long id;
 
     @ApiModelProperty(value = "value_type=Device时有值为设备所属机构Id,否则为空")

+ 9 - 5
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmSystemField.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmSystemField.java

@@ -3,9 +3,13 @@ package com.xunmei.common.core.domain.mediator.domain;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
 import java.time.LocalDateTime;
+
 import com.baomidou.mybatisplus.annotation.TableField;
+
 import java.io.Serializable;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -21,14 +25,14 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@TableName("mediator_alarm_system_field")
-@ApiModel(value="MediatorAlarmSystemField对象", description="系统报警属性字段表")
-public class MediatorAlarmSystemField implements Serializable {
+@TableName("iot_alarm_system_field")
+@ApiModel(value = "IotAlarmSystemField对象", description = "系统报警属性字段表")
+public class IotAlarmSystemField implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "主键")
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     @ApiModelProperty(value = "报警源类型(设备类型):4:烟雾传感器;5: 温湿度采集器;6:水浸; 7:门磁、窗磁;8:卷帘门门磁;9:地磁;10燃气报警器;50:报警防区")
@@ -51,7 +55,7 @@ public class MediatorAlarmSystemField implements Serializable {
     @TableField("specs")
     private String specs;
 
-    @ApiModelProperty(value = "该属性拥有哪些操作符eg:{ 'GT': '大于', 'LT': '小于' }GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等	于)、EQUALS(等于)、STARTS_WITH(以什么开始)、	ENDS_WITH(以什么结束)、CONTAIN(包含)")
+    @ApiModelProperty(value = "该属性拥有哪些操作符eg:{ 'GT': '大于', 'LT': '小于' }GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等于)、EQUALS(等于)、STARTS_WITH(以什么开始)、	ENDS_WITH(以什么结束)、CONTAIN(包含)")
     @TableField("operators")
     private String operators;
 

+ 8 - 4
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmSystemFieldMapperDevice.java → soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/IotAlarmSystemFieldMapperDevice.java

@@ -3,9 +3,13 @@ package com.xunmei.common.core.domain.mediator.domain;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
 import java.time.LocalDateTime;
+
 import com.baomidou.mybatisplus.annotation.TableField;
+
 import java.io.Serializable;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -21,14 +25,14 @@ import lombok.EqualsAndHashCode;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@TableName("mediator_alarm_system_field_mapper_device")
-@ApiModel(value="MediatorAlarmSystemFieldMapperDevice对象", description="系统报警属性字段与设备上报数据属性关系表")
-public class MediatorAlarmSystemFieldMapperDevice implements Serializable {
+@TableName("iot_alarm_system_field_mapper_device")
+@ApiModel(value = "IotAlarmSystemFieldMapperDevice对象", description = "系统报警属性字段与设备上报数据属性关系表")
+public class IotAlarmSystemFieldMapperDevice implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "主键")
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     @ApiModelProperty(value = "系统属性code(报警类型编码,全表唯一)")

+ 0 - 65
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorTimeTemplate.java

@@ -1,65 +0,0 @@
-package com.xunmei.common.core.domain.mediator.domain;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * <p>
- * 时间模板表
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("mediator_time_template")
-@ApiModel(value="MediatorTimeTemplate对象", description="时间模板表")
-public class MediatorTimeTemplate implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-      @TableId("id")
-    private Integer id;
-
-    @ApiModelProperty(value = "名称")
-    @TableField("name")
-    private String name;
-
-    @ApiModelProperty(value = "描述")
-    @TableField("remark")
-    private String remark;
-
-    @ApiModelProperty(value = "时间模板内容,json 格式字符串")
-    @TableField("templateContent")
-    private String templatecontent;
-
-    @ApiModelProperty(value = "是否启用 0是1否")
-    @TableField("enable")
-    private Integer enable;
-
-    @ApiModelProperty(value = "创建人")
-    @TableField("create_by")
-    private String createBy;
-
-    @ApiModelProperty(value = "创建人名称")
-    @TableField("create_time")
-    private LocalDateTime createTime;
-
-    @ApiModelProperty(value = "修改人名称")
-    @TableField("update_by")
-    private String updateBy;
-
-    @ApiModelProperty(value = "修改时间")
-    @TableField("update_time")
-    private LocalDateTime updateTime;
-
-
-}

+ 55 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotAlarmRuleController.java

@@ -0,0 +1,55 @@
+package com.xunmei.iot.controller;
+
+import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.iot.dto.alarm.IotAlarmRuleDto;
+import com.xunmei.iot.service.IotAlarmRuleService;
+import com.xunmei.iot.vo.alarm.IotInitAlarmRuleVo;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/iot_alarm")
+public class IotAlarmRuleController {
+
+    @Autowired
+    private IotAlarmRuleService iotAlarmRuleService;
+
+    @ApiOperation(value = "新增界面初始化数据;")
+    @GetMapping(value = "/getAddAlarmRule")
+    public AjaxResult getAddAlarmRule(){
+        try {
+            IotInitAlarmRuleVo data = iotAlarmRuleService.getAddInitAlarmRuleData();
+            return AjaxResult.success(data);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "修改界面")
+    @GetMapping(value = "/getRuleById/{ruleId}")
+    public AjaxResult getRuleById(@PathVariable Long ruleId){
+        try {
+            IotInitAlarmRuleVo alarmRuleData = iotAlarmRuleService.getAlarmRuleData(ruleId);
+            return AjaxResult.success(alarmRuleData);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "保存或者更新告警规则")
+    @PostMapping(value = "/saveOrUpdateAlarmRule")
+    public AjaxResult saveOrUpdateAlarmRule( @RequestBody IotAlarmRuleDto request) {
+        try {
+            iotAlarmRuleService.saveOrUpdateAlarmRule(request);
+            return AjaxResult.success();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+
+}

+ 16 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotAlarmRuleSourceController.java

@@ -0,0 +1,16 @@
+package com.xunmei.iot.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 高雄
+ * 告警设备规则
+ */
+@RestController
+@RequestMapping("/iot_alarm_device")
+public class IotAlarmRuleSourceController {
+
+
+
+}

+ 54 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/alarm/IotAlarmRuleDto.java

@@ -0,0 +1,54 @@
+package com.xunmei.iot.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 告警规则表
+ * </p>
+ *
+ * @author oygj
+ * @since 2022-07-26
+ */
+@Data
+public class IotAlarmRuleDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    @ApiModelProperty(value = "规则名称")
+    private String name;
+
+    @ApiModelProperty(value = "是否启用")
+    private Integer enabled;
+
+    @ApiModelProperty(value = "是否删除")
+    private Integer isdeleted;
+
+    @ApiModelProperty(value = "alarm:告警,inspection:一键巡检")
+    private String type;
+
+    @ApiModelProperty(value = "备注信息")
+    private String remark;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "修改人名称")
+    private String modifiedName;
+
+    @ApiModelProperty(value = "修改人id")
+    private Long modifiedBy;
+
+    @ApiModelProperty(value = "具体告警规则")
+    private List<IotAlarmRuleExpressDto> iotAlarmRuleExpressDtoList;
+}

+ 68 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/alarm/IotAlarmRuleExpressDto.java

@@ -0,0 +1,68 @@
+package com.xunmei.iot.dto.alarm;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author oygj
+ * @since 2022-07-26
+ */
+@Data
+public class IotAlarmRuleExpressDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    @ApiModelProperty(value = "规则编码")
+    private Long ruleId;
+
+    @ApiModelProperty(value = "属性code")
+    private String fieldcode;
+
+    @ApiModelProperty(value = "操作符,GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等于)、EQUALS(等于)、STARTS_WITH(以什么开始)、	ENDS_WITH(以什么结束)、CONTAIN(包含)")
+    private String operator;
+
+    @ApiModelProperty(value = "对比值")
+    private String value;
+
+    @ApiModelProperty(value = "对比值")
+    private String valueText;
+
+    @ApiModelProperty(value = "报警源类型:4:烟雾传感器;5: 温湿度采集器;6:水浸; 7:门磁、窗磁;8:卷帘门门磁;9:地磁;10燃气报警器;20:报警防区")
+    private Integer sourceType;
+
+    @ApiModelProperty(value = "规则使用周期:1.周一,2.周二,3.周三,4.周四,5.周五,6.周六,7.周日")
+    @TableField("week_day")
+    private Integer weekDay;
+
+    @ApiModelProperty(value = "开始时间")
+    @TableField("start_time")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @TableField("end_time")
+    private String endTime;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "修改人名称")
+    private String modifiedName;
+
+    @ApiModelProperty(value = "修改人id")
+    private Long modifiedBy;
+
+
+}

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

@@ -0,0 +1,9 @@
+package com.xunmei.iot.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> {
+}

+ 9 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmRuleMapper.java

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

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

@@ -0,0 +1,10 @@
+package com.xunmei.iot.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-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmSystemFieldMapper.java

@@ -0,0 +1,9 @@
+package com.xunmei.iot.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> {
+}

+ 7 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmRuleExpressService.java

@@ -0,0 +1,7 @@
+package com.xunmei.iot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleExpress;
+
+public interface IotAlarmRuleExpressService extends IService<IotAlarmRuleExpress> {
+}

+ 33 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmRuleService.java

@@ -0,0 +1,33 @@
+package com.xunmei.iot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRule;
+import com.xunmei.iot.dto.alarm.IotAlarmRuleDto;
+import com.xunmei.iot.vo.alarm.IotInitAlarmRuleVo;
+
+/**
+ * @author 高雄
+ * 告警规则服务类
+ */
+public interface IotAlarmRuleService extends IService<IotAlarmRule> {
+
+    /**
+     * 新增时初始化数据
+     * @return
+     */
+    IotInitAlarmRuleVo getAddInitAlarmRuleData()throws Exception;
+
+    /**
+     * 修改时获取告警规则数据
+     * @return
+     * @throws Exception
+     */
+    IotInitAlarmRuleVo getAlarmRuleData(Long ruleId)throws Exception;
+
+    /**
+     *
+     * @param ruleDto
+     * @throws Exception
+     */
+    void saveOrUpdateAlarmRule(IotAlarmRuleDto ruleDto)throws Exception;
+}

+ 10 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmRuleSourceService.java

@@ -0,0 +1,10 @@
+package com.xunmei.iot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleSource;
+
+/**
+ * @author 高雄
+ */
+public interface IotAlarmRuleSourceService  extends IService<IotAlarmRuleSource> {
+}

+ 11 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleExpressServiceImpl.java

@@ -0,0 +1,11 @@
+package com.xunmei.iot.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleExpress;
+import com.xunmei.iot.mapper.IotAlarmRuleExpressMapper;
+import com.xunmei.iot.service.IotAlarmRuleExpressService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class IotAlarmRuleExpressServiceImpl extends ServiceImpl<IotAlarmRuleExpressMapper, IotAlarmRuleExpress> implements IotAlarmRuleExpressService {
+}

+ 168 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleServiceImpl.java

@@ -0,0 +1,168 @@
+package com.xunmei.iot.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.IotAlarmSystemField;
+import com.xunmei.common.core.util.BeanHelper;
+import com.xunmei.common.core.utils.IDHelper;
+import com.xunmei.common.core.utils.KeyValue;
+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.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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, IotAlarmRule> implements IotAlarmRuleService {
+
+    @Autowired
+    private IotAlarmSystemFieldMapper iotAlarmSystemFieldMapper;
+
+    @Autowired
+    private IotAlarmRuleExpressService iotAlarmRuleExpressService;
+
+    @Override
+    public IotInitAlarmRuleVo getAddInitAlarmRuleData()throws Exception {
+
+        IotInitAlarmRuleVo  ruleVo = new IotInitAlarmRuleVo();
+        LambdaQueryWrapper<IotAlarmSystemField>  lqw = new LambdaQueryWrapper<IotAlarmSystemField>().eq(IotAlarmSystemField::getEnable, 1).orderByDesc(IotAlarmSystemField::getId);
+        List<IotAlarmSystemField> systemFieldList = iotAlarmSystemFieldMapper.selectList(lqw);
+        //
+        List<IotAlarmSystemFieldVo> appAlarmSystemFieldVoList = new ArrayList<>();
+        for(IotAlarmSystemField systemField:systemFieldList){
+            IotAlarmSystemFieldVo appAlarmSystemFieldVo = new IotAlarmSystemFieldVo();
+            BeanHelper.copyProperties(appAlarmSystemFieldVo, systemField);
+            List<KeyValue> specsList = new ArrayList<>();
+            List<KeyValue> operatorsList = new ArrayList<>();
+            if(systemField.getType().equals("ENUM")){
+                String specs = systemField.getSpecs();
+                JSONObject obj = JSON.parseObject(specs);
+                Iterator iterator = obj.entrySet().iterator();
+                while (iterator.hasNext()){
+                    Map.Entry entry = (Map.Entry) iterator.next();
+                    KeyValue keyValue = new KeyValue();
+                    keyValue.setKey(entry.getKey());
+                    keyValue.setValue(entry.getValue());
+                    specsList.add(keyValue);
+                }
+            }
+            String operators = systemField.getOperators();
+            JSONObject obj = JSON.parseObject(operators);
+            Iterator iterator = obj.entrySet().iterator();
+            while (iterator.hasNext()){
+                Map.Entry entry = (Map.Entry) iterator.next();
+                KeyValue keyValue = new KeyValue();
+                keyValue.setKey(entry.getKey());
+                keyValue.setValue(entry.getValue());
+                operatorsList.add(keyValue);
+            }
+            appAlarmSystemFieldVo.setSpecsList(specsList);
+            appAlarmSystemFieldVo.setOperatorsList(operatorsList);
+            appAlarmSystemFieldVoList.add(appAlarmSystemFieldVo);
+        }
+        Map<Integer,List<IotAlarmSystemFieldVo>> appAlarmSystemFieldVoMapList = appAlarmSystemFieldVoList.stream().collect(Collectors.groupingBy(r->r.getSourceType()));
+        List<Map<String,Object>> mapList = new ArrayList<>();
+        for(Integer key:appAlarmSystemFieldVoMapList.keySet()){
+            Map<String,Object> map = new HashMap<>();
+            List<IotAlarmSystemFieldVo> systemFieldVos  = appAlarmSystemFieldVoMapList.get(key);
+            map.put("sourceTypeDes",systemFieldVos.get(0).getSourceTypeDes());
+            map.put("sourceType",systemFieldVos.get(0).getSourceType());
+            List<Map<String,Object>> systemFieldsList = new ArrayList<>();
+            for(IotAlarmSystemFieldVo vo:systemFieldVos){
+                Map<String,Object> mapa = new HashMap<>();
+                mapa.put("sysFieldCode",vo.getSysFieldCode());
+                mapa.put("name",vo.getName());
+                mapa.put("specsList",vo.getSpecsList());
+                mapa.put("operatorsList",vo.getOperatorsList());
+                mapa.put("type",vo.getType());
+                mapa.put("typeDes",vo.getTypeDes());
+                mapa.put("unit",vo.getUnit());
+                systemFieldsList.add(mapa);
+            }
+            map.put("systemFields",systemFieldsList);
+            mapList.add(map);
+        }
+        ruleVo.setSourceTypeList(mapList);
+        return ruleVo;
+    }
+
+    @Override
+    public IotInitAlarmRuleVo getAlarmRuleData(Long ruleId) throws Exception {
+        IotInitAlarmRuleVo ruleVo = getAddInitAlarmRuleData();
+        IotAlarmRule appAlarmRule = this.baseMapper.selectById(ruleId);
+
+        IotAlarmRuleEditVo ruleEditVo = new IotAlarmRuleEditVo();
+        BeanHelper.copyProperties(ruleEditVo, appAlarmRule);
+        ruleVo.setIotAlarmRule(appAlarmRule);
+
+        List<IotAlarmRuleExpress> appAlarmRuleExpressList =iotAlarmRuleExpressService.list(new LambdaQueryWrapper<IotAlarmRuleExpress>().eq(IotAlarmRuleExpress::getRuleId,ruleId));
+        List<IotAlarmRuleExpressEditVo> appAlarmRuleExpressEditVos = new ArrayList<>();
+        for(IotAlarmRuleExpress express:appAlarmRuleExpressList){
+            IotAlarmRuleExpressEditVo expressNew = new IotAlarmRuleExpressEditVo();
+            BeanHelper.copyProperties(expressNew, express);
+            appAlarmRuleExpressEditVos.add(expressNew);
+        }
+        Map<Integer,List<IotAlarmRuleExpressEditVo>> appAlarmSystemFieldVoMapList = appAlarmRuleExpressEditVos.stream().collect(Collectors.groupingBy(r->r.getSourceType()));
+        List<Map<String,Object>> mapList = new ArrayList<>();
+        for(Integer key:appAlarmSystemFieldVoMapList.keySet()){
+            Map<String,Object> map = new HashMap();
+            map.put("sourceType",key);
+            map.put("AppAlarmRuleExpressList",appAlarmSystemFieldVoMapList.get(key));
+            mapList.add(map);
+        }
+        ruleVo.setIotAlarmRuleExpressEditVosBySourceType(mapList);
+        return ruleVo;
+    }
+
+    @Override
+    public void saveOrUpdateAlarmRule(IotAlarmRuleDto ruleDto) throws Exception {
+        IotAlarmRule rule = new IotAlarmRule();
+        BeanHelper.copyProperties(rule, ruleDto);
+        if(rule.getId()==null){//新增
+            rule.setId(IDHelper.id());
+            rule.setCreateTime(LocalDateTime.now());
+            rule.setCreateBy(SecurityUtils.getUsername());
+            rule.setUpdateBy(SecurityUtils.getUsername());
+            rule.setUpdateTime(LocalDateTime.now());
+        }else{//修改
+            rule.setUpdateBy(SecurityUtils.getUsername());
+            rule.setUpdateTime(LocalDateTime.now());
+        }
+        List<IotAlarmRuleExpressDto> appAlarmRuleExpressDtos = ruleDto.getIotAlarmRuleExpressDtoList();
+        List<IotAlarmRuleExpress> appAlarmRuleExpressesList = new ArrayList<>();
+        if(appAlarmRuleExpressDtos!=null&&appAlarmRuleExpressDtos.size()>0){
+            for(IotAlarmRuleExpressDto vo:appAlarmRuleExpressDtos){
+                IotAlarmRuleExpress express = new IotAlarmRuleExpress();
+                BeanHelper.copyProperties(express, vo);
+                express.setRuleId(rule.getId());
+                express.setId(IDHelper.id());
+                express.setCreateTime(LocalDateTime.now());
+                express.setUpdateBy(SecurityUtils.getUsername());
+                express.setUpdateTime(LocalDateTime.now());
+                appAlarmRuleExpressesList.add(express);
+            }
+        }
+        Set<Integer> sourceTypes = new HashSet<>();
+        appAlarmRuleExpressesList.forEach(r->sourceTypes.add(r.getSourceType()));
+        this.saveOrUpdate(rule);
+        //规则先删除原来的然重新插入
+        iotAlarmRuleExpressService.remove(new LambdaQueryWrapper<IotAlarmRuleExpress>().eq(IotAlarmRuleExpress::getRuleId,rule.getId()));
+        iotAlarmRuleExpressService.saveBatch(appAlarmRuleExpressesList);
+    }
+}

+ 11 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleSourceServiceImpl.java

@@ -0,0 +1,11 @@
+package com.xunmei.iot.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleSource;
+import com.xunmei.iot.mapper.IotAlarmRuleSourceMapper;
+import com.xunmei.iot.service.IotAlarmRuleSourceService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class IotAlarmRuleSourceServiceImpl extends ServiceImpl<IotAlarmRuleSourceMapper, IotAlarmRuleSource> implements IotAlarmRuleSourceService {
+}

+ 49 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotAlarmRuleEditVo.java

@@ -0,0 +1,49 @@
+package com.xunmei.iot.vo.alarm;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 告警规则表
+ * </p>
+ *
+ * @author oygj
+ * @since 2022-07-26
+ */
+@Data
+
+@ApiModel(value="AppAlarmRule对象", description="告警规则表")
+public class IotAlarmRuleEditVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    @ApiModelProperty(value = "规则名称")
+    private String name;
+
+    @ApiModelProperty(value = "是否启用")
+    private Integer enabled;
+
+
+    @ApiModelProperty(value = "alarm:告警,inspection:一键巡检")
+    private String type;
+
+    @ApiModelProperty(value = "备注信息")
+    private String remark;
+
+    /**
+     * 具体规则
+     */
+    @ApiModelProperty(value = "具体规则信息")
+    private List<IotAlarmRuleExpressEditVo> iotAlarmRuleExpressEditVos;
+
+
+
+
+}

+ 50 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotAlarmRuleExpressEditVo.java

@@ -0,0 +1,50 @@
+package com.xunmei.iot.vo.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author oygj
+ * @since 2022-07-26
+ */
+@Data
+
+public class IotAlarmRuleExpressEditVo implements Serializable {
+
+
+    private Long id;
+
+    @ApiModelProperty(value = "规则编码")
+    private Long ruleId;
+
+    @ApiModelProperty(value = "属性code")
+    private String fieldcode;
+
+    @ApiModelProperty(value = "操作符,GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等	于)、EQUALS(等于)、STARTS_WITH(以什么开始)、	ENDS_WITH(以什么结束)、CONTAIN(包含)")
+    private String operator;
+
+    @ApiModelProperty(value = "对比值")
+    private String value;
+    @ApiModelProperty(value = "对比值")
+    private String valueText;
+
+    @ApiModelProperty(value = "报警源类型:4:烟雾传感器;5: 温湿度采集器;6:水浸; 7:门磁、窗磁;8:卷帘门门磁;9:地磁;10燃气报警器;20:报警防区")
+    private Integer sourceType;
+
+    @ApiModelProperty(value = "规则使用周期:1.周一,2.周二,3.周三,4.周四,5.周五,6.周六,7.周日")
+    private Integer weekDay;
+
+    @ApiModelProperty(value = "开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+
+}

+ 54 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/alarm/IotAlarmSystemFieldVo.java

@@ -0,0 +1,54 @@
+package com.xunmei.iot.vo.alarm;
+
+import com.xunmei.common.core.utils.KeyValue;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 履职,安全检查计划表
+ * </p>
+ *
+ * @author oygj
+ * @since 2022-07-28
+ */
+@Data
+public class IotAlarmSystemFieldVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "报警源类型(设备类型):4:烟雾传感器;5: 温湿度采集器;6:水浸; 7:门磁、窗磁;8:卷帘门门磁;9:地磁;10燃气报警器;50:报警防区")
+    private Integer sourceType;
+
+    @ApiModelProperty(value = "报警源类型(设备类型) 中文")
+    private String sourceTypeDes;
+
+    @ApiModelProperty(value = "系统属性code(报警类型编码,全表唯一)")
+    private String sysFieldCode;
+
+    @ApiModelProperty(value = "系统属性名称")
+    private String name;
+
+    @ApiModelProperty(value = "属性规格信息,eg:{ 	'0': '门已关闭', 	'1': '门已打开' 	}")
+    private List<KeyValue> specsList;
+
+    @ApiModelProperty(value = "该属性拥有哪些操作符eg:{ 	'GT': '大于', 	'LT': '小于' 	}		GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等	于)、EQUALS(等于)、STARTS_WITH(以什么开始)、	ENDS_WITH(以什么结束)、CONTAIN(包含)")
+    private List<KeyValue> operatorsList;
+
+    @ApiModelProperty(value = "数据值类型,eg:'FLOAT'、'ENUM'")
+    private String type;
+
+    @ApiModelProperty(value = "数据值类型中午描述,eg:”浮点型“、'枚举'")
+    private String typeDes;
+
+    @ApiModelProperty(value = "属性单位,非必填")
+    private String unit;
+
+
+}

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

@@ -0,0 +1,27 @@
+package com.xunmei.iot.vo.alarm;
+
+import com.xunmei.common.core.domain.mediator.domain.IotAlarmRule;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+@Data
+@ApiModel(value = "初始化告警规则对象", description = "告警规则表")
+public class IotInitAlarmRuleVo implements Serializable {
+    /**
+     * 对应的告警规则
+     */
+    private IotAlarmRule iotAlarmRule;
+
+    /**
+     * 数据来源
+     */
+    private List<Map<String,Object>> sourceTypeList;
+    /**
+     * 告警规则
+     */
+    private List<Map<String,Object>>  iotAlarmRuleExpressEditVosBySourceType;
+}

+ 2 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotDvrDiskMapper.java

@@ -1,5 +1,6 @@
 package com.xunmei.mediator.api.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
 
@@ -11,6 +12,7 @@ import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
  * @author oygj
  * @since 2024-02-21
  */
+@InterceptorIgnore(blockAttack = "true")
 public interface IotDvrDiskMapper extends BaseMapper<IotDvrDisk> {
 
 }

+ 0 - 26
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmRuleExpressMapper.java

@@ -1,26 +0,0 @@
-package com.xunmei.mediator.api.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleExpress;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * <p>
- * 告警规则表达式表 Mapper 接口
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-public interface MediatorAlarmRuleExpressMapper extends BaseMapper<MediatorAlarmRuleExpress> {
-
-    List<MediatorAlarmRuleExpress> findListByRuleIdAndType(@Param("ruleIds") List<Long> ruleIds, @Param("sourceType") int sourceType);
-
-    Map<String, Object> findWorkTime(@Param("date") Date date, @Param("orgId") Long orgId);
-
-    List<MediatorAlarmRuleExpress> selectRuleExpressByRuleIdAndType(@Param("ruleId") Long ruleId, @Param("sourceType") Integer sourceType);
-}

+ 0 - 22
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmRuleMapper.java

@@ -1,22 +0,0 @@
-package com.xunmei.mediator.api.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRule;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * <p>
- * 告警规则表 Mapper 接口
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-public interface MediatorAlarmRuleMapper extends BaseMapper<MediatorAlarmRule> {
-
-    List<MediatorAlarmRule> findListByDeviceId(@Param("deviceId") String deviceId, @Param("orgId") Long orgId, @Param("sourceType") int sourceType);
-
-    List<MediatorAlarmRule> findListByDeviceType( @Param("sourceType") int sourceType);
-}

+ 0 - 21
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmRuleSourceMapper.java

@@ -1,21 +0,0 @@
-package com.xunmei.mediator.api.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleSource;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * <p>
- * 告警规则与设备源关系表 Mapper 接口
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-public interface MediatorAlarmRuleSourceMapper extends BaseMapper<MediatorAlarmRuleSource> {
-
-    List<MediatorAlarmRuleSource> selectByCode(@Param("subSystemCode") String subSystemCode, @Param("orgId") Long orgId);
-
-}

+ 0 - 18
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmSystemFieldMapper.java

@@ -1,18 +0,0 @@
-package com.xunmei.mediator.api.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmSystemField;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * <p>
- * 系统报警属性字段表 Mapper 接口
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-public interface MediatorAlarmSystemFieldMapper extends BaseMapper<MediatorAlarmSystemField> {
-
-    String findByFieldCode(@Param("fieldCode") String fieldCode, @Param("fieldId") String fieldId);
-}

+ 0 - 16
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmSystemFieldMapperDeviceMapper.java

@@ -1,16 +0,0 @@
-package com.xunmei.mediator.api.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmSystemFieldMapperDevice;
-
-/**
- * <p>
- * 系统报警属性字段与设备上报数据属性关系表 Mapper 接口
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-public interface MediatorAlarmSystemFieldMapperDeviceMapper extends BaseMapper<MediatorAlarmSystemFieldMapperDevice> {
-
-}

+ 0 - 312
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/EquipmentSyncService.java

@@ -14,9 +14,6 @@ import com.xunmei.common.core.enums.CategoryDataEnum;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
-import com.xunmei.mediator.api.mapper.MediatorAlarmRuleExpressMapper;
-import com.xunmei.mediator.api.mapper.MediatorAlarmRuleMapper;
-import com.xunmei.mediator.api.mapper.MediatorAlarmSystemFieldMapper;
 import com.xunmei.mediator.api.mapper.MediatorTimeTemplateMapper;
 import com.xunmei.mediator.domain.dto.redis.RedisKey;
 import com.xunmei.system.api.RemoteOrgService;
@@ -71,13 +68,7 @@ public class EquipmentSyncService {
     @Autowired
     private IMediatorProductDeviceService productDeviceService;
     @Resource
-    private MediatorAlarmRuleMapper alarmRuleMapper;
-    @Resource
     private MediatorTimeTemplateMapper timeTemplateMapper;
-    @Resource
-    private MediatorAlarmRuleExpressMapper alarmRuleExpressMapper;
-    @Resource
-    private MediatorAlarmSystemFieldMapper alarmSystemFieldMapper;
     @Autowired
     private IMediatorAlarmDataNewestService alarmDataNewestService;
     @Autowired
@@ -380,309 +371,6 @@ public class EquipmentSyncService {
         return map;
     }
 
-    @Transactional(rollbackFor = Exception.class)
-    public void analysisItem(MediatorDeviceData deviceData) throws ParseException {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-        SimpleDateFormat sdfa = new SimpleDateFormat("yyyy-MM-dd");
-        sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-        String strItems = null;
-        if (deviceData.getMulti() == 1) {
-            strItems = deviceData.getMultiItems();
-
-        } else {
-            strItems = deviceData.getItems();
-
-        }
-        Date time = new Date();
-        Date beginTime = null;
-        Date endTime = null;
-        //获取设备
-        List<MediatorProductDevice> productDevices = productDeviceService.findDeviceByDevice(deviceData.getDeviceId(), deviceData.getOrgId());
-        if (productDevices == null || productDevices.size() == 0) {
-            log.error("没有找到对应的设备");
-            return;
-        }
-        MediatorProductDevice productDevice = productDevices.stream().collect(Collectors.collectingAndThen
-                (Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MediatorProductDevice::getDeviceId))), ArrayList::new)).get(0);
-        //获取设备类型
-        String productType = productDevice.getProductType().toString();
-        ProductTypeEnum type = null;
-        if (productType.equals("3712194930442240")) {
-            //烟雾传感器
-            type = ProductTypeEnum.SMOKE_SENSOR;
-        }
-        if (productType.equals("3712195941285888")) {
-            //温湿度采集器
-            type = ProductTypeEnum.TEMPERATURE_HUMIDITY;
-        }
-        if (productType.equals("3712196701503488")) {
-            //水浸传感器
-            type = ProductTypeEnum.FLOODING;
-        }
-        if (productType.equals("3712197092999168")) {
-            //门磁、窗磁传感器(Lora无线)
-            type = ProductTypeEnum.DOOR_SENSOR;
-        }
-        if (productType.equals("3712197283692544")) {
-            //卷帘门门磁
-            type = ProductTypeEnum.SHUTTER_DOORS;
-        }
-        if (productType.equals("3712197446270976")) {
-            //地磁传感器
-            type = ProductTypeEnum.GEOMAGNETIC;
-        }
-        if (productType.equals("3712197694111744")) {
-            //燃气报警器
-            type = ProductTypeEnum.GAS_ALARM;
-        }
-        if (productType.equals("3712198166114160")) {
-            //智能电表
-            type = ProductTypeEnum.ZNDB;
-        }
-        if (type == null) {
-            log.error("没有找到对应的设备类型");
-            return;
-        }
-        //根据设备id获取报警规则
-        List<MediatorAlarmRule> ListById = alarmRuleMapper.findListByDeviceId(deviceData.getDeviceId().toString(), deviceData.getOrgId(), type.getNum());
-        //根据设备类型获取报警规则
-        List<MediatorAlarmRule> ListByType = alarmRuleMapper.findListByDeviceType(type.getNum());
-        //获取改设备下的所有规则列表
-        List<MediatorAlarmRule> listAll = new ArrayList<>();
-        if (ListById != null && ListById.size() > 0) {
-            listAll.addAll(ListById);
-        }
-        if (ListByType != null && ListByType.size() > 0) {
-            listAll.addAll(ListByType);
-        }
-        if (listAll.size() == 0) {
-            log.error("没有找到报警规则");
-            return;
-        }
-        //对改设备下的所有规则进行去重
-        List<Long> ruleIds = listAll.stream().collect(Collectors.collectingAndThen
-                (Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MediatorAlarmRule::getId))), ArrayList::new)).stream().map(MediatorAlarmRule::getId).collect(Collectors.toList());
-
-        //根据规则id,和设备类型获取告警规则表达式表
-        List<MediatorAlarmRuleExpress> expressList = alarmRuleExpressMapper.findListByRuleIdAndType(ruleIds, type.getNum());
-        //将表达式按规则分组
-        if (expressList == null || expressList.size() == 0) {
-            log.error("没有找到表达式");
-            return;
-        }
-        Map<Long, List<MediatorAlarmRuleExpress>> expressListMap = expressList.stream().collect(Collectors.groupingBy(MediatorAlarmRuleExpress::getRuleId));
-
-        for (Long key : expressListMap.keySet()) {
-            List<MediatorAlarmRuleExpress> expresses = expressListMap.get(key);
-            if (expresses == null || expresses.size() == 0) {
-                continue;
-            }
-            MediatorAlarmRuleExpress express = expressListMap.get(key).get(0);
-            if (express.getIsUseWorkTemplate() == 0 && express.getTimeTemplateId() != null) {
-                //同一规则下的表达是使用的时间模版一样的,根据时间模版的id来获取时间模版
-                MediatorTimeTemplate timeTemplate = timeTemplateMapper.findOneTemplate(express.getTimeTemplateId());
-                if (timeTemplate == null || timeTemplate.getTemplatecontent() == null) {
-                    log.error("没有找到时间模版");
-                    continue;
-                }
-                String templateContent = timeTemplate.getTemplatecontent();
-                JSONArray jsonArray = JSONArray.parseArray(templateContent);
-                JSONObject obj = JSON.parseObject(jsonArray.get(0).toString());
-                String workTime = obj.get("startTime").toString();
-                String offTime = obj.get("endTime").toString();
-                String weekday = obj.get("weekday").toString();
-
-                Calendar calendar = Calendar.getInstance();
-                calendar.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-                calendar.setTime(time);
-                int weekIdex = calendar.get(Calendar.DAY_OF_WEEK);
-                if (weekday.contains(weekIdex + "")) {
-                    String timea = sdfa.format(time);
-                    beginTime = sdf.parse(timea + " " + workTime + ":00");
-                    endTime = sdf.parse(timea + " " + offTime + ":00");
-
-                } else {
-                    log.error("没有找到时间模版");
-                    continue;
-                }
-
-            } else if (express.getIsUseWorkTemplate() == 1) {
-                //使用作息时间
-                //获取今日的作息
-                Map<String, Object> toDayworktime = alarmRuleExpressMapper.findWorkTime(new Date(), deviceData.getOrgId());
-                if (toDayworktime == null) {
-                    log.error("今日没有作息");
-                    continue;
-                } else {
-                    String ymdDate = toDayworktime.get("ymdDate").toString();
-                    String workTime = toDayworktime.get("workTime").toString();
-                    String offTime = toDayworktime.get("offTime").toString();
-                    beginTime = sdf.parse(ymdDate + " " + workTime + ":00");
-                    endTime = sdf.parse(ymdDate + " " + offTime + ":00");
-                }
-
-            }
-            if (StringUtils.isNotEmpty(strItems)) {
-                MediatorProductDevice device = null;
-                List<MediatorProductDevice> devices = productDeviceService.findDeviceByDevice(deviceData.getDeviceId(), deviceData.getOrgId());
-                if (devices != null && devices.size() > 0) {
-                    device = devices.stream().collect(Collectors.collectingAndThen
-                            (Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MediatorProductDevice::getDeviceId))), ArrayList::new)).get(0);
-                }
-                JSONArray jsonArray = JSONArray.parseArray(strItems);
-                List<MediatorAlarmData> appAlarmDataList = new ArrayList<>();
-                for (MediatorAlarmRuleExpress ruleExpress : expresses) {
-                    MediatorAlarmData objectMap = analysis(jsonArray, ruleExpress, deviceData, time, beginTime, endTime, type, productDevice);
-                    if (objectMap != null /*&& !alarmCommonService.filter(objectMap)*/) {
-                        appAlarmDataList.add(objectMap);
-                        alarmDataNewestService.saveData(objectMap);
-
-                        try {
-                            LambdaUpdateWrapper<MediatorAlarmDataNewest> updateWrapper = Wrappers.lambdaUpdate();
-                            updateWrapper.eq(MediatorAlarmDataNewest::getDeviceId, objectMap.getDeviceId())
-                                    .eq(MediatorAlarmDataNewest::getFieldcode, objectMap.getFieldCode());
-                            MediatorAlarmDataNewest alarmDataNewest = new MediatorAlarmDataNewest();
-                            BeanHelper.copyProperties(alarmDataNewest, objectMap);
-                            //记录下最新告警的id
-                            alarmDataNewest.setAlarmDataId(objectMap.getId());
-                            alarmDataNewestService.saveOrUpdate(alarmDataNewest, updateWrapper);
-
-                          /*  TodayAlarm todayAlarm = saveTodayAlarm(objectMap, deviceData);
-                            rabbitAlarmService.sendDongHuan(todayAlarm);*/
-                        } catch (Exception e) {
-                            log.error("告警数据转换为最新数据失败: " + e);
-                        }
-                    }
-                }
-                if (device != null) {
-                    //异步中不更新这两个字段
-                    device.setTimeofOnline(null);
-                    device.setCheckTime(null);
-                    if (appAlarmDataList.size() > 0) {
-                        //把对应设备修改为告警
-                        device.setDoStatus(1);
-                    } else {
-                        //把设备修改wie正常
-                        device.setDoStatus(0);
-                    }
-                    productDeviceService.saveOrUpdate(device);
-                }
-
-            }
-        }
-    }
-
-    private MediatorAlarmData analysis(JSONArray jsonArray, MediatorAlarmRuleExpress ruleExpress, MediatorDeviceData deviceData, Date time, Date beginTime, Date endTime, ProductTypeEnum type, MediatorProductDevice productDevice) throws ParseException {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-        boolean flag = false;
-        for (int i = 0; i < jsonArray.size(); i++) {
-            JSONObject obj = JSON.parseObject(jsonArray.get(i).toString());
-            String filedcode = alarmSystemFieldMapper.findByFieldCode(ruleExpress.getFieldcode(), obj.get("fieldId").toString());
-            if (!StringUtils.isNotEmpty(filedcode)) {
-                continue;
-            }
-            //当日该设备不再接收该类型报警
-            String strKey = RedisKey.NOT_ALARM_AGAIN + productDevice.getDeviceId() + "_" + type.getNum() + "_" + ruleExpress.getFieldcode();
-            /*if (Boolean.TRUE.equals(redisTemplate.hasKey(strKey))) {
-                log.info("机构名称:{}, 设备id:{},设备名称:{} 不再接收{}类型报警", productDevice.getOrgName(), productDevice.getDeviceId(), productDevice.getDeviceName(), type.getText());
-                continue;
-            }*/
-            boolean equals = Boolean.TRUE.equals(stringRedisTemplate.hasKey(strKey));
-            if (equals) {
-                LogUtils.STATUS_INFO_DEVICE_DATA.info("机构名称:{}, 设备id:{},设备名称:{} 不再接收{}类型报警", productDevice.getOrgName(), productDevice.getDeviceId(), productDevice.getDeviceName(), type.getText());
-                continue;
-            } else {
-                LogUtils.STATUS_INFO_DEVICE_DATA.info("redis 中不包含key :{},继续向下执行。。。。", strKey);
-            }
-            if (obj.getString("fieldCode").equals(filedcode)) {
-                flag = true;
-                ElectricityMeterAttributes attributes = ElectricityMeterAttributes.getEnumByAttrtCode(ruleExpress.getFieldcode());
-                if (ruleExpress.getFieldcode().equals("CurrentHumidity") || ruleExpress.getFieldcode().equals("CurrentTemperature")
-                        || ObjectUtil.isNotEmpty(attributes) && ObjectUtil.isNotEmpty(attributes.getUnit())) {
-                    String value = obj.get("value").toString();
-                    String operator = ruleExpress.getOperator();
-                    if (sdf.parse(sdf.format(time)).after(beginTime) && time.before(endTime)) {
-                        String unit = "";
-                        String str = "";
-                        if (ruleExpress.getFieldcode().equals("CurrentHumidity")) {
-                            unit = "%RH";
-                            str = "湿度";
-                        }
-                        if (ruleExpress.getFieldcode().equals("CurrentTemperature")) {
-                            unit = "°C";
-                            str = "温度";
-                        }
-                        if (ruleExpress.getFieldcode().contains("METER_ATTRIBUTES")) {
-                            unit = attributes.getUnit();
-                            str = attributes.getText();
-                        }
-                        if (operator.equals("EQUALS")) {
-                            if (Double.valueOf(value).equals(Double.valueOf(ruleExpress.getValue()))) {
-                                //保存一条异常数据object异常数据对象
-                                String content = deviceData.getDeviceName() + str + value + unit;
-                                MediatorAlarmData alarm = buildDeviceAlarm(value, ruleExpress, deviceData, type, content);
-                                return alarm;
-                            } else {
-                            }
-                        }
-                        if (operator.equals("GT")) {
-                            if (Double.valueOf(value) > Double.valueOf(ruleExpress.getValue())) {
-                                //保存一条异常数据object异常数据对象
-                                String content = deviceData.getDeviceName() + str + value + unit;
-                                MediatorAlarmData alarm = buildDeviceAlarm(value, ruleExpress, deviceData, type, content);
-                                return alarm;
-                            }
-                        }
-                        if (operator.equals("GTE")) {
-                            if (Double.valueOf(value) >= Double.valueOf(ruleExpress.getValue())) {
-                                //保存一条异常数据object异常数据对象
-                                String content = deviceData.getDeviceName() + str + value + unit;
-                                MediatorAlarmData alarm = buildDeviceAlarm(value, ruleExpress, deviceData, type, content);
-                                return alarm;
-                            }
-                        }
-                        if (operator.equals("LT")) {
-                            if (Double.valueOf(value) < Double.valueOf(ruleExpress.getValue())) {
-                                //保存一条异常数据object异常数据对象
-                                String content = deviceData.getDeviceName() + str + value + unit;
-                                MediatorAlarmData alarm = buildDeviceAlarm(value, ruleExpress, deviceData, type, content);
-                                return alarm;
-                            }
-                        }
-                        if (operator.equals("LTE")) {
-                            if (Double.valueOf(value) <= Double.valueOf(ruleExpress.getValue())) {
-                                //保存一条异常数据object异常数据对象
-                                String content = deviceData.getDeviceName() + str + value + unit;
-                                MediatorAlarmData alarm = buildDeviceAlarm(value, ruleExpress, deviceData, type, content);
-                                return alarm;
-                            }
-                        }
-                    }
-                } else {
-                    String value = obj.get("value").toString();
-                    if (ruleExpress.getFieldcode().contains("METER_ATTRIBUTES")) {
-                        Double key = Double.parseDouble(obj.getString("value"));
-                        value = key.intValue() + "";
-                    }
-                    if (sdf.parse(sdf.format(time)).after(beginTime) && time.before(endTime)) {
-                        if (value.equals(ruleExpress.getValue()) || value.equals(ruleExpress.getValueText())) {
-                            //保存一条异常数据object异常数据对象
-                            String content = deviceData.getDeviceName() + ruleExpress.getValueText();
-                            MediatorAlarmData alarm = buildDeviceAlarm(value, ruleExpress, deviceData, type, content);
-                            return alarm;
-                        }
-                    }
-                }
-            }
-        }
-        if (!flag) {
-            log.error("设备【" + deviceData.getDeviceName() + "】未找到报警关键字");
-        }
-        return null;
-    }
-
     private MediatorAlarmData buildDeviceAlarm(String value, MediatorAlarmRuleExpress ruleExpress, MediatorDeviceData deviceData, ProductTypeEnum type, String content) throws ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));

+ 0 - 20
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorAlarmRuleExpressService.java

@@ -1,20 +0,0 @@
-package com.xunmei.mediator.api.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleExpress;
-
-import java.util.List;
-
-/**
- * <p>
- * 告警规则表达式表 服务类
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-public interface IMediatorAlarmRuleExpressService extends IService<MediatorAlarmRuleExpress> {
-
-    List<MediatorAlarmRuleExpress> selectRuleExpressByRuleIdAndType(Long ruleId, Integer sourceType);
-
-}

+ 0 - 19
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorAlarmRuleService.java

@@ -1,19 +0,0 @@
-package com.xunmei.mediator.api.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRule;
-
-import java.util.List;
-
-/**
- * <p>
- * 告警规则表 服务类
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-public interface IMediatorAlarmRuleService extends IService<MediatorAlarmRule> {
-
-
-}

+ 0 - 19
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorAlarmRuleSourceService.java

@@ -1,19 +0,0 @@
-package com.xunmei.mediator.api.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleSource;
-
-import java.util.List;
-
-/**
- * <p>
- * 告警规则与设备源关系表 服务类
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-public interface IMediatorAlarmRuleSourceService extends IService<MediatorAlarmRuleSource> {
-
-    List<MediatorAlarmRuleSource> selectByCode(String subSystemCode, Long orgId);
-}

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

@@ -80,10 +80,6 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
     private NorthErrorService northErrorService;
     @Resource
     private MediatorTimeTemplateMapper timeTemplateMapper;
-    @Resource
-    private IMediatorAlarmRuleSourceService alarmRuleSourceService;
-    @Resource
-    private IMediatorAlarmRuleExpressService alarmRuleExpressService;
     @Override
     public IotAlarmSubsystem findByCodeAndOrgId(String defenceAreaCode, Long orgId) {
         return lambdaQuery()

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

@@ -29,6 +29,7 @@ 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.stream.Collectors;
 
@@ -56,15 +57,16 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
     public ReceiveErrorDto saveData(DataPageDto<DvrDiskPageDto> request, String msgId, String branchId) throws Exception {
         //验证基础分页信息
         ReceiveErrorDto dto = CheckDataUtil.checkObjFieldIsNull(request);
-        if (dto.getSuccess()) {
-            //分页数据的存取
-            List<DvrDiskPageDto> dvrdiskPageLists = RedisCheckRepeatDataUtil.isCompleted(request, DvrDiskPageDto.class);
-
-            log.info("判断是否获取DVR硬盘空间全部信息分页数据:{}", dvrdiskPageLists.size() > 0 ? true : false);
-            if (dvrdiskPageLists.size() > 0) {
-                Map<String, Object> map = this.cheakDvrdiskPageDto(dvrdiskPageLists, branchId, msgId);
-                this.saveAll(map);
-            }
+        if (!dto.getSuccess()) {
+            return dto;
+        }
+        //分页数据的存取
+        List<DvrDiskPageDto> dvrDiskPageLists = RedisCheckRepeatDataUtil.isCompleted(request, DvrDiskPageDto.class);
+
+        LogUtils.BASE_INFO_DVR_DISK.info("判断是否获取DVR硬盘空间全部信息分页数据:{}", dvrDiskPageLists.size() > 0);
+        if (ObjectUtil.isNotEmpty(dvrDiskPageLists)) {
+            Map<String, Object> map = this.checkDvrDiskPageDto(dvrDiskPageLists, branchId, msgId);
+            this.saveAll(map);
         }
         return dto;
     }
@@ -78,9 +80,7 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
 
         this.northStatisticsSyncService.saveOrUpdateBaseCountByDataType(DataType.dvrdiskCount.getIndex(), dvrdisks.size(), false);
 
-        if (ObjectUtil.isNotEmpty(errors)) {
             northErrorService.saveErrorData(errors);
-        }
         if (ObjectUtil.isNotEmpty(dvrdisks)) {
 
             try {
@@ -93,7 +93,7 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
         }
     }
 
-    private Map<String, Object> cheakDvrdiskPageDto(List<DvrDiskPageDto> dvrdiskPageLists, String branchId, String msgId) throws IllegalAccessException {
+    private Map<String, Object> checkDvrDiskPageDto(List<DvrDiskPageDto> dvrdiskPageLists, String branchId, String msgId) throws IllegalAccessException {
         //获取所有的监控主机
         final List<IotDevice> deviceListAll = iotDeviceService.findByCategory(CategoryDataEnum.MONITOR_HOST_DEVICE.getId());
 
@@ -152,13 +152,19 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
                 }
 
                 IotDvrDisk dvrdisk = IotDvrDisk.builder()
-                        .available(NumberUtil.parseInt(dto.getAvailable().substring(0, dto.getAvailable().length() - 2)) )
+                        .available(NumberUtil.parseInt(dto.getAvailable().substring(0, dto.getAvailable().length() - 2)))
                         .diskIndex(dto.getDiskSerialNum())
                         .equipmentCode(pageDto.getEquipmentCode())
                         .diskName(dto.getName())
                         .id(IDHelper.id())
                         .total(NumberUtil.parseInt(dto.getTotal().substring(0, dto.getTotal().length() - 2)))
-                        .orgId(org.getId()).build();
+                        .orgId(org.getId())
+                        .orgName(org.getShortName())
+                        .orgPath(org.getPath())
+                        .deleted(0)
+                        .source(1)
+                        .createTime(LocalDateTime.now())
+                        .build();
 
                 dvrdisks.add(dvrdisk);
             }

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

@@ -1,27 +0,0 @@
-package com.xunmei.mediator.api.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleExpress;
-import com.xunmei.mediator.api.mapper.MediatorAlarmRuleExpressMapper;
-import com.xunmei.mediator.api.service.IMediatorAlarmRuleExpressService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * <p>
- * 告警规则表达式表 服务实现类
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-@Service
-public class MediatorAlarmRuleExpressServiceImpl extends ServiceImpl<MediatorAlarmRuleExpressMapper, MediatorAlarmRuleExpress> implements IMediatorAlarmRuleExpressService {
-
-
-    @Override
-    public List<MediatorAlarmRuleExpress> selectRuleExpressByRuleIdAndType(Long ruleId, Integer sourceType) {
-        return baseMapper.selectRuleExpressByRuleIdAndType(ruleId,sourceType);
-    }
-}

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

@@ -1,25 +0,0 @@
-package com.xunmei.mediator.api.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRule;
-import com.xunmei.mediator.api.mapper.MediatorAlarmRuleMapper;
-import com.xunmei.mediator.api.service.IMediatorAlarmRuleService;
-import com.xunmei.system.api.domain.north.MediatorProductDevice;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * <p>
- * 告警规则表 服务实现类
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-@Service
-public class MediatorAlarmRuleServiceImpl extends ServiceImpl<MediatorAlarmRuleMapper, MediatorAlarmRule> implements IMediatorAlarmRuleService {
-
-
-}

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

@@ -1,27 +0,0 @@
-package com.xunmei.mediator.api.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleSource;
-import com.xunmei.mediator.api.mapper.MediatorAlarmRuleSourceMapper;
-import com.xunmei.mediator.api.service.IMediatorAlarmRuleSourceService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * <p>
- * 告警规则与设备源关系表 服务实现类
- * </p>
- *
- * @author oygj
- * @since 2024-01-26
- */
-@Service
-public class MediatorAlarmRuleSourceServiceImpl extends ServiceImpl<MediatorAlarmRuleSourceMapper, MediatorAlarmRuleSource> implements IMediatorAlarmRuleSourceService {
-
-
-    @Override
-    public List<MediatorAlarmRuleSource> selectByCode(String subSystemCode, Long orgId) {
-        return baseMapper.selectByCode(subSystemCode, orgId);
-    }
-}

+ 0 - 37
soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmRuleExpressMapper.xml

@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.xunmei.mediator.api.mapper.MediatorAlarmRuleExpressMapper">
-    <select id="findListByRuleIdAndType"
-            resultType="com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleExpress">
-        select a.*,a.rule_id as ruleId,a.value_Text as valueText,a.source_type as sourceType,a.time_template_id as
-        timeTemplateId,a.is_use_work_template as isUseWorkTemplate from mediator_alarm_rule_express a where
-        a.source_type=#{sourceType} and rule_id in
-        <foreach collection="ruleIds" separator="," open="(" close=")" item="rouleId">
-            #{rouleId}
-        </foreach>
-    </select>
-
-    <select id="findWorkTime" resultType="java.util.Map">
-        select ymd_date as ymdDate, work_time as workTime, work_off_time as offTime
-        from sys_work_time
-        where date(ymd_date) = date(#{date})
-          and org_id = #{orgId}
-          and is_enable = 1
-    </select>
-
-    <select id="selectRuleExpressByRuleIdAndType"
-            resultType="com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleExpress">
-        select id as id,
-               rule_id as ruleId,
-               fieldCode as fieldCode,
-               operator as operator,
-               value as value,
-               value_text as valueText,
-               source_type  as sourceType,
-               time_template_id as timeTemplateId,
-               is_use_work_template as isUseWorkTemplate
-        from mediator_alarm_rule_express
-        where rule_id = #{ruleId}
-          and source_type = #{sourceType}
-    </select>
-</mapper>

+ 0 - 25
soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmRuleMapper.xml

@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.xunmei.mediator.api.mapper.MediatorAlarmRuleMapper">
-    <select id="findListByDeviceId" resultType="com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRule">
-        select r.*
-        from mediator_alarm_rule r
-                 left join mediator_alarm_rule_source s on r.id = s.rule_id and s.value_type = 'Device'
-        where r.isdeleted = 0
-          and r.enabled = 1
-          and s.value = #{deviceId}
-          and s.org_id = #{orgId}
-          and s.source_type = #{sourceType}
-          and r.type = 'alarm'
-    </select>
-
-    <select id="findListByDeviceType" resultType="com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRule">
-        select r.*
-        from mediator_alarm_rule r
-                 left join mediator_alarm_rule_source s on r.id = s.rule_id and s.value_type = 'AllDevice'
-        where r.isdeleted = 0
-          and r.enabled = 1
-          and s.source_type = #{sourceType}
-          and r.type = 'alarm'
-    </select>
-</mapper>

+ 0 - 16
soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmRuleSourceMapper.xml

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.xunmei.mediator.api.mapper.MediatorAlarmRuleSourceMapper">
-
-    <select id="selectByCode" resultType="com.xunmei.common.core.domain.mediator.domain.MediatorAlarmRuleSource">
-        select id          as id,
-               org_id      as orgId,
-               rule_id     as ruleId,
-               source_type as sourceType,
-               value       as value,
-               value_type  as valueType
-        from mediator_alarm_rule_source
-        where value = #{subSystemCode} and org_id = #{orgId}
-           or (source_type = 50 and value_type = 'AllDevice')
-    </select>
-</mapper>

+ 0 - 8
soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmSystemFieldMapper.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.xunmei.mediator.api.mapper.MediatorAlarmSystemFieldMapper">
-
-    <select id="findByFieldCode" resultType="java.lang.String">
-        select dev_field_code as filedcode from mediator_alarm_system_field_mapper_device  where sys_field_code = #{fieldCode} and dev_field_id = #{fieldId}
-    </select>
-</mapper>

+ 0 - 5
soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmSystemFieldMapperDeviceMapper.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.xunmei.mediator.api.mapper.MediatorAlarmSystemFieldMapperDeviceMapper">
-
-</mapper>