From cc69f877cb51f4014c664d8002050fa0f9314a81 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期三, 28 五月 2025 15:35:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java |   35 ++++++++++++++++++++++++++++++++---
 1 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java
index 0b9271a..83fd193 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java
@@ -8,9 +8,13 @@
 import com.iailab.module.data.ind.item.service.IndItemService;
 import com.iailab.module.data.ind.item.vo.IndItemValueVO;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -51,11 +55,13 @@
                 result = derItemHandler.queryValue(indItem.getId());
                 break;
             case CAL:
-                result = calItemHandler.queryValue(itemNo);
+                result = calItemHandler.queryValue(indItem.getId());
                 break;
             default:
                 break;
         }
+        // 考虑指标精度和转换系数
+        handleResult(result,indItem);
         return result;
     }
 
@@ -71,14 +77,37 @@
                 result = atomItemHandler.queryValue(indItem.getId());
                 break;
             case DER:
-                result = derItemHandler.queryValue(itemNo, startTime, endTime);
+                result = derItemHandler.queryValue(indItem.getId(), startTime, endTime);
                 break;
             case CAL:
-                result = calItemHandler.queryValue(itemNo, startTime, endTime);
+                result = calItemHandler.queryValue(indItem.getId(), startTime, endTime);
                 break;
             default:
                 break;
         }
+        // 考虑指标精度和转换系数
+        handleResult(result,indItem);
         return result;
     }
+
+    private void handleResult(List<IndItemValueVO> result, IndItemEntity indItem) {
+        if (!CollectionUtils.isEmpty(result)) {
+            result.forEach(e -> {
+                if (e != null) {
+                    Object dataValue = e.getDataValue();
+                    if (dataValue != null && dataValue instanceof Number) {
+                        BigDecimal value = new BigDecimal(dataValue.toString());
+                        if (StringUtils.isNotBlank(indItem.getCoefficient())) {
+                            value = value.multiply(new BigDecimal(indItem.getCoefficient()));
+                        }
+                        if (indItem.getPrecision() != null) {
+                            value = value.setScale(indItem.getPrecision(), BigDecimal.ROUND_HALF_UP);
+                        }
+                        e.setDataValue(value.doubleValue());
+                    }
+                }
+
+            });
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3