diff --git a/src/main/java/com/casic/service/impl/HealthIndexBuilder.java b/src/main/java/com/casic/service/impl/HealthIndexBuilder.java index 5b9a7aa..9cba34a 100644 --- a/src/main/java/com/casic/service/impl/HealthIndexBuilder.java +++ b/src/main/java/com/casic/service/impl/HealthIndexBuilder.java @@ -7,6 +7,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.HashMap; @@ -60,42 +61,49 @@ smartwellHealth.put("count", FormatUtil.DF.format(Double.valueOf(deviceNumber - alarmDevice) / deviceNumber)); return smartwellHealth; } + private List> smartwellHealthRoadIndicator(String isSort, String limitNum, String beginTime, String endTime) { List> smartwellHealthList = new ArrayList(); List> roadNumberList = this.smartwellDataMapper.countRoadNumber(); List> alarmRoadList = this.smartwellDataMapper.countAlarmRoad(beginTime, endTime); - Integer count=0; - for (Map alarmMap :roadNumberList) { - count+=Integer.valueOf(String.valueOf(alarmMap.get("count"))); + Integer count = 0; + for (Map alarmMap : roadNumberList) { + count += Integer.valueOf(String.valueOf(alarmMap.get("count"))); } - log.info("设备总数量"+count); - for (Map alarmMap :alarmRoadList) { - count+=Integer.valueOf(String.valueOf(alarmMap.get("count"))); + log.info("设备总数量" + count); + for (Map alarmMap : alarmRoadList) { + count += Integer.valueOf(String.valueOf(alarmMap.get("count"))); } - log.info("报警总数量"+count); + log.info("报警总数量" + count); Map alarmRoadMap = alarmRoadList.stream() - .collect(Collectors.toMap( e->String.valueOf(e.get("road")),e ->String.valueOf(e.get("count")))); + .collect(Collectors.toMap(e -> String.valueOf(e.get("road")), e -> String.valueOf(e.get("count")))); - roadNumberList.forEach( - roadMap->{ - Map wellHealthMap = new HashMap(); - wellHealthMap.put("typeName", roadMap.get("road")); - Integer totalRoad = Integer.valueOf(String.valueOf(roadMap.get("count"))); - Integer alarmRoad = alarmRoadMap.containsKey(roadMap.get("road").toString()) ? Integer.valueOf(String.valueOf(alarmRoadMap.get(roadMap.get("road").toString()))) : 0; - wellHealthMap.put("count", FormatUtil.DF2.format(Double.valueOf((double)(totalRoad - alarmRoad)) * 100.0D / (double)totalRoad)); - smartwellHealthList.add(wellHealthMap); - } - ); + roadNumberList.stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .forEach(roadMap -> { + Map wellHealthMap = new HashMap(); + wellHealthMap.put("typeName", roadMap.get("road")); + Integer totalRoad = Integer.valueOf(String.valueOf(roadMap.get("count"))); + Integer alarmRoad = alarmRoadMap.containsKey(roadMap.get("road").toString()) ? Integer.valueOf(String.valueOf(alarmRoadMap.get(roadMap.get("road").toString()))) : 0; + wellHealthMap.put("count", FormatUtil.DF2.format(Double.valueOf((double) (totalRoad - alarmRoad)) * 100.0D / (double) totalRoad)); + smartwellHealthList.add(wellHealthMap); + } + ); if (!StringUtils.isEmpty(isSort)) { // List> sortlist = smartwellHealthList.stream().sorted((e1, e2) -> // Double.valueOf(String.valueOf(e1.get("count"))).compareTo(Double.valueOf(String.valueOf(e2.get("count"))))).collect(Collectors.toList()); // List> limitSortlist = sortlist.subList(0, StringUtils.isEmpty(limitNum) ? sortlist.size() : Integer.valueOf(limitNum)); - roadNumberList.forEach( - roadMap-> roadMap.put("count", alarmRoadMap.containsKey(roadMap.get("road"))?alarmRoadMap.get(roadMap.get("road")):0) + roadNumberList.stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .forEach( + roadMap -> roadMap.put("count", alarmRoadMap.containsKey(roadMap.get("road")) ? alarmRoadMap.get(roadMap.get("road")) : 0) ); - List> sortlist=roadNumberList.stream().sorted(( - e1,e2)->Double.valueOf(String.valueOf(e2.get("count"))).compareTo(Double.valueOf(String.valueOf(e1.get("count"))))).collect(Collectors.toList()); + List> sortlist = roadNumberList + .stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .sorted(( + e1, e2) -> Double.valueOf(String.valueOf(e2.get("count"))).compareTo(Double.valueOf(String.valueOf(e1.get("count"))))).collect(Collectors.toList()); List> limitSortlist = sortlist.subList(0, StringUtils.isEmpty(limitNum) ? sortlist.size() : Integer.valueOf(limitNum)); return limitSortlist; } else { diff --git a/src/main/java/com/casic/service/impl/HealthIndexBuilder.java b/src/main/java/com/casic/service/impl/HealthIndexBuilder.java index 5b9a7aa..9cba34a 100644 --- a/src/main/java/com/casic/service/impl/HealthIndexBuilder.java +++ b/src/main/java/com/casic/service/impl/HealthIndexBuilder.java @@ -7,6 +7,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.HashMap; @@ -60,42 +61,49 @@ smartwellHealth.put("count", FormatUtil.DF.format(Double.valueOf(deviceNumber - alarmDevice) / deviceNumber)); return smartwellHealth; } + private List> smartwellHealthRoadIndicator(String isSort, String limitNum, String beginTime, String endTime) { List> smartwellHealthList = new ArrayList(); List> roadNumberList = this.smartwellDataMapper.countRoadNumber(); List> alarmRoadList = this.smartwellDataMapper.countAlarmRoad(beginTime, endTime); - Integer count=0; - for (Map alarmMap :roadNumberList) { - count+=Integer.valueOf(String.valueOf(alarmMap.get("count"))); + Integer count = 0; + for (Map alarmMap : roadNumberList) { + count += Integer.valueOf(String.valueOf(alarmMap.get("count"))); } - log.info("设备总数量"+count); - for (Map alarmMap :alarmRoadList) { - count+=Integer.valueOf(String.valueOf(alarmMap.get("count"))); + log.info("设备总数量" + count); + for (Map alarmMap : alarmRoadList) { + count += Integer.valueOf(String.valueOf(alarmMap.get("count"))); } - log.info("报警总数量"+count); + log.info("报警总数量" + count); Map alarmRoadMap = alarmRoadList.stream() - .collect(Collectors.toMap( e->String.valueOf(e.get("road")),e ->String.valueOf(e.get("count")))); + .collect(Collectors.toMap(e -> String.valueOf(e.get("road")), e -> String.valueOf(e.get("count")))); - roadNumberList.forEach( - roadMap->{ - Map wellHealthMap = new HashMap(); - wellHealthMap.put("typeName", roadMap.get("road")); - Integer totalRoad = Integer.valueOf(String.valueOf(roadMap.get("count"))); - Integer alarmRoad = alarmRoadMap.containsKey(roadMap.get("road").toString()) ? Integer.valueOf(String.valueOf(alarmRoadMap.get(roadMap.get("road").toString()))) : 0; - wellHealthMap.put("count", FormatUtil.DF2.format(Double.valueOf((double)(totalRoad - alarmRoad)) * 100.0D / (double)totalRoad)); - smartwellHealthList.add(wellHealthMap); - } - ); + roadNumberList.stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .forEach(roadMap -> { + Map wellHealthMap = new HashMap(); + wellHealthMap.put("typeName", roadMap.get("road")); + Integer totalRoad = Integer.valueOf(String.valueOf(roadMap.get("count"))); + Integer alarmRoad = alarmRoadMap.containsKey(roadMap.get("road").toString()) ? Integer.valueOf(String.valueOf(alarmRoadMap.get(roadMap.get("road").toString()))) : 0; + wellHealthMap.put("count", FormatUtil.DF2.format(Double.valueOf((double) (totalRoad - alarmRoad)) * 100.0D / (double) totalRoad)); + smartwellHealthList.add(wellHealthMap); + } + ); if (!StringUtils.isEmpty(isSort)) { // List> sortlist = smartwellHealthList.stream().sorted((e1, e2) -> // Double.valueOf(String.valueOf(e1.get("count"))).compareTo(Double.valueOf(String.valueOf(e2.get("count"))))).collect(Collectors.toList()); // List> limitSortlist = sortlist.subList(0, StringUtils.isEmpty(limitNum) ? sortlist.size() : Integer.valueOf(limitNum)); - roadNumberList.forEach( - roadMap-> roadMap.put("count", alarmRoadMap.containsKey(roadMap.get("road"))?alarmRoadMap.get(roadMap.get("road")):0) + roadNumberList.stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .forEach( + roadMap -> roadMap.put("count", alarmRoadMap.containsKey(roadMap.get("road")) ? alarmRoadMap.get(roadMap.get("road")) : 0) ); - List> sortlist=roadNumberList.stream().sorted(( - e1,e2)->Double.valueOf(String.valueOf(e2.get("count"))).compareTo(Double.valueOf(String.valueOf(e1.get("count"))))).collect(Collectors.toList()); + List> sortlist = roadNumberList + .stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .sorted(( + e1, e2) -> Double.valueOf(String.valueOf(e2.get("count"))).compareTo(Double.valueOf(String.valueOf(e1.get("count"))))).collect(Collectors.toList()); List> limitSortlist = sortlist.subList(0, StringUtils.isEmpty(limitNum) ? sortlist.size() : Integer.valueOf(limitNum)); return limitSortlist; } else { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 165aabd..0af6b13 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -5,7 +5,7 @@ datasource: smartwell: driver-class-name: org.postgresql.Driver - url: jdbc:postgresql://111.198.10.15:11209/smartwell_zq_cs + url: jdbc:postgresql://111.198.10.15:11209/smartwell username: postgres password: Casic203 cms: diff --git a/src/main/java/com/casic/service/impl/HealthIndexBuilder.java b/src/main/java/com/casic/service/impl/HealthIndexBuilder.java index 5b9a7aa..9cba34a 100644 --- a/src/main/java/com/casic/service/impl/HealthIndexBuilder.java +++ b/src/main/java/com/casic/service/impl/HealthIndexBuilder.java @@ -7,6 +7,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.HashMap; @@ -60,42 +61,49 @@ smartwellHealth.put("count", FormatUtil.DF.format(Double.valueOf(deviceNumber - alarmDevice) / deviceNumber)); return smartwellHealth; } + private List> smartwellHealthRoadIndicator(String isSort, String limitNum, String beginTime, String endTime) { List> smartwellHealthList = new ArrayList(); List> roadNumberList = this.smartwellDataMapper.countRoadNumber(); List> alarmRoadList = this.smartwellDataMapper.countAlarmRoad(beginTime, endTime); - Integer count=0; - for (Map alarmMap :roadNumberList) { - count+=Integer.valueOf(String.valueOf(alarmMap.get("count"))); + Integer count = 0; + for (Map alarmMap : roadNumberList) { + count += Integer.valueOf(String.valueOf(alarmMap.get("count"))); } - log.info("设备总数量"+count); - for (Map alarmMap :alarmRoadList) { - count+=Integer.valueOf(String.valueOf(alarmMap.get("count"))); + log.info("设备总数量" + count); + for (Map alarmMap : alarmRoadList) { + count += Integer.valueOf(String.valueOf(alarmMap.get("count"))); } - log.info("报警总数量"+count); + log.info("报警总数量" + count); Map alarmRoadMap = alarmRoadList.stream() - .collect(Collectors.toMap( e->String.valueOf(e.get("road")),e ->String.valueOf(e.get("count")))); + .collect(Collectors.toMap(e -> String.valueOf(e.get("road")), e -> String.valueOf(e.get("count")))); - roadNumberList.forEach( - roadMap->{ - Map wellHealthMap = new HashMap(); - wellHealthMap.put("typeName", roadMap.get("road")); - Integer totalRoad = Integer.valueOf(String.valueOf(roadMap.get("count"))); - Integer alarmRoad = alarmRoadMap.containsKey(roadMap.get("road").toString()) ? Integer.valueOf(String.valueOf(alarmRoadMap.get(roadMap.get("road").toString()))) : 0; - wellHealthMap.put("count", FormatUtil.DF2.format(Double.valueOf((double)(totalRoad - alarmRoad)) * 100.0D / (double)totalRoad)); - smartwellHealthList.add(wellHealthMap); - } - ); + roadNumberList.stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .forEach(roadMap -> { + Map wellHealthMap = new HashMap(); + wellHealthMap.put("typeName", roadMap.get("road")); + Integer totalRoad = Integer.valueOf(String.valueOf(roadMap.get("count"))); + Integer alarmRoad = alarmRoadMap.containsKey(roadMap.get("road").toString()) ? Integer.valueOf(String.valueOf(alarmRoadMap.get(roadMap.get("road").toString()))) : 0; + wellHealthMap.put("count", FormatUtil.DF2.format(Double.valueOf((double) (totalRoad - alarmRoad)) * 100.0D / (double) totalRoad)); + smartwellHealthList.add(wellHealthMap); + } + ); if (!StringUtils.isEmpty(isSort)) { // List> sortlist = smartwellHealthList.stream().sorted((e1, e2) -> // Double.valueOf(String.valueOf(e1.get("count"))).compareTo(Double.valueOf(String.valueOf(e2.get("count"))))).collect(Collectors.toList()); // List> limitSortlist = sortlist.subList(0, StringUtils.isEmpty(limitNum) ? sortlist.size() : Integer.valueOf(limitNum)); - roadNumberList.forEach( - roadMap-> roadMap.put("count", alarmRoadMap.containsKey(roadMap.get("road"))?alarmRoadMap.get(roadMap.get("road")):0) + roadNumberList.stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .forEach( + roadMap -> roadMap.put("count", alarmRoadMap.containsKey(roadMap.get("road")) ? alarmRoadMap.get(roadMap.get("road")) : 0) ); - List> sortlist=roadNumberList.stream().sorted(( - e1,e2)->Double.valueOf(String.valueOf(e2.get("count"))).compareTo(Double.valueOf(String.valueOf(e1.get("count"))))).collect(Collectors.toList()); + List> sortlist = roadNumberList + .stream() + .filter(roadMap ->!StringUtils.isEmpty(String.valueOf(roadMap.get("road")))) + .sorted(( + e1, e2) -> Double.valueOf(String.valueOf(e2.get("count"))).compareTo(Double.valueOf(String.valueOf(e1.get("count"))))).collect(Collectors.toList()); List> limitSortlist = sortlist.subList(0, StringUtils.isEmpty(limitNum) ? sortlist.size() : Integer.valueOf(limitNum)); return limitSortlist; } else { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 165aabd..0af6b13 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -5,7 +5,7 @@ datasource: smartwell: driver-class-name: org.postgresql.Driver - url: jdbc:postgresql://111.198.10.15:11209/smartwell_zq_cs + url: jdbc:postgresql://111.198.10.15:11209/smartwell username: postgres password: Casic203 cms: diff --git a/src/main/resources/mapper/smartwell/SmartwellDataMapper.xml b/src/main/resources/mapper/smartwell/SmartwellDataMapper.xml index 4ee7fa8..b11e603 100644 --- a/src/main/resources/mapper/smartwell/SmartwellDataMapper.xml +++ b/src/main/resources/mapper/smartwell/SmartwellDataMapper.xml @@ -49,6 +49,7 @@ FROM bus_well_info bwi LEFT JOIN alarm_records ar ON ar.WELL_CODE=bwi.WELL_CODE WHERE bwi.VALID='1' + AND ar.status='1' AND bwi.road is not null AND ar.UPTIME = ]]> @@ -59,6 +60,7 @@ TO_CHAR(#{endTime},'yyyy-MM-dd HH24:mi:ss') GROUP BY bwi.road + ORDER BY 总计 DESC