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/ExtremalHandle.java | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 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 d2bb19d..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); }); @@ -91,8 +97,8 @@ private Object singleCompute(DaPointDTO dto, Date collectTime, List<String> listGood, List<String> listBad) { Object value = CommonConstant.BAD_VALUE; - ApiPointDTO pointDTO = dataPointApi.getInfoByNo(dto.getMomentPoint()); - if (pointDTO == null) { + ApiPointDTO momentPoint = dataPointApi.getInfoByNo(dto.getMomentPoint()); + if (momentPoint == null) { if (listBad != null) { listBad.add(dto.getPointNo()); } @@ -101,12 +107,11 @@ log.info("极值:" + dto.getPointNo()); // 动态长度 - ApiPointDTO momentPoint = dataPointApi.getInfoByNo(dto.getMomentPoint()); Calendar calendar = Calendar.getInstance(); calendar.setTime(collectTime); calendar.add(Calendar.SECOND, -1 * DataPointFreqEnum.getEumByCode(momentPoint.getMinfreqid()).getValue()); Date endTime = calendar.getTime(); - Date startTime = ExtremaUnitEnum.getStartTime(calendar, dto.getLength(), dto.getCumulateUnit()); + Date startTime = ExtremaUnitEnum.getStartTime(calendar, dto.getLength(), dto.getExtremalUnit()); ApiPointValueQueryDTO queryDto = new ApiPointValueQueryDTO(); queryDto.setPointNo(momentPoint.getPointNo()); queryDto.setStart(startTime); -- Gitblit v1.9.3