|
@@ -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;
|
|
|
- // }
|
|
|
}
|