From d6464955dc20cb527f7be02ac8631c1effb1768a Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期一, 23 十二月 2024 16:12:11 +0800 Subject: [PATCH] 计算点查询问题修复 --- iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/MeasureHandle.java | 34 +++++++++++++++++++++------------- 1 files changed, 21 insertions(+), 13 deletions(-) diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/MeasureHandle.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/MeasureHandle.java index c9af776..c97aa8b 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/MeasureHandle.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/MeasureHandle.java @@ -1,5 +1,7 @@ package com.iailab.module.data.point.collection.handler; +import com.iailab.module.data.channel.http.collector.SourceApiEnum; +import com.iailab.module.data.channel.http.collector.ihdb.HttpCollectorForIhd; import com.iailab.module.data.channel.opcda.collector.OpcDACollector; import com.iailab.module.data.common.enums.CommonConstant; import com.iailab.module.data.common.enums.DataSourceType; @@ -12,7 +14,6 @@ import com.iailab.module.data.point.common.PointDataTypeEnum; import com.iailab.module.data.point.dto.DaPointDTO; import com.iailab.module.data.point.service.DaPointService; -import com.iailab.module.data.http.collector.HttpCollectorForZxzk; import com.iailab.module.data.influxdb.pojo.InfluxPointValuePOJO; import lombok.extern.slf4j.Slf4j; import javax.annotation.Resource; @@ -51,8 +52,8 @@ @Autowired private OpcDACollector opcDACollector; - @Resource - private HttpCollectorForZxzk httpCollectorForZxzk; + @Autowired + private HttpCollectorForIhd httpCollectorForIhd; @Resource private DaPointService daPointService; @@ -68,7 +69,7 @@ List<String[]> opcDaTagIds = new ArrayList<>(); List<String[]> modbusTagIds = new ArrayList<>(); List<String[]> kioTagIds = new ArrayList<>(); - List<String[]> httpTagZxzk = new ArrayList<>(); + List<Object[]> httpTagIhd = new ArrayList<>(); dtos.stream().forEach(item -> { @@ -80,6 +81,12 @@ modbusTagIds.add(new String[]{item.getSourceId(), item.getTagNo()}); } else if (DataSourceType.KIO.getCode().equals(item.getSourceType())) { kioTagIds.add(new String[]{item.getSourceId(), item.getTagNo()}); + } else if (DataSourceType.HTTP.getCode().equals(item.getSourceType())) { + if (SourceApiEnum.iHyperDB.getCode().equals(item.getSourceName())) { + if (item.getTagNo() != null && item.getDimension() != null && item.getValueType() != null) { + httpTagIhd.add(new Object[]{item.getSourceId(), item.getTagNo(), item.getDimension(), item.getValueType()}); + } + } } }); @@ -96,9 +103,8 @@ if (!CollectionUtils.isEmpty(kioTagIds)) { tagValues.putAll(kingIOCollector.getTagValues(kioTagIds)); } - if (!CollectionUtils.isEmpty(httpTagZxzk)) { - tagValues.putAll(httpCollectorForZxzk.getTagValues(httpTagZxzk)); - + if (!CollectionUtils.isEmpty(httpTagIhd)) { + tagValues.putAll(httpCollectorForIhd.getTagValues(httpTagIhd, collectTime)); } this.toCommonResult(collectTime, dtos, tagValues, dataMap, result); log.info("测量点处理结束"); @@ -129,12 +135,17 @@ private Object handleData(DaPointDTO dto, Object value) { Object result = value; try { + if (value == null) { + return CommonConstant.BAD_VALUE; + } if (DataTypeEnum.FLOAT.getCode().equals(dto.getDataType()) || DataTypeEnum.INT.getCode().equals(dto.getDataType())) { BigDecimal rawValue = new BigDecimal(value.toString()); - + if(CommonConstant.BAD_VALUE.compareTo(rawValue) == 0) { + return CommonConstant.BAD_VALUE; + } // 异常值处理 if (rawValue.compareTo(maxValue) > 0 || rawValue.compareTo(minValue) < 0) { - rawValue = CommonConstant.BAD_VALUE; + return CommonConstant.BAD_VALUE; } BigDecimal coefficient = dto.getUnittransfactor() == null ? BigDecimal.ONE : dto.getUnittransfactor(); BigDecimal calValue = rawValue.multiply(coefficient); @@ -153,7 +164,6 @@ } else if (DataTypeEnum.BOOLEAN.getCode().equals(dto.getDataType())) { result = Boolean.parseBoolean(value.toString()); } - } catch (Exception ex) { log.warn("handleData异常,PointNo=" + dto.getPointNo()); ex.printStackTrace(); @@ -175,9 +185,7 @@ } else if (DataSourceType.KIO.getCode().equals(item.getSourceType())) { value = kingIOCollector.getTagValue(item.getSourceId(), item.getTagNo()); } else if (DataSourceType.HTTP.getCode().equals(item.getSourceType())) { - if (CommonConstant.HTTP_API_ZXZK_IH.equals(item.getSourceName())) { - value = httpCollectorForZxzk.getTagValue(item.getSourceId(), item.getTagNo()); - } + value = httpCollectorForIhd.getTagValue(item.getSourceId(), item.getTagNo(), item.getDimension(), item.getValueType()); } else { log.info("没有匹配的TagNo=" + item.getTagNo()); } -- Gitblit v1.9.3