潘志宝
2 天以前 5dc3f61acd160fb9f7e0da6b418b11b302a9ae99
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java
@@ -79,6 +79,7 @@
        }
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        pointMathList.forEach(item -> {
            Object value = CommonConstant.BAD_VALUE;
            if (redisTemplate.hasKey(PointCollector.PV + item.getPointNo())) {
@@ -127,7 +128,7 @@
            return BigDecimal.ZERO;
        } else if (dataList.size() < dto.getLength()) {
            log.info("补全数据,dataList.size()=" + dataList.size());
            dataList = completionData(dto.getLength(), dataList, startTime, endTime, pointDTO);
            dataList = completionData(dto.getLength(), dataList, startTime, endTime, momentPoint.getMinfreqid());
        }
        double total = dataList.stream().mapToDouble(ApiPointValueDTO::getV).sum();
        if (listGood != null) {
@@ -136,7 +137,7 @@
        return new BigDecimal(total).divide(new BigDecimal(dto.getDivisor()), 2, BigDecimal.ROUND_HALF_UP);
    }
    private List<ApiPointValueDTO> completionData(int length, List<ApiPointValueDTO> dataList, Date startTime, Date endTime, ApiPointDTO pointDTO) {
    private List<ApiPointValueDTO> completionData(int length, List<ApiPointValueDTO> dataList, Date startTime, Date endTime, String minfreqid) {
        if (CollectionUtils.isEmpty(dataList) || length == dataList.size()) {
            return dataList;
        } else if (length < dataList.size()) {
@@ -146,7 +147,7 @@
        List<ApiPointValueDTO> result = new ArrayList<>();
        long start = startTime.getTime();
        long end = endTime.getTime();
        long oneMin = 1000L * DataPointFreqEnum.getEumByCode(pointDTO.getMinfreqid()).getValue();
        long oneMin = 1000L * DataPointFreqEnum.getEumByCode(minfreqid).getValue();
        long mins = (end - start) / oneMin;
        //找出缺少项