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/MeasureHandle.java |    7 ++++++-
 1 files changed, 6 insertions(+), 1 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 fd55e6d..14395b3 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,6 @@
 package com.iailab.module.data.point.collection.handler;
 
+import com.iailab.framework.common.util.string.StrUtils;
 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;
@@ -182,10 +183,14 @@
         pointMeasureList.forEach(
                 item -> {
                     try {
-                        boolean hasKey = redisTemplate.hasKey(PointCollector.PV + item.getPointNo());
                         Object value = CommonConstant.BAD_VALUE;
+                        boolean hasKey = redisTemplate.hasKey(PointCollector.PV + item.getPointNo());
                         if (hasKey) {
                             value = redisTemplate.opsForValue().get(PointCollector.PV + item.getPointNo());
+                        }
+                        if(hasKey && StrUtils.isNumeric(value.toString()) &&
+                                new BigDecimal(value.toString()).compareTo(CommonConstant.BAD_VALUE) != 0 ) {
+                            value = redisTemplate.opsForValue().get(PointCollector.PV + item.getPointNo());
                         } else if (DataSourceType.OPCUA.getCode().equals(item.getSourceType())) {
                             value = opcUaCollector.getTagValue(item.getSourceId(), item.getTagNo());
                         } else if (DataSourceType.ModBus.getCode().equals(item.getSourceType())) {

--
Gitblit v1.9.3