Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
805d64d7
by Tony Chemit at 2023-04-01T17:57:16+02:00
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:
| ... | ... | @@ -31,6 +31,7 @@ import fr.ird.observe.client.datasource.actions.pairing.tree.node.GroupByNode; |
| 31 | 31 | import fr.ird.observe.decoration.DecoratorService;
|
| 32 | 32 | import fr.ird.observe.dto.ProgressionModel;
|
| 33 | 33 | import fr.ird.observe.dto.ToolkitIdLabel;
|
| 34 | +import fr.ird.observe.dto.data.ActivityAware;
|
|
| 34 | 35 | import fr.ird.observe.dto.data.ps.logbook.ActivityReference;
|
| 35 | 36 | import fr.ird.observe.dto.data.ps.logbook.RouteReference;
|
| 36 | 37 | import fr.ird.observe.dto.data.ps.pairing.ActivityPairingResult;
|
| ... | ... | @@ -106,7 +107,7 @@ public class RootNodeBuilder { |
| 106 | 107 | public RootNodeBuilder(DecoratorService decoratorService) {
|
| 107 | 108 | activityLogbookDecorator = decoratorService.getDecoratorByType(ActivityReference.class);
|
| 108 | 109 | routeLogbookDecorator = decoratorService.getDecoratorByType(RouteReference.class);
|
| 109 | - activityObservationDecorator = decoratorService.getDecoratorByType(fr.ird.observe.dto.data.ps.observation.ActivityReference.class);
|
|
| 110 | + activityObservationDecorator = decoratorService.getDecoratorByType(fr.ird.observe.dto.data.ps.observation.ActivityReference.class, ActivityAware.CLASSIFIER_WITH_ROUTE);
|
|
| 110 | 111 | itemDecorator = decoratorService.getDecoratorByType(ActivityPairingResultItem.class);
|
| 111 | 112 | rootNode = new RootNode();
|
| 112 | 113 | }
|
| ... | ... | @@ -130,6 +131,7 @@ public class RootNodeBuilder { |
| 130 | 131 | }
|
| 131 | 132 | |
| 132 | 133 | public void addRoute(RoutePairingResult routePairingResult) {
|
| 134 | + flushRouteNode();
|
|
| 133 | 135 | decorate(routePairingResult);
|
| 134 | 136 | if (!routePairingResult.getItems().isEmpty()) {
|
| 135 | 137 | routeNode = new RouteNode(routePairingResult.getRoute().toString());
|
| ... | ... | @@ -218,7 +218,7 @@ public class ActivityUIModelStates extends GeneratedActivityUIModelStates { |
| 218 | 218 | if (pairingContext == null || vesselActivityId == null || timeStamp == null) {
|
| 219 | 219 | activityObs = Collections.emptyList();
|
| 220 | 220 | } else {
|
| 221 | - RoutePairingContextRequest request = pairingContext.getRequest(tripId, source().getParentReference().getId(), vesselActivityId);
|
|
| 221 | + RoutePairingContextRequest request = new RoutePairingContextRequest(tripId, source().getParentReference().getId(), vesselActivityId);
|
|
| 222 | 222 | activityObs = pairingContext.getActivityObsList(request, timeStamp);
|
| 223 | 223 | }
|
| 224 | 224 | log.info(String.format("%s Found %d related observed activities.", getPrefix(), activityObs.size()));
|
| ... | ... | @@ -28,12 +28,12 @@ import fr.ird.observe.dto.data.ps.logbook.RouteDto; |
| 28 | 28 | import io.ultreia.java4all.util.Dates;
|
| 29 | 29 | import org.apache.commons.lang3.time.DateUtils;
|
| 30 | 30 | |
| 31 | +import java.util.ArrayList;
|
|
| 31 | 32 | import java.util.Collections;
|
| 32 | 33 | import java.util.Date;
|
| 33 | 34 | import java.util.LinkedList;
|
| 34 | 35 | import java.util.List;
|
| 35 | 36 | import java.util.Objects;
|
| 36 | -import java.util.stream.Collectors;
|
|
| 37 | 37 | |
| 38 | 38 | /**
|
| 39 | 39 | * Created on 21/12/2021.
|
| ... | ... | @@ -43,23 +43,11 @@ import java.util.stream.Collectors; |
| 43 | 43 | */
|
| 44 | 44 | public abstract class RoutePairingContext implements ObserveDto {
|
| 45 | 45 | |
| 46 | - private RoutePairingContextRequest pairingRequest;
|
|
| 47 | 46 | private RoutePairingContextRequest lastRequest;
|
| 48 | 47 | private TripDto trip;
|
| 49 | 48 | private RouteDto route;
|
| 50 | 49 | private List<fr.ird.observe.dto.data.ps.observation.ActivityReference> candidates;
|
| 51 | 50 | |
| 52 | - public RoutePairingContextRequest getRequest(String tripId, String routeLogbookId, String vesselActivityId) {
|
|
| 53 | - if (pairingRequest == null) {
|
|
| 54 | - pairingRequest = new RoutePairingContextRequest(tripId, routeLogbookId, vesselActivityId);
|
|
| 55 | - } else {
|
|
| 56 | - pairingRequest.setTripId(tripId);
|
|
| 57 | - pairingRequest.setRouteLogbookId(routeLogbookId);
|
|
| 58 | - pairingRequest.setVesselActivityId(vesselActivityId);
|
|
| 59 | - }
|
|
| 60 | - return pairingRequest;
|
|
| 61 | - }
|
|
| 62 | - |
|
| 63 | 51 | public List<fr.ird.observe.dto.data.ps.observation.ActivityReference> getActivityObsList(RoutePairingContextRequest request, Date date) {
|
| 64 | 52 | if (date == null) {
|
| 65 | 53 | return Collections.emptyList();
|
| ... | ... | @@ -67,9 +55,7 @@ public abstract class RoutePairingContext implements ObserveDto { |
| 67 | 55 | if (!Objects.equals(request, lastRequest)) {
|
| 68 | 56 | reloadCandidates(request);
|
| 69 | 57 | }
|
| 70 | - long minDate = Dates.getYesterday(date).getTime();
|
|
| 71 | - long maxDate = DateUtils.addDays(Dates.getEndOfDay(date), 1).getTime();
|
|
| 72 | - return candidates.stream().filter(e -> filterDate(e.getDate(), minDate, maxDate)).collect(Collectors.toList());
|
|
| 58 | + return new ArrayList<>(candidates);
|
|
| 73 | 59 | }
|
| 74 | 60 | |
| 75 | 61 | public void reloadCandidates(RoutePairingContextRequest request) {
|
| ... | ... | @@ -31,7 +31,6 @@ import fr.ird.observe.dto.data.ps.logbook.RouteReference; |
| 31 | 31 | import fr.ird.observe.dto.referential.ReferentialLocale;
|
| 32 | 32 | |
| 33 | 33 | import java.util.ArrayList;
|
| 34 | -import java.util.Date;
|
|
| 35 | 34 | import java.util.LinkedList;
|
| 36 | 35 | import java.util.List;
|
| 37 | 36 | |
| ... | ... | @@ -71,9 +70,9 @@ public class TripPairingContext implements ObserveDto { |
| 71 | 70 | }
|
| 72 | 71 | |
| 73 | 72 | private void computeRouteResult(String tripId, String routeLogbookId, List<ActivityPairingResult> resultBuilder) {
|
| 74 | - List<fr.ird.observe.dto.data.ps.logbook.ActivityReference> activityLogbookList = getActivityLogbookList(routeLogbookId);
|
|
| 73 | + List<fr.ird.observe.dto.data.ps.logbook.ActivityReference> activityLogbookList = routePairingContext.getLogbookActivityList(routeLogbookId);
|
|
| 75 | 74 | activityLogbookList.forEach(activityLogbook -> {
|
| 76 | - RoutePairingContextRequest pairingRequest = getRequest(tripId, routeLogbookId, activityLogbook.getVesselActivityId());
|
|
| 75 | + RoutePairingContextRequest pairingRequest = new RoutePairingContextRequest(tripId, routeLogbookId, activityLogbook.getVesselActivityId());
|
|
| 77 | 76 | ActivityPairingResult activityPairingResult = computeActivityLogbook(pairingRequest, activityLogbook);
|
| 78 | 77 | if (activityPairingResult != null) {
|
| 79 | 78 | // only add if there is some data
|
| ... | ... | @@ -83,7 +82,7 @@ public class TripPairingContext implements ObserveDto { |
| 83 | 82 | }
|
| 84 | 83 | |
| 85 | 84 | private ActivityPairingResult computeActivityLogbook(RoutePairingContextRequest pairingRequest, ActivityAware activityLogbook) {
|
| 86 | - List<fr.ird.observe.dto.data.ps.observation.ActivityReference> activityObsList = getActivityObsList(pairingRequest, activityLogbook.getDate());
|
|
| 85 | + List<fr.ird.observe.dto.data.ps.observation.ActivityReference> activityObsList = routePairingContext.getActivityObsList(pairingRequest, activityLogbook.getDate());
|
|
| 87 | 86 | List<ActivityPairingResultItem> itemBuilder = new ArrayList<>(activityObsList.size());
|
| 88 | 87 | for (fr.ird.observe.dto.data.ps.observation.ActivityReference activityObs : activityObsList) {
|
| 89 | 88 | itemBuilder.add(new ActivityPairingResultItem(activityLogbook, activityObs));
|
| ... | ... | @@ -102,20 +101,6 @@ public class TripPairingContext implements ObserveDto { |
| 102 | 101 | return new ActivityPairingResult(reference, itemBuilder);
|
| 103 | 102 | }
|
| 104 | 103 | |
| 105 | - public RoutePairingContextRequest getRequest(String tripId, String routeLogbookId, String vesselActivityId) {
|
|
| 106 | - return routePairingContext.getRequest(tripId, routeLogbookId, vesselActivityId);
|
|
| 107 | - }
|
|
| 108 | - |
|
| 109 | - public List<fr.ird.observe.dto.data.ps.observation.ActivityReference> getActivityObsList(RoutePairingContextRequest request, Date date) {
|
|
| 110 | - return routePairingContext.getActivityObsList(request, date);
|
|
| 111 | - }
|
|
| 112 | - |
|
| 113 | - |
|
| 114 | - public List<fr.ird.observe.dto.data.ps.logbook.ActivityReference> getActivityLogbookList(String routeLogbookId) {
|
|
| 115 | - return routePairingContext.getLogbookActivityList(routeLogbookId);
|
|
| 116 | - }
|
|
| 117 | - |
|
| 118 | - |
|
| 119 | 104 | public TripDto loadTrip(String tripId) {
|
| 120 | 105 | TripDto result = routePairingContext.loadTrip(tripId);
|
| 121 | 106 | routePairingContext.setTrip(result);
|