Explorar el Código

生产调度中心概览压力接口修改

wangli hace 4 años
padre
commit
51d3f0d601

+ 1 - 1
sms_water/src/main/java/com/huaxu/controller/MonitorDataReportController.java

@@ -150,7 +150,7 @@ public class MonitorDataReportController {
 
     @RequestMapping(value = "sceneNormalRates",method = RequestMethod.GET)
     @ApiOperation(value = "概览首页——管网水质情况")
-    public AjaxMessage<List<SceneNormalRate>> SceneNormalRates(){
+    public AjaxMessage<List<SceneNormalRate>> sceneNormalRates(){
         return new AjaxMessage<>(ResultStatus.OK,monitorDataReportService.SceneNormalRates());
     }
 

+ 3 - 1
sms_water/src/main/java/com/huaxu/dto/generalView/SceneWaterPressure.java

@@ -36,7 +36,9 @@ public class SceneWaterPressure implements Serializable {
     @ApiModelProperty("最大压力场景名称")
     private String maxPressureSceneName;
     @ApiModelProperty("最大压力值")
-    private BigDecimal MaxPressureValue;
+    private BigDecimal maxPressureValue;
+    @ApiModelProperty("平均压力值")
+    private BigDecimal avgPressureValue;
 
     public SceneWaterPressure(){
         this.pressureLevel1=0;

+ 295 - 289
sms_water/src/main/java/com/huaxu/service/impl/MonitorDataReportServiceImpl.java

@@ -258,295 +258,295 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
     @Override
     public GeneralViewResults monitorDataGeneralView() {
         GeneralViewResults generalViewResults = new GeneralViewResults();
-        LoginUser loginUser = UserUtil.getCurrentUser();
-        String tenantId = loginUser.getTenantId();
-        //查询设备编码
-        List<String> deviceCodes = monitorDataReportMapper.selectDeviceCode(tenantId);
-        //根据编码获取redis中的实时数据
-        List<MonitorDataEntity> monitorDataEntities = new ArrayList<>();
-        for (String deviceCode : deviceCodes) {
-            //先取缓存里的数据
-            byte[] bytes = redisUtil.get(("sms_water_" + deviceCode).getBytes());
-            if (bytes != null && bytes.length > 0) {
-                monitorDataEntities.add((MonitorDataEntity) ByteArrayUtils.bytesToObject(bytes).get());
-            }
-        }
-        //将获取到 实时数据转换为map,方便匹配数据deviceId
-        Map<Integer, MonitorDataEntity> MonitorDataMap = monitorDataEntities.stream().collect(Collectors.toMap(MonitorDataEntity::getDeviceId, a -> a, (k1, k2) -> k1));
-
-
-        LocalDate localDate = LocalDate.now();
-        //水厂近30天供水量
-        List<DeviceWaterSupply> deviceWaterSupplies = monitorDataReportMapper.getDeviceWaterFor30Day(tenantId);
-        for (int i = 0; i < 30; i++) {
-            LocalDate newLocalDate = localDate.plusDays(-i - 1);
-            if (i <= deviceWaterSupplies.size()
-                    || !newLocalDate.isEqual(LocalDate.of(deviceWaterSupplies.get(i).getYear(),
-                    deviceWaterSupplies.get(i).getMonth(),
-                    deviceWaterSupplies.get(i).getDay()))) {
-
-                DeviceWaterSupply deviceWaterSupply = new DeviceWaterSupply();
-                deviceWaterSupply.setOrderNo(i + 1);
-                deviceWaterSupply.setAmount(BigDecimal.ZERO);
-                deviceWaterSupply.setYear(newLocalDate.getYear());
-                deviceWaterSupply.setMonth(newLocalDate.getMonthValue());
-                deviceWaterSupply.setDay(newLocalDate.getDayOfMonth());
-                deviceWaterSupply.setDate(newLocalDate);
-                deviceWaterSupplies.add(i, deviceWaterSupply);
-            } else {
-                deviceWaterSupplies.get(i).setOrderNo(i + 1);
-                deviceWaterSupplies.get(i).setDate(newLocalDate);
-            }
-        }
-        //0 30天水量
-        generalViewResults.setDeviceWaterSupplies(deviceWaterSupplies);
-
-        //供水详情数据(合计:瞬时、本天、本月、本年)
-        DeviceWaterAmount deviceWaterAmount = new DeviceWaterAmount();
-        //14瞬时流量
-        List<DeviceWaterDetail> deviceSupplyWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水厂", 14, tenantId);
-        List<DeviceWaterDetail> deviceIntakeWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水源", 14, tenantId);
-
-        //水厂获取实时流量并计算出当天流量
-        for (DeviceWaterDetail deviceWaterDetail : deviceSupplyWaterDetailsForNow) {
-            MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
-            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
-                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
-                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
-                        //水厂累计瞬时流量
-                        deviceWaterAmount.addWaterSupplyAmountForNow(new BigDecimal(monitorDataValueEntity.getDataValue()));
-                    }
-                }
-            }
-
-        }
-        //水源获取实时流量并计算出当天流量
-        for (DeviceWaterDetail deviceWaterDetail : deviceIntakeWaterDetailsForNow) {
-            MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
-            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
-                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
-                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
-                        //水源累计瞬时流量
-                        deviceWaterAmount.addWaterIntakeAmountForNow(new BigDecimal(monitorDataValueEntity.getDataValue()));
-                    }
-                }
-            }
-        }
-
-        //3供水 4取水
-        List<DeviceWaterDetail> deviceSupplyWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth());
-        List<DeviceWaterDetail> deviceIntakeWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水源", 4, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth());
-
-        //水厂获取实时流量并计算出当天流量
-        for (DeviceWaterDetail deviceWaterDetail : deviceSupplyWaterDetailsForDay) {
-            MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
-            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
-                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
-                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
-                        //累计当天流量
-                        deviceWaterAmount.addWaterSupplyAmountForDay(new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()).add(deviceWaterDetail.getAmount()));
-                    }
-                }
-            }
-
-        }
-        //水源获取实时流量并计算出当天流量
-        for (DeviceWaterDetail deviceWaterDetail : deviceIntakeWaterDetailsForDay) {
-            MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
-            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
-                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
-                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
-                        //累计当天流量
-                        deviceWaterAmount.addWaterIntakeAmountForDay(new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()).add(deviceWaterDetail.getAmount()));
-                    }
-                }
-            }
-        }
-
-        BigDecimal waterSupplyAmountForMonth = monitorDataReportMapper.getDeviceWaterDetailForMonth("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue());
-        BigDecimal waterSupplyAmountForYear = monitorDataReportMapper.getDeviceWaterDetailForYear("水厂", 3, tenantId, localDate.getYear());
-        if (waterSupplyAmountForMonth == null) {
-            waterSupplyAmountForMonth = BigDecimal.ZERO;
-        }
-        if (waterSupplyAmountForYear == null) {
-            waterSupplyAmountForYear = BigDecimal.ZERO;
-        }
-        //水厂当月流量
-        if (deviceWaterAmount.getWaterSupplyAmountForDay() == null) {
-            deviceWaterAmount.setWaterSupplyAmountForMonth(waterSupplyAmountForMonth);
-        } else {
-            deviceWaterAmount.setWaterSupplyAmountForMonth(waterSupplyAmountForMonth.add(deviceWaterAmount.getWaterSupplyAmountForDay()));
-        }
-        //水厂当年流量
-        if (deviceWaterAmount.getWaterSupplyAmountForMonth() == null) {
-            deviceWaterAmount.setWaterSupplyAmountForYear(waterSupplyAmountForYear);
-        } else {
-            deviceWaterAmount.setWaterSupplyAmountForYear(waterSupplyAmountForYear.add(deviceWaterAmount.getWaterSupplyAmountForMonth()));
-        }
-
-
-        BigDecimal waterIntakeAmountForMonth = monitorDataReportMapper.getDeviceWaterDetailForMonth("水源", 4, tenantId, localDate.getYear(), localDate.getMonthValue());
-        BigDecimal waterIntakeAmountForYear = monitorDataReportMapper.getDeviceWaterDetailForYear("水源", 4, tenantId, localDate.getYear());
-        if (waterIntakeAmountForMonth == null) {
-            waterIntakeAmountForMonth = BigDecimal.ZERO;
-        }
-        if (waterIntakeAmountForYear == null) {
-            waterIntakeAmountForYear = BigDecimal.ZERO;
-        }
-        //水源当月流量
-        if (deviceWaterAmount.getWaterIntakeAmountForDay() == null) {
-            deviceWaterAmount.setWaterIntakeAmountForMonth(waterIntakeAmountForMonth);
-        } else {
-            deviceWaterAmount.setWaterIntakeAmountForMonth(waterIntakeAmountForMonth.add(deviceWaterAmount.getWaterIntakeAmountForDay()));
-        }
-        //水源当年流量
-        if (deviceWaterAmount.getWaterIntakeAmountForMonth() == null) {
-            deviceWaterAmount.setWaterIntakeAmountForYear(waterIntakeAmountForYear);
-        } else {
-            deviceWaterAmount.setWaterIntakeAmountForYear(waterIntakeAmountForYear.add(deviceWaterAmount.getWaterIntakeAmountForMonth()));
-        }
-        //1
-        generalViewResults.setDeviceWaterAmount(deviceWaterAmount);
-
-        //实时报警信息
-        List<SceneAlarm> sceneAlarms = monitorDataReportMapper.getAlarmInfoForScene(tenantId);
-
-        //2报警
-        generalViewResults.setSceneAlarms(sceneAlarms);
-        //管网水质(水质 -1、8PH、10浊度、11余氯)
-        List<SceneNormalRate> SceneNormalRates = new ArrayList<>();
-        //水质
-        SceneNormalRate sceneNormalRate1 = monitorDataReportMapper.getQualificationForScene(tenantId, -1);
-        //PH
-        SceneNormalRate sceneNormalRate2 = monitorDataReportMapper.getQualificationForScene(tenantId, 8);
-        //浊度
-        SceneNormalRate sceneNormalRate3 = monitorDataReportMapper.getQualificationForScene(tenantId, 10);
-        //余氯
-        SceneNormalRate sceneNormalRate4 = monitorDataReportMapper.getQualificationForScene(tenantId, 11);
-        SceneNormalRates.add(sceneNormalRate1);
-        SceneNormalRates.add(sceneNormalRate2);
-        SceneNormalRates.add(sceneNormalRate3);
-        SceneNormalRates.add(sceneNormalRate4);
-        //3水质情况
-        generalViewResults.setSceneNormalRates(SceneNormalRates);
-
-        //压力分布
-        List<DeviceWaterDetail> devicePressureWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水厂", 13, tenantId);
-
-        List<SceneWaterAmount> sceneWaterPressureAmounts = new ArrayList<>();
-
-        devicePressureWaterDetailsForNow.stream()
-                .filter(item -> StringUtils.isNotBlank(item.getSceneName()))
-                .collect(Collectors.groupingBy(item -> item.getSceneName(), Collectors.toList()))
-                .forEach((key, value) -> {
-                    SceneWaterAmount sceneWaterAmount = new SceneWaterAmount();
-                    sceneWaterAmount.setSceneName(key);
-                    sceneWaterAmount.setWaterAmount(BigDecimal.ZERO);
-                    value.stream().forEach(deviceWaterDetail -> {
-                        MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
-                        if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
-                            monitorDataEntity.getDataValues().stream()
-                                    .filter(monitorDataValueEntity -> monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId()))
-                                    .forEach(monitorDataValueEntity ->
-                                            //累计当前压力
-                                            sceneWaterAmount.setWaterAmount(sceneWaterAmount.getWaterAmount().add(new BigDecimal(monitorDataValueEntity.getDataValue())))
-                                    );
-                        }
-                    });
-                    sceneWaterPressureAmounts.add(sceneWaterAmount);
-                });
-
-        //进行压力分组
-        SceneWaterPressure sceneWaterPressure = new SceneWaterPressure();
-        SceneWaterAmount amountMax = null;
-        SceneWaterAmount amountMin = null;
-        for (SceneWaterAmount waterPressure : sceneWaterPressureAmounts) {
-            if (StringUtils.isNotBlank(waterPressure.getSceneName()) && waterPressure.getWaterAmount() != null) {
-                BigDecimal amount = waterPressure.getWaterAmount();
-                amountMax = amountMax == null || amount.compareTo(amountMax.getWaterAmount()) == 1 ? waterPressure : amountMax;
-                amountMin = amountMin == null || amount.compareTo(amountMin.getWaterAmount()) == -1 ? waterPressure : amountMin;
-
-                if (amount.compareTo(new BigDecimal(0.15)) == -1) {
-                    sceneWaterPressure.setPressureLevel1(sceneWaterPressure.getPressureLevel1() + 1);
-                } else if (amount.compareTo(new BigDecimal(0.15)) != 1 && amount.compareTo(new BigDecimal(0.30)) == -1) {
-                    sceneWaterPressure.setPressureLevel2(sceneWaterPressure.getPressureLevel2() + 1);
-                } else if (amount.compareTo(new BigDecimal(0.30)) != -1 && amount.compareTo(new BigDecimal(0.40)) == -1) {
-                    sceneWaterPressure.setPressureLevel3(sceneWaterPressure.getPressureLevel3() + 1);
-                } else if (amount.compareTo(new BigDecimal(0.40)) != -1 && amount.compareTo(new BigDecimal(0.50)) == -1) {
-                    sceneWaterPressure.setPressureLevel4(sceneWaterPressure.getPressureLevel4() + 1);
-                } else if (amount.compareTo(new BigDecimal(0.50)) != -1) {
-                    sceneWaterPressure.setPressureLevel5(sceneWaterPressure.getPressureLevel5() + 1);
-                }
-            }
-        }
-        if (amountMax != null) {
-            sceneWaterPressure.setMaxPressureSceneName(amountMax.getSceneName());
-            sceneWaterPressure.setMaxPressureValue(amountMax.getWaterAmount());
-        }
-        if (amountMax != null) {
-            sceneWaterPressure.setMinPressureSceneName(amountMin.getSceneName());
-            sceneWaterPressure.setMinPressureValue(amountMin.getWaterAmount());
-        }
-
-        //4压力分组
-        generalViewResults.setSceneWaterPressure(sceneWaterPressure);
-
-        //今日水厂制水量排行
-//        deviceSupplyWaterDetailsForDay
-        List<SceneWaterAmount> sceneWaterAmounts = new ArrayList<>();
-        deviceSupplyWaterDetailsForDay.stream()
-                .filter(item -> StringUtils.isNotBlank(item.getSceneName()))
-                .collect(Collectors.groupingBy(item -> item.getSceneName(), Collectors.toList()))
-                .forEach((key, value) -> {
-                    SceneWaterAmount sceneWaterAmount = new SceneWaterAmount();
-                    sceneWaterAmount.setSceneName(key);
-                    sceneWaterAmount.setWaterAmount(BigDecimal.ZERO);
-                    value.stream().forEach(deviceWaterDetail -> {
-                        MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
-                        if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
-                            monitorDataEntity.getDataValues().stream()
-                                    .filter(monitorDataValueEntity -> monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId()))
-                                    .forEach(monitorDataValueEntity ->
-                                            //累计当天流量
-                                            sceneWaterAmount.setWaterAmount(sceneWaterAmount.getWaterAmount().add(
-                                                    new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()).add(deviceWaterDetail.getAmount())))
-                                    );
-                        }
-                    });
-                    sceneWaterAmounts.add(sceneWaterAmount);
-                });
-        //倒序排序
-        sceneWaterAmounts.sort(Comparator.comparing(SceneWaterAmount::getWaterAmount).reversed());
-        //5水量排行
-        generalViewResults.setSceneWaterAmounts(sceneWaterAmounts);
-
-        //水厂制水、药耗、电耗对比曲线
-        List<WaterSupplyData> waterSupplyDatas = monitorDataReportMapper.getWaterSupplyData(tenantId);
-        List<WaterSupplyChart> waterSupplyCharts = new ArrayList<>();
-        waterSupplyDatas.stream()
-                .collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
-                .forEach((key, value) -> {
-                    WaterSupplyChart waterSupplyChart = new WaterSupplyChart();
-                    waterSupplyChart.setDate(key);
-                    value.stream().forEach(waterSupplyData -> {
-                        Period period = Period.between(LocalDate.of(waterSupplyData.getYear(), waterSupplyData.getMonth(), waterSupplyData.getDay()), localDate);
-                        waterSupplyChart.setSort(period.getDays());
-
-                        if (waterSupplyData.getParmType() == 3) { //供水
-                            waterSupplyChart.setWaterData(waterSupplyData.getAmount());
-                        } else if (waterSupplyData.getParmType() == 5) {//电耗
-                            waterSupplyChart.setPowerData(waterSupplyData.getAmount());
-                        } else if (waterSupplyData.getParmType() == 6) {//药耗
-                            waterSupplyChart.setDrugData(waterSupplyData.getAmount());
-                        }
-                    });
-                    waterSupplyCharts.add(waterSupplyChart);
-                });
-        waterSupplyCharts.sort(Comparator.comparing(WaterSupplyChart::getSort));
-
-        //6曲线图
-        generalViewResults.setWaterSupplyCharts(waterSupplyCharts);
-
+//        LoginUser loginUser = UserUtil.getCurrentUser();
+//        String tenantId = loginUser.getTenantId();
+//        //查询设备编码
+//        List<String> deviceCodes = monitorDataReportMapper.selectDeviceCode(tenantId);
+//        //根据编码获取redis中的实时数据
+//        List<MonitorDataEntity> monitorDataEntities = new ArrayList<>();
+//        for (String deviceCode : deviceCodes) {
+//            //先取缓存里的数据
+//            byte[] bytes = redisUtil.get(("sms_water_" + deviceCode).getBytes());
+//            if (bytes != null && bytes.length > 0) {
+//                monitorDataEntities.add((MonitorDataEntity) ByteArrayUtils.bytesToObject(bytes).get());
+//            }
+//        }
+//        //将获取到 实时数据转换为map,方便匹配数据deviceId
+//        Map<Integer, MonitorDataEntity> MonitorDataMap = monitorDataEntities.stream().collect(Collectors.toMap(MonitorDataEntity::getDeviceId, a -> a, (k1, k2) -> k1));
+//
+//
+//        LocalDate localDate = LocalDate.now();
+//        //水厂近30天供水量
+//        List<DeviceWaterSupply> deviceWaterSupplies = monitorDataReportMapper.getDeviceWaterFor30Day(tenantId);
+//        for (int i = 0; i < 30; i++) {
+//            LocalDate newLocalDate = localDate.plusDays(-i - 1);
+//            if (i <= deviceWaterSupplies.size()
+//                    || !newLocalDate.isEqual(LocalDate.of(deviceWaterSupplies.get(i).getYear(),
+//                    deviceWaterSupplies.get(i).getMonth(),
+//                    deviceWaterSupplies.get(i).getDay()))) {
+//
+//                DeviceWaterSupply deviceWaterSupply = new DeviceWaterSupply();
+//                deviceWaterSupply.setOrderNo(i + 1);
+//                deviceWaterSupply.setAmount(BigDecimal.ZERO);
+//                deviceWaterSupply.setYear(newLocalDate.getYear());
+//                deviceWaterSupply.setMonth(newLocalDate.getMonthValue());
+//                deviceWaterSupply.setDay(newLocalDate.getDayOfMonth());
+//                deviceWaterSupply.setDate(newLocalDate);
+//                deviceWaterSupplies.add(i, deviceWaterSupply);
+//            } else {
+//                deviceWaterSupplies.get(i).setOrderNo(i + 1);
+//                deviceWaterSupplies.get(i).setDate(newLocalDate);
+//            }
+//        }
+//        //0 30天水量
+//        generalViewResults.setDeviceWaterSupplies(deviceWaterSupplies);
+//
+//        //供水详情数据(合计:瞬时、本天、本月、本年)
+//        DeviceWaterAmount deviceWaterAmount = new DeviceWaterAmount();
+//        //14瞬时流量
+//        List<DeviceWaterDetail> deviceSupplyWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水厂", 14, tenantId);
+//        List<DeviceWaterDetail> deviceIntakeWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水源", 14, tenantId);
+//
+//        //水厂获取实时流量并计算出当天流量
+//        for (DeviceWaterDetail deviceWaterDetail : deviceSupplyWaterDetailsForNow) {
+//            MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
+//            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
+//                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
+//                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
+//                        //水厂累计瞬时流量
+//                        deviceWaterAmount.addWaterSupplyAmountForNow(new BigDecimal(monitorDataValueEntity.getDataValue()));
+//                    }
+//                }
+//            }
+//
+//        }
+//        //水源获取实时流量并计算出当天流量
+//        for (DeviceWaterDetail deviceWaterDetail : deviceIntakeWaterDetailsForNow) {
+//            MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
+//            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
+//                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
+//                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
+//                        //水源累计瞬时流量
+//                        deviceWaterAmount.addWaterIntakeAmountForNow(new BigDecimal(monitorDataValueEntity.getDataValue()));
+//                    }
+//                }
+//            }
+//        }
+//
+//        //3供水 4取水
+//        List<DeviceWaterDetail> deviceSupplyWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth());
+//        List<DeviceWaterDetail> deviceIntakeWaterDetailsForDay = monitorDataReportMapper.getDeviceWaterDetailForDay("水源", 4, tenantId, localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth());
+//
+//        //水厂获取实时流量并计算出当天流量
+//        for (DeviceWaterDetail deviceWaterDetail : deviceSupplyWaterDetailsForDay) {
+//            MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
+//            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
+//                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
+//                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
+//                        //累计当天流量
+//                        deviceWaterAmount.addWaterSupplyAmountForDay(new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()).add(deviceWaterDetail.getAmount()));
+//                    }
+//                }
+//            }
+//
+//        }
+//        //水源获取实时流量并计算出当天流量
+//        for (DeviceWaterDetail deviceWaterDetail : deviceIntakeWaterDetailsForDay) {
+//            MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
+//            if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
+//                for (MonitorDataValueEntity monitorDataValueEntity : monitorDataEntity.getDataValues()) {
+//                    if (monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId())) {
+//                        //累计当天流量
+//                        deviceWaterAmount.addWaterIntakeAmountForDay(new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()).add(deviceWaterDetail.getAmount()));
+//                    }
+//                }
+//            }
+//        }
+//
+//        BigDecimal waterSupplyAmountForMonth = monitorDataReportMapper.getDeviceWaterDetailForMonth("水厂", 3, tenantId, localDate.getYear(), localDate.getMonthValue());
+//        BigDecimal waterSupplyAmountForYear = monitorDataReportMapper.getDeviceWaterDetailForYear("水厂", 3, tenantId, localDate.getYear());
+//        if (waterSupplyAmountForMonth == null) {
+//            waterSupplyAmountForMonth = BigDecimal.ZERO;
+//        }
+//        if (waterSupplyAmountForYear == null) {
+//            waterSupplyAmountForYear = BigDecimal.ZERO;
+//        }
+//        //水厂当月流量
+//        if (deviceWaterAmount.getWaterSupplyAmountForDay() == null) {
+//            deviceWaterAmount.setWaterSupplyAmountForMonth(waterSupplyAmountForMonth);
+//        } else {
+//            deviceWaterAmount.setWaterSupplyAmountForMonth(waterSupplyAmountForMonth.add(deviceWaterAmount.getWaterSupplyAmountForDay()));
+//        }
+//        //水厂当年流量
+//        if (deviceWaterAmount.getWaterSupplyAmountForMonth() == null) {
+//            deviceWaterAmount.setWaterSupplyAmountForYear(waterSupplyAmountForYear);
+//        } else {
+//            deviceWaterAmount.setWaterSupplyAmountForYear(waterSupplyAmountForYear.add(deviceWaterAmount.getWaterSupplyAmountForMonth()));
+//        }
+//
+//
+//        BigDecimal waterIntakeAmountForMonth = monitorDataReportMapper.getDeviceWaterDetailForMonth("水源", 4, tenantId, localDate.getYear(), localDate.getMonthValue());
+//        BigDecimal waterIntakeAmountForYear = monitorDataReportMapper.getDeviceWaterDetailForYear("水源", 4, tenantId, localDate.getYear());
+//        if (waterIntakeAmountForMonth == null) {
+//            waterIntakeAmountForMonth = BigDecimal.ZERO;
+//        }
+//        if (waterIntakeAmountForYear == null) {
+//            waterIntakeAmountForYear = BigDecimal.ZERO;
+//        }
+//        //水源当月流量
+//        if (deviceWaterAmount.getWaterIntakeAmountForDay() == null) {
+//            deviceWaterAmount.setWaterIntakeAmountForMonth(waterIntakeAmountForMonth);
+//        } else {
+//            deviceWaterAmount.setWaterIntakeAmountForMonth(waterIntakeAmountForMonth.add(deviceWaterAmount.getWaterIntakeAmountForDay()));
+//        }
+//        //水源当年流量
+//        if (deviceWaterAmount.getWaterIntakeAmountForMonth() == null) {
+//            deviceWaterAmount.setWaterIntakeAmountForYear(waterIntakeAmountForYear);
+//        } else {
+//            deviceWaterAmount.setWaterIntakeAmountForYear(waterIntakeAmountForYear.add(deviceWaterAmount.getWaterIntakeAmountForMonth()));
+//        }
+//        //1
+//        generalViewResults.setDeviceWaterAmount(deviceWaterAmount);
+//
+//        //实时报警信息
+//        List<SceneAlarm> sceneAlarms = monitorDataReportMapper.getAlarmInfoForScene(tenantId);
+//
+//        //2报警
+//        generalViewResults.setSceneAlarms(sceneAlarms);
+//        //管网水质(水质 -1、8PH、10浊度、11余氯)
+//        List<SceneNormalRate> SceneNormalRates = new ArrayList<>();
+//        //水质
+//        SceneNormalRate sceneNormalRate1 = monitorDataReportMapper.getQualificationForScene(tenantId, -1);
+//        //PH
+//        SceneNormalRate sceneNormalRate2 = monitorDataReportMapper.getQualificationForScene(tenantId, 8);
+//        //浊度
+//        SceneNormalRate sceneNormalRate3 = monitorDataReportMapper.getQualificationForScene(tenantId, 10);
+//        //余氯
+//        SceneNormalRate sceneNormalRate4 = monitorDataReportMapper.getQualificationForScene(tenantId, 11);
+//        SceneNormalRates.add(sceneNormalRate1);
+//        SceneNormalRates.add(sceneNormalRate2);
+//        SceneNormalRates.add(sceneNormalRate3);
+//        SceneNormalRates.add(sceneNormalRate4);
+//        //3水质情况
+//        generalViewResults.setSceneNormalRates(SceneNormalRates);
+//
+//        //压力分布
+//        List<DeviceWaterDetail> devicePressureWaterDetailsForNow = monitorDataReportMapper.getDeviceWaterDetailForNow("水厂", 13, tenantId);
+//
+//        List<SceneWaterAmount> sceneWaterPressureAmounts = new ArrayList<>();
+//
+//        devicePressureWaterDetailsForNow.stream()
+//                .filter(item -> StringUtils.isNotBlank(item.getSceneName()))
+//                .collect(Collectors.groupingBy(item -> item.getSceneName(), Collectors.toList()))
+//                .forEach((key, value) -> {
+//                    SceneWaterAmount sceneWaterAmount = new SceneWaterAmount();
+//                    sceneWaterAmount.setSceneName(key);
+//                    sceneWaterAmount.setWaterAmount(BigDecimal.ZERO);
+//                    value.stream().forEach(deviceWaterDetail -> {
+//                        MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
+//                        if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
+//                            monitorDataEntity.getDataValues().stream()
+//                                    .filter(monitorDataValueEntity -> monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId()))
+//                                    .forEach(monitorDataValueEntity ->
+//                                            //累计当前压力
+//                                            sceneWaterAmount.setWaterAmount(sceneWaterAmount.getWaterAmount().add(new BigDecimal(monitorDataValueEntity.getDataValue())))
+//                                    );
+//                        }
+//                    });
+//                    sceneWaterPressureAmounts.add(sceneWaterAmount);
+//                });
+//
+//        //进行压力分组
+//        SceneWaterPressure sceneWaterPressure = new SceneWaterPressure();
+//        SceneWaterAmount amountMax = null;
+//        SceneWaterAmount amountMin = null;
+//        for (SceneWaterAmount waterPressure : sceneWaterPressureAmounts) {
+//            if (StringUtils.isNotBlank(waterPressure.getSceneName()) && waterPressure.getWaterAmount() != null) {
+//                BigDecimal amount = waterPressure.getWaterAmount();
+//                amountMax = amountMax == null || amount.compareTo(amountMax.getWaterAmount()) == 1 ? waterPressure : amountMax;
+//                amountMin = amountMin == null || amount.compareTo(amountMin.getWaterAmount()) == -1 ? waterPressure : amountMin;
+//
+//                if (amount.compareTo(new BigDecimal(0.15)) == -1) {
+//                    sceneWaterPressure.setPressureLevel1(sceneWaterPressure.getPressureLevel1() + 1);
+//                } else if (amount.compareTo(new BigDecimal(0.15)) != 1 && amount.compareTo(new BigDecimal(0.30)) == -1) {
+//                    sceneWaterPressure.setPressureLevel2(sceneWaterPressure.getPressureLevel2() + 1);
+//                } else if (amount.compareTo(new BigDecimal(0.30)) != -1 && amount.compareTo(new BigDecimal(0.40)) == -1) {
+//                    sceneWaterPressure.setPressureLevel3(sceneWaterPressure.getPressureLevel3() + 1);
+//                } else if (amount.compareTo(new BigDecimal(0.40)) != -1 && amount.compareTo(new BigDecimal(0.50)) == -1) {
+//                    sceneWaterPressure.setPressureLevel4(sceneWaterPressure.getPressureLevel4() + 1);
+//                } else if (amount.compareTo(new BigDecimal(0.50)) != -1) {
+//                    sceneWaterPressure.setPressureLevel5(sceneWaterPressure.getPressureLevel5() + 1);
+//                }
+//            }
+//        }
+//        if (amountMax != null) {
+//            sceneWaterPressure.setMaxPressureSceneName(amountMax.getSceneName());
+//            sceneWaterPressure.setMaxPressureValue(amountMax.getWaterAmount());
+//        }
+//        if (amountMax != null) {
+//            sceneWaterPressure.setMinPressureSceneName(amountMin.getSceneName());
+//            sceneWaterPressure.setMinPressureValue(amountMin.getWaterAmount());
+//        }
+//
+//        //4压力分组
+//        generalViewResults.setSceneWaterPressure(sceneWaterPressure);
+//
+//        //今日水厂制水量排行
+////        deviceSupplyWaterDetailsForDay
+//        List<SceneWaterAmount> sceneWaterAmounts = new ArrayList<>();
+//        deviceSupplyWaterDetailsForDay.stream()
+//                .filter(item -> StringUtils.isNotBlank(item.getSceneName()))
+//                .collect(Collectors.groupingBy(item -> item.getSceneName(), Collectors.toList()))
+//                .forEach((key, value) -> {
+//                    SceneWaterAmount sceneWaterAmount = new SceneWaterAmount();
+//                    sceneWaterAmount.setSceneName(key);
+//                    sceneWaterAmount.setWaterAmount(BigDecimal.ZERO);
+//                    value.stream().forEach(deviceWaterDetail -> {
+//                        MonitorDataEntity monitorDataEntity = MonitorDataMap.get(deviceWaterDetail.getDeviceId());
+//                        if (monitorDataEntity != null && monitorDataEntity.getDataValues() != null && monitorDataEntity.getDataValues().size() > 0) {
+//                            monitorDataEntity.getDataValues().stream()
+//                                    .filter(monitorDataValueEntity -> monitorDataValueEntity.getAttributeId().equals(deviceWaterDetail.getAttributeId()))
+//                                    .forEach(monitorDataValueEntity ->
+//                                            //累计当天流量
+//                                            sceneWaterAmount.setWaterAmount(sceneWaterAmount.getWaterAmount().add(
+//                                                    new BigDecimal(monitorDataValueEntity.getDataValue()).subtract(deviceWaterDetail.getLatestValue()).add(deviceWaterDetail.getAmount())))
+//                                    );
+//                        }
+//                    });
+//                    sceneWaterAmounts.add(sceneWaterAmount);
+//                });
+//        //倒序排序
+//        sceneWaterAmounts.sort(Comparator.comparing(SceneWaterAmount::getWaterAmount).reversed());
+//        //5水量排行
+//        generalViewResults.setSceneWaterAmounts(sceneWaterAmounts);
+//
+//        //水厂制水、药耗、电耗对比曲线
+//        List<WaterSupplyData> waterSupplyDatas = monitorDataReportMapper.getWaterSupplyData(tenantId);
+//        List<WaterSupplyChart> waterSupplyCharts = new ArrayList<>();
+//        waterSupplyDatas.stream()
+//                .collect(Collectors.groupingBy(item -> item.getYear() + "-" + item.getMonth() + "-" + item.getDay()))
+//                .forEach((key, value) -> {
+//                    WaterSupplyChart waterSupplyChart = new WaterSupplyChart();
+//                    waterSupplyChart.setDate(key);
+//                    value.stream().forEach(waterSupplyData -> {
+//                        Period period = Period.between(LocalDate.of(waterSupplyData.getYear(), waterSupplyData.getMonth(), waterSupplyData.getDay()), localDate);
+//                        waterSupplyChart.setSort(period.getDays());
+//
+//                        if (waterSupplyData.getParmType() == 3) { //供水
+//                            waterSupplyChart.setWaterData(waterSupplyData.getAmount());
+//                        } else if (waterSupplyData.getParmType() == 5) {//电耗
+//                            waterSupplyChart.setPowerData(waterSupplyData.getAmount());
+//                        } else if (waterSupplyData.getParmType() == 6) {//药耗
+//                            waterSupplyChart.setDrugData(waterSupplyData.getAmount());
+//                        }
+//                    });
+//                    waterSupplyCharts.add(waterSupplyChart);
+//                });
+//        waterSupplyCharts.sort(Comparator.comparing(WaterSupplyChart::getSort));
+//
+//        //6曲线图
+//        generalViewResults.setWaterSupplyCharts(waterSupplyCharts);
+//
         return generalViewResults;
     }
 
@@ -766,8 +766,10 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
         SceneWaterPressure sceneWaterPressure = new SceneWaterPressure();
         SceneWaterAmount amountMax = null;
         SceneWaterAmount amountMin = null;
+        BigDecimal amountSum = BigDecimal.ZERO;
         for (SceneWaterAmount waterPressure : sceneWaterPressureAmounts) {
             if (StringUtils.isNotBlank(waterPressure.getSceneName()) && waterPressure.getWaterAmount() != null) {
+                amountSum = amountSum.add(waterPressure.getWaterAmount());
                 BigDecimal amount = waterPressure.getWaterAmount();
                 amountMax = amountMax == null || amount.compareTo(amountMax.getWaterAmount()) == 1 ? waterPressure : amountMax;
                 amountMin = amountMin == null || amount.compareTo(amountMin.getWaterAmount()) == -1 ? waterPressure : amountMin;
@@ -785,6 +787,9 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
                 }
             }
         }
+        if(sceneWaterPressureAmounts.size()>0){
+            sceneWaterPressure.setAvgPressureValue(amountSum.divide(new BigDecimal(sceneWaterPressureAmounts.size()),2,BigDecimal.ROUND_HALF_UP));
+        }
         if (amountMax != null) {
             sceneWaterPressure.setMaxPressureSceneName(amountMax.getSceneName());
             sceneWaterPressure.setMaxPressureValue(amountMax.getWaterAmount());
@@ -793,6 +798,7 @@ public class MonitorDataReportServiceImpl implements MonitorDataReportService {
             sceneWaterPressure.setMinPressureSceneName(amountMin.getSceneName());
             sceneWaterPressure.setMinPressureValue(amountMin.getWaterAmount());
         }
+
         return sceneWaterPressure;
     }