Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
f238bf01
by Tony Chemit at 2024-09-02T11:41:44+02:00
-
c4d28d74
by Tony Chemit at 2024-09-02T12:03:44+02:00
-
4d45c7fb
by Tony Chemit at 2024-09-02T12:03:44+02:00
-
77540b5f
by Tony Chemit at 2024-09-02T12:04:14+02:00
17 changed files:
- client/configuration/src/main/config/Client.ini
- client/configuration/src/main/i18n/getters/config.getter
- client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateRequest.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/SampleActivityConsolidateActions.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/SampleActivityConsolidateContext.java
- core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/logbook/SampleActivityConsolidateEngine.java
- core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/data/ps/ConsolidateDataService.properties
Changes:
| ... | ... | @@ -476,6 +476,12 @@ key = instance.consolidation.failIfLengthLengthParameterNotFound |
| 476 | 476 | type = Boolean
|
| 477 | 477 | defaultValue = false
|
| 478 | 478 | |
| 479 | +[option consolidationSpeciesListForLogbookSampleActivityWeightedWeight]
|
|
| 480 | +description = observe.config.consolidation.speciesListForLogbookSampleActivityWeightedWeight
|
|
| 481 | +key = instance.consolidation.speciesListForLogbookSampleActivityWeightedWeight
|
|
| 482 | +type = String[]
|
|
| 483 | +defaultValue = fr.ird.referential.common.Species#1239832685474#0.8943253454598569,fr.ird.referential.common.Species#1239832685474#0.975344121171992,fr.ird.referential.common.Species#1239832685475#0.13349466123905152,fr.ird.referential.common.Species#1239832685476#0.5618871286604711,fr.ird.referential.common.Species#1239832685477#0.8024257002747615,fr.ird.referential.common.Species#1239832685477#0.3846921632590058,fr.ird.referential.common.Species#1441287921299#0.016754076421811148,fr.ird.referential.common.Species#1433499265113#0.891799515346065,fr.ird.referential.common.Species#1239832685477#0.2673009297087321,fr.ird.referential.common.Species#1239832685478#0.7676744877900202,fr.ird.referential.common.Species#1239832685477#0.5989181185528589,fr.ird.referential.common.Species#1239832685476#0.36339915670317835
|
|
| 484 | + |
|
| 479 | 485 | [option sizeMeasureTypeSeineObservationTargetSampleId]
|
| 480 | 486 | description = observe.config.sizeMeasureType.seine.observation.targetSample
|
| 481 | 487 | key = referential.sizeMeasureType.seine.observation.targetSample
|
| ... | ... | @@ -22,6 +22,7 @@ observe.config.client.logFiles.timeout.description |
| 22 | 22 | observe.config.client.temporaryFiles.timeout.description
|
| 23 | 23 | observe.config.consolidation.failIfLengthLengthParameterNotFound
|
| 24 | 24 | observe.config.consolidation.failIfLengthWeightParameterNotFound
|
| 25 | +observe.config.consolidation.speciesListForLogbookSampleActivityWeightedWeight
|
|
| 25 | 26 | observe.config.coordinate.format
|
| 26 | 27 | observe.config.db.locale
|
| 27 | 28 | observe.config.dcpPresetsDirectory.description
|
| ... | ... | @@ -251,7 +251,7 @@ public class ClientConfigUI extends JXTitledPanel implements WithClientUIContext |
| 251 | 251 | // helper.setCloseAction(((DataSourceEditor)currentBody.get()).getContentUIManager()::restartEdit);
|
| 252 | 252 | // }
|
| 253 | 253 | |
| 254 | - addApplicationOptions(helper);
|
|
| 254 | + addApplicationOptions(helper, dataSource);
|
|
| 255 | 255 | addUiOptions(helper);
|
| 256 | 256 | addNavigationOptions(helper);
|
| 257 | 257 | addMapOptions(helper);
|
| ... | ... | @@ -261,7 +261,7 @@ public class ClientConfigUI extends JXTitledPanel implements WithClientUIContext |
| 261 | 261 | return helper;
|
| 262 | 262 | }
|
| 263 | 263 | |
| 264 | - private void addApplicationOptions(ObserveConfigUIBuilder helper) {
|
|
| 264 | + private void addApplicationOptions(ObserveConfigUIBuilder helper, ObserveSwingDataSource dataSource) {
|
|
| 265 | 265 | |
| 266 | 266 | helper.addCategory(n("observe.config.category.application"),
|
| 267 | 267 | n("observe.config.category.application.description"),
|
| ... | ... | @@ -273,6 +273,9 @@ public class ClientConfigUI extends JXTitledPanel implements WithClientUIContext |
| 273 | 273 | helper.addOption(ClientConfigOption.VALIDATION_USE_DISABLED_REFERENTIAL);
|
| 274 | 274 | helper.addOption(ClientConfigOption.CONSOLIDATION_FAIL_IF_LENGTH_WEIGHT_PARAMETER_NOT_FOUND);
|
| 275 | 275 | helper.addOption(ClientConfigOption.CONSOLIDATION_FAIL_IF_LENGTH_LENGTH_PARAMETER_NOT_FOUND);
|
| 276 | + if (dataSource != null && dataSource.isOpen()) {
|
|
| 277 | + helper.addOption(ClientConfigOption.CONSOLIDATION_SPECIES_LIST_FOR_LOGBOOK_SAMPLE_ACTIVITY_WEIGHTED_WEIGHT);
|
|
| 278 | + }
|
|
| 276 | 279 | |
| 277 | 280 | }
|
| 278 | 281 |
| ... | ... | @@ -60,6 +60,14 @@ public void destroy() { |
| 60 | 60 | <JCheckBox id='consolidationFailIfLengthLengthParameterNotFound' styleClass="skipI18n"/>
|
| 61 | 61 | </cell>
|
| 62 | 62 | </row>
|
| 63 | + <row>
|
|
| 64 | + <cell anchor="west">
|
|
| 65 | + <JLabel id='consolidationSpeciesListForLogbookSampleActivityWeightedWeightLabel' styleClass="skipI18n"/>
|
|
| 66 | + </cell>
|
|
| 67 | + <cell weightx='1' fill="horizontal">
|
|
| 68 | + <JLabel id='consolidationSpeciesListForLogbookSampleActivityWeightedWeight' styleClass="skipI18n"/>
|
|
| 69 | + </cell>
|
|
| 70 | + </row>
|
|
| 63 | 71 | </Table>
|
| 64 | 72 | <!--Table id='consolidationReportConfig' fill='both' constraints='BorderLayout.CENTER'>
|
| 65 | 73 | <row>
|
| ... | ... | @@ -30,6 +30,7 @@ import org.apache.logging.log4j.LogManager; |
| 30 | 30 | import org.apache.logging.log4j.Logger;
|
| 31 | 31 | import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
|
| 32 | 32 | |
| 33 | +import java.util.List;
|
|
| 33 | 34 | import java.util.Set;
|
| 34 | 35 | import java.util.TreeSet;
|
| 35 | 36 | |
| ... | ... | @@ -42,19 +43,18 @@ import java.util.TreeSet; |
| 42 | 43 | public class ConsolidateModel extends AdminActionModel {
|
| 43 | 44 | |
| 44 | 45 | private static final Logger log = LogManager.getLogger(ConsolidateModel.class);
|
| 45 | - /**
|
|
| 46 | - * Data source to use for operation.
|
|
| 47 | - */
|
|
| 48 | - private ObserveSwingDataSource source;
|
|
| 49 | 46 | /**
|
| 50 | 47 | * To track trip that has already been consolidated (they won't be again processed).
|
| 51 | 48 | */
|
| 52 | 49 | private final Set<String> alreadyDoneTripIds;
|
| 53 | - |
|
| 50 | + /**
|
|
| 51 | + * Data source to use for operation.
|
|
| 52 | + */
|
|
| 53 | + private ObserveSwingDataSource source;
|
|
| 54 | 54 | private boolean consolidationFailIfLengthWeightParameterNotFound;
|
| 55 | 55 | private boolean consolidationFailIfLengthLengthParameterNotFound;
|
| 56 | + private List<String> consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
|
|
| 56 | 57 | private boolean skipForReport;
|
| 57 | - |
|
| 58 | 58 | public ConsolidateModel() {
|
| 59 | 59 | super(AdminStep.CONSOLIDATE);
|
| 60 | 60 | this.alreadyDoneTripIds = new TreeSet<>();
|
| ... | ... | @@ -88,6 +88,7 @@ public class ConsolidateModel extends AdminActionModel { |
| 88 | 88 | |
| 89 | 89 | setConsolidationFailIfLengthWeightParameterNotFound(getClientConfig().isConsolidationFailIfLengthWeightParameterNotFound());
|
| 90 | 90 | setConsolidationFailIfLengthLengthParameterNotFound(getClientConfig().isConsolidationFailIfLengthLengthParameterNotFound());
|
| 91 | + setConsolidationSpeciesListForLogbookSampleActivityWeightedWeight(getClientConfig().getConsolidationSpeciesListForLogbookSampleActivityWeightedWeightList());
|
|
| 91 | 92 | }
|
| 92 | 93 | |
| 93 | 94 | @Override
|
| ... | ... | @@ -123,6 +124,16 @@ public class ConsolidateModel extends AdminActionModel { |
| 123 | 124 | firePropertyChange("consolidationFailIfLengthLengthParameterNotFound", oldValue, consolidationFailIfLengthLengthParameterNotFound);
|
| 124 | 125 | }
|
| 125 | 126 | |
| 127 | + public List<String> getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight() {
|
|
| 128 | + return consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
|
|
| 129 | + }
|
|
| 130 | + |
|
| 131 | + public void setConsolidationSpeciesListForLogbookSampleActivityWeightedWeight(List<String> consolidationSpeciesListForLogbookSampleActivityWeightedWeight) {
|
|
| 132 | + List<String> oldValue = this.consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
|
|
| 133 | + this.consolidationSpeciesListForLogbookSampleActivityWeightedWeight = consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
|
|
| 134 | + firePropertyChange("consolidationSpeciesListForLogbookSampleActivityWeightedWeight", oldValue, consolidationSpeciesListForLogbookSampleActivityWeightedWeight);
|
|
| 135 | + }
|
|
| 136 | + |
|
| 126 | 137 | public boolean isSkipForReport() {
|
| 127 | 138 | return skipForReport;
|
| 128 | 139 | }
|
| ... | ... | @@ -49,6 +49,7 @@ public class ConsolidateUIHandler extends AdminTabUIHandler<ConsolidateUI> imple |
| 49 | 49 | ConsolidateConfigUI extraConfig = new ConsolidateConfigUI(UIHelper.initialContext(configUI, this));
|
| 50 | 50 | SelectConsolidationConfigFlag.init(extraConfig, extraConfig.getConsolidationFailIfLengthWeightParameterNotFound(), new SelectConsolidationConfigFlag("consolidationFailIfLengthWeightParameterNotFound", ConsolidateModel::isConsolidationFailIfLengthWeightParameterNotFound, ConsolidateModel::setConsolidationFailIfLengthWeightParameterNotFound, 5));
|
| 51 | 51 | SelectConsolidationConfigFlag.init(extraConfig, extraConfig.getConsolidationFailIfLengthLengthParameterNotFound(), new SelectConsolidationConfigFlag("consolidationFailIfLengthLengthParameterNotFound", ConsolidateModel::isConsolidationFailIfLengthLengthParameterNotFound, ConsolidateModel::setConsolidationFailIfLengthLengthParameterNotFound, 6));
|
| 52 | + extraConfig.getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight().setText("<html><body><b>TODO</b></body></html>");
|
|
| 52 | 53 | configUI.getExtraConfig().add(extraConfig);
|
| 53 | 54 | }
|
| 54 | 55 | } |
| ... | ... | @@ -168,6 +168,7 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> { |
| 168 | 168 | request.setTripId(tripId);
|
| 169 | 169 | request.setFailIfLengthWeightParameterNotFound(stepModel.isConsolidationFailIfLengthWeightParameterNotFound());
|
| 170 | 170 | request.setFailIfLengthLengthParameterNotFound(stepModel.isConsolidationFailIfLengthLengthParameterNotFound());
|
| 171 | + request.setSpeciesListForLogbookSampleActivityWeightedWeight(Set.copyOf(stepModel.getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight()));
|
|
| 171 | 172 | |
| 172 | 173 | TripConsolidateResult result = consolidateDataService.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
|
| 173 | 174 | if (result != null) {
|
| ... | ... | @@ -39,6 +39,7 @@ observe.config.client.logFiles.timeout.description=Log files delete (in hours) |
| 39 | 39 | observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours)
|
| 40 | 40 | observe.config.consolidation.failIfLengthLengthParameterNotFound=In consolidate action, raise an error if a lengthLengthParameter is not found, otherwise add an warning in action
|
| 41 | 41 | observe.config.consolidation.failIfLengthWeightParameterNotFound=In consolidate action, raise an error if a lengthWeightParameter is not found, otherwise add an warning in action
|
| 42 | +observe.config.consolidation.speciesListForLogbookSampleActivityWeightedWeight=Species list to use in consolidation of field weighted weight (Seine / Logbook SampleActivity)
|
|
| 42 | 43 | observe.config.coordinate.format=Position format (DMD, DD, DMS)
|
| 43 | 44 | observe.config.db.locale=Language of data source (fr_FR, en_GB or es_ES)
|
| 44 | 45 | observe.config.dcpPresetsDirectory.description=Dcp presets directory
|
| ... | ... | @@ -39,6 +39,7 @@ observe.config.client.logFiles.timeout.description=Log files delete (in hours) \ |
| 39 | 39 | observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours) \#TODO
|
| 40 | 40 | observe.config.consolidation.failIfLengthLengthParameterNotFound=In consolidate action, raise an error if a lengthLengthParameter is not found, otherwise add an warning in action \#TODO
|
| 41 | 41 | observe.config.consolidation.failIfLengthWeightParameterNotFound=In consolidate action, raise an error if a lengthWeightParameter is not found, otherwise add an warning in action \#TODO
|
| 42 | +observe.config.consolidation.speciesListForLogbookSampleActivityWeightedWeight=Species list to use in consolidation of field weighted weight (Seine / Logbook SampleActivity) \#TODO
|
|
| 42 | 43 | observe.config.coordinate.format=Formato de posición (DMD, DD, DMS)
|
| 43 | 44 | observe.config.db.locale=Idioma del referencial (fr_FR, en_GB o es_ES)
|
| 44 | 45 | observe.config.dcpPresetsDirectory.description=Dcp presets directory \#TODO
|
| ... | ... | @@ -39,6 +39,7 @@ observe.config.client.logFiles.timeout.description=Nettoyage des fichiers de log |
| 39 | 39 | observe.config.client.temporaryFiles.timeout.description=Nettoyage des fichiers temporaires (en heures)
|
| 40 | 40 | observe.config.consolidation.failIfLengthLengthParameterNotFound=Dans l'action de consolidation, déclencher une erreur si une relation taille-taille n'est pas trouvée, sinon consigner cela en avertissement de l'action
|
| 41 | 41 | observe.config.consolidation.failIfLengthWeightParameterNotFound=Dans l'action de consolidation, déclencher une erreur si une relation taille-poids n'est pas trouvée, sinon consigner cela en avertissement de l'action
|
| 42 | +observe.config.consolidation.speciesListForLogbookSampleActivityWeightedWeight=Liste des espèces à utiliser dans l'action de consolidation du champs Poids pondéré des échantillons calée (Senne / Livre de bord)
|
|
| 42 | 43 | observe.config.coordinate.format=Format des positions (DMD, DD, DMS)
|
| 43 | 44 | observe.config.db.locale=La langue du référentiel (fr_FR, en_GB ou es_ES)
|
| 44 | 45 | observe.config.dcpPresetsDirectory.description=Répertoire des pré-configurations de DCP
|
| ... | ... | @@ -25,6 +25,8 @@ package fr.ird.observe.consolidation.data.ps.common; |
| 25 | 25 | |
| 26 | 26 | import io.ultreia.java4all.util.json.JsonAware;
|
| 27 | 27 | |
| 28 | +import java.util.Set;
|
|
| 29 | + |
|
| 28 | 30 | /**
|
| 29 | 31 | * Request to consolidate a trip.
|
| 30 | 32 | * <p>
|
| ... | ... | @@ -47,6 +49,8 @@ public class TripConsolidateRequest implements JsonAware { |
| 47 | 49 | */
|
| 48 | 50 | private boolean failIfLengthLengthParameterNotFound;
|
| 49 | 51 | |
| 52 | + private Set<String> speciesListForLogbookSampleActivityWeightedWeight;
|
|
| 53 | + |
|
| 50 | 54 | public boolean isFailIfLengthWeightParameterNotFound() {
|
| 51 | 55 | return failIfLengthWeightParameterNotFound;
|
| 52 | 56 | }
|
| ... | ... | @@ -70,4 +74,12 @@ public class TripConsolidateRequest implements JsonAware { |
| 70 | 74 | public void setFailIfLengthLengthParameterNotFound(boolean failIfLengthLengthParameterNotFound) {
|
| 71 | 75 | this.failIfLengthLengthParameterNotFound = failIfLengthLengthParameterNotFound;
|
| 72 | 76 | }
|
| 77 | + |
|
| 78 | + public Set<String> getSpeciesListForLogbookSampleActivityWeightedWeight() {
|
|
| 79 | + return speciesListForLogbookSampleActivityWeightedWeight;
|
|
| 80 | + }
|
|
| 81 | + |
|
| 82 | + public void setSpeciesListForLogbookSampleActivityWeightedWeight(Set<String> speciesListForLogbookSampleActivityWeightedWeight) {
|
|
| 83 | + this.speciesListForLogbookSampleActivityWeightedWeight = speciesListForLogbookSampleActivityWeightedWeight;
|
|
| 84 | + }
|
|
| 73 | 85 | } |
| ... | ... | @@ -88,7 +88,7 @@ public class TripConsolidateEngine { |
| 88 | 88 | |
| 89 | 89 | Trip trip = Trip.loadEntity(context, tripId);
|
| 90 | 90 | |
| 91 | - Set<ToolkitIdModifications> logbookSampleActivityResults = consolidateLogbookSampleActivities(trip);
|
|
| 91 | + Set<ToolkitIdModifications> logbookSampleActivityResults = consolidateLogbookSampleActivities(trip, request.getSpeciesListForLogbookSampleActivityWeightedWeight());
|
|
| 92 | 92 | Set<ToolkitIdModifications> localmarketBatchResults = consolidateLocalmarketBatches(trip, failIfLengthWeightParameterNotFound);
|
| 93 | 93 | |
| 94 | 94 | Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> observationActivityConsolidateResults = consolidateObservationActivities(trip, failIfLengthWeightParameterNotFound, failIfLengthLengthParameterNotFound);
|
| ... | ... | @@ -133,12 +133,12 @@ public class TripConsolidateEngine { |
| 133 | 133 | }
|
| 134 | 134 | }
|
| 135 | 135 | |
| 136 | - private Set<ToolkitIdModifications> consolidateLogbookSampleActivities(Trip trip) {
|
|
| 136 | + private Set<ToolkitIdModifications> consolidateLogbookSampleActivities(Trip trip, Set<String> speciesListForLogbookSampleActivityWeightedWeight) {
|
|
| 137 | 137 | Set<ToolkitIdModifications> result = new LinkedHashSet<>();
|
| 138 | 138 | if (trip.isWellEmpty() || trip.isSampleEmpty()) {
|
| 139 | 139 | return result;
|
| 140 | 140 | }
|
| 141 | - logbookSampleActivityConsolidateEngine.consolidateTrip(trip, result);
|
|
| 141 | + logbookSampleActivityConsolidateEngine.consolidateTrip(trip,speciesListForLogbookSampleActivityWeightedWeight, result);
|
|
| 142 | 142 | return result;
|
| 143 | 143 | }
|
| 144 | 144 |
| ... | ... | @@ -43,24 +43,6 @@ public enum SampleActivityConsolidateActions implements AtomicConsolidateAction< |
| 43 | 43 | */
|
| 44 | 44 | ComputeWeightedWeight() {
|
| 45 | 45 | |
| 46 | - /**
|
|
| 47 | - * Filter on these species to compute any weight on SampleActivitySpecies
|
|
| 48 | - */
|
|
| 49 | - public final Set<String> SPECIES_IDS = Set.of(
|
|
| 50 | - "fr.ird.referential.common.Species#1239832685474#0.8943253454598569", // YFT
|
|
| 51 | - "fr.ird.referential.common.Species#1239832685474#0.975344121171992", // SKJ
|
|
| 52 | - "fr.ird.referential.common.Species#1239832685475#0.13349466123905152", // BET
|
|
| 53 | - "fr.ird.referential.common.Species#1239832685476#0.5618871286604711", // ALB
|
|
| 54 | - "fr.ird.referential.common.Species#1239832685477#0.8024257002747615", // LTA
|
|
| 55 | - "fr.ird.referential.common.Species#1239832685477#0.3846921632590058", // FRI
|
|
| 56 | - "fr.ird.referential.common.Species#1441287921299#0.016754076421811148", // TUN
|
|
| 57 | - "fr.ird.referential.common.Species#1433499265113#0.891799515346065", // TUS
|
|
| 58 | - "fr.ird.referential.common.Species#1239832685477#0.2673009297087321", // KAW
|
|
| 59 | - "fr.ird.referential.common.Species#1239832685478#0.7676744877900202", // LOT
|
|
| 60 | - "fr.ird.referential.common.Species#1239832685477#0.5989181185528589", // FRZ
|
|
| 61 | - "fr.ird.referential.common.Species#1239832685476#0.36339915670317835" // BLT
|
|
| 62 | - );
|
|
| 63 | - |
|
| 64 | 46 | @Override
|
| 65 | 47 | public List<String> fieldNames() {
|
| 66 | 48 | return List.of(SampleActivity.PROPERTY_WEIGHTED_WEIGHT, SampleActivity.PROPERTY_WEIGHTED_WEIGHT_COMPUTED);
|
| ... | ... | @@ -74,13 +56,13 @@ public enum SampleActivityConsolidateActions implements AtomicConsolidateAction< |
| 74 | 56 | @Override
|
| 75 | 57 | public void accept(SampleActivityConsolidateContext context, SampleActivity datum) {
|
| 76 | 58 | String wellId = context.getSampleWell();
|
| 77 | - |
|
| 59 | + Set<String> speciesList = context.getSpeciesListForLogbookSampleActivityWeightedWeight();
|
|
| 78 | 60 | Activity activity = datum.getActivity();
|
| 79 | 61 | |
| 80 | 62 | // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2053
|
| 81 | 63 | |
| 82 | 64 | // Get total weight of the set which is this well
|
| 83 | - double w1 = context.sumOnTripWell(w -> w.getTotalWeight(activity, SPECIES_IDS, Set.of(wellId)));
|
|
| 65 | + double w1 = context.sumOnTripWell(w -> w.getTotalWeight(activity, speciesList, Set.of(wellId)));
|
|
| 84 | 66 | if (w1 == 0) {
|
| 85 | 67 | // limit case if the well was not found in trip well plan
|
| 86 | 68 | log.warn("Well {} not found for activity {} in trip well plan.", wellId, activity.getTopiaId());
|
| ... | ... | @@ -89,9 +71,9 @@ public enum SampleActivityConsolidateActions implements AtomicConsolidateAction< |
| 89 | 71 | return;
|
| 90 | 72 | }
|
| 91 | 73 | // Get total weight of the set which are in well that has been sampled
|
| 92 | - double w2 = context.sumOnTripWell(w -> w.getTotalWeight(activity, SPECIES_IDS, context.getSampledWellIds()));
|
|
| 74 | + double w2 = context.sumOnTripWell(w -> w.getTotalWeight(activity, speciesList, context.getSampledWellIds()));
|
|
| 93 | 75 | // Get total weight of the set in any well
|
| 94 | - double wT = context.sumOnTripWell(w -> w.getTotalWeight(activity, SPECIES_IDS));
|
|
| 76 | + double wT = context.sumOnTripWell(w -> w.getTotalWeight(activity, speciesList));
|
|
| 95 | 77 | // the weighted weight is the formula: weightedWeight = (w1/w2)*wT
|
| 96 | 78 | float weightedWeight = (float) ((w1 / w2) * wT);
|
| 97 | 79 | Float oldWeightedWeight = datum.getWeightedWeight();
|
| ... | ... | @@ -47,17 +47,19 @@ public class SampleActivityConsolidateContext implements ConsolidateContext<Samp |
| 47 | 47 | private final JavaBeanMonitor monitor;
|
| 48 | 48 | private final Decorator decorator;
|
| 49 | 49 | private final Set<Well> tripWell;
|
| 50 | + private final Set<String> speciesListForLogbookSampleActivityWeightedWeight;
|
|
| 50 | 51 | private final Set<ToolkitIdModifications> resultBuilder;
|
| 51 | 52 | private final java.util.Set<String> warnings = new LinkedHashSet<>();
|
| 52 | 53 | private final Set<String> sampledWellIds;
|
| 53 | 54 | private Sample sample;
|
| 54 | 55 | private SampleActivity datum;
|
| 55 | 56 | |
| 56 | - public SampleActivityConsolidateContext(JavaBeanMonitor monitor, Decorator decorator, Trip trip, Set<ToolkitIdModifications> resultBuilder) {
|
|
| 57 | + public SampleActivityConsolidateContext(JavaBeanMonitor monitor, Decorator decorator, Trip trip, Set<String> speciesListForLogbookSampleActivityWeightedWeight, Set<ToolkitIdModifications> resultBuilder) {
|
|
| 57 | 58 | this.monitor = monitor;
|
| 58 | 59 | this.decorator = decorator;
|
| 59 | 60 | this.tripWell = trip.getWell();
|
| 60 | 61 | this.sampledWellIds = trip.getSample().stream().map(Sample::getWell).collect(Collectors.toSet());
|
| 62 | + this.speciesListForLogbookSampleActivityWeightedWeight = speciesListForLogbookSampleActivityWeightedWeight;
|
|
| 61 | 63 | this.resultBuilder = resultBuilder;
|
| 62 | 64 | }
|
| 63 | 65 | |
| ... | ... | @@ -65,6 +67,10 @@ public class SampleActivityConsolidateContext implements ConsolidateContext<Samp |
| 65 | 67 | return sampledWellIds;
|
| 66 | 68 | }
|
| 67 | 69 | |
| 70 | + public Set<String> getSpeciesListForLogbookSampleActivityWeightedWeight() {
|
|
| 71 | + return speciesListForLogbookSampleActivityWeightedWeight;
|
|
| 72 | + }
|
|
| 73 | + |
|
| 68 | 74 | public void watch(Sample sample, SampleActivity datum) {
|
| 69 | 75 | this.sample = Objects.requireNonNull(sample);
|
| 70 | 76 | this.datum = Objects.requireNonNull(datum);
|
| ... | ... | @@ -47,8 +47,8 @@ public class SampleActivityConsolidateEngine { |
| 47 | 47 | this.decorator = decoratorService.getDecoratorByType(SampleActivity.class);
|
| 48 | 48 | }
|
| 49 | 49 | |
| 50 | - public void consolidateTrip(Trip trip, Set<ToolkitIdModifications> resultBuilder) {
|
|
| 51 | - SampleActivityConsolidateContext context = new SampleActivityConsolidateContext(monitor, decorator, trip, resultBuilder);
|
|
| 50 | + public void consolidateTrip(Trip trip, Set<String> speciesListForLogbookSampleActivityWeightedWeight, Set<ToolkitIdModifications> resultBuilder) {
|
|
| 51 | + SampleActivityConsolidateContext context = new SampleActivityConsolidateContext(monitor, decorator, trip, speciesListForLogbookSampleActivityWeightedWeight,resultBuilder);
|
|
| 52 | 52 | for (Sample sample : trip.getSample()) {
|
| 53 | 53 | if (sample.isSampleActivityEmpty()) {
|
| 54 | 54 | continue;
|
| ... | ... | @@ -42,6 +42,7 @@ import io.ultreia.java4all.util.Dates; |
| 42 | 42 | import org.junit.Assert;
|
| 43 | 43 | |
| 44 | 44 | import java.net.URL;
|
| 45 | +import java.util.Arrays;
|
|
| 45 | 46 | import java.util.List;
|
| 46 | 47 | import java.util.Optional;
|
| 47 | 48 | import java.util.Set;
|
| ... | ... | @@ -205,6 +206,7 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ |
| 205 | 206 | TripConsolidateRequest request = new TripConsolidateRequest();
|
| 206 | 207 | request.setTripId(getProperty("consolidateTrip.id"));
|
| 207 | 208 | request.setFailIfLengthWeightParameterNotFound(false);
|
| 209 | + request.setSpeciesListForLogbookSampleActivityWeightedWeight(Set.copyOf(Arrays.asList(getArrayProperty("consolidateTrip.speciesListForLogbookSampleActivityWeightedWeight"))));
|
|
| 208 | 210 | |
| 209 | 211 | TripConsolidateResult actual = service.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
|
| 210 | 212 | Assert.assertNotNull(actual);
|
| ... | ... | @@ -2,20 +2,20 @@ |
| 2 | 2 | # #%L
|
| 3 | 3 | # ObServe Core :: Services :: Test
|
| 4 | 4 | # %%
|
| 5 | -# Copyright (C) 2008 - 2024 IRD, Ultreia.io
|
|
| 5 | +# Copyright (C) 2008 - 2024 IRD^ Ultreia.io
|
|
| 6 | 6 | # %%
|
| 7 | 7 | # This program is free software: you can redistribute it and/or modify
|
| 8 | 8 | # it under the terms of the GNU General Public License as
|
| 9 | -# published by the Free Software Foundation, either version 3 of the
|
|
| 10 | -# License, or (at your option) any later version.
|
|
| 9 | +# published by the Free Software Foundation^ either version 3 of the
|
|
| 10 | +# License^ or (at your option) any later version.
|
|
| 11 | 11 | #
|
| 12 | -# This program is distributed in the hope that it will be useful,
|
|
| 12 | +# This program is distributed in the hope that it will be useful^
|
|
| 13 | 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 14 | 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 15 | 15 | # GNU General Public License for more details.
|
| 16 | 16 | #
|
| 17 | 17 | # You should have received a copy of the GNU General Public
|
| 18 | -# License along with this program. If not, see
|
|
| 18 | +# License along with this program. If not^ see
|
|
| 19 | 19 | # <http://www.gnu.org/licenses/gpl-3.0.html>.
|
| 20 | 20 | # #L%
|
| 21 | 21 | ###
|
| ... | ... | @@ -29,3 +29,4 @@ consolidateTrip.logbookSampleActivity.count=1 |
| 29 | 29 | consolidateTrip.observationsActivityResult.count=4
|
| 30 | 30 | consolidateTrip.observationsActivityResult.withModifications.count=4
|
| 31 | 31 | consolidateTrip.observationsActivityResult.withWarnings.count=4
|
| 32 | +consolidateTrip.speciesListForLogbookSampleActivityWeightedWeight=fr.ird.referential.common.Species#1239832685474#0.8943253454598569^fr.ird.referential.common.Species#1239832685474#0.975344121171992^fr.ird.referential.common.Species#1239832685475#0.13349466123905152^fr.ird.referential.common.Species#1239832685476#0.5618871286604711^fr.ird.referential.common.Species#1239832685477#0.8024257002747615^fr.ird.referential.common.Species#1239832685477#0.3846921632590058^fr.ird.referential.common.Species#1441287921299#0.016754076421811148^fr.ird.referential.common.Species#1433499265113#0.891799515346065^fr.ird.referential.common.Species#1239832685477#0.2673009297087321^fr.ird.referential.common.Species#1239832685478#0.7676744877900202^fr.ird.referential.common.Species#1239832685477#0.5989181185528589^fr.ird.referential.common.Species#1239832685476#0.36339915670317835 |