yuejiaying 4 anni fa
parent
commit
aad70b513f

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

@@ -72,7 +72,7 @@ public class OnlineMonitorController {
     @RequestMapping(value="selectMapSuspension" , method = RequestMethod.GET)
     @ApiOperation(value = "查询地图悬浮数据及用水量排行")
     public AjaxMessage<List<MonitorDataCollectDto>> selectMapSuspension(
-            @ApiParam(value = "一级场景类型名称", required = true) @RequestParam String sceneTypeName){
+            @ApiParam(value = "一级场景类型名称", required = false) @RequestParam(required = false) String sceneTypeName){
         MonitorDataCollectDto monitorDataCollectDto=new MonitorDataCollectDto();
         monitorDataCollectDto.setSceneTypeName(sceneTypeName);
         monitorDataCollectDto.setSceneIds(sceneService.findByParentIdsLike(null));

+ 1 - 2
sms_water/src/main/java/com/huaxu/dto/MonitorDataCollectDto.java

@@ -88,8 +88,7 @@ public class MonitorDataCollectDto {
     @JsonIgnore
     private String userType;
 
-    @ApiModelProperty(value ="一级场景类型名称",hidden = true)
-    @JsonIgnore
+    @ApiModelProperty(value ="一级场景类型名称")
     private String sceneTypeName;
 
     @ApiModelProperty(value ="在线监测类型 1查询需计算的属性、2查询监测列表的属性、3查询地图悬浮属性、4查询地图参数属性",hidden = true)

+ 19 - 16
sms_water/src/main/java/com/huaxu/service/impl/OnlineMonitorImpl.java

@@ -82,24 +82,27 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
         monitorDataCollectDto.setPermissonType(loginUser.getPermissonType());
         monitorDataCollectDto.setType(3);
         List<MonitorDataCollectDto> result=onlineMonitorMapper.selectMapSuspension(monitorDataCollectDto);
-        monitorDataCollectDto.setType(1);
-        List<MonitorDataCollectDto> calculateRes=onlineMonitorMapper.selectSceneParam(monitorDataCollectDto);
+        if(!StringUtils.isEmpty(monitorDataCollectDto.getSceneTypeName()))
+        {
+            monitorDataCollectDto.setType(1);
+            List<MonitorDataCollectDto> calculateRes=onlineMonitorMapper.selectSceneParam(monitorDataCollectDto);
 
-        GetCalMonitorData(result,calculateRes);
-        //按水量倒序排序 如果是水源按照取水量排序,其他按照供水量
-        result.sort(new Comparator<MonitorDataCollectDto>() {
-            @Override
-            public int compare(MonitorDataCollectDto o1, MonitorDataCollectDto o2) {
-                Double d1= monitorDataCollectDto.getSceneTypeName().equals("水源")?(o1.getIntakeWaterUsage()==null?0d:o1.getIntakeWaterUsage()):(o1.getYieldWaterUsage()==null?0d:o1.getYieldWaterUsage());
-                Double d2= monitorDataCollectDto.getSceneTypeName().equals("水源")?(o2.getIntakeWaterUsage()==null?0d:o2.getIntakeWaterUsage()):(o2.getYieldWaterUsage()==null?0d:o2.getYieldWaterUsage());
-                if(d1>d2){
-                    return -1;
-                }else if(d1.equals(d1)) {
+            GetCalMonitorData(result,calculateRes);
+            //按水量倒序排序 如果是水源按照取水量排序,其他按照供水量
+            result.sort(new Comparator<MonitorDataCollectDto>() {
+                @Override
+                public int compare(MonitorDataCollectDto o1, MonitorDataCollectDto o2) {
+                    Double d1= monitorDataCollectDto.getSceneTypeName().equals("水源")?(o1.getIntakeWaterUsage()==null?0d:o1.getIntakeWaterUsage()):(o1.getYieldWaterUsage()==null?0d:o1.getYieldWaterUsage());
+                    Double d2= monitorDataCollectDto.getSceneTypeName().equals("水源")?(o2.getIntakeWaterUsage()==null?0d:o2.getIntakeWaterUsage()):(o2.getYieldWaterUsage()==null?0d:o2.getYieldWaterUsage());
+                    if(d1>d2){
+                        return -1;
+                    }else if(d1.equals(d1)) {
+                        return 0;
+                    }
                     return 0;
                 }
-                return 0;
-            }
-        });
+            });
+        }
         return result;
     }
     /**
@@ -222,7 +225,7 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
         //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
         onlineDataDto.setPermissonType(loginUser.getPermissonType());
         List<DeviceCountStatsDto> result=onlineMonitorMapper.statsDeviceQualified(onlineDataDto);
-        if(!StringUtils.isEmpty(onlineDataDto.getSceneTypeName())) {
+        if(!StringUtils.isEmpty(onlineDataDto.getSceneTypeName())&&result.size()>0) {
             List<DeviceCountStatsDto> parmResult=onlineMonitorMapper.statsParmQualified(onlineDataDto);
             result.get(0).setParmQualified(parmResult);
             for(DeviceCountStatsDto parm : result.get(0).getParmQualified()){

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

@@ -5,6 +5,7 @@
     <resultMap type="com.huaxu.dto.MonitorDataCollectDto" id="monitorDataMap">
         <result property="sceneId" column="scene_id" jdbcType="INTEGER"/>
         <result property="sceneName" column="scene_name" jdbcType="VARCHAR"/>
+        <result property="sceneTypeName" column="scene_type_name" jdbcType="VARCHAR"/>
         <result property="pointX" column="point_x" jdbcType="VARCHAR"/>
         <result property="pointY" column="point_y" jdbcType="VARCHAR"/>
         <result property="address" column="address" jdbcType="VARCHAR"/>
@@ -59,6 +60,7 @@
     <sql id="Base_Column_List">
         t1.id scene_Id,
         t1.scene_name ,
+        t3.scene_type_name,
         t1.point_x ,
         t1.point_y,
         t1.address ,
@@ -179,7 +181,15 @@
         from sms_scene t1
         <include refid="sceneDeviceJoins"/>
         <include refid="sceneAlarmJoins"/>
-        where t1.parent_scene_id = 0 and t1. status = 1 and t1. enable_state = 1 and t3.scene_type_name = #{sceneTypeName}
+        where t1.parent_scene_id = 0 and t1. status = 1 and t1. enable_state = 1
+        <choose>
+            <when test="sceneTypeName != null and sceneTypeName !=''">
+                and t3.scene_type_name = #{sceneTypeName}
+            </when>
+            <otherwise>
+                and t3.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=",">
@@ -192,7 +202,7 @@
         <if test="tenantId != null and tenantId != ''">
             and t1.tenant_id = #{tenantId}
         </if>
-        order by t1.scene_name,t5.seq
+        order by t3.scene_type_name,t1.scene_name,t5.seq
     </select>
     <!--查询地图参数数据-->
     <select id="selectMapParam" resultMap="monitorDataMap">