Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
33c0b05a
by Tony Chemit at 2024-09-11T17:52:04+02:00
-
1354fcc4
by Tony Chemit at 2024-09-11T17:52:04+02:00
-
2828d7e0
by Tony Chemit at 2024-09-11T17:52:04+02:00
-
dd7e205c
by Tony Chemit at 2024-09-11T17:52:04+02:00
-
3f8850f1
by Tony Chemit at 2024-09-11T17:52:04+02:00
-
0c3b23dc
by Tony Chemit at 2024-09-11T17:57:56+02:00
18 changed files:
- client/configuration/src/main/config/Client.ini
- client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
- client/datasource/actions/src/main/i18n/getters/jaxx.getter
- 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/ConsolidateConfigUI.jcss
- 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
- 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/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_4.java
- + core/persistence/migration/src/main/resources/db/migration/v9/9.4/01_issue-2931-common.sql
- core/persistence/test/src/test/resources/fixtures/persistence/table_count/referential.properties
- 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/ValidateService-referentialResult-common-default.json
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ValidateService-referentialResult-common-xwork2.json
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/data/ps/ConsolidateDataService.properties
- model/src/main/resources/fixtures/global.properties
Changes:
| ... | ... | @@ -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
|
| ... | ... | @@ -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 |
| ... | ... | @@ -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
|
| ... | ... | @@ -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>
|
| ... | ... | @@ -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") + " ")};
|
| ... | ... | @@ -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 | }
|
| ... | ... | @@ -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 | } |
| ... | ... | @@ -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) {
|
| ... | ... | @@ -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 | } |
| ... | ... | @@ -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);
|
| ... | ... | @@ -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 |
| 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 |
| ... | ... | @@ -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 |
| ... | ... | @@ -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);
|
| ... | ... | @@ -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",
|
| ... | ... | @@ -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",
|
| ... | ... | @@ -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 |
| ... | ... | @@ -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 |