Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

18 changed files:

Changes:

  • client/configuration/src/main/config/Client.ini
    ... ... @@ -453,8 +453,8 @@ defaultValue = false
    453 453
     [option consolidationSpeciesListForLogbookSampleActivityWeightedWeight]
    
    454 454
     description = observe.config.consolidation.speciesListForLogbookSampleActivityWeightedWeight
    
    455 455
     key = instance.consolidation.speciesListForLogbookSampleActivityWeightedWeight
    
    456
    -type = String[]
    
    457
    -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
    
    456
    +type = String
    
    457
    +defaultValue = fr.ird.referential.common.SpeciesList#1464000000000#100
    
    458 458
     
    
    459 459
     [option sizeMeasureTypeSeineObservationTargetSampleId]
    
    460 460
     description = observe.config.sizeMeasureType.seine.observation.targetSample
    

  • client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
    ... ... @@ -273,11 +273,10 @@ 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
    -        //FIXME Re-add this when this option will be a reference to a SpeciesList
    
    277 276
             // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2931
    
    278
    -//        if (dataSource != null && dataSource.isOpen()) {
    
    279
    -//            helper.addOption(ClientConfigOption.CONSOLIDATION_SPECIES_LIST_FOR_LOGBOOK_SAMPLE_ACTIVITY_WEIGHTED_WEIGHT);
    
    280
    -//        }
    
    277
    +        if (dataSource != null && dataSource.isOpen()) {
    
    278
    +            helper.addSpeciesListOption(ClientConfigOption.CONSOLIDATION_SPECIES_LIST_FOR_LOGBOOK_SAMPLE_ACTIVITY_WEIGHTED_WEIGHT);
    
    279
    +        }
    
    281 280
     
    
    282 281
         }
    
    283 282
     
    

  • client/datasource/actions/src/main/i18n/getters/jaxx.getter
    ... ... @@ -4,6 +4,7 @@ observe.Common.global.progression.description
    4 4
     observe.Common.step.description
    
    5 5
     observe.config.consolidation.failIfLengthLengthParameterNotFound
    
    6 6
     observe.config.consolidation.failIfLengthWeightParameterNotFound
    
    7
    +observe.config.consolidation.speciesListForLogbookSampleActivityWeightedWeight
    
    7 8
     observe.config.ui.seineBycatchObservedSystem.description
    
    8 9
     observe.config.validation.lengthWeightEnable
    
    9 10
     observe.config.validation.speedEnable
    

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jaxx
    ... ... @@ -22,7 +22,9 @@
    22 22
       <import>
    
    23 23
         fr.ird.observe.client.datasource.actions.AdminUIModel
    
    24 24
         fr.ird.observe.client.datasource.actions.consolidate.actions.SelectConsolidationConfigFlag
    
    25
    +    fr.ird.observe.dto.referential.common.SpeciesListReference
    
    25 26
     
    
    27
    +    io.ultreia.java4all.jaxx.widgets.combobox.FilterableComboBox
    
    26 28
         java.io.File
    
    27 29
     
    
    28 30
         static io.ultreia.java4all.i18n.I18n.t
    
    ... ... @@ -42,7 +44,7 @@ public void destroy() {
    42 44
       </script>
    
    43 45
     
    
    44 46
       <JPanel constraints='BorderLayout.NORTH' layout='{new BorderLayout()}'>
    
    45
    -    <Table id="consolidateDataConfig" constraints='BorderLayout.NORTH'>
    
    47
    +    <Table id="consolidateDataConfig" constraints='BorderLayout.NORTH' beanScope="consolidateModel">
    
    46 48
     
    
    47 49
           <row>
    
    48 50
             <cell anchor="west">
    
    ... ... @@ -62,10 +64,10 @@ public void destroy() {
    62 64
           </row>
    
    63 65
           <row>
    
    64 66
             <cell anchor="west">
    
    65
    -          <JLabel id='consolidationSpeciesListForLogbookSampleActivityWeightedWeightLabel' styleClass="skipI18n"/>
    
    67
    +          <JLabel id='consolidationSpeciesListForLogbookSampleActivityWeightedWeightLabel'/>
    
    66 68
             </cell>
    
    67 69
             <cell weightx='1' fill="horizontal">
    
    68
    -          <JLabel id='consolidationSpeciesListForLogbookSampleActivityWeightedWeight' styleClass="skipI18n"/>
    
    70
    +          <FilterableComboBox id='speciesListForLogbookSampleActivityWeightedWeight' genericType='SpeciesListReference'/>
    
    69 71
             </cell>
    
    70 72
           </row>
    
    71 73
         </Table>
    

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jcss
    ... ... @@ -40,6 +40,13 @@
    40 40
       selected:{consolidateModel.isConsolidationFailIfLengthLengthParameterNotFound()};
    
    41 41
     }
    
    42 42
     
    
    43
    +#consolidationSpeciesListForLogbookSampleActivityWeightedWeightLabel {
    
    44
    +   text:"observe.config.consolidation.speciesListForLogbookSampleActivityWeightedWeight";
    
    45
    +}
    
    46
    +
    
    47
    +#speciesListForLogbookSampleActivityWeightedWeight {
    
    48
    +   selectedItem:{consolidateModel.getSpeciesListForLogbookSampleActivityWeightedWeight()};
    
    49
    +}
    
    43 50
     
    
    44 51
     #consolidationReportConfig {
    
    45 52
       border:{new TitledBorder(t("observe.ui.datasource.editor.actions.consolidate.config.report") + "     ")};
    

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
    ... ... @@ -26,11 +26,11 @@ import fr.ird.observe.client.datasource.actions.AdminStep;
    26 26
     import fr.ird.observe.client.datasource.actions.AdminUIModel;
    
    27 27
     import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
    
    28 28
     import fr.ird.observe.client.datasource.editor.api.wizard.connexion.DataSourceSelectorModel;
    
    29
    +import fr.ird.observe.dto.referential.common.SpeciesListReference;
    
    29 30
     import org.apache.logging.log4j.LogManager;
    
    30 31
     import org.apache.logging.log4j.Logger;
    
    31 32
     import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
    
    32 33
     
    
    33
    -import java.util.List;
    
    34 34
     import java.util.Set;
    
    35 35
     import java.util.TreeSet;
    
    36 36
     
    
    ... ... @@ -53,8 +53,10 @@ public class ConsolidateModel extends AdminActionModel {
    53 53
         private ObserveSwingDataSource source;
    
    54 54
         private boolean consolidationFailIfLengthWeightParameterNotFound;
    
    55 55
         private boolean consolidationFailIfLengthLengthParameterNotFound;
    
    56
    -    private List<String> consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
    
    56
    +    private String consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
    
    57
    +    private SpeciesListReference speciesListForLogbookSampleActivityWeightedWeight;
    
    57 58
         private boolean skipForReport;
    
    59
    +
    
    58 60
         public ConsolidateModel() {
    
    59 61
             super(AdminStep.CONSOLIDATE);
    
    60 62
             this.alreadyDoneTripIds = new TreeSet<>();
    
    ... ... @@ -88,7 +90,7 @@ public class ConsolidateModel extends AdminActionModel {
    88 90
     
    
    89 91
             setConsolidationFailIfLengthWeightParameterNotFound(getClientConfig().isConsolidationFailIfLengthWeightParameterNotFound());
    
    90 92
             setConsolidationFailIfLengthLengthParameterNotFound(getClientConfig().isConsolidationFailIfLengthLengthParameterNotFound());
    
    91
    -        setConsolidationSpeciesListForLogbookSampleActivityWeightedWeight(getClientConfig().getConsolidationSpeciesListForLogbookSampleActivityWeightedWeightList());
    
    93
    +        setConsolidationSpeciesListForLogbookSampleActivityWeightedWeight(getClientConfig().getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight());
    
    92 94
         }
    
    93 95
     
    
    94 96
         @Override
    
    ... ... @@ -96,6 +98,11 @@ public class ConsolidateModel extends AdminActionModel {
    96 98
             return uiModel.validate(AdminStep.SELECT_DATA) && uiModel.getStepState(step) == WizardState.SUCCESSED;
    
    97 99
         }
    
    98 100
     
    
    101
    +    @Override
    
    102
    +    public boolean validateConfig(AdminUIModel uiModel) {
    
    103
    +        return super.validateConfig(uiModel) && getSpeciesListForLogbookSampleActivityWeightedWeight() != null;
    
    104
    +    }
    
    105
    +
    
    99 106
         public boolean checkIfTripAlreadyProcessed(String tripId) {
    
    100 107
             return alreadyDoneTripIds.contains(tripId);
    
    101 108
         }
    
    ... ... @@ -124,16 +131,27 @@ public class ConsolidateModel extends AdminActionModel {
    124 131
             firePropertyChange("consolidationFailIfLengthLengthParameterNotFound", oldValue, consolidationFailIfLengthLengthParameterNotFound);
    
    125 132
         }
    
    126 133
     
    
    127
    -    public List<String> getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight() {
    
    134
    +    public String getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight() {
    
    128 135
             return consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
    
    129 136
         }
    
    130 137
     
    
    131
    -    public void setConsolidationSpeciesListForLogbookSampleActivityWeightedWeight(List<String> consolidationSpeciesListForLogbookSampleActivityWeightedWeight) {
    
    132
    -        List<String> oldValue = this.consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
    
    138
    +    public void setConsolidationSpeciesListForLogbookSampleActivityWeightedWeight(String consolidationSpeciesListForLogbookSampleActivityWeightedWeight) {
    
    139
    +        String oldValue = this.consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
    
    133 140
             this.consolidationSpeciesListForLogbookSampleActivityWeightedWeight = consolidationSpeciesListForLogbookSampleActivityWeightedWeight;
    
    134 141
             firePropertyChange("consolidationSpeciesListForLogbookSampleActivityWeightedWeight", oldValue, consolidationSpeciesListForLogbookSampleActivityWeightedWeight);
    
    135 142
         }
    
    136 143
     
    
    144
    +    public SpeciesListReference getSpeciesListForLogbookSampleActivityWeightedWeight() {
    
    145
    +        return speciesListForLogbookSampleActivityWeightedWeight;
    
    146
    +    }
    
    147
    +
    
    148
    +    public void setSpeciesListForLogbookSampleActivityWeightedWeight(SpeciesListReference speciesListForLogbookSampleActivityWeightedWeight) {
    
    149
    +        SpeciesListReference oldValue = this.speciesListForLogbookSampleActivityWeightedWeight;
    
    150
    +        this.speciesListForLogbookSampleActivityWeightedWeight = speciesListForLogbookSampleActivityWeightedWeight;
    
    151
    +        setConsolidationSpeciesListForLogbookSampleActivityWeightedWeight(speciesListForLogbookSampleActivityWeightedWeight == null ? null : speciesListForLogbookSampleActivityWeightedWeight.getId());
    
    152
    +        firePropertyChange("speciesListForLogbookSampleActivityWeightedWeight", oldValue, speciesListForLogbookSampleActivityWeightedWeight);
    
    153
    +    }
    
    154
    +
    
    137 155
         public boolean isSkipForReport() {
    
    138 156
             return skipForReport;
    
    139 157
         }
    

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateUIHandler.java
    ... ... @@ -24,9 +24,20 @@ package fr.ird.observe.client.datasource.actions.consolidate;
    24 24
     import fr.ird.observe.client.datasource.actions.AdminTabUIHandler;
    
    25 25
     import fr.ird.observe.client.datasource.actions.config.ConfigUI;
    
    26 26
     import fr.ird.observe.client.datasource.actions.consolidate.actions.SelectConsolidationConfigFlag;
    
    27
    +import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
    
    28
    +import fr.ird.observe.client.datasource.editor.api.wizard.connexion.DataSourceSelectorModel;
    
    27 29
     import fr.ird.observe.client.util.UIHelper;
    
    30
    +import fr.ird.observe.client.util.init.UIInitHelper;
    
    31
    +import fr.ird.observe.dto.referential.common.SpeciesListReference;
    
    32
    +import io.ultreia.java4all.jaxx.widgets.combobox.FilterableComboBox;
    
    33
    +import org.apache.logging.log4j.LogManager;
    
    34
    +import org.apache.logging.log4j.Logger;
    
    28 35
     import org.nuiton.jaxx.runtime.spi.UIHandler;
    
    29 36
     
    
    37
    +import java.util.ArrayList;
    
    38
    +import java.util.Collections;
    
    39
    +import java.util.Objects;
    
    40
    +
    
    30 41
     import static io.ultreia.java4all.i18n.I18n.t;
    
    31 42
     
    
    32 43
     /**
    
    ... ... @@ -34,6 +45,7 @@ import static io.ultreia.java4all.i18n.I18n.t;
    34 45
      * @since 1.5
    
    35 46
      */
    
    36 47
     public class ConsolidateUIHandler extends AdminTabUIHandler<ConsolidateUI> implements UIHandler<ConsolidateUI> {
    
    48
    +    private static final Logger log = LogManager.getLogger(ConsolidateUIHandler.class);
    
    37 49
     
    
    38 50
         @Override
    
    39 51
         public void afterInit(ConsolidateUI ui) {
    
    ... ... @@ -49,7 +61,34 @@ public class ConsolidateUIHandler extends AdminTabUIHandler<ConsolidateUI> imple
    49 61
             ConsolidateConfigUI extraConfig = new ConsolidateConfigUI(UIHelper.initialContext(configUI, this));
    
    50 62
             SelectConsolidationConfigFlag.init(extraConfig, extraConfig.getConsolidationFailIfLengthWeightParameterNotFound(), new SelectConsolidationConfigFlag("consolidationFailIfLengthWeightParameterNotFound", ConsolidateModel::isConsolidationFailIfLengthWeightParameterNotFound, ConsolidateModel::setConsolidationFailIfLengthWeightParameterNotFound, 5));
    
    51 63
             SelectConsolidationConfigFlag.init(extraConfig, extraConfig.getConsolidationFailIfLengthLengthParameterNotFound(), new SelectConsolidationConfigFlag("consolidationFailIfLengthLengthParameterNotFound", ConsolidateModel::isConsolidationFailIfLengthLengthParameterNotFound, ConsolidateModel::setConsolidationFailIfLengthLengthParameterNotFound, 6));
    
    52
    -        extraConfig.getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight().setText("<html><body><b>TODO</b></body></html>");
    
    64
    +        getModel().getConfigModel().getLeftSourceModel().addPropertyChangeListener(DataSourceSelectorModel.VALID_PROPERTY_NAME, evt -> onDataSourceValidChanged(extraConfig, (boolean) evt.getNewValue()));
    
    65
    +        FilterableComboBox<SpeciesListReference> editor = extraConfig.getSpeciesListForLogbookSampleActivityWeightedWeight();
    
    66
    +        UIInitHelper.init(editor);
    
    67
    +        editor.init(getDecoratorService().getDecoratorByType(SpeciesListReference.class), Collections.emptyList());
    
    53 68
             configUI.getExtraConfig().add(extraConfig);
    
    54 69
         }
    
    70
    +
    
    71
    +    private void onDataSourceValidChanged(ConsolidateConfigUI extraConfig, boolean dataSourceValid) {
    
    72
    +        log.info("Data source valid: {}", dataSourceValid);
    
    73
    +        FilterableComboBox<SpeciesListReference> editor = extraConfig.getSpeciesListForLogbookSampleActivityWeightedWeight();
    
    74
    +        if (dataSourceValid) {
    
    75
    +            try (ObserveSwingDataSource dataSource = getModel().getConfigModel().getLeftSourceModel().getSafeSource(true)) {
    
    76
    +                ArrayList<SpeciesListReference> data = dataSource.getReferentialService().getReferenceSet(SpeciesListReference.class, null).toArrayList();
    
    77
    +                String speciesListId = getModel().getConsolidateModel().getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight();
    
    78
    +                if (speciesListId == null) {
    
    79
    +                    speciesListId = getClientConfig().getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight();
    
    80
    +                    getModel().getConsolidateModel().setConsolidationSpeciesListForLogbookSampleActivityWeightedWeight(speciesListId);
    
    81
    +                }
    
    82
    +                log.info("Loading speciesList {}", speciesListId);
    
    83
    +                String finalSpeciesListId = speciesListId;
    
    84
    +                SpeciesListReference speciesListReference = data.stream().filter(sl -> Objects.equals(sl.getId(), finalSpeciesListId)).findFirst().orElse(null);
    
    85
    +                log.info("Found speciesList {}", speciesListReference);
    
    86
    +                editor.setData(data);
    
    87
    +                getModel().getConsolidateModel().setSpeciesListForLogbookSampleActivityWeightedWeight(speciesListReference);
    
    88
    +            }
    
    89
    +        } else {
    
    90
    +            editor.setData(Collections.emptyList());
    
    91
    +        }
    
    92
    +        editor.setEnabled(dataSourceValid);
    
    93
    +    }
    
    55 94
     }

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
    ... ... @@ -169,7 +169,7 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
    169 169
             request.setTripId(tripId);
    
    170 170
             request.setFailIfLengthWeightParameterNotFound(stepModel.isConsolidationFailIfLengthWeightParameterNotFound());
    
    171 171
             request.setFailIfLengthLengthParameterNotFound(stepModel.isConsolidationFailIfLengthLengthParameterNotFound());
    
    172
    -        request.setSpeciesListForLogbookSampleActivityWeightedWeight(Set.copyOf(stepModel.getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight()));
    
    172
    +        request.setSpeciesListForLogbookSampleActivityWeightedWeight(stepModel.getConsolidationSpeciesListForLogbookSampleActivityWeightedWeight());
    
    173 173
     
    
    174 174
             TripConsolidateResult result = consolidateDataService.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
    
    175 175
             if (result != null) {
    

  • core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateRequest.java
    ... ... @@ -25,8 +25,6 @@ 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
    -
    
    30 28
     /**
    
    31 29
      * Request to consolidate a trip.
    
    32 30
      * <p>
    
    ... ... @@ -49,7 +47,7 @@ public class TripConsolidateRequest implements JsonAware {
    49 47
          */
    
    50 48
         private boolean failIfLengthLengthParameterNotFound;
    
    51 49
     
    
    52
    -    private Set<String> speciesListForLogbookSampleActivityWeightedWeight;
    
    50
    +    private String speciesListForLogbookSampleActivityWeightedWeight;
    
    53 51
     
    
    54 52
         public boolean isFailIfLengthWeightParameterNotFound() {
    
    55 53
             return failIfLengthWeightParameterNotFound;
    
    ... ... @@ -75,11 +73,11 @@ public class TripConsolidateRequest implements JsonAware {
    75 73
             this.failIfLengthLengthParameterNotFound = failIfLengthLengthParameterNotFound;
    
    76 74
         }
    
    77 75
     
    
    78
    -    public Set<String> getSpeciesListForLogbookSampleActivityWeightedWeight() {
    
    76
    +    public String getSpeciesListForLogbookSampleActivityWeightedWeight() {
    
    79 77
             return speciesListForLogbookSampleActivityWeightedWeight;
    
    80 78
         }
    
    81 79
     
    
    82
    -    public void setSpeciesListForLogbookSampleActivityWeightedWeight(Set<String> speciesListForLogbookSampleActivityWeightedWeight) {
    
    80
    +    public void setSpeciesListForLogbookSampleActivityWeightedWeight(String speciesListForLogbookSampleActivityWeightedWeight) {
    
    83 81
             this.speciesListForLogbookSampleActivityWeightedWeight = speciesListForLogbookSampleActivityWeightedWeight;
    
    84 82
         }
    
    85 83
     }

  • core/persistence/consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateEngine.java
    ... ... @@ -36,6 +36,8 @@ import fr.ird.observe.entities.data.ps.localmarket.Batch;
    36 36
     import fr.ird.observe.entities.data.ps.logbook.SampleActivity;
    
    37 37
     import fr.ird.observe.entities.referential.common.LengthLengthParameterCache;
    
    38 38
     import fr.ird.observe.entities.referential.common.LengthWeightParameterCache;
    
    39
    +import fr.ird.observe.entities.referential.common.Species;
    
    40
    +import fr.ird.observe.entities.referential.common.SpeciesList;
    
    39 41
     import fr.ird.observe.spi.consolidation.ToolkitIdModificationsToSql;
    
    40 42
     import fr.ird.observe.spi.service.ServiceContext;
    
    41 43
     import io.ultreia.java4all.decoration.Decorator;
    
    ... ... @@ -49,6 +51,7 @@ import java.nio.file.Path;
    49 51
     import java.util.LinkedHashSet;
    
    50 52
     import java.util.Optional;
    
    51 53
     import java.util.Set;
    
    54
    +import java.util.stream.Collectors;
    
    52 55
     
    
    53 56
     /**
    
    54 57
      * Created on 17/01/2022.
    
    ... ... @@ -88,7 +91,10 @@ public class TripConsolidateEngine {
    88 91
     
    
    89 92
             Trip trip = Trip.loadEntity(context, tripId);
    
    90 93
     
    
    91
    -        Set<ToolkitIdModifications> logbookSampleActivityResults = consolidateLogbookSampleActivities(trip, request.getSpeciesListForLogbookSampleActivityWeightedWeight());
    
    94
    +        String speciesListId = request.getSpeciesListForLogbookSampleActivityWeightedWeight();
    
    95
    +        SpeciesList speciesList = SpeciesList.loadEntity(context, speciesListId);
    
    96
    +        Set<String> speciesListForLogbookSampleActivityWeightedWeight = speciesList.getSpecies().stream().map(Species ::getId).collect(Collectors.toSet());
    
    97
    +        Set<ToolkitIdModifications> logbookSampleActivityResults = consolidateLogbookSampleActivities(trip, speciesListForLogbookSampleActivityWeightedWeight);
    
    92 98
             Set<ToolkitIdModifications> localmarketBatchResults = consolidateLocalmarketBatches(trip, failIfLengthWeightParameterNotFound);
    
    93 99
     
    
    94 100
             Set<fr.ird.observe.consolidation.data.ps.observation.ActivityConsolidateResult> observationActivityConsolidateResults = consolidateObservationActivities(trip, failIfLengthWeightParameterNotFound, failIfLengthLengthParameterNotFound);
    

  • core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_4.java
    ... ... @@ -34,6 +34,9 @@ import java.math.BigDecimal;
    34 34
     import java.math.RoundingMode;
    
    35 35
     import java.sql.ResultSet;
    
    36 36
     import java.sql.SQLException;
    
    37
    +import java.util.LinkedHashSet;
    
    38
    +import java.util.Set;
    
    39
    +import java.util.stream.Stream;
    
    37 40
     
    
    38 41
     /**
    
    39 42
      * Created at 11/09/2024.
    
    ... ... @@ -55,6 +58,8 @@ public class DataSourceMigrationForVersion_9_4 extends ByMajorMigrationVersionRe
    55 58
             if (withIds) {
    
    56 59
                 // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2914
    
    57 60
                 issue2914(executor);
    
    61
    +            // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2931
    
    62
    +            executor.addScript("01", "issue-2931");
    
    58 63
             }
    
    59 64
         }
    
    60 65
     
    

  • core/persistence/migration/src/main/resources/db/migration/v9/9.4/01_issue-2931-common.sql
    1
    +---
    
    2
    +-- #%L
    
    3
    +-- ObServe Core :: Persistence :: Migration
    
    4
    +-- %%
    
    5
    +-- Copyright (C) 2008 - 2023 IRD, Ultreia.io
    
    6
    +-- %%
    
    7
    +-- This program is free software: you can redistribute it and/or modify
    
    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.
    
    11
    +--
    
    12
    +-- This program is distributed in the hope that it will be useful,
    
    13
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    14
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    15
    +-- GNU General Public License for more details.
    
    16
    +--
    
    17
    +-- You should have received a copy of the GNU General Public
    
    18
    +-- License along with this program.  If not, see
    
    19
    +-- <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    20
    +-- #L%
    
    21
    +---
    
    22
    +-- add a new species list PS - Catch
    
    23
    +INSERT INTO common.SpeciesList (topiaid, topiaversion, topiacreatedate, code, status, uri, label1, label2, label3, label4, label5, label6, label7, label8, needcomment, lastupdatedate, homeid) VALUES ('fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100', 0, ${CURRENT_DATE}, '100', 1, null, 'Consolidation (PS Logbook SampleActivity.weightedWeight)', 'Consolidation (PS Logbook SampleActivity.weightedWeight)', 'Consolidation (PS Logbook SampleActivity.weightedWeight) TODO', null, null, null, null, null, false, ${CURRENT_TIMESTAMP} , null);
    
    24
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685474#0.8943253454598569', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    25
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685474#0.975344121171992', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    26
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685475#0.13349466123905152', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    27
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685476#0.5618871286604711', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    28
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685477#0.8024257002747615', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    29
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685477#0.3846921632590058', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    30
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1441287921299#0.016754076421811148', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    31
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1433499265113#0.891799515346065', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    32
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685477#0.2673009297087321', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    33
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685478#0.7676744877900202', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    34
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685477#0.5989181185528589', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    35
    +INSERT INTO common.speciesList_species (species, speciesList) VALUES ('fr.ird.referential.common.Species#1239832685476#0.36339915670317835', 'fr.ird.referential.common.SpeciesList#${REFERENTIAL_PREFIX}100');
    
    36
    +UPDATE common.LastUpdateDate SET lastUpdateDate = ${CURRENT_TIMESTAMP} WHERE type = 'fr.ird.observe.entities.referential.common.SpeciesList';
    \ No newline at end of file

  • core/persistence/test/src/test/resources/fixtures/persistence/table_count/referential.properties
    ... ... @@ -40,7 +40,7 @@ common.sizeMeasureType=21
    40 40
     common.species=315
    
    41 41
     common.speciesGroup=12
    
    42 42
     common.speciesGroupReleaseMode=10
    
    43
    -common.speciesList=10
    
    43
    +common.speciesList=11
    
    44 44
     common.vessel=1250
    
    45 45
     common.vesselSizeCategory=13
    
    46 46
     common.vesselType=18
    
    ... ... @@ -118,4 +118,4 @@ common.gear_allowedGearCharacteristic=108
    118 118
     common.gear_defaultGearCharacteristic=45
    
    119 119
     common.species_ocean=553
    
    120 120
     common.speciesGroup_speciesGroupReleaseMode=19
    
    121
    -common.speciesList_species=965
    121
    +common.speciesList_species=977

  • core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
    ... ... @@ -42,7 +42,6 @@ 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;
    
    46 45
     import java.util.List;
    
    47 46
     import java.util.Optional;
    
    48 47
     import java.util.Set;
    
    ... ... @@ -206,7 +205,7 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
    206 205
             TripConsolidateRequest request = new TripConsolidateRequest();
    
    207 206
             request.setTripId(getProperty("consolidateTrip.id"));
    
    208 207
             request.setFailIfLengthWeightParameterNotFound(false);
    
    209
    -        request.setSpeciesListForLogbookSampleActivityWeightedWeight(Set.copyOf(Arrays.asList(getArrayProperty("consolidateTrip.speciesListForLogbookSampleActivityWeightedWeight"))));
    
    208
    +        request.setSpeciesListForLogbookSampleActivityWeightedWeight(getProperty("consolidateTrip.speciesListForLogbookSampleActivityWeightedWeight"));
    
    210 209
     
    
    211 210
             TripConsolidateResult actual = service.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
    
    212 211
             Assert.assertNotNull(actual);
    

  • core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ValidateService-referentialResult-common-default.json
    ... ... @@ -43661,6 +43661,32 @@
    43661 43661
             }
    
    43662 43662
           ]
    
    43663 43663
         },
    
    43664
    +    {
    
    43665
    +      "datum": {
    
    43666
    +        "text": "100##Consolidation (PS Logbook SampleActivity.weightedWeight)",
    
    43667
    +        "type": "fr.ird.observe.dto.referential.common.SpeciesListDto",
    
    43668
    +        "id": "fr.ird.referential.common.SpeciesList#1464000000000#100",
    
    43669
    +        "topiaVersion": 0,
    
    43670
    +        "lastUpdateDate": "2024-09-11T00:00:00.000Z"
    
    43671
    +      },
    
    43672
    +      "messages": [
    
    43673
    +        {
    
    43674
    +          "fieldName": "label1",
    
    43675
    +          "scope": "WARNING",
    
    43676
    +          "message": "Le libellé anglais n'est pas traduit."
    
    43677
    +        },
    
    43678
    +        {
    
    43679
    +          "fieldName": "label3",
    
    43680
    +          "scope": "WARNING",
    
    43681
    +          "message": "Le libellé espagnol n'est pas traduit."
    
    43682
    +        },
    
    43683
    +        {
    
    43684
    +          "fieldName": "uri",
    
    43685
    +          "scope": "WARNING",
    
    43686
    +          "message": "Le champ n'est pas renseigné."
    
    43687
    +        }
    
    43688
    +      ]
    
    43689
    +    },
    
    43664 43690
         {
    
    43665 43691
           "datum": {
    
    43666 43692
             "text": "BENIGUET##25",
    

  • core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ValidateService-referentialResult-common-xwork2.json
    ... ... @@ -43661,6 +43661,32 @@
    43661 43661
             }
    
    43662 43662
           ]
    
    43663 43663
         },
    
    43664
    +    {
    
    43665
    +      "datum": {
    
    43666
    +        "text": "100##Consolidation (PS Logbook SampleActivity.weightedWeight)",
    
    43667
    +        "type": "fr.ird.observe.dto.referential.common.SpeciesListDto",
    
    43668
    +        "id": "fr.ird.referential.common.SpeciesList#1464000000000#100",
    
    43669
    +        "topiaVersion": 0,
    
    43670
    +        "lastUpdateDate": "2024-09-11T00:00:00.000Z"
    
    43671
    +      },
    
    43672
    +      "messages": [
    
    43673
    +        {
    
    43674
    +          "fieldName": "label1",
    
    43675
    +          "scope": "WARNING",
    
    43676
    +          "message": "Le libellé anglais n'est pas traduit."
    
    43677
    +        },
    
    43678
    +        {
    
    43679
    +          "fieldName": "label3",
    
    43680
    +          "scope": "WARNING",
    
    43681
    +          "message": "Le libellé espagnol n'est pas traduit."
    
    43682
    +        },
    
    43683
    +        {
    
    43684
    +          "fieldName": "uri",
    
    43685
    +          "scope": "WARNING",
    
    43686
    +          "message": "Le champ n'est pas renseigné."
    
    43687
    +        }
    
    43688
    +      ]
    
    43689
    +    },
    
    43664 43690
         {
    
    43665 43691
           "datum": {
    
    43666 43692
             "text": "BENIGUET##25",
    

  • core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/data/ps/ConsolidateDataService.properties
    ... ... @@ -29,4 +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
    32
    +consolidateTrip.speciesListForLogbookSampleActivityWeightedWeight=fr.ird.referential.common.SpeciesList#1464000000000#100

  • model/src/main/resources/fixtures/global.properties
    ... ... @@ -25,4 +25,4 @@ REFERENCE_DATA_COUNT=68
    25 25
     ENTITIES_LIMIT_SIZE=100
    
    26 26
     # fr.ird.observe.services.service.referential.ReferentialService
    
    27 27
     # fr.ird.observe.services.local.service.referential.DifferentialModelTest
    
    28
    -REFERENTIAL_COUNT=4369
    28
    +REFERENTIAL_COUNT=4370