From 3e15efd83d12f5e24bc56a3d66ddbe3633270f7f Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期五, 20 六月 2025 12:30:28 +0800 Subject: [PATCH] 绝对值累计 --- iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java | 21 ++++++++++++++++++--- 1 files changed, 18 insertions(+), 3 deletions(-) diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java index c0e8f0e..ccb5ede 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java @@ -23,6 +23,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.TimeUnit; /** * 累计点处理 @@ -91,6 +92,9 @@ Object rawValue = singleCompute(item, calendar.getTime()); BigDecimal coefficient = item.getUnittransfactor() == null ? BigDecimal.ONE : item.getUnittransfactor(); value = new BigDecimal(rawValue.toString()).multiply(coefficient); + // 写入缓存 + redisTemplate.opsForValue().set(PointCollector.PV + item.getPointNo(), + new BigDecimal(value.toString()).doubleValue(), PointCollector.offset, TimeUnit.SECONDS); } data.put(item.getPointNo(), value); }); @@ -126,11 +130,22 @@ log.info("queryDto=" + JSONObject.toJSONString(queryDto)); List<ApiPointValueDTO> dataList = new ArrayList<>(); List<ApiPointValueDTO> dataListTemp = dataPointApi.queryPointHistoryValue(queryDto); - if (dto.getIsCumuNeg() != null && dto.getIsCumuNeg().equals(0)) { - for(ApiPointValueDTO item : dataListTemp) { - if (item.getV() > 0) { + if (dto.getIsCumuNeg() != null) { + if (dto.getIsCumuNeg().equals(0)) { + // 不累计负值 + for (ApiPointValueDTO item : dataListTemp) { + if (item.getV() > 0) { + dataList.add(item); + } + } + }else if (dto.getIsCumuNeg().equals(2)) { + // 绝对值累计 + for (ApiPointValueDTO item : dataListTemp) { + item.setV(Math.abs(item.getV())); dataList.add(item); } + }else { + dataList = dataListTemp; } } else { dataList = dataListTemp; -- Gitblit v1.9.3