浏览代码

优化设备告警

zhou-hao 5 年之前
父节点
当前提交
7695cf56d2

+ 2 - 2
jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/device/DeviceAlarmRule.java

@@ -191,7 +191,7 @@ public class DeviceAlarmRule implements Serializable {
         //过滤条件
         //过滤条件
         private List<ConditionFilter> filters;
         private List<ConditionFilter> filters;
 
 
-        public Set<String> getColumns() {
+        public Set<String> toColumns() {
 
 
             return Stream.concat(
             return Stream.concat(
                 (StringUtils.hasText(modelId)
                 (StringUtils.hasText(modelId)
@@ -204,7 +204,7 @@ public class DeviceAlarmRule implements Serializable {
                 .collect(Collectors.toSet());
                 .collect(Collectors.toSet());
         }
         }
 
 
-        public List<Object> getFilterValues() {
+        public List<Object> toFilterBinds() {
             return filters == null ? Collections.emptyList() :
             return filters == null ? Collections.emptyList() :
                 filters.stream()
                 filters.stream()
                     .map(ConditionFilter::convertValue)
                     .map(ConditionFilter::convertValue)

+ 2 - 2
jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/device/DeviceAlarmRuleNode.java

@@ -94,7 +94,7 @@ public class DeviceAlarmRuleNode extends CommonExecutableRuleNodeFactoryStrategy
                 DeviceAlarmRule.Trigger trigger = triggers.get(i);
                 DeviceAlarmRule.Trigger trigger = triggers.get(i);
                 // select this.properties.this trigger0
                 // select this.properties.this trigger0
                 columns.add(trigger.getType().getPropertyPrefix() + "this trigger" + i);
                 columns.add(trigger.getType().getPropertyPrefix() + "this trigger" + i);
-                columns.addAll(trigger.getColumns());
+                columns.addAll(trigger.toColumns());
                 trigger.createExpression()
                 trigger.createExpression()
                     .ifPresent(expr -> wheres.add("(" + expr + ")"));
                     .ifPresent(expr -> wheres.add("(" + expr + ")"));
             }
             }
@@ -132,7 +132,7 @@ public class DeviceAlarmRuleNode extends CommonExecutableRuleNodeFactoryStrategy
             for (DeviceAlarmRule.Trigger trigger : rule.getTriggers()) {
             for (DeviceAlarmRule.Trigger trigger : rule.getTriggers()) {
                 String topic = trigger.getType().getTopic(rule.getProductId(), rule.getDeviceId(), trigger.getModelId());
                 String topic = trigger.getType().getTopic(rule.getProductId(), rule.getDeviceId(), trigger.getModelId());
                 topics.add(topic);
                 topics.add(topic);
-                binds.add(trigger.getFilterValues());
+                binds.addAll(trigger.toFilterBinds());
             }
             }
             List<Subscription> subscriptions = topics.stream().map(Subscription::new).collect(Collectors.toList());
             List<Subscription> subscriptions = topics.stream().map(Subscription::new).collect(Collectors.toList());
 
 

+ 8 - 0
jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/DeviceAlarmService.java

@@ -1,5 +1,6 @@
 package org.jetlinks.community.rule.engine.service;
 package org.jetlinks.community.rule.engine.service;
 
 
+import org.hswebframework.ezorm.rdb.mapping.defaults.SaveResult;
 import org.hswebframework.web.crud.service.GenericReactiveCrudService;
 import org.hswebframework.web.crud.service.GenericReactiveCrudService;
 import org.jetlinks.community.rule.engine.entity.DeviceAlarmEntity;
 import org.jetlinks.community.rule.engine.entity.DeviceAlarmEntity;
 import org.jetlinks.community.rule.engine.enums.AlarmState;
 import org.jetlinks.community.rule.engine.enums.AlarmState;
@@ -18,6 +19,13 @@ public class DeviceAlarmService extends GenericReactiveCrudService<DeviceAlarmEn
         this.instanceService = instanceService;
         this.instanceService = instanceService;
     }
     }
 
 
+    @Override
+    public Mono<SaveResult> save(Publisher<DeviceAlarmEntity> entityPublisher) {
+        return Flux.from(entityPublisher)
+            .doOnNext(e -> e.setState(null))
+            .as(DeviceAlarmService.super::save);
+    }
+
     public Mono<Void> start(String id) {
     public Mono<Void> start(String id) {
         return findById(id)
         return findById(id)
             .flatMap(this::doStart);
             .flatMap(this::doStart);