Bladeren bron

app查询管网修改

yuejiaying 4 jaren geleden
bovenliggende
commit
24c75f4aa3

+ 29 - 0
sms_water/src/main/java/com/huaxu/common/converter/Double2Serializer.java

@@ -0,0 +1,29 @@
+package com.huaxu.common.converter;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.text.DecimalFormat;
+
+public class Double2Serializer extends JsonSerializer<Double> {
+
+    private DecimalFormat df = new DecimalFormat("0.##");
+
+    /**
+     * 小数保留3位返回给前端序列化器
+     * @param data
+     * @param jsonGenerator
+     * @param serializerProvider
+     * @throws IOException
+     */
+    @Override
+    public void serialize(Double data, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
+            throws IOException {
+        if (data != null) {
+            jsonGenerator.writeNumber(df.format(data));
+        }
+    }
+
+}

+ 15 - 0
sms_water/src/main/java/com/huaxu/controller/OnlineMonitorController.java

@@ -252,6 +252,21 @@ public class OnlineMonitorController {
         onlineDataDto.setFlag(1);
         onlineDataDto.setSceneIds(sceneService.findByParentIdsLike(null));
         List<DeviceCountStatsDto> result=onlineMonitorService.statsDeviceQualified(onlineDataDto);
+        for(DeviceCountStatsDto item : result){
+            if(item.getType().equals("流量"))
+                continue;
+            onlineDataDto.setFlag(null);
+            onlineDataDto.setSceneTypeName(item.getType());
+            List<DeviceCountStatsDto> itemResult=onlineMonitorService.statsDeviceQualified(onlineDataDto);
+            if(itemResult.size()>0){
+                if(item.getType().equals("压力")){
+                    DeviceCountStatsDto pressQualified=itemResult.get(0).getParmQualified().size()>0?itemResult.get(0).getParmQualified().get(0):null;
+                    item.setQualifiedRate(pressQualified==null?100:(double)pressQualified.getNormalCount()/itemResult.get(0).getTotalCount()*100);
+                }else if(item.getType().equals("水质")){
+                    item.setQualifiedRate((double)itemResult.get(0).getNormalCount()/itemResult.get(0).getTotalCount()*100);
+                }
+            }
+        }
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
 

+ 8 - 0
sms_water/src/main/java/com/huaxu/dto/DeviceCountStatsDto.java

@@ -1,5 +1,7 @@
 package com.huaxu.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.common.converter.Double2Serializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -35,6 +37,12 @@ public class DeviceCountStatsDto {
      */
     @ApiModelProperty(value = "离线设备数量")
     private Integer offlineCount;
+    /**
+     * 合格率
+     */
+    @JsonSerialize(using = Double2Serializer.class)
+    @ApiModelProperty(value = "合格率")
+    private Double qualifiedRate;
     /**
      * 设备属性合格数据
      */