From e690db9517216bea6a19c7c186d35b2ad8d6fd3f Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期一, 26 五月 2025 15:41:14 +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/CalculateHandle.java |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 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 8b1376a..cdca696 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
@@ -6,6 +6,7 @@
 import com.iailab.module.data.common.enums.DataTypeEnum;
 import com.iailab.module.data.common.enums.JsErrorCode;
 import com.iailab.module.data.common.utils.JavaScriptHandler;
+import com.iailab.module.data.enums.DataPointFreqEnum;
 import com.iailab.module.data.point.collection.PointCollector;
 import com.iailab.module.data.point.collection.utils.GenInfluxPointValueUtils;
 import com.iailab.module.data.point.dto.DaPointDTO;
@@ -46,6 +47,12 @@
     private ConstantHandle constantHandle;
 
     @Resource
+    private CumulateHandle cumulateHandle;
+
+    @Resource
+    private ExtremalHandle extremalHandle;
+
+    @Resource
     private JavaScriptHandler javaScriptHandler;
 
     @Autowired
@@ -66,8 +73,14 @@
                     Object rawValue = singleCompute(dto, dataMap, listGood, listBad);
                     BigDecimal coefficient = dto.getUnittransfactor() == null ? BigDecimal.ONE : dto.getUnittransfactor();
                     BigDecimal calValue = new BigDecimal(rawValue.toString()).multiply(coefficient);
+                    if (dto.getMaxValue() != null && calValue.compareTo(dto.getMaxValue()) > 0) {
+                        calValue = dto.getMaxValue();
+                    } else if (dto.getMinValue() != null && calValue.compareTo(dto.getMinValue()) < 0) {
+                        calValue = dto.getMinValue();
+                    }
+
                     InfluxPointValuePOJO pojo = GenInfluxPointValueUtils.getByPoint(dto, calValue);
-                    pojo.setTimestamp(collectTime.toInstant());
+                    pojo.setTimestamp(GenInfluxPointValueUtils.getByMin(collectTime, DataPointFreqEnum.getEumByCode(dto.getMinfreqid())));
                     result.add(pojo);
                 } catch (Exception ex) {
                     ex.printStackTrace();
@@ -164,6 +177,8 @@
             pointNos.add(s);
             dataMap.putAll(measureHandle.getCurrent(pointNos));
             dataMap.putAll(constantHandle.getCurrent(pointNos));
+            dataMap.putAll(cumulateHandle.getCurrent(pointNos));
+            dataMap.putAll(extremalHandle.getCurrent(pointNos));
             if (dataMap.get(s) == null) {
                 log.info("计算点数据异常");
                 log.info("pointNo=" + dto.getPointNo() + ";dataMap.key=" + s);

--
Gitblit v1.9.3