From b70814984096f1ff64bf0a6e69123e2bdbced9c3 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期四, 29 五月 2025 11:25:41 +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 |   14 ++++++++++++++
 1 files changed, 14 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 22b0cbd..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
@@ -47,6 +47,12 @@
     private ConstantHandle constantHandle;
 
     @Resource
+    private CumulateHandle cumulateHandle;
+
+    @Resource
+    private ExtremalHandle extremalHandle;
+
+    @Resource
     private JavaScriptHandler javaScriptHandler;
 
     @Autowired
@@ -67,6 +73,12 @@
                     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(GenInfluxPointValueUtils.getByMin(collectTime, DataPointFreqEnum.getEumByCode(dto.getMinfreqid())));
                     result.add(pojo);
@@ -165,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