[Git][ultreiaio/ird-observe][develop] Appariement des activités à la loupe - Closes #2660
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 805d64d7 by Tony Chemit at 2023-04-01T17:57:16+02:00 Appariement des activités à la loupe - Closes #2660 - - - - - 4 changed files: - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/ps/RootNodeBuilder.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIModelStates.java - core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/pairing/RoutePairingContext.java - core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/pairing/TripPairingContext.java Changes: ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/ps/RootNodeBuilder.java ===================================== @@ -31,6 +31,7 @@ import fr.ird.observe.client.datasource.actions.pairing.tree.node.GroupByNode; import fr.ird.observe.decoration.DecoratorService; import fr.ird.observe.dto.ProgressionModel; import fr.ird.observe.dto.ToolkitIdLabel; +import fr.ird.observe.dto.data.ActivityAware; import fr.ird.observe.dto.data.ps.logbook.ActivityReference; import fr.ird.observe.dto.data.ps.logbook.RouteReference; import fr.ird.observe.dto.data.ps.pairing.ActivityPairingResult; @@ -106,7 +107,7 @@ public class RootNodeBuilder { public RootNodeBuilder(DecoratorService decoratorService) { activityLogbookDecorator = decoratorService.getDecoratorByType(ActivityReference.class); routeLogbookDecorator = decoratorService.getDecoratorByType(RouteReference.class); - activityObservationDecorator = decoratorService.getDecoratorByType(fr.ird.observe.dto.data.ps.observation.ActivityReference.class); + activityObservationDecorator = decoratorService.getDecoratorByType(fr.ird.observe.dto.data.ps.observation.ActivityReference.class, ActivityAware.CLASSIFIER_WITH_ROUTE); itemDecorator = decoratorService.getDecoratorByType(ActivityPairingResultItem.class); rootNode = new RootNode(); } @@ -130,6 +131,7 @@ public class RootNodeBuilder { } public void addRoute(RoutePairingResult routePairingResult) { + flushRouteNode(); decorate(routePairingResult); if (!routePairingResult.getItems().isEmpty()) { routeNode = new RouteNode(routePairingResult.getRoute().toString()); ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIModelStates.java ===================================== @@ -218,7 +218,7 @@ public class ActivityUIModelStates extends GeneratedActivityUIModelStates { if (pairingContext == null || vesselActivityId == null || timeStamp == null) { activityObs = Collections.emptyList(); } else { - RoutePairingContextRequest request = pairingContext.getRequest(tripId, source().getParentReference().getId(), vesselActivityId); + RoutePairingContextRequest request = new RoutePairingContextRequest(tripId, source().getParentReference().getId(), vesselActivityId); activityObs = pairingContext.getActivityObsList(request, timeStamp); } log.info(String.format("%s Found %d related observed activities.", getPrefix(), activityObs.size())); ===================================== core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/pairing/RoutePairingContext.java ===================================== @@ -28,12 +28,12 @@ import fr.ird.observe.dto.data.ps.logbook.RouteDto; import io.ultreia.java4all.util.Dates; import org.apache.commons.lang3.time.DateUtils; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; /** * Created on 21/12/2021. @@ -43,23 +43,11 @@ import java.util.stream.Collectors; */ public abstract class RoutePairingContext implements ObserveDto { - private RoutePairingContextRequest pairingRequest; private RoutePairingContextRequest lastRequest; private TripDto trip; private RouteDto route; private List<fr.ird.observe.dto.data.ps.observation.ActivityReference> candidates; - public RoutePairingContextRequest getRequest(String tripId, String routeLogbookId, String vesselActivityId) { - if (pairingRequest == null) { - pairingRequest = new RoutePairingContextRequest(tripId, routeLogbookId, vesselActivityId); - } else { - pairingRequest.setTripId(tripId); - pairingRequest.setRouteLogbookId(routeLogbookId); - pairingRequest.setVesselActivityId(vesselActivityId); - } - return pairingRequest; - } - public List<fr.ird.observe.dto.data.ps.observation.ActivityReference> getActivityObsList(RoutePairingContextRequest request, Date date) { if (date == null) { return Collections.emptyList(); @@ -67,9 +55,7 @@ public abstract class RoutePairingContext implements ObserveDto { if (!Objects.equals(request, lastRequest)) { reloadCandidates(request); } - long minDate = Dates.getYesterday(date).getTime(); - long maxDate = DateUtils.addDays(Dates.getEndOfDay(date), 1).getTime(); - return candidates.stream().filter(e -> filterDate(e.getDate(), minDate, maxDate)).collect(Collectors.toList()); + return new ArrayList<>(candidates); } public void reloadCandidates(RoutePairingContextRequest request) { ===================================== core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/pairing/TripPairingContext.java ===================================== @@ -31,7 +31,6 @@ import fr.ird.observe.dto.data.ps.logbook.RouteReference; import fr.ird.observe.dto.referential.ReferentialLocale; import java.util.ArrayList; -import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -71,9 +70,9 @@ public class TripPairingContext implements ObserveDto { } private void computeRouteResult(String tripId, String routeLogbookId, List<ActivityPairingResult> resultBuilder) { - List<fr.ird.observe.dto.data.ps.logbook.ActivityReference> activityLogbookList = getActivityLogbookList(routeLogbookId); + List<fr.ird.observe.dto.data.ps.logbook.ActivityReference> activityLogbookList = routePairingContext.getLogbookActivityList(routeLogbookId); activityLogbookList.forEach(activityLogbook -> { - RoutePairingContextRequest pairingRequest = getRequest(tripId, routeLogbookId, activityLogbook.getVesselActivityId()); + RoutePairingContextRequest pairingRequest = new RoutePairingContextRequest(tripId, routeLogbookId, activityLogbook.getVesselActivityId()); ActivityPairingResult activityPairingResult = computeActivityLogbook(pairingRequest, activityLogbook); if (activityPairingResult != null) { // only add if there is some data @@ -83,7 +82,7 @@ public class TripPairingContext implements ObserveDto { } private ActivityPairingResult computeActivityLogbook(RoutePairingContextRequest pairingRequest, ActivityAware activityLogbook) { - List<fr.ird.observe.dto.data.ps.observation.ActivityReference> activityObsList = getActivityObsList(pairingRequest, activityLogbook.getDate()); + List<fr.ird.observe.dto.data.ps.observation.ActivityReference> activityObsList = routePairingContext.getActivityObsList(pairingRequest, activityLogbook.getDate()); List<ActivityPairingResultItem> itemBuilder = new ArrayList<>(activityObsList.size()); for (fr.ird.observe.dto.data.ps.observation.ActivityReference activityObs : activityObsList) { itemBuilder.add(new ActivityPairingResultItem(activityLogbook, activityObs)); @@ -102,20 +101,6 @@ public class TripPairingContext implements ObserveDto { return new ActivityPairingResult(reference, itemBuilder); } - public RoutePairingContextRequest getRequest(String tripId, String routeLogbookId, String vesselActivityId) { - return routePairingContext.getRequest(tripId, routeLogbookId, vesselActivityId); - } - - public List<fr.ird.observe.dto.data.ps.observation.ActivityReference> getActivityObsList(RoutePairingContextRequest request, Date date) { - return routePairingContext.getActivityObsList(request, date); - } - - - public List<fr.ird.observe.dto.data.ps.logbook.ActivityReference> getActivityLogbookList(String routeLogbookId) { - return routePairingContext.getLogbookActivityList(routeLogbookId); - } - - public TripDto loadTrip(String tripId) { TripDto result = routePairingContext.loadTrip(tripId); routePairingContext.setTrip(result); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/805d64d73d3a6c21e0dab43ea8... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/805d64d73d3a6c21e0dab43ea8... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT (@tchemit)