Sfoglia il codice sorgente

压力分布区间修改

yuejiaying 4 anni fa
parent
commit
94f6d06f4a

+ 4 - 2
sms_water/src/main/java/com/huaxu/controller/OnlineMonitorController.java

@@ -221,9 +221,11 @@ public class OnlineMonitorController {
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
     @RequestMapping(value="selectPipeNetLayer" , method = RequestMethod.GET)
-    @ApiOperation(value = "查询管网地图图层")
-    public AjaxMessage<List<PipeNetLayerDto>> selectPipeNetLayer(){
+    @ApiOperation(value = "查询管网地图图层及设备")
+    public AjaxMessage<List<PipeNetLayerDto>> selectPipeNetLayer(
+            @ApiParam(value = "场景类型名称", required = false) @RequestParam(required = false) String sceneTypeName){
         OnlineDataDto onlineDataDto=new OnlineDataDto();
+        onlineDataDto.setSceneTypeName(sceneTypeName);
         onlineDataDto.setSceneIds(sceneService.findByParentIdsLike(null));
         List<PipeNetLayerDto> result=onlineMonitorService.selectPipeNetLayer(onlineDataDto);
         return new AjaxMessage<>(ResultStatus.OK, result);

+ 9 - 6
sms_water/src/main/java/com/huaxu/service/impl/OnlineMonitorImpl.java

@@ -265,7 +265,8 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
         if(onlineDataDto.getSceneTypeName().equals("压力")){
             deviceCount=new int[5];
         }
-        Double avgValue=null,maxValue=null,minValue=null;
+        int count=0;
+        Double sumValue=null,maxValue=null,minValue=null;
         String maxDeviceName=null,minDeviceName=null;
         List<MonitorDataCollectDto> result=onlineMonitorMapper.statsDeviceParm(onlineDataDto);
         for(MonitorDataCollectDto monDataCol :result) {
@@ -287,13 +288,15 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
                        Double dataValue= attributeEntity.getDataValue();
                        if(dataValue!=null){
                            if(onlineDataDto.getSceneTypeName().equals("压力")){
-                               avgValue=avgValue==null?dataValue:(avgValue+dataValue)/2;
+                               count++;
+                               sumValue=sumValue==null?dataValue:sumValue+dataValue;
                                boolean isMaxEquals=dataValue.equals(maxValue);
                                boolean isMinEquals=dataValue.equals(minValue);
                                if(isMaxEquals) {
-                                   maxDeviceName += monDataCol.getDeviceName();
-                               }else if(isMinEquals){
-                                   minDeviceName+=monDataCol.getDeviceName();
+                                   maxDeviceName += ","+monDataCol.getDeviceName();
+                               }
+                               if(isMinEquals){
+                                   minDeviceName += ","+monDataCol.getDeviceName();
                                }
                                maxValue=Math.max(maxValue==null?dataValue:maxValue,dataValue);
                                minValue=Math.min(minValue==null?dataValue:minValue,dataValue);
@@ -336,7 +339,7 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
         }
         DistributeIntervalDto distributeIntervalDto=new DistributeIntervalDto();
         distributeIntervalDto.setDistributeValue(deviceCount);
-        distributeIntervalDto.setAvgValue(avgValue);
+        distributeIntervalDto.setAvgValue(count==0?null:sumValue/count);
         distributeIntervalDto.setMaxValue(maxValue);
         distributeIntervalDto.setMinValue(minValue);
         distributeIntervalDto.setMaxDeviceName(maxDeviceName);

+ 9 - 2
sms_water/src/main/resources/mapper/OnlineMonitorMapper.xml

@@ -469,7 +469,7 @@
         </if>
         order by  t6.date_create
     </select>
-    <!--查询管网地图图层-->
+    <!--查询管网地图图层及设备-->
     <select id="selectPipeNetLayer" resultMap="layerMap">
         select t4.id scene_id,t4.scene_name,t6.id device_id,t6.device_code,t6.device_name,t6.point_x,t6.point_y,t6.address,if (t7.alarm_count>0, 1, 0) device_state
         from sms_scene t1
@@ -478,7 +478,14 @@
             select a1.scene_id, a1.device_id ,count(1) alarm_count from sms_alarm_details a1 where a1.`status` = 1 and a1.state = 1 group by a1.scene_id, a1.device_id
         )t7 on t7.scene_id=t2.scene_id and t7.device_id=t2.device_id
         where t1.parent_scene_id = 0 and t1. status = 1 and t1. enable_state = 1 and t3.scene_type_name = '管网'
-        and t5.scene_type_name in('压力','流量','水质')
+        <choose>
+            <when test="sceneTypeName != null and sceneTypeName !=''">
+                and t5.scene_type_name = #{sceneTypeName}
+            </when>
+            <otherwise>
+                and t5.scene_type_name in('压力','流量','水质')
+            </otherwise>
+        </choose>
         <if test="sceneIds != null and sceneIds.size() > 0">
             and t1.id  in
             <foreach collection="sceneIds" item="item" open="(" close=")" separator=",">