| | |
| | | apiPointValueQueryDTO.setStart(start0); |
| | | List<Object[]> dataList = new ArrayList<>(); |
| | | List<Double> valueList = new ArrayList<>(); |
| | | double max = 0; |
| | | double min = 0; |
| | | double avg = 0; |
| | | String maxTime = ""; |
| | | String minTime = ""; |
| | | |
| | | if (StringUtils.isNotBlank(pointNo)) { |
| | | apiPointValueQueryDTO.setPointNo(pointNo); |
| | |
| | | valueList.add(pv.getV()); |
| | | } |
| | | |
| | | // 返送累计 |
| | | double fsl = 0; |
| | | double max = 0; |
| | | double min = 0; |
| | | double avg = 0; |
| | | if (!CollectionUtils.isEmpty(valueList)) { |
| | | max = valueList.stream().mapToDouble(Double::doubleValue).max().getAsDouble(); |
| | | min = valueList.stream().mapToDouble(Double::doubleValue).min().getAsDouble(); |
| | | avg = valueList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | |
| | | if (powerNetFactorQuery.getCurFlag() != null && powerNetFactorQuery.getCurFlag().intValue() != 0) { |
| | | for ( Double val : valueList) { |
| | | if (new BigDecimal(val).compareTo(BigDecimal.ZERO) != powerNetFactorQuery.getCurFlag()) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | powerHistoryDTO.setMax(new BigDecimal(max).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | powerHistoryDTO.setMin(new BigDecimal(min).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | powerHistoryDTO.setAvg(new BigDecimal(avg).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | |
| | | // 当查询为P, Q,且有返送flag时 计算 返送累计 |
| | | if (("P".equals(queryType.toUpperCase()) || "Q".equals(queryType.toUpperCase())) && |
| | | powerNetFactorQuery.getCurFlag() != null && |
| | | powerNetFactorQuery.getCurFlag().intValue() != 0) { |
| | | powerHistoryDTO.setFsl(new BigDecimal(fsl).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | |
| | | powerHistoryDTO.setFsl(new BigDecimal(fsl).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | } else if (StringUtils.isNotBlank(pointNoArr[0]) && StringUtils.isNotBlank(pointNoArr[1])) { |
| | | apiPointValueQueryDTO.setPointNo(pointNoArr[0]); |
| | | List<ApiPointValueDTO> chartDataP = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); |
| | |
| | | |
| | | for (String cate : categories) { |
| | | Double cos = PowerUtil.calculateCos(dataMapP.get(cate), dataMapQ.get(cate)); |
| | | if (cos == null) { |
| | | continue; |
| | | } |
| | | Object[] data = new Object[2]; |
| | | data[0] = cate; |
| | | data[1] = cos == null ? 0 : new BigDecimal(cos).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | data[1] = cos; |
| | | dataList.add(data); |
| | | if (cos != null) { |
| | | valueList.add(cos); |
| | | } |
| | | double max = 0; |
| | | double min = 0; |
| | | double avg = 0; |
| | | if (!CollectionUtils.isEmpty(valueList)) { |
| | | max = valueList.stream().mapToDouble(Double::doubleValue).max().getAsDouble(); |
| | | min = valueList.stream().mapToDouble(Double::doubleValue).min().getAsDouble(); |
| | | avg = valueList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | powerHistoryDTO.setMax(new BigDecimal(max).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | powerHistoryDTO.setMin(new BigDecimal(min).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | powerHistoryDTO.setAvg(new BigDecimal(avg).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | valueList.add(cos); |
| | | } |
| | | } |
| | | |
| | | if (!CollectionUtils.isEmpty(valueList)) { |
| | | // max = valueList.stream().mapToDouble(Double::doubleValue).max().getAsDouble(); |
| | | // min = valueList.stream().mapToDouble(Double::doubleValue).min().getAsDouble(); |
| | | avg = valueList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | max = valueList.get(0).doubleValue(); |
| | | min = valueList.get(0).doubleValue(); |
| | | for (Object[] dataItem : dataList) { |
| | | String time = (String) dataItem[0]; |
| | | double value = (double)dataItem[1]; |
| | | if (value > max) { |
| | | max = value; |
| | | maxTime = time; |
| | | } |
| | | if (value < min) { |
| | | min = value; |
| | | minTime = time; |
| | | } |
| | | } |
| | | } |
| | | |
| | | powerHistoryDTO.setMax(new BigDecimal(max).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | powerHistoryDTO.setMin(new BigDecimal(min).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | powerHistoryDTO.setAvg(new BigDecimal(avg).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | powerHistoryDTO.setMaxTime(maxTime); |
| | | powerHistoryDTO.setMinTime(minTime); |
| | | powerHistoryDTO.setDataList(dataList); |
| | | result.put(nodeCode, powerHistoryDTO); |
| | | } |