city, graphics page, errors on graphics still

This commit is contained in:
2025-07-27 21:10:01 +03:00
parent ff456b5f62
commit d730a58823
16 changed files with 1888 additions and 1052 deletions

View File

@@ -33,6 +33,7 @@ public class DataCenter extends BaseDomain {
private Double latitude;
private Double longitude;
private Area area;
private String city;
private List<Project> projects = new ArrayList<>();
private Sector sector;
@@ -201,4 +202,12 @@ public class DataCenter extends BaseDomain {
public void setActivitySubUnit(ActivitySubUnit activitySubUnit) {
this.activitySubUnit = activitySubUnit;
}
@Column(name = "city")
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}

View File

@@ -16,6 +16,7 @@ public class DataCenterDto {
private int id;
private Integer externalId;
private Integer number;
private String city;
private AreaDto area;
private List<ProjectDto> projects;
@@ -61,6 +62,13 @@ public class DataCenterDto {
this.number = number;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public AreaDto getArea() {
return area;
}

View File

@@ -11,6 +11,18 @@ import com.sgs.graphql.userHistory.mutation.UserLogger;
import com.sgs.graphql.userNotification.mutation.UserNotificationMutation;
import com.sgs.graphql.area.domain.Area;
import com.sgs.graphql.area.service.AreaService;
import com.sgs.graphql.emissionScope.domain.EmissionScope;
import com.sgs.graphql.emissionScope.service.EmissionScopeService;
import com.sgs.graphql.sector.domain.Sector;
import com.sgs.graphql.sector.service.SectorService;
import com.sgs.graphql.subSector.domain.SubSector;
import com.sgs.graphql.subSector.service.SubSectorService;
import com.sgs.graphql.emissionSource.domain.EmissionSource;
import com.sgs.graphql.emissionSource.service.EmissionSourceService;
import com.sgs.graphql.consuptionUnit.domain.ConsuptionUnit;
import com.sgs.graphql.consuptionUnit.service.ConsuptionUnitService;
import com.sgs.graphql.activitySubUnit.domain.ActivitySubUnit;
import com.sgs.graphql.activitySubUnit.service.ActivitySubUnitService;
import graphql.kickstart.tools.GraphQLMutationResolver;
import graphql.schema.DataFetchingEnvironment;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,17 +39,32 @@ public class DataCenterMutation implements GraphQLMutationResolver {
private final DataCenterService dataCenterService;
private final DataCenterRepo dataCenterRepo;
private final AreaService areaService;
private final EmissionScopeService emissionScopeService;
private final SectorService sectorService;
private final SubSectorService subSectorService;
private final EmissionSourceService emissionSourceService;
private final ConsuptionUnitService consuptionUnitService;
private final ActivitySubUnitService activitySubUnitService;
private final SystemLogger systemLogger;
private final UserLogger userLogger;
private final UserNotificationMutation notificationMutation;
@Autowired
public DataCenterMutation(DataCenterService dataCenterService, DataCenterRepo dataCenterRepo,
AreaService areaService, SystemLogger systemLogger,
AreaService areaService, EmissionScopeService emissionScopeService,
SectorService sectorService, SubSectorService subSectorService,
EmissionSourceService emissionSourceService, ConsuptionUnitService consuptionUnitService,
ActivitySubUnitService activitySubUnitService, SystemLogger systemLogger,
UserLogger userLogger, UserNotificationMutation notificationMutation) {
this.dataCenterService = dataCenterService;
this.dataCenterRepo = dataCenterRepo;
this.areaService = areaService;
this.emissionScopeService = emissionScopeService;
this.sectorService = sectorService;
this.subSectorService = subSectorService;
this.emissionSourceService = emissionSourceService;
this.consuptionUnitService = consuptionUnitService;
this.activitySubUnitService = activitySubUnitService;
this.systemLogger = systemLogger;
this.userLogger = userLogger;
this.notificationMutation = notificationMutation;
@@ -57,6 +84,8 @@ public class DataCenterMutation implements GraphQLMutationResolver {
dataCenter.setAddress(input.getAddress());
dataCenter.setLatitude(input.getLatitude());
dataCenter.setLongitude(input.getLongitude());
dataCenter.setCity(input.getCity());
dataCenter.setConsuptionAmount(input.getConsuptionAmount());
// Set area if provided
if (input.getAreaId() != null) {
@@ -65,6 +94,48 @@ public class DataCenterMutation implements GraphQLMutationResolver {
dataCenter.setArea(area);
}
// Set emission scope if provided
if (input.getEmissionScopeId() != null) {
EmissionScope emissionScope = emissionScopeService.findById(input.getEmissionScopeId())
.orElseThrow(() -> new NoSuchElementException("Emission scope not found with id: " + input.getEmissionScopeId()));
dataCenter.setEmissionScope(emissionScope);
}
// Set sector if provided
if (input.getSectorId() != null) {
Sector sector = sectorService.findById(input.getSectorId())
.orElseThrow(() -> new NoSuchElementException("Sector not found with id: " + input.getSectorId()));
dataCenter.setSector(sector);
}
// Set sub sector if provided
if (input.getSubSectorId() != null) {
SubSector subSector = subSectorService.findById(input.getSubSectorId())
.orElseThrow(() -> new NoSuchElementException("Sub sector not found with id: " + input.getSubSectorId()));
dataCenter.setSubSector(subSector);
}
// Set emission source if provided
if (input.getEmissionSourceId() != null) {
EmissionSource emissionSource = emissionSourceService.findById(input.getEmissionSourceId())
.orElseThrow(() -> new NoSuchElementException("Emission source not found with id: " + input.getEmissionSourceId()));
dataCenter.setEmissionSource(emissionSource);
}
// Set consumption unit if provided
if (input.getConsuptionUnitId() != null) {
ConsuptionUnit consuptionUnit = consuptionUnitService.findById(input.getConsuptionUnitId())
.orElseThrow(() -> new NoSuchElementException("Consumption unit not found with id: " + input.getConsuptionUnitId()));
dataCenter.setConsuptionUnit(consuptionUnit);
}
// Set activity sub unit if provided
if (input.getActivitySubUnitId() != null) {
ActivitySubUnit activitySubUnit = activitySubUnitService.findById(input.getActivitySubUnitId())
.orElseThrow(() -> new NoSuchElementException("Activity sub unit not found with id: " + input.getActivitySubUnitId()));
dataCenter.setActivitySubUnit(activitySubUnit);
}
// Set number if not provided
if (dataCenter.getNumber() == null) {
Integer maxNumber = dataCenterRepo.findMaxNumber();
@@ -121,6 +192,12 @@ public class DataCenterMutation implements GraphQLMutationResolver {
if (input.getLongitude() != null) {
dataCenter.setLongitude(input.getLongitude());
}
if (input.getCity() != null) {
dataCenter.setCity(input.getCity());
}
if (input.getConsuptionAmount() != null) {
dataCenter.setConsuptionAmount(input.getConsuptionAmount());
}
// Update area if provided
if (input.getAreaId() != null) {
@@ -129,6 +206,48 @@ public class DataCenterMutation implements GraphQLMutationResolver {
dataCenter.setArea(area);
}
// Update emission scope if provided
if (input.getEmissionScopeId() != null) {
EmissionScope emissionScope = emissionScopeService.findById(input.getEmissionScopeId())
.orElseThrow(() -> new NoSuchElementException("Emission scope not found with id: " + input.getEmissionScopeId()));
dataCenter.setEmissionScope(emissionScope);
}
// Update sector if provided
if (input.getSectorId() != null) {
Sector sector = sectorService.findById(input.getSectorId())
.orElseThrow(() -> new NoSuchElementException("Sector not found with id: " + input.getSectorId()));
dataCenter.setSector(sector);
}
// Update sub sector if provided
if (input.getSubSectorId() != null) {
SubSector subSector = subSectorService.findById(input.getSubSectorId())
.orElseThrow(() -> new NoSuchElementException("Sub sector not found with id: " + input.getSubSectorId()));
dataCenter.setSubSector(subSector);
}
// Update emission source if provided
if (input.getEmissionSourceId() != null) {
EmissionSource emissionSource = emissionSourceService.findById(input.getEmissionSourceId())
.orElseThrow(() -> new NoSuchElementException("Emission source not found with id: " + input.getEmissionSourceId()));
dataCenter.setEmissionSource(emissionSource);
}
// Update consumption unit if provided
if (input.getConsuptionUnitId() != null) {
ConsuptionUnit consuptionUnit = consuptionUnitService.findById(input.getConsuptionUnitId())
.orElseThrow(() -> new NoSuchElementException("Consumption unit not found with id: " + input.getConsuptionUnitId()));
dataCenter.setConsuptionUnit(consuptionUnit);
}
// Update activity sub unit if provided
if (input.getActivitySubUnitId() != null) {
ActivitySubUnit activitySubUnit = activitySubUnitService.findById(input.getActivitySubUnitId())
.orElseThrow(() -> new NoSuchElementException("Activity sub unit not found with id: " + input.getActivitySubUnitId()));
dataCenter.setActivitySubUnit(activitySubUnit);
}
// Save the updated data center
DataCenter updatedDataCenter = dataCenterService.save(dataCenter);

View File

@@ -13,6 +13,14 @@ public class DataCenterInput extends BaseCreateInput {
private Double latitude;
private Double longitude;
private UUID areaId;
private String city;
private UUID emissionScopeId;
private UUID sectorId;
private UUID subSectorId;
private UUID emissionSourceId;
private UUID consuptionUnitId;
private Double consuptionAmount;
private UUID activitySubUnitId;
public String getDataCenter() {
return dataCenter;
@@ -77,5 +85,69 @@ public class DataCenterInput extends BaseCreateInput {
public void setAreaId(UUID areaId) {
this.areaId = areaId;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public UUID getEmissionScopeId() {
return emissionScopeId;
}
public void setEmissionScopeId(UUID emissionScopeId) {
this.emissionScopeId = emissionScopeId;
}
public UUID getSectorId() {
return sectorId;
}
public void setSectorId(UUID sectorId) {
this.sectorId = sectorId;
}
public UUID getSubSectorId() {
return subSectorId;
}
public void setSubSectorId(UUID subSectorId) {
this.subSectorId = subSectorId;
}
public UUID getEmissionSourceId() {
return emissionSourceId;
}
public void setEmissionSourceId(UUID emissionSourceId) {
this.emissionSourceId = emissionSourceId;
}
public UUID getConsuptionUnitId() {
return consuptionUnitId;
}
public void setConsuptionUnitId(UUID consuptionUnitId) {
this.consuptionUnitId = consuptionUnitId;
}
public Double getConsuptionAmount() {
return consuptionAmount;
}
public void setConsuptionAmount(Double consuptionAmount) {
this.consuptionAmount = consuptionAmount;
}
public UUID getActivitySubUnitId() {
return activitySubUnitId;
}
public void setActivitySubUnitId(UUID activitySubUnitId) {
this.activitySubUnitId = activitySubUnitId;
}
}

View File

@@ -12,6 +12,7 @@ public class MainDataTableCriteria extends BaseCriteria {
private UUID neighborhood;
private UUID organization;
private String year;
private UUID vm;
public UUID getSector() {
return sector;
@@ -68,4 +69,12 @@ public class MainDataTableCriteria extends BaseCriteria {
public void setYear(String year) {
this.year = year;
}
public UUID getVm() {
return vm;
}
public void setVm(UUID vm) {
this.vm = vm;
}
}

View File

@@ -38,6 +38,10 @@ public class MainDataTableCriteriaSpec extends BaseCriteriaSpec<MainDataTable, M
return (year == null) ? null : (Specification<MainDataTable>) (root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get("year"), year);
}
public static Specification<MainDataTable> vm(UUID vm) {
return (vm == null) ? null : (Specification<MainDataTable>) (root, query, criteriaBuilder) -> criteriaBuilder.equal(root.join("vm").get("id"), vm);
}
@Override
public Specification<MainDataTable> createForAll(MainDataTableCriteria criteria) {
return Specification.where(sector(criteria.getSector()))
@@ -45,6 +49,7 @@ public class MainDataTableCriteriaSpec extends BaseCriteriaSpec<MainDataTable, M
.and(district(criteria.getDistrict()))
.and(neighborhood(criteria.getNeighborhood()))
.and(organization(criteria.getOrganization()))
.and(year(criteria.getYear()));
.and(year(criteria.getYear()))
.and(vm(criteria.getVm()));
}
}

View File

@@ -102,4 +102,12 @@ input DataCenterInput {
latitude: Float
longitude: Float
areaId: ID
city: String
emissionScopeId: ID
sectorId: ID
subSectorId: ID
emissionSourceId: ID
consuptionUnitId: ID
consuptionAmount: Float
activitySubUnitId: ID
}

View File

@@ -6,4 +6,5 @@ input MainDataTableCriteria{
neighborhood:ID
organization:ID
year:String
vm:ID
}

View File

@@ -26,23 +26,7 @@ type MainDataTable {
proteinAmount:Float
burnOrOpenBurn:Boolean
scopeCheck:Boolean
}
type Vm {
id: ID
status: String
name: String
power: Float
calcOn: Boolean
config: Config
}
type Config {
id: ID
cpu: Int
ram: Int
disk: Int
vm: VM
}
type VMEmissionSummary {