Merge branch 'DEVELOP' into SI-2183-Keycloak-Client-Rollen
diff --git a/gfsBackendService/sonar-project.properties b/gfsBackendService/sonar-project.properties
index ea5875c..58afd24 100644
--- a/gfsBackendService/sonar-project.properties
+++ b/gfsBackendService/sonar-project.properties
@@ -14,6 +14,4 @@
sonar.tests=src/test
#sonar.test.inclusions=**/*.spec.ts
sonar.test.exclusions=**/model/**,**/viewmodel/**, **/RabbitMqConfig.java
-#sonar.ts.tslintconfigpath=tslint.json
-
-sonar.typescript.lcov.reportPaths=coverage/lcov.info
\ No newline at end of file
+#sonar.ts.tslintconfigpath=tslint.json
\ No newline at end of file
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/api/SitCacheApi.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/api/SitCacheApi.java
index a79fa66..5d863a9 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/api/SitCacheApi.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/api/SitCacheApi.java
@@ -15,6 +15,7 @@
package org.eclipse.openk.gridfailureinformation.api;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FESettingsDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@@ -29,4 +30,8 @@
public void postPublicFailureInfos(
@RequestBody List<FailureInformationDto> failureInfoToPublish);
+ @PostMapping("/fe-settings")
+ public void postFeSettings(
+ @RequestBody FESettingsDto feSettings);
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/DmzExportSchedulerConfig.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/DmzExportSchedulerConfig.java
index a0051a5..54edae4 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/DmzExportSchedulerConfig.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/DmzExportSchedulerConfig.java
@@ -31,8 +31,12 @@
@Scheduled(cron = "${export-to-dmz.cron}")
public void scheduleTaskDmzExport() {
- log.info("Executing" + SCHEDULER_NAME + " task: Exporting FailureInformations with Status 'published' to DMZ" );
+ log.debug("Executing" + SCHEDULER_NAME + " task: Exporting FailureInformations with Status 'published' to DMZ" );
exportService.exportFailureInformationsToDMZ();
- log.info("Finished " + SCHEDULER_NAME + " task: Exporting FailureInformations with Status 'published' to DMZ");
+ log.debug("Finished " + SCHEDULER_NAME + " task: Exporting FailureInformations with Status 'published' to DMZ");
+ log.debug("Executing" + SCHEDULER_NAME + " task: Exporting FE-Settings to DMZ" );
+ exportService.exportFeSettingsToDMZ();
+ log.debug("Finished " + SCHEDULER_NAME + " task: Exporting FE-Settings to DMZ");
+
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/FESettings.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/FESettings.java
index b9e03b3..26b3c51 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/FESettings.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/FESettings.java
@@ -22,6 +22,23 @@
public String overviewMapInitialZoom;
@Value("${spring.settings.detailMapInitialZoom}")
public String detailMapInitialZoom;
+ @Value("${spring.settings.overviewMapInitialLatitude}")
+ public String overviewMapInitialLatitude;
+ @Value("${spring.settings.overviewMapInitialLongitude}")
+ public String overviewMapInitialLongitude;
+
+ @Value("${spring.settings.emailSubjectCompleteInit:}")
+ private String emailSubjectCompleteInit;
+ @Value("${spring.settings.emailContentCompleteInit:}")
+ private String emailContentCompleteInit;
+ @Value("${spring.settings.emailSubjectUpdateInit:}")
+ private String emailSubjectUpdateInit;
+ @Value("${spring.settings.emailContentUpdateInit:}")
+ private String emailContentUpdateInit;
+ @Value("${spring.settings.emailSubjectPublishInit:}")
+ private String emailSubjectPublishInit;
+ @Value("${spring.settings.emailContentPublishInit:}")
+ private String emailContentPublishInit;
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/DistributionGroupController.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/DistributionGroupController.java
index 495ed62..b1f5779 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/DistributionGroupController.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/DistributionGroupController.java
@@ -92,7 +92,7 @@
distributionGroupService.deleteDistributionGroup(groupUuid);
}
catch ( Exception e ) {
- log.info("Exception in delete distribution group: ", e);
+ log.error("Exception in delete distribution group: ", e);
throw new ConflictException("distribution.group.still.in.use");
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/SettingsController.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/SettingsController.java
index 24fe6ea..579c0cb 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/SettingsController.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/SettingsController.java
@@ -19,6 +19,7 @@
import io.swagger.annotations.ApiResponses;
import lombok.extern.log4j.Log4j2;
import org.eclipse.openk.gridfailureinformation.service.SettingsService;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FEInitialContentDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.FESettingsDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.annotation.Secured;
@@ -40,4 +41,12 @@
return settingsService.getFESettings();
}
+ @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-READER", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
+ @ApiOperation(value = "Rückgabe der intitialen Texte und Betreffzeilen für die Emailvorlagen")
+ @ApiResponses(value = {@ApiResponse(code = 200, message = "Erfolgreich durchgeführt")})
+ @GetMapping("/initial-email-content")
+ public FEInitialContentDto getInitialEmailSubjectAndContent() {
+ return settingsService.getInitialEmailSubjectAndContent();
+ }
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationRepository.java
index bfbb4e3..9a3b20e 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationRepository.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationRepository.java
@@ -23,13 +23,21 @@
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
+import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@Repository
public interface FailureInformationRepository extends PagingAndSortingRepository<TblFailureInformation, Long > {
- Page<TblFailureInformation> findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(Pageable pageable); // NOSONAR
+
+ @Query("SELECT a from TblFailureInformation a WHERE a.tblFailureInformationCondensed IS NULL " +
+ "AND ( a.refStatusIntern.id NOT IN (:statusClosedId, :statusCancelledId ) OR " +
+ "(a.refStatusIntern.id = :statusClosedId AND a.failureEndResupplied IS NOT NULL AND a.failureEndResupplied >= :dateNowFourWeeksAgo) OR" +
+ "(a.refStatusIntern.id = :statusClosedId AND a.failureEndResupplied IS NULL AND a.modDate >= :dateNowFourWeeksAgo) OR" +
+ "(a.refStatusIntern.id = :statusCancelledId AND a.modDate >= :dateNowFourWeeksAgo) ) ORDER BY a.failureBegin DESC")
+ Page<TblFailureInformation> findByTblFailureInformationForDisplay(long statusClosedId, long statusCancelledId,
+ Date dateNowFourWeeksAgo, Pageable pageable); // NOSONAR
Optional<TblFailureInformation> findByUuid(UUID uuid);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
index 2f842ec..90887de 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
@@ -102,6 +102,9 @@
@Autowired
private SitCacheApi sitCacheApi;
+ @Autowired
+ private SettingsService settingsService;
+
private static final String SUBJECT_DATE_PATTERN_APPLIED = "EEEE', den' dd.MM.yy 'um' HH:mm:ss";
protected Map<String,String> contentReplaceMap;
protected int countExportedMessages;
@@ -153,11 +156,7 @@
sendMessageToRabbitMq(rabbitMqMessageDto, rChannel);
}
- // State wird nur beim RePublishFailureToMailChannelsTask für Update und Complete mitgegeben,
- // hier nicht zurücksetzen (dies passiert immer noch beim resetPublishedFlagOnChannels Task)
- if (processState == null) {
- markChannelAsPublished(targetChannel, existingTblFailureInfo);
- }
+ markChannelAsPublished(targetChannel, existingTblFailureInfo);
}
@@ -202,8 +201,8 @@
List<TblFailureInformation> tblFailureInfosVeroeffentlicht = failureInformationRepository
.findByPublicationStatus(Constants.PUB_STATUS_VEROEFFENTLICHT);
- Set<UUID> currTableViewUuidSet = failureInformationRepository
- .findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(Pageable.unpaged())
+ Set<UUID> currTableViewUuidSet = failureInformationService
+ .findFailureInformationsForDisplay(Pageable.unpaged())
.stream()
.map(TblFailureInformation::getUuid)
.collect(Collectors.toSet());
@@ -215,12 +214,19 @@
.collect(Collectors.toList());
- try{
+ try {
sitCacheApi.postPublicFailureInfos(failureInfoDtossVeroeffentlicht);
- }
- catch(Exception e){
+ } catch (Exception e) {
log.error("error.exporting.published.failure.infos", e);
- }
+ }
+ }
+
+ public void exportFeSettingsToDMZ(){
+ try {
+ sitCacheApi.postFeSettings(settingsService.getFESettings());
+ } catch (Exception e) {
+ log.error("error.exporting.feSettings.to.DMZ", e);
+ }
}
private boolean isChannelAlreadyPublished(String targetChannel, TblFailureInformation existingTblFailureInfo) {
@@ -349,7 +355,7 @@
log.info("RabbitMq: Successfully sent msg: Export-Exchange: " + rabbitMqProperties.getExportExchange() + " Export-Queue: " + rabbitMqChannel.getExportQueue()
+ " Export-Key: " + rabbitMqChannel.getExportKey());
} catch (Exception e) {
- log.debug(e.getMessage(), e);
+ log.error(e.getMessage(), e);
throw new InternalServerErrorException("could.not.push.rabbitMqMessage");
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationReminderMailSentService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationReminderMailSentService.java
index ee58a47..29b0592 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationReminderMailSentService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationReminderMailSentService.java
@@ -41,6 +41,9 @@
public class FailureInformationReminderMailSentService {
@Autowired
+ private FailureInformationService failureInformationService;
+
+ @Autowired
private FailureInformationReminderMailSentRepository failureInformationReminderMailSentRepository;
@Autowired
@@ -62,8 +65,8 @@
long minutesBefore;
public Boolean displayStatusChangeReminderAndSendMails() {
- Page<FailureInformationDto> failureInfoPage = failureInformationRepository
- .findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(PageRequest.of(0, 9999999))
+ Page<FailureInformationDto> failureInfoPage = failureInformationService
+ .findFailureInformationsForDisplay(PageRequest.of(0, 9999999))
.map(failureInformationMapper::toFailureInformationDto);
LocalDateTime reminderDate = LocalDateTime.now().plusMinutes(minutesBefore);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
index 229ce91..7ee0f7f 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
@@ -28,8 +28,30 @@
import org.eclipse.openk.gridfailureinformation.exceptions.OperationDeniedException;
import org.eclipse.openk.gridfailureinformation.mapper.FailureInformationMapper;
import org.eclipse.openk.gridfailureinformation.mapper.FailureInformationPublicationChannelMapper;
-import org.eclipse.openk.gridfailureinformation.model.*;
-import org.eclipse.openk.gridfailureinformation.repository.*;
+import org.eclipse.openk.gridfailureinformation.model.HtblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.RefBranch;
+import org.eclipse.openk.gridfailureinformation.model.RefExpectedReason;
+import org.eclipse.openk.gridfailureinformation.model.RefStatus;
+import org.eclipse.openk.gridfailureinformation.model.TblAddress;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationPublicationChannel;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationReminderMailSent;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationStation;
+import org.eclipse.openk.gridfailureinformation.model.TblStation;
+import org.eclipse.openk.gridfailureinformation.repository.AddressRepository;
+import org.eclipse.openk.gridfailureinformation.repository.BranchRepository;
+import org.eclipse.openk.gridfailureinformation.repository.DistributionGroupRepository;
+import org.eclipse.openk.gridfailureinformation.repository.ExpectedReasonRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureClassificationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationDistributionGroupRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationPublicationChannelRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationReminderMailSentRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationStationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.HistFailureInformationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.RadiusRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
import org.eclipse.openk.gridfailureinformation.util.ExternalStatusCalculator;
import org.eclipse.openk.gridfailureinformation.util.GrahamScan;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
@@ -43,8 +65,17 @@
import java.awt.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.LinkedList;
import java.util.List;
-import java.util.*;
+import java.util.Optional;
+import java.util.Set;
+import java.util.UUID;
import java.util.stream.Collectors;
@Log4j2
@@ -117,14 +148,24 @@
}
public Page<FailureInformationDto> findFailureInformations(Pageable pageable) {
- Page<FailureInformationDto> retPage = failureInformationRepository
- .findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(pageable)
+ Page<FailureInformationDto> retPage = findFailureInformationsForDisplay(pageable)
.map(failureInformationMapper::toFailureInformationDto);
retPage.getContent().forEach(this::enrichFailureInfo);
return retPage;
}
+ public Page<TblFailureInformation> findFailureInformationsForDisplay(Pageable pageable) {
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime ldt = LocalDateTime.of(now.getYear(), now.getMonth(), now.getDayOfMonth(), 0, 0, 0);
+ ldt = ldt.minusWeeks(4);
+ Date nowMinusFourWeeks = Date.from(ldt.atZone(ZoneId.of("UTC")).toInstant());
+ return failureInformationRepository.findByTblFailureInformationForDisplay(
+ GfiProcessState.COMPLETED.getStatusValue(),
+ GfiProcessState.CANCELED.getStatusValue(),
+ nowMinusFourWeeks, pageable);
+ }
+
public List<FailureInformationDto> findFailureInformationsByCondensedUuid(UUID uuid) {
List<FailureInformationDto> listFailureInformationDtos = new LinkedList<>();
@@ -455,9 +496,7 @@
setEarliestStartdate(listSubordinatedFailureInfos, condensedFailureInformation);
setLatestEnddate(listSubordinatedFailureInfos, condensedFailureInformation);
setExpectedReason(listSubordinatedFailureInfos, condensedFailureInformation);
- setCity(listSubordinatedFailureInfos, condensedFailureInformation);
- setStreet(listSubordinatedFailureInfos, condensedFailureInformation);
- setDistrict(listSubordinatedFailureInfos, condensedFailureInformation);
+ setAddress(listSubordinatedFailureInfos, condensedFailureInformation);
setRadius(listSubordinatedFailureInfos, condensedFailureInformation);
@@ -500,7 +539,7 @@
final List<TblFailureInformationStation> byFkTblFailureInformation = failureInformationStationRepository.findByFkTblFailureInformation(condensedFailureInformation.getId());
Set<String> stationsOfOldExistingCondensedFi =
byFkTblFailureInformation.stream()
- .map( x -> x.getStationStationId() )
+ .map( TblFailureInformationStation::getStationStationId )
.collect(Collectors.toSet());
// store the set for the newly created failure info
@@ -532,58 +571,44 @@
}
- private void setStreet(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation){
+ private void setAddress(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation){
- String firstStreet = listFailureInfos.get(0).getStreet();
-
- List<TblFailureInformation> filteredList = listFailureInfos
+ Optional<TblFailureInformation> firstCompleteFailureInformation = listFailureInfos
.stream()
- .filter(f -> f.getStreet()!=null)
- .filter(f -> f.getStreet().equals(firstStreet))
- .collect(Collectors.toList());
+ .filter(f -> f.getPostcode() != null && f.getStreet() != null && f.getHousenumber() != null)
+ .findFirst();
- if (listFailureInfos.size() == filteredList.size()) {
- condensedFailureInformation.setStreet(firstStreet);
- }
- else{
- condensedFailureInformation.setStreet(null);
+ if (!firstCompleteFailureInformation.isPresent()) {
+ setCondensedFailureInformationAddress(condensedFailureInformation, null);
+ } else {
+ String address = concatAddress(firstCompleteFailureInformation.get());
+
+ List<TblFailureInformation> filteredList = listFailureInfos
+ .stream()
+ .filter(f -> f.getPostcode() != null && f.getStreet() != null && f.getHousenumber() != null)
+ .filter(f -> concatAddress(f).equals(address))
+ .collect(Collectors.toList());
+
+ if (listFailureInfos.size() == filteredList.size()) {
+ setCondensedFailureInformationAddress(condensedFailureInformation, firstCompleteFailureInformation.get());
+ }
+ else{
+ setCondensedFailureInformationAddress(condensedFailureInformation, null);
+ }
}
}
- private void setDistrict(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation){
-
- String firstDistrict = listFailureInfos.get(0).getDistrict();
-
- List<TblFailureInformation> filteredList = listFailureInfos
- .stream()
- .filter(f -> f.getDistrict()!= null)
- .filter(f -> f.getDistrict().equals(firstDistrict))
- .collect(Collectors.toList());
-
- if (listFailureInfos.size() == filteredList.size()) {
- condensedFailureInformation.setDistrict(firstDistrict);
- }
- else{
- condensedFailureInformation.setDistrict(null);
- }
+ private void setCondensedFailureInformationAddress(TblFailureInformation condensedFailureInformation, TblFailureInformation failureInformation) {
+ condensedFailureInformation.setPostcode(failureInformation != null ? failureInformation.getPostcode() : null);
+ condensedFailureInformation.setStreet(failureInformation != null ? failureInformation.getStreet() : null);
+ condensedFailureInformation.setHousenumber(failureInformation != null ? failureInformation.getHousenumber() : null);
+ condensedFailureInformation.setCity(failureInformation != null ? failureInformation.getCity() : null);
+ condensedFailureInformation.setDistrict(failureInformation != null ? failureInformation.getDistrict() : null);
}
- private void setCity(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation){
-
- String firstCity = listFailureInfos.get(0).getCity();
-
- List<TblFailureInformation> filteredList = listFailureInfos
- .stream()
- .filter(f -> f.getCity() != null)
- .filter(f -> f.getCity().equals(firstCity))
- .collect(Collectors.toList());
-
- if (listFailureInfos.size() == filteredList.size()) {
- condensedFailureInformation.setCity(firstCity);
- }
- else{
- condensedFailureInformation.setCity(null);
- }
+ private String concatAddress(TblFailureInformation failureInformation) {
+ if (failureInformation == null) return null;
+ return failureInformation.getPostcode() + failureInformation.getStreet() + failureInformation.getHousenumber();
}
private void setExpectedReason(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation){
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/SettingsService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/SettingsService.java
index b69eb45..2294820 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/SettingsService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/SettingsService.java
@@ -17,6 +17,7 @@
import lombok.extern.log4j.Log4j2;
import org.eclipse.openk.gridfailureinformation.config.FESettings;
import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqChannel;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FEInitialContentDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.FESettingsDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -31,9 +32,14 @@
@Autowired
private FESettings feSettings;
+ private FESettingsDto feSettingsDto;
+ private FEInitialContentDto feInitialContentDto;
+
public FESettingsDto getFESettings(){
- FESettingsDto feSettingsDto = new FESettingsDto();
+ if (feSettingsDto != null) return feSettingsDto;
+
+ feSettingsDto = new FESettingsDto();
List<RabbitMqChannel> rabbitMqChannels = feSettings.getChannels();
List<String> channelNames = new LinkedList();
@@ -44,8 +50,26 @@
feSettingsDto.setExportChannels(channelNames);
feSettingsDto.setDetailMapInitialZoom(feSettings.getDetailMapInitialZoom());
feSettingsDto.setOverviewMapInitialZoom(feSettings.getOverviewMapInitialZoom());
+ feSettingsDto.setOverviewMapInitialLatitude(feSettings.getOverviewMapInitialLatitude());
+ feSettingsDto.setOverviewMapInitialLongitude(feSettings.getOverviewMapInitialLongitude());
return feSettingsDto;
}
+ public FEInitialContentDto getInitialEmailSubjectAndContent(){
+ if (feInitialContentDto != null) return feInitialContentDto;
+
+ feInitialContentDto = new FEInitialContentDto();
+ feInitialContentDto.setEmailSubjectPublishInit(feSettings.getEmailSubjectPublishInit());
+ feInitialContentDto.setEmailContentPublishInit(feSettings.getEmailContentPublishInit());
+
+ feInitialContentDto.setEmailSubjectUpdateInit(feSettings.getEmailSubjectUpdateInit());
+ feInitialContentDto.setEmailContentUpdateInit(feSettings.getEmailContentUpdateInit());
+
+ feInitialContentDto.setEmailContentCompleteInit(feSettings.getEmailContentCompleteInit());
+ feInitialContentDto.setEmailSubjectCompleteInit(feSettings.getEmailSubjectCompleteInit());
+
+ return feInitialContentDto;
+ }
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FEInitialContentDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FEInitialContentDto.java
new file mode 100644
index 0000000..c8cc8b3
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FEInitialContentDto.java
@@ -0,0 +1,34 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.gridfailureinformation.viewmodel;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class FEInitialContentDto implements Serializable {
+
+ private String emailSubjectCompleteInit;
+ private String emailContentCompleteInit;
+
+ private String emailSubjectUpdateInit;
+ private String emailContentUpdateInit;
+
+ private String emailSubjectPublishInit;
+ private String emailContentPublishInit;
+
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FESettingsDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FESettingsDto.java
index e02af47..b3f2fcc 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FESettingsDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FESettingsDto.java
@@ -25,4 +25,7 @@
public String overviewMapInitialZoom;
public String detailMapInitialZoom;
+ public String overviewMapInitialLatitude;
+ public String overviewMapInitialLongitude;
+
}
diff --git a/gfsBackendService/src/main/resources/application.yml b/gfsBackendService/src/main/resources/application.yml
index 1309fc1..3ea0764 100644
--- a/gfsBackendService/src/main/resources/application.yml
+++ b/gfsBackendService/src/main/resources/application.yml
@@ -45,6 +45,46 @@
settings:
overviewMapInitialZoom: 10
detailMapInitialZoom: 10
+ overviewMapInitialLatitude: 49.656634
+ overviewMapInitialLongitude: 8.423207
+ # Initial emailsubject and content
+ emailSubjectPublishInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status veröffentlicht geändert."
+ emailContentPublishInit: "Veröffentlicht [TEST]\n
+
+ Sehr geehrte Damen und Herren,\n
+
+ die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
+
+ $Direkter_Link_zur_Störung$\n
+
+ Mit freundlichen Grüßen
+
+ Ihre Admin-Meister-Team der PTA GmbH"
+ emailSubjectUpdateInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status aktualisiert geändert."
+ emailContentUpdateInit: "Aktualisiert [TEST]\n
+
+ Sehr geehrte Damen und Herren,\n
+
+ die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
+
+ $Direkter_Link_zur_Störung$\n
+
+ Mit freundlichen Grüßen
+
+ Ihre Admin-Meister-Team der PTA GmbH"
+
+ emailSubjectCompleteInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status beendet geändert."
+ emailContentCompleteInit: "Beendet [TEST]\n
+
+ Sehr geehrte Damen und Herren,\n
+
+ die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
+
+ $Direkter_Link_zur_Störung$\n
+
+ Mit freundlichen Grüßen
+
+ Ihre Admin-Meister-Team der PTA GmbH"
jpa:
show-sql: false
diff --git a/gfsBackendService/src/main/resources/application_localdev.yml b/gfsBackendService/src/main/resources/application_localdev.yml
index 1b7dc6d..d7b1c67 100644
--- a/gfsBackendService/src/main/resources/application_localdev.yml
+++ b/gfsBackendService/src/main/resources/application_localdev.yml
@@ -46,6 +46,8 @@
settings:
overviewMapInitialZoom: 10
detailMapInitialZoom: 10
+ overviewMapInitialLatitude: 49.656634
+ overviewMapInitialLongitude: 8.423207
jpa:
show-sql: false
@@ -87,6 +89,7 @@
portalFeLoginURL: http://entopkon:8880/portalFE/#/login
portalFeModulename: SIT DEV
+
authNAuthService:
ribbon:
listOfServers: http://entopkon:8880
@@ -95,6 +98,10 @@
ribbon:
listOfServers: http://entdockergss:9156
+sitCacheService:
+ ribbon:
+ listOfServers: http://localhost:3000
+
cors:
corsEnabled: true
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/SettingsControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/SettingsControllerTest.java
index 5daa3ef..8dd4d20 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/SettingsControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/SettingsControllerTest.java
@@ -42,5 +42,13 @@
.andExpect(content().contentType(MediaType.APPLICATION_JSON));
}
+ @Test
+ public void shouldReturnInitialContent() throws Exception {
+
+ mockMvc.perform(get("/settings/initial-email-content"))
+ .andExpect(status().is2xxSuccessful())
+ .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+ }
+
}
\ No newline at end of file
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationReminderMailSentServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationReminderMailSentServiceTest.java
index a8538f3..f243ca5 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationReminderMailSentServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationReminderMailSentServiceTest.java
@@ -57,6 +57,9 @@
private FailureInformationReminderMailSentService failureInformationReminderMailSentService;
@MockBean
+ private FailureInformationService failureInformationService;
+
+ @MockBean
private FailureInformationRepository failureInformationRepository;
@MockBean
@@ -77,7 +80,7 @@
mockfailurePage.getContent().stream().findFirst().get().setFailureEndPlanned(reminderDate);
TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation();
- when(failureInformationRepository.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(any(Pageable.class))).thenReturn(mockfailurePage);
+ when(failureInformationService.findFailureInformationsForDisplay(any(Pageable.class))).thenReturn(mockfailurePage);
when(statusRepository.findById(any(Long.class))).thenReturn(Optional.of(mockRefStatus));
when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
when(failureInformationReminderMailSentRepository.findByTblFailureInformation(any(TblFailureInformation.class))).thenReturn(Optional.empty());
@@ -92,7 +95,7 @@
Page<TblFailureInformation> mockfailurePage = MockDataHelper.mockTblFailureInformationPage();
RefStatus mockRefStatus = MockDataHelper.mockRefStatusCreated();
- when(failureInformationRepository.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(any(Pageable.class))).thenReturn(mockfailurePage);
+ when(failureInformationService.findFailureInformationsForDisplay(any(Pageable.class))).thenReturn(mockfailurePage);
when(statusRepository.findById(any(Long.class))).thenReturn(Optional.of(mockRefStatus));
Boolean reminderIsDisplayed = failureInformationReminderMailSentService.displayStatusChangeReminderAndSendMails();
@@ -110,7 +113,7 @@
mockfailurePage.getContent().stream().findFirst().get().setRefStatusIntern(mockRefStatus);
TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation();
- when(failureInformationRepository.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(any(Pageable.class))).thenReturn(mockfailurePage);
+ when(failureInformationService.findFailureInformationsForDisplay(any(Pageable.class))).thenReturn(mockfailurePage);
when(statusRepository.findById(any(Long.class))).thenReturn(Optional.of(mockRefStatus));
when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
when(failureInformationReminderMailSentRepository.findByTblFailureInformation(any(TblFailureInformation.class))).thenReturn(Optional.empty());
@@ -130,7 +133,7 @@
mockfailurePage.getContent().stream().findFirst().get().setRefStatusIntern(mockRefStatus);
TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation();
- when(failureInformationRepository.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(any(Pageable.class))).thenReturn(mockfailurePage);
+ when(failureInformationService.findFailureInformationsForDisplay(any(Pageable.class))).thenReturn(mockfailurePage);
when(statusRepository.findById(any(Long.class))).thenReturn(Optional.of(mockRefStatus));
when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
when(failureInformationReminderMailSentRepository.findByTblFailureInformation(any(TblFailureInformation.class))).thenReturn(Optional.empty());
@@ -149,7 +152,7 @@
RefStatus mockRefStatus = MockDataHelper.mockRefStatusCreated();
List<FailureInformationDto> failureInformationDtoList = MockDataHelper.mockGridFailureInformationDtos();
- when(failureInformationRepository.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(any(Pageable.class))).thenReturn(mockfailurePage);
+ when(failureInformationService.findFailureInformationsForDisplay(any(Pageable.class))).thenReturn(mockfailurePage);
when(statusRepository.findById(any(Long.class))).thenReturn(Optional.of(mockRefStatus));
when(exportService.exportFailureInformationReminderMail(any(UUID.class))).thenReturn(true);
@@ -165,7 +168,7 @@
RefStatus mockRefStatus = MockDataHelper.mockRefStatusCreated();
List<FailureInformationDto> failureInformationDtoList = MockDataHelper.mockGridFailureInformationDtos();
- when(failureInformationRepository.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(any(Pageable.class))).thenReturn(mockfailurePage);
+ when(failureInformationService.findFailureInformationsForDisplay(any(Pageable.class))).thenReturn(mockfailurePage);
when(statusRepository.findById(any(Long.class))).thenReturn(Optional.of(mockRefStatus));
when(exportService.exportFailureInformationReminderMail(any(UUID.class))).thenReturn(true);
@@ -227,9 +230,8 @@
Page<TblFailureInformation> mockfailurePage = MockDataHelper.mockTblFailureInformationPage();
RefStatus mockRefStatus = MockDataHelper.mockRefStatusCOMPLETED();
mockfailurePage.getContent().stream().forEach(f -> f.setRefStatusIntern(null));
- List<FailureInformationDto> failureInformationDtoList = MockDataHelper.mockGridFailureInformationDtos();
- when(failureInformationRepository.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(any(Pageable.class))).thenReturn(mockfailurePage);
+ when(failureInformationService.findFailureInformationsForDisplay(any(Pageable.class))).thenReturn(mockfailurePage);
when(statusRepository.findById(any(Long.class))).thenReturn(Optional.of(mockRefStatus));
when(exportService.exportFailureInformationReminderMail(any(UUID.class))).thenReturn(true);
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java
index a63d6eb..ba01353 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java
@@ -21,13 +21,38 @@
import org.eclipse.openk.gridfailureinformation.exceptions.BadRequestException;
import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
import org.eclipse.openk.gridfailureinformation.exceptions.OperationDeniedException;
-import org.eclipse.openk.gridfailureinformation.model.*;
-import org.eclipse.openk.gridfailureinformation.repository.*;
+import org.eclipse.openk.gridfailureinformation.model.HtblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.RefBranch;
+import org.eclipse.openk.gridfailureinformation.model.RefExpectedReason;
+import org.eclipse.openk.gridfailureinformation.model.RefFailureClassification;
+import org.eclipse.openk.gridfailureinformation.model.RefRadius;
+import org.eclipse.openk.gridfailureinformation.model.RefStatus;
+import org.eclipse.openk.gridfailureinformation.model.TblAddress;
+import org.eclipse.openk.gridfailureinformation.model.TblDistributionGroup;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationDistributionGroup;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationPublicationChannel;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationReminderMailSent;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationStation;
+import org.eclipse.openk.gridfailureinformation.model.TblStation;
+import org.eclipse.openk.gridfailureinformation.repository.AddressRepository;
+import org.eclipse.openk.gridfailureinformation.repository.BranchRepository;
+import org.eclipse.openk.gridfailureinformation.repository.DistributionGroupRepository;
+import org.eclipse.openk.gridfailureinformation.repository.ExpectedReasonRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureClassificationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationDistributionGroupRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationPublicationChannelRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationReminderMailSentRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationStationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.HistFailureInformationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.RadiusRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationPublicationChannelDto;
import org.junit.jupiter.api.Test;
-import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;
import org.springframework.beans.factory.annotation.Autowired;
@@ -40,13 +65,19 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
//import java.sql.Date;
@Log4j2
@@ -90,7 +121,7 @@
public void shouldFindFailureInformations() {
Page<TblFailureInformation> mockfailurePage = MockDataHelper.mockTblFailureInformationPage();
RefStatus refStatus = MockDataHelper.mockRefStatusCreated();
- when(failureInformationRepository.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(any(Pageable.class))).thenReturn(mockfailurePage);
+ when(failureInformationRepository.findByTblFailureInformationForDisplay(anyLong(), anyLong(), any(Date.class), any(Pageable.class))).thenReturn(mockfailurePage);
when(statusRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refStatus));
Page<FailureInformationDto> retPage = failureInformationService.findFailureInformations(Pageable.unpaged());
@@ -639,7 +670,7 @@
}
@Test
- public void shouldCondenseFailureInformations_equalFailureInfos() {
+ public void shouldCondenseFailureInformations_equalFailureInfos_completeAddress() {
List uuidList = MockDataHelper.mockUuidList();
@@ -672,6 +703,8 @@
assertEquals(tblFailureInformation1.getStreet(), savedCondensedFailureInfoDto.getStreet());
assertEquals(tblFailureInformation1.getDistrict(), savedCondensedFailureInfoDto.getDistrict());
assertEquals(tblFailureInformation1.getCity(), savedCondensedFailureInfoDto.getCity());
+ assertEquals(tblFailureInformation1.getPostcode(), savedCondensedFailureInfoDto.getPostcode());
+ assertEquals(tblFailureInformation1.getHousenumber(), savedCondensedFailureInfoDto.getHousenumber());
assertEquals(tblFailureInformation1.getRefExpectedReason().getUuid(), savedCondensedFailureInfoDto.getExpectedReasonId());
assertEquals(tblFailureInformation1.getFailureEndPlanned(), savedCondensedFailureInfoDto.getFailureEndPlanned());
assertEquals(tblFailureInformation1.getFailureBegin(), savedCondensedFailureInfoDto.getFailureBegin());
@@ -681,13 +714,56 @@
}
@Test
- public void shouldCondenseFailureInformations_differentFailureInfos() {
+ public void shouldCondenseFailureInformations_setAddressNull_equalFailureInfos_notCompleteAddress() {
List uuidList = MockDataHelper.mockUuidList();
- //different failureInfos
+ TblFailureInformation tblFailureInformation1 = MockDataHelper.mockTblFailureInformationWithoutAddress();
+ TblFailureInformation tblFailureInformation2 = MockDataHelper.mockTblFailureInformationWithoutAddress();
+ TblFailureInformation tblFailureInformation3 = MockDataHelper.mockTblFailureInformationWithoutAddress();
+
+ List<TblFailureInformation> listFailureInfos = new ArrayList();
+ listFailureInfos.add(tblFailureInformation1);
+ listFailureInfos.add(tblFailureInformation2);
+ listFailureInfos.add(tblFailureInformation3);
+
+ RefStatus refStatus = MockDataHelper.mockRefStatusCreated();
+
+ when(failureInformationRepository.findByUuidIn(any(List.class))).thenReturn(listFailureInfos);
+ when(statusRepository.findById(anyLong())).thenReturn(Optional.of(refStatus));
+ when(statusRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refStatus));
+
+ when(failureInformationRepository.save(any(TblFailureInformation.class)))
+ .then((Answer<TblFailureInformation>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblFailureInformation) args[0];
+ });
+
+ FailureInformationDto savedCondensedFailureInfoDto = failureInformationService.condenseFailureInfos(uuidList, Optional.empty());
+
+ assertNotNull(savedCondensedFailureInfoDto.getUuid());
+ assertEquals(1L, savedCondensedFailureInfoDto.getVersionNumber());
+ //TODO: status (2x) und radius überprüfen
+ assertNull(savedCondensedFailureInfoDto.getStreet());
+ assertNull(savedCondensedFailureInfoDto.getDistrict());
+ assertNull(savedCondensedFailureInfoDto.getCity());
+ assertNull(savedCondensedFailureInfoDto.getPostcode());
+ assertNull(savedCondensedFailureInfoDto.getHousenumber());
+ assertEquals(tblFailureInformation1.getRefExpectedReason().getUuid(), savedCondensedFailureInfoDto.getExpectedReasonId());
+ assertEquals(tblFailureInformation1.getFailureEndPlanned(), savedCondensedFailureInfoDto.getFailureEndPlanned());
+ assertEquals(tblFailureInformation1.getFailureBegin(), savedCondensedFailureInfoDto.getFailureBegin());
+ assertEquals(true, savedCondensedFailureInfoDto.getCondensed());
+ assertEquals(null, savedCondensedFailureInfoDto.getFailureInformationCondensedId());
+
+ }
+
+ @Test
+ public void shouldCondenseFailureInformations_setAddressNull_differentFailureInfos_differentPostcodeStreetHousenumber() {
+
+ List uuidList = MockDataHelper.mockUuidList();
+
+ //different failureInfos and different postcode, street and house number
TblFailureInformation tblFailureInformation1 = MockDataHelper.mockTblFailureInformation();
- TblFailureInformation tblFailureInformation2 = MockDataHelper.mockTblFailureInformation();
TblFailureInformation tblFailureInformation3 = MockDataHelper.mockTblFailureInformation2();
TblStation tblStation = MockDataHelper.mockTblStation();
@@ -708,7 +784,6 @@
List<TblFailureInformation> listFailureInfos = new ArrayList();
listFailureInfos.add(tblFailureInformation1);
- listFailureInfos.add(tblFailureInformation2);
listFailureInfos.add(tblFailureInformation3);
//different status
@@ -731,9 +806,72 @@
assertNotNull(savedCondensedFailureInfoDto.getUuid());
assertEquals(1L, savedCondensedFailureInfoDto.getVersionNumber());
//TODO: status (2x) und radius überprüfen
- assertEquals(null, savedCondensedFailureInfoDto.getStreet());
- assertEquals(null, savedCondensedFailureInfoDto.getDistrict());
- assertEquals(null, savedCondensedFailureInfoDto.getCity());
+ assertNull(savedCondensedFailureInfoDto.getStreet());
+ assertNull(savedCondensedFailureInfoDto.getDistrict());
+ assertNull(savedCondensedFailureInfoDto.getCity());
+ assertNull(savedCondensedFailureInfoDto.getPostcode());
+ assertNull(savedCondensedFailureInfoDto.getCity());
+ assertEquals(tblFailureInformation1.getFailureBegin(), savedCondensedFailureInfoDto.getFailureBegin());
+ assertEquals(tblFailureInformation3.getFailureEndPlanned(), savedCondensedFailureInfoDto.getFailureEndPlanned());
+ assertEquals(true, savedCondensedFailureInfoDto.getCondensed());
+ assertEquals(null, savedCondensedFailureInfoDto.getFailureInformationCondensedId());
+
+ }
+
+ @Test
+ public void shouldCondenseFailureInformations_setAddressRight_differentFailureInfos_samePostcodeStreetHousenumber() {
+
+ List uuidList = MockDataHelper.mockUuidList();
+
+ //different failureInfos but same postcode, street and house number
+ TblFailureInformation tblFailureInformation1 = MockDataHelper.mockTblFailureInformation();
+ TblFailureInformation tblFailureInformation3 = MockDataHelper.mockTblFailureInformation3();
+
+ TblStation tblStation = MockDataHelper.mockTblStation();
+ List<TblAddress> addressList = MockDataHelper.mockTblAddressList();
+
+ SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy");
+ try {
+ java.util.Date date1 = dateformat.parse("01/01/2020");
+ java.util.Date date2 = dateformat.parse("24/12/2024");
+
+ // set first startdate and last enddate
+ tblFailureInformation1.setFailureBegin(date1);
+ tblFailureInformation3.setFailureEndPlanned(date2);
+ }catch(Exception e){
+ log.error("Error in FailureInformationServiceTest: SimpleDateFormat.parse");
+ }
+
+
+ List<TblFailureInformation> listFailureInfos = new ArrayList();
+ listFailureInfos.add(tblFailureInformation1);
+ listFailureInfos.add(tblFailureInformation3);
+
+ //different status
+ RefStatus refStatus = MockDataHelper.mockRefStatusCreated();
+ RefStatus refStatus2 = MockDataHelper.mockRefStatus2();
+
+ when(statusRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refStatus));
+ when(failureInformationRepository.findByUuidIn(any(List.class))).thenReturn(listFailureInfos);
+ when(statusRepository.findById(anyLong())).thenReturn(Optional.of(refStatus)).thenReturn(Optional.of(refStatus2));
+ when(failureInformationRepository.save(any(TblFailureInformation.class)))
+ .then((Answer<TblFailureInformation>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblFailureInformation) args[0];
+ });
+ when(stationRepository.findByStationId(anyString())).thenReturn(Optional.of(tblStation));
+ when(addressRepository.findByStationId(anyString())).thenReturn(addressList);
+
+ FailureInformationDto savedCondensedFailureInfoDto = failureInformationService.condenseFailureInfos(uuidList, Optional.empty());
+
+ assertNotNull(savedCondensedFailureInfoDto.getUuid());
+ assertEquals(1L, savedCondensedFailureInfoDto.getVersionNumber());
+ //TODO: status (2x) und radius überprüfen
+ assertEquals(tblFailureInformation1.getStreet(), savedCondensedFailureInfoDto.getStreet());
+ assertEquals(tblFailureInformation1.getDistrict(), savedCondensedFailureInfoDto.getDistrict());
+ assertEquals(tblFailureInformation1.getCity(), savedCondensedFailureInfoDto.getCity());
+ assertEquals(tblFailureInformation1.getPostcode(), savedCondensedFailureInfoDto.getPostcode());
+ assertEquals(tblFailureInformation1.getHousenumber(), savedCondensedFailureInfoDto.getHousenumber());
assertEquals(tblFailureInformation1.getFailureBegin(), savedCondensedFailureInfoDto.getFailureBegin());
assertEquals(tblFailureInformation3.getFailureEndPlanned(), savedCondensedFailureInfoDto.getFailureEndPlanned());
assertEquals(true, savedCondensedFailureInfoDto.getCondensed());
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/SettingsServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/SettingsServiceTest.java
index f85d4d4..be872bc 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/SettingsServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/SettingsServiceTest.java
@@ -19,6 +19,7 @@
import org.eclipse.openk.gridfailureinformation.repository.AddressRepository;
import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
import org.eclipse.openk.gridfailureinformation.viewmodel.AddressDto;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FEInitialContentDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.FESettingsDto;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -47,5 +48,20 @@
assertFalse(feSettingsDto.getDetailMapInitialZoom() == null);
assertFalse(feSettingsDto.getOverviewMapInitialZoom()== null);
assertFalse(feSettingsDto.getExportChannels() == null);
+ assertFalse(feSettingsDto.getOverviewMapInitialLatitude() == null);
+ assertFalse(feSettingsDto.getOverviewMapInitialLongitude() == null);
+ }
+
+ @Test
+ public void shouldGetInitialEmailSubjectAndContent() {
+
+ FEInitialContentDto feSettingsDto = settingsService.getInitialEmailSubjectAndContent();
+
+ assertFalse(feSettingsDto.getEmailContentCompleteInit() == null);
+ assertFalse(feSettingsDto.getEmailSubjectCompleteInit() == null);
+ assertFalse(feSettingsDto.getEmailContentPublishInit() == null);
+ assertFalse(feSettingsDto.getEmailSubjectPublishInit() == null);
+ assertFalse(feSettingsDto.getEmailSubjectUpdateInit() == null);
+ assertFalse(feSettingsDto.getEmailContentUpdateInit() == null);
}
}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
index 208286f..e64c652 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
@@ -107,6 +107,9 @@
dto.setStreet("Budenweg");
dto.setDistrict("West");
dto.setCity("Waldau");
+ dto.setStreet("Dieselstr.");
+ dto.setHousenumber("54");
+ dto.setPostcode("71111");
dto.setStationId("224488-123bcd");
dto.setStationDescription("Trafo 25");
@@ -173,6 +176,9 @@
obj.setStreet("Budenweg");
obj.setDistrict("West");
obj.setCity("Waldau");
+ obj.setStreet("Dieselstr.");
+ obj.setHousenumber("54");
+ obj.setPostcode("71111");
obj.setStationId("224488-123bcd");
obj.setStationDescription("Trafo 25");
@@ -226,6 +232,114 @@
obj.setStreet("Hügelpfad");
obj.setDistrict("Süd");
obj.setCity("Schlumpfhausen");
+ obj.setStreet("Benzinstr.");
+ obj.setHousenumber("1");
+ obj.setPostcode("81111");
+
+ obj.setStationId("44444-123bcd");
+ obj.setStationDescription("Trafo 11");
+ obj.setStationCoords("101,2222");
+ obj.setLongitude(BigDecimal.valueOf(12.646280));
+ obj.setLatitude(BigDecimal.valueOf(51.115618));
+
+ obj.setRefRadius(mockRefRadius());
+
+ obj.setPublicationStatus("neu");
+ obj.setPublicationFreetext("Korrodiertes Kabel");
+ obj.setRefExpectedReason(mockRefExpectedReason());
+
+ obj.setCreateDate(new java.util.Date(Date.valueOf("2021-05-11").getTime()));
+ obj.setCreateUser("roggensackl");
+ obj.setModDate(new java.util.Date(Date.valueOf("2020-05-12").getTime()));
+ obj.setModUser("müllers");
+
+ obj.setRefStatusIntern(mockRefStatus2());
+ obj.setRefFailureClassification(mockRefFailureClassification());
+ obj.setRefBranch(mockRefBranch());
+
+ obj.setRefStatusIntern(mockRefStatusCreated());
+ obj.setStations(mockTblStationList().stream().collect(Collectors.toList()));
+ return obj;
+ }
+
+ public static TblFailureInformation mockTblFailureInformation3() {
+ TblFailureInformation obj = new TblFailureInformation();
+ obj.setId(22L);
+ obj.setUuid(UUID.randomUUID());
+ obj.setVersionNumber(4L);
+ obj.setResponsibility("Vatter Mousa");
+ obj.setVoltageLevel(Constants.VOLTAGE_LEVEL_NS);
+ obj.setPressureLevel(Constants.PRESSURE_LEVEL_MD);
+
+ SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy");
+ try {
+ java.util.Date date1 = dateformat.parse("04/12/2022");
+ java.util.Date date2 = dateformat.parse("05/12/2022");
+ java.util.Date date3 = dateformat.parse("06/12/2022");
+
+ obj.setFailureBegin(date1);
+ obj.setFailureEndPlanned(date2);
+ obj.setFailureEndResupplied(date3);
+ }
+ catch(Exception e){
+ log.warn("Fehler beim Erstellen von Daten mit DateFormat");
+ }
+
+ obj.setStreet("Budenweg");
+ obj.setDistrict("West");
+ obj.setCity("Waldau");
+ obj.setStreet("Dieselstr.");
+ obj.setHousenumber("54");
+ obj.setPostcode("71111");
+
+ obj.setStationId("224488-123bcd");
+ obj.setStationDescription("Trafo 25");
+ obj.setStationCoords("121,8855");
+ obj.setLongitude(BigDecimal.valueOf(8.646280));
+ obj.setLatitude(BigDecimal.valueOf(50.115618));
+
+ obj.setRefRadius(mockRefRadius());
+
+ obj.setPublicationStatus("veröffentlicht");
+ obj.setPublicationFreetext("Kabel aus Steckdose gerissen");
+ obj.setRefExpectedReason(mockRefExpectedReason());
+
+ obj.setCreateDate(new java.util.Date(Date.valueOf("2020-05-08").getTime()));
+ obj.setCreateUser("weizenkeimk");
+ obj.setModDate(new java.util.Date(Date.valueOf("2020-05-23").getTime()));
+ obj.setModUser("schlonzh");
+
+ obj.setRefStatusIntern(mockRefStatusCreated());
+ obj.setRefFailureClassification(mockRefFailureClassification());
+ obj.setRefBranch(mockRefBranch());
+
+ obj.setStations(mockTblStationList().stream().collect(Collectors.toList()));
+
+ return obj;
+ }
+
+ public static TblFailureInformation mockTblFailureInformationWithoutAddress() {
+ TblFailureInformation obj = new TblFailureInformation();
+ obj.setId(42L);
+ obj.setUuid(UUID.randomUUID());
+ obj.setVersionNumber(2L);
+ obj.setResponsibility("Schlumpfine");
+ obj.setVoltageLevel(Constants.VOLTAGE_LEVEL_HS);
+ obj.setPressureLevel(Constants.PRESSURE_LEVEL_MD);
+
+ SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy");
+ try {
+ java.util.Date date1 = dateformat.parse("12/08/2022");
+ java.util.Date date2 = dateformat.parse("02/09/2022");
+ java.util.Date date3 = dateformat.parse("02/09/2022");
+
+ obj.setFailureBegin(date1);
+ obj.setFailureEndPlanned(date2);
+ obj.setFailureEndResupplied(date3);
+ }
+ catch(Exception e){
+ log.warn("Fehler beim Erstellen von Daten mit DateFormat");
+ }
obj.setStationId("44444-123bcd");
obj.setStationDescription("Trafo 11");