From 22de91940d37bf9f05fed205be82ec419edc0bb0 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Thu, 27 Jun 2024 11:17:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20i2=E6=95=B0=E6=8D=AE=E8=B5=B0=E8=A7=84?= =?UTF-8?q?=E5=88=99=E8=BF=87=E6=BB=A4=E6=9D=A5=E8=AE=BE=E7=BD=AE=E6=98=AF?= =?UTF-8?q?=E5=90=A6alarm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xydl/cac/transform/I2DataTransformer.java | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java index 4798760..8102d85 100644 --- a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java +++ b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java @@ -1,20 +1,18 @@ package com.xydl.cac.transform; import com.alibaba.excel.util.StringUtils; -import com.xydl.cac.entity.I2syncConfig; -import com.xydl.cac.entity.I2syncField; -import com.xydl.cac.entity.I2syncRecord; -import com.xydl.cac.entity.NSensor; +import com.xydl.cac.entity.*; import com.xydl.cac.model.i2sync.Attr; import com.xydl.cac.model.i2sync.Datanode; import com.xydl.cac.model.i2sync.Monitordata; import com.xydl.cac.model.i2sync.Request; -import com.xydl.cac.util.DataTable; +import com.xydl.cac.task.CacheTask; import com.xydl.cac.util.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -25,6 +23,17 @@ public class I2DataTransformer { public Request transform(NSensor sensor, I2syncRecord record, I2syncConfig config, List fieldList, List> dataList) throws Exception { + // 查到可用规则 + List ruleList = new ArrayList<>(); + Iterator it = CacheTask.rule_Cache.keySet().iterator(); + while (it.hasNext()) { + Integer key = it.next(); + WarnRule rule = CacheTask.rule_Cache.get(key); + if (rule.canDo() && rule.getSensorId().equals(sensor.getId())) { + ruleList.add(rule); + } + } + List nodeList = new ArrayList<>(); for (Map map : dataList) { String date = (String) map.get("acquisitionTime"); @@ -44,7 +53,11 @@ public class I2DataTransformer { attr = new Attr(); attr.setName(field.getDestFieldName()); attr.setValue(String.valueOf(value)); - attr.setAlarm("FALSE"); + if (this.triggerRule(ruleList, field.getFieldName(), value)) { + attr.setAlarm("TRUE"); + } else { + attr.setAlarm("FALSE"); + } if (StringUtils.isBlank(node.getType())) { node.setType(config.getTypeCode()); } @@ -64,4 +77,16 @@ public class I2DataTransformer { request.setMonitordata(monitordata); return request; } + + private boolean triggerRule(List ruleList, String fieldName, Object value) { + for (WarnRule rule : ruleList) { + if (rule.getTypePoint().getField().equalsIgnoreCase(fieldName)) { + boolean r = rule.triggerRule(value); + if (r) { + return true; + } + } + } + return false; + } }