From 24996ea75ec4ca3b7d154387bfe37ec9dd387255 Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期四, 29 五月 2025 14:40:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/ExtremalHandle.java |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/ExtremalHandle.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/ExtremalHandle.java
index 5e9b273..2f07689 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/ExtremalHandle.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/ExtremalHandle.java
@@ -20,6 +20,7 @@
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.*;
 
 /**
@@ -43,7 +44,7 @@
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
 
-    public List<InfluxPointValuePOJO> handle(Date collectTime, List<DaPointDTO> dtos, List<String> listGood, List<String> listBad) {
+    public List<InfluxPointValuePOJO> handle(Date collectTime, List<DaPointDTO> dtos, Map<String, Object> dataMap, List<String> listGood, List<String> listBad) {
         List<InfluxPointValuePOJO> result = new ArrayList<>();
         try {
             log.info("极值点处理开始");
@@ -52,9 +53,12 @@
             }
             dtos.forEach(dto -> {
                 try {
-                    Object value = singleCompute(dto, collectTime, listGood, listBad);
-                    InfluxPointValuePOJO pojo = GenInfluxPointValueUtils.getByPoint(dto, value);
+                    Object rawValue = singleCompute(dto, collectTime, listGood, listBad);
+                    BigDecimal coefficient = dto.getUnittransfactor() == null ? BigDecimal.ONE : dto.getUnittransfactor();
+                    BigDecimal calValue = new BigDecimal(rawValue.toString()).multiply(coefficient);
+                    InfluxPointValuePOJO pojo = GenInfluxPointValueUtils.getByPoint(dto, calValue);
                     pojo.setTimestamp(GenInfluxPointValueUtils.getByMin(collectTime, DataPointFreqEnum.getEumByCode(dto.getMinfreqid())));
+                    dataMap.put(dto.getPointNo(), calValue);
                     result.add(pojo);
                 } catch (Exception ex) {
                     ex.printStackTrace();
@@ -83,6 +87,8 @@
                 value = redisTemplate.opsForValue().get(PointCollector.PV + item.getPointNo());
             } else {
                 value = singleCompute(item, calendar.getTime(), new ArrayList<>(), new ArrayList<>());
+                BigDecimal coefficient = item.getUnittransfactor() == null ? BigDecimal.ONE : item.getUnittransfactor();
+                value = new BigDecimal(value.toString()).multiply(coefficient);
             }
             data.put(item.getPointNo(), value);
         });

--
Gitblit v1.9.3