From 023d6b104c5056ced2fb0b834ae28363078203ba Mon Sep 17 00:00:00 2001 From: Jay <csj123456> Date: 星期一, 24 二月 2025 16:14:45 +0800 Subject: [PATCH] 修改查询指标历史,计算指标无法查询到数据的问题 --- iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CalculateHandle.java | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CalculateHandle.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CalculateHandle.java index d97b8f7..4dd5838 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CalculateHandle.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CalculateHandle.java @@ -1,5 +1,6 @@ package com.iailab.module.data.point.collection.handler; +import com.alibaba.fastjson.JSON; import com.iailab.framework.common.util.string.StrUtils; import com.iailab.module.data.common.enums.CommonConstant; import com.iailab.module.data.common.enums.DataTypeEnum; @@ -21,6 +22,8 @@ import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 计算点处理 @@ -57,6 +60,7 @@ if (CollectionUtils.isEmpty(dtos)) { return result; } + log.info(JSON.toJSONString(listBad)); dtos.forEach(dto -> { try { Object value = singleCompute(dto, dataMap, listGood, listBad); @@ -79,9 +83,13 @@ private Object singleCompute(DaPointDTO dto, Map<String, Object> dataMap,List<String> listGood,List<String> listBad) { String expression = dto.getExpression(); + log.info("PointNo=" + dto.getPointNo() + ";SourceExpression=" + expression); String[] arr = expression.split(regex); + // 去掉arr中的空格 + arr = Stream.of(arr).filter(StringUtils::isNotBlank).toArray(String[]::new); // 判断arr都在dataMap中包含 if (!Arrays.stream(arr).allMatch(dataMap::containsKey)) { + log.info("dataMap not contains key"); listBad.add(dto.getPointNo()); return CommonConstant.BAD_VALUE; } @@ -152,6 +160,11 @@ pointNos.add(s); dataMap.putAll(measureHandle.getCurrent(pointNos)); dataMap.putAll(constantHandle.getCurrent(pointNos)); + if (dataMap.get(s) == null) { + log.info("计算点数据异常"); + log.info("pointNo=" + dto.getPointNo() +";dataMap.key=" + s); + return CommonConstant.BAD_VALUE; + } String valueStr = dataMap.get(s).toString(); if (StrUtils.isNumeric(valueStr) && new BigDecimal(valueStr).compareTo(CommonConstant.BAD_VALUE) == 0) { log.info("BAD_VALUE:" + s); -- Gitblit v1.9.3