SI-2877 Fix bei Verdichtung von Adressen (Refactoring)
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 6ca64f8..78e3522 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
@@ -70,24 +70,16 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashSet; import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.Function; -import java.util.function.Predicate; import java.util.stream.Collectors; -import static org.eclipse.openk.gridfailureinformation.constants.Constants.FREETEXT_ADDRESS_TYPE; - @Log4j2 @Service public class FailureInformationService { @@ -588,13 +580,8 @@ resetCondensedFailureInformationAdress(condensedFailureInformation); - setCityForCondensedFailureInformation(listFailureInfos, condensedFailureInformation); - setDistrictForCondensedFailureInformation(listFailureInfos, condensedFailureInformation); - setPostcodeForCondensedFailureInformation(listFailureInfos, condensedFailureInformation); - setStreetForCondensedFailureInformation(listFailureInfos, condensedFailureInformation); - setHousenumberForCondensedFailureInformation(listFailureInfos, condensedFailureInformation); - setCondensedFailureInformationCoordinates(listFailureInfos, condensedFailureInformation); - setCondensedFailureInformationAddresstype(listFailureInfos, condensedFailureInformation); + setAddressForCondensedFailureInformation(listFailureInfos, condensedFailureInformation); + } private void resetCondensedFailureInformationAdress(TblFailureInformation condensedFailureInformation) { @@ -608,8 +595,8 @@ condensedFailureInformation.setAddressType(null); } - private void setCityForCondensedFailureInformation(List<TblFailureInformation> listFailureInfos, - TblFailureInformation condensedFailureInformation) { + private void setAddressForCondensedFailureInformation(List<TblFailureInformation> listFailureInfos, + TblFailureInformation condensedFailureInformation) { Optional<TblFailureInformation> tblInfTocheck = listFailureInfos.stream().filter(f -> (f.getCity() != null)).findFirst(); if (tblInfTocheck.isPresent()) { @@ -617,61 +604,22 @@ listFailureInfos.stream().filter(p -> tblInfTocheck.get().getCity().equals(p.getCity())).count(); if (count == listFailureInfos.size()) { condensedFailureInformation.setCity(tblInfTocheck.get().getCity()); - } - } - } - - private void setDistrictForCondensedFailureInformation(List<TblFailureInformation> listFailureInfos, - TblFailureInformation condensedFailureInformation) { - Optional<TblFailureInformation> tblInfTocheck = - listFailureInfos.stream().filter(f -> (f.getDistrict() != null)).findFirst(); - if (tblInfTocheck.isPresent()) { - long count = - listFailureInfos.stream().filter(p -> tblInfTocheck.get().getDistrict().equals(p.getDistrict())).count(); - if (count == listFailureInfos.size()) { condensedFailureInformation.setDistrict(tblInfTocheck.get().getDistrict()); - } - } - } - - private void setPostcodeForCondensedFailureInformation(List<TblFailureInformation> listFailureInfos, - TblFailureInformation condensedFailureInformation) { - Optional<TblFailureInformation> tblInfTocheck = - listFailureInfos.stream().filter(f -> (f.getPostcode() != null)).findFirst(); - if (tblInfTocheck.isPresent()) { - long count = - listFailureInfos.stream().filter(p -> tblInfTocheck.get().getPostcode().equals(p.getPostcode())).count(); - if (count == listFailureInfos.size()) { condensedFailureInformation.setPostcode(tblInfTocheck.get().getPostcode()); - } - } - } - - private void setStreetForCondensedFailureInformation(List<TblFailureInformation> listFailureInfos, - TblFailureInformation condensedFailureInformation) { - Optional<TblFailureInformation> tblInfTocheck = - listFailureInfos.stream().filter(f -> (f.getStreet() != null)).findFirst(); - if (tblInfTocheck.isPresent()) { - long count = - listFailureInfos.stream().filter(p -> tblInfTocheck.get().getStreet().equals(p.getStreet())).count(); - if (count == listFailureInfos.size()) { condensedFailureInformation.setStreet(tblInfTocheck.get().getStreet()); + condensedFailureInformation.setHousenumber(tblInfTocheck.get().getHousenumber()); + condensedFailureInformation.setLongitude(tblInfTocheck.get().getLongitude()); + condensedFailureInformation.setLatitude(tblInfTocheck.get().getLatitude()); + condensedFailureInformation.setAddressType(tblInfTocheck.get().getAddressType()); } } + else { + // There is not info in the list having at least a city + // ... so try at least to merge the coordinates + setCondensedFailureInformationCoordinates( listFailureInfos, condensedFailureInformation); + } } - private void setHousenumberForCondensedFailureInformation(List<TblFailureInformation> listFailureInfos, - TblFailureInformation condensedFailureInformation) { - Optional<TblFailureInformation> tblInfTocheck = - listFailureInfos.stream().filter(f -> (f.getHousenumber() != null)).findFirst(); - if (tblInfTocheck.isPresent()) { - long count = - listFailureInfos.stream().filter(p -> tblInfTocheck.get().getHousenumber().equals(p.getHousenumber())).count(); - if (count == listFailureInfos.size()) { - condensedFailureInformation.setHousenumber(tblInfTocheck.get().getHousenumber()); - } - } - } //set first found coordinates if there is no consense at all private void setCondensedFailureInformationCoordinates(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation) { @@ -684,14 +632,6 @@ } } - private void setCondensedFailureInformationAddresstype(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation) { - Optional<TblFailureInformation> firstFailureInformationFiltered = listFailureInfos - .stream().filter(f -> (FREETEXT_ADDRESS_TYPE.equals(f.getAddressType()))).findFirst(); - - if (firstFailureInformationFiltered.isPresent()) { - condensedFailureInformation.setAddressType(FREETEXT_ADDRESS_TYPE); - } - } private void setExpectedReason(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation){ RefExpectedReason firstExpReason = listFailureInfos.get(0).getRefExpectedReason();
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 2cb9487..d51a329 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
@@ -822,12 +822,11 @@ assertNull(savedCondensedFailureInfoDto.getDistrict()); assertNull(savedCondensedFailureInfoDto.getCity()); assertNull(savedCondensedFailureInfoDto.getPostcode()); - assertNull(savedCondensedFailureInfoDto.getCity()); assertNull(savedCondensedFailureInfoDto.getFreetextCity()); assertNull(savedCondensedFailureInfoDto.getFreetextDistrict()); assertNull(savedCondensedFailureInfoDto.getFreetextPostcode()); - assertNotNull(savedCondensedFailureInfoDto.getLatitude()); - assertNotNull(savedCondensedFailureInfoDto.getLongitude()); + assertNull(savedCondensedFailureInfoDto.getLatitude()); + assertNull(savedCondensedFailureInfoDto.getLongitude()); assertEquals(tblFailureInformation1.getFailureBegin(), savedCondensedFailureInfoDto.getFailureBegin()); assertEquals(tblFailureInformation3.getFailureEndPlanned(), savedCondensedFailureInfoDto.getFailureEndPlanned()); assertEquals(true, savedCondensedFailureInfoDto.getCondensed());