diff --git a/user-service/src/main/java/com/mh/user/controller/SummaryController.java b/user-service/src/main/java/com/mh/user/controller/SummaryController.java index b4c3505..340f6c5 100644 --- a/user-service/src/main/java/com/mh/user/controller/SummaryController.java +++ b/user-service/src/main/java/com/mh/user/controller/SummaryController.java @@ -57,7 +57,7 @@ public class SummaryController { // } return HttpResult.ok(record); }catch (Exception e){ - //e.printStackTrace(); + e.printStackTrace(); return HttpResult.error(); } } diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java index fd8aa4f..ad7404a 100644 --- a/user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java +++ b/user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java @@ -29,7 +29,7 @@ public class EnergyProvider { }else{ if ((page != 0) && (limit != 0)){ sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date desc "); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" )T order by T.cur_date desc "); } } @@ -65,7 +65,7 @@ public class EnergyProvider { }else{ if ((page != 0) && (limit != 0)){ sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date desc "); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" )T order by T.cur_date desc "); } } @@ -94,13 +94,13 @@ public class EnergyProvider { if(buildingId.equals("所有")){ if ((page != 0) && (limit != 0)){ sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date desc "); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" )T order by T.cur_date desc "); } }else{ if ((page != 0) && (limit != 0)){ sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date desc "); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" )T order by T.cur_date desc "); } } @@ -231,13 +231,13 @@ public class EnergyProvider { if (buildingId.equals("所有")){ if ((page != 0) && (limit != 0)){ sql.append(" ) T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date asc "); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" ) T order by T.cur_date asc "); } }else { if ((page != 0) && (limit != 0)){ sql.append(" ) T join where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date asc "); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" ) T order by T.cur_date asc "); } } @@ -291,13 +291,13 @@ public class EnergyProvider { if(buildingId.equals("所有")){ if ((page != 0) && (limit != 0)){ sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date asc"); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" )T order by T.cur_date asc"); } }else{ if ((page != 0) && (limit != 0)){ sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date asc "); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" )T order by T.cur_date asc "); } } @@ -340,7 +340,7 @@ public class EnergyProvider { if ((page != 0) && (limit != 0)){ sql.append(" )T left join area T1 ON T.building_id=T1.area_id where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date desc,T1.sort "); // sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date desc,T.building_id "); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" )T left join area T1 ON T.building_id=T1.area_id order by T.cur_date desc,T1.sort "); // sql.append(" )T order by T.cur_date desc,T.building_id "); } diff --git a/user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java index 0840799..1e0e601 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java @@ -55,7 +55,15 @@ public class SummaryServiceImpl implements SummaryService { LocalDate date = LocalDate.parse(curDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); LocalDate previousDate = date.minusDays(1); String previousDateString = previousDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); - lastList.add(summaryMapper.queryEnergyDaySum(id, previousDateString)); + EnergySumEntity energySumEntity = summaryMapper.queryEnergyDaySum(id, previousDateString); + if (energySumEntity == null) { + energySumEntity = new EnergySumEntity(); + energySumEntity.setFillWater("0"); + energySumEntity.setWaterValue("0"); + energySumEntity.setElectValue("0"); + energySumEntity.setElectWater("0"); + } + lastList.add(energySumEntity); } else if (type == 2) { // 月统计 @@ -65,7 +73,15 @@ public class SummaryServiceImpl implements SummaryService { YearMonth yearMonth = YearMonth.parse(curDate, DateTimeFormatter.ofPattern("yyyy-MM")); YearMonth previousMonth = yearMonth.minusMonths(1); String previousMonthString = previousMonth.format(DateTimeFormatter.ofPattern("yyyy-MM")); - lastList.add(summaryMapper.queryEnergyMonthSum(id, previousMonthString)); + EnergySumEntity energySumEntity = summaryMapper.queryEnergyMonthSum(id, previousMonthString); + if (energySumEntity == null) { + energySumEntity = new EnergySumEntity(); + energySumEntity.setFillWater("0"); + energySumEntity.setWaterValue("0"); + energySumEntity.setElectValue("0"); + energySumEntity.setElectWater("0"); + } + lastList.add(energySumEntity); } else { // 年统计 @@ -75,30 +91,57 @@ public class SummaryServiceImpl implements SummaryService { Year year = Year.parse(curDate); Year previousYear = year.minusYears(1); String previousYearString = previousYear.toString(); - lastList.add(summaryMapper.queryEnergyYearSum(id, previousYearString)); + EnergySumEntity energySumEntity = summaryMapper.queryEnergyYearSum(id, previousYearString); + if (energySumEntity == null) { + energySumEntity = new EnergySumEntity(); + energySumEntity.setFillWater("0"); + energySumEntity.setWaterValue("0"); + energySumEntity.setElectValue("0"); + energySumEntity.setElectWater("0"); + } + lastList.add(energySumEntity); } } // curList每一个参数求和,得出 EnergySumEntity EnergySumEntity curSum = new EnergySumEntity(); - curSum.setFillWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); - curSum.setWaterValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); - curSum.setElectValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); - curSum.setElectWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + if (curList.isEmpty()) { + curSum.setWaterValue("0"); + curSum.setElectValue("0"); + curSum.setElectWater("0"); + } else { + curSum.setFillWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); + curSum.setWaterValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); + curSum.setElectValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); + curSum.setElectWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + } // lastList每一个参数求和,得出 EnergySumEntity EnergySumEntity lastSum = new EnergySumEntity(); - lastSum.setFillWater(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); - lastSum.setWaterValue(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); - lastSum.setElectValue(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); - lastSum.setElectWater(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + if (lastList.isEmpty()) { + lastSum.setFillWater("0"); + lastSum.setWaterValue("0"); + lastSum.setElectValue("0"); + lastSum.setElectWater("0"); + } else { + lastSum.setFillWater(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); + lastSum.setWaterValue(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); + lastSum.setElectValue(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); + lastSum.setElectWater(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + } // 昨日的EnergySumEntity和今日的EnergySumEntity,对比计算出补水昨日比、用水与昨日比、用电与昨日比、单耗与昨日比 EnergySumEntity result = new EnergySumEntity(); - result.setFillWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); - result.setWaterValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); - result.setElectValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); - result.setElectWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + if (curList.isEmpty()) { + result.setWaterValue("0"); + result.setElectValue("0"); + result.setElectWater("0"); + } else { + result.setFillWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); + result.setWaterValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); + result.setElectValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); + result.setElectWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + } // 计算与昨日的比较百分比 @@ -122,6 +165,17 @@ public class SummaryServiceImpl implements SummaryService { return summaryMapper.queryEnergyYearSum(buildingId, curDate); //年 } } + private double parseDouble(String value) { + if (value == null || value.isEmpty()) { + return 0.0; + } + try { + return Double.parseDouble(value); + } catch (NumberFormatException e) { + return 0.0; + } + } + /** * 计算比率的方法