|
|
|
@ -27,7 +27,6 @@ import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
import org.thingsboard.common.util.ThingsBoardThreadFactory; |
|
|
|
import org.thingsboard.server.common.data.HasName; |
|
|
|
import org.thingsboard.server.common.data.alarm.Alarm; |
|
|
|
import org.thingsboard.server.common.data.alarm.AlarmInfo; |
|
|
|
import org.thingsboard.server.common.data.alarm.AlarmQuery; |
|
|
|
@ -39,6 +38,7 @@ import org.thingsboard.server.common.data.exception.ApiUsageLimitsExceededExcept |
|
|
|
import org.thingsboard.server.common.data.id.AlarmId; |
|
|
|
import org.thingsboard.server.common.data.id.CustomerId; |
|
|
|
import org.thingsboard.server.common.data.id.EntityId; |
|
|
|
import org.thingsboard.server.common.data.id.HasId; |
|
|
|
import org.thingsboard.server.common.data.id.TenantId; |
|
|
|
import org.thingsboard.server.common.data.page.PageData; |
|
|
|
import org.thingsboard.server.common.data.query.AlarmData; |
|
|
|
@ -49,7 +49,7 @@ import org.thingsboard.server.common.data.relation.EntitySearchDirection; |
|
|
|
import org.thingsboard.server.common.data.relation.RelationsSearchParameters; |
|
|
|
import org.thingsboard.server.dao.entity.AbstractEntityService; |
|
|
|
import org.thingsboard.server.dao.entity.EntityService; |
|
|
|
import org.thingsboard.server.dao.entity.SimpleEntityService; |
|
|
|
import org.thingsboard.server.dao.entity.TbEntityService; |
|
|
|
import org.thingsboard.server.dao.service.DataValidator; |
|
|
|
|
|
|
|
import javax.annotation.Nullable; |
|
|
|
@ -60,6 +60,7 @@ import java.util.Collection; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.LinkedHashSet; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.Set; |
|
|
|
import java.util.concurrent.ExecutionException; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
@ -281,14 +282,12 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ |
|
|
|
public ListenableFuture<AlarmInfo> findAlarmInfoByIdAsync(TenantId tenantId, AlarmId alarmId) { |
|
|
|
log.trace("Executing findAlarmInfoByIdAsync [{}]", alarmId); |
|
|
|
validateId(alarmId, "Incorrect alarmId " + alarmId); |
|
|
|
return Futures.transformAsync(alarmDao.findAlarmByIdAsync(tenantId, alarmId.getId()), |
|
|
|
return Futures.transform(alarmDao.findAlarmByIdAsync(tenantId, alarmId.getId()), |
|
|
|
a -> { |
|
|
|
AlarmInfo alarmInfo = new AlarmInfo(a); |
|
|
|
return Futures.transform( |
|
|
|
entityService.fetchEntityNameAsync(tenantId, alarmInfo.getOriginator()), originatorNameOpt -> { |
|
|
|
alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "N/A" : originatorNameOpt.get()); |
|
|
|
return alarmInfo; |
|
|
|
}, MoreExecutors.directExecutor()); |
|
|
|
Optional<String> originatorNameOpt = entityService.fetchEntityName(tenantId, alarmInfo.getOriginator()); |
|
|
|
alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "N/A" : originatorNameOpt.get()); |
|
|
|
return alarmInfo; |
|
|
|
}, MoreExecutors.directExecutor()); |
|
|
|
} |
|
|
|
|
|
|
|
@ -313,12 +312,9 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ |
|
|
|
private ListenableFuture<PageData<AlarmInfo>> fetchAlarmsOriginators(TenantId tenantId, PageData<AlarmInfo> alarms) { |
|
|
|
List<ListenableFuture<AlarmInfo>> alarmFutures = new ArrayList<>(alarms.getData().size()); |
|
|
|
for (AlarmInfo alarmInfo : alarms.getData()) { |
|
|
|
alarmFutures.add(Futures.transform( |
|
|
|
entityService.fetchEntityNameAsync(tenantId, alarmInfo.getOriginator()), originatorNameOpt -> { |
|
|
|
alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "Deleted" : originatorNameOpt.get()); |
|
|
|
return alarmInfo; |
|
|
|
}, MoreExecutors.directExecutor() |
|
|
|
)); |
|
|
|
Optional<String> originatorNameOpt = entityService.fetchEntityName(tenantId, alarmInfo.getOriginator()); |
|
|
|
alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "Deleted" : originatorNameOpt.get()); |
|
|
|
alarmFutures.add(Futures.immediateFuture(alarmInfo)); |
|
|
|
} |
|
|
|
return Futures.transform(Futures.successfulAsList(alarmFutures), |
|
|
|
alarmInfos -> new PageData<>(alarmInfos, alarms.getTotalPages(), alarms.getTotalElements(), |
|
|
|
@ -410,17 +406,17 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { |
|
|
|
return findAlarmByIdAsync(tenantId, new AlarmId(entityId.getId())); |
|
|
|
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { |
|
|
|
return Optional.of(findAlarmById(tenantId, new AlarmId(entityId.getId()))); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { |
|
|
|
try { |
|
|
|
Alarm alarm = findAlarmByIdAsync(tenantId, new AlarmId(entityId.getId())).get(); |
|
|
|
return alarm != null ? alarm.getCustomerId() : SimpleEntityService.NULL_CUSTOMER_ID; |
|
|
|
return alarm != null ? alarm.getCustomerId() : TbEntityService.NULL_CUSTOMER_ID; |
|
|
|
} catch (Exception e) { |
|
|
|
return SimpleEntityService.NULL_CUSTOMER_ID; |
|
|
|
return TbEntityService.NULL_CUSTOMER_ID; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|