|
|
|
@ -7,16 +7,15 @@ import com.dongjian.dashboard.back.common.response.ResponseCode; |
|
|
|
import com.dongjian.dashboard.back.common.response.SimpleDataResponse; |
|
|
|
import com.dongjian.dashboard.back.dao.ex.FavoritedDeviceMapperExt; |
|
|
|
import com.dongjian.dashboard.back.dto.data.AccumulateDataSearchParam; |
|
|
|
import com.dongjian.dashboard.back.dto.data.AlarmDataSearchParam; |
|
|
|
import com.dongjian.dashboard.back.dto.data.BaStatusDataSearchParam; |
|
|
|
import com.dongjian.dashboard.back.dto.data.MeasureDataSearchParam; |
|
|
|
import com.dongjian.dashboard.back.dto.device.FavoritedDeviceSearchParams; |
|
|
|
import com.dongjian.dashboard.back.dto.device.OptFavoritedDeviceParams; |
|
|
|
import com.dongjian.dashboard.back.service.DeviceDataAccumulateService; |
|
|
|
import com.dongjian.dashboard.back.service.DeviceDataBaStatusService; |
|
|
|
import com.dongjian.dashboard.back.service.DeviceDataMeasureService; |
|
|
|
import com.dongjian.dashboard.back.service.FavoritedDeviceService; |
|
|
|
import com.dongjian.dashboard.back.service.*; |
|
|
|
import com.dongjian.dashboard.back.service.common.CommonOpt; |
|
|
|
import com.dongjian.dashboard.back.vo.data.DeviceAccumulateData; |
|
|
|
import com.dongjian.dashboard.back.vo.data.DeviceAlarmData; |
|
|
|
import com.dongjian.dashboard.back.vo.data.DeviceBaStatusData; |
|
|
|
import com.dongjian.dashboard.back.vo.data.DeviceMeasureData; |
|
|
|
import com.dongjian.dashboard.back.vo.device.FavoritedDeviceVO; |
|
|
|
@ -52,6 +51,8 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService { |
|
|
|
DeviceDataBaStatusService deviceDataBaStatusService; |
|
|
|
@Autowired |
|
|
|
DeviceDataMeasureService deviceDataMeasureService; |
|
|
|
@Autowired |
|
|
|
DeviceDataAlarmService deviceDataAlarmService; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -77,6 +78,7 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService { |
|
|
|
List<String> accumulateDeviceIds = new ArrayList<>(); |
|
|
|
List<String> measureDeviceIds = new ArrayList<>(); |
|
|
|
List<String> statusDeviceIds = new ArrayList<>(); |
|
|
|
List<String> alarmDeviceIds = new ArrayList<>(); |
|
|
|
|
|
|
|
for (FavoritedDeviceVO vo : favoritedDeviceVOList) { |
|
|
|
Long categoryId = vo.getCategoryId(); |
|
|
|
@ -86,6 +88,8 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService { |
|
|
|
measureDeviceIds.add(vo.getDeviceId()); |
|
|
|
} else if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_STATUS).contains(categoryId)) { |
|
|
|
statusDeviceIds.add(vo.getDeviceId()); |
|
|
|
} else if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_ALARM).contains(categoryId)) { |
|
|
|
alarmDeviceIds.add(vo.getDeviceId()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -93,6 +97,7 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService { |
|
|
|
Map<String, DeviceAccumulateData> accumulateDataMap = buildAccumulateDataMap(companyId, accumulateDeviceIds); |
|
|
|
Map<String, DeviceMeasureData> measureDataMap = buildMeasureDataMap(companyId, measureDeviceIds); |
|
|
|
Map<String, DeviceBaStatusData> statusDataMap = buildStatusDataMap(companyId, statusDeviceIds); |
|
|
|
Map<String, DeviceAlarmData> alarmDataMap = buildAlarmDataMap(companyId, languageType, alarmDeviceIds); |
|
|
|
|
|
|
|
// 按收藏顺序生成结果
|
|
|
|
for (FavoritedDeviceVO vo : favoritedDeviceVOList) { |
|
|
|
@ -106,6 +111,8 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService { |
|
|
|
data = measureDataMap.get(deviceId); |
|
|
|
} else if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_STATUS).contains(categoryId)) { |
|
|
|
data = statusDataMap.get(deviceId); |
|
|
|
} else if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_ALARM).contains(categoryId)) { |
|
|
|
data = alarmDataMap.get(deviceId); |
|
|
|
} |
|
|
|
|
|
|
|
if (data != null) { |
|
|
|
@ -116,6 +123,16 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService { |
|
|
|
return new PageInfo<>(resultList); |
|
|
|
} |
|
|
|
|
|
|
|
private Map<String, DeviceAlarmData> buildAlarmDataMap(Long companyId, Integer languageType, List<String> deviceIds) { |
|
|
|
if (CollectionUtils.isEmpty(deviceIds)) return Collections.emptyMap(); |
|
|
|
|
|
|
|
AlarmDataSearchParam param = new AlarmDataSearchParam(); |
|
|
|
param.setDeviceIdList(deviceIds); |
|
|
|
param.setCompanyIdList(List.of(companyId)); |
|
|
|
return deviceDataAlarmService.handleDeviceAlarmData(languageType, param).stream() |
|
|
|
.collect(Collectors.toMap(DeviceAlarmData::getDeviceId, Function.identity(), (existing, replacement) -> replacement)); |
|
|
|
} |
|
|
|
|
|
|
|
private Map<String, DeviceAccumulateData> buildAccumulateDataMap(Long companyId, List<String> deviceIds) { |
|
|
|
if (CollectionUtils.isEmpty(deviceIds)) return Collections.emptyMap(); |
|
|
|
|
|
|
|
|