diff --git a/sge-backend/pom.xml b/sge-backend/pom.xml
index 8130528..d184823 100644
--- a/sge-backend/pom.xml
+++ b/sge-backend/pom.xml
@@ -11,7 +11,7 @@
com.sgs
sgs
- 0.0.1-SNAPSHOT
+ 0.0.2-SNAPSHOT
sgs
SGS project for Spring Boot
diff --git a/sge-backend/src/main/java/com/sgs/SgsApplication.java b/sge-backend/src/main/java/com/sgs/SgsApplication.java
index d150b6a..df09726 100644
--- a/sge-backend/src/main/java/com/sgs/SgsApplication.java
+++ b/sge-backend/src/main/java/com/sgs/SgsApplication.java
@@ -1,897 +1,897 @@
-package com.sgs;
-
-import com.sgs.graphql.activitySubUnit.domain.ActivitySubUnit;
-import com.sgs.graphql.activitySubUnit.service.ActivitySubUnitService;
-import com.sgs.graphql.area.domain.Area;
-import com.sgs.graphql.area.service.AreaService;
-import com.sgs.graphql.city.domain.City;
-import com.sgs.graphql.city.repo.CityRepo;
-import com.sgs.graphql.city.service.CityService;
-import com.sgs.graphql.consuptionUnit.domain.ConsuptionUnit;
-import com.sgs.graphql.consuptionUnit.repo.ConsuptionUnitRepo;
-import com.sgs.graphql.consuptionUnit.service.ConsuptionUnitService;
-import com.sgs.graphql.country.domain.Country;
-import com.sgs.graphql.country.repo.CountryRepo;
-import com.sgs.graphql.country.service.CountryService;
-import com.sgs.graphql.district.domain.District;
-import com.sgs.graphql.district.repo.DistrictRepo;
-import com.sgs.graphql.district.service.DistrictService;
-import com.sgs.graphql.emissionScope.domain.EmissionScope;
-import com.sgs.graphql.emissionScope.service.EmissionScopeService;
-import com.sgs.graphql.emissionSource.domain.EmissionSource;
-import com.sgs.graphql.emissionSource.repo.EmissionSourceRepo;
-import com.sgs.graphql.emissionSource.service.EmissionSourceService;
-import com.sgs.graphql.emissionSourceConvertUnits.domain.EmissionSourceConvertUnit;
-import com.sgs.graphql.emissionSourceConvertUnits.service.EmissionSourceConvertUnitService;
-import com.sgs.graphql.gpcReference.domain.GpcReference;
-import com.sgs.graphql.gpcReference.service.GpcReferenceService;
-import com.sgs.graphql.mail.domain.MailInfo;
-import com.sgs.graphql.mail.service.MailInfoService;
-import com.sgs.graphql.mcfType.domain.McfType;
-import com.sgs.graphql.mcfType.service.McfTypeService;
-import com.sgs.graphql.neighborhood.domain.Neighborhood;
-import com.sgs.graphql.neighborhood.repo.NeighborhoodRepo;
-import com.sgs.graphql.neighborhood.service.NeighborhoodService;
-import com.sgs.graphql.organization.domain.Organization;
-import com.sgs.graphql.organization.service.OrganizationService;
-import com.sgs.graphql.permission.domain.Permission;
-import com.sgs.graphql.permission.domain.PermissionDescription;
-import com.sgs.graphql.permission.domain.PermissionName;
-import com.sgs.graphql.permission.service.PermissionService;
-import com.sgs.graphql.role.domain.Role;
-import com.sgs.graphql.role.repo.RoleRepo;
-import com.sgs.graphql.role.service.RoleService;
-import com.sgs.graphql.sector.domain.Sector;
-import com.sgs.graphql.sector.service.SectorService;
-import com.sgs.graphql.solidWasteType.domain.SolidWasteType;
-import com.sgs.graphql.solidWasteType.service.SolidWasteTypeService;
-import com.sgs.graphql.subSector.domain.SubSector;
-import com.sgs.graphql.subSector.repo.SubSectorRepo;
-import com.sgs.graphql.subSector.service.SubSectorService;
-import com.sgs.graphql.user.domain.User;
-import com.sgs.graphql.user.service.UserService;
-import com.sgs.graphql.wasteEmissionSource.domain.WasteEmissionSourceSupplement;
-import com.sgs.graphql.wasteEmissionSource.service.WasteEmissionSourceSupplementService;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.security.crypto.password.PasswordEncoder;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.*;
-
-@SpringBootApplication
-public class SgsApplication implements CommandLineRunner {
-
- private final PermissionService permissionService;
- private final RoleService roleService;
- private final RoleRepo roleRepo;
- private final AreaService areaService;
- private final NeighborhoodRepo neighborhoodRepo;
- private final NeighborhoodService neighborhoodService;
- private final CityService cityService;
- private final CityRepo cityRepo;
- private final DistrictRepo districtRepo;
- private final DistrictService districtService;
- private final CountryRepo countryRepo;
- private final CountryService countryService;
- private final OrganizationService organizationService;
- private final UserService userService;
- private final PasswordEncoder passwordEncoder;
- private final SectorService sectorService;
- private final SubSectorService subSectorService;
- private final EmissionScopeService emissionScopeService;
- private final GpcReferenceService gpcReferenceService;
- private final SubSectorRepo subSectorRepo;
- private final ActivitySubUnitService activitySubUnitService;
- private final ConsuptionUnitService consuptionUnitService;
- private final EmissionSourceService emissionSourceService;
- private final EmissionSourceRepo emissionSourceRepo;
- private final ConsuptionUnitRepo consuptionUnitRepo;
- private final EmissionSourceConvertUnitService emissionSourceConvertUnitService;
- private final SolidWasteTypeService solidWasteTypeService;
- private final McfTypeService mcfTypeService;
- private final WasteEmissionSourceSupplementService wasteEmissionSourceSupplementService;
- private final MailInfoService mailInfoService;
-
- @Value("${mail.hostname:mail.blc-css.com}")
- private String mailHostname;
-
- @Value("${mail.smtp.port:465}")
- private int mailSmtpPort;
-
- @Value("${mail.address:info@blc-css.com}")
- private String mailAddress;
-
- @Value("${mail.password:}")
- private String mailPassword;
-
- public static void main(String[] args) {
- SpringApplication.run(SgsApplication.class, args);
- }
-
- @Autowired
- public SgsApplication(RoleService roleService, PermissionService permissionService, RoleRepo roleRepo,
- AreaService areaService, NeighborhoodRepo neighborhoodRepo, NeighborhoodService neighborhoodService,
- CityService cityService,
- CityRepo cityRepo, DistrictRepo districtRepo, DistrictService districtService, CountryRepo countryRepo,
- CountryService countryService, OrganizationService organizationService, UserService userService,
- PasswordEncoder passwordEncoder, SectorService sectorService, SubSectorService subSectorService,
- EmissionScopeService emissionScopeService, GpcReferenceService gpcReferenceService,
- SubSectorRepo subSectorRepo, ActivitySubUnitService activitySubUnitService,
- ConsuptionUnitService consuptionUnitService, EmissionSourceService emissionSourceService,
- EmissionSourceRepo emissionSourceRepo, ConsuptionUnitRepo consuptionUnitRepo,
- EmissionSourceConvertUnitService emissionSourceConvertUnitService,
- SolidWasteTypeService solidWasteTypeService, McfTypeService mcfTypeService,
- WasteEmissionSourceSupplementService wasteEmissionSourceSupplementService,
- MailInfoService mailInfoService) {
- this.roleService = roleService;
- this.permissionService = permissionService;
- this.roleRepo = roleRepo;
- this.areaService = areaService;
- this.neighborhoodRepo = neighborhoodRepo;
- this.neighborhoodService = neighborhoodService;
- this.cityService = cityService;
- this.cityRepo = cityRepo;
- this.districtRepo = districtRepo;
- this.districtService = districtService;
- this.countryRepo = countryRepo;
- this.countryService = countryService;
- this.organizationService = organizationService;
- this.userService = userService;
- this.passwordEncoder = passwordEncoder;
- this.sectorService = sectorService;
- this.subSectorService = subSectorService;
- this.emissionScopeService = emissionScopeService;
- this.gpcReferenceService = gpcReferenceService;
- this.subSectorRepo = subSectorRepo;
- this.activitySubUnitService = activitySubUnitService;
- this.consuptionUnitService = consuptionUnitService;
- this.emissionSourceService = emissionSourceService;
- this.emissionSourceRepo = emissionSourceRepo;
- this.consuptionUnitRepo = consuptionUnitRepo;
- this.emissionSourceConvertUnitService = emissionSourceConvertUnitService;
- this.solidWasteTypeService = solidWasteTypeService;
- this.mcfTypeService = mcfTypeService;
- this.wasteEmissionSourceSupplementService = wasteEmissionSourceSupplementService;
- this.mailInfoService = mailInfoService;
- }
-
- void createDefaultOrganization() {
- Organization organization = new Organization();
- organization.setTag("BLC");
- organization.setDescription("BLC Communication and Security Systems");
- organizationService.save(organization);
- }
-
- void createDefaultUser() {
- Role role = roleRepo.findByTag("SUPER_ADMIN").orElse(null);
- List permissions = new ArrayList<>();
- if (!permissionService.findAll().isEmpty()) {
- permissions.addAll(permissionService.findAll());
- }
- role.setPermissions(permissions);
-
- // List organizations = organizationRepo.findByTag("BLC");
-
- User admin = new User();
- admin.setFirstName("Seda");
- admin.setLastName("Kemikli");
- admin.setEmail("seda.kemikli@blc-css.com");
- admin.setPhoneNumber("11111111");
- admin.setPassword(passwordEncoder.encode("admin"));
- // if (organizations.size() == 1) {
- // admin.setOrganizations(organizations);
- // }
- admin.setRole(role);
- admin.setStatus("aktif");
- userService.save(admin);
- }
-
- public void createDefaultPermission() {
-
- Permission activities_get = new Permission();
- activities_get.setTag(PermissionName.ACTIVITIES_GET);
- activities_get.setDescription(PermissionDescription.ACTIVITIES_GET);
-
- Permission paginate_user_histories = new Permission();
- paginate_user_histories.setTag(PermissionName.PAGINATE_USER_HISTORIES);
- paginate_user_histories.setDescription(PermissionDescription.PAGINATE_USER_HISTORIES);
-
- Permission activity_sub_units_get = new Permission();
- activity_sub_units_get.setTag(PermissionName.ACTIVITY_SUB_UNITS_GET);
- activity_sub_units_get.setDescription(PermissionDescription.ACTIVITY_SUB_UNITS_GET);
-
- Permission sub_sectors_get = new Permission();
- sub_sectors_get.setTag(PermissionName.SUB_SECTORS_GET);
- sub_sectors_get.setDescription(PermissionDescription.SUB_SECTORS_GET);
-
- Permission sectors_get = new Permission();
- sectors_get.setTag(PermissionName.SECTORS_GET);
- sectors_get.setDescription(PermissionDescription.SECTORS_GET);
-
- Permission deleted_items = new Permission();
- deleted_items.setTag(PermissionName.GET_DELETED_ITEMS);
- deleted_items.setDescription(PermissionDescription.GET_DELETED_ITEMS);
-
- Permission user_create = new Permission();
- user_create.setTag(PermissionName.USER_CREATE);
- user_create.setDescription(PermissionDescription.USER_CREATE);
-
- Permission user_update = new Permission();
- user_update.setTag(PermissionName.USER_UPDATE);
- user_update.setDescription(PermissionDescription.USER_UPDATE);
-
- Permission user_delete = new Permission();
- user_delete.setTag(PermissionName.USER_DELETE);
- user_delete.setDescription(PermissionDescription.USER_DELETE);
-
- Permission paginate_users_get = new Permission();
- paginate_users_get.setTag(PermissionName.PAGINATE_USERS_GET);
- paginate_users_get.setDescription(PermissionDescription.PAGINATE_USERS_GET);
-
- Permission role_create = new Permission();
- role_create.setTag(PermissionName.ROLE_CREATE);
- role_create.setDescription(PermissionDescription.ROLE_CREATE);
-
- Permission role_update = new Permission();
- role_update.setTag(PermissionName.ROLE_UPDATE);
- role_update.setDescription(PermissionDescription.ROLE_UPDATE);
-
- Permission role_delete = new Permission();
- role_delete.setTag(PermissionName.ROLE_DELETE);
- role_delete.setDescription(PermissionDescription.ROLE_DELETE);
-
- Permission paginate_roles_get = new Permission();
- paginate_roles_get.setTag(PermissionName.PAGINATE_ROLES_GET);
- paginate_roles_get.setDescription(PermissionDescription.PAGINATE_ROLES_GET);
-
- Permission organization_create = new Permission();
- organization_create.setTag(PermissionName.ORGANIZATION_CREATE);
- organization_create.setDescription(PermissionDescription.ORGANIZATION_CREATE);
-
- Permission organization_update = new Permission();
- organization_update.setTag(PermissionName.ORGANIZATION_UPDATE);
- organization_update.setDescription(PermissionDescription.ORGANIZATION_UPDATE);
-
- Permission organization_delete = new Permission();
- organization_delete.setTag(PermissionName.ORGANIZATION_DELETE);
- organization_delete.setDescription(PermissionDescription.ORGANIZATION_DELETE);
-
- Permission paginate_organizations_get = new Permission();
- paginate_organizations_get.setTag(PermissionName.PAGINATE_ORGANIZATIONS_GET);
- paginate_organizations_get.setDescription(PermissionDescription.PAGINATE_ORGANIZATIONS_GET);
-
- Permission area_create = new Permission();
- area_create.setTag(PermissionName.AREA_CREATE);
- area_create.setDescription(PermissionDescription.AREA_CREATE);
-
- Permission area_update = new Permission();
- area_update.setTag(PermissionName.AREA_UPDATE);
- area_update.setDescription(PermissionDescription.AREA_UPDATE);
-
- Permission area_delete = new Permission();
- area_delete.setTag(PermissionName.AREA_DELETE);
- area_delete.setDescription(PermissionDescription.AREA_DELETE);
-
- Permission paginate_areas_get = new Permission();
- paginate_areas_get.setTag(PermissionName.PAGINATE_AREAS_GET);
- paginate_areas_get.setDescription(PermissionDescription.PAGINATE_AREAS_GET);
-
- Permission neighborhood_create = new Permission();
- neighborhood_create.setTag(PermissionName.NEIGHBORHOOD_CREATE);
- neighborhood_create.setDescription(PermissionDescription.NEIGHBORHOOD_CREATE);
-
- Permission neighborhood_update = new Permission();
- neighborhood_update.setTag(PermissionName.NEIGHBORHOOD_UPDATE);
- neighborhood_update.setDescription(PermissionDescription.NEIGHBORHOOD_UPDATE);
-
- Permission neighborhood_delete = new Permission();
- neighborhood_delete.setTag(PermissionName.NEIGHBORHOOD_DELETE);
- neighborhood_delete.setDescription(PermissionDescription.NEIGHBORHOOD_DELETE);
-
- Permission paginate_neighborhoods_get = new Permission();
- paginate_neighborhoods_get.setTag(PermissionName.PAGINATE_NEIGHBORHOODS_GET);
- paginate_neighborhoods_get.setDescription(PermissionDescription.PAGINATE_NEIGHBORHOODS_GET);
-
- Permission paginate_cities_get = new Permission();
- paginate_cities_get.setTag(PermissionName.PAGINATE_CITIES_GET);
- paginate_cities_get.setDescription(PermissionDescription.PAGINATE_CITIES_GET);
-
- Permission paginate_districts_get = new Permission();
- paginate_districts_get.setTag(PermissionName.PAGINATE_DISTRICTS_GET);
- paginate_districts_get.setDescription(PermissionDescription.PAGINATE_DISTRICTS_GET);
-
- Permission paginate_countries_get = new Permission();
- paginate_countries_get.setTag(PermissionName.PAGINATE_COUNTRIES_GET);
- paginate_countries_get.setDescription(PermissionDescription.PAGINATE_COUNTRIES_GET);
-
- Permission emission_source_create = new Permission();
- emission_source_create.setTag(PermissionName.EMISSION_SOURCE_CREATE);
- emission_source_create.setDescription(PermissionDescription.EMISSION_SOURCE_CREATE);
-
- Permission emission_source_update = new Permission();
- emission_source_update.setTag(PermissionName.EMISSION_SOURCE_UPDATE);
- emission_source_update.setDescription(PermissionDescription.EMISSION_SOURCE_UPDATE);
-
- Permission emission_source_delete = new Permission();
- emission_source_delete.setTag(PermissionName.EMISSION_SOURCE_DELETE);
- emission_source_delete.setDescription(PermissionDescription.EMISSION_SOURCE_DELETE);
-
- Permission paginate_emission_sources_get = new Permission();
- paginate_emission_sources_get.setTag(PermissionName.PAGINATE_EMISSION_SOURCES_GET);
- paginate_emission_sources_get.setDescription(PermissionDescription.PAGINATE_EMISSION_SOURCES_GET);
-
- Permission dataset_create = new Permission();
- dataset_create.setTag(PermissionName.DATASET_CREATE);
- dataset_create.setDescription(PermissionDescription.DATASET_CREATE);
-
- Permission dataset_update = new Permission();
- dataset_update.setTag(PermissionName.DATASET_UPDATE);
- dataset_update.setDescription(PermissionDescription.DATASET_UPDATE);
-
- Permission dataset_delete = new Permission();
- dataset_delete.setTag(PermissionName.DATASET_DELETE);
- dataset_delete.setDescription(PermissionDescription.DATASET_DELETE);
-
- Permission paginate_datasets_get = new Permission();
- paginate_datasets_get.setTag(PermissionName.PAGINATE_DATASETS_GET);
- paginate_datasets_get.setDescription(PermissionDescription.PAGINATE_DATASETS_GET);
-
- Permission answer_create = new Permission();
- answer_create.setTag(PermissionName.ANSWER_CREATE);
- answer_create.setDescription(PermissionDescription.ANSWER_CREATE);
-
- Permission answer_update = new Permission();
- answer_update.setTag(PermissionName.ANSWER_UPDATE);
- answer_update.setDescription(PermissionDescription.ANSWER_UPDATE);
-
- Permission answer_delete = new Permission();
- answer_delete.setTag(PermissionName.ANSWER_DELETE);
- answer_delete.setDescription(PermissionDescription.ANSWER_DELETE);
-
- Permission paginate_answers_get = new Permission();
- paginate_answers_get.setTag(PermissionName.PAGINATE_ANSWERS_GET);
- paginate_answers_get.setDescription(PermissionDescription.PAGINATE_ANSWERS_GET);
-
- Permission question_create = new Permission();
- question_create.setTag(PermissionName.QUESTION_CREATE);
- question_create.setDescription(PermissionDescription.QUESTION_CREATE);
-
- Permission question_update = new Permission();
- question_update.setTag(PermissionName.QUESTION_UPDATE);
- question_update.setDescription(PermissionDescription.QUESTION_UPDATE);
-
- Permission question_delete = new Permission();
- question_delete.setTag(PermissionName.QUESTION_DELETE);
- question_delete.setDescription(PermissionDescription.QUESTION_DELETE);
-
- Permission paginate_questions_get = new Permission();
- paginate_questions_get.setTag(PermissionName.PAGINATE_QUESTIONS_GET);
- paginate_questions_get.setDescription(PermissionDescription.PAGINATE_QUESTIONS_GET);
-
- Permission undelete_items = new Permission();
- undelete_items.setTag(PermissionName.UNDELETE_ITEMS);
- undelete_items.setDescription(PermissionDescription.UNDELETE_ITEMS);
-
- Permission published_survey_create = new Permission();
- published_survey_create.setTag(PermissionName.PUBLISHED_SURVEY_CREATE);
- published_survey_create.setDescription(PermissionDescription.PUBLISHED_SURVEY_CREATE);
-
- Permission surveys_get = new Permission();
- surveys_get.setTag(PermissionName.SURVEYS_GET);
- surveys_get.setDescription(PermissionDescription.SURVEYS_GET);
-
- Permission paginate_surveys_get = new Permission();
- paginate_surveys_get.setTag(PermissionName.PAGINATE_SURVEYS_GET);
- paginate_surveys_get.setDescription(PermissionDescription.PAGINATE_SURVEYS_GET);
-
- Permission survey_update = new Permission();
- survey_update.setTag(PermissionName.SURVEY_UPDATE);
- survey_update.setDescription(PermissionDescription.SURVEY_UPDATE);
-
- Permission survey_delete = new Permission();
- survey_delete.setTag(PermissionName.SURVEY_DELETE);
- survey_delete.setDescription(PermissionDescription.SURVEY_DELETE);
-
- Permission survey_add = new Permission();
- survey_add.setTag(PermissionName.SURVEY_ADD);
- survey_add.setDescription(PermissionDescription.SURVEY_ADD);
-
- Permission show_graphics = new Permission();
- show_graphics.setTag(PermissionName.SHOW_GRAPHICS);
- show_graphics.setDescription(PermissionDescription.SHOW_GRAPHICS);
-
- Permission settings_access = new Permission();
- settings_access.setTag(PermissionName.SETTINGS_ACCESS);
- settings_access.setDescription(PermissionDescription.SETTINGS_ACCESS);
-
- Permission data_center_create = new Permission();
- data_center_create.setTag(PermissionName.DATA_CENTER_CREATE);
- data_center_create.setDescription(PermissionDescription.DATA_CENTER_CREATE);
-
- Permission data_center_delete = new Permission();
- data_center_delete.setTag(PermissionName.DATA_CENTER_DELETE);
- data_center_delete.setDescription(PermissionDescription.DATA_CENTER_DELETE);
-
- Permission data_center_update = new Permission();
- data_center_update.setTag(PermissionName.DATA_CENTER_UPDATE);
- data_center_update.setDescription(PermissionDescription.DATA_CENTER_UPDATE);
-
- Permission data_center_read = new Permission();
- data_center_read.setTag(PermissionName.DATA_CENTER_READ);
- data_center_read.setDescription(PermissionDescription.DATA_CENTER_READ);
-
- Permission paginate_datacenters_get = new Permission();
- paginate_datacenters_get.setTag(PermissionName.PAGINATE_DATACENTERS_GET);
- paginate_datacenters_get.setDescription(PermissionDescription.PAGINATE_DATACENTERS_GET);
-
- permissionService.saveAll(List.of(
- show_graphics, activities_get, paginate_user_histories, activity_sub_units_get, sub_sectors_get,
- sectors_get, deleted_items, undelete_items, user_create, user_update, user_delete, paginate_users_get,
- role_create, role_update, role_delete, paginate_roles_get,
- organization_create, organization_update, organization_delete, paginate_organizations_get,
- area_create, area_update, area_delete, paginate_areas_get,
- neighborhood_create, neighborhood_update, neighborhood_delete, paginate_neighborhoods_get,
- paginate_districts_get,
- paginate_cities_get,
- paginate_countries_get,
- emission_source_create, emission_source_update, emission_source_delete, paginate_emission_sources_get,
- dataset_create, dataset_update, dataset_delete, paginate_datasets_get,
- answer_create, answer_delete, answer_update, paginate_answers_get,
- question_create, question_delete, question_update, paginate_questions_get,
- published_survey_create, surveys_get, paginate_surveys_get,
- survey_add, survey_delete, survey_update, settings_access, data_center_create, data_center_delete,
- data_center_update, data_center_read, paginate_datacenters_get));
- }
-
- public void createDefaultRole() {
- Role role = new Role();
- role.setTag("SUPER_ADMIN");
- role.setPermissions(permissionService.findAll());
- roleService.save(role);
- }
-
- void createCountry() {
- Country country = new Country();
- country.setCountryCode("TR");
- country.setName("Turkiye");
- countryRepo.save(country);
-
- }
-
- public void createCitiesFromJson() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/cities.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONArray jsonArray = new JSONArray(data);
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String cityName = jsonObject.getString("name");
- JSONArray cityCoordinates = jsonObject.getJSONArray("coordinates");
-
- City city = new City();
- city.setName(cityName);
- city.setCoordinates(cityCoordinates.toString());
- city.setCountry(countryService.findAll().get(0));
- cityRepo.save(city);
- }
- }
-
- public void createDistrictFromJson() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/districts.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONArray jsonArray = new JSONArray(data);
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String districtName = jsonObject.getString("name");
- String cityName = jsonObject.getString("city");
- JSONArray districtCoordinates = jsonObject.getJSONArray("coordinates");
-
- City city = cityRepo.findByName(cityName);
- District district = new District();
- district.setName(districtName);
- district.setCoordinates(districtCoordinates.toString());
- district.setCity(city);
-
- districtRepo.save(district);
- }
- }
-
- void createNeighborhoodsFromJson() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/neighbourhoods.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONArray jsonArray = new JSONArray(data);
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String cityName = jsonObject.getString("city");
- String districtName = jsonObject.getString("district");
- String neighborhoodName = jsonObject.getString("name");
- double minLong = jsonObject.getDouble("minLong");
- double minLat = jsonObject.getDouble("minLat");
- double maxLong = jsonObject.getDouble("maxLong");
- double maxLat = jsonObject.getDouble("maxLat");
-
- City city = cityRepo.findByName(cityName);
- if (city != null) {
- District district = city.getDistricts().stream()
- .filter(d -> d.getName().equals(districtName))
- .findFirst()
- .orElse(null);
-
- if (district != null) {
- Neighborhood neighborhood = new Neighborhood();
- neighborhood.setName(neighborhoodName);
- neighborhood.setDistrict(district);
- neighborhood.setMinLong(minLong);
- neighborhood.setMinLat(minLat);
- neighborhood.setMaxLong(maxLong);
- neighborhood.setMaxLat(maxLat);
-
- neighborhoodRepo.save(neighborhood);
- }
- }
- }
- }
-
- void createSectorAndSubSectorFromJson() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/SectorsAndSubSectors.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- JSONArray jsonArray = fullJson.getJSONArray("Sectors");
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- Sector sector = new Sector();
- sector.setTag(jsonObject.getString("SectorName"));
- sector.setSectorNo(jsonObject.getInt("SectorNo"));
- sector.setDescription(jsonObject.getString("SectorName"));
- sectorService.save(sector);
-
- JSONArray subSectorsJson = jsonObject.getJSONArray("SubSectors");
- for (int j = 0; j < subSectorsJson.length(); j++) {
- JSONObject subSectorJson = subSectorsJson.getJSONObject(j);
- SubSector subSector = new SubSector();
- subSector.setSubSectorNo(subSectorJson.getInt("SubSectorNo"));
- subSector.setTag(subSectorJson.getString("Name"));
- subSector.setDescription(subSectorJson.getString("Name"));
- subSector.setSector(sector);
- subSectorService.save(subSector);
- }
- }
- }
-
- void createGpcReference() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/GpcReferenceNumbers.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- JSONArray jsonArray = fullJson.getJSONArray("data");
-
- for (int i = 0; i < jsonArray.length(); i++) {
- GpcReference gpcReference = new GpcReference();
- gpcReference.setReferenceNumber(jsonArray.getString(i));
- gpcReference.setDescription(jsonArray.getString(i));
- gpcReferenceService.save(gpcReference);
- }
- }
-
- void createConsuptionUnit() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/ConsuptionUnits.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- JSONArray jsonArray = fullJson.getJSONArray("units");
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject unitObject = jsonArray.getJSONObject(i);
-
- String unitName = unitObject.getString("name");
- String unitDescription = unitObject.getString("description");
-
- ConsuptionUnit consuptionUnit = new ConsuptionUnit();
- consuptionUnit.setTag(unitName);
- consuptionUnit.setDescription(unitDescription);
- consuptionUnitService.save(consuptionUnit);
- }
- }
-
- void createEmissionSourceConvertUnit() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/EmissionSourceConvertUnit.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- JSONArray jsonArray = fullJson.getJSONArray("Data");
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject obj = jsonArray.getJSONObject(i);
- List emissionSourceList = emissionSourceRepo.findByTag(obj.getString("EmissionSource"));
- ConsuptionUnit consuptionUnit = consuptionUnitRepo.findByTag(obj.getString("ConsuptionUnit")).get(0);
-
- for (EmissionSource emissionSource : emissionSourceList) {
- if (consuptionUnit != null) {
- emissionSource.setConvertUnitCheck(true);
- EmissionSource updatedEmissionSource = emissionSourceService.update(emissionSource);
- EmissionSourceConvertUnit unit = new EmissionSourceConvertUnit();
- unit.setEmissionSource(updatedEmissionSource);
- unit.setUnit(consuptionUnit);
- unit.setValue(obj.getDouble("Amount"));
- emissionSourceConvertUnitService.save(unit);
- }
- }
- }
- }
-
- void createEmissionScope() {
- for (int i = 1; i < 4; i++) {
- EmissionScope emissionScope = new EmissionScope();
- emissionScope.setTag("Kapsam-" + i);
- emissionScope.setDescription("Kapsam-" + i);
- emissionScopeService.save(emissionScope);
- }
- }
-
- void createActivitySubUnit() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/ActivitySubUnits.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- List tags = Arrays.asList("Konutlar", "Ticari ve Kurumsal Binalar", "İmalat Sanayi ve İnşaat Yapı",
- "Tarım, Ormancılık, Balıkçılık Faaliyetleri ve Balık Çiftlikleri",
- "Kömür Madenciliği, İşlenmesi, Depolanması ve Taşınmasından Kaynaklanan Kaçak Emisyonlar",
- "Karayolu Taşımacılığı", "Havayolu Taşımacılığı", "Demiryolu Taşımacılığı", "Arazi Taşımacılığı",
- "Denizyolu Taşımacılığı");
-
- for (String tag : tags) {
- JSONArray jsonArray = fullJson.getJSONArray(tag);
- SubSector subSector = subSectorRepo.findByTag(tag);
- for (int i = 0; i < jsonArray.length(); i++) {
- ActivitySubUnit activitySubUnit = new ActivitySubUnit();
- activitySubUnit.setTag(jsonArray.getString(i));
- activitySubUnit.setDescription(jsonArray.getString(i));
- activitySubUnit.setSubSector(subSector);
- activitySubUnitService.save(activitySubUnit);
- }
- }
- }
-
- void createEmissionSourceFromJson(String filePath, String[] subSectorTags) throws IOException {
- InputStream is = getClass().getResourceAsStream("/" + filePath);
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- JSONArray jsonArray = fullJson.getJSONArray("Data");
-
- String[] co2Tags = { "CO2", "CO2_1", "CO2_2", "CO2_3", "CO2_4" };
- String[] ch4Tags = { "CH4 (CO2e)", "CH4 (CO2e)_1", "CH4 (CO2e)_2", "CH4 (CO2e)_3", "CH4 (CO2e)_4" };
- String[] n20Tags = { "N20 (CO2e)", "N20 (CO2e)_1", "N20 (CO2e)_2", "N20 (CO2e)_3", "N20 (CO2e)_4" };
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String tag = jsonObject.getString("Emisyon Kaynağı");
- String scope = jsonObject.optString("scope");
-
- for (int j = 0; j < subSectorTags.length; j++) {
- EmissionSource emissionSource = new EmissionSource();
- emissionSource.setTag(tag);
- emissionSource.setEmissionScope(scope);
- emissionSource.setDescription(tag);
- emissionSource.setCo2(jsonObject.getDouble(co2Tags[j]));
- emissionSource.setCh4(jsonObject.getDouble(ch4Tags[j]));
- emissionSource.setN2o(jsonObject.getDouble(n20Tags[j]));
- emissionSource.setSubSector(subSectorRepo.findByTag(subSectorTags[j]));
- EmissionSource savedEmissionSource = emissionSourceService.save(emissionSource);
-
- EmissionSourceConvertUnit tjConvertUnit = new EmissionSourceConvertUnit();
- tjConvertUnit.setEmissionSource(savedEmissionSource);
- tjConvertUnit.setValue(1.0);
- tjConvertUnit.setUnit(consuptionUnitRepo.findByTag("TJ").get(0));
- EmissionSourceConvertUnit savedTjConvertUnit = emissionSourceConvertUnitService.save(tjConvertUnit);
- }
- }
- }
-
- void createWasteEmissionSourceFromJson(String filePath) throws IOException {
- InputStream is = getClass().getResourceAsStream("/" + filePath);
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- JSONArray jsonArray = fullJson.getJSONArray("Data");
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- WasteEmissionSourceSupplement wasteEmissionSourceSupplement = new WasteEmissionSourceSupplement();
- wasteEmissionSourceSupplement.setDryWeightCH4(jsonObject.optDouble("dryWeightCH4", 0.0));
- wasteEmissionSourceSupplement.setWetWeightCH4(jsonObject.optDouble("wetWeightCH4", 0.0));
- wasteEmissionSourceSupplement.setDampWeightCH4(jsonObject.optDouble("dampWeightCH4", 0.0));
- wasteEmissionSourceSupplement.setDryWeightN2O(jsonObject.optDouble("dryWeightN2O", 0.0));
- wasteEmissionSourceSupplement.setWetWeightN2O(jsonObject.optDouble("wetWeightN2O", 0.0));
- WasteEmissionSourceSupplement savedWasteEmissionSourceSupplement = wasteEmissionSourceSupplementService
- .save(wasteEmissionSourceSupplement);
-
- String tag = jsonObject.getString("Emisyon Kaynağı");
- EmissionSource emissionSource = new EmissionSource();
- emissionSource.setTag(tag);
- emissionSource.setDescription(tag);
- emissionSource.setCo2(0.0);
- emissionSource.setCh4(0.0);
- emissionSource.setN2o(0.0);
- emissionSource.setConvertUnitCheck(true);
- if (i < 2) {
- emissionSource.setSubSector(subSectorRepo.findByTag("Atıkların Biyolojik Arıtılması"));
- } else if (i < 10) {
- emissionSource.setSubSector(subSectorRepo.findByTag("Atık Su Arıtma ve Deşarjı"));
- } else if (i < 14) {
- emissionSource.setSubSector(subSectorRepo.findByTag("Yakma ve Açık Yanma"));
- }
- emissionSource.setWasteEmissionSourceSupplement(savedWasteEmissionSourceSupplement);
- emissionSourceService.save(emissionSource);
- }
- }
-
- void createSolidWasteTypeFromJson() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/SolidWasteTypes.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- JSONArray jsonArray = fullJson.getJSONArray("Data");
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String typeName = jsonObject.getString("TypeName");
- double formulaCoefficient = jsonObject.getDouble("FormulaCoefficient");
-
- SolidWasteType solidWasteType = new SolidWasteType();
- solidWasteType.setTypeName(typeName);
- solidWasteType.setFormulaCoefficient(formulaCoefficient);
- solidWasteTypeService.save(solidWasteType);
- }
- }
-
- void createMcfTypeFromJson() throws IOException {
- InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/MCFType.json");
- String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
- JSONObject fullJson = new JSONObject(data);
- JSONArray jsonArray = fullJson.getJSONArray("Data");
-
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String typeName = jsonObject.getString("TypeName");
- double value = jsonObject.getDouble("Value");
-
- McfType mcfType = new McfType();
- mcfType.setTypeName(typeName);
- mcfType.setValue(value);
- mcfTypeService.save(mcfType);
- }
- }
-
- void createDefaultMailInfo() {
- MailInfo mailInfo = new MailInfo();
- mailInfo.setHostName(mailHostname);
- mailInfo.setSmtpPort(mailSmtpPort);
- mailInfo.setEmailAddress(mailAddress);
- mailInfo.setEmailPassword(mailPassword);
- mailInfo.setMainMail(true);
- mailInfoService.save(mailInfo);
- }
-
- public void ensureMissingPermissions() {
- // Check if paginate_datacenters_get permission exists
- Optional datacenterPermission = permissionService.findByTag("paginate_datacenters_get");
- if (!datacenterPermission.isPresent()) {
- // Create the missing permission
- Permission paginate_datacenters_get = new Permission();
- paginate_datacenters_get.setTag(PermissionName.PAGINATE_DATACENTERS_GET);
- paginate_datacenters_get.setDescription(PermissionDescription.PAGINATE_DATACENTERS_GET);
- permissionService.save(paginate_datacenters_get);
- }
-
- // Ensure SUPER_ADMIN has all permissions
- Optional superAdminRole = roleRepo.findByTag("SUPER_ADMIN");
- if (superAdminRole.isPresent()) {
- Role role = superAdminRole.get();
- List allPermissions = permissionService.findAll();
- role.setPermissions(allPermissions);
- roleService.save(role);
- }
- }
-
- @Override
- public void run(String... args) throws Exception {
- if (mailInfoService.findAll().isEmpty()) {
- createDefaultMailInfo();
- }
- if (consuptionUnitService.findAll().isEmpty()) {
- createConsuptionUnit();
- }
- if (gpcReferenceService.findAll().isEmpty()) {
- createGpcReference();
- }
- if (emissionScopeService.findAll().isEmpty()) {
- createEmissionScope();
- }
- if (sectorService.findAll().isEmpty()) {
- createSectorAndSubSectorFromJson();
- }
- if (activitySubUnitService.findAll().isEmpty()) {
- createActivitySubUnit();
- }
- if (emissionSourceService.findAll().isEmpty()) {
- createEmissionSourceFromJson("XDataSetModuleFiles/EmissionSourceYenilenebilirEnerjiEF.json",
- new String[] { "Güneş Enerji Santrali", "Rüzgar Enerji Santrali", "Hidroelektrik Enerji Santrali",
- "Biyokütle Enerji Santrali", "Jeotermal Enerji Santrali" });
- createEmissionSourceFromJson("XDataSetModuleFiles/EmissionSourceSabitEnerjiEF.json",
- new String[] { "Enerji Endüstrileri", "İmalat Sanayi ve İnşaat Yapı", "Ticari ve Kurumsal Binalar",
- "Konutlar", "Tarım, Ormancılık, Balıkçılık Faaliyetleri ve Balık Çiftlikleri" });
- createEmissionSourceFromJson("XDataSetModuleFiles/EmissionSourceUlasimEF.json",
- new String[] { "Karayolu Taşımacılığı", "Denizyolu Taşımacılığı", "Demiryolu Taşımacılığı",
- "Arazi Taşımacılığı", "Havayolu Taşımacılığı" });
- createWasteEmissionSourceFromJson("XDataSetModuleFiles/EmissionSourceAtikEF.json");
- createEmissionSourceConvertUnit();
- }
- if (solidWasteTypeService.findAll().isEmpty()) {
- createSolidWasteTypeFromJson();
- }
- if (mcfTypeService.findAll().isEmpty()) {
- createMcfTypeFromJson();
- }
- if (permissionService.findAll().isEmpty()) {
- createDefaultPermission();
- }
- if (roleService.findAll().isEmpty()) {
- createDefaultRole();
- }
- // Ensure all permissions are created and assigned to SUPER_ADMIN
- ensureMissingPermissions();
- if (organizationService.findAll().isEmpty()) {
- createDefaultOrganization();
- }
- if (userService.findAll().isEmpty()) {
- createDefaultUser();
- }
- if (countryService.findAll().isEmpty()) {
- createCountry();
- }
- if (cityService.findAll().isEmpty()) {
- createCitiesFromJson();
- createDefaultArea();
- }
- if (districtService.findAll().isEmpty()) {
- createDistrictFromJson();
- }
- if (neighborhoodService.findAll().isEmpty()) {
- createNeighborhoodsFromJson();
- }
- }
-
- void createDefaultArea() {
- // Check if default area already exists
- List existingAreas = areaService.findAll();
- boolean defaultAreaExists = existingAreas.stream()
- .anyMatch(area -> "Turkiye".equals(area.getTag()) && area.isDefaultArea());
-
- if (!defaultAreaExists) {
- Area defaultArea = new Area();
- defaultArea.setTag("Turkiye");
- defaultArea.setDefaultArea(true);
- defaultArea.setDeleted(false);
-
- // Get all cities to add to the default area
- List allCities = cityService.findAll();
- defaultArea.setCities(allCities);
-
- // Get the Turkey country to add to the default area
- List countries = countryService.findAll();
- if (!countries.isEmpty()) {
- defaultArea.setCountries(countries);
- }
-
- areaService.save(defaultArea);
- }
- }
+package com.sgs;
+
+import com.sgs.graphql.activitySubUnit.domain.ActivitySubUnit;
+import com.sgs.graphql.activitySubUnit.service.ActivitySubUnitService;
+import com.sgs.graphql.area.domain.Area;
+import com.sgs.graphql.area.service.AreaService;
+import com.sgs.graphql.city.domain.City;
+import com.sgs.graphql.city.repo.CityRepo;
+import com.sgs.graphql.city.service.CityService;
+import com.sgs.graphql.consuptionUnit.domain.ConsuptionUnit;
+import com.sgs.graphql.consuptionUnit.repo.ConsuptionUnitRepo;
+import com.sgs.graphql.consuptionUnit.service.ConsuptionUnitService;
+import com.sgs.graphql.country.domain.Country;
+import com.sgs.graphql.country.repo.CountryRepo;
+import com.sgs.graphql.country.service.CountryService;
+import com.sgs.graphql.district.domain.District;
+import com.sgs.graphql.district.repo.DistrictRepo;
+import com.sgs.graphql.district.service.DistrictService;
+import com.sgs.graphql.emissionScope.domain.EmissionScope;
+import com.sgs.graphql.emissionScope.service.EmissionScopeService;
+import com.sgs.graphql.emissionSource.domain.EmissionSource;
+import com.sgs.graphql.emissionSource.repo.EmissionSourceRepo;
+import com.sgs.graphql.emissionSource.service.EmissionSourceService;
+import com.sgs.graphql.emissionSourceConvertUnits.domain.EmissionSourceConvertUnit;
+import com.sgs.graphql.emissionSourceConvertUnits.service.EmissionSourceConvertUnitService;
+import com.sgs.graphql.gpcReference.domain.GpcReference;
+import com.sgs.graphql.gpcReference.service.GpcReferenceService;
+import com.sgs.graphql.mail.domain.MailInfo;
+import com.sgs.graphql.mail.service.MailInfoService;
+import com.sgs.graphql.mcfType.domain.McfType;
+import com.sgs.graphql.mcfType.service.McfTypeService;
+import com.sgs.graphql.neighborhood.domain.Neighborhood;
+import com.sgs.graphql.neighborhood.repo.NeighborhoodRepo;
+import com.sgs.graphql.neighborhood.service.NeighborhoodService;
+import com.sgs.graphql.organization.domain.Organization;
+import com.sgs.graphql.organization.service.OrganizationService;
+import com.sgs.graphql.permission.domain.Permission;
+import com.sgs.graphql.permission.domain.PermissionDescription;
+import com.sgs.graphql.permission.domain.PermissionName;
+import com.sgs.graphql.permission.service.PermissionService;
+import com.sgs.graphql.role.domain.Role;
+import com.sgs.graphql.role.repo.RoleRepo;
+import com.sgs.graphql.role.service.RoleService;
+import com.sgs.graphql.sector.domain.Sector;
+import com.sgs.graphql.sector.service.SectorService;
+import com.sgs.graphql.solidWasteType.domain.SolidWasteType;
+import com.sgs.graphql.solidWasteType.service.SolidWasteTypeService;
+import com.sgs.graphql.subSector.domain.SubSector;
+import com.sgs.graphql.subSector.repo.SubSectorRepo;
+import com.sgs.graphql.subSector.service.SubSectorService;
+import com.sgs.graphql.user.domain.User;
+import com.sgs.graphql.user.service.UserService;
+import com.sgs.graphql.wasteEmissionSource.domain.WasteEmissionSourceSupplement;
+import com.sgs.graphql.wasteEmissionSource.service.WasteEmissionSourceSupplementService;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.*;
+
+@SpringBootApplication
+public class SgsApplication implements CommandLineRunner {
+
+ private final PermissionService permissionService;
+ private final RoleService roleService;
+ private final RoleRepo roleRepo;
+ private final AreaService areaService;
+ private final NeighborhoodRepo neighborhoodRepo;
+ private final NeighborhoodService neighborhoodService;
+ private final CityService cityService;
+ private final CityRepo cityRepo;
+ private final DistrictRepo districtRepo;
+ private final DistrictService districtService;
+ private final CountryRepo countryRepo;
+ private final CountryService countryService;
+ private final OrganizationService organizationService;
+ private final UserService userService;
+ private final PasswordEncoder passwordEncoder;
+ private final SectorService sectorService;
+ private final SubSectorService subSectorService;
+ private final EmissionScopeService emissionScopeService;
+ private final GpcReferenceService gpcReferenceService;
+ private final SubSectorRepo subSectorRepo;
+ private final ActivitySubUnitService activitySubUnitService;
+ private final ConsuptionUnitService consuptionUnitService;
+ private final EmissionSourceService emissionSourceService;
+ private final EmissionSourceRepo emissionSourceRepo;
+ private final ConsuptionUnitRepo consuptionUnitRepo;
+ private final EmissionSourceConvertUnitService emissionSourceConvertUnitService;
+ private final SolidWasteTypeService solidWasteTypeService;
+ private final McfTypeService mcfTypeService;
+ private final WasteEmissionSourceSupplementService wasteEmissionSourceSupplementService;
+ private final MailInfoService mailInfoService;
+
+ @Value("${mail.hostname:mail.blc-css.com}")
+ private String mailHostname;
+
+ @Value("${mail.smtp.port:465}")
+ private int mailSmtpPort;
+
+ @Value("${mail.address:info@blc-css.com}")
+ private String mailAddress;
+
+ @Value("${mail.password:}")
+ private String mailPassword;
+
+ public static void main(String[] args) {
+ SpringApplication.run(SgsApplication.class, args);
+ }
+
+ @Autowired
+ public SgsApplication(RoleService roleService, PermissionService permissionService, RoleRepo roleRepo,
+ AreaService areaService, NeighborhoodRepo neighborhoodRepo, NeighborhoodService neighborhoodService,
+ CityService cityService,
+ CityRepo cityRepo, DistrictRepo districtRepo, DistrictService districtService, CountryRepo countryRepo,
+ CountryService countryService, OrganizationService organizationService, UserService userService,
+ PasswordEncoder passwordEncoder, SectorService sectorService, SubSectorService subSectorService,
+ EmissionScopeService emissionScopeService, GpcReferenceService gpcReferenceService,
+ SubSectorRepo subSectorRepo, ActivitySubUnitService activitySubUnitService,
+ ConsuptionUnitService consuptionUnitService, EmissionSourceService emissionSourceService,
+ EmissionSourceRepo emissionSourceRepo, ConsuptionUnitRepo consuptionUnitRepo,
+ EmissionSourceConvertUnitService emissionSourceConvertUnitService,
+ SolidWasteTypeService solidWasteTypeService, McfTypeService mcfTypeService,
+ WasteEmissionSourceSupplementService wasteEmissionSourceSupplementService,
+ MailInfoService mailInfoService) {
+ this.roleService = roleService;
+ this.permissionService = permissionService;
+ this.roleRepo = roleRepo;
+ this.areaService = areaService;
+ this.neighborhoodRepo = neighborhoodRepo;
+ this.neighborhoodService = neighborhoodService;
+ this.cityService = cityService;
+ this.cityRepo = cityRepo;
+ this.districtRepo = districtRepo;
+ this.districtService = districtService;
+ this.countryRepo = countryRepo;
+ this.countryService = countryService;
+ this.organizationService = organizationService;
+ this.userService = userService;
+ this.passwordEncoder = passwordEncoder;
+ this.sectorService = sectorService;
+ this.subSectorService = subSectorService;
+ this.emissionScopeService = emissionScopeService;
+ this.gpcReferenceService = gpcReferenceService;
+ this.subSectorRepo = subSectorRepo;
+ this.activitySubUnitService = activitySubUnitService;
+ this.consuptionUnitService = consuptionUnitService;
+ this.emissionSourceService = emissionSourceService;
+ this.emissionSourceRepo = emissionSourceRepo;
+ this.consuptionUnitRepo = consuptionUnitRepo;
+ this.emissionSourceConvertUnitService = emissionSourceConvertUnitService;
+ this.solidWasteTypeService = solidWasteTypeService;
+ this.mcfTypeService = mcfTypeService;
+ this.wasteEmissionSourceSupplementService = wasteEmissionSourceSupplementService;
+ this.mailInfoService = mailInfoService;
+ }
+
+ void createDefaultOrganization() {
+ Organization organization = new Organization();
+ organization.setTag("BLC");
+ organization.setDescription("BLC Communication and Security Systems");
+ organizationService.save(organization);
+ }
+
+ void createDefaultUser() {
+ Role role = roleRepo.findByTag("SUPER_ADMIN").orElse(null);
+ List permissions = new ArrayList<>();
+ if (!permissionService.findAll().isEmpty()) {
+ permissions.addAll(permissionService.findAll());
+ }
+ role.setPermissions(permissions);
+
+ // List organizations = organizationRepo.findByTag("BLC");
+
+ User admin = new User();
+ admin.setFirstName("Seda");
+ admin.setLastName("Kemikli");
+ admin.setEmail("seda.kemikli@blc-css.com");
+ admin.setPhoneNumber("11111511");
+ admin.setPassword(passwordEncoder.encode("admin"));
+ // if (organizations.size() == 1) {
+ // admin.setOrganizations(organizations);
+ // }
+ admin.setRole(role);
+ admin.setStatus("aktif");
+ userService.save(admin);
+ }
+
+ public void createDefaultPermission() {
+
+ Permission activities_get = new Permission();
+ activities_get.setTag(PermissionName.ACTIVITIES_GET);
+ activities_get.setDescription(PermissionDescription.ACTIVITIES_GET);
+
+ Permission paginate_user_histories = new Permission();
+ paginate_user_histories.setTag(PermissionName.PAGINATE_USER_HISTORIES);
+ paginate_user_histories.setDescription(PermissionDescription.PAGINATE_USER_HISTORIES);
+
+ Permission activity_sub_units_get = new Permission();
+ activity_sub_units_get.setTag(PermissionName.ACTIVITY_SUB_UNITS_GET);
+ activity_sub_units_get.setDescription(PermissionDescription.ACTIVITY_SUB_UNITS_GET);
+
+ Permission sub_sectors_get = new Permission();
+ sub_sectors_get.setTag(PermissionName.SUB_SECTORS_GET);
+ sub_sectors_get.setDescription(PermissionDescription.SUB_SECTORS_GET);
+
+ Permission sectors_get = new Permission();
+ sectors_get.setTag(PermissionName.SECTORS_GET);
+ sectors_get.setDescription(PermissionDescription.SECTORS_GET);
+
+ Permission deleted_items = new Permission();
+ deleted_items.setTag(PermissionName.GET_DELETED_ITEMS);
+ deleted_items.setDescription(PermissionDescription.GET_DELETED_ITEMS);
+
+ Permission user_create = new Permission();
+ user_create.setTag(PermissionName.USER_CREATE);
+ user_create.setDescription(PermissionDescription.USER_CREATE);
+
+ Permission user_update = new Permission();
+ user_update.setTag(PermissionName.USER_UPDATE);
+ user_update.setDescription(PermissionDescription.USER_UPDATE);
+
+ Permission user_delete = new Permission();
+ user_delete.setTag(PermissionName.USER_DELETE);
+ user_delete.setDescription(PermissionDescription.USER_DELETE);
+
+ Permission paginate_users_get = new Permission();
+ paginate_users_get.setTag(PermissionName.PAGINATE_USERS_GET);
+ paginate_users_get.setDescription(PermissionDescription.PAGINATE_USERS_GET);
+
+ Permission role_create = new Permission();
+ role_create.setTag(PermissionName.ROLE_CREATE);
+ role_create.setDescription(PermissionDescription.ROLE_CREATE);
+
+ Permission role_update = new Permission();
+ role_update.setTag(PermissionName.ROLE_UPDATE);
+ role_update.setDescription(PermissionDescription.ROLE_UPDATE);
+
+ Permission role_delete = new Permission();
+ role_delete.setTag(PermissionName.ROLE_DELETE);
+ role_delete.setDescription(PermissionDescription.ROLE_DELETE);
+
+ Permission paginate_roles_get = new Permission();
+ paginate_roles_get.setTag(PermissionName.PAGINATE_ROLES_GET);
+ paginate_roles_get.setDescription(PermissionDescription.PAGINATE_ROLES_GET);
+
+ Permission organization_create = new Permission();
+ organization_create.setTag(PermissionName.ORGANIZATION_CREATE);
+ organization_create.setDescription(PermissionDescription.ORGANIZATION_CREATE);
+
+ Permission organization_update = new Permission();
+ organization_update.setTag(PermissionName.ORGANIZATION_UPDATE);
+ organization_update.setDescription(PermissionDescription.ORGANIZATION_UPDATE);
+
+ Permission organization_delete = new Permission();
+ organization_delete.setTag(PermissionName.ORGANIZATION_DELETE);
+ organization_delete.setDescription(PermissionDescription.ORGANIZATION_DELETE);
+
+ Permission paginate_organizations_get = new Permission();
+ paginate_organizations_get.setTag(PermissionName.PAGINATE_ORGANIZATIONS_GET);
+ paginate_organizations_get.setDescription(PermissionDescription.PAGINATE_ORGANIZATIONS_GET);
+
+ Permission area_create = new Permission();
+ area_create.setTag(PermissionName.AREA_CREATE);
+ area_create.setDescription(PermissionDescription.AREA_CREATE);
+
+ Permission area_update = new Permission();
+ area_update.setTag(PermissionName.AREA_UPDATE);
+ area_update.setDescription(PermissionDescription.AREA_UPDATE);
+
+ Permission area_delete = new Permission();
+ area_delete.setTag(PermissionName.AREA_DELETE);
+ area_delete.setDescription(PermissionDescription.AREA_DELETE);
+
+ Permission paginate_areas_get = new Permission();
+ paginate_areas_get.setTag(PermissionName.PAGINATE_AREAS_GET);
+ paginate_areas_get.setDescription(PermissionDescription.PAGINATE_AREAS_GET);
+
+ Permission neighborhood_create = new Permission();
+ neighborhood_create.setTag(PermissionName.NEIGHBORHOOD_CREATE);
+ neighborhood_create.setDescription(PermissionDescription.NEIGHBORHOOD_CREATE);
+
+ Permission neighborhood_update = new Permission();
+ neighborhood_update.setTag(PermissionName.NEIGHBORHOOD_UPDATE);
+ neighborhood_update.setDescription(PermissionDescription.NEIGHBORHOOD_UPDATE);
+
+ Permission neighborhood_delete = new Permission();
+ neighborhood_delete.setTag(PermissionName.NEIGHBORHOOD_DELETE);
+ neighborhood_delete.setDescription(PermissionDescription.NEIGHBORHOOD_DELETE);
+
+ Permission paginate_neighborhoods_get = new Permission();
+ paginate_neighborhoods_get.setTag(PermissionName.PAGINATE_NEIGHBORHOODS_GET);
+ paginate_neighborhoods_get.setDescription(PermissionDescription.PAGINATE_NEIGHBORHOODS_GET);
+
+ Permission paginate_cities_get = new Permission();
+ paginate_cities_get.setTag(PermissionName.PAGINATE_CITIES_GET);
+ paginate_cities_get.setDescription(PermissionDescription.PAGINATE_CITIES_GET);
+
+ Permission paginate_districts_get = new Permission();
+ paginate_districts_get.setTag(PermissionName.PAGINATE_DISTRICTS_GET);
+ paginate_districts_get.setDescription(PermissionDescription.PAGINATE_DISTRICTS_GET);
+
+ Permission paginate_countries_get = new Permission();
+ paginate_countries_get.setTag(PermissionName.PAGINATE_COUNTRIES_GET);
+ paginate_countries_get.setDescription(PermissionDescription.PAGINATE_COUNTRIES_GET);
+
+ Permission emission_source_create = new Permission();
+ emission_source_create.setTag(PermissionName.EMISSION_SOURCE_CREATE);
+ emission_source_create.setDescription(PermissionDescription.EMISSION_SOURCE_CREATE);
+
+ Permission emission_source_update = new Permission();
+ emission_source_update.setTag(PermissionName.EMISSION_SOURCE_UPDATE);
+ emission_source_update.setDescription(PermissionDescription.EMISSION_SOURCE_UPDATE);
+
+ Permission emission_source_delete = new Permission();
+ emission_source_delete.setTag(PermissionName.EMISSION_SOURCE_DELETE);
+ emission_source_delete.setDescription(PermissionDescription.EMISSION_SOURCE_DELETE);
+
+ Permission paginate_emission_sources_get = new Permission();
+ paginate_emission_sources_get.setTag(PermissionName.PAGINATE_EMISSION_SOURCES_GET);
+ paginate_emission_sources_get.setDescription(PermissionDescription.PAGINATE_EMISSION_SOURCES_GET);
+
+ Permission dataset_create = new Permission();
+ dataset_create.setTag(PermissionName.DATASET_CREATE);
+ dataset_create.setDescription(PermissionDescription.DATASET_CREATE);
+
+ Permission dataset_update = new Permission();
+ dataset_update.setTag(PermissionName.DATASET_UPDATE);
+ dataset_update.setDescription(PermissionDescription.DATASET_UPDATE);
+
+ Permission dataset_delete = new Permission();
+ dataset_delete.setTag(PermissionName.DATASET_DELETE);
+ dataset_delete.setDescription(PermissionDescription.DATASET_DELETE);
+
+ Permission paginate_datasets_get = new Permission();
+ paginate_datasets_get.setTag(PermissionName.PAGINATE_DATASETS_GET);
+ paginate_datasets_get.setDescription(PermissionDescription.PAGINATE_DATASETS_GET);
+
+ Permission answer_create = new Permission();
+ answer_create.setTag(PermissionName.ANSWER_CREATE);
+ answer_create.setDescription(PermissionDescription.ANSWER_CREATE);
+
+ Permission answer_update = new Permission();
+ answer_update.setTag(PermissionName.ANSWER_UPDATE);
+ answer_update.setDescription(PermissionDescription.ANSWER_UPDATE);
+
+ Permission answer_delete = new Permission();
+ answer_delete.setTag(PermissionName.ANSWER_DELETE);
+ answer_delete.setDescription(PermissionDescription.ANSWER_DELETE);
+
+ Permission paginate_answers_get = new Permission();
+ paginate_answers_get.setTag(PermissionName.PAGINATE_ANSWERS_GET);
+ paginate_answers_get.setDescription(PermissionDescription.PAGINATE_ANSWERS_GET);
+
+ Permission question_create = new Permission();
+ question_create.setTag(PermissionName.QUESTION_CREATE);
+ question_create.setDescription(PermissionDescription.QUESTION_CREATE);
+
+ Permission question_update = new Permission();
+ question_update.setTag(PermissionName.QUESTION_UPDATE);
+ question_update.setDescription(PermissionDescription.QUESTION_UPDATE);
+
+ Permission question_delete = new Permission();
+ question_delete.setTag(PermissionName.QUESTION_DELETE);
+ question_delete.setDescription(PermissionDescription.QUESTION_DELETE);
+
+ Permission paginate_questions_get = new Permission();
+ paginate_questions_get.setTag(PermissionName.PAGINATE_QUESTIONS_GET);
+ paginate_questions_get.setDescription(PermissionDescription.PAGINATE_QUESTIONS_GET);
+
+ Permission undelete_items = new Permission();
+ undelete_items.setTag(PermissionName.UNDELETE_ITEMS);
+ undelete_items.setDescription(PermissionDescription.UNDELETE_ITEMS);
+
+ Permission published_survey_create = new Permission();
+ published_survey_create.setTag(PermissionName.PUBLISHED_SURVEY_CREATE);
+ published_survey_create.setDescription(PermissionDescription.PUBLISHED_SURVEY_CREATE);
+
+ Permission surveys_get = new Permission();
+ surveys_get.setTag(PermissionName.SURVEYS_GET);
+ surveys_get.setDescription(PermissionDescription.SURVEYS_GET);
+
+ Permission paginate_surveys_get = new Permission();
+ paginate_surveys_get.setTag(PermissionName.PAGINATE_SURVEYS_GET);
+ paginate_surveys_get.setDescription(PermissionDescription.PAGINATE_SURVEYS_GET);
+
+ Permission survey_update = new Permission();
+ survey_update.setTag(PermissionName.SURVEY_UPDATE);
+ survey_update.setDescription(PermissionDescription.SURVEY_UPDATE);
+
+ Permission survey_delete = new Permission();
+ survey_delete.setTag(PermissionName.SURVEY_DELETE);
+ survey_delete.setDescription(PermissionDescription.SURVEY_DELETE);
+
+ Permission survey_add = new Permission();
+ survey_add.setTag(PermissionName.SURVEY_ADD);
+ survey_add.setDescription(PermissionDescription.SURVEY_ADD);
+
+ Permission show_graphics = new Permission();
+ show_graphics.setTag(PermissionName.SHOW_GRAPHICS);
+ show_graphics.setDescription(PermissionDescription.SHOW_GRAPHICS);
+
+ Permission settings_access = new Permission();
+ settings_access.setTag(PermissionName.SETTINGS_ACCESS);
+ settings_access.setDescription(PermissionDescription.SETTINGS_ACCESS);
+
+ Permission data_center_create = new Permission();
+ data_center_create.setTag(PermissionName.DATA_CENTER_CREATE);
+ data_center_create.setDescription(PermissionDescription.DATA_CENTER_CREATE);
+
+ Permission data_center_delete = new Permission();
+ data_center_delete.setTag(PermissionName.DATA_CENTER_DELETE);
+ data_center_delete.setDescription(PermissionDescription.DATA_CENTER_DELETE);
+
+ Permission data_center_update = new Permission();
+ data_center_update.setTag(PermissionName.DATA_CENTER_UPDATE);
+ data_center_update.setDescription(PermissionDescription.DATA_CENTER_UPDATE);
+
+ Permission data_center_read = new Permission();
+ data_center_read.setTag(PermissionName.DATA_CENTER_READ);
+ data_center_read.setDescription(PermissionDescription.DATA_CENTER_READ);
+
+ Permission paginate_datacenters_get = new Permission();
+ paginate_datacenters_get.setTag(PermissionName.PAGINATE_DATACENTERS_GET);
+ paginate_datacenters_get.setDescription(PermissionDescription.PAGINATE_DATACENTERS_GET);
+
+ permissionService.saveAll(List.of(
+ show_graphics, activities_get, paginate_user_histories, activity_sub_units_get, sub_sectors_get,
+ sectors_get, deleted_items, undelete_items, user_create, user_update, user_delete, paginate_users_get,
+ role_create, role_update, role_delete, paginate_roles_get,
+ organization_create, organization_update, organization_delete, paginate_organizations_get,
+ area_create, area_update, area_delete, paginate_areas_get,
+ neighborhood_create, neighborhood_update, neighborhood_delete, paginate_neighborhoods_get,
+ paginate_districts_get,
+ paginate_cities_get,
+ paginate_countries_get,
+ emission_source_create, emission_source_update, emission_source_delete, paginate_emission_sources_get,
+ dataset_create, dataset_update, dataset_delete, paginate_datasets_get,
+ answer_create, answer_delete, answer_update, paginate_answers_get,
+ question_create, question_delete, question_update, paginate_questions_get,
+ published_survey_create, surveys_get, paginate_surveys_get,
+ survey_add, survey_delete, survey_update, settings_access, data_center_create, data_center_delete,
+ data_center_update, data_center_read, paginate_datacenters_get));
+ }
+
+ public void createDefaultRole() {
+ Role role = new Role();
+ role.setTag("SUPER_ADMIN");
+ role.setPermissions(permissionService.findAll());
+ roleService.save(role);
+ }
+
+ void createCountry() {
+ Country country = new Country();
+ country.setCountryCode("TR");
+ country.setName("Turkiye");
+ countryRepo.save(country);
+
+ }
+
+ public void createCitiesFromJson() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/cities.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONArray jsonArray = new JSONArray(data);
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String cityName = jsonObject.getString("name");
+ JSONArray cityCoordinates = jsonObject.getJSONArray("coordinates");
+
+ City city = new City();
+ city.setName(cityName);
+ city.setCoordinates(cityCoordinates.toString());
+ city.setCountry(countryService.findAll().get(0));
+ cityRepo.save(city);
+ }
+ }
+
+ public void createDistrictFromJson() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/districts.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONArray jsonArray = new JSONArray(data);
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String districtName = jsonObject.getString("name");
+ String cityName = jsonObject.getString("city");
+ JSONArray districtCoordinates = jsonObject.getJSONArray("coordinates");
+
+ City city = cityRepo.findByName(cityName);
+ District district = new District();
+ district.setName(districtName);
+ district.setCoordinates(districtCoordinates.toString());
+ district.setCity(city);
+
+ districtRepo.save(district);
+ }
+ }
+
+ void createNeighborhoodsFromJson() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/neighbourhoods.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONArray jsonArray = new JSONArray(data);
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String cityName = jsonObject.getString("city");
+ String districtName = jsonObject.getString("district");
+ String neighborhoodName = jsonObject.getString("name");
+ double minLong = jsonObject.getDouble("minLong");
+ double minLat = jsonObject.getDouble("minLat");
+ double maxLong = jsonObject.getDouble("maxLong");
+ double maxLat = jsonObject.getDouble("maxLat");
+
+ City city = cityRepo.findByName(cityName);
+ if (city != null) {
+ District district = city.getDistricts().stream()
+ .filter(d -> d.getName().equals(districtName))
+ .findFirst()
+ .orElse(null);
+
+ if (district != null) {
+ Neighborhood neighborhood = new Neighborhood();
+ neighborhood.setName(neighborhoodName);
+ neighborhood.setDistrict(district);
+ neighborhood.setMinLong(minLong);
+ neighborhood.setMinLat(minLat);
+ neighborhood.setMaxLong(maxLong);
+ neighborhood.setMaxLat(maxLat);
+
+ neighborhoodRepo.save(neighborhood);
+ }
+ }
+ }
+ }
+
+ void createSectorAndSubSectorFromJson() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/SectorsAndSubSectors.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ JSONArray jsonArray = fullJson.getJSONArray("Sectors");
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ Sector sector = new Sector();
+ sector.setTag(jsonObject.getString("SectorName"));
+ sector.setSectorNo(jsonObject.getInt("SectorNo"));
+ sector.setDescription(jsonObject.getString("SectorName"));
+ sectorService.save(sector);
+
+ JSONArray subSectorsJson = jsonObject.getJSONArray("SubSectors");
+ for (int j = 0; j < subSectorsJson.length(); j++) {
+ JSONObject subSectorJson = subSectorsJson.getJSONObject(j);
+ SubSector subSector = new SubSector();
+ subSector.setSubSectorNo(subSectorJson.getInt("SubSectorNo"));
+ subSector.setTag(subSectorJson.getString("Name"));
+ subSector.setDescription(subSectorJson.getString("Name"));
+ subSector.setSector(sector);
+ subSectorService.save(subSector);
+ }
+ }
+ }
+
+ void createGpcReference() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/GpcReferenceNumbers.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ JSONArray jsonArray = fullJson.getJSONArray("data");
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ GpcReference gpcReference = new GpcReference();
+ gpcReference.setReferenceNumber(jsonArray.getString(i));
+ gpcReference.setDescription(jsonArray.getString(i));
+ gpcReferenceService.save(gpcReference);
+ }
+ }
+
+ void createConsuptionUnit() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/ConsuptionUnits.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ JSONArray jsonArray = fullJson.getJSONArray("units");
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject unitObject = jsonArray.getJSONObject(i);
+
+ String unitName = unitObject.getString("name");
+ String unitDescription = unitObject.getString("description");
+
+ ConsuptionUnit consuptionUnit = new ConsuptionUnit();
+ consuptionUnit.setTag(unitName);
+ consuptionUnit.setDescription(unitDescription);
+ consuptionUnitService.save(consuptionUnit);
+ }
+ }
+
+ void createEmissionSourceConvertUnit() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/EmissionSourceConvertUnit.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ JSONArray jsonArray = fullJson.getJSONArray("Data");
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject obj = jsonArray.getJSONObject(i);
+ List emissionSourceList = emissionSourceRepo.findByTag(obj.getString("EmissionSource"));
+ ConsuptionUnit consuptionUnit = consuptionUnitRepo.findByTag(obj.getString("ConsuptionUnit")).get(0);
+
+ for (EmissionSource emissionSource : emissionSourceList) {
+ if (consuptionUnit != null) {
+ emissionSource.setConvertUnitCheck(true);
+ EmissionSource updatedEmissionSource = emissionSourceService.update(emissionSource);
+ EmissionSourceConvertUnit unit = new EmissionSourceConvertUnit();
+ unit.setEmissionSource(updatedEmissionSource);
+ unit.setUnit(consuptionUnit);
+ unit.setValue(obj.getDouble("Amount"));
+ emissionSourceConvertUnitService.save(unit);
+ }
+ }
+ }
+ }
+
+ void createEmissionScope() {
+ for (int i = 1; i < 4; i++) {
+ EmissionScope emissionScope = new EmissionScope();
+ emissionScope.setTag("Kapsam-" + i);
+ emissionScope.setDescription("Kapsam-" + i);
+ emissionScopeService.save(emissionScope);
+ }
+ }
+
+ void createActivitySubUnit() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/ActivitySubUnits.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ List tags = Arrays.asList("Konutlar", "Ticari ve Kurumsal Binalar", "İmalat Sanayi ve İnşaat Yapı",
+ "Tarım, Ormancılık, Balıkçılık Faaliyetleri ve Balık Çiftlikleri",
+ "Kömür Madenciliği, İşlenmesi, Depolanması ve Taşınmasından Kaynaklanan Kaçak Emisyonlar",
+ "Karayolu Taşımacılığı", "Havayolu Taşımacılığı", "Demiryolu Taşımacılığı", "Arazi Taşımacılığı",
+ "Denizyolu Taşımacılığı");
+
+ for (String tag : tags) {
+ JSONArray jsonArray = fullJson.getJSONArray(tag);
+ SubSector subSector = subSectorRepo.findByTag(tag);
+ for (int i = 0; i < jsonArray.length(); i++) {
+ ActivitySubUnit activitySubUnit = new ActivitySubUnit();
+ activitySubUnit.setTag(jsonArray.getString(i));
+ activitySubUnit.setDescription(jsonArray.getString(i));
+ activitySubUnit.setSubSector(subSector);
+ activitySubUnitService.save(activitySubUnit);
+ }
+ }
+ }
+
+ void createEmissionSourceFromJson(String filePath, String[] subSectorTags) throws IOException {
+ InputStream is = getClass().getResourceAsStream("/" + filePath);
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ JSONArray jsonArray = fullJson.getJSONArray("Data");
+
+ String[] co2Tags = { "CO2", "CO2_1", "CO2_2", "CO2_3", "CO2_4" };
+ String[] ch4Tags = { "CH4 (CO2e)", "CH4 (CO2e)_1", "CH4 (CO2e)_2", "CH4 (CO2e)_3", "CH4 (CO2e)_4" };
+ String[] n20Tags = { "N20 (CO2e)", "N20 (CO2e)_1", "N20 (CO2e)_2", "N20 (CO2e)_3", "N20 (CO2e)_4" };
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String tag = jsonObject.getString("Emisyon Kaynağı");
+ String scope = jsonObject.optString("scope");
+
+ for (int j = 0; j < subSectorTags.length; j++) {
+ EmissionSource emissionSource = new EmissionSource();
+ emissionSource.setTag(tag);
+ emissionSource.setEmissionScope(scope);
+ emissionSource.setDescription(tag);
+ emissionSource.setCo2(jsonObject.getDouble(co2Tags[j]));
+ emissionSource.setCh4(jsonObject.getDouble(ch4Tags[j]));
+ emissionSource.setN2o(jsonObject.getDouble(n20Tags[j]));
+ emissionSource.setSubSector(subSectorRepo.findByTag(subSectorTags[j]));
+ EmissionSource savedEmissionSource = emissionSourceService.save(emissionSource);
+
+ EmissionSourceConvertUnit tjConvertUnit = new EmissionSourceConvertUnit();
+ tjConvertUnit.setEmissionSource(savedEmissionSource);
+ tjConvertUnit.setValue(1.0);
+ tjConvertUnit.setUnit(consuptionUnitRepo.findByTag("TJ").get(0));
+ EmissionSourceConvertUnit savedTjConvertUnit = emissionSourceConvertUnitService.save(tjConvertUnit);
+ }
+ }
+ }
+
+ void createWasteEmissionSourceFromJson(String filePath) throws IOException {
+ InputStream is = getClass().getResourceAsStream("/" + filePath);
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ JSONArray jsonArray = fullJson.getJSONArray("Data");
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ WasteEmissionSourceSupplement wasteEmissionSourceSupplement = new WasteEmissionSourceSupplement();
+ wasteEmissionSourceSupplement.setDryWeightCH4(jsonObject.optDouble("dryWeightCH4", 0.0));
+ wasteEmissionSourceSupplement.setWetWeightCH4(jsonObject.optDouble("wetWeightCH4", 0.0));
+ wasteEmissionSourceSupplement.setDampWeightCH4(jsonObject.optDouble("dampWeightCH4", 0.0));
+ wasteEmissionSourceSupplement.setDryWeightN2O(jsonObject.optDouble("dryWeightN2O", 0.0));
+ wasteEmissionSourceSupplement.setWetWeightN2O(jsonObject.optDouble("wetWeightN2O", 0.0));
+ WasteEmissionSourceSupplement savedWasteEmissionSourceSupplement = wasteEmissionSourceSupplementService
+ .save(wasteEmissionSourceSupplement);
+
+ String tag = jsonObject.getString("Emisyon Kaynağı");
+ EmissionSource emissionSource = new EmissionSource();
+ emissionSource.setTag(tag);
+ emissionSource.setDescription(tag);
+ emissionSource.setCo2(0.0);
+ emissionSource.setCh4(0.0);
+ emissionSource.setN2o(0.0);
+ emissionSource.setConvertUnitCheck(true);
+ if (i < 2) {
+ emissionSource.setSubSector(subSectorRepo.findByTag("Atıkların Biyolojik Arıtılması"));
+ } else if (i < 10) {
+ emissionSource.setSubSector(subSectorRepo.findByTag("Atık Su Arıtma ve Deşarjı"));
+ } else if (i < 14) {
+ emissionSource.setSubSector(subSectorRepo.findByTag("Yakma ve Açık Yanma"));
+ }
+ emissionSource.setWasteEmissionSourceSupplement(savedWasteEmissionSourceSupplement);
+ emissionSourceService.save(emissionSource);
+ }
+ }
+
+ void createSolidWasteTypeFromJson() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/SolidWasteTypes.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ JSONArray jsonArray = fullJson.getJSONArray("Data");
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String typeName = jsonObject.getString("TypeName");
+ double formulaCoefficient = jsonObject.getDouble("FormulaCoefficient");
+
+ SolidWasteType solidWasteType = new SolidWasteType();
+ solidWasteType.setTypeName(typeName);
+ solidWasteType.setFormulaCoefficient(formulaCoefficient);
+ solidWasteTypeService.save(solidWasteType);
+ }
+ }
+
+ void createMcfTypeFromJson() throws IOException {
+ InputStream is = getClass().getResourceAsStream("/XDataSetModuleFiles/MCFType.json");
+ String data = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject fullJson = new JSONObject(data);
+ JSONArray jsonArray = fullJson.getJSONArray("Data");
+
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String typeName = jsonObject.getString("TypeName");
+ double value = jsonObject.getDouble("Value");
+
+ McfType mcfType = new McfType();
+ mcfType.setTypeName(typeName);
+ mcfType.setValue(value);
+ mcfTypeService.save(mcfType);
+ }
+ }
+
+ void createDefaultMailInfo() {
+ MailInfo mailInfo = new MailInfo();
+ mailInfo.setHostName(mailHostname);
+ mailInfo.setSmtpPort(mailSmtpPort);
+ mailInfo.setEmailAddress(mailAddress);
+ mailInfo.setEmailPassword(mailPassword);
+ mailInfo.setMainMail(true);
+ mailInfoService.save(mailInfo);
+ }
+
+ public void ensureMissingPermissions() {
+ // Check if paginate_datacenters_get permission exists
+ Optional datacenterPermission = permissionService.findByTag("paginate_datacenters_get");
+ if (!datacenterPermission.isPresent()) {
+ // Create the missing permission
+ Permission paginate_datacenters_get = new Permission();
+ paginate_datacenters_get.setTag(PermissionName.PAGINATE_DATACENTERS_GET);
+ paginate_datacenters_get.setDescription(PermissionDescription.PAGINATE_DATACENTERS_GET);
+ permissionService.save(paginate_datacenters_get);
+ }
+
+ // Ensure SUPER_ADMIN has all permissions
+ Optional superAdminRole = roleRepo.findByTag("SUPER_ADMIN");
+ if (superAdminRole.isPresent()) {
+ Role role = superAdminRole.get();
+ List allPermissions = permissionService.findAll();
+ role.setPermissions(allPermissions);
+ roleService.save(role);
+ }
+ }
+
+ @Override
+ public void run(String... args) throws Exception {
+ if (mailInfoService.findAll().isEmpty()) {
+ createDefaultMailInfo();
+ }
+ if (consuptionUnitService.findAll().isEmpty()) {
+ createConsuptionUnit();
+ }
+ if (gpcReferenceService.findAll().isEmpty()) {
+ createGpcReference();
+ }
+ if (emissionScopeService.findAll().isEmpty()) {
+ createEmissionScope();
+ }
+ if (sectorService.findAll().isEmpty()) {
+ createSectorAndSubSectorFromJson();
+ }
+ if (activitySubUnitService.findAll().isEmpty()) {
+ createActivitySubUnit();
+ }
+ if (emissionSourceService.findAll().isEmpty()) {
+ createEmissionSourceFromJson("XDataSetModuleFiles/EmissionSourceYenilenebilirEnerjiEF.json",
+ new String[] { "Güneş Enerji Santrali", "Rüzgar Enerji Santrali", "Hidroelektrik Enerji Santrali",
+ "Biyokütle Enerji Santrali", "Jeotermal Enerji Santrali" });
+ createEmissionSourceFromJson("XDataSetModuleFiles/EmissionSourceSabitEnerjiEF.json",
+ new String[] { "Enerji Endüstrileri", "İmalat Sanayi ve İnşaat Yapı", "Ticari ve Kurumsal Binalar",
+ "Konutlar", "Tarım, Ormancılık, Balıkçılık Faaliyetleri ve Balık Çiftlikleri" });
+ createEmissionSourceFromJson("XDataSetModuleFiles/EmissionSourceUlasimEF.json",
+ new String[] { "Karayolu Taşımacılığı", "Denizyolu Taşımacılığı", "Demiryolu Taşımacılığı",
+ "Arazi Taşımacılığı", "Havayolu Taşımacılığı" });
+ createWasteEmissionSourceFromJson("XDataSetModuleFiles/EmissionSourceAtikEF.json");
+ createEmissionSourceConvertUnit();
+ }
+ if (solidWasteTypeService.findAll().isEmpty()) {
+ createSolidWasteTypeFromJson();
+ }
+ if (mcfTypeService.findAll().isEmpty()) {
+ createMcfTypeFromJson();
+ }
+ if (permissionService.findAll().isEmpty()) {
+ createDefaultPermission();
+ }
+ if (roleService.findAll().isEmpty()) {
+ createDefaultRole();
+ }
+ // Ensure all permissions are created and assigned to SUPER_ADMIN
+ ensureMissingPermissions();
+ if (organizationService.findAll().isEmpty()) {
+ createDefaultOrganization();
+ }
+ if (userService.findAll().isEmpty()) {
+ createDefaultUser();
+ }
+ if (countryService.findAll().isEmpty()) {
+ createCountry();
+ }
+ if (cityService.findAll().isEmpty()) {
+ createCitiesFromJson();
+ createDefaultArea();
+ }
+ if (districtService.findAll().isEmpty()) {
+ createDistrictFromJson();
+ }
+ if (neighborhoodService.findAll().isEmpty()) {
+ createNeighborhoodsFromJson();
+ }
+ }
+
+ void createDefaultArea() {
+ // Check if default area already exists
+ List existingAreas = areaService.findAll();
+ boolean defaultAreaExists = existingAreas.stream()
+ .anyMatch(area -> "Turkiye".equals(area.getTag()) && area.isDefaultArea());
+
+ if (!defaultAreaExists) {
+ Area defaultArea = new Area();
+ defaultArea.setTag("Turkiye");
+ defaultArea.setDefaultArea(true);
+ defaultArea.setDeleted(false);
+
+ // Get all cities to add to the default area
+ List allCities = cityService.findAll();
+ defaultArea.setCities(allCities);
+
+ // Get the Turkey country to add to the default area
+ List countries = countryService.findAll();
+ if (!countries.isEmpty()) {
+ defaultArea.setCountries(countries);
+ }
+
+ areaService.save(defaultArea);
+ }
+ }
}
\ No newline at end of file