Browse Source

告警中心web页面下拉框查询条件sql优化

humingshi-7@163.com 1 year ago
parent
commit
a9b9c5c1b6

+ 1 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotAlarmDataMapper.java

@@ -17,7 +17,7 @@ import java.util.Map;
 
 @Mapper
 public interface IotAlarmDataMapper extends BaseMapper<IotAlarmData> {
-    Page<IotAlarmDataVo> selectPageList(@Param("page") Page<IotAlarmDataVo> page, @Param("param") IotAlarmDataVo param);
+    Page<IotAlarmDataVo> selectPageList(@Param("page") Page<IotAlarmDataVo> page, @Param("param") IotAlarmDataVo param,@Param("deviceTypeList") List<String> deviceTypeList);
 
     Page<AppAlarmDataPageVo> selectAppPageList(@Param("page") Page<AppAlarmDataPageVo> page, @Param("param") AppAlarmPageDto param);
 

+ 46 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmDataServiceImpl.java

@@ -81,8 +81,53 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
             request.setOrgId(null);
         }
 
+        List<String> deviceTypes = Lists.newArrayList();
+        Integer dataType = request.getDataType();
+        String deviceType = request.getDeviceType();
+        if(dataType == null){
+            if(StringUtils.isNotEmpty(deviceType)){
+                //两种告警分类都包含的告警类型合并
+                if(String.valueOf(SensorType.INFRARED_SENSOR.getCode()).equals(deviceType)){
+                    deviceTypes.add("504");
+                    deviceTypes.add(deviceType);
+                }else if(String.valueOf(SensorType.SMOKE_SENSOR.getCode()).equals(deviceType)){
+                    deviceTypes.add("503");
+                    deviceTypes.add(deviceType);
+                }else if(String.valueOf(SensorType.HUMIDITY_TEMPERATURE_SENSOR.getCode()).equals(deviceType)){
+                    deviceTypes.add("501");
+                    deviceTypes.add("502");
+                    deviceTypes.add(deviceType);
+                }else if(String.valueOf(SensorType.WATER_INTRUSION.getCode()).equals(deviceType)){
+                    deviceTypes.add("505");
+                    deviceTypes.add(deviceType);
+                }else if(String.valueOf(SensorType.DOOR_MAGNETIC_SENSOR.getCode()).equals(deviceType)){
+                    deviceTypes.add("506");
+                    deviceTypes.add(deviceType);
+                }else{
+                    deviceTypes.add(deviceType);
+                }
+            }
+        }else if(dataType == 2){
+            //报警主机类:下拉框告警类型转换
+            if(StringUtils.isNotEmpty(deviceType)){
+                if(String.valueOf(SensorType.INFRARED_SENSOR.getCode()).equals(deviceType)){
+                    deviceTypes.add("504");
+                }else if(String.valueOf(SensorType.SMOKE_SENSOR.getCode()).equals(deviceType)){
+                    deviceTypes.add("503");
+                }else if(String.valueOf(SensorType.HUMIDITY_TEMPERATURE_SENSOR.getCode()).equals(deviceType)){
+                    deviceTypes.add("501");
+                    deviceTypes.add("502");
+                }else if(String.valueOf(SensorType.WATER_INTRUSION.getCode()).equals(deviceType)){
+                    deviceTypes.add("505");
+                }else if(String.valueOf(SensorType.DOOR_MAGNETIC_SENSOR.getCode()).equals(deviceType)){
+                    deviceTypes.add("506");
+                }else{
+                    deviceTypes.add(deviceType);
+                }
+            }
+        }
 
-        Page<IotAlarmDataVo> iotAlarmDataVoPage = baseMapper.selectPageList(page, request);
+        Page<IotAlarmDataVo> iotAlarmDataVoPage = baseMapper.selectPageList(page, request,deviceTypes);
 
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(iotAlarmDataVoPage);

+ 5 - 2
soc-modules/soc-modules-iot/src/main/resources/mapper/IotAlarmDataMapper.xml

@@ -23,8 +23,11 @@
         <if test="param.dataType != null">
             and a.data_type = #{param.dataType}
         </if>
-        <if test="param.deviceType != null and param.deviceType != ''">
-            and a.source_type = #{param.deviceType}
+        <if test=" deviceTypeList!= null and deviceTypeList.size() > 0">
+            and a.source_type in
+            <foreach collection="deviceTypeList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="param.params.alarmStartTime != null">
             and a.time &gt;= #{param.params.alarmStartTime}