Browse Source

1、数据查询修复优化;

dev
25604 3 days ago
parent
commit
62ff2a88a0
  1. 2
      user-service/src/main/java/com/mh/user/controller/SummaryController.java
  2. 18
      user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java
  3. 84
      user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java

2
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();
}
}

18
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 ");
}

84
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;
}
}
/**
* 计算比率的方法

Loading…
Cancel
Save