SI-1900 History versions sorted
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 f7cd042..aa16cf2 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
@@ -43,8 +43,6 @@ import java.awt.*; import java.math.BigDecimal; import java.math.RoundingMode; -import java.time.LocalDateTime; -import java.time.ZoneId; import java.util.List; import java.util.*; import java.util.stream.Collectors; @@ -360,38 +358,13 @@ addPolygonAddressPoints(failureInformationDto); } - addExternalStatus(failureInformationDto); + ExternalStatusCalculator.addExternalStatus( statusRepository, failureInformationDto); enrichStations(failureInformationDto); return failureInformationDto; } - public void addExternalStatus(FailureInformationDto failureInformationDto){ - Long statusInternId = statusRepository.findByUuid( - failureInformationDto.getStatusInternId()) - .orElseThrow(() -> new NotFoundException("status.not.found")) - .getId(); - String publicationStatus = failureInformationDto.getPublicationStatus(); - Date failureBegin = failureInformationDto.getFailureBegin(); - Date failureEndPlanned = failureInformationDto.getFailureEndPlanned(); - LocalDateTime ldtFailureBegin = null; - LocalDateTime ldtFailureEndPlanned = null; - - - if(failureBegin != null) { - ldtFailureBegin = LocalDateTime.ofInstant(failureBegin.toInstant(), ZoneId.systemDefault()); - } - - if(failureEndPlanned != null) { - ldtFailureEndPlanned = LocalDateTime.ofInstant(failureEndPlanned.toInstant(), ZoneId.systemDefault()); - } - - failureInformationDto.setStatusExtern( - ExternalStatusCalculator.calculate( - statusInternId, publicationStatus, ldtFailureBegin, - ldtFailureEndPlanned)); - } @Transactional public FailureInformationDto updateSubordinatedFailureInfos(UUID condensedUuid, List<UUID> subordinatedUuidList){
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationService.java index 1138179..9f2002b 100644 --- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationService.java +++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationService.java
@@ -59,10 +59,11 @@ List<FailureInformationDto> failureInfoDtoList = htblFailureInformationList .stream() .map(histFailureInformationMapper::toFailureInformationDto) + .sorted( (x, y) -> x.getVersionNumber().compareTo(y.getVersionNumber())) .collect(Collectors.toList()); for (FailureInformationDto failureInfoDto : failureInfoDtoList) { - failureInfoDto = addStationsToFailureInfoDto(failureInfoDto); + addStationsToFailureInfoDto(failureInfoDto); } return failureInfoDtoList;
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ExternalStatusCalculator.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ExternalStatusCalculator.java index 59fc252..b43403a 100644 --- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ExternalStatusCalculator.java +++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ExternalStatusCalculator.java
@@ -16,14 +16,45 @@ import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState; import org.eclipse.openk.gridfailureinformation.constants.Constants; +import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException; +import org.eclipse.openk.gridfailureinformation.repository.StatusRepository; +import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto; import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; import static org.eclipse.openk.gridfailureinformation.constants.Constants.*; public class ExternalStatusCalculator { private ExternalStatusCalculator() {} + public static void addExternalStatus(StatusRepository statusRepository, FailureInformationDto failureInformationDto){ + Long statusInternId = statusRepository.findByUuid( + failureInformationDto.getStatusInternId()) + .orElseThrow(() -> new NotFoundException("status.not.found")) + .getId(); + String publicationStatus = failureInformationDto.getPublicationStatus(); + Date failureBegin = failureInformationDto.getFailureBegin(); + Date failureEndPlanned = failureInformationDto.getFailureEndPlanned(); + LocalDateTime ldtFailureBegin = null; + LocalDateTime ldtFailureEndPlanned = null; + + + if(failureBegin != null) { + ldtFailureBegin = LocalDateTime.ofInstant(failureBegin.toInstant(), ZoneId.systemDefault()); + } + + if(failureEndPlanned != null) { + ldtFailureEndPlanned = LocalDateTime.ofInstant(failureEndPlanned.toInstant(), ZoneId.systemDefault()); + } + + failureInformationDto.setStatusExtern( + ExternalStatusCalculator.calculate( + statusInternId, publicationStatus, ldtFailureBegin, + ldtFailureEndPlanned)); + } + public static String calculate(Long statusInternId, String publicationStatus, LocalDateTime ldtFailureBegin, LocalDateTime ldtFailureEndPlanned) { LocalDateTime ltdToday = java.time.LocalDateTime.now(); String newStatusText = "";
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationServiceTest.java index e6c84c9..6a5cae4 100644 --- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationServiceTest.java +++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/HistFailureInformationServiceTest.java
@@ -17,6 +17,7 @@ import org.eclipse.openk.gridfailureinformation.config.TestConfiguration; import org.eclipse.openk.gridfailureinformation.model.HtblFailureInformation; import org.eclipse.openk.gridfailureinformation.repository.HistFailureInformationRepository; +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.StationDto; @@ -39,7 +40,7 @@ @DataJpaTest @ContextConfiguration(classes = {TestConfiguration.class}) -public class HistFailureInformationServiceTest { +class HistFailureInformationServiceTest { @Qualifier("myHistFailureInformationService") @Autowired private HistFailureInformationService histFailureInformationService; @@ -50,14 +51,16 @@ @MockBean private HistFailureInformationStationService histFailureInformationStationService; + @MockBean + private StatusRepository statusRepository; + @Test - public void shouldFindHistFailureInformationsByUuid() { + void shouldFindHistFailureInformationsByUuid() { List<HtblFailureInformation> mockHistFailureList = MockDataHelper.mockHistTblFailureInformationList(); List<StationDto> stationDtoList = MockDataHelper.mockStationDtoList(); when(histFailureInformationRepository.findByUuid(any(UUID.class))).thenReturn(mockHistFailureList); when(histFailureInformationStationService.findHistStationsByFailureInfoAndVersionNumber(any(UUID.class), any(Long.class))).thenReturn(stationDtoList); - List<FailureInformationDto> retList = histFailureInformationService.getFailureInformationVersionsByUuid(UUID.randomUUID()); assertEquals(retList.size(), mockHistFailureList.size()); @@ -70,7 +73,7 @@ @Test - public void shouldFindASingleHistFailureInformationVersion() { + void shouldFindASingleHistFailureInformationVersion() { HtblFailureInformation mockHistFailure = MockDataHelper.mockHistTblFailureInformation(); List<StationDto> stationDtoList = MockDataHelper.mockStationDtoList();