dongyukun
6 天以前 032af21e28a83856c74b63db1f4638e4cdbec462
归档过滤-2
已修改1个文件
20 ■■■■ 文件已修改
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java
@@ -218,9 +218,9 @@
    }
    private BigDecimal calculate(String calculate, List<ApiPointValueDTO> valueList) {
        valueList = valueList.stream().filter(e -> !Double.valueOf(e.getV()).equals(-2.0) ).collect(Collectors.toList());
        List<ApiPointValueDTO> valueFilterList = valueList.stream().filter(e -> !Double.valueOf(e.getV()).equals(-2.0) ).collect(Collectors.toList());
        log.debug("开始计算");
        if (valueList == null || valueList.isEmpty()) {
        if ( valueList.isEmpty() || valueFilterList.isEmpty()) {
            throw new IllegalArgumentException("valueList 为空");
        }
@@ -232,15 +232,15 @@
                value = BigDecimal.valueOf(valueList.get(valueList.size() - 1).getV());
                break;
            case SUM:
                value = BigDecimal.valueOf(valueList.stream().mapToDouble(ApiPointValueDTO::getV).sum());
                value = BigDecimal.valueOf(valueFilterList.stream().mapToDouble(ApiPointValueDTO::getV).sum());
                break;
            case DIFF:
                if (valueList.size() < 2) {
                    throw new IllegalArgumentException("valueList size小于2");
                if (valueFilterList.size() < 2) {
                    throw new IllegalArgumentException("valueFilterList size小于2");
                }
                BigDecimal prev = BigDecimal.valueOf(valueList.get(0).getV());
                for (int i = 1; i < valueList.size(); i++) {
                    BigDecimal curr = BigDecimal.valueOf(valueList.get(i).getV());
                BigDecimal prev = BigDecimal.valueOf(valueFilterList.get(0).getV());
                for (int i = 1; i < valueFilterList.size(); i++) {
                    BigDecimal curr = BigDecimal.valueOf(valueFilterList.get(i).getV());
                    if(curr.compareTo(prev) > 0 ) {
                        value = value.add(curr.subtract(prev));
                    }
@@ -248,8 +248,8 @@
                }
                break;
            case AVG:
                value = BigDecimal.valueOf(valueList.stream().mapToDouble(ApiPointValueDTO::getV).sum());
                value = value.divide(BigDecimal.valueOf(valueList.size()), 2, BigDecimal.ROUND_HALF_UP);
                value = BigDecimal.valueOf(valueFilterList.stream().mapToDouble(ApiPointValueDTO::getV).sum());
                value = value.divide(BigDecimal.valueOf(valueFilterList.size()), 2, BigDecimal.ROUND_HALF_UP);
                break;
            default:
                throw new IllegalArgumentException("没有对应计算方法");