SI-1871 Stationen werden nicht mehr verdichtet
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 9ad897a..f7cd042 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
@@ -479,7 +479,7 @@ setStreet(listSubordinatedFailureInfos, condensedFailureInformation); setDistrict(listSubordinatedFailureInfos, condensedFailureInformation); setRadius(listSubordinatedFailureInfos, condensedFailureInformation); - setStations(listSubordinatedFailureInfos, condensedFailureInformation); + RefStatus refStatusNew = statusRepository .findById(GfiProcessState.NEW.getStatusValue()) @@ -491,6 +491,8 @@ condensedFailureInformation.setVersionNumber(1L); condensedFailureInformationSaved = failureInformationRepository.save(condensedFailureInformation); + storeCondensedStations(listSubordinatedFailureInfos, condensedFailureInformationSaved); + //kennzeichne die Ursprungs-FailureInfos und speichere for( TblFailureInformation tblFailureInformation: listSubordinatedFailureInfos ) { @@ -507,10 +509,26 @@ return enrichFailureInfo( failureInformationMapper.toFailureInformationDto(condensedFailureInformationSaved)); } - private void setStations(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation) { - Set<TblStation> stationsSuperSet = new HashSet<>(); - listFailureInfos.stream().forEach( fi -> stationsSuperSet.addAll(fi.getStations()) ); - condensedFailureInformation.setStations(stationsSuperSet.stream().collect(Collectors.toList())); + private void storeCondensedStations(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation) { + // get unique set of station (strings) from all subordinated failureinfos + Set<String> stationsSuperSet = new HashSet<>(); + listFailureInfos.forEach( x -> + stationsSuperSet.addAll( + failureInformationStationRepository.findByFkTblFailureInformation(x.getId()) + .stream() + .map( TblFailureInformationStation::getStationStationId ) + .collect(Collectors.toList()) + ) + ); + + // store the set for the newly created failure info + stationsSuperSet.forEach( x -> { + TblFailureInformationStation fis = new TblFailureInformationStation(); + fis.setFkTblFailureInformation(condensedFailureInformation.getId()); + fis.setStationStationId(x); + failureInformationStationRepository.save(fis); + }); + } private void setRadius(List<TblFailureInformation> listFailureInfos, TblFailureInformation condensedFailureInformation){