added calculated field service to ctx
This commit is contained in:
parent
de5e438c8c
commit
4dbc35273a
@ -62,6 +62,7 @@ import org.thingsboard.server.dao.asset.AssetService;
|
|||||||
import org.thingsboard.server.dao.attributes.AttributesService;
|
import org.thingsboard.server.dao.attributes.AttributesService;
|
||||||
import org.thingsboard.server.dao.audit.AuditLogService;
|
import org.thingsboard.server.dao.audit.AuditLogService;
|
||||||
import org.thingsboard.server.dao.cassandra.CassandraCluster;
|
import org.thingsboard.server.dao.cassandra.CassandraCluster;
|
||||||
|
import org.thingsboard.server.dao.cf.CalculatedFieldService;
|
||||||
import org.thingsboard.server.dao.customer.CustomerService;
|
import org.thingsboard.server.dao.customer.CustomerService;
|
||||||
import org.thingsboard.server.dao.dashboard.DashboardService;
|
import org.thingsboard.server.dao.dashboard.DashboardService;
|
||||||
import org.thingsboard.server.dao.device.ClaimDevicesService;
|
import org.thingsboard.server.dao.device.ClaimDevicesService;
|
||||||
@ -389,6 +390,10 @@ public class ActorSystemContext {
|
|||||||
@Getter
|
@Getter
|
||||||
private SlackService slackService;
|
private SlackService slackService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
@Getter
|
||||||
|
private CalculatedFieldService calculatedFieldService;
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired(required = false)
|
@Autowired(required = false)
|
||||||
@Getter
|
@Getter
|
||||||
|
|||||||
@ -78,6 +78,7 @@ import org.thingsboard.server.dao.asset.AssetService;
|
|||||||
import org.thingsboard.server.dao.attributes.AttributesService;
|
import org.thingsboard.server.dao.attributes.AttributesService;
|
||||||
import org.thingsboard.server.dao.audit.AuditLogService;
|
import org.thingsboard.server.dao.audit.AuditLogService;
|
||||||
import org.thingsboard.server.dao.cassandra.CassandraCluster;
|
import org.thingsboard.server.dao.cassandra.CassandraCluster;
|
||||||
|
import org.thingsboard.server.dao.cf.CalculatedFieldService;
|
||||||
import org.thingsboard.server.dao.customer.CustomerService;
|
import org.thingsboard.server.dao.customer.CustomerService;
|
||||||
import org.thingsboard.server.dao.dashboard.DashboardService;
|
import org.thingsboard.server.dao.dashboard.DashboardService;
|
||||||
import org.thingsboard.server.dao.device.DeviceCredentialsService;
|
import org.thingsboard.server.dao.device.DeviceCredentialsService;
|
||||||
@ -848,6 +849,11 @@ class DefaultTbContext implements TbContext {
|
|||||||
return mainCtx.getSlackService();
|
return mainCtx.getSlackService();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CalculatedFieldService getCalculatedFieldService() {
|
||||||
|
return mainCtx.getCalculatedFieldService();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isExternalNodeForceAck() {
|
public boolean isExternalNodeForceAck() {
|
||||||
return mainCtx.isExternalNodeForceAck();
|
return mainCtx.isExternalNodeForceAck();
|
||||||
|
|||||||
@ -18,6 +18,7 @@ package org.thingsboard.server.dao.cf;
|
|||||||
import org.thingsboard.server.common.data.cf.CalculatedField;
|
import org.thingsboard.server.common.data.cf.CalculatedField;
|
||||||
import org.thingsboard.server.common.data.cf.CalculatedFieldLink;
|
import org.thingsboard.server.common.data.cf.CalculatedFieldLink;
|
||||||
import org.thingsboard.server.common.data.id.CalculatedFieldId;
|
import org.thingsboard.server.common.data.id.CalculatedFieldId;
|
||||||
|
import org.thingsboard.server.common.data.id.CalculatedFieldLinkId;
|
||||||
import org.thingsboard.server.common.data.id.EntityId;
|
import org.thingsboard.server.common.data.id.EntityId;
|
||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
import org.thingsboard.server.dao.entity.EntityDaoService;
|
import org.thingsboard.server.dao.entity.EntityDaoService;
|
||||||
@ -34,6 +35,8 @@ public interface CalculatedFieldService extends EntityDaoService {
|
|||||||
|
|
||||||
CalculatedFieldLink saveCalculatedFieldLink(TenantId tenantId, CalculatedFieldLink calculatedFieldLink);
|
CalculatedFieldLink saveCalculatedFieldLink(TenantId tenantId, CalculatedFieldLink calculatedFieldLink);
|
||||||
|
|
||||||
|
CalculatedFieldLink findCalculatedFieldLinkById(TenantId tenantId, CalculatedFieldLinkId calculatedFieldLinkId);
|
||||||
|
|
||||||
boolean existsByEntityId(TenantId tenantId, EntityId entityId);
|
boolean existsByEntityId(TenantId tenantId, EntityId entityId);
|
||||||
|
|
||||||
boolean referencedInAnyCalculatedField(TenantId tenantId, EntityId referencedEntityId);
|
boolean referencedInAnyCalculatedField(TenantId tenantId, EntityId referencedEntityId);
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import org.thingsboard.server.common.data.cf.CalculatedFieldLink;
|
|||||||
import org.thingsboard.server.common.data.id.AssetId;
|
import org.thingsboard.server.common.data.id.AssetId;
|
||||||
import org.thingsboard.server.common.data.id.AssetProfileId;
|
import org.thingsboard.server.common.data.id.AssetProfileId;
|
||||||
import org.thingsboard.server.common.data.id.CalculatedFieldId;
|
import org.thingsboard.server.common.data.id.CalculatedFieldId;
|
||||||
|
import org.thingsboard.server.common.data.id.CalculatedFieldLinkId;
|
||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
||||||
import org.thingsboard.server.common.data.id.EntityId;
|
import org.thingsboard.server.common.data.id.EntityId;
|
||||||
@ -114,6 +115,14 @@ public class BaseCalculatedFieldService implements CalculatedFieldService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CalculatedFieldLink findCalculatedFieldLinkById(TenantId tenantId, CalculatedFieldLinkId calculatedFieldLinkId) {
|
||||||
|
log.trace("Executing findCalculatedFieldLinkById, tenantId [{}], calculatedFieldLinkId [{}]", tenantId, calculatedFieldLinkId);
|
||||||
|
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
|
||||||
|
validateId(calculatedFieldLinkId, id -> "Incorrect calculatedFieldLinkId " + id);
|
||||||
|
return calculatedFieldLinkDao.findById(tenantId, calculatedFieldLinkId.getId());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean existsByEntityId(TenantId tenantId, EntityId entityId) {
|
public boolean existsByEntityId(TenantId tenantId, EntityId entityId) {
|
||||||
return calculatedFieldDao.existsByTenantIdAndEntityId(tenantId, entityId);
|
return calculatedFieldDao.existsByTenantIdAndEntityId(tenantId, entityId);
|
||||||
|
|||||||
@ -50,6 +50,7 @@ import org.thingsboard.server.dao.asset.AssetService;
|
|||||||
import org.thingsboard.server.dao.attributes.AttributesService;
|
import org.thingsboard.server.dao.attributes.AttributesService;
|
||||||
import org.thingsboard.server.dao.audit.AuditLogService;
|
import org.thingsboard.server.dao.audit.AuditLogService;
|
||||||
import org.thingsboard.server.dao.cassandra.CassandraCluster;
|
import org.thingsboard.server.dao.cassandra.CassandraCluster;
|
||||||
|
import org.thingsboard.server.dao.cf.CalculatedFieldService;
|
||||||
import org.thingsboard.server.dao.customer.CustomerService;
|
import org.thingsboard.server.dao.customer.CustomerService;
|
||||||
import org.thingsboard.server.dao.dashboard.DashboardService;
|
import org.thingsboard.server.dao.dashboard.DashboardService;
|
||||||
import org.thingsboard.server.dao.device.DeviceCredentialsService;
|
import org.thingsboard.server.dao.device.DeviceCredentialsService;
|
||||||
@ -357,6 +358,8 @@ public interface TbContext {
|
|||||||
|
|
||||||
SlackService getSlackService();
|
SlackService getSlackService();
|
||||||
|
|
||||||
|
CalculatedFieldService getCalculatedFieldService();
|
||||||
|
|
||||||
boolean isExternalNodeForceAck();
|
boolean isExternalNodeForceAck();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -18,10 +18,13 @@ package org.thingsboard.rule.engine.util;
|
|||||||
import org.thingsboard.rule.engine.api.TbContext;
|
import org.thingsboard.rule.engine.api.TbContext;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.HasTenantId;
|
import org.thingsboard.server.common.data.HasTenantId;
|
||||||
|
import org.thingsboard.server.common.data.cf.CalculatedFieldLink;
|
||||||
import org.thingsboard.server.common.data.id.AlarmId;
|
import org.thingsboard.server.common.data.id.AlarmId;
|
||||||
import org.thingsboard.server.common.data.id.ApiUsageStateId;
|
import org.thingsboard.server.common.data.id.ApiUsageStateId;
|
||||||
import org.thingsboard.server.common.data.id.AssetId;
|
import org.thingsboard.server.common.data.id.AssetId;
|
||||||
import org.thingsboard.server.common.data.id.AssetProfileId;
|
import org.thingsboard.server.common.data.id.AssetProfileId;
|
||||||
|
import org.thingsboard.server.common.data.id.CalculatedFieldId;
|
||||||
|
import org.thingsboard.server.common.data.id.CalculatedFieldLinkId;
|
||||||
import org.thingsboard.server.common.data.id.CustomerId;
|
import org.thingsboard.server.common.data.id.CustomerId;
|
||||||
import org.thingsboard.server.common.data.id.DashboardId;
|
import org.thingsboard.server.common.data.id.DashboardId;
|
||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
@ -157,6 +160,17 @@ public class TenantIdLoader {
|
|||||||
case MOBILE_APP:
|
case MOBILE_APP:
|
||||||
tenantEntity = ctx.getMobileAppService().findMobileAppById(ctxTenantId, new MobileAppId(id));
|
tenantEntity = ctx.getMobileAppService().findMobileAppById(ctxTenantId, new MobileAppId(id));
|
||||||
break;
|
break;
|
||||||
|
case CALCULATED_FIELD:
|
||||||
|
tenantEntity = ctx.getCalculatedFieldService().findById(ctxTenantId, new CalculatedFieldId(id));
|
||||||
|
break;
|
||||||
|
case CALCULATED_FIELD_LINK:
|
||||||
|
CalculatedFieldLink calculatedFieldLink = ctx.getCalculatedFieldService().findCalculatedFieldLinkById(ctxTenantId, new CalculatedFieldLinkId(id));
|
||||||
|
if (calculatedFieldLink != null) {
|
||||||
|
tenantEntity = ctx.getCalculatedFieldService().findById(ctxTenantId, calculatedFieldLink.getCalculatedFieldId());
|
||||||
|
} else {
|
||||||
|
tenantEntity = null;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new RuntimeException("Unexpected entity type: " + entityId.getEntityType());
|
throw new RuntimeException("Unexpected entity type: " + entityId.getEntityType());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,6 +43,8 @@ import org.thingsboard.server.common.data.User;
|
|||||||
import org.thingsboard.server.common.data.alarm.Alarm;
|
import org.thingsboard.server.common.data.alarm.Alarm;
|
||||||
import org.thingsboard.server.common.data.asset.Asset;
|
import org.thingsboard.server.common.data.asset.Asset;
|
||||||
import org.thingsboard.server.common.data.asset.AssetProfile;
|
import org.thingsboard.server.common.data.asset.AssetProfile;
|
||||||
|
import org.thingsboard.server.common.data.cf.CalculatedField;
|
||||||
|
import org.thingsboard.server.common.data.cf.CalculatedFieldLink;
|
||||||
import org.thingsboard.server.common.data.domain.Domain;
|
import org.thingsboard.server.common.data.domain.Domain;
|
||||||
import org.thingsboard.server.common.data.edge.Edge;
|
import org.thingsboard.server.common.data.edge.Edge;
|
||||||
import org.thingsboard.server.common.data.id.AssetProfileId;
|
import org.thingsboard.server.common.data.id.AssetProfileId;
|
||||||
@ -66,6 +68,7 @@ import org.thingsboard.server.common.data.rule.RuleNode;
|
|||||||
import org.thingsboard.server.common.data.widget.WidgetType;
|
import org.thingsboard.server.common.data.widget.WidgetType;
|
||||||
import org.thingsboard.server.common.data.widget.WidgetsBundle;
|
import org.thingsboard.server.common.data.widget.WidgetsBundle;
|
||||||
import org.thingsboard.server.dao.asset.AssetService;
|
import org.thingsboard.server.dao.asset.AssetService;
|
||||||
|
import org.thingsboard.server.dao.cf.CalculatedFieldService;
|
||||||
import org.thingsboard.server.dao.customer.CustomerService;
|
import org.thingsboard.server.dao.customer.CustomerService;
|
||||||
import org.thingsboard.server.dao.dashboard.DashboardService;
|
import org.thingsboard.server.dao.dashboard.DashboardService;
|
||||||
import org.thingsboard.server.dao.device.DeviceService;
|
import org.thingsboard.server.dao.device.DeviceService;
|
||||||
@ -151,6 +154,8 @@ public class TenantIdLoaderTest {
|
|||||||
private DomainService domainService;
|
private DomainService domainService;
|
||||||
@Mock
|
@Mock
|
||||||
private MobileAppService mobileAppService;
|
private MobileAppService mobileAppService;
|
||||||
|
@Mock
|
||||||
|
private CalculatedFieldService calculatedFieldService;
|
||||||
|
|
||||||
private TenantId tenantId;
|
private TenantId tenantId;
|
||||||
private TenantProfileId tenantProfileId;
|
private TenantProfileId tenantProfileId;
|
||||||
@ -392,6 +397,18 @@ public class TenantIdLoaderTest {
|
|||||||
when(ctx.getMobileAppService()).thenReturn(mobileAppService);
|
when(ctx.getMobileAppService()).thenReturn(mobileAppService);
|
||||||
doReturn(mobileApp).when(mobileAppService).findMobileAppById(eq(tenantId), any());
|
doReturn(mobileApp).when(mobileAppService).findMobileAppById(eq(tenantId), any());
|
||||||
break;
|
break;
|
||||||
|
case CALCULATED_FIELD:
|
||||||
|
CalculatedField calculatedField = new CalculatedField();
|
||||||
|
calculatedField.setTenantId(tenantId);
|
||||||
|
when(ctx.getCalculatedFieldService()).thenReturn(calculatedFieldService);
|
||||||
|
doReturn(calculatedField).when(calculatedFieldService).findById(eq(tenantId), any());
|
||||||
|
break;
|
||||||
|
case CALCULATED_FIELD_LINK:
|
||||||
|
CalculatedFieldLink calculatedFieldLink = new CalculatedFieldLink();
|
||||||
|
calculatedFieldLink.setTenantId(tenantId);
|
||||||
|
when(ctx.getCalculatedFieldService()).thenReturn(calculatedFieldService);
|
||||||
|
doReturn(calculatedFieldLink).when(calculatedFieldService).findCalculatedFieldLinkById(eq(tenantId), any());
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new RuntimeException("Unexpected originator EntityType " + entityType);
|
throw new RuntimeException("Unexpected originator EntityType " + entityType);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user