Sfoglia il codice sorgente

优化alarmRecord查询接口

lixing 3 anni fa
parent
commit
52c764f5d0

+ 38 - 34
dmp-alarm/src/main/java/com/persagy/dmp/alarm/service/AlarmRecordService.java

@@ -28,7 +28,6 @@ import org.springframework.util.StringUtils;
 
 import javax.transaction.Transactional;
 import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class AlarmRecordService extends AlarmBaseService {
@@ -74,37 +73,49 @@ public class AlarmRecordService extends AlarmBaseService {
         PagedResponse<AlarmRecordModel> result = new PagedResponse<>();
         result.setCount(resp.getCount());
         List<AlarmRecord> dataList = resp.getData();
+        if (CollectionUtils.isEmpty(dataList)) {
+            return result;
+        }
+
         // 如果需要查询日志相关的信息,需使用withColumns参数
         Set<String> withColumns = criteria.getWithColumns();
-        if (dataList != null && dataList.size() > 0) {
-            // 获取报警记录id列表
-            if (null != withColumns &&
-                    (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())
-                            || withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())
-                    )) {
-				List<String> recordIdList = new ArrayList<>();
-				dataList.forEach(alarmRecord -> recordIdList.add(alarmRecord.getId()));
-				Map<String, List<AlarmLog>> alarmLogListMap = alarmLogService.getAlarmLogMap(recordIdList);
-                List<AlarmRecordModel> collect = dataList.stream().map(entity -> {
-                    AlarmRecordModel model = entity.toModel();
-                    List<AlarmLog> alarmLogList = new ArrayList<>();
-                    if (alarmLogListMap.containsKey(model.getId())) {
-                        alarmLogList = alarmLogListMap.get(model.getId());
-                    }
-                    if (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())) {
-                        Date ignoreAlarmTime = getCreateTime(alarmLogList, EnumAlarmLogType.TREATMODE, 1);
-                        model.setIgnoreTime(ignoreAlarmTime);
-                    }
-                    if (withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())) {
-                        Date treatEndTime = getCreateTime(alarmLogList, EnumAlarmLogType.TREATSTATE, 3);
-                        model.setTreatEndTime(treatEndTime);
-                    }
-                    return model;
-                }).collect(Collectors.toList());
-                result.setData(collect);
+        boolean withLogInfo = !CollectionUtils.isEmpty(withColumns);
+
+        Map<String, List<AlarmLog>> alarmLogListMap = new HashMap<>();
+        // 获取报警日志
+        if (withLogInfo &&
+                (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())
+                        || withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())
+                )) {
+            List<String> recordIdList = new ArrayList<>();
+            dataList.forEach(alarmRecord -> recordIdList.add(alarmRecord.getId()));
+            alarmLogListMap = alarmLogService.getAlarmLogMap(recordIdList);
+        }
+
+        List<AlarmRecordModel> alarmRecordModels = new ArrayList<>(dataList.size());
+        for (AlarmRecord entity : dataList) {
+            AlarmRecordModel model = entity.toModel();
+            alarmRecordModels.add(model);
 
+            if (!withLogInfo) {
+                continue;
+            }
+            // 如果需要日志信息
+            List<AlarmLog> alarmLogList = new ArrayList<>();
+            if (alarmLogListMap.containsKey(model.getId())) {
+                alarmLogList = alarmLogListMap.get(model.getId());
+            }
+            if (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())) {
+                Date ignoreAlarmTime = getCreateTime(alarmLogList, EnumAlarmLogType.TREATMODE, 1);
+                model.setIgnoreTime(ignoreAlarmTime);
+            }
+            if (withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())) {
+                Date treatEndTime = getCreateTime(alarmLogList, EnumAlarmLogType.TREATSTATE, 3);
+                model.setTreatEndTime(treatEndTime);
             }
         }
+
+        result.setData(alarmRecordModels);
         return result;
     }
 
@@ -336,11 +347,4 @@ public class AlarmRecordService extends AlarmBaseService {
         return response;
     }
 
-    // @Transactional
-    // public MapResponse delete(AlarmRecordModel param) {
-    // MapResponse response = new MapResponse();
-    // // TODO
-    // alarmRecordRepository.deleteById(param.getId());
-    // return response;
-    // }
 }