indicator fixes

This commit is contained in:
CITE\amentis 2024-09-11 18:21:57 +03:00
parent b584015256
commit 898b18e104
1 changed files with 41 additions and 19 deletions

View File

@ -428,31 +428,22 @@ public class MaintenanceServiceImpl implements MaintenanceService {
this.tenantEntityManager.disableTenantFilters(); this.tenantEntityManager.disableTenantFilters();
List<TenantUserEntity> tenantUserEntities = this.queryFactory.query(TenantUserQuery.class).disableTracking().userIds(this.kpiProperties.getUser()).collectAs(new BaseFieldSet().ensure(TenantUser._tenant)); List<TenantUserEntity> tenantUserEntities = this.queryFactory.query(TenantUserQuery.class).disableTracking().userIds(this.kpiProperties.getUser()).collectAs(new BaseFieldSet().ensure(TenantUser._tenant));
List<IndicatorField> fields = new ArrayList<>(); List<IndicatorField> fields = new ArrayList<>();
if (tenantUserEntities != null) {
List<TenantEntity> tenantEntities = this.queryFactory.query(TenantQuery.class).disableTracking().ids(tenantUserEntities.stream().map(TenantUserEntity::getTenantId).distinct().toList()).collect();
if (tenantEntities != null) {
for (TenantEntity tenant: tenantEntities) {
IndicatorField field = new IndicatorField(); IndicatorField field = new IndicatorField();
field.setCode("tenant_code"); field.setCode("tenant_code");
field.setName("Tenant Code"); field.setName("Tenant Code");
field.setValueField(tenant.getCode()); field.setBasetype(IndicatorFieldBaseType.Keyword);
field.setBasetype(IndicatorFieldBaseType.String);
fields.add(field); fields.add(field);
}
}
}
IndicatorField field1 = new IndicatorField(); IndicatorField field1 = new IndicatorField();
field1.setCode("user_id"); field1.setCode("user_id");
field1.setName("User Id"); field1.setName("User Id");
field1.setValueField(this.kpiProperties.getUser().toString()); field1.setBasetype(IndicatorFieldBaseType.Keyword);
field1.setBasetype(IndicatorFieldBaseType.String);
fields.add(field1); fields.add(field1);
IndicatorField field2 = new IndicatorField(); IndicatorField field2 = new IndicatorField();
field2.setCode("created_at"); field2.setCode("created_at");
field2.setName("Created at"); field2.setName("Created at");
field2.setValueField(Instant.now().toString());
field2.setBasetype(IndicatorFieldBaseType.Date); field2.setBasetype(IndicatorFieldBaseType.Date);
fields.add(field2); fields.add(field2);
@ -463,10 +454,15 @@ public class MaintenanceServiceImpl implements MaintenanceService {
IndicatorField field3 = new IndicatorField(); IndicatorField field3 = new IndicatorField();
field3.setCode("user_name"); field3.setCode("user_name");
field3.setName("User Name"); field3.setName("User Name");
field3.setValueField(user.getName());
field3.setBasetype(IndicatorFieldBaseType.String); field3.setBasetype(IndicatorFieldBaseType.String);
fields.add(field3); fields.add(field3);
IndicatorField field4 = new IndicatorField();
field4.setCode("value");
field4.setName("Value");
field4.setBasetype(IndicatorFieldBaseType.Integer);
fields.add(field4);
IndicatorSchema schema = new IndicatorSchema(); IndicatorSchema schema = new IndicatorSchema();
schema.setId(this.kpiProperties.getId()); schema.setId(this.kpiProperties.getId());
schema.setFields(fields); schema.setFields(fields);
@ -504,7 +500,33 @@ public class MaintenanceServiceImpl implements MaintenanceService {
IndicatorPointEvent event = new IndicatorPointEvent(); IndicatorPointEvent event = new IndicatorPointEvent();
event.setIndicatorId(this.kpiProperties.getId()); event.setIndicatorId(this.kpiProperties.getId());
event.add("user_id", this.kpiProperties.getUser());
event.add("created_at", Instant.now());
event.add("value", 1);
UserEntity user = this.queryFactory.query(UserQuery.class).disableTracking().ids(this.kpiProperties.getUser()).firstAs(new BaseFieldSet().ensure(User._name));
if (user == null) {
throw new MyApplicationException("user not found");
}
event.add("user_name", user.getName());
try {
this.tenantEntityManager.disableTenantFilters();
List<TenantUserEntity> tenantUserEntities = this.queryFactory.query(TenantUserQuery.class).disableTracking().userIds(this.kpiProperties.getUser()).collectAs(new BaseFieldSet().ensure(TenantUser._tenant));
if (tenantUserEntities != null) {
List<TenantEntity> tenantEntities = this.queryFactory.query(TenantQuery.class).disableTracking().ids(tenantUserEntities.stream().map(TenantUserEntity::getTenantId).distinct().toList()).collect();
if (tenantEntities != null) {
for (TenantEntity tenant: tenantEntities) {
event.add("tenant_code", tenant.getCode());
this.validatorFactory.validator(IndicatorPointEvent.IndicatorPointEventValidator.class).validateForce(event); this.validatorFactory.validator(IndicatorPointEvent.IndicatorPointEventValidator.class).validateForce(event);
this.indicatorPointEventHandler.handle(event); this.indicatorPointEventHandler.handle(event);
} }
}
}
} finally {
this.tenantEntityManager.reloadTenantFilters();
}
}
} }