Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
-
bca4db5f
by Tony Chemit at 2022-11-12T14:41:10+01:00
-
fbed49a2
by Tony Chemit at 2022-11-12T14:41:10+01:00
-
0d869f9d
by Tony Chemit at 2022-11-12T14:41:10+01:00
-
f1d614cd
by Tony Chemit at 2022-11-12T14:41:10+01:00
-
df3efb6f
by Tony Chemit at 2022-11-12T14:41:10+01:00
22 changed files:
- client/datasource/editor/ps/src/main/i18n/getters/jaxx.getter
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/SetCatchUI.jaxx
- core/api/services/src/main/i18n/getters/labels.getter
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripSpi.java
- core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/DataWriter.java
- core/persistence/resources/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_0.java
- core/persistence/resources/src/main/java/fr/ird/observe/spi/migration/v9/DiscardedTargetCatchRecord.java
- + core/persistence/resources/src/main/java/fr/ird/observe/spi/migration/v9/FixCommentHelper.java
- + core/persistence/resources/src/main/java/fr/ird/observe/spi/migration/v9/FixStringHelper.java
- core/persistence/resources/src/main/java/fr/ird/observe/spi/migration/v9/NotDiscardedTargetCatchRecord.java
- core/persistence/resources/src/main/resources/db/migration/v9/9.0/99_2_drop_tables-H2.sql
- core/persistence/resources/src/main/resources/db/migration/v9/9.0/99_2_drop_tables-PG.sql
- core/services/i18n/src/main/i18n/translations/services_en_GB.properties
- core/services/i18n/src/main/i18n/translations/services_es_ES.properties
- core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ValidateService-dataResult.json
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ValidateService-referentialResult.json
- model/src/main/models/Observe/dto/class/i18nLabels.properties
- model/src/main/models/Observe/dto/class/i18nOverrideLabels.properties
- + toolkit/api/src/main/java/fr/ird/observe/dto/StringCleaner.java
- toolkit/api/src/main/java/fr/ird/observe/persistence/SqlHelper.java
- toolkit/persistence/src/main/java/fr/ird/observe/spi/context/DataDtoEntityContext.java
Changes:
| ... | ... | @@ -186,6 +186,7 @@ observe.data.ps.observation.Catch.catchWeight |
| 186 | 186 | observe.data.ps.observation.Catch.maxWeight
|
| 187 | 187 | observe.data.ps.observation.Catch.meanLength
|
| 188 | 188 | observe.data.ps.observation.Catch.meanWeight
|
| 189 | +observe.data.ps.observation.Catch.minMaxWeight
|
|
| 189 | 190 | observe.data.ps.observation.Catch.minWeight
|
| 190 | 191 | observe.data.ps.observation.Catch.reasonForDiscard
|
| 191 | 192 | observe.data.ps.observation.Catch.totalCount
|
| ... | ... | @@ -125,10 +125,13 @@ |
| 125 | 125 | </row>
|
| 126 | 126 | <row>
|
| 127 | 127 | <cell>
|
| 128 | - <JLabel id='minWeightLabel'/>
|
|
| 128 | + <JLabel id='minMaxWeightLabel'/>
|
|
| 129 | 129 | </cell>
|
| 130 | 130 | <cell weightx='1'>
|
| 131 | - <NumberEditor id='minWeight' styleClass="float2"/>
|
|
| 131 | + <JPanel layout="{new GridLayout()}">
|
|
| 132 | + <NumberEditor id='minWeight' styleClass="float2"/>
|
|
| 133 | + <NumberEditor id='maxWeight' styleClass="float2"/>
|
|
| 134 | + </JPanel>
|
|
| 132 | 135 | </cell>
|
| 133 | 136 | </row>
|
| 134 | 137 | <row>
|
| ... | ... | @@ -139,15 +142,6 @@ |
| 139 | 142 | <NumberEditor id='meanWeight' styleClass="float2"/>
|
| 140 | 143 | </cell>
|
| 141 | 144 | </row>
|
| 142 | - <row>
|
|
| 143 | - <cell>
|
|
| 144 | - <JLabel id='maxWeightLabel'/>
|
|
| 145 | - </cell>
|
|
| 146 | - <cell weightx='1'>
|
|
| 147 | - <NumberEditor id='maxWeight' styleClass="float2"/>
|
|
| 148 | - </cell>
|
|
| 149 | - </row>
|
|
| 150 | - |
|
| 151 | 145 | <!-- taille moyenne -->
|
| 152 | 146 | <row>
|
| 153 | 147 | <cell>
|
| ... | ... | @@ -1038,6 +1038,7 @@ observe.data.ps.observation.Catch.meanWeight |
| 1038 | 1038 | observe.data.ps.observation.Catch.meanWeight.short
|
| 1039 | 1039 | observe.data.ps.observation.Catch.meanWeightComputed.computed.tip
|
| 1040 | 1040 | observe.data.ps.observation.Catch.meanWeightComputed.observed.tip
|
| 1041 | +observe.data.ps.observation.Catch.minMaxWeight
|
|
| 1041 | 1042 | observe.data.ps.observation.Catch.minWeight
|
| 1042 | 1043 | observe.data.ps.observation.Catch.minWeight.short
|
| 1043 | 1044 | observe.data.ps.observation.Catch.reasonForDiscard
|
| ... | ... | @@ -45,6 +45,7 @@ import fr.ird.observe.entities.referential.ps.common.AcquisitionStatus; |
| 45 | 45 | import fr.ird.observe.entities.referential.ps.common.ObservedSystem;
|
| 46 | 46 | import fr.ird.observe.entities.referential.ps.common.Program;
|
| 47 | 47 | import fr.ird.observe.entities.referential.ps.logbook.WellContentStatus;
|
| 48 | +import fr.ird.observe.persistence.SqlHelper;
|
|
| 48 | 49 | import fr.ird.observe.spi.service.ServiceContext;
|
| 49 | 50 | import io.ultreia.java4all.util.Dates;
|
| 50 | 51 | import io.ultreia.java4all.util.sql.SqlScriptWriter;
|
| ... | ... | @@ -330,8 +331,8 @@ public class TripSpi extends GeneratedTripSpi { |
| 330 | 331 | toId(observationsDataQuality),
|
| 331 | 332 | toId(observer),
|
| 332 | 333 | commentFormat.apply(observationsComment),
|
| 333 | - escapeString(formsUrl),
|
|
| 334 | - escapeString(reportsUrl),
|
|
| 334 | + SqlHelper.escapeString(formsUrl),
|
|
| 335 | + SqlHelper.escapeString(reportsUrl),
|
|
| 335 | 336 | newId);
|
| 336 | 337 | }
|
| 337 | 338 |
| ... | ... | @@ -77,7 +77,7 @@ public abstract class DataWriter<E extends DataEntity, R extends DataReader<E>> |
| 77 | 77 | }
|
| 78 | 78 | |
| 79 | 79 | public static String escapeString(String comment) {
|
| 80 | - return DataDtoEntityContext.escapeString(comment);
|
|
| 80 | + return SqlHelper.escapeString(comment);
|
|
| 81 | 81 | }
|
| 82 | 82 | |
| 83 | 83 | public static String roundFloat2(Float comment) {
|
| ... | ... | @@ -23,7 +23,8 @@ package fr.ird.observe.spi.migration.v9; |
| 23 | 23 | */
|
| 24 | 24 | |
| 25 | 25 | import com.google.auto.service.AutoService;
|
| 26 | -import fr.ird.observe.spi.context.DataDtoEntityContext;
|
|
| 26 | +import fr.ird.observe.dto.StringCleaner;
|
|
| 27 | +import fr.ird.observe.persistence.SqlHelper;
|
|
| 27 | 28 | import fr.ird.observe.spi.migration.ByMajorMigrationVersionResource;
|
| 28 | 29 | import io.ultreia.java4all.util.Version;
|
| 29 | 30 | import io.ultreia.java4all.util.sql.SqlQuery;
|
| ... | ... | @@ -254,6 +255,7 @@ public class DataSourceMigrationForVersion_9_0 extends ByMajorMigrationVersionRe |
| 254 | 255 | executor.addScript("96", "add_referential_ps_common_ObservedSystem_finalize");
|
| 255 | 256 | }
|
| 256 | 257 | }
|
| 258 | + |
|
| 257 | 259 | private void migrateCatches(MigrationVersionResourceExecutor executor) {
|
| 258 | 260 | |
| 259 | 261 | Function<String, String> commentFormat = executor.commentFormat();
|
| ... | ... | @@ -395,7 +397,7 @@ public class DataSourceMigrationForVersion_9_0 extends ByMajorMigrationVersionRe |
| 395 | 397 | sample.topiaId,
|
| 396 | 398 | sample.topiaVersion,
|
| 397 | 399 | sample.topiaCreateDate,
|
| 398 | - DataDtoEntityContext.escapeString(sample.homeId),
|
|
| 400 | + SqlHelper.escapeString(StringCleaner.ALL.apply(sample.homeId)),
|
|
| 399 | 401 | stringFormat.apply(sample.comment),
|
| 400 | 402 | sample.set,
|
| 401 | 403 | sample.lastUpdateDate
|
| ... | ... | @@ -564,31 +566,39 @@ public class DataSourceMigrationForVersion_9_0 extends ByMajorMigrationVersionRe |
| 564 | 566 | sampleMeasure.topiaId,
|
| 565 | 567 | sampleMeasure.topiaVersion,
|
| 566 | 568 | sampleMeasure.topiaCreateDate,
|
| 567 | - DataDtoEntityContext.escapeString(sampleMeasure.homeId == null ? null : sampleMeasure.homeId.replaceAll("'", "")),
|
|
| 569 | + SqlHelper.escapeString(sampleMeasure.homeId == null ? null : sampleMeasure.homeId.replaceAll("'", "")),
|
|
| 568 | 570 | sampleMeasure.length,
|
| 569 | 571 | sampleMeasure.isLengthComputed,
|
| 570 | - DataDtoEntityContext.escapeString(sampleMeasure.picturesReferences == null ? null : sampleMeasure.picturesReferences.replaceAll("'", "")),
|
|
| 572 | + SqlHelper.escapeString(sampleMeasure.picturesReferences == null ? null : sampleMeasure.picturesReferences.replaceAll("'", "")),
|
|
| 571 | 573 | sampleMeasure.weight,
|
| 572 | 574 | sampleMeasure.isWeightComputed,
|
| 573 | 575 | sampleMeasure.count,
|
| 574 | 576 | sampleMeasure.acquisitionMode,
|
| 575 | - DataDtoEntityContext.escapeString(sampleMeasure.species),
|
|
| 577 | + SqlHelper.escapeString(sampleMeasure.species),
|
|
| 576 | 578 | sampleId,
|
| 577 | - DataDtoEntityContext.escapeString(sampleMeasure.sex),
|
|
| 579 | + SqlHelper.escapeString(sampleMeasure.sex),
|
|
| 578 | 580 | sampleMeasure.lastUpdateDate,
|
| 579 | - DataDtoEntityContext.escapeString(sampleMeasure.sizeMeasureType),
|
|
| 580 | - DataDtoEntityContext.escapeString(sampleMeasure.weightMeasureType),
|
|
| 581 | - DataDtoEntityContext.escapeString(sampleMeasure.tagNumber),
|
|
| 582 | - DataDtoEntityContext.escapeString(sampleMeasure.speciesFate),
|
|
| 581 | + SqlHelper.escapeString(sampleMeasure.sizeMeasureType),
|
|
| 582 | + SqlHelper.escapeString(sampleMeasure.weightMeasureType),
|
|
| 583 | + SqlHelper.escapeString(sampleMeasure.tagNumber),
|
|
| 584 | + SqlHelper.escapeString(sampleMeasure.speciesFate),
|
|
| 583 | 585 | sampleMeasure.sample_idx,
|
| 584 | - DataDtoEntityContext.escapeString(sampleMeasure.lengthMeasureMethod),
|
|
| 585 | - DataDtoEntityContext.escapeString(sampleMeasure.weightMeasureMethod)
|
|
| 586 | + SqlHelper.escapeString(sampleMeasure.lengthMeasureMethod),
|
|
| 587 | + SqlHelper.escapeString(sampleMeasure.weightMeasureMethod)
|
|
| 586 | 588 | ));
|
| 587 | 589 | }
|
| 588 | 590 | }
|
| 589 | 591 | |
| 590 | 592 | @Override
|
| 591 | 593 | public void generateFinalizeSqlScript(MigrationVersionResourceExecutor executor) {
|
| 594 | + long stringFixedCount = new FixStringHelper(executor).execute();
|
|
| 595 | + if (stringFixedCount > 0) {
|
|
| 596 | + log.warn(String.format("Fix %s string rows(s).", stringFixedCount));
|
|
| 597 | + }
|
|
| 598 | + long commentFixedCount = new FixCommentHelper(executor).execute();
|
|
| 599 | + if (commentFixedCount > 0) {
|
|
| 600 | + log.warn(String.format("Fix %s comment rows(s).", commentFixedCount));
|
|
| 601 | + }
|
|
| 592 | 602 | migrateIdx(executor, "ps_observation", "catch", "set");
|
| 593 | 603 | migrateIdx(executor, "ps_observation", "SampleMeasure", "sample");
|
| 594 | 604 | }
|
| ... | ... | @@ -22,6 +22,8 @@ package fr.ird.observe.spi.migration.v9; |
| 22 | 22 | * #L%
|
| 23 | 23 | */
|
| 24 | 24 | |
| 25 | +import fr.ird.observe.dto.StringCleaner;
|
|
| 26 | +import fr.ird.observe.persistence.SqlHelper;
|
|
| 25 | 27 | import fr.ird.observe.spi.context.DataDtoEntityContext;
|
| 26 | 28 | |
| 27 | 29 | import java.sql.Connection;
|
| ... | ... | @@ -56,19 +58,19 @@ public class DiscardedTargetCatchRecord { |
| 56 | 58 | |
| 57 | 59 | public static PreparedStatement prepareStatement(Connection connection) throws SQLException {
|
| 58 | 60 | return connection.prepareStatement("SELECT" +
|
| 59 | - /* 01 */ " REPLACE(tc.topiaId, '.TargetCatch', '.Catch')," +
|
|
| 60 | - /* 02 */ " tc.topiaVersion + 1," +
|
|
| 61 | - /* 03 */ " tc.topiaCreateDate," +
|
|
| 62 | - /* 04 */ " tc.homeId," +
|
|
| 63 | - /* 05 */ " tc.catchWeight," +
|
|
| 64 | - /* 06 */ " tc.weightCategory," +
|
|
| 65 | - /* 07 */ " tc.comment," +
|
|
| 66 | - /* 08 */ " tc.reasonForDiscard," +
|
|
| 67 | - /* 09 */ " tc.set," +
|
|
| 68 | - /* 10 */ " tc.lastUpdateDate," +
|
|
| 69 | - /* 11 */ " tc.well," +
|
|
| 70 | - /* 12 */ " -tc.set_idx," +
|
|
| 71 | - /* 13 */ " tc.weightMeasureMethod" +
|
|
| 61 | + /* 01 */ " REPLACE(tc.topiaId, '.TargetCatch', '.Catch')," +
|
|
| 62 | + /* 02 */ " tc.topiaVersion + 1," +
|
|
| 63 | + /* 03 */ " tc.topiaCreateDate," +
|
|
| 64 | + /* 04 */ " tc.homeId," +
|
|
| 65 | + /* 05 */ " tc.catchWeight," +
|
|
| 66 | + /* 06 */ " tc.weightCategory," +
|
|
| 67 | + /* 07 */ " tc.comment," +
|
|
| 68 | + /* 08 */ " tc.reasonForDiscard," +
|
|
| 69 | + /* 09 */ " tc.set," +
|
|
| 70 | + /* 10 */ " tc.lastUpdateDate," +
|
|
| 71 | + /* 11 */ " tc.well," +
|
|
| 72 | + /* 12 */ " -tc.set_idx," +
|
|
| 73 | + /* 13 */ " tc.weightMeasureMethod" +
|
|
| 72 | 74 | " FROM ps_observation.TargetCatch tc" +
|
| 73 | 75 | " WHERE tc.discarded");
|
| 74 | 76 | }
|
| ... | ... | @@ -132,24 +134,24 @@ public class DiscardedTargetCatchRecord { |
| 132 | 134 | "%17$s, " +
|
| 133 | 135 | "%18$s" +
|
| 134 | 136 | ");",
|
| 135 | - /*1*/ DataDtoEntityContext.escapeString(id),
|
|
| 137 | + /*1*/ SqlHelper.escapeString(id),
|
|
| 136 | 138 | /*2*/ topiaVersion,
|
| 137 | 139 | /*3*/ DataDtoEntityContext.timestamp(topiaCreateDate),
|
| 138 | - /*4*/ DataDtoEntityContext.escapeString(homeId),
|
|
| 140 | + /*4*/ SqlHelper.escapeString(StringCleaner.ALL.apply(homeId)),
|
|
| 139 | 141 | /*5*/ catchWeight,
|
| 140 | 142 | /*6*/ weightCategoryRecord.getMinWeight(),
|
| 141 | 143 | /*7*/ weightCategoryRecord.getMaxWeight(),
|
| 142 | 144 | /*8*/ null,
|
| 143 | 145 | /*9*/ getComment(weightCategoryRecord, commentFormat),
|
| 144 | - /*10*/ DataDtoEntityContext.escapeString(reasonForDiscardId),
|
|
| 145 | - /*11*/ DataDtoEntityContext.escapeString(weightCategoryRecord.getSpeciesId()),
|
|
| 146 | - /*12*/ DataDtoEntityContext.escapeString(DataSourceMigrationForVersion_9_0.SPECIES_FATE_5),
|
|
| 147 | - /*13*/ DataDtoEntityContext.escapeString(setId),
|
|
| 146 | + /*10*/ SqlHelper.escapeString(reasonForDiscardId),
|
|
| 147 | + /*11*/ SqlHelper.escapeString(weightCategoryRecord.getSpeciesId()),
|
|
| 148 | + /*12*/ SqlHelper.escapeString(DataSourceMigrationForVersion_9_0.SPECIES_FATE_5),
|
|
| 149 | + /*13*/ SqlHelper.escapeString(setId),
|
|
| 148 | 150 | /*14*/ DataDtoEntityContext.timestamp(lastUpdateDate),
|
| 149 | - /*15*/ DataDtoEntityContext.escapeString(getWell()),
|
|
| 151 | + /*15*/ SqlHelper.escapeString(StringCleaner.ALL.apply(well)),
|
|
| 150 | 152 | /*16*/ setIdx,
|
| 151 | - /*17*/ DataDtoEntityContext.escapeString(weightMeasureMethodId == null ? "fr.ird.referential.common.WeightMeasureMethod#666#03" : weightCategoryId),
|
|
| 152 | - /*18*/ DataDtoEntityContext.escapeString(DataSourceMigrationForVersion_9_0.INFORMATION_SOURCE_O)
|
|
| 153 | + /*17*/ SqlHelper.escapeString(weightMeasureMethodId == null ? "fr.ird.referential.common.WeightMeasureMethod#666#03" : weightCategoryId),
|
|
| 154 | + /*18*/ SqlHelper.escapeString(DataSourceMigrationForVersion_9_0.INFORMATION_SOURCE_O)
|
|
| 153 | 155 | );
|
| 154 | 156 | }
|
| 155 | 157 | |
| ... | ... | @@ -160,14 +162,4 @@ public class DiscardedTargetCatchRecord { |
| 160 | 162 | return stringFormat.apply(comment + "\n" + weightCategoryRecord.toComment());
|
| 161 | 163 | }
|
| 162 | 164 | |
| 163 | - public String getWell() {
|
|
| 164 | - String result = well;
|
|
| 165 | - if (result!=null) {
|
|
| 166 | - result = well.trim();
|
|
| 167 | - if (well.startsWith("'")) {
|
|
| 168 | - result = result.substring(1);
|
|
| 169 | - }
|
|
| 170 | - }
|
|
| 171 | - return result;
|
|
| 172 | - }
|
|
| 173 | 165 | } |
| 1 | +package fr.ird.observe.spi.migration.v9;
|
|
| 2 | + |
|
| 3 | +/*-
|
|
| 4 | + * #%L
|
|
| 5 | + * ObServe Core :: Persistence :: Resources
|
|
| 6 | + * %%
|
|
| 7 | + * Copyright (C) 2008 - 2022 IRD, Ultreia.io
|
|
| 8 | + * %%
|
|
| 9 | + * This program is free software: you can redistribute it and/or modify
|
|
| 10 | + * it under the terms of the GNU General Public License as
|
|
| 11 | + * published by the Free Software Foundation, either version 3 of the
|
|
| 12 | + * License, or (at your option) any later version.
|
|
| 13 | + *
|
|
| 14 | + * This program is distributed in the hope that it will be useful,
|
|
| 15 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
| 16 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
| 17 | + * GNU General Public License for more details.
|
|
| 18 | + *
|
|
| 19 | + * You should have received a copy of the GNU General Public
|
|
| 20 | + * License along with this program. If not, see
|
|
| 21 | + * <http://www.gnu.org/licenses/gpl-3.0.html>.
|
|
| 22 | + * #L%
|
|
| 23 | + */
|
|
| 24 | + |
|
| 25 | +import org.apache.logging.log4j.LogManager;
|
|
| 26 | +import org.apache.logging.log4j.Logger;
|
|
| 27 | +import org.nuiton.topia.service.migration.resources.MigrationVersionResourceExecutor;
|
|
| 28 | + |
|
| 29 | +import java.sql.PreparedStatement;
|
|
| 30 | +import java.sql.ResultSet;
|
|
| 31 | +import java.util.Objects;
|
|
| 32 | +import java.util.concurrent.atomic.AtomicLong;
|
|
| 33 | +import java.util.function.Function;
|
|
| 34 | + |
|
| 35 | +/**
|
|
| 36 | + * To auto-trim string comment fields.
|
|
| 37 | + * <p>
|
|
| 38 | + * <strong>Note:</strong> If fixed value is empty or blank then set {@code null} value.
|
|
| 39 | + * <p>
|
|
| 40 | + * Created on 11/11/2022.
|
|
| 41 | + *
|
|
| 42 | + * @author Tony Chemit - dev@tchemit.fr
|
|
| 43 | + * @since 9.0.17
|
|
| 44 | + */
|
|
| 45 | +public class FixCommentHelper {
|
|
| 46 | + |
|
| 47 | + private static final Logger log = LogManager.getLogger(FixCommentHelper.class);
|
|
| 48 | + |
|
| 49 | + private final MigrationVersionResourceExecutor executor;
|
|
| 50 | + private final AtomicLong count = new AtomicLong();
|
|
| 51 | + private final Function<String, String> commentFormat;
|
|
| 52 | + |
|
| 53 | + public FixCommentHelper(MigrationVersionResourceExecutor executor) {
|
|
| 54 | + this.executor = Objects.requireNonNull(executor);
|
|
| 55 | + commentFormat = executor.commentFormat();
|
|
| 56 | + }
|
|
| 57 | + |
|
| 58 | + public long execute() {
|
|
| 59 | + |
|
| 60 | + fixField("common.Vessel", "comment");
|
|
| 61 | + |
|
| 62 | + fixField("ll_common.GearUseFeatures", "comment");
|
|
| 63 | + fixField("ll_common.Program", "comment");
|
|
| 64 | + fixField("ll_common.Trip", "generalComment");
|
|
| 65 | + fixField("ll_common.Trip", "logbookComment");
|
|
| 66 | + fixField("ll_common.Trip", "observationsComment");
|
|
| 67 | + |
|
| 68 | + fixField("ll_landing.Landing", "comment");
|
|
| 69 | + |
|
| 70 | + fixField("ll_logbook.Activity", "comment");
|
|
| 71 | + fixField("ll_logbook.Catch", "comment");
|
|
| 72 | + fixField("ll_logbook.Set", "comment");
|
|
| 73 | + fixField("ll_logbook.Sample", "comment");
|
|
| 74 | + |
|
| 75 | + fixField("ll_observation.Activity", "comment");
|
|
| 76 | + fixField("ll_observation.Branchline", "comment");
|
|
| 77 | + fixField("ll_observation.Catch", "comment");
|
|
| 78 | + fixField("ll_observation.Set", "comment");
|
|
| 79 | + |
|
| 80 | + fixField("ps_common.GearUseFeatures", "comment");
|
|
| 81 | + fixField("ps_common.Program", "comment");
|
|
| 82 | + fixField("ps_common.Trip", "generalComment");
|
|
| 83 | + fixField("ps_common.Trip", "logbookComment");
|
|
| 84 | + fixField("ps_common.Trip", "observationsComment");
|
|
| 85 | + |
|
| 86 | + fixField("ps_localmarket.Batch", "origin");
|
|
| 87 | + fixField("ps_localmarket.Sample", "comment");
|
|
| 88 | + fixField("ps_localmarket.SampleSpecies", "comment");
|
|
| 89 | + fixField("ps_localmarket.Survey", "comment");
|
|
| 90 | + |
|
| 91 | + fixField("ps_logbook.Activity", "comment");
|
|
| 92 | + fixField("ps_logbook.Catch", "comment");
|
|
| 93 | + fixField("ps_logbook.FloatingObject", "comment");
|
|
| 94 | + fixField("ps_logbook.Route", "comment");
|
|
| 95 | + fixField("ps_logbook.Sample", "comment");
|
|
| 96 | + fixField("ps_logbook.SampleSpecies", "comment");
|
|
| 97 | + fixField("ps_logbook.TransmittingBuoy", "comment");
|
|
| 98 | + |
|
| 99 | + fixField("ps_observation.Activity", "comment");
|
|
| 100 | + fixField("ps_observation.Catch", "comment");
|
|
| 101 | + fixField("ps_observation.FloatingObject", "comment");
|
|
| 102 | + fixField("ps_observation.NonTargetCatchRelease", "comment");
|
|
| 103 | + fixField("ps_observation.Route", "comment");
|
|
| 104 | + fixField("ps_observation.Set", "comment");
|
|
| 105 | + fixField("ps_observation.TransmittingBuoy", "comment");
|
|
| 106 | + return count.get();
|
|
| 107 | + }
|
|
| 108 | + |
|
| 109 | + public void fixField(String gav, String field) {
|
|
| 110 | + |
|
| 111 | + executor.doSqlWork(connection -> {
|
|
| 112 | + try (PreparedStatement statement = connection.prepareStatement(String.format("SELECT topiaId, %2$s FROM %1$s WHERE %2$s IS NOT NULL", gav, field))) {
|
|
| 113 | + try (ResultSet resultSet = statement.executeQuery()) {
|
|
| 114 | + while (resultSet.next()) {
|
|
| 115 | + String fieldValue = resultSet.getString(2);
|
|
| 116 | + String fixFieldValue = fieldValue.trim();
|
|
| 117 | + if (!fieldValue.equals(fixFieldValue)) {
|
|
| 118 | + if (fixFieldValue.isEmpty()) {
|
|
| 119 | + fixFieldValue = null;
|
|
| 120 | + }
|
|
| 121 | + String id = resultSet.getString(1);
|
|
| 122 | + String finalFieldValue = commentFormat.apply(fixFieldValue);
|
|
| 123 | + log.info(String.format("Fix comment field %s.%s[%s] from\n[%s]\nto\n[%s]", gav, field, id, fieldValue, fixFieldValue));
|
|
| 124 | + executor.writeSql(String.format("UPDATE %s SET %s = %s WHERE topiaId = '%s';", gav, field, finalFieldValue, id));
|
|
| 125 | + count.incrementAndGet();
|
|
| 126 | + }
|
|
| 127 | + }
|
|
| 128 | + }
|
|
| 129 | + }
|
|
| 130 | + });
|
|
| 131 | + |
|
| 132 | + }
|
|
| 133 | +} |
| 1 | +package fr.ird.observe.spi.migration.v9;
|
|
| 2 | + |
|
| 3 | +/*-
|
|
| 4 | + * #%L
|
|
| 5 | + * ObServe Core :: Persistence :: Resources
|
|
| 6 | + * %%
|
|
| 7 | + * Copyright (C) 2008 - 2022 IRD, Ultreia.io
|
|
| 8 | + * %%
|
|
| 9 | + * This program is free software: you can redistribute it and/or modify
|
|
| 10 | + * it under the terms of the GNU General Public License as
|
|
| 11 | + * published by the Free Software Foundation, either version 3 of the
|
|
| 12 | + * License, or (at your option) any later version.
|
|
| 13 | + *
|
|
| 14 | + * This program is distributed in the hope that it will be useful,
|
|
| 15 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
| 16 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
| 17 | + * GNU General Public License for more details.
|
|
| 18 | + *
|
|
| 19 | + * You should have received a copy of the GNU General Public
|
|
| 20 | + * License along with this program. If not, see
|
|
| 21 | + * <http://www.gnu.org/licenses/gpl-3.0.html>.
|
|
| 22 | + * #L%
|
|
| 23 | + */
|
|
| 24 | + |
|
| 25 | +import fr.ird.observe.dto.StringCleaner;
|
|
| 26 | +import fr.ird.observe.persistence.SqlHelper;
|
|
| 27 | +import org.apache.logging.log4j.LogManager;
|
|
| 28 | +import org.apache.logging.log4j.Logger;
|
|
| 29 | +import org.nuiton.topia.service.migration.resources.MigrationVersionResourceExecutor;
|
|
| 30 | + |
|
| 31 | +import java.sql.Connection;
|
|
| 32 | +import java.sql.PreparedStatement;
|
|
| 33 | +import java.sql.ResultSet;
|
|
| 34 | +import java.sql.SQLException;
|
|
| 35 | +import java.util.Collections;
|
|
| 36 | +import java.util.Map;
|
|
| 37 | +import java.util.Objects;
|
|
| 38 | +import java.util.Set;
|
|
| 39 | +import java.util.TreeMap;
|
|
| 40 | +import java.util.TreeSet;
|
|
| 41 | +import java.util.concurrent.atomic.AtomicLong;
|
|
| 42 | + |
|
| 43 | +/**
|
|
| 44 | + * To auto-trim string fields and remove any {@code '} characters inside it.
|
|
| 45 | + * <p>
|
|
| 46 | + * <strong>Note:</strong> If fixed value is empty or blank then set {@code null} value.
|
|
| 47 | + * <p>
|
|
| 48 | + * Created on 11/11/2022.
|
|
| 49 | + *
|
|
| 50 | + * @author Tony Chemit - dev@tchemit.fr
|
|
| 51 | + * @since 9.0.17
|
|
| 52 | + */
|
|
| 53 | +public class FixStringHelper {
|
|
| 54 | + |
|
| 55 | + private static final Logger log = LogManager.getLogger(FixStringHelper.class);
|
|
| 56 | + |
|
| 57 | + private final MigrationVersionResourceExecutor executor;
|
|
| 58 | + private final AtomicLong count = new AtomicLong();
|
|
| 59 | + |
|
| 60 | + public FixStringHelper(MigrationVersionResourceExecutor executor) {
|
|
| 61 | + this.executor = Objects.requireNonNull(executor);
|
|
| 62 | + }
|
|
| 63 | + |
|
| 64 | + static class FixStringEntityModel {
|
|
| 65 | + |
|
| 66 | + private final String gav;
|
|
| 67 | + private final Map<String, StringCleaner> fieldsActions;
|
|
| 68 | + private final Set<String> fieldsDeleteIfNull;
|
|
| 69 | + |
|
| 70 | + static FixStringEntityModel on(String gav, StringCleaner cleaner, String firstField, String... fields) {
|
|
| 71 | + return new FixStringEntityModel(gav).add(cleaner, firstField, fields);
|
|
| 72 | + }
|
|
| 73 | + |
|
| 74 | + static FixStringEntityModel onI18n(String gav, StringCleaner cleaner, String firstField, String... fields) {
|
|
| 75 | + return on(gav, StringCleaner.TRIM, "label1", "label2", "label3").add(cleaner, firstField, fields);
|
|
| 76 | + }
|
|
| 77 | + |
|
| 78 | + private FixStringEntityModel(String gav) {
|
|
| 79 | + this.gav = gav;
|
|
| 80 | + this.fieldsActions = new TreeMap<>();
|
|
| 81 | + this.fieldsDeleteIfNull = new TreeSet<>();
|
|
| 82 | + }
|
|
| 83 | + |
|
| 84 | + FixStringEntityModel add(StringCleaner cleaner, String firstField, String... fields) {
|
|
| 85 | + fieldsActions.put(firstField, cleaner);
|
|
| 86 | + for (String field : fields) {
|
|
| 87 | + fieldsActions.put(field, cleaner);
|
|
| 88 | + }
|
|
| 89 | + return this;
|
|
| 90 | + }
|
|
| 91 | + |
|
| 92 | + FixStringEntityModel deleteIfNull(String firstField, String... fields) {
|
|
| 93 | + fieldsDeleteIfNull.add(firstField);
|
|
| 94 | + Collections.addAll(fieldsDeleteIfNull, fields);
|
|
| 95 | + return this;
|
|
| 96 | + }
|
|
| 97 | + |
|
| 98 | + }
|
|
| 99 | + |
|
| 100 | + public long execute() {
|
|
| 101 | + executor.doSqlWork(connection -> {
|
|
| 102 | + execute(connection, FixStringEntityModel.onI18n("common.Country", StringCleaner.ALL, "code", "iso2Code", "iso3Code"));
|
|
| 103 | + execute(connection, FixStringEntityModel.onI18n("common.DataQuality", StringCleaner.ALL, "code"));
|
|
| 104 | + execute(connection, FixStringEntityModel.onI18n("common.FpaZone", StringCleaner.ALL, "code"));
|
|
| 105 | + execute(connection, FixStringEntityModel.onI18n("common.Gear", StringCleaner.ALL, "code"));
|
|
| 106 | + execute(connection, FixStringEntityModel.onI18n("common.GearCharacteristic", StringCleaner.ALL, "code"));
|
|
| 107 | + execute(connection, FixStringEntityModel.onI18n("common.GearCharacteristicType", StringCleaner.ALL, "code"));
|
|
| 108 | + execute(connection, FixStringEntityModel.onI18n("common.Harbour", StringCleaner.ALL, "code"));
|
|
| 109 | + execute(connection, FixStringEntityModel.on("common.LengthLengthParameter", StringCleaner.ALL, "coefficients", "inputOutputFormula", "outputInputFormula"));
|
|
| 110 | + execute(connection, FixStringEntityModel.onI18n("common.LengthMeasureMethod", StringCleaner.ALL, "code"));
|
|
| 111 | + execute(connection, FixStringEntityModel.on("common.LengthWeightParameter", StringCleaner.ALL, "coefficients", "lengthWeightFormula", "weightLengthFormula"));
|
|
| 112 | + execute(connection, FixStringEntityModel.onI18n("common.Ocean", StringCleaner.ALL, "code"));
|
|
| 113 | + execute(connection, FixStringEntityModel.onI18n("common.Organism", StringCleaner.ALL, "code"));
|
|
| 114 | + // not removing single quotes
|
|
| 115 | + execute(connection, FixStringEntityModel.on("common.Person", StringCleaner.TRIM, "firstName", "lastName"));
|
|
| 116 | + execute(connection, FixStringEntityModel.onI18n("common.Sex", StringCleaner.ALL, "code"));
|
|
| 117 | + execute(connection, FixStringEntityModel.on("common.ShipOwner", StringCleaner.ALL, "code", "label"));
|
|
| 118 | + execute(connection, FixStringEntityModel.onI18n("common.SizeMeasureType", StringCleaner.ALL, "code"));
|
|
| 119 | + execute(connection, FixStringEntityModel.onI18n("common.Species", StringCleaner.ALL, "scientificLabel"));
|
|
| 120 | + execute(connection, FixStringEntityModel.onI18n("common.SpeciesGroup", StringCleaner.ALL, "code"));
|
|
| 121 | + execute(connection, FixStringEntityModel.onI18n("common.SpeciesGroupReleaseMode", StringCleaner.ALL, "code"));
|
|
| 122 | + execute(connection, FixStringEntityModel.onI18n("common.SpeciesList", StringCleaner.ALL, "code"));
|
|
| 123 | + execute(connection, FixStringEntityModel.onI18n("common.Vessel", StringCleaner.ALL, "code"));
|
|
| 124 | + execute(connection, FixStringEntityModel.onI18n("common.VesselType", StringCleaner.ALL, "code"));
|
|
| 125 | + execute(connection, FixStringEntityModel.on("common.VesselSizeCategory", StringCleaner.ALL, "code", "capacityLabel", "gaugeLabel"));
|
|
| 126 | + execute(connection, FixStringEntityModel.onI18n("common.WeightMeasureMethod", StringCleaner.ALL, "code"));
|
|
| 127 | + execute(connection, FixStringEntityModel.onI18n("common.WeightMeasureType", StringCleaner.ALL, "code"));
|
|
| 128 | + execute(connection, FixStringEntityModel.onI18n("common.Wind", StringCleaner.ALL, "code"));
|
|
| 129 | + |
|
| 130 | + execute(connection, FixStringEntityModel.onI18n("ll_common.BaitSettingStatus", StringCleaner.ALL, "code"));
|
|
| 131 | + execute(connection, FixStringEntityModel.onI18n("ll_common.BaitType", StringCleaner.ALL, "code"));
|
|
| 132 | + execute(connection, FixStringEntityModel.onI18n("ll_common.CatchFate", StringCleaner.ALL, "code"));
|
|
| 133 | + execute(connection, FixStringEntityModel.onI18n("ll_common.HealthStatus", StringCleaner.ALL, "code"));
|
|
| 134 | + execute(connection, FixStringEntityModel.onI18n("ll_common.HookSize", StringCleaner.ALL, "code"));
|
|
| 135 | + execute(connection, FixStringEntityModel.onI18n("ll_common.HookType", StringCleaner.ALL, "code"));
|
|
| 136 | + execute(connection, FixStringEntityModel.onI18n("ll_common.LightsticksColor", StringCleaner.ALL, "code"));
|
|
| 137 | + execute(connection, FixStringEntityModel.onI18n("ll_common.LightsticksType", StringCleaner.ALL, "code"));
|
|
| 138 | + execute(connection, FixStringEntityModel.onI18n("ll_common.LineType", StringCleaner.ALL, "code"));
|
|
| 139 | + execute(connection, FixStringEntityModel.onI18n("ll_common.MitigationType", StringCleaner.ALL, "code"));
|
|
| 140 | + execute(connection, FixStringEntityModel.onI18n("ll_common.ObservationMethod", StringCleaner.ALL, "code"));
|
|
| 141 | + execute(connection, FixStringEntityModel.onI18n("ll_common.OnBoardProcessing", StringCleaner.ALL, "code"));
|
|
| 142 | + execute(connection, FixStringEntityModel.onI18n("ll_common.Program", StringCleaner.ALL, "code"));
|
|
| 143 | + execute(connection, FixStringEntityModel.onI18n("ll_common.SettingShape", StringCleaner.ALL, "code"));
|
|
| 144 | + execute(connection, FixStringEntityModel.onI18n("ll_common.TripType", StringCleaner.ALL, "code"));
|
|
| 145 | + execute(connection, FixStringEntityModel.onI18n("ll_common.VesselActivity", StringCleaner.ALL, "code"));
|
|
| 146 | + execute(connection, FixStringEntityModel.onI18n("ll_common.WeightDeterminationMethod", StringCleaner.ALL, "code"));
|
|
| 147 | + |
|
| 148 | + execute(connection, FixStringEntityModel.onI18n("ll_landing.Company", StringCleaner.ALL, "code"));
|
|
| 149 | + execute(connection, FixStringEntityModel.onI18n("ll_landing.Conservation", StringCleaner.ALL, "code"));
|
|
| 150 | + execute(connection, FixStringEntityModel.onI18n("ll_landing.DataSource", StringCleaner.ALL, "code"));
|
|
| 151 | + |
|
| 152 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.BaitHaulingStatus", StringCleaner.ALL, "code"));
|
|
| 153 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.EncounterType", StringCleaner.ALL, "code"));
|
|
| 154 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.HookPosition", StringCleaner.ALL, "code"));
|
|
| 155 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.ItemHorizontalPosition", StringCleaner.ALL, "code"));
|
|
| 156 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.ItemVerticalPosition", StringCleaner.ALL, "code"));
|
|
| 157 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.MaturityStatus", StringCleaner.ALL, "code"));
|
|
| 158 | + execute(connection, FixStringEntityModel.on("ll_observation.SensorBrand", StringCleaner.ALL, "brandName", "code"));
|
|
| 159 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.SensorDataFormat", StringCleaner.ALL, "code"));
|
|
| 160 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.SensorType", StringCleaner.ALL, "code"));
|
|
| 161 | + execute(connection, FixStringEntityModel.onI18n("ll_observation.StomachFullness", StringCleaner.ALL, "code"));
|
|
| 162 | + |
|
| 163 | + execute(connection, FixStringEntityModel.onI18n("ps_common.AcquisitionStatus", StringCleaner.ALL, "code"));
|
|
| 164 | + // not set to null if empty (special value FOB has an empty code)
|
|
| 165 | + execute(connection, FixStringEntityModel.onI18n("ps_common.ObjectMaterial", StringCleaner.REMOVE_SINGLE_QUOTE_AND_TRIM, "code"));
|
|
| 166 | + execute(connection, FixStringEntityModel.onI18n("ps_common.ObjectMaterialType", StringCleaner.ALL, "code"));
|
|
| 167 | + execute(connection, FixStringEntityModel.onI18n("ps_common.ObjectOperation", StringCleaner.ALL, "code"));
|
|
| 168 | + execute(connection, FixStringEntityModel.onI18n("ps_common.ObservedSystem", StringCleaner.ALL, "code"));
|
|
| 169 | + execute(connection, FixStringEntityModel.onI18n("ps_common.Program", StringCleaner.ALL, "code"));
|
|
| 170 | + execute(connection, FixStringEntityModel.onI18n("ps_common.ReasonForNoFishing", StringCleaner.ALL, "code"));
|
|
| 171 | + execute(connection, FixStringEntityModel.onI18n("ps_common.ReasonForNullSet", StringCleaner.ALL, "code"));
|
|
| 172 | + execute(connection, FixStringEntityModel.onI18n("ps_common.SampleType", StringCleaner.ALL, "code"));
|
|
| 173 | + execute(connection, FixStringEntityModel.onI18n("ps_common.SchoolType", StringCleaner.ALL, "code"));
|
|
| 174 | + execute(connection, FixStringEntityModel.onI18n("ps_common.SpeciesFate", StringCleaner.ALL, "code"));
|
|
| 175 | + execute(connection, FixStringEntityModel.onI18n("ps_common.TransmittingBuoyOperation", StringCleaner.ALL, "code"));
|
|
| 176 | + execute(connection, FixStringEntityModel.onI18n("ps_common.TransmittingBuoyOwnership", StringCleaner.ALL, "code"));
|
|
| 177 | + execute(connection, FixStringEntityModel.onI18n("ps_common.TransmittingBuoyType", StringCleaner.ALL, "code"));
|
|
| 178 | + execute(connection, FixStringEntityModel.onI18n("ps_common.VesselActivity", StringCleaner.ALL, "code"));
|
|
| 179 | + execute(connection, FixStringEntityModel.onI18n("ps_common.WeightCategory", StringCleaner.ALL, "code"));
|
|
| 180 | + |
|
| 181 | + execute(connection, FixStringEntityModel.onI18n("ps_landing.Destination", StringCleaner.ALL, "code"));
|
|
| 182 | + execute(connection, FixStringEntityModel.onI18n("ps_landing.Fate", StringCleaner.ALL, "code"));
|
|
| 183 | + |
|
| 184 | + execute(connection, FixStringEntityModel.onI18n("ps_localmarket.BatchComposition", StringCleaner.ALL, "code"));
|
|
| 185 | + execute(connection, FixStringEntityModel.onI18n("ps_localmarket.BatchWeightType", StringCleaner.ALL, "code"));
|
|
| 186 | + execute(connection, FixStringEntityModel.onI18n("ps_localmarket.Packaging", StringCleaner.ALL, "code"));
|
|
| 187 | + |
|
| 188 | + execute(connection, FixStringEntityModel.onI18n("ps_logbook.InformationSource", StringCleaner.ALL, "code"));
|
|
| 189 | + execute(connection, FixStringEntityModel.onI18n("ps_logbook.SampleQuality", StringCleaner.ALL, "code"));
|
|
| 190 | + execute(connection, FixStringEntityModel.onI18n("ps_logbook.SetSuccessStatus", StringCleaner.ALL, "code"));
|
|
| 191 | + execute(connection, FixStringEntityModel.onI18n("ps_logbook.WellContentStatus", StringCleaner.ALL, "code"));
|
|
| 192 | + execute(connection, FixStringEntityModel.onI18n("ps_logbook.WellSamplingConformity", StringCleaner.ALL, "code"));
|
|
| 193 | + execute(connection, FixStringEntityModel.onI18n("ps_logbook.WellSamplingStatus", StringCleaner.ALL, "code"));
|
|
| 194 | + |
|
| 195 | + execute(connection, FixStringEntityModel.onI18n("ps_observation.DetectionMode", StringCleaner.ALL, "code"));
|
|
| 196 | + execute(connection, FixStringEntityModel.onI18n("ps_observation.InformationSource", StringCleaner.ALL, "code"));
|
|
| 197 | + execute(connection, FixStringEntityModel.onI18n("ps_observation.NonTargetCatchReleaseConformity", StringCleaner.ALL, "code"));
|
|
| 198 | + execute(connection, FixStringEntityModel.onI18n("ps_observation.NonTargetCatchReleaseStatus", StringCleaner.ALL, "code"));
|
|
| 199 | + execute(connection, FixStringEntityModel.onI18n("ps_observation.NonTargetCatchReleasingTime", StringCleaner.ALL, "code"));
|
|
| 200 | + execute(connection, FixStringEntityModel.onI18n("ps_observation.ReasonForDiscard", StringCleaner.ALL, "code"));
|
|
| 201 | + execute(connection, FixStringEntityModel.onI18n("ps_observation.SpeciesStatus", StringCleaner.ALL, "code"));
|
|
| 202 | + execute(connection, FixStringEntityModel.onI18n("ps_observation.SurroundingActivity", StringCleaner.ALL, "code"));
|
|
| 203 | + |
|
| 204 | + execute(connection, FixStringEntityModel.on("ll_common.GearUseFeaturesMeasurement", StringCleaner.ALL, "measurementValue").deleteIfNull("measurementValue"));
|
|
| 205 | + execute(connection, FixStringEntityModel.on("ll_common.Trip", StringCleaner.ALL, "ersId", "homeId"));
|
|
| 206 | + |
|
| 207 | + execute(connection, FixStringEntityModel.on("ll_logbook.Catch", StringCleaner.ALL, "photoReferences", "tagNumber"));
|
|
| 208 | + execute(connection, FixStringEntityModel.on("ll_logbook.SamplePart", StringCleaner.ALL, "tagNumber"));
|
|
| 209 | + execute(connection, FixStringEntityModel.on("ll_logbook.Set", StringCleaner.ALL, "homeId"));
|
|
| 210 | + |
|
| 211 | + execute(connection, FixStringEntityModel.on("ll_observation.Catch", StringCleaner.ALL, "photoReferences", "tagNumber"));
|
|
| 212 | + execute(connection, FixStringEntityModel.on("ll_observation.SensorUsed", StringCleaner.ALL, "sensorSerialNo"));
|
|
| 213 | + execute(connection, FixStringEntityModel.on("ll_observation.Set", StringCleaner.ALL, "homeId"));
|
|
| 214 | + execute(connection, FixStringEntityModel.on("ll_observation.Tdr", StringCleaner.ALL, "serialNo"));
|
|
| 215 | + |
|
| 216 | + execute(connection, FixStringEntityModel.on("ps_common.GearUseFeaturesMeasurement", StringCleaner.ALL, "measurementValue").deleteIfNull("measurementValue"));
|
|
| 217 | + execute(connection, FixStringEntityModel.on("ps_common.Trip", StringCleaner.ALL, "ersId", "formsUrl", "homeId", "reportsUrl"));
|
|
| 218 | + |
|
| 219 | + execute(connection, FixStringEntityModel.on("ps_localmarket.Sample", StringCleaner.ALL, "number"));
|
|
| 220 | + |
|
| 221 | + execute(connection, FixStringEntityModel.on("ps_logbook.Catch", StringCleaner.ALL, "well"));
|
|
| 222 | + execute(connection, FixStringEntityModel.on("ps_logbook.FloatingObject", StringCleaner.ALL, "supportVesselName"));
|
|
| 223 | + execute(connection, FixStringEntityModel.on("ps_logbook.Sample", StringCleaner.ALL, "well"));
|
|
| 224 | + execute(connection, FixStringEntityModel.on("ps_logbook.TransmittingBuoy", StringCleaner.ALL, "code"));
|
|
| 225 | + execute(connection, FixStringEntityModel.on("ps_logbook.WellPlan", StringCleaner.ALL, "well"));
|
|
| 226 | + |
|
| 227 | + execute(connection, FixStringEntityModel.on("ps_observation.Activity", StringCleaner.ALL, "ersId"));
|
|
| 228 | + execute(connection, FixStringEntityModel.on("ps_observation.FloatingObject", StringCleaner.ALL, "supportVesselName"));
|
|
| 229 | + execute(connection, FixStringEntityModel.on("ps_observation.SampleMeasure", StringCleaner.ALL, "picturesReferences", "tagNumber"));
|
|
| 230 | + execute(connection, FixStringEntityModel.on("ps_observation.Set", StringCleaner.ALL, "supportVesselName"));
|
|
| 231 | + execute(connection, FixStringEntityModel.on("ps_observation.TransmittingBuoy", StringCleaner.ALL, "code"));
|
|
| 232 | + });
|
|
| 233 | + return count.get();
|
|
| 234 | + }
|
|
| 235 | + |
|
| 236 | + void execute(Connection connection, FixStringEntityModel model) throws SQLException {
|
|
| 237 | + for (Map.Entry<String, StringCleaner> entry : model.fieldsActions.entrySet()) {
|
|
| 238 | + execute(connection, model.gav, entry.getKey(), entry.getValue(), model.fieldsDeleteIfNull.contains(entry.getKey()));
|
|
| 239 | + }
|
|
| 240 | + }
|
|
| 241 | + |
|
| 242 | + void execute(Connection connection, String gav, String field, StringCleaner cleaner, boolean deleteIfNull) throws SQLException {
|
|
| 243 | + try (PreparedStatement statement = connection.prepareStatement(String.format("SELECT topiaId, %2$s FROM %1$s WHERE %2$s IS NOT NULL", gav, field))) {
|
|
| 244 | + try (ResultSet resultSet = statement.executeQuery()) {
|
|
| 245 | + while (resultSet.next()) {
|
|
| 246 | + String fieldValue = resultSet.getString(2);
|
|
| 247 | + String fixFieldValue = cleaner.apply(fieldValue);
|
|
| 248 | + if (!fieldValue.equals(fixFieldValue)) {
|
|
| 249 | + String id = resultSet.getString(1);
|
|
| 250 | + if (deleteIfNull && fixFieldValue == null) {
|
|
| 251 | + log.warn(String.format("Delete row since field is empty %s.%s[%s] (was '%s')", gav, field, id, fieldValue));
|
|
| 252 | + executor.writeSql(String.format("DELETE FROM %1$s WHERE topiaId = '%2$s';", gav, id));
|
|
| 253 | + } else {
|
|
| 254 | + log.info(String.format("Fix string field %s.%s[%s] from\n[%s]\n to\n[%s]", gav, field, id, fieldValue, fixFieldValue));
|
|
| 255 | + String finalFieldValue = SqlHelper.escapeString(fixFieldValue);
|
|
| 256 | + executor.writeSql(String.format("UPDATE %1$s SET %2$s = %3$s WHERE topiaId = '%4$s';", gav, field, finalFieldValue, id));
|
|
| 257 | + }
|
|
| 258 | + count.incrementAndGet();
|
|
| 259 | + }
|
|
| 260 | + }
|
|
| 261 | + }
|
|
| 262 | + }
|
|
| 263 | + }
|
|
| 264 | +} |
| ... | ... | @@ -22,6 +22,8 @@ package fr.ird.observe.spi.migration.v9; |
| 22 | 22 | * #L%
|
| 23 | 23 | */
|
| 24 | 24 | |
| 25 | +import fr.ird.observe.dto.StringCleaner;
|
|
| 26 | +import fr.ird.observe.persistence.SqlHelper;
|
|
| 25 | 27 | import fr.ird.observe.spi.context.DataDtoEntityContext;
|
| 26 | 28 | |
| 27 | 29 | import java.sql.Connection;
|
| ... | ... | @@ -42,19 +44,19 @@ class NotDiscardedTargetCatchRecord { |
| 42 | 44 | |
| 43 | 45 | public static PreparedStatement prepareStatement(Connection connection) throws SQLException {
|
| 44 | 46 | return connection.prepareStatement("SELECT" +
|
| 45 | - /* 01 */ " REPLACE(tc.topiaId, '.TargetCatch', '.Catch')," +
|
|
| 46 | - /* 02 */ " tc.topiaVersion + 1," +
|
|
| 47 | - /* 03 */ " tc.topiaCreateDate," +
|
|
| 48 | - /* 04 */ " tc.homeId," +
|
|
| 49 | - /* 05 */ " tc.catchWeight," +
|
|
| 50 | - /* 06 */ " tc.weightCategory," +
|
|
| 51 | - /* 07 */ " tc.comment," +
|
|
| 52 | - /* 08 */ " tc.set," +
|
|
| 53 | - /* 09 */ " tc.lastUpdateDate," +
|
|
| 54 | - /* 10 */ " tc.well," +
|
|
| 55 | - /* 11 */ " -tc.set_idx," +
|
|
| 56 | - /* 12 */ " tc.weightMeasureMethod," +
|
|
| 57 | - /* 13 */ " s.targetcatchcompositionestimatedbyobserver " +
|
|
| 47 | + /* 01 */ " REPLACE(tc.topiaId, '.TargetCatch', '.Catch')," +
|
|
| 48 | + /* 02 */ " tc.topiaVersion + 1," +
|
|
| 49 | + /* 03 */ " tc.topiaCreateDate," +
|
|
| 50 | + /* 04 */ " tc.homeId," +
|
|
| 51 | + /* 05 */ " tc.catchWeight," +
|
|
| 52 | + /* 06 */ " tc.weightCategory," +
|
|
| 53 | + /* 07 */ " tc.comment," +
|
|
| 54 | + /* 08 */ " tc.set," +
|
|
| 55 | + /* 09 */ " tc.lastUpdateDate," +
|
|
| 56 | + /* 10 */ " tc.well," +
|
|
| 57 | + /* 11 */ " -tc.set_idx," +
|
|
| 58 | + /* 12 */ " tc.weightMeasureMethod," +
|
|
| 59 | + /* 13 */ " s.targetcatchcompositionestimatedbyobserver " +
|
|
| 58 | 60 | " FROM ps_observation.TargetCatch tc INNER JOIN ps_observation.set s on s.topiaId = tc.set" +
|
| 59 | 61 | " WHERE NOT tc.discarded AND NOT ( weightCategory IS NULL AND catchweight IS NULL AND well IS NULL AND broughtondeck IS NULL AND reasonfordiscard IS NULL )");
|
| 60 | 62 | }
|
| ... | ... | @@ -131,24 +133,24 @@ class NotDiscardedTargetCatchRecord { |
| 131 | 133 | "%16$s, " +
|
| 132 | 134 | "%17$s, " +
|
| 133 | 135 | "%18$s);",
|
| 134 | - /*1*/ DataDtoEntityContext.escapeString(id),
|
|
| 136 | + /*1*/ SqlHelper.escapeString(id),
|
|
| 135 | 137 | /*2*/ topiaVersion,
|
| 136 | 138 | /*3*/ DataDtoEntityContext.timestamp(topiaCreateDate),
|
| 137 | - /*4*/ DataDtoEntityContext.escapeString(homeId),
|
|
| 139 | + /*4*/ SqlHelper.escapeString(StringCleaner.ALL.apply(homeId)),
|
|
| 138 | 140 | /*5*/ catchWeight,
|
| 139 | 141 | /*6*/ weightCategoryRecord.getMinWeight(),
|
| 140 | 142 | /*7*/ weightCategoryRecord.getMaxWeight(),
|
| 141 | 143 | /*8*/ null,
|
| 142 | 144 | /*9*/ getComment(weightCategoryRecord, commentFormat),
|
| 143 | 145 | /*10*/ null,
|
| 144 | - /*11*/ DataDtoEntityContext.escapeString(weightCategoryRecord.getSpeciesId()),
|
|
| 145 | - /*12*/ DataDtoEntityContext.escapeString("10".equals(weightCategoryRecord.getCode()) ? DataSourceMigrationForVersion_9_0.SPECIES_FATE_15 : DataSourceMigrationForVersion_9_0.SPECIES_FATE_6),
|
|
| 146 | - /*13*/ DataDtoEntityContext.escapeString(setId),
|
|
| 146 | + /*11*/ SqlHelper.escapeString(weightCategoryRecord.getSpeciesId()),
|
|
| 147 | + /*12*/ SqlHelper.escapeString("10".equals(weightCategoryRecord.getCode()) ? DataSourceMigrationForVersion_9_0.SPECIES_FATE_15 : DataSourceMigrationForVersion_9_0.SPECIES_FATE_6),
|
|
| 148 | + /*13*/ SqlHelper.escapeString(setId),
|
|
| 147 | 149 | /*14*/ DataDtoEntityContext.timestamp(lastUpdateDate),
|
| 148 | - /*15*/ DataDtoEntityContext.escapeString(getWell()),
|
|
| 150 | + /*15*/ SqlHelper.escapeString(StringCleaner.ALL.apply(well)),
|
|
| 149 | 151 | /*16*/ setIdx,
|
| 150 | - /*17*/ DataDtoEntityContext.escapeString(weightMeasureMethodId == null ? "fr.ird.referential.common.WeightMeasureMethod#666#03" : weightCategoryId),
|
|
| 151 | - /*18*/ DataDtoEntityContext.escapeString(targetCatchCompositionEstimatedByObserver ? DataSourceMigrationForVersion_9_0.INFORMATION_SOURCE_P : DataSourceMigrationForVersion_9_0.INFORMATION_SOURCE_U)
|
|
| 152 | + /*17*/ SqlHelper.escapeString(weightMeasureMethodId == null ? "fr.ird.referential.common.WeightMeasureMethod#666#03" : weightCategoryId),
|
|
| 153 | + /*18*/ SqlHelper.escapeString(targetCatchCompositionEstimatedByObserver ? DataSourceMigrationForVersion_9_0.INFORMATION_SOURCE_P : DataSourceMigrationForVersion_9_0.INFORMATION_SOURCE_U)
|
|
| 152 | 154 | );
|
| 153 | 155 | }
|
| 154 | 156 | |
| ... | ... | @@ -158,16 +160,4 @@ class NotDiscardedTargetCatchRecord { |
| 158 | 160 | }
|
| 159 | 161 | return stringFormat.apply(comment + "\n" + weightCategoryRecord.toComment());
|
| 160 | 162 | }
|
| 161 | - |
|
| 162 | - |
|
| 163 | - public String getWell() {
|
|
| 164 | - String result = well;
|
|
| 165 | - if (result!=null) {
|
|
| 166 | - result = well.trim();
|
|
| 167 | - if (well.startsWith("'")) {
|
|
| 168 | - result = result.substring(1);
|
|
| 169 | - }
|
|
| 170 | - }
|
|
| 171 | - return result;
|
|
| 172 | - }
|
|
| 173 | 163 | } |
| ... | ... | @@ -25,12 +25,12 @@ ALTER TABLE ps_observation.Set DROP COLUMN targetdiscardcatchcompositionestimate |
| 25 | 25 | ALTER TABLE ll_common.Trip DROP COLUMN program;
|
| 26 | 26 | ALTER TABLE ps_common.Trip DROP COLUMN program;
|
| 27 | 27 | |
| 28 | --- DROP TABLE ps_observation.NonTargetLength;
|
|
| 29 | --- DROP TABLE ps_observation.NonTargetSample;
|
|
| 30 | --- DROP TABLE ps_observation.NonTargetCatch;
|
|
| 31 | --- DROP TABLE ps_observation.TargetCatch;
|
|
| 32 | --- DROP TABLE ps_observation.TargetSample;
|
|
| 33 | --- DROP TABLE ps_observation.TargetLength;
|
|
| 28 | +DROP TABLE ps_observation.NonTargetLength;
|
|
| 29 | +DROP TABLE ps_observation.NonTargetSample;
|
|
| 30 | +DROP TABLE ps_observation.NonTargetCatch;
|
|
| 31 | +DROP TABLE ps_observation.TargetCatch;
|
|
| 32 | +DROP TABLE ps_observation.TargetSample;
|
|
| 33 | +DROP TABLE ps_observation.TargetLength;
|
|
| 34 | 34 | DROP TABLE ps_observation.ReasonForNullSet;
|
| 35 | 35 | DROP TABLE ps_observation.ReasonForNoFishing;
|
| 36 | 36 | DROP TABLE ps_observation.WeightCategory;
|
| ... | ... | @@ -25,12 +25,12 @@ ALTER TABLE ps_observation.Set DROP COLUMN targetdiscardcatchcompositionestimate |
| 25 | 25 | ALTER TABLE ll_common.Trip DROP COLUMN program CASCADE;
|
| 26 | 26 | ALTER TABLE ps_common.Trip DROP COLUMN program CASCADE;
|
| 27 | 27 | |
| 28 | --- DROP TABLE ps_observation.NonTargetLength CASCADE;
|
|
| 29 | --- DROP TABLE ps_observation.NonTargetSample CASCADE;
|
|
| 30 | --- DROP TABLE ps_observation.NonTargetCatch CASCADE;
|
|
| 31 | --- DROP TABLE ps_observation.TargetLength CASCADE;
|
|
| 32 | --- DROP TABLE ps_observation.TargetSample CASCADE;
|
|
| 33 | --- DROP TABLE ps_observation.TargetCatch CASCADE;
|
|
| 28 | +DROP TABLE ps_observation.NonTargetLength CASCADE;
|
|
| 29 | +DROP TABLE ps_observation.NonTargetSample CASCADE;
|
|
| 30 | +DROP TABLE ps_observation.NonTargetCatch CASCADE;
|
|
| 31 | +DROP TABLE ps_observation.TargetLength CASCADE;
|
|
| 32 | +DROP TABLE ps_observation.TargetSample CASCADE;
|
|
| 33 | +DROP TABLE ps_observation.TargetCatch CASCADE;
|
|
| 34 | 34 | DROP TABLE ps_observation.ReasonForNullSet CASCADE;
|
| 35 | 35 | DROP TABLE ps_observation.ReasonForNoFishing CASCADE;
|
| 36 | 36 | DROP TABLE ps_observation.WeightCategory CASCADE;
|
| ... | ... | @@ -1244,6 +1244,7 @@ observe.data.ps.observation.Catch.meanWeight.short=Mean weight |
| 1244 | 1244 | observe.data.ps.observation.Catch.meanWeight.validation.notFilled=Weight or mean size must be filled.
|
| 1245 | 1245 | observe.data.ps.observation.Catch.meanWeightComputed.computed.tip=Mean weight was computed (%s)
|
| 1246 | 1246 | observe.data.ps.observation.Catch.meanWeightComputed.observed.tip=Mean weight was observed
|
| 1247 | +observe.data.ps.observation.Catch.minMaxWeight=Lower / upper weight limit (in kg)
|
|
| 1247 | 1248 | observe.data.ps.observation.Catch.minWeight=Lower weight limit (in kg)
|
| 1248 | 1249 | observe.data.ps.observation.Catch.minWeight.short=Min weight (in kg)
|
| 1249 | 1250 | observe.data.ps.observation.Catch.reasonForDiscard=Reason for discard
|
| ... | ... | @@ -1244,6 +1244,7 @@ observe.data.ps.observation.Catch.meanWeight.short=Peso medio |
| 1244 | 1244 | observe.data.ps.observation.Catch.meanWeight.validation.notFilled=Debe seleccionar uno de los dos valores (peso medio o talla media).
|
| 1245 | 1245 | observe.data.ps.observation.Catch.meanWeightComputed.computed.tip=El peso medio se calculó
|
| 1246 | 1246 | observe.data.ps.observation.Catch.meanWeightComputed.observed.tip=El peso medio se observó
|
| 1247 | +observe.data.ps.observation.Catch.minMaxWeight=Lower / upper weight limit (in kg) TODO
|
|
| 1247 | 1248 | observe.data.ps.observation.Catch.minWeight=Lower weight limit (in kg) TODO
|
| 1248 | 1249 | observe.data.ps.observation.Catch.minWeight.short=Max weight (in kg)
|
| 1249 | 1250 | observe.data.ps.observation.Catch.reasonForDiscard=Razón del descarte
|
| ... | ... | @@ -1244,6 +1244,7 @@ observe.data.ps.observation.Catch.meanWeight.short=Poids moy |
| 1244 | 1244 | observe.data.ps.observation.Catch.meanWeight.validation.notFilled=Une des deux valeurs (poids moyen ou taille moyenne) devrait être renseignée.
|
| 1245 | 1245 | observe.data.ps.observation.Catch.meanWeightComputed.computed.tip=Le poids moyen a été calculé (%s)
|
| 1246 | 1246 | observe.data.ps.observation.Catch.meanWeightComputed.observed.tip=Le poids moyen a été observé
|
| 1247 | +observe.data.ps.observation.Catch.minMaxWeight=Borne de poids inférieure / supérieure (en kg)
|
|
| 1247 | 1248 | observe.data.ps.observation.Catch.minWeight=Borne de poids inférieure (en kg)
|
| 1248 | 1249 | observe.data.ps.observation.Catch.minWeight.short=Poids min (en kg)
|
| 1249 | 1250 | observe.data.ps.observation.Catch.reasonForDiscard=Raison rejet
|
| ... | ... | @@ -43828,7 +43828,7 @@ |
| 43828 | 43828 | "topiaVersion": 16,
|
| 43829 | 43829 | "topiaCreateDate": "2009-04-15T00:00:00.009Z"
|
| 43830 | 43830 | },
|
| 43831 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 43831 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 43832 | 43832 | "catchWeight": 1.0,
|
| 43833 | 43833 | "well": "2",
|
| 43834 | 43834 | "id": "fr.ird.data.ps.observation.Catch#1554060786914#0.3899957341641852",
|
| ... | ... | @@ -43874,7 +43874,7 @@ |
| 43874 | 43874 | "topiaVersion": 16,
|
| 43875 | 43875 | "topiaCreateDate": "2009-04-15T00:00:00.004Z"
|
| 43876 | 43876 | },
|
| 43877 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 43877 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 43878 | 43878 | "catchWeight": 1.0,
|
| 43879 | 43879 | "well": "2",
|
| 43880 | 43880 | "id": "fr.ird.data.ps.observation.Catch#1554060786914#0.455212337619455",
|
| ... | ... | @@ -43920,7 +43920,7 @@ |
| 43920 | 43920 | "topiaVersion": 16,
|
| 43921 | 43921 | "topiaCreateDate": "2009-04-15T00:00:00.010Z"
|
| 43922 | 43922 | },
|
| 43923 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 43923 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 43924 | 43924 | "catchWeight": 16.0,
|
| 43925 | 43925 | "well": "1",
|
| 43926 | 43926 | "id": "fr.ird.data.ps.observation.Catch#1554228692388#0.40195828823649804",
|
| ... | ... | @@ -43966,7 +43966,7 @@ |
| 43966 | 43966 | "topiaVersion": 15,
|
| 43967 | 43967 | "topiaCreateDate": "2009-04-15T00:00:00.001Z"
|
| 43968 | 43968 | },
|
| 43969 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 43969 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 43970 | 43970 | "catchWeight": 1.0,
|
| 43971 | 43971 | "well": "1",
|
| 43972 | 43972 | "id": "fr.ird.data.ps.observation.Catch#1554228692388#0.5827043409961202",
|
| ... | ... | @@ -44012,7 +44012,7 @@ |
| 44012 | 44012 | "topiaVersion": 15,
|
| 44013 | 44013 | "topiaCreateDate": "2009-04-15T00:00:00.001Z"
|
| 44014 | 44014 | },
|
| 44015 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44015 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44016 | 44016 | "catchWeight": 4.0,
|
| 44017 | 44017 | "well": "1",
|
| 44018 | 44018 | "id": "fr.ird.data.ps.observation.Catch#1554228964667#0.3873882731438876",
|
| ... | ... | @@ -44058,7 +44058,7 @@ |
| 44058 | 44058 | "topiaVersion": 16,
|
| 44059 | 44059 | "topiaCreateDate": "2009-04-15T00:00:00.010Z"
|
| 44060 | 44060 | },
|
| 44061 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44061 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44062 | 44062 | "catchWeight": 27.0,
|
| 44063 | 44063 | "well": "1",
|
| 44064 | 44064 | "id": "fr.ird.data.ps.observation.Catch#1554228964667#0.6898347092973715",
|
| ... | ... | @@ -44104,7 +44104,7 @@ |
| 44104 | 44104 | "topiaVersion": 15,
|
| 44105 | 44105 | "topiaCreateDate": "2009-04-15T00:00:00.001Z"
|
| 44106 | 44106 | },
|
| 44107 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44107 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44108 | 44108 | "catchWeight": 1.0,
|
| 44109 | 44109 | "well": "4",
|
| 44110 | 44110 | "id": "fr.ird.data.ps.observation.Catch#1554228964683#0.5525193499129678",
|
| ... | ... | @@ -44150,7 +44150,7 @@ |
| 44150 | 44150 | "topiaVersion": 16,
|
| 44151 | 44151 | "topiaCreateDate": "2009-04-15T00:00:00.010Z"
|
| 44152 | 44152 | },
|
| 44153 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44153 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44154 | 44154 | "catchWeight": 39.0,
|
| 44155 | 44155 | "well": "4",
|
| 44156 | 44156 | "id": "fr.ird.data.ps.observation.Catch#1554228964683#0.6111969202426193",
|
| ... | ... | @@ -44196,7 +44196,7 @@ |
| 44196 | 44196 | "topiaVersion": 16,
|
| 44197 | 44197 | "topiaCreateDate": "2009-04-15T00:00:00.010Z"
|
| 44198 | 44198 | },
|
| 44199 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44199 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44200 | 44200 | "catchWeight": 15.0,
|
| 44201 | 44201 | "well": "4",
|
| 44202 | 44202 | "id": "fr.ird.data.ps.observation.Catch#1554229020077#0.06929838028483837",
|
| ... | ... | @@ -44242,7 +44242,7 @@ |
| 44242 | 44242 | "topiaVersion": 16,
|
| 44243 | 44243 | "topiaCreateDate": "2009-04-15T00:00:00.010Z"
|
| 44244 | 44244 | },
|
| 44245 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44245 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44246 | 44246 | "catchWeight": 25.0,
|
| 44247 | 44247 | "well": "2",
|
| 44248 | 44248 | "id": "fr.ird.data.ps.observation.Catch#1554229020077#0.764944972601716",
|
| ... | ... | @@ -44288,7 +44288,7 @@ |
| 44288 | 44288 | "topiaVersion": 15,
|
| 44289 | 44289 | "topiaCreateDate": "2009-04-15T00:00:00.001Z"
|
| 44290 | 44290 | },
|
| 44291 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44291 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44292 | 44292 | "catchWeight": 1.0,
|
| 44293 | 44293 | "well": "3",
|
| 44294 | 44294 | "id": "fr.ird.data.ps.observation.Catch#1554659569269#0.5089206009917716",
|
| ... | ... | @@ -44334,7 +44334,7 @@ |
| 44334 | 44334 | "topiaVersion": 16,
|
| 44335 | 44335 | "topiaCreateDate": "2009-04-15T00:00:00.010Z"
|
| 44336 | 44336 | },
|
| 44337 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44337 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44338 | 44338 | "catchWeight": 53.0,
|
| 44339 | 44339 | "well": "3",
|
| 44340 | 44340 | "id": "fr.ird.data.ps.observation.Catch#1554659569269#0.9595940690443661",
|
| ... | ... | @@ -44470,7 +44470,7 @@ |
| 44470 | 44470 | "topiaVersion": 19,
|
| 44471 | 44471 | "topiaCreateDate": "2009-04-15T00:00:00.005Z"
|
| 44472 | 44472 | },
|
| 44473 | - "speciesFateLabel": "Conservé (en cuve, poisson séché ou salé)",
|
|
| 44473 | + "speciesFateLabel": "Conservé à destination de la conserverie",
|
|
| 44474 | 44474 | "catchWeight": 12.0,
|
| 44475 | 44475 | "well": "3T",
|
| 44476 | 44476 | "id": "fr.ird.data.ps.observation.Catch#1612860304046#0.051529228859696796",
|
| ... | ... | @@ -10711,7 +10711,7 @@ |
| 10711 | 10711 | },
|
| 10712 | 10712 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 10713 | 10713 | "lengthWeightFormula": "a * Math.pow(L, b)",
|
| 10714 | - "weightLengthFormula": "Math.pow(P/a, 1/b) ",
|
|
| 10714 | + "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
|
| 10715 | 10715 | "sizeMeasureType": {
|
| 10716 | 10716 | "code": "DW",
|
| 10717 | 10717 | "label": "Disk Width",
|
| ... | ... | @@ -10751,9 +10751,9 @@ |
| 10751 | 10751 | "sexLabel": "Indéterminé",
|
| 10752 | 10752 | "species": {
|
| 10753 | 10753 | "code": "248",
|
| 10754 | - "label": "Mantes, diables de mer nca ",
|
|
| 10754 | + "label": "Mantes, diables de mer nca",
|
|
| 10755 | 10755 | "faoCode": "MAN",
|
| 10756 | - "scientificLabel": "Mobulidae ",
|
|
| 10756 | + "scientificLabel": "Mobulidae",
|
|
| 10757 | 10757 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499468646#0.710986209334806",
|
| 10758 | 10758 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 10759 | 10759 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1445863056144#0.9820877553253712",
|
| ... | ... | @@ -10771,7 +10771,7 @@ |
| 10771 | 10771 | },
|
| 10772 | 10772 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 10773 | 10773 | "lengthWeightFormula": "a * Math.pow(L, b)",
|
| 10774 | - "weightLengthFormula": " Math.pow(P/a, 1/b) ",
|
|
| 10774 | + "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
|
| 10775 | 10775 | "sizeMeasureType": {
|
| 10776 | 10776 | "code": "DW",
|
| 10777 | 10777 | "label": "Disk Width",
|
| ... | ... | @@ -10831,7 +10831,7 @@ |
| 10831 | 10831 | },
|
| 10832 | 10832 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 10833 | 10833 | "lengthWeightFormula": "a * Math.pow(L, b)",
|
| 10834 | - "weightLengthFormula": "Math.pow(P/a, 1/b) ",
|
|
| 10834 | + "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
|
| 10835 | 10835 | "sizeMeasureType": {
|
| 10836 | 10836 | "code": "FL",
|
| 10837 | 10837 | "label": "Fork Length",
|
| ... | ... | @@ -10871,7 +10871,7 @@ |
| 10871 | 10871 | "sexLabel": "Indéterminé",
|
| 10872 | 10872 | "species": {
|
| 10873 | 10873 | "code": "376",
|
| 10874 | - "label": "Rémora des espadons ",
|
|
| 10874 | + "label": "Rémora des espadons",
|
|
| 10875 | 10875 | "faoCode": "REY",
|
| 10876 | 10876 | "scientificLabel": "Remora brachyptera",
|
| 10877 | 10877 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -10890,7 +10890,7 @@ |
| 10890 | 10890 | "topiaCreateDate": "2010-07-24T00:00:00.161Z"
|
| 10891 | 10891 | },
|
| 10892 | 10892 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 10893 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 10893 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 10894 | 10894 | "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
| 10895 | 10895 | "sizeMeasureType": {
|
| 10896 | 10896 | "code": "TL",
|
| ... | ... | @@ -10931,7 +10931,7 @@ |
| 10931 | 10931 | "sexLabel": "Indéterminé",
|
| 10932 | 10932 | "species": {
|
| 10933 | 10933 | "code": "375",
|
| 10934 | - "label": "Rémora des marlins ",
|
|
| 10934 | + "label": "Rémora des marlins",
|
|
| 10935 | 10935 | "faoCode": "REZ",
|
| 10936 | 10936 | "scientificLabel": "Remora osteochir",
|
| 10937 | 10937 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -10950,8 +10950,8 @@ |
| 10950 | 10950 | "topiaCreateDate": "2010-07-24T00:00:00.164Z"
|
| 10951 | 10951 | },
|
| 10952 | 10952 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 10953 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 10954 | - "weightLengthFormula": "Math.pow(P/a, 1/b) ",
|
|
| 10953 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 10954 | + "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
|
| 10955 | 10955 | "sizeMeasureType": {
|
| 10956 | 10956 | "code": "TL",
|
| 10957 | 10957 | "label": "Total Length",
|
| ... | ... | @@ -11010,8 +11010,8 @@ |
| 11010 | 11010 | "topiaCreateDate": "2010-07-24T00:00:00.160Z"
|
| 11011 | 11011 | },
|
| 11012 | 11012 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11013 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11014 | - "weightLengthFormula": "Math.pow(P/a, 1/b) ",
|
|
| 11013 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11014 | + "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
|
| 11015 | 11015 | "sizeMeasureType": {
|
| 11016 | 11016 | "code": "FL",
|
| 11017 | 11017 | "label": "Fork Length",
|
| ... | ... | @@ -11071,7 +11071,7 @@ |
| 11071 | 11071 | },
|
| 11072 | 11072 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11073 | 11073 | "lengthWeightFormula": "a * Math.pow(L, b)",
|
| 11074 | - "weightLengthFormula": "Math.pow(P/a, 1/b) ",
|
|
| 11074 | + "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
|
| 11075 | 11075 | "sizeMeasureType": {
|
| 11076 | 11076 | "code": "FL",
|
| 11077 | 11077 | "label": "Fork Length",
|
| ... | ... | @@ -11173,7 +11173,7 @@ |
| 11173 | 11173 | "code": "0",
|
| 11174 | 11174 | "label": "Famille Clupeidae",
|
| 11175 | 11175 | "faoCode": "CLP",
|
| 11176 | - "scientificLabel": "Clupeidae ",
|
|
| 11176 | + "scientificLabel": "Clupeidae",
|
|
| 11177 | 11177 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| 11178 | 11178 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 11179 | 11179 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1239832683689#0.12092280503502995",
|
| ... | ... | @@ -11231,7 +11231,7 @@ |
| 11231 | 11231 | "code": "0",
|
| 11232 | 11232 | "label": "Famille Clupeidae",
|
| 11233 | 11233 | "faoCode": "CLP",
|
| 11234 | - "scientificLabel": "Clupeidae ",
|
|
| 11234 | + "scientificLabel": "Clupeidae",
|
|
| 11235 | 11235 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| 11236 | 11236 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 11237 | 11237 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1239832683689#0.12092280503502995",
|
| ... | ... | @@ -11306,7 +11306,7 @@ |
| 11306 | 11306 | "topiaCreateDate": "2012-06-14T00:00:00.193Z"
|
| 11307 | 11307 | },
|
| 11308 | 11308 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11309 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11309 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11310 | 11310 | "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
| 11311 | 11311 | "sizeMeasureType": {
|
| 11312 | 11312 | "code": "FL",
|
| ... | ... | @@ -11366,7 +11366,7 @@ |
| 11366 | 11366 | "topiaCreateDate": "2012-06-14T00:00:00.193Z"
|
| 11367 | 11367 | },
|
| 11368 | 11368 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11369 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11369 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11370 | 11370 | "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
| 11371 | 11371 | "sizeMeasureType": {
|
| 11372 | 11372 | "code": "FL",
|
| ... | ... | @@ -11422,8 +11422,8 @@ |
| 11422 | 11422 | "topiaCreateDate": "2011-06-22T00:00:00.188Z"
|
| 11423 | 11423 | },
|
| 11424 | 11424 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11425 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11426 | - "weightLengthFormula": "Math.pow(P/a, 1/b) ",
|
|
| 11425 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11426 | + "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
|
| 11427 | 11427 | "sizeMeasureType": {
|
| 11428 | 11428 | "code": "TL",
|
| 11429 | 11429 | "label": "Total Length",
|
| ... | ... | @@ -11478,8 +11478,8 @@ |
| 11478 | 11478 | "topiaCreateDate": "2011-06-22T00:00:00.188Z"
|
| 11479 | 11479 | },
|
| 11480 | 11480 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11481 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11482 | - "weightLengthFormula": "Math.pow(P/a, 1/b) ",
|
|
| 11481 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11482 | + "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
|
| 11483 | 11483 | "sizeMeasureType": {
|
| 11484 | 11484 | "code": "TL",
|
| 11485 | 11485 | "label": "Total Length",
|
| ... | ... | @@ -11519,7 +11519,7 @@ |
| 11519 | 11519 | "sexLabel": "Indéterminé",
|
| 11520 | 11520 | "species": {
|
| 11521 | 11521 | "code": "0",
|
| 11522 | - "label": "Rémora commun ",
|
|
| 11522 | + "label": "Rémora commun",
|
|
| 11523 | 11523 | "faoCode": "EHN",
|
| 11524 | 11524 | "scientificLabel": "Echeneis naucrates",
|
| 11525 | 11525 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -11534,7 +11534,7 @@ |
| 11534 | 11534 | "topiaCreateDate": "2011-06-22T00:00:00.080Z"
|
| 11535 | 11535 | },
|
| 11536 | 11536 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11537 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11537 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11538 | 11538 | "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
| 11539 | 11539 | "sizeMeasureType": {
|
| 11540 | 11540 | "code": "TL",
|
| ... | ... | @@ -11575,7 +11575,7 @@ |
| 11575 | 11575 | "sexLabel": "Indéterminé",
|
| 11576 | 11576 | "species": {
|
| 11577 | 11577 | "code": "0",
|
| 11578 | - "label": "Rémora commun ",
|
|
| 11578 | + "label": "Rémora commun",
|
|
| 11579 | 11579 | "faoCode": "EHN",
|
| 11580 | 11580 | "scientificLabel": "Echeneis naucrates",
|
| 11581 | 11581 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -11590,7 +11590,7 @@ |
| 11590 | 11590 | "topiaCreateDate": "2011-06-22T00:00:00.080Z"
|
| 11591 | 11591 | },
|
| 11592 | 11592 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11593 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11593 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11594 | 11594 | "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
| 11595 | 11595 | "sizeMeasureType": {
|
| 11596 | 11596 | "code": "TL",
|
| ... | ... | @@ -11648,7 +11648,7 @@ |
| 11648 | 11648 | "topiaCreateDate": "2011-06-22T00:00:00.142Z"
|
| 11649 | 11649 | },
|
| 11650 | 11650 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11651 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11651 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11652 | 11652 | "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
| 11653 | 11653 | "sizeMeasureType": {
|
| 11654 | 11654 | "code": "TL",
|
| ... | ... | @@ -11706,7 +11706,7 @@ |
| 11706 | 11706 | "topiaCreateDate": "2011-06-22T00:00:00.142Z"
|
| 11707 | 11707 | },
|
| 11708 | 11708 | "startDate": "1970-01-01T00:00:00.000Z",
|
| 11709 | - "lengthWeightFormula": "a * Math.pow(L, b) ",
|
|
| 11709 | + "lengthWeightFormula": "a * Math.pow(L, b)",
|
|
| 11710 | 11710 | "weightLengthFormula": "Math.pow(P/a, 1/b)",
|
| 11711 | 11711 | "sizeMeasureType": {
|
| 11712 | 11712 | "code": "TL",
|
| ... | ... | @@ -11747,7 +11747,7 @@ |
| 11747 | 11747 | "sexLabel": "Indéterminé",
|
| 11748 | 11748 | "species": {
|
| 11749 | 11749 | "code": "321",
|
| 11750 | - "label": "Porc-épic boubou ",
|
|
| 11750 | + "label": "Porc-épic boubou",
|
|
| 11751 | 11751 | "faoCode": "DIY",
|
| 11752 | 11752 | "scientificLabel": "Diodon hystrix",
|
| 11753 | 11753 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -13489,7 +13489,7 @@ |
| 13489 | 13489 | "sexLabel": "Indéterminé",
|
| 13490 | 13490 | "species": {
|
| 13491 | 13491 | "code": "340",
|
| 13492 | - "label": "Calicagère bleue ",
|
|
| 13492 | + "label": "Calicagère bleue",
|
|
| 13493 | 13493 | "faoCode": "KYC",
|
| 13494 | 13494 | "scientificLabel": "Kyphosus cinerascens",
|
| 13495 | 13495 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -13549,7 +13549,7 @@ |
| 13549 | 13549 | "sexLabel": "Indéterminé",
|
| 13550 | 13550 | "species": {
|
| 13551 | 13551 | "code": "334",
|
| 13552 | - "label": "Kyphosus calicagères nca ",
|
|
| 13552 | + "label": "Kyphosus calicagères nca",
|
|
| 13553 | 13553 | "faoCode": "KYP",
|
| 13554 | 13554 | "scientificLabel": "Kyphosus spp",
|
| 13555 | 13555 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -13609,7 +13609,7 @@ |
| 13609 | 13609 | "sexLabel": "Indéterminé",
|
| 13610 | 13610 | "species": {
|
| 13611 | 13611 | "code": "334",
|
| 13612 | - "label": "Kyphosus calicagères nca ",
|
|
| 13612 | + "label": "Kyphosus calicagères nca",
|
|
| 13613 | 13613 | "faoCode": "KYP",
|
| 13614 | 13614 | "scientificLabel": "Kyphosus spp",
|
| 13615 | 13615 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -13729,7 +13729,7 @@ |
| 13729 | 13729 | "sexLabel": "Indéterminé",
|
| 13730 | 13730 | "species": {
|
| 13731 | 13731 | "code": "359",
|
| 13732 | - "label": "Sériole limon ",
|
|
| 13732 | + "label": "Sériole limon",
|
|
| 13733 | 13733 | "faoCode": "YTL",
|
| 13734 | 13734 | "scientificLabel": "Seriola rivoliana",
|
| 13735 | 13735 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -13789,7 +13789,7 @@ |
| 13789 | 13789 | "sexLabel": "Indéterminé",
|
| 13790 | 13790 | "species": {
|
| 13791 | 13791 | "code": "359",
|
| 13792 | - "label": "Sériole limon ",
|
|
| 13792 | + "label": "Sériole limon",
|
|
| 13793 | 13793 | "faoCode": "YTL",
|
| 13794 | 13794 | "scientificLabel": "Seriola rivoliana",
|
| 13795 | 13795 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -13909,7 +13909,7 @@ |
| 13909 | 13909 | "sexLabel": "Indéterminé",
|
| 13910 | 13910 | "species": {
|
| 13911 | 13911 | "code": "312",
|
| 13912 | - "label": "Comète maquereau ",
|
|
| 13912 | + "label": "Comète maquereau",
|
|
| 13913 | 13913 | "faoCode": "MSD",
|
| 13914 | 13914 | "scientificLabel": "Decapterus macarellus",
|
| 13915 | 13915 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -13969,7 +13969,7 @@ |
| 13969 | 13969 | "sexLabel": "Indéterminé",
|
| 13970 | 13970 | "species": {
|
| 13971 | 13971 | "code": "312",
|
| 13972 | - "label": "Comète maquereau ",
|
|
| 13972 | + "label": "Comète maquereau",
|
|
| 13973 | 13973 | "faoCode": "MSD",
|
| 13974 | 13974 | "scientificLabel": "Decapterus macarellus",
|
| 13975 | 13975 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -14389,7 +14389,7 @@ |
| 14389 | 14389 | "sexLabel": "Indéterminé",
|
| 14390 | 14390 | "species": {
|
| 14391 | 14391 | "code": "367",
|
| 14392 | - "label": "Carangue paia ",
|
|
| 14392 | + "label": "Carangue paia",
|
|
| 14393 | 14393 | "faoCode": "URU",
|
| 14394 | 14394 | "scientificLabel": "Uraspis uraspis",
|
| 14395 | 14395 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -14749,7 +14749,7 @@ |
| 14749 | 14749 | "sexLabel": "Indéterminé",
|
| 14750 | 14750 | "species": {
|
| 14751 | 14751 | "code": "315",
|
| 14752 | - "label": "Carangue des îles ",
|
|
| 14752 | + "label": "Carangue des îles",
|
|
| 14753 | 14753 | "faoCode": "NGT",
|
| 14754 | 14754 | "scientificLabel": "Carangoides orthogrammus",
|
| 14755 | 14755 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -15049,7 +15049,7 @@ |
| 15049 | 15049 | "sexLabel": "Indéterminé",
|
| 15050 | 15050 | "species": {
|
| 15051 | 15051 | "code": "345",
|
| 15052 | - "label": "Compère océanique ",
|
|
| 15052 | + "label": "Compère océanique",
|
|
| 15053 | 15053 | "faoCode": "LGH",
|
| 15054 | 15054 | "scientificLabel": "Lagocephalus lagocephalus",
|
| 15055 | 15055 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -15109,7 +15109,7 @@ |
| 15109 | 15109 | "sexLabel": "Indéterminé",
|
| 15110 | 15110 | "species": {
|
| 15111 | 15111 | "code": "345",
|
| 15112 | - "label": "Compère océanique ",
|
|
| 15112 | + "label": "Compère océanique",
|
|
| 15113 | 15113 | "faoCode": "LGH",
|
| 15114 | 15114 | "scientificLabel": "Lagocephalus lagocephalus",
|
| 15115 | 15115 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -15289,7 +15289,7 @@ |
| 15289 | 15289 | "sexLabel": "Indéterminé",
|
| 15290 | 15290 | "species": {
|
| 15291 | 15291 | "code": "346",
|
| 15292 | - "label": "Croupia roche ",
|
|
| 15292 | + "label": "Croupia roche",
|
|
| 15293 | 15293 | "faoCode": "LOB",
|
| 15294 | 15294 | "scientificLabel": "Lobotes surinamensis",
|
| 15295 | 15295 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -15409,7 +15409,7 @@ |
| 15409 | 15409 | "sexLabel": "Indéterminé",
|
| 15410 | 15410 | "species": {
|
| 15411 | 15411 | "code": "346",
|
| 15412 | - "label": "Croupia roche ",
|
|
| 15412 | + "label": "Croupia roche",
|
|
| 15413 | 15413 | "faoCode": "LOB",
|
| 15414 | 15414 | "scientificLabel": "Lobotes surinamensis",
|
| 15415 | 15415 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -17682,7 +17682,7 @@ |
| 17682 | 17682 | "sexLabel": "Indéterminé",
|
| 17683 | 17683 | "species": {
|
| 17684 | 17684 | "code": "321",
|
| 17685 | - "label": "Porc-épic boubou ",
|
|
| 17685 | + "label": "Porc-épic boubou",
|
|
| 17686 | 17686 | "faoCode": "DIY",
|
| 17687 | 17687 | "scientificLabel": "Diodon hystrix",
|
| 17688 | 17688 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -17982,7 +17982,7 @@ |
| 17982 | 17982 | "sexLabel": "Indéterminé",
|
| 17983 | 17983 | "species": {
|
| 17984 | 17984 | "code": "316",
|
| 17985 | - "label": "Carangue vorace ",
|
|
| 17985 | + "label": "Carangue vorace",
|
|
| 17986 | 17986 | "faoCode": "CXS",
|
| 17987 | 17987 | "scientificLabel": "Caranx sexfasciatus",
|
| 17988 | 17988 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -18343,7 +18343,7 @@ |
| 18343 | 18343 | "sexLabel": "Indéterminé",
|
| 18344 | 18344 | "species": {
|
| 18345 | 18345 | "code": "304",
|
| 18346 | - "label": "Baliste cabri ",
|
|
| 18346 | + "label": "Baliste cabri",
|
|
| 18347 | 18347 | "faoCode": "TRG",
|
| 18348 | 18348 | "scientificLabel": "Balistes carolinensis",
|
| 18349 | 18349 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -18403,7 +18403,7 @@ |
| 18403 | 18403 | "sexLabel": "Indéterminé",
|
| 18404 | 18404 | "species": {
|
| 18405 | 18405 | "code": "341",
|
| 18406 | - "label": "Calicagère blanche ",
|
|
| 18406 | + "label": "Calicagère blanche",
|
|
| 18407 | 18407 | "faoCode": "KYS",
|
| 18408 | 18408 | "scientificLabel": "Kyphosus sectatrix",
|
| 18409 | 18409 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -18463,7 +18463,7 @@ |
| 18463 | 18463 | "sexLabel": "Indéterminé",
|
| 18464 | 18464 | "species": {
|
| 18465 | 18465 | "code": "352",
|
| 18466 | - "label": "Poules d\u0027eau ",
|
|
| 18466 | + "label": "Poules d\u0027eau",
|
|
| 18467 | 18467 | "faoCode": "BAT",
|
| 18468 | 18468 | "scientificLabel": "Platax spp",
|
| 18469 | 18469 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -19903,7 +19903,7 @@ |
| 19903 | 19903 | "sexLabel": "Indéterminé",
|
| 19904 | 19904 | "species": {
|
| 19905 | 19905 | "code": "309",
|
| 19906 | - "label": "Orphie plate ",
|
|
| 19906 | + "label": "Orphie plate",
|
|
| 19907 | 19907 | "faoCode": "BAF",
|
| 19908 | 19908 | "scientificLabel": "Ablennes hians",
|
| 19909 | 19909 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -19963,7 +19963,7 @@ |
| 19963 | 19963 | "sexLabel": "Indéterminé",
|
| 19964 | 19964 | "species": {
|
| 19965 | 19965 | "code": "309",
|
| 19966 | - "label": "Orphie plate ",
|
|
| 19966 | + "label": "Orphie plate",
|
|
| 19967 | 19967 | "faoCode": "BAF",
|
| 19968 | 19968 | "scientificLabel": "Ablennes hians",
|
| 19969 | 19969 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -20263,7 +20263,7 @@ |
| 20263 | 20263 | "sexLabel": "Indéterminé",
|
| 20264 | 20264 | "species": {
|
| 20265 | 20265 | "code": "364",
|
| 20266 | - "label": "Aiguille crocodile ",
|
|
| 20266 | + "label": "Aiguille crocodile",
|
|
| 20267 | 20267 | "faoCode": "BTS",
|
| 20268 | 20268 | "scientificLabel": "Tylosurus crocodilus",
|
| 20269 | 20269 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -20323,7 +20323,7 @@ |
| 20323 | 20323 | "sexLabel": "Indéterminé",
|
| 20324 | 20324 | "species": {
|
| 20325 | 20325 | "code": "364",
|
| 20326 | - "label": "Aiguille crocodile ",
|
|
| 20326 | + "label": "Aiguille crocodile",
|
|
| 20327 | 20327 | "faoCode": "BTS",
|
| 20328 | 20328 | "scientificLabel": "Tylosurus crocodilus",
|
| 20329 | 20329 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -20813,9 +20813,9 @@ |
| 20813 | 20813 | "sexLabel": "Indéterminé",
|
| 20814 | 20814 | "species": {
|
| 20815 | 20815 | "code": "324",
|
| 20816 | - "label": "Rémora ",
|
|
| 20816 | + "label": "Rémora",
|
|
| 20817 | 20817 | "faoCode": "HTL",
|
| 20818 | - "scientificLabel": "Phtheirichthys lineatus ",
|
|
| 20818 | + "scientificLabel": "Phtheirichthys lineatus",
|
|
| 20819 | 20819 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| 20820 | 20820 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 20821 | 20821 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1239832683689#0.12092280503502995",
|
| ... | ... | @@ -20933,9 +20933,9 @@ |
| 20933 | 20933 | "sexLabel": "Indéterminé",
|
| 20934 | 20934 | "species": {
|
| 20935 | 20935 | "code": "324",
|
| 20936 | - "label": "Rémora ",
|
|
| 20936 | + "label": "Rémora",
|
|
| 20937 | 20937 | "faoCode": "HTL",
|
| 20938 | - "scientificLabel": "Phtheirichthys lineatus ",
|
|
| 20938 | + "scientificLabel": "Phtheirichthys lineatus",
|
|
| 20939 | 20939 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| 20940 | 20940 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 20941 | 20941 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1239832683689#0.12092280503502995",
|
| ... | ... | @@ -20993,7 +20993,7 @@ |
| 20993 | 20993 | "sexLabel": "Indéterminé",
|
| 20994 | 20994 | "species": {
|
| 20995 | 20995 | "code": "331",
|
| 20996 | - "label": "Demi-bec volant ",
|
|
| 20996 | + "label": "Demi-bec volant",
|
|
| 20997 | 20997 | "faoCode": "EXQ",
|
| 20998 | 20998 | "scientificLabel": "Euleptorhamphus velox",
|
| 20999 | 20999 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -21353,7 +21353,7 @@ |
| 21353 | 21353 | "sexLabel": "Indéterminé",
|
| 21354 | 21354 | "species": {
|
| 21355 | 21355 | "code": "368",
|
| 21356 | - "label": "Comètes nca ",
|
|
| 21356 | + "label": "Comètes nca",
|
|
| 21357 | 21357 | "faoCode": "SDX",
|
| 21358 | 21358 | "scientificLabel": "Decapterus spp",
|
| 21359 | 21359 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -21413,7 +21413,7 @@ |
| 21413 | 21413 | "sexLabel": "Indéterminé",
|
| 21414 | 21414 | "species": {
|
| 21415 | 21415 | "code": "368",
|
| 21416 | - "label": "Comètes nca ",
|
|
| 21416 | + "label": "Comètes nca",
|
|
| 21417 | 21417 | "faoCode": "SDX",
|
| 21418 | 21418 | "scientificLabel": "Decapterus spp",
|
| 21419 | 21419 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -30074,7 +30074,7 @@ |
| 30074 | 30074 | "sexLabel": "Indéterminé",
|
| 30075 | 30075 | "species": {
|
| 30076 | 30076 | "code": "210",
|
| 30077 | - "label": "Renards de mer nca ",
|
|
| 30077 | + "label": "Renards de mer nca",
|
|
| 30078 | 30078 | "faoCode": "THR",
|
| 30079 | 30079 | "scientificLabel": "Alopias spp",
|
| 30080 | 30080 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -30134,7 +30134,7 @@ |
| 30134 | 30134 | "sexLabel": "Indéterminé",
|
| 30135 | 30135 | "species": {
|
| 30136 | 30136 | "code": "210",
|
| 30137 | - "label": "Renards de mer nca ",
|
|
| 30137 | + "label": "Renards de mer nca",
|
|
| 30138 | 30138 | "faoCode": "THR",
|
| 30139 | 30139 | "scientificLabel": "Alopias spp",
|
| 30140 | 30140 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -31346,7 +31346,7 @@ |
| 31346 | 31346 | "sexLabel": "Indéterminé",
|
| 31347 | 31347 | "species": {
|
| 31348 | 31348 | "code": "230",
|
| 31349 | - "label": "Requins-scies nca ",
|
|
| 31349 | + "label": "Requins-scies nca",
|
|
| 31350 | 31350 | "faoCode": "PWS",
|
| 31351 | 31351 | "scientificLabel": "Pristiophorus spp",
|
| 31352 | 31352 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -31406,7 +31406,7 @@ |
| 31406 | 31406 | "sexLabel": "Indéterminé",
|
| 31407 | 31407 | "species": {
|
| 31408 | 31408 | "code": "230",
|
| 31409 | - "label": "Requins-scies nca ",
|
|
| 31409 | + "label": "Requins-scies nca",
|
|
| 31410 | 31410 | "faoCode": "PWS",
|
| 31411 | 31411 | "scientificLabel": "Pristiophorus spp",
|
| 31412 | 31412 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -31466,7 +31466,7 @@ |
| 31466 | 31466 | "sexLabel": "Indéterminé",
|
| 31467 | 31467 | "species": {
|
| 31468 | 31468 | "code": "232",
|
| 31469 | - "label": "Anges de mer nca ",
|
|
| 31469 | + "label": "Anges de mer nca",
|
|
| 31470 | 31470 | "faoCode": "ASK",
|
| 31471 | 31471 | "scientificLabel": "Squatinidae",
|
| 31472 | 31472 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499468646#0.710986209334806",
|
| ... | ... | @@ -31526,7 +31526,7 @@ |
| 31526 | 31526 | "sexLabel": "Indéterminé",
|
| 31527 | 31527 | "species": {
|
| 31528 | 31528 | "code": "232",
|
| 31529 | - "label": "Anges de mer nca ",
|
|
| 31529 | + "label": "Anges de mer nca",
|
|
| 31530 | 31530 | "faoCode": "ASK",
|
| 31531 | 31531 | "scientificLabel": "Squatinidae",
|
| 31532 | 31532 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499468646#0.710986209334806",
|
| ... | ... | @@ -32006,7 +32006,7 @@ |
| 32006 | 32006 | "sexLabel": "Indéterminé",
|
| 32007 | 32007 | "species": {
|
| 32008 | 32008 | "code": "372",
|
| 32009 | - "label": "Luvar ",
|
|
| 32009 | + "label": "Luvar",
|
|
| 32010 | 32010 | "faoCode": "LVM",
|
| 32011 | 32011 | "scientificLabel": "Luvarus imperialis",
|
| 32012 | 32012 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -32066,7 +32066,7 @@ |
| 32066 | 32066 | "sexLabel": "Indéterminé",
|
| 32067 | 32067 | "species": {
|
| 32068 | 32068 | "code": "376",
|
| 32069 | - "label": "Rémora des espadons ",
|
|
| 32069 | + "label": "Rémora des espadons",
|
|
| 32070 | 32070 | "faoCode": "REY",
|
| 32071 | 32071 | "scientificLabel": "Remora brachyptera",
|
| 32072 | 32072 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -32126,7 +32126,7 @@ |
| 32126 | 32126 | "sexLabel": "Indéterminé",
|
| 32127 | 32127 | "species": {
|
| 32128 | 32128 | "code": "375",
|
| 32129 | - "label": "Rémora des marlins ",
|
|
| 32129 | + "label": "Rémora des marlins",
|
|
| 32130 | 32130 | "faoCode": "REZ",
|
| 32131 | 32131 | "scientificLabel": "Remora osteochir",
|
| 32132 | 32132 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -32366,9 +32366,9 @@ |
| 32366 | 32366 | "sexLabel": "Indéterminé",
|
| 32367 | 32367 | "species": {
|
| 32368 | 32368 | "code": "248",
|
| 32369 | - "label": "Mantes, diables de mer nca ",
|
|
| 32369 | + "label": "Mantes, diables de mer nca",
|
|
| 32370 | 32370 | "faoCode": "MAN",
|
| 32371 | - "scientificLabel": "Mobulidae ",
|
|
| 32371 | + "scientificLabel": "Mobulidae",
|
|
| 32372 | 32372 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499468646#0.710986209334806",
|
| 32373 | 32373 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 32374 | 32374 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1445863056144#0.9820877553253712",
|
| ... | ... | @@ -35440,7 +35440,7 @@ |
| 35440 | 35440 | "reference": {
|
| 35441 | 35441 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35442 | 35442 | "content": {
|
| 35443 | - "firstName": "Alicia ",
|
|
| 35443 | + "firstName": "Alicia",
|
|
| 35444 | 35444 | "lastName": "Moreno",
|
| 35445 | 35445 | "captain": false,
|
| 35446 | 35446 | "observer": true,
|
| ... | ... | @@ -35521,7 +35521,7 @@ |
| 35521 | 35521 | "reference": {
|
| 35522 | 35522 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35523 | 35523 | "content": {
|
| 35524 | - "firstName": "J. ",
|
|
| 35524 | + "firstName": "J.",
|
|
| 35525 | 35525 | "lastName": "Quinquis",
|
| 35526 | 35526 | "captain": false,
|
| 35527 | 35527 | "observer": true,
|
| ... | ... | @@ -35548,7 +35548,7 @@ |
| 35548 | 35548 | "reference": {
|
| 35549 | 35549 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35550 | 35550 | "content": {
|
| 35551 | - "firstName": "Cristina ",
|
|
| 35551 | + "firstName": "Cristina",
|
|
| 35552 | 35552 | "lastName": "Ortiz",
|
| 35553 | 35553 | "captain": false,
|
| 35554 | 35554 | "observer": true,
|
| ... | ... | @@ -35602,7 +35602,7 @@ |
| 35602 | 35602 | "reference": {
|
| 35603 | 35603 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35604 | 35604 | "content": {
|
| 35605 | - "firstName": "Laura ",
|
|
| 35605 | + "firstName": "Laura",
|
|
| 35606 | 35606 | "lastName": "Quintero",
|
| 35607 | 35607 | "captain": false,
|
| 35608 | 35608 | "observer": true,
|
| ... | ... | @@ -35629,7 +35629,7 @@ |
| 35629 | 35629 | "reference": {
|
| 35630 | 35630 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35631 | 35631 | "content": {
|
| 35632 | - "firstName": "P. ",
|
|
| 35632 | + "firstName": "P.",
|
|
| 35633 | 35633 | "lastName": "Ragot",
|
| 35634 | 35634 | "captain": false,
|
| 35635 | 35635 | "observer": true,
|
| ... | ... | @@ -35683,7 +35683,7 @@ |
| 35683 | 35683 | "reference": {
|
| 35684 | 35684 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35685 | 35685 | "content": {
|
| 35686 | - "firstName": "Susana ",
|
|
| 35686 | + "firstName": "Susana",
|
|
| 35687 | 35687 | "lastName": "Razquin",
|
| 35688 | 35688 | "captain": false,
|
| 35689 | 35689 | "observer": true,
|
| ... | ... | @@ -35710,7 +35710,7 @@ |
| 35710 | 35710 | "reference": {
|
| 35711 | 35711 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35712 | 35712 | "content": {
|
| 35713 | - "firstName": "F. ",
|
|
| 35713 | + "firstName": "F.",
|
|
| 35714 | 35714 | "lastName": "Ruchon",
|
| 35715 | 35715 | "captain": false,
|
| 35716 | 35716 | "observer": true,
|
| ... | ... | @@ -35737,7 +35737,7 @@ |
| 35737 | 35737 | "reference": {
|
| 35738 | 35738 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35739 | 35739 | "content": {
|
| 35740 | - "firstName": "Rafael Sánchez ",
|
|
| 35740 | + "firstName": "Rafael Sánchez",
|
|
| 35741 | 35741 | "lastName": "Robles",
|
| 35742 | 35742 | "captain": false,
|
| 35743 | 35743 | "observer": true,
|
| ... | ... | @@ -35791,7 +35791,7 @@ |
| 35791 | 35791 | "reference": {
|
| 35792 | 35792 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35793 | 35793 | "content": {
|
| 35794 | - "firstName": "Miriam ",
|
|
| 35794 | + "firstName": "Miriam",
|
|
| 35795 | 35795 | "lastName": "Rodriguez",
|
| 35796 | 35796 | "captain": false,
|
| 35797 | 35797 | "observer": true,
|
| ... | ... | @@ -35818,7 +35818,7 @@ |
| 35818 | 35818 | "reference": {
|
| 35819 | 35819 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35820 | 35820 | "content": {
|
| 35821 | - "firstName": "V. ",
|
|
| 35821 | + "firstName": "V.",
|
|
| 35822 | 35822 | "lastName": "Rigolet",
|
| 35823 | 35823 | "captain": false,
|
| 35824 | 35824 | "observer": true,
|
| ... | ... | @@ -35953,7 +35953,7 @@ |
| 35953 | 35953 | "reference": {
|
| 35954 | 35954 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35955 | 35955 | "content": {
|
| 35956 | - "firstName": "Sonia ",
|
|
| 35956 | + "firstName": "Sonia",
|
|
| 35957 | 35957 | "lastName": "Vega",
|
| 35958 | 35958 | "captain": false,
|
| 35959 | 35959 | "observer": true,
|
| ... | ... | @@ -35980,7 +35980,7 @@ |
| 35980 | 35980 | "reference": {
|
| 35981 | 35981 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 35982 | 35982 | "content": {
|
| 35983 | - "firstName": "Eva Mº del Rio ",
|
|
| 35983 | + "firstName": "Eva Mº del Rio",
|
|
| 35984 | 35984 | "lastName": "Zarraga",
|
| 35985 | 35985 | "captain": false,
|
| 35986 | 35986 | "observer": true,
|
| ... | ... | @@ -36007,7 +36007,7 @@ |
| 36007 | 36007 | "reference": {
|
| 36008 | 36008 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 36009 | 36009 | "content": {
|
| 36010 | - "firstName": "Virgilia ",
|
|
| 36010 | + "firstName": "Virgilia",
|
|
| 36011 | 36011 | "lastName": "Yance",
|
| 36012 | 36012 | "captain": false,
|
| 36013 | 36013 | "observer": true,
|
| ... | ... | @@ -36061,7 +36061,7 @@ |
| 36061 | 36061 | "reference": {
|
| 36062 | 36062 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 36063 | 36063 | "content": {
|
| 36064 | - "firstName": "Razquin ",
|
|
| 36064 | + "firstName": "Razquin",
|
|
| 36065 | 36065 | "lastName": "Urdiain",
|
| 36066 | 36066 | "captain": false,
|
| 36067 | 36067 | "observer": true,
|
| ... | ... | @@ -36088,7 +36088,7 @@ |
| 36088 | 36088 | "reference": {
|
| 36089 | 36089 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 36090 | 36090 | "content": {
|
| 36091 | - "firstName": "T. ",
|
|
| 36091 | + "firstName": "T.",
|
|
| 36092 | 36092 | "lastName": "Vanhoutte",
|
| 36093 | 36093 | "captain": false,
|
| 36094 | 36094 | "observer": true,
|
| ... | ... | @@ -38410,7 +38410,7 @@ |
| 38410 | 38410 | "reference": {
|
| 38411 | 38411 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38412 | 38412 | "content": {
|
| 38413 | - "firstName": "David ",
|
|
| 38413 | + "firstName": "David",
|
|
| 38414 | 38414 | "lastName": "Acuña",
|
| 38415 | 38415 | "captain": false,
|
| 38416 | 38416 | "observer": true,
|
| ... | ... | @@ -38437,7 +38437,7 @@ |
| 38437 | 38437 | "reference": {
|
| 38438 | 38438 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38439 | 38439 | "content": {
|
| 38440 | - "firstName": "Patricia ",
|
|
| 38440 | + "firstName": "Patricia",
|
|
| 38441 | 38441 | "lastName": "Arbona",
|
| 38442 | 38442 | "captain": false,
|
| 38443 | 38443 | "observer": true,
|
| ... | ... | @@ -38518,7 +38518,7 @@ |
| 38518 | 38518 | "reference": {
|
| 38519 | 38519 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38520 | 38520 | "content": {
|
| 38521 | - "firstName": "Beatriz ",
|
|
| 38521 | + "firstName": "Beatriz",
|
|
| 38522 | 38522 | "lastName": "Bastos",
|
| 38523 | 38523 | "captain": false,
|
| 38524 | 38524 | "observer": true,
|
| ... | ... | @@ -38599,7 +38599,7 @@ |
| 38599 | 38599 | "reference": {
|
| 38600 | 38600 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38601 | 38601 | "content": {
|
| 38602 | - "firstName": "Mª Carmen ",
|
|
| 38602 | + "firstName": "Mª Carmen",
|
|
| 38603 | 38603 | "lastName": "Arenas",
|
| 38604 | 38604 | "captain": false,
|
| 38605 | 38605 | "observer": true,
|
| ... | ... | @@ -38653,7 +38653,7 @@ |
| 38653 | 38653 | "reference": {
|
| 38654 | 38654 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38655 | 38655 | "content": {
|
| 38656 | - "firstName": "Raquel ",
|
|
| 38656 | + "firstName": "Raquel",
|
|
| 38657 | 38657 | "lastName": "Bello",
|
| 38658 | 38658 | "captain": false,
|
| 38659 | 38659 | "observer": true,
|
| ... | ... | @@ -38680,7 +38680,7 @@ |
| 38680 | 38680 | "reference": {
|
| 38681 | 38681 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38682 | 38682 | "content": {
|
| 38683 | - "firstName": "P. ",
|
|
| 38683 | + "firstName": "P.",
|
|
| 38684 | 38684 | "lastName": "Corler",
|
| 38685 | 38685 | "captain": false,
|
| 38686 | 38686 | "observer": true,
|
| ... | ... | @@ -38707,7 +38707,7 @@ |
| 38707 | 38707 | "reference": {
|
| 38708 | 38708 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38709 | 38709 | "content": {
|
| 38710 | - "firstName": "Rosa ",
|
|
| 38710 | + "firstName": "Rosa",
|
|
| 38711 | 38711 | "lastName": "Delgado de Molina Acevedo",
|
| 38712 | 38712 | "captain": false,
|
| 38713 | 38713 | "observer": true,
|
| ... | ... | @@ -38761,7 +38761,7 @@ |
| 38761 | 38761 | "reference": {
|
| 38762 | 38762 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38763 | 38763 | "content": {
|
| 38764 | - "firstName": "Alejandro ",
|
|
| 38764 | + "firstName": "Alejandro",
|
|
| 38765 | 38765 | "lastName": "Cruz Reyes",
|
| 38766 | 38766 | "captain": false,
|
| 38767 | 38767 | "observer": true,
|
| ... | ... | @@ -38788,7 +38788,7 @@ |
| 38788 | 38788 | "reference": {
|
| 38789 | 38789 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38790 | 38790 | "content": {
|
| 38791 | - "firstName": "Mª Jose Bayarri ",
|
|
| 38791 | + "firstName": "Mª Jose Bayarri",
|
|
| 38792 | 38792 | "lastName": "Clariana",
|
| 38793 | 38793 | "captain": false,
|
| 38794 | 38794 | "observer": true,
|
| ... | ... | @@ -38815,7 +38815,7 @@ |
| 38815 | 38815 | "reference": {
|
| 38816 | 38816 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38817 | 38817 | "content": {
|
| 38818 | - "firstName": "Eugenia Pia ",
|
|
| 38818 | + "firstName": "Eugenia Pia",
|
|
| 38819 | 38819 | "lastName": "Fernández",
|
| 38820 | 38820 | "captain": false,
|
| 38821 | 38821 | "observer": true,
|
| ... | ... | @@ -38842,7 +38842,7 @@ |
| 38842 | 38842 | "reference": {
|
| 38843 | 38843 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38844 | 38844 | "content": {
|
| 38845 | - "firstName": "E. ",
|
|
| 38845 | + "firstName": "E.",
|
|
| 38846 | 38846 | "lastName": "Devaux",
|
| 38847 | 38847 | "captain": false,
|
| 38848 | 38848 | "observer": true,
|
| ... | ... | @@ -38896,7 +38896,7 @@ |
| 38896 | 38896 | "reference": {
|
| 38897 | 38897 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38898 | 38898 | "content": {
|
| 38899 | - "firstName": "Carmen ",
|
|
| 38899 | + "firstName": "Carmen",
|
|
| 38900 | 38900 | "lastName": "Gutierrez",
|
| 38901 | 38901 | "captain": false,
|
| 38902 | 38902 | "observer": true,
|
| ... | ... | @@ -38923,7 +38923,7 @@ |
| 38923 | 38923 | "reference": {
|
| 38924 | 38924 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38925 | 38925 | "content": {
|
| 38926 | - "firstName": "Ricardo ",
|
|
| 38926 | + "firstName": "Ricardo",
|
|
| 38927 | 38927 | "lastName": "Iglesias",
|
| 38928 | 38928 | "captain": false,
|
| 38929 | 38929 | "observer": true,
|
| ... | ... | @@ -38950,7 +38950,7 @@ |
| 38950 | 38950 | "reference": {
|
| 38951 | 38951 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38952 | 38952 | "content": {
|
| 38953 | - "firstName": "Rut ",
|
|
| 38953 | + "firstName": "Rut",
|
|
| 38954 | 38954 | "lastName": "Hernández",
|
| 38955 | 38955 | "captain": false,
|
| 38956 | 38956 | "observer": true,
|
| ... | ... | @@ -38977,7 +38977,7 @@ |
| 38977 | 38977 | "reference": {
|
| 38978 | 38978 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 38979 | 38979 | "content": {
|
| 38980 | - "firstName": "Celso A. ",
|
|
| 38980 | + "firstName": "Celso A.",
|
|
| 38981 | 38981 | "lastName": "Hernández Díaz",
|
| 38982 | 38982 | "captain": false,
|
| 38983 | 38983 | "observer": true,
|
| ... | ... | @@ -39004,7 +39004,7 @@ |
| 39004 | 39004 | "reference": {
|
| 39005 | 39005 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 39006 | 39006 | "content": {
|
| 39007 | - "firstName": "Alfonso ",
|
|
| 39007 | + "firstName": "Alfonso",
|
|
| 39008 | 39008 | "lastName": "Gonzalez",
|
| 39009 | 39009 | "captain": false,
|
| 39010 | 39010 | "observer": true,
|
| ... | ... | @@ -39085,7 +39085,7 @@ |
| 39085 | 39085 | "reference": {
|
| 39086 | 39086 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 39087 | 39087 | "content": {
|
| 39088 | - "firstName": "Raquel ",
|
|
| 39088 | + "firstName": "Raquel",
|
|
| 39089 | 39089 | "lastName": "Maestre",
|
| 39090 | 39090 | "captain": false,
|
| 39091 | 39091 | "observer": true,
|
| ... | ... | @@ -39112,7 +39112,7 @@ |
| 39112 | 39112 | "reference": {
|
| 39113 | 39113 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 39114 | 39114 | "content": {
|
| 39115 | - "firstName": "Ph. ",
|
|
| 39115 | + "firstName": "Ph.",
|
|
| 39116 | 39116 | "lastName": "Le Niliot",
|
| 39117 | 39117 | "captain": false,
|
| 39118 | 39118 | "observer": true,
|
| ... | ... | @@ -39139,7 +39139,7 @@ |
| 39139 | 39139 | "reference": {
|
| 39140 | 39140 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 39141 | 39141 | "content": {
|
| 39142 | - "firstName": "Iñigo ",
|
|
| 39142 | + "firstName": "Iñigo",
|
|
| 39143 | 39143 | "lastName": "Labarga",
|
| 39144 | 39144 | "captain": false,
|
| 39145 | 39145 | "observer": true,
|
| ... | ... | @@ -39166,7 +39166,7 @@ |
| 39166 | 39166 | "reference": {
|
| 39167 | 39167 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 39168 | 39168 | "content": {
|
| 39169 | - "firstName": "C. ",
|
|
| 39169 | + "firstName": "C.",
|
|
| 39170 | 39170 | "lastName": "Labaisse",
|
| 39171 | 39171 | "captain": false,
|
| 39172 | 39172 | "observer": true,
|
| ... | ... | @@ -39193,7 +39193,7 @@ |
| 39193 | 39193 | "reference": {
|
| 39194 | 39194 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 39195 | 39195 | "content": {
|
| 39196 | - "firstName": "Noemí ",
|
|
| 39196 | + "firstName": "Noemí",
|
|
| 39197 | 39197 | "lastName": "Martinez",
|
| 39198 | 39198 | "captain": false,
|
| 39199 | 39199 | "observer": true,
|
| ... | ... | @@ -39247,7 +39247,7 @@ |
| 39247 | 39247 | "reference": {
|
| 39248 | 39248 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 39249 | 39249 | "content": {
|
| 39250 | - "firstName": "Laura Entrambasaguas ",
|
|
| 39250 | + "firstName": "Laura Entrambasaguas",
|
|
| 39251 | 39251 | "lastName": "Monsell",
|
| 39252 | 39252 | "captain": false,
|
| 39253 | 39253 | "observer": true,
|
| ... | ... | @@ -43653,7 +43653,7 @@ |
| 43653 | 43653 | "reference": {
|
| 43654 | 43654 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 43655 | 43655 | "content": {
|
| 43656 | - "firstName": " Benoit",
|
|
| 43656 | + "firstName": "Benoit",
|
|
| 43657 | 43657 | "lastName": "Dumeau ",
|
| 43658 | 43658 | "captain": false,
|
| 43659 | 43659 | "observer": true,
|
| ... | ... | @@ -44220,7 +44220,7 @@ |
| 44220 | 44220 | "reference": {
|
| 44221 | 44221 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 44222 | 44222 | "content": {
|
| 44223 | - "firstName": "Damenéko Jean-Marc ",
|
|
| 44223 | + "firstName": "Damenéko Jean-Marc",
|
|
| 44224 | 44224 | "lastName": "Zouhoury",
|
| 44225 | 44225 | "captain": false,
|
| 44226 | 44226 | "observer": true,
|
| ... | ... | @@ -48216,7 +48216,7 @@ |
| 48216 | 48216 | "reference": {
|
| 48217 | 48217 | "type": "fr.ird.observe.dto.referential.common.PersonReference",
|
| 48218 | 48218 | "content": {
|
| 48219 | - "firstName": "Zegbehi Magloire ",
|
|
| 48219 | + "firstName": "Zegbehi Magloire",
|
|
| 48220 | 48220 | "lastName": "Gnadou",
|
| 48221 | 48221 | "captain": false,
|
| 48222 | 48222 | "observer": false,
|
| ... | ... | @@ -56754,7 +56754,7 @@ |
| 56754 | 56754 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 56755 | 56755 | "content": {
|
| 56756 | 56756 | "code": "210",
|
| 56757 | - "label": "Renards de mer nca ",
|
|
| 56757 | + "label": "Renards de mer nca",
|
|
| 56758 | 56758 | "faoCode": "THR",
|
| 56759 | 56759 | "scientificLabel": "Alopias spp",
|
| 56760 | 56760 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -56940,13 +56940,13 @@ |
| 56940 | 56940 | },
|
| 56941 | 56941 | {
|
| 56942 | 56942 | "fieldName": "uri",
|
| 56943 | - "scope": "WARNING",
|
|
| 56944 | - "message": "Le champ n\u0027est pas renseigné."
|
|
| 56943 | + "scope": "ERROR",
|
|
| 56944 | + "message": "Le champ (s\u0027il est renseigné) ne doit pas être consituté que d\u0027espaces."
|
|
| 56945 | 56945 | },
|
| 56946 | 56946 | {
|
| 56947 | 56947 | "fieldName": "uri",
|
| 56948 | - "scope": "ERROR",
|
|
| 56949 | - "message": "Le champ (s\u0027il est renseigné) ne doit pas être consituté que d\u0027espaces."
|
|
| 56948 | + "scope": "WARNING",
|
|
| 56949 | + "message": "Le champ n\u0027est pas renseigné."
|
|
| 56950 | 56950 | },
|
| 56951 | 56951 | {
|
| 56952 | 56952 | "fieldName": "wormsId",
|
| ... | ... | @@ -57520,7 +57520,7 @@ |
| 57520 | 57520 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 57521 | 57521 | "content": {
|
| 57522 | 57522 | "code": "230",
|
| 57523 | - "label": "Requins-scies nca ",
|
|
| 57523 | + "label": "Requins-scies nca",
|
|
| 57524 | 57524 | "faoCode": "PWS",
|
| 57525 | 57525 | "scientificLabel": "Pristiophorus spp",
|
| 57526 | 57526 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -57594,7 +57594,7 @@ |
| 57594 | 57594 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 57595 | 57595 | "content": {
|
| 57596 | 57596 | "code": "232",
|
| 57597 | - "label": "Anges de mer nca ",
|
|
| 57597 | + "label": "Anges de mer nca",
|
|
| 57598 | 57598 | "faoCode": "ASK",
|
| 57599 | 57599 | "scientificLabel": "Squatinidae",
|
| 57600 | 57600 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499468646#0.710986209334806",
|
| ... | ... | @@ -58217,7 +58217,7 @@ |
| 58217 | 58217 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 58218 | 58218 | "content": {
|
| 58219 | 58219 | "code": "304",
|
| 58220 | - "label": "Baliste cabri ",
|
|
| 58220 | + "label": "Baliste cabri",
|
|
| 58221 | 58221 | "faoCode": "TRG",
|
| 58222 | 58222 | "scientificLabel": "Balistes carolinensis",
|
| 58223 | 58223 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -58402,7 +58402,7 @@ |
| 58402 | 58402 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 58403 | 58403 | "content": {
|
| 58404 | 58404 | "code": "309",
|
| 58405 | - "label": "Orphie plate ",
|
|
| 58405 | + "label": "Orphie plate",
|
|
| 58406 | 58406 | "faoCode": "BAF",
|
| 58407 | 58407 | "scientificLabel": "Ablennes hians",
|
| 58408 | 58408 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -58518,7 +58518,7 @@ |
| 58518 | 58518 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 58519 | 58519 | "content": {
|
| 58520 | 58520 | "code": "312",
|
| 58521 | - "label": "Comète maquereau ",
|
|
| 58521 | + "label": "Comète maquereau",
|
|
| 58522 | 58522 | "faoCode": "MSD",
|
| 58523 | 58523 | "scientificLabel": "Decapterus macarellus",
|
| 58524 | 58524 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -58629,7 +58629,7 @@ |
| 58629 | 58629 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 58630 | 58630 | "content": {
|
| 58631 | 58631 | "code": "315",
|
| 58632 | - "label": "Carangue des îles ",
|
|
| 58632 | + "label": "Carangue des îles",
|
|
| 58633 | 58633 | "faoCode": "NGT",
|
| 58634 | 58634 | "scientificLabel": "Carangoides orthogrammus",
|
| 58635 | 58635 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -58666,7 +58666,7 @@ |
| 58666 | 58666 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 58667 | 58667 | "content": {
|
| 58668 | 58668 | "code": "316",
|
| 58669 | - "label": "Carangue vorace ",
|
|
| 58669 | + "label": "Carangue vorace",
|
|
| 58670 | 58670 | "faoCode": "CXS",
|
| 58671 | 58671 | "scientificLabel": "Caranx sexfasciatus",
|
| 58672 | 58672 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -58851,7 +58851,7 @@ |
| 58851 | 58851 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 58852 | 58852 | "content": {
|
| 58853 | 58853 | "code": "321",
|
| 58854 | - "label": "Porc-épic boubou ",
|
|
| 58854 | + "label": "Porc-épic boubou",
|
|
| 58855 | 58855 | "faoCode": "DIY",
|
| 58856 | 58856 | "scientificLabel": "Diodon hystrix",
|
| 58857 | 58857 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -58962,9 +58962,9 @@ |
| 58962 | 58962 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 58963 | 58963 | "content": {
|
| 58964 | 58964 | "code": "324",
|
| 58965 | - "label": "Rémora ",
|
|
| 58965 | + "label": "Rémora",
|
|
| 58966 | 58966 | "faoCode": "HTL",
|
| 58967 | - "scientificLabel": "Phtheirichthys lineatus ",
|
|
| 58967 | + "scientificLabel": "Phtheirichthys lineatus",
|
|
| 58968 | 58968 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| 58969 | 58969 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 58970 | 58970 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1239832683689#0.12092280503502995",
|
| ... | ... | @@ -59221,7 +59221,7 @@ |
| 59221 | 59221 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 59222 | 59222 | "content": {
|
| 59223 | 59223 | "code": "331",
|
| 59224 | - "label": "Demi-bec volant ",
|
|
| 59224 | + "label": "Demi-bec volant",
|
|
| 59225 | 59225 | "faoCode": "EXQ",
|
| 59226 | 59226 | "scientificLabel": "Euleptorhamphus velox",
|
| 59227 | 59227 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -59332,7 +59332,7 @@ |
| 59332 | 59332 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 59333 | 59333 | "content": {
|
| 59334 | 59334 | "code": "334",
|
| 59335 | - "label": "Kyphosus calicagères nca ",
|
|
| 59335 | + "label": "Kyphosus calicagères nca",
|
|
| 59336 | 59336 | "faoCode": "KYP",
|
| 59337 | 59337 | "scientificLabel": "Kyphosus spp",
|
| 59338 | 59338 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -59564,7 +59564,7 @@ |
| 59564 | 59564 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 59565 | 59565 | "content": {
|
| 59566 | 59566 | "code": "340",
|
| 59567 | - "label": "Calicagère bleue ",
|
|
| 59567 | + "label": "Calicagère bleue",
|
|
| 59568 | 59568 | "faoCode": "KYC",
|
| 59569 | 59569 | "scientificLabel": "Kyphosus cinerascens",
|
| 59570 | 59570 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -59601,7 +59601,7 @@ |
| 59601 | 59601 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 59602 | 59602 | "content": {
|
| 59603 | 59603 | "code": "341",
|
| 59604 | - "label": "Calicagère blanche ",
|
|
| 59604 | + "label": "Calicagère blanche",
|
|
| 59605 | 59605 | "faoCode": "KYS",
|
| 59606 | 59606 | "scientificLabel": "Kyphosus sectatrix",
|
| 59607 | 59607 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -59764,7 +59764,7 @@ |
| 59764 | 59764 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 59765 | 59765 | "content": {
|
| 59766 | 59766 | "code": "345",
|
| 59767 | - "label": "Compère océanique ",
|
|
| 59767 | + "label": "Compère océanique",
|
|
| 59768 | 59768 | "faoCode": "LGH",
|
| 59769 | 59769 | "scientificLabel": "Lagocephalus lagocephalus",
|
| 59770 | 59770 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -59801,7 +59801,7 @@ |
| 59801 | 59801 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 59802 | 59802 | "content": {
|
| 59803 | 59803 | "code": "346",
|
| 59804 | - "label": "Croupia roche ",
|
|
| 59804 | + "label": "Croupia roche",
|
|
| 59805 | 59805 | "faoCode": "LOB",
|
| 59806 | 59806 | "scientificLabel": "Lobotes surinamensis",
|
| 59807 | 59807 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -59949,7 +59949,7 @@ |
| 59949 | 59949 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 59950 | 59950 | "content": {
|
| 59951 | 59951 | "code": "350",
|
| 59952 | - "label": "Poissons marins nca ",
|
|
| 59952 | + "label": "Poissons marins nca",
|
|
| 59953 | 59953 | "faoCode": "MZZ",
|
| 59954 | 59954 | "scientificLabel": "Osteichthyes",
|
| 59955 | 59955 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1464000000000#99",
|
| ... | ... | @@ -60028,7 +60028,7 @@ |
| 60028 | 60028 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 60029 | 60029 | "content": {
|
| 60030 | 60030 | "code": "352",
|
| 60031 | - "label": "Poules d\u0027eau ",
|
|
| 60031 | + "label": "Poules d\u0027eau",
|
|
| 60032 | 60032 | "faoCode": "BAT",
|
| 60033 | 60033 | "scientificLabel": "Platax spp",
|
| 60034 | 60034 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -60292,7 +60292,7 @@ |
| 60292 | 60292 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 60293 | 60293 | "content": {
|
| 60294 | 60294 | "code": "359",
|
| 60295 | - "label": "Sériole limon ",
|
|
| 60295 | + "label": "Sériole limon",
|
|
| 60296 | 60296 | "faoCode": "YTL",
|
| 60297 | 60297 | "scientificLabel": "Seriola rivoliana",
|
| 60298 | 60298 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -60482,7 +60482,7 @@ |
| 60482 | 60482 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 60483 | 60483 | "content": {
|
| 60484 | 60484 | "code": "364",
|
| 60485 | - "label": "Aiguille crocodile ",
|
|
| 60485 | + "label": "Aiguille crocodile",
|
|
| 60486 | 60486 | "faoCode": "BTS",
|
| 60487 | 60487 | "scientificLabel": "Tylosurus crocodilus",
|
| 60488 | 60488 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -62686,7 +62686,7 @@ |
| 62686 | 62686 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 62687 | 62687 | "content": {
|
| 62688 | 62688 | "code": "0",
|
| 62689 | - "label": "Thon rouge de l\u0027Atlantique ",
|
|
| 62689 | + "label": "Thon rouge de l\u0027Atlantique",
|
|
| 62690 | 62690 | "faoCode": "BFT",
|
| 62691 | 62691 | "scientificLabel": "Thunnus thynnus",
|
| 62692 | 62692 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -62719,9 +62719,9 @@ |
| 62719 | 62719 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 62720 | 62720 | "content": {
|
| 62721 | 62721 | "code": "0",
|
| 62722 | - "label": "Mobula coilloti ",
|
|
| 62722 | + "label": "Mobula coilloti",
|
|
| 62723 | 62723 | "faoCode": "RMC",
|
| 62724 | - "scientificLabel": "Mobula coilloti ",
|
|
| 62724 | + "scientificLabel": "Mobula coilloti",
|
|
| 62725 | 62725 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499468646#0.710986209334806",
|
| 62726 | 62726 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 62727 | 62727 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1445863056144#0.9820877553253712",
|
| ... | ... | @@ -62791,13 +62791,13 @@ |
| 62791 | 62791 | },
|
| 62792 | 62792 | {
|
| 62793 | 62793 | "fieldName": "uri",
|
| 62794 | - "scope": "WARNING",
|
|
| 62795 | - "message": "Le champ n\u0027est pas renseigné."
|
|
| 62794 | + "scope": "ERROR",
|
|
| 62795 | + "message": "Le champ (s\u0027il est renseigné) ne doit pas être consituté que d\u0027espaces."
|
|
| 62796 | 62796 | },
|
| 62797 | 62797 | {
|
| 62798 | 62798 | "fieldName": "uri",
|
| 62799 | - "scope": "ERROR",
|
|
| 62800 | - "message": "Le champ (s\u0027il est renseigné) ne doit pas être consituté que d\u0027espaces."
|
|
| 62799 | + "scope": "WARNING",
|
|
| 62800 | + "message": "Le champ n\u0027est pas renseigné."
|
|
| 62801 | 62801 | },
|
| 62802 | 62802 | {
|
| 62803 | 62803 | "fieldName": "wormsId",
|
| ... | ... | @@ -62811,9 +62811,9 @@ |
| 62811 | 62811 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 62812 | 62812 | "content": {
|
| 62813 | 62813 | "code": "0",
|
| 62814 | - "label": "Sergent-major ",
|
|
| 62814 | + "label": "Sergent-major",
|
|
| 62815 | 62815 | "faoCode": "ABU",
|
| 62816 | - "scientificLabel": "Abudefduf saxatilis ",
|
|
| 62816 | + "scientificLabel": "Abudefduf saxatilis",
|
|
| 62817 | 62817 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| 62818 | 62818 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 62819 | 62819 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1239832683689#0.12092280503502995",
|
| ... | ... | @@ -62850,7 +62850,7 @@ |
| 62850 | 62850 | "code": "0",
|
| 62851 | 62851 | "label": "Famille Clupeidae",
|
| 62852 | 62852 | "faoCode": "CLP",
|
| 62853 | - "scientificLabel": "Clupeidae ",
|
|
| 62853 | + "scientificLabel": "Clupeidae",
|
|
| 62854 | 62854 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| 62855 | 62855 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 62856 | 62856 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1239832683689#0.12092280503502995",
|
| ... | ... | @@ -62916,7 +62916,7 @@ |
| 62916 | 62916 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 62917 | 62917 | "content": {
|
| 62918 | 62918 | "code": "0",
|
| 62919 | - "label": "Rémora commun ",
|
|
| 62919 | + "label": "Rémora commun",
|
|
| 62920 | 62920 | "faoCode": "EHN",
|
| 62921 | 62921 | "scientificLabel": "Echeneis naucrates",
|
| 62922 | 62922 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -62994,9 +62994,9 @@ |
| 62994 | 62994 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 62995 | 62995 | "content": {
|
| 62996 | 62996 | "code": "0",
|
| 62997 | - "label": "Oreosoma atlanticum ",
|
|
| 62997 | + "label": "Oreosoma atlanticum",
|
|
| 62998 | 62998 | "faoCode": "OOT",
|
| 62999 | - "scientificLabel": "Oreosoma atlanticum ",
|
|
| 62999 | + "scientificLabel": "Oreosoma atlanticum",
|
|
| 63000 | 63000 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| 63001 | 63001 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 63002 | 63002 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1239832683689#0.12092280503502995",
|
| ... | ... | @@ -63241,13 +63241,13 @@ |
| 63241 | 63241 | "messages": [
|
| 63242 | 63242 | {
|
| 63243 | 63243 | "fieldName": "uri",
|
| 63244 | - "scope": "WARNING",
|
|
| 63245 | - "message": "Le champ n\u0027est pas renseigné."
|
|
| 63244 | + "scope": "ERROR",
|
|
| 63245 | + "message": "Le champ (s\u0027il est renseigné) ne doit pas être consituté que d\u0027espaces."
|
|
| 63246 | 63246 | },
|
| 63247 | 63247 | {
|
| 63248 | 63248 | "fieldName": "uri",
|
| 63249 | - "scope": "ERROR",
|
|
| 63250 | - "message": "Le champ (s\u0027il est renseigné) ne doit pas être consituté que d\u0027espaces."
|
|
| 63249 | + "scope": "WARNING",
|
|
| 63250 | + "message": "Le champ n\u0027est pas renseigné."
|
|
| 63251 | 63251 | },
|
| 63252 | 63252 | {
|
| 63253 | 63253 | "fieldName": "wormsId",
|
| ... | ... | @@ -66923,7 +66923,7 @@ |
| 66923 | 66923 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 66924 | 66924 | "content": {
|
| 66925 | 66925 | "code": "111",
|
| 66926 | - "label": "Makaire bleu indo-pacifique ",
|
|
| 66926 | + "label": "Makaire bleu indo-pacifique",
|
|
| 66927 | 66927 | "faoCode": "1BUM",
|
| 66928 | 66928 | "scientificLabel": "Makaira mazara",
|
| 66929 | 66929 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499467326#0.537910396233201",
|
| ... | ... | @@ -67076,9 +67076,9 @@ |
| 67076 | 67076 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 67077 | 67077 | "content": {
|
| 67078 | 67078 | "code": "248",
|
| 67079 | - "label": "Mantes, diables de mer nca ",
|
|
| 67079 | + "label": "Mantes, diables de mer nca",
|
|
| 67080 | 67080 | "faoCode": "MAN",
|
| 67081 | - "scientificLabel": "Mobulidae ",
|
|
| 67081 | + "scientificLabel": "Mobulidae",
|
|
| 67082 | 67082 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499468646#0.710986209334806",
|
| 67083 | 67083 | "weightMeasureTypeId": "fr.ird.referential.common.WeightMeasureType#1239832686139#0.2",
|
| 67084 | 67084 | "speciesGroupId": "fr.ird.referential.common.SpeciesGroup#1445863056144#0.9820877553253712",
|
| ... | ... | @@ -67155,7 +67155,7 @@ |
| 67155 | 67155 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 67156 | 67156 | "content": {
|
| 67157 | 67157 | "code": "250",
|
| 67158 | - "label": "Torpilles, raies électriq. nca ",
|
|
| 67158 | + "label": "Torpilles, raies électriq. nca",
|
|
| 67159 | 67159 | "faoCode": "TOD",
|
| 67160 | 67160 | "scientificLabel": "Torpedinidae",
|
| 67161 | 67161 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499468646#0.710986209334806",
|
| ... | ... | @@ -67188,7 +67188,7 @@ |
| 67188 | 67188 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 67189 | 67189 | "content": {
|
| 67190 | 67190 | "code": "367",
|
| 67191 | - "label": "Carangue paia ",
|
|
| 67191 | + "label": "Carangue paia",
|
|
| 67192 | 67192 | "faoCode": "URU",
|
| 67193 | 67193 | "scientificLabel": "Uraspis uraspis",
|
| 67194 | 67194 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -67225,7 +67225,7 @@ |
| 67225 | 67225 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 67226 | 67226 | "content": {
|
| 67227 | 67227 | "code": "368",
|
| 67228 | - "label": "Comètes nca ",
|
|
| 67228 | + "label": "Comètes nca",
|
|
| 67229 | 67229 | "faoCode": "SDX",
|
| 67230 | 67230 | "scientificLabel": "Decapterus spp",
|
| 67231 | 67231 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -67373,7 +67373,7 @@ |
| 67373 | 67373 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 67374 | 67374 | "content": {
|
| 67375 | 67375 | "code": "372",
|
| 67376 | - "label": "Luvar ",
|
|
| 67376 | + "label": "Luvar",
|
|
| 67377 | 67377 | "faoCode": "LVM",
|
| 67378 | 67378 | "scientificLabel": "Luvarus imperialis",
|
| 67379 | 67379 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499465700#0.0902433863375336",
|
| ... | ... | @@ -67494,7 +67494,7 @@ |
| 67494 | 67494 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 67495 | 67495 | "content": {
|
| 67496 | 67496 | "code": "375",
|
| 67497 | - "label": "Rémora des marlins ",
|
|
| 67497 | + "label": "Rémora des marlins",
|
|
| 67498 | 67498 | "faoCode": "REZ",
|
| 67499 | 67499 | "scientificLabel": "Remora osteochir",
|
| 67500 | 67500 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -67531,7 +67531,7 @@ |
| 67531 | 67531 | "type": "fr.ird.observe.dto.referential.common.SpeciesReference",
|
| 67532 | 67532 | "content": {
|
| 67533 | 67533 | "code": "376",
|
| 67534 | - "label": "Rémora des espadons ",
|
|
| 67534 | + "label": "Rémora des espadons",
|
|
| 67535 | 67535 | "faoCode": "REY",
|
| 67536 | 67536 | "scientificLabel": "Remora brachyptera",
|
| 67537 | 67537 | "sizeMeasureTypeId": "fr.ird.referential.common.SizeMeasureType#1433499466532#0.844473292818293",
|
| ... | ... | @@ -68238,17 +68238,17 @@ |
| 68238 | 68238 | {
|
| 68239 | 68239 | "fieldName": "species",
|
| 68240 | 68240 | "scope": "ERROR",
|
| 68241 | - "message": "Le référentiel sélectionné «SPY - Sphyrnidae - Famille Sphyrnidae» (à la position 24) est désactivé."
|
|
| 68241 | + "message": "Le référentiel sélectionné «LKY - Lepidochelys kempii - Tortue de Kemp» (à la position 120) est désactivé."
|
|
| 68242 | 68242 | },
|
| 68243 | 68243 | {
|
| 68244 | 68244 | "fieldName": "species",
|
| 68245 | 68245 | "scope": "ERROR",
|
| 68246 | - "message": "Le référentiel sélectionné «LKY - Lepidochelys kempii - Tortue de Kemp» (à la position 120) est désactivé."
|
|
| 68246 | + "message": "Le référentiel sélectionné «SPY - Sphyrnidae - Famille Sphyrnidae» (à la position 24) est désactivé."
|
|
| 68247 | 68247 | },
|
| 68248 | 68248 | {
|
| 68249 | 68249 | "fieldName": "species",
|
| 68250 | 68250 | "scope": "ERROR",
|
| 68251 | - "message": "Le référentiel sélectionné «1BUM - Makaira mazara - Makaire bleu indo-pacifique » (à la position 191) est désactivé."
|
|
| 68251 | + "message": "Le référentiel sélectionné «1BUM - Makaira mazara - Makaire bleu indo-pacifique» (à la position 191) est désactivé."
|
|
| 68252 | 68252 | },
|
| 68253 | 68253 | {
|
| 68254 | 68254 | "fieldName": "uri",
|
| ... | ... | @@ -68504,7 +68504,7 @@ |
| 68504 | 68504 | {
|
| 68505 | 68505 | "fieldName": "species",
|
| 68506 | 68506 | "scope": "ERROR",
|
| 68507 | - "message": "Le référentiel sélectionné «SPY - Sphyrnidae - Famille Sphyrnidae» (à la position 24) est désactivé."
|
|
| 68507 | + "message": "Le référentiel sélectionné «LKY - Lepidochelys kempii - Tortue de Kemp» (à la position 120) est désactivé."
|
|
| 68508 | 68508 | },
|
| 68509 | 68509 | {
|
| 68510 | 68510 | "fieldName": "species",
|
| ... | ... | @@ -68514,12 +68514,12 @@ |
| 68514 | 68514 | {
|
| 68515 | 68515 | "fieldName": "species",
|
| 68516 | 68516 | "scope": "ERROR",
|
| 68517 | - "message": "Le référentiel sélectionné «LKY - Lepidochelys kempii - Tortue de Kemp» (à la position 120) est désactivé."
|
|
| 68517 | + "message": "Le référentiel sélectionné «1BUM - Makaira mazara - Makaire bleu indo-pacifique» (à la position 208) est désactivé."
|
|
| 68518 | 68518 | },
|
| 68519 | 68519 | {
|
| 68520 | 68520 | "fieldName": "species",
|
| 68521 | 68521 | "scope": "ERROR",
|
| 68522 | - "message": "Le référentiel sélectionné «1BUM - Makaira mazara - Makaire bleu indo-pacifique » (à la position 208) est désactivé."
|
|
| 68522 | + "message": "Le référentiel sélectionné «SPY - Sphyrnidae - Famille Sphyrnidae» (à la position 24) est désactivé."
|
|
| 68523 | 68523 | },
|
| 68524 | 68524 | {
|
| 68525 | 68525 | "fieldName": "uri",
|
| ... | ... | @@ -112051,7 +112051,7 @@ |
| 112051 | 112051 | },
|
| 112052 | 112052 | "vesselSizeCategory": {
|
| 112053 | 112053 | "code": "8",
|
| 112054 | - "gaugeLabel": " + 2300 TX",
|
|
| 112054 | + "gaugeLabel": "+ 2300 TX",
|
|
| 112055 | 112055 | "capacityLabel": "\u003e 1200 tonnes",
|
| 112056 | 112056 | "needComment": false,
|
| 112057 | 112057 | "enabled": true,
|
| ... | ... | @@ -117500,7 +117500,7 @@ |
| 117500 | 117500 | "type": "fr.ird.observe.dto.referential.common.VesselReference",
|
| 117501 | 117501 | "content": {
|
| 117502 | 117502 | "code": "550",
|
| 117503 | - "label": "ALACRAN ",
|
|
| 117503 | + "label": "ALACRAN",
|
|
| 117504 | 117504 | "wellRegex": "^(1A|([1-9]{1}[B;T]{1}|(1{1}[0-9]{1}[B;T]{1}))){1}$",
|
| 117505 | 117505 | "vesselType": {
|
| 117506 | 117506 | "code": "6",
|
| ... | ... | @@ -118326,7 +118326,7 @@ |
| 118326 | 118326 | },
|
| 118327 | 118327 | "vesselSizeCategory": {
|
| 118328 | 118328 | "code": "8",
|
| 118329 | - "gaugeLabel": " + 2300 TX",
|
|
| 118329 | + "gaugeLabel": "+ 2300 TX",
|
|
| 118330 | 118330 | "capacityLabel": "\u003e 1200 tonnes",
|
| 118331 | 118331 | "needComment": false,
|
| 118332 | 118332 | "enabled": true,
|
| ... | ... | @@ -118419,7 +118419,7 @@ |
| 118419 | 118419 | },
|
| 118420 | 118420 | "vesselSizeCategory": {
|
| 118421 | 118421 | "code": "8",
|
| 118422 | - "gaugeLabel": " + 2300 TX",
|
|
| 118422 | + "gaugeLabel": "+ 2300 TX",
|
|
| 118423 | 118423 | "capacityLabel": "\u003e 1200 tonnes",
|
| 118424 | 118424 | "needComment": false,
|
| 118425 | 118425 | "enabled": true,
|
| ... | ... | @@ -119239,7 +119239,7 @@ |
| 119239 | 119239 | },
|
| 119240 | 119240 | "vesselSizeCategory": {
|
| 119241 | 119241 | "code": "8",
|
| 119242 | - "gaugeLabel": " + 2300 TX",
|
|
| 119242 | + "gaugeLabel": "+ 2300 TX",
|
|
| 119243 | 119243 | "capacityLabel": "\u003e 1200 tonnes",
|
| 119244 | 119244 | "needComment": false,
|
| 119245 | 119245 | "enabled": true,
|
| ... | ... | @@ -119322,7 +119322,7 @@ |
| 119322 | 119322 | },
|
| 119323 | 119323 | "vesselSizeCategory": {
|
| 119324 | 119324 | "code": "8",
|
| 119325 | - "gaugeLabel": " + 2300 TX",
|
|
| 119325 | + "gaugeLabel": "+ 2300 TX",
|
|
| 119326 | 119326 | "capacityLabel": "\u003e 1200 tonnes",
|
| 119327 | 119327 | "needComment": false,
|
| 119328 | 119328 | "enabled": true,
|
| ... | ... | @@ -119405,7 +119405,7 @@ |
| 119405 | 119405 | },
|
| 119406 | 119406 | "vesselSizeCategory": {
|
| 119407 | 119407 | "code": "8",
|
| 119408 | - "gaugeLabel": " + 2300 TX",
|
|
| 119408 | + "gaugeLabel": "+ 2300 TX",
|
|
| 119409 | 119409 | "capacityLabel": "\u003e 1200 tonnes",
|
| 119410 | 119410 | "needComment": false,
|
| 119411 | 119411 | "enabled": true,
|
| ... | ... | @@ -120093,7 +120093,7 @@ |
| 120093 | 120093 | },
|
| 120094 | 120094 | "vesselSizeCategory": {
|
| 120095 | 120095 | "code": "8",
|
| 120096 | - "gaugeLabel": " + 2300 TX",
|
|
| 120096 | + "gaugeLabel": "+ 2300 TX",
|
|
| 120097 | 120097 | "capacityLabel": "\u003e 1200 tonnes",
|
| 120098 | 120098 | "needComment": false,
|
| 120099 | 120099 | "enabled": true,
|
| ... | ... | @@ -120797,7 +120797,7 @@ |
| 120797 | 120797 | },
|
| 120798 | 120798 | "vesselSizeCategory": {
|
| 120799 | 120799 | "code": "8",
|
| 120800 | - "gaugeLabel": " + 2300 TX",
|
|
| 120800 | + "gaugeLabel": "+ 2300 TX",
|
|
| 120801 | 120801 | "capacityLabel": "\u003e 1200 tonnes",
|
| 120802 | 120802 | "needComment": false,
|
| 120803 | 120803 | "enabled": true,
|
| ... | ... | @@ -121069,7 +121069,7 @@ |
| 121069 | 121069 | },
|
| 121070 | 121070 | "vesselSizeCategory": {
|
| 121071 | 121071 | "code": "8",
|
| 121072 | - "gaugeLabel": " + 2300 TX",
|
|
| 121072 | + "gaugeLabel": "+ 2300 TX",
|
|
| 121073 | 121073 | "capacityLabel": "\u003e 1200 tonnes",
|
| 121074 | 121074 | "needComment": false,
|
| 121075 | 121075 | "enabled": true,
|
| ... | ... | @@ -123297,7 +123297,7 @@ |
| 123297 | 123297 | },
|
| 123298 | 123298 | "vesselSizeCategory": {
|
| 123299 | 123299 | "code": "8",
|
| 123300 | - "gaugeLabel": " + 2300 TX",
|
|
| 123300 | + "gaugeLabel": "+ 2300 TX",
|
|
| 123301 | 123301 | "capacityLabel": "\u003e 1200 tonnes",
|
| 123302 | 123302 | "needComment": false,
|
| 123303 | 123303 | "enabled": true,
|
| ... | ... | @@ -123857,7 +123857,7 @@ |
| 123857 | 123857 | },
|
| 123858 | 123858 | "vesselSizeCategory": {
|
| 123859 | 123859 | "code": "8",
|
| 123860 | - "gaugeLabel": " + 2300 TX",
|
|
| 123860 | + "gaugeLabel": "+ 2300 TX",
|
|
| 123861 | 123861 | "capacityLabel": "\u003e 1200 tonnes",
|
| 123862 | 123862 | "needComment": false,
|
| 123863 | 123863 | "enabled": true,
|
| ... | ... | @@ -124596,7 +124596,7 @@ |
| 124596 | 124596 | },
|
| 124597 | 124597 | "vesselSizeCategory": {
|
| 124598 | 124598 | "code": "8",
|
| 124599 | - "gaugeLabel": " + 2300 TX",
|
|
| 124599 | + "gaugeLabel": "+ 2300 TX",
|
|
| 124600 | 124600 | "capacityLabel": "\u003e 1200 tonnes",
|
| 124601 | 124601 | "needComment": false,
|
| 124602 | 124602 | "enabled": true,
|
| ... | ... | @@ -124938,7 +124938,7 @@ |
| 124938 | 124938 | },
|
| 124939 | 124939 | "vesselSizeCategory": {
|
| 124940 | 124940 | "code": "8",
|
| 124941 | - "gaugeLabel": " + 2300 TX",
|
|
| 124941 | + "gaugeLabel": "+ 2300 TX",
|
|
| 124942 | 124942 | "capacityLabel": "\u003e 1200 tonnes",
|
| 124943 | 124943 | "needComment": false,
|
| 124944 | 124944 | "enabled": true,
|
| ... | ... | @@ -128722,7 +128722,7 @@ |
| 128722 | 128722 | },
|
| 128723 | 128723 | "vesselSizeCategory": {
|
| 128724 | 128724 | "code": "8",
|
| 128725 | - "gaugeLabel": " + 2300 TX",
|
|
| 128725 | + "gaugeLabel": "+ 2300 TX",
|
|
| 128726 | 128726 | "capacityLabel": "\u003e 1200 tonnes",
|
| 128727 | 128727 | "needComment": false,
|
| 128728 | 128728 | "enabled": true,
|
| ... | ... | @@ -129240,7 +129240,7 @@ |
| 129240 | 129240 | },
|
| 129241 | 129241 | "vesselSizeCategory": {
|
| 129242 | 129242 | "code": "8",
|
| 129243 | - "gaugeLabel": " + 2300 TX",
|
|
| 129243 | + "gaugeLabel": "+ 2300 TX",
|
|
| 129244 | 129244 | "capacityLabel": "\u003e 1200 tonnes",
|
| 129245 | 129245 | "needComment": false,
|
| 129246 | 129246 | "enabled": true,
|
| ... | ... | @@ -129664,7 +129664,7 @@ |
| 129664 | 129664 | },
|
| 129665 | 129665 | "vesselSizeCategory": {
|
| 129666 | 129666 | "code": "8",
|
| 129667 | - "gaugeLabel": " + 2300 TX",
|
|
| 129667 | + "gaugeLabel": "+ 2300 TX",
|
|
| 129668 | 129668 | "capacityLabel": "\u003e 1200 tonnes",
|
| 129669 | 129669 | "needComment": false,
|
| 129670 | 129670 | "enabled": true,
|
| ... | ... | @@ -132014,7 +132014,7 @@ |
| 132014 | 132014 | "type": "fr.ird.observe.dto.referential.common.VesselReference",
|
| 132015 | 132015 | "content": {
|
| 132016 | 132016 | "code": "713",
|
| 132017 | - "label": "ALACRAN ",
|
|
| 132017 | + "label": "ALACRAN",
|
|
| 132018 | 132018 | "wellRegex": "^(1A|([1-9]{1}[B;T]{1}|(1{1}[0-9]{1}[B;T]{1}))){1}$",
|
| 132019 | 132019 | "vesselType": {
|
| 132020 | 132020 | "code": "6",
|
| ... | ... | @@ -132889,7 +132889,7 @@ |
| 132889 | 132889 | },
|
| 132890 | 132890 | "vesselSizeCategory": {
|
| 132891 | 132891 | "code": "8",
|
| 132892 | - "gaugeLabel": " + 2300 TX",
|
|
| 132892 | + "gaugeLabel": "+ 2300 TX",
|
|
| 132893 | 132893 | "capacityLabel": "\u003e 1200 tonnes",
|
| 132894 | 132894 | "needComment": false,
|
| 132895 | 132895 | "enabled": true,
|
| ... | ... | @@ -134232,7 +134232,7 @@ |
| 134232 | 134232 | },
|
| 134233 | 134233 | "vesselSizeCategory": {
|
| 134234 | 134234 | "code": "8",
|
| 134235 | - "gaugeLabel": " + 2300 TX",
|
|
| 134235 | + "gaugeLabel": "+ 2300 TX",
|
|
| 134236 | 134236 | "capacityLabel": "\u003e 1200 tonnes",
|
| 134237 | 134237 | "needComment": false,
|
| 134238 | 134238 | "enabled": true,
|
| ... | ... | @@ -134480,7 +134480,7 @@ |
| 134480 | 134480 | },
|
| 134481 | 134481 | "vesselSizeCategory": {
|
| 134482 | 134482 | "code": "8",
|
| 134483 | - "gaugeLabel": " + 2300 TX",
|
|
| 134483 | + "gaugeLabel": "+ 2300 TX",
|
|
| 134484 | 134484 | "capacityLabel": "\u003e 1200 tonnes",
|
| 134485 | 134485 | "needComment": false,
|
| 134486 | 134486 | "enabled": true,
|
| ... | ... | @@ -134563,7 +134563,7 @@ |
| 134563 | 134563 | },
|
| 134564 | 134564 | "vesselSizeCategory": {
|
| 134565 | 134565 | "code": "8",
|
| 134566 | - "gaugeLabel": " + 2300 TX",
|
|
| 134566 | + "gaugeLabel": "+ 2300 TX",
|
|
| 134567 | 134567 | "capacityLabel": "\u003e 1200 tonnes",
|
| 134568 | 134568 | "needComment": false,
|
| 134569 | 134569 | "enabled": true,
|
| ... | ... | @@ -134738,7 +134738,7 @@ |
| 134738 | 134738 | },
|
| 134739 | 134739 | "vesselSizeCategory": {
|
| 134740 | 134740 | "code": "8",
|
| 134741 | - "gaugeLabel": " + 2300 TX",
|
|
| 134741 | + "gaugeLabel": "+ 2300 TX",
|
|
| 134742 | 134742 | "capacityLabel": "\u003e 1200 tonnes",
|
| 134743 | 134743 | "needComment": false,
|
| 134744 | 134744 | "enabled": true,
|
| ... | ... | @@ -134987,7 +134987,7 @@ |
| 134987 | 134987 | },
|
| 134988 | 134988 | "vesselSizeCategory": {
|
| 134989 | 134989 | "code": "8",
|
| 134990 | - "gaugeLabel": " + 2300 TX",
|
|
| 134990 | + "gaugeLabel": "+ 2300 TX",
|
|
| 134991 | 134991 | "capacityLabel": "\u003e 1200 tonnes",
|
| 134992 | 134992 | "needComment": false,
|
| 134993 | 134993 | "enabled": true,
|
| ... | ... | @@ -135162,7 +135162,7 @@ |
| 135162 | 135162 | },
|
| 135163 | 135163 | "vesselSizeCategory": {
|
| 135164 | 135164 | "code": "8",
|
| 135165 | - "gaugeLabel": " + 2300 TX",
|
|
| 135165 | + "gaugeLabel": "+ 2300 TX",
|
|
| 135166 | 135166 | "capacityLabel": "\u003e 1200 tonnes",
|
| 135167 | 135167 | "needComment": false,
|
| 135168 | 135168 | "enabled": true,
|
| ... | ... | @@ -136060,7 +136060,7 @@ |
| 136060 | 136060 | },
|
| 136061 | 136061 | "vesselSizeCategory": {
|
| 136062 | 136062 | "code": "8",
|
| 136063 | - "gaugeLabel": " + 2300 TX",
|
|
| 136063 | + "gaugeLabel": "+ 2300 TX",
|
|
| 136064 | 136064 | "capacityLabel": "\u003e 1200 tonnes",
|
| 136065 | 136065 | "needComment": false,
|
| 136066 | 136066 | "enabled": true,
|
| ... | ... | @@ -136226,7 +136226,7 @@ |
| 136226 | 136226 | },
|
| 136227 | 136227 | "vesselSizeCategory": {
|
| 136228 | 136228 | "code": "8",
|
| 136229 | - "gaugeLabel": " + 2300 TX",
|
|
| 136229 | + "gaugeLabel": "+ 2300 TX",
|
|
| 136230 | 136230 | "capacityLabel": "\u003e 1200 tonnes",
|
| 136231 | 136231 | "needComment": false,
|
| 136232 | 136232 | "enabled": true,
|
| ... | ... | @@ -137184,7 +137184,7 @@ |
| 137184 | 137184 | },
|
| 137185 | 137185 | "vesselSizeCategory": {
|
| 137186 | 137186 | "code": "8",
|
| 137187 | - "gaugeLabel": " + 2300 TX",
|
|
| 137187 | + "gaugeLabel": "+ 2300 TX",
|
|
| 137188 | 137188 | "capacityLabel": "\u003e 1200 tonnes",
|
| 137189 | 137189 | "needComment": false,
|
| 137190 | 137190 | "enabled": true,
|
| ... | ... | @@ -137857,7 +137857,7 @@ |
| 137857 | 137857 | },
|
| 137858 | 137858 | "vesselSizeCategory": {
|
| 137859 | 137859 | "code": "8",
|
| 137860 | - "gaugeLabel": " + 2300 TX",
|
|
| 137860 | + "gaugeLabel": "+ 2300 TX",
|
|
| 137861 | 137861 | "capacityLabel": "\u003e 1200 tonnes",
|
| 137862 | 137862 | "needComment": false,
|
| 137863 | 137863 | "enabled": true,
|
| ... | ... | @@ -137945,7 +137945,7 @@ |
| 137945 | 137945 | },
|
| 137946 | 137946 | "vesselSizeCategory": {
|
| 137947 | 137947 | "code": "8",
|
| 137948 | - "gaugeLabel": " + 2300 TX",
|
|
| 137948 | + "gaugeLabel": "+ 2300 TX",
|
|
| 137949 | 137949 | "capacityLabel": "\u003e 1200 tonnes",
|
| 137950 | 137950 | "needComment": false,
|
| 137951 | 137951 | "enabled": true,
|
| ... | ... | @@ -143082,7 +143082,7 @@ |
| 143082 | 143082 | "type": "fr.ird.observe.dto.referential.common.VesselReference",
|
| 143083 | 143083 | "content": {
|
| 143084 | 143084 | "code": "842",
|
| 143085 | - "label": "PANOFI PATHFINDER ",
|
|
| 143085 | + "label": "PANOFI PATHFINDER",
|
|
| 143086 | 143086 | "wellRegex": "^(1A|([1-9]{1}[B;T]{1}|(1{1}[0-9]{1}[B;T]{1}))){1}$",
|
| 143087 | 143087 | "vesselType": {
|
| 143088 | 143088 | "code": "6",
|
| ... | ... | @@ -145713,7 +145713,7 @@ |
| 145713 | 145713 | },
|
| 145714 | 145714 | "vesselSizeCategory": {
|
| 145715 | 145715 | "code": "8",
|
| 145716 | - "gaugeLabel": " + 2300 TX",
|
|
| 145716 | + "gaugeLabel": "+ 2300 TX",
|
|
| 145717 | 145717 | "capacityLabel": "\u003e 1200 tonnes",
|
| 145718 | 145718 | "needComment": false,
|
| 145719 | 145719 | "enabled": true,
|
| ... | ... | @@ -148123,7 +148123,7 @@ |
| 148123 | 148123 | },
|
| 148124 | 148124 | "vesselSizeCategory": {
|
| 148125 | 148125 | "code": "8",
|
| 148126 | - "gaugeLabel": " + 2300 TX",
|
|
| 148126 | + "gaugeLabel": "+ 2300 TX",
|
|
| 148127 | 148127 | "capacityLabel": "\u003e 1200 tonnes",
|
| 148128 | 148128 | "needComment": false,
|
| 148129 | 148129 | "enabled": true,
|
| ... | ... | @@ -150347,7 +150347,7 @@ |
| 150347 | 150347 | },
|
| 150348 | 150348 | "vesselSizeCategory": {
|
| 150349 | 150349 | "code": "8",
|
| 150350 | - "gaugeLabel": " + 2300 TX",
|
|
| 150350 | + "gaugeLabel": "+ 2300 TX",
|
|
| 150351 | 150351 | "capacityLabel": "\u003e 1200 tonnes",
|
| 150352 | 150352 | "needComment": false,
|
| 150353 | 150353 | "enabled": true,
|
| ... | ... | @@ -153236,7 +153236,7 @@ |
| 153236 | 153236 | "type": "fr.ird.observe.dto.referential.common.VesselReference",
|
| 153237 | 153237 | "content": {
|
| 153238 | 153238 | "code": "1014",
|
| 153239 | - "label": "LE CHINOIS 2 ",
|
|
| 153239 | + "label": "LE CHINOIS 2",
|
|
| 153240 | 153240 | "vesselType": {
|
| 153241 | 153241 | "code": "7",
|
| 153242 | 153242 | "label": "Palangrier",
|
| ... | ... | @@ -156190,7 +156190,7 @@ |
| 156190 | 156190 | },
|
| 156191 | 156191 | "vesselSizeCategory": {
|
| 156192 | 156192 | "code": "8",
|
| 156193 | - "gaugeLabel": " + 2300 TX",
|
|
| 156193 | + "gaugeLabel": "+ 2300 TX",
|
|
| 156194 | 156194 | "capacityLabel": "\u003e 1200 tonnes",
|
| 156195 | 156195 | "needComment": false,
|
| 156196 | 156196 | "enabled": true,
|
| ... | ... | @@ -156273,7 +156273,7 @@ |
| 156273 | 156273 | },
|
| 156274 | 156274 | "vesselSizeCategory": {
|
| 156275 | 156275 | "code": "8",
|
| 156276 | - "gaugeLabel": " + 2300 TX",
|
|
| 156276 | + "gaugeLabel": "+ 2300 TX",
|
|
| 156277 | 156277 | "capacityLabel": "\u003e 1200 tonnes",
|
| 156278 | 156278 | "needComment": false,
|
| 156279 | 156279 | "enabled": true,
|
| ... | ... | @@ -157081,7 +157081,7 @@ |
| 157081 | 157081 | },
|
| 157082 | 157082 | "vesselSizeCategory": {
|
| 157083 | 157083 | "code": "8",
|
| 157084 | - "gaugeLabel": " + 2300 TX",
|
|
| 157084 | + "gaugeLabel": "+ 2300 TX",
|
|
| 157085 | 157085 | "capacityLabel": "\u003e 1200 tonnes",
|
| 157086 | 157086 | "needComment": false,
|
| 157087 | 157087 | "enabled": true,
|
| ... | ... | @@ -159379,7 +159379,7 @@ |
| 159379 | 159379 | },
|
| 159380 | 159380 | "vesselSizeCategory": {
|
| 159381 | 159381 | "code": "8",
|
| 159382 | - "gaugeLabel": " + 2300 TX",
|
|
| 159382 | + "gaugeLabel": "+ 2300 TX",
|
|
| 159383 | 159383 | "capacityLabel": "\u003e 1200 tonnes",
|
| 159384 | 159384 | "needComment": false,
|
| 159385 | 159385 | "enabled": true,
|
| ... | ... | @@ -161228,7 +161228,7 @@ |
| 161228 | 161228 | },
|
| 161229 | 161229 | "vesselSizeCategory": {
|
| 161230 | 161230 | "code": "8",
|
| 161231 | - "gaugeLabel": " + 2300 TX",
|
|
| 161231 | + "gaugeLabel": "+ 2300 TX",
|
|
| 161232 | 161232 | "capacityLabel": "\u003e 1200 tonnes",
|
| 161233 | 161233 | "needComment": false,
|
| 161234 | 161234 | "enabled": true,
|
| ... | ... | @@ -163816,7 +163816,7 @@ |
| 163816 | 163816 | },
|
| 163817 | 163817 | "vesselSizeCategory": {
|
| 163818 | 163818 | "code": "8",
|
| 163819 | - "gaugeLabel": " + 2300 TX",
|
|
| 163819 | + "gaugeLabel": "+ 2300 TX",
|
|
| 163820 | 163820 | "capacityLabel": "\u003e 1200 tonnes",
|
| 163821 | 163821 | "needComment": false,
|
| 163822 | 163822 | "enabled": true,
|
| ... | ... | @@ -164658,7 +164658,7 @@ |
| 164658 | 164658 | },
|
| 164659 | 164659 | "vesselSizeCategory": {
|
| 164660 | 164660 | "code": "8",
|
| 164661 | - "gaugeLabel": " + 2300 TX",
|
|
| 164661 | + "gaugeLabel": "+ 2300 TX",
|
|
| 164662 | 164662 | "capacityLabel": "\u003e 1200 tonnes",
|
| 164663 | 164663 | "needComment": false,
|
| 164664 | 164664 | "enabled": true,
|
| ... | ... | @@ -179501,7 +179501,7 @@ |
| 179501 | 179501 | "type": "fr.ird.observe.dto.referential.common.VesselSizeCategoryReference",
|
| 179502 | 179502 | "content": {
|
| 179503 | 179503 | "code": "8",
|
| 179504 | - "gaugeLabel": " + 2300 TX",
|
|
| 179504 | + "gaugeLabel": "+ 2300 TX",
|
|
| 179505 | 179505 | "capacityLabel": "\u003e 1200 tonnes",
|
| 179506 | 179506 | "needComment": false,
|
| 179507 | 179507 | "enabled": true,
|
| ... | ... | @@ -179524,7 +179524,7 @@ |
| 179524 | 179524 | "type": "fr.ird.observe.dto.referential.common.VesselSizeCategoryReference",
|
| 179525 | 179525 | "content": {
|
| 179526 | 179526 | "code": "10",
|
| 179527 | - "gaugeLabel": " + 2300 TX",
|
|
| 179527 | + "gaugeLabel": "+ 2300 TX",
|
|
| 179528 | 179528 | "capacityLabel": "1601 - 1800 tonnes",
|
| 179529 | 179529 | "needComment": false,
|
| 179530 | 179530 | "enabled": false,
|
| ... | ... | @@ -179575,7 +179575,7 @@ |
| 179575 | 179575 | "type": "fr.ird.observe.dto.referential.common.VesselSizeCategoryReference",
|
| 179576 | 179576 | "content": {
|
| 179577 | 179577 | "code": "11",
|
| 179578 | - "gaugeLabel": " + 2300 TX",
|
|
| 179578 | + "gaugeLabel": "+ 2300 TX",
|
|
| 179579 | 179579 | "capacityLabel": "1801 - 2000 tonnes",
|
| 179580 | 179580 | "needComment": false,
|
| 179581 | 179581 | "enabled": false,
|
| ... | ... | @@ -179603,7 +179603,7 @@ |
| 179603 | 179603 | "type": "fr.ird.observe.dto.referential.common.VesselSizeCategoryReference",
|
| 179604 | 179604 | "content": {
|
| 179605 | 179605 | "code": "12",
|
| 179606 | - "gaugeLabel": " + 2300 TX",
|
|
| 179606 | + "gaugeLabel": "+ 2300 TX",
|
|
| 179607 | 179607 | "capacityLabel": "\u003e 2000 tonnes",
|
| 179608 | 179608 | "needComment": false,
|
| 179609 | 179609 | "enabled": false,
|
| ... | ... | @@ -186793,7 +186793,7 @@ |
| 186793 | 186793 | "reference": {
|
| 186794 | 186794 | "type": "fr.ird.observe.dto.referential.ll.landing.CompanyReference",
|
| 186795 | 186795 | "content": {
|
| 186796 | - "code": "OCEAN ",
|
|
| 186796 | + "code": "OCEAN",
|
|
| 186797 | 186797 | "label": "[type: Unknown] OCEAN LONG LINERS LTD [id:n/a]",
|
| 186798 | 186798 | "needComment": false,
|
| 186799 | 186799 | "enabled": true,
|
| ... | ... | @@ -196042,7 +196042,7 @@ |
| 196042 | 196042 | "type": "fr.ird.observe.dto.referential.ps.common.ReasonForNoFishingReference",
|
| 196043 | 196043 | "content": {
|
| 196044 | 196044 | "code": "14",
|
| 196045 | - "label": "Règlementation (absence de licence, moratoire, etc) ",
|
|
| 196045 | + "label": "Règlementation (absence de licence, moratoire, etc)",
|
|
| 196046 | 196046 | "needComment": false,
|
| 196047 | 196047 | "enabled": true,
|
| 196048 | 196048 | "id": "fr.ird.referential.ps.common.ReasonForNoFishing#1561013070351#0.6641824426682489",
|
| ... | ... | @@ -196593,6 +196593,7 @@ |
| 196593 | 196593 | "code": "1",
|
| 196594 | 196594 | "label": "Echappe du filet (pour requin-baleine et cétacés)",
|
| 196595 | 196595 | "discard": true,
|
| 196596 | + "weightRangeAllowed": false,
|
|
| 196596 | 196597 | "needComment": false,
|
| 196597 | 196598 | "enabled": true,
|
| 196598 | 196599 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683618#0.06155887805368032",
|
| ... | ... | @@ -196626,6 +196627,7 @@ |
| 196626 | 196627 | "code": "3",
|
| 196627 | 196628 | "label": "Sortie mort du filet (pour requin-baleine et cétacés)",
|
| 196628 | 196629 | "discard": true,
|
| 196630 | + "weightRangeAllowed": false,
|
|
| 196629 | 196631 | "needComment": false,
|
| 196630 | 196632 | "enabled": true,
|
| 196631 | 196633 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683619#0.11883784875534997",
|
| ... | ... | @@ -196659,6 +196661,7 @@ |
| 196659 | 196661 | "code": "4",
|
| 196660 | 196662 | "label": "Rejeté vivant",
|
| 196661 | 196663 | "discard": true,
|
| 196664 | + "weightRangeAllowed": false,
|
|
| 196662 | 196665 | "needComment": false,
|
| 196663 | 196666 | "enabled": true,
|
| 196664 | 196667 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683619#0.5308862132841506",
|
| ... | ... | @@ -196682,6 +196685,7 @@ |
| 196682 | 196685 | "code": "6",
|
| 196683 | 196686 | "label": "Conservé à destination de la conserverie",
|
| 196684 | 196687 | "discard": false,
|
| 196688 | + "weightRangeAllowed": true,
|
|
| 196685 | 196689 | "needComment": false,
|
| 196686 | 196690 | "enabled": true,
|
| 196687 | 196691 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683619#0.5722739932065866",
|
| ... | ... | @@ -196710,6 +196714,7 @@ |
| 196710 | 196714 | "code": "5",
|
| 196711 | 196715 | "label": "Rejeté mort",
|
| 196712 | 196716 | "discard": true,
|
| 196717 | + "weightRangeAllowed": true,
|
|
| 196713 | 196718 | "needComment": false,
|
| 196714 | 196719 | "enabled": true,
|
| 196715 | 196720 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683619#0.6250731662108877",
|
| ... | ... | @@ -196733,6 +196738,7 @@ |
| 196733 | 196738 | "code": "2",
|
| 196734 | 196739 | "label": "Sortie vivant du filet (pour requin-baleine et cétacés)",
|
| 196735 | 196740 | "discard": true,
|
| 196741 | + "weightRangeAllowed": false,
|
|
| 196736 | 196742 | "needComment": false,
|
| 196737 | 196743 | "enabled": true,
|
| 196738 | 196744 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683619#0.9931091059863436",
|
| ... | ... | @@ -196765,6 +196771,7 @@ |
| 196765 | 196771 | "content": {
|
| 196766 | 196772 | "code": "7",
|
| 196767 | 196773 | "label": "Partiellement conservé (ex: ailerons de requin, poisson séché)",
|
| 196774 | + "weightRangeAllowed": false,
|
|
| 196768 | 196775 | "needComment": false,
|
| 196769 | 196776 | "enabled": false,
|
| 196770 | 196777 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683620#0.46609703818634485",
|
| ... | ... | @@ -196803,6 +196810,7 @@ |
| 196803 | 196810 | "code": "8",
|
| 196804 | 196811 | "label": "Utilisé en cuisine du bord",
|
| 196805 | 196812 | "discard": false,
|
| 196813 | + "weightRangeAllowed": false,
|
|
| 196806 | 196814 | "needComment": false,
|
| 196807 | 196815 | "enabled": true,
|
| 196808 | 196816 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683621#0.6728026426066158",
|
| ... | ... | @@ -196835,6 +196843,7 @@ |
| 196835 | 196843 | "content": {
|
| 196836 | 196844 | "code": "9",
|
| 196837 | 196845 | "label": "Autres (à préciser dans les notes)",
|
| 196846 | + "weightRangeAllowed": false,
|
|
| 196838 | 196847 | "needComment": true,
|
| 196839 | 196848 | "enabled": true,
|
| 196840 | 196849 | "id": "fr.ird.referential.ps.common.SpeciesFate#1239832683621#0.9099804284263154",
|
| ... | ... | @@ -196868,6 +196877,7 @@ |
| 196868 | 196877 | "code": "15",
|
| 196869 | 196878 | "label": "Conservé pour le marché local ou poisson séché/salé à bord",
|
| 196870 | 196879 | "discard": false,
|
| 196880 | + "weightRangeAllowed": false,
|
|
| 196871 | 196881 | "needComment": false,
|
| 196872 | 196882 | "enabled": true,
|
| 196873 | 196883 | "id": "fr.ird.referential.ps.common.SpeciesFate#1464000000000#15",
|
| ... | ... | @@ -196895,6 +196905,7 @@ |
| 196895 | 196905 | "content": {
|
| 196896 | 196906 | "code": "10",
|
| 196897 | 196907 | "label": "Ailerons seulements",
|
| 196908 | + "weightRangeAllowed": false,
|
|
| 196898 | 196909 | "needComment": false,
|
| 196899 | 196910 | "enabled": true,
|
| 196900 | 196911 | "id": "fr.ird.referential.ps.common.SpeciesFate#1467372855729#0.568287924081734",
|
| ... | ... | @@ -196918,6 +196929,7 @@ |
| 196918 | 196929 | "code": "11",
|
| 196919 | 196930 | "label": "Rejeté, statut non observé",
|
| 196920 | 196931 | "discard": true,
|
| 196932 | + "weightRangeAllowed": false,
|
|
| 196921 | 196933 | "needComment": false,
|
| 196922 | 196934 | "enabled": true,
|
| 196923 | 196935 | "id": "fr.ird.referential.ps.common.SpeciesFate#1501492537510#0.9210847837998154",
|
| ... | ... | @@ -196941,6 +196953,7 @@ |
| 196941 | 196953 | "code": "12",
|
| 196942 | 196954 | "label": "Conservé pour raisons scientifiques",
|
| 196943 | 196955 | "discard": false,
|
| 196956 | + "weightRangeAllowed": false,
|
|
| 196944 | 196957 | "needComment": false,
|
| 196945 | 196958 | "enabled": true,
|
| 196946 | 196959 | "id": "fr.ird.referential.ps.common.SpeciesFate#1501492831539#0.9377232562184147",
|
| ... | ... | @@ -196964,6 +196977,7 @@ |
| 196964 | 196977 | "code": "13",
|
| 196965 | 196978 | "label": "Rejeté suffocant",
|
| 196966 | 196979 | "discard": true,
|
| 196980 | + "weightRangeAllowed": false,
|
|
| 196967 | 196981 | "needComment": false,
|
| 196968 | 196982 | "enabled": true,
|
| 196969 | 196983 | "id": "fr.ird.referential.ps.common.SpeciesFate#1544448835551#0.620629930572886",
|
| ... | ... | @@ -196987,6 +197001,7 @@ |
| 196987 | 197001 | "code": "14",
|
| 196988 | 197002 | "label": "Rejeté suffocant blessé",
|
| 196989 | 197003 | "discard": true,
|
| 197004 | + "weightRangeAllowed": false,
|
|
| 196990 | 197005 | "needComment": false,
|
| 196991 | 197006 | "enabled": true,
|
| 196992 | 197007 | "id": "fr.ird.referential.ps.common.SpeciesFate#1544448977865#0.24265421995390768",
|
| ... | ... | @@ -197605,7 +197620,7 @@ |
| 197605 | 197620 | "type": "fr.ird.observe.dto.referential.ps.common.TransmittingBuoyTypeReference",
|
| 197606 | 197621 | "content": {
|
| 197607 | 197622 | "code": "98",
|
| 197608 | - "label": "Balise inconnue ou indéterminée ",
|
|
| 197623 | + "label": "Balise inconnue ou indéterminée",
|
|
| 197609 | 197624 | "needComment": false,
|
| 197610 | 197625 | "enabled": true,
|
| 197611 | 197626 | "id": "fr.ird.referential.ps.common.TransmittingBuoyType#1339685555050#0.2640694245556756",
|
| ... | ... | @@ -203767,7 +203782,7 @@ |
| 203767 | 203782 | "type": "fr.ird.observe.dto.referential.ps.common.WeightCategoryReference",
|
| 203768 | 203783 | "content": {
|
| 203769 | 203784 | "code": "C-YFT-12",
|
| 203770 | - "label": "YFT de 10 à 30 kg ",
|
|
| 203785 | + "label": "YFT de 10 à 30 kg",
|
|
| 203771 | 203786 | "species": {
|
| 203772 | 203787 | "code": "1",
|
| 203773 | 203788 | "label": "Albacore, thon à nageoires jaunes",
|
| ... | ... | @@ -204950,7 +204965,7 @@ |
| 204950 | 204965 | "type": "fr.ird.observe.dto.referential.ps.common.WeightCategoryReference",
|
| 204951 | 204966 | "content": {
|
| 204952 | 204967 | "code": "C-BET-12",
|
| 204953 | - "label": "BET de 10 à 30 kg ",
|
|
| 204968 | + "label": "BET de 10 à 30 kg",
|
|
| 204954 | 204969 | "species": {
|
| 204955 | 204970 | "code": "3",
|
| 204956 | 204971 | "label": "Patudo, thon obèse, thon gros yeux",
|
| ... | ... | @@ -205660,7 +205675,7 @@ |
| 205660 | 205675 | "type": "fr.ird.observe.dto.referential.ps.common.WeightCategoryReference",
|
| 205661 | 205676 | "content": {
|
| 205662 | 205677 | "code": "C-ALB-12",
|
| 205663 | - "label": "ALB de 10 à 30 kg ",
|
|
| 205678 | + "label": "ALB de 10 à 30 kg",
|
|
| 205664 | 205679 | "species": {
|
| 205665 | 205680 | "code": "4",
|
| 205666 | 205681 | "label": "Germon",
|
| ... | ... | @@ -207542,7 +207557,7 @@ |
| 207542 | 207557 | "type": "fr.ird.observe.dto.referential.ps.common.WeightCategoryReference",
|
| 207543 | 207558 | "content": {
|
| 207544 | 207559 | "code": "C-LOT-12",
|
| 207545 | - "label": "LOT de 10 à 30 kg ",
|
|
| 207560 | + "label": "LOT de 10 à 30 kg",
|
|
| 207546 | 207561 | "species": {
|
| 207547 | 207562 | "code": "12",
|
| 207548 | 207563 | "label": "Thon mignon",
|
| ... | ... | @@ -214167,7 +214182,7 @@ |
| 214167 | 214182 | "type": "fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeReference",
|
| 214168 | 214183 | "content": {
|
| 214169 | 214184 | "code": "I",
|
| 214170 | - "label": " Relache immédiate",
|
|
| 214185 | + "label": "Relache immédiate",
|
|
| 214171 | 214186 | "needComment": false,
|
| 214172 | 214187 | "enabled": true,
|
| 214173 | 214188 | "id": "fr.ird.referential.ps.observation.NonTargetCatchReleasingTime#0#1",
|
| ... | ... | @@ -214189,7 +214204,7 @@ |
| 214189 | 214204 | "type": "fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeReference",
|
| 214190 | 214205 | "content": {
|
| 214191 | 214206 | "code": "B",
|
| 214192 | - "label": " Avant la salabarde suivante",
|
|
| 214207 | + "label": "Avant la salabarde suivante",
|
|
| 214193 | 214208 | "needComment": false,
|
| 214194 | 214209 | "enabled": true,
|
| 214195 | 214210 | "id": "fr.ird.referential.ps.observation.NonTargetCatchReleasingTime#0#2",
|
| ... | ... | @@ -214211,7 +214226,7 @@ |
| 214211 | 214226 | "type": "fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeReference",
|
| 214212 | 214227 | "content": {
|
| 214213 | 214228 | "code": "D",
|
| 214214 | - "label": " Pendant la calée",
|
|
| 214229 | + "label": "Pendant la calée",
|
|
| 214215 | 214230 | "needComment": false,
|
| 214216 | 214231 | "enabled": true,
|
| 214217 | 214232 | "id": "fr.ird.referential.ps.observation.NonTargetCatchReleasingTime#0#3",
|
| ... | ... | @@ -214233,7 +214248,7 @@ |
| 214233 | 214248 | "type": "fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeReference",
|
| 214234 | 214249 | "content": {
|
| 214235 | 214250 | "code": "A",
|
| 214236 | - "label": " À la fin de la calée",
|
|
| 214251 | + "label": "À la fin de la calée",
|
|
| 214237 | 214252 | "needComment": false,
|
| 214238 | 214253 | "enabled": true,
|
| 214239 | 214254 | "id": "fr.ird.referential.ps.observation.NonTargetCatchReleasingTime#0#4",
|
| ... | ... | @@ -82,7 +82,7 @@ data.ps.logbook.SampleSpeciesMeasure=count,sizeClass |
| 82 | 82 | data.ps.logbook.TransmittingBuoy=comment,code,transmittingBuoyOwnership,transmittingBuoyType,transmittingBuoyOperation,country,vessel,latitude,longitude,quadrant
|
| 83 | 83 | data.ps.logbook.WellPlan=activity,species,weight,weightCategory,well,wellSamplingConformity,wellSamplingStatus
|
| 84 | 84 | data.ps.observation.Activity=date,coordinate,observedSystem.available,observedSystem.selected,comment,comment2,currentFpaZone,dataQuality,detectionMode,ersId,floatingObjectEmpty,latitude,longitude,nextFpaZone,nonTargetCatchSpecies,observedSystem,observedSystemDistance,previousFpaZone,quadrant,reasonForNoFishing,seaSurfaceTemperature,surroundingActivity,time,vesselActivity,vesselSpeed,wind,generalTab,error.no.activity.6,measurementsTab,observedSystemTab
|
| 85 | -data.ps.observation.Catch=catchWeight,comment,informationSource,lengthMeasureMethod,meanLength,minWeight,maxWeight,meanWeight,reasonForDiscard,species,speciesFate,totalCount,weightMeasureMethod,well,catchWeightComputed.computed.tip,catchWeightComputed.observed.tip,meanLengthComputed.computed.tip,meanLengthComputed.observed.tip,meanWeightComputed.computed.tip,meanWeightComputed.observed.tip,totalCountComputed.computed.tip,totalCountComputed.observed.tip
|
|
| 85 | +data.ps.observation.Catch=catchWeight,comment,informationSource,lengthMeasureMethod,meanLength,minWeight,maxWeight,meanWeight,minMaxWeight,reasonForDiscard,species,speciesFate,totalCount,weightMeasureMethod,well,catchWeightComputed.computed.tip,catchWeightComputed.observed.tip,meanLengthComputed.computed.tip,meanLengthComputed.observed.tip,meanWeightComputed.computed.tip,meanWeightComputed.observed.tip,totalCountComputed.computed.tip,totalCountComputed.observed.tip
|
|
| 86 | 86 | data.ps.observation.FloatingObject=materialsValid,objectOperation,supportVesselName,country,vessel,computedBiodegradable,computedNonEntangling,computedSimplifiedObjectType,computedValues,generalTab,buoysTab,materialsTab,notComputed,type.short
|
| 87 | 87 | data.ps.observation.NonTargetCatchRelease=comment,conformity,count,length,lengthMeasureMethod,releasingTime,sex,status,species,speciesGroupReleaseMode,message.cantAdd
|
| 88 | 88 | data.ps.observation.ObjectObservedSpecies=count,species,speciesStatus
|
| ... | ... | @@ -23,7 +23,7 @@ data.ll.common.Trip=species |
| 23 | 23 | data.ll.landing.Landing=vessel
|
| 24 | 24 | data.ps.localmarket.Sample=well
|
| 25 | 25 | data.ps.logbook.Catch=weightMeasureMethod.validation.required
|
| 26 | -data.ps.observation.Catch=minWeight,maxWeight,weightMeasureMethod
|
|
| 26 | +data.ps.observation.Catch=minWeight,maxWeight,minMaxWeight,weightMeasureMethod
|
|
| 27 | 27 | data.ps.observation.SchoolEstimate=species
|
| 28 | 28 | data.ps.observation.Set=startTime,haulingStartTimeStamp,haulingEndTimeStamp,endTimeStamp
|
| 29 | 29 | referential.common.Species=codeAndHomeId |
| 1 | +package fr.ird.observe.dto;
|
|
| 2 | + |
|
| 3 | +/*-
|
|
| 4 | + * #%L
|
|
| 5 | + * ObServe Toolkit :: API
|
|
| 6 | + * %%
|
|
| 7 | + * Copyright (C) 2008 - 2022 IRD, Ultreia.io
|
|
| 8 | + * %%
|
|
| 9 | + * This program is free software: you can redistribute it and/or modify
|
|
| 10 | + * it under the terms of the GNU General Public License as
|
|
| 11 | + * published by the Free Software Foundation, either version 3 of the
|
|
| 12 | + * License, or (at your option) any later version.
|
|
| 13 | + *
|
|
| 14 | + * This program is distributed in the hope that it will be useful,
|
|
| 15 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
| 16 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
| 17 | + * GNU General Public License for more details.
|
|
| 18 | + *
|
|
| 19 | + * You should have received a copy of the GNU General Public
|
|
| 20 | + * License along with this program. If not, see
|
|
| 21 | + * <http://www.gnu.org/licenses/gpl-3.0.html>.
|
|
| 22 | + * #L%
|
|
| 23 | + */
|
|
| 24 | + |
|
| 25 | +import java.util.function.Function;
|
|
| 26 | + |
|
| 27 | +/**
|
|
| 28 | + * Object to clean a string related to a database field.
|
|
| 29 | + * <p>
|
|
| 30 | + * Created on 12/11/2022.
|
|
| 31 | + *
|
|
| 32 | + * @author Tony Chemit - dev@tchemit.fr
|
|
| 33 | + * @since 9.017
|
|
| 34 | + */
|
|
| 35 | +public class StringCleaner implements Function<String, String> {
|
|
| 36 | + |
|
| 37 | + public static final StringCleaner ALL = new StringCleaner(true, true, true);
|
|
| 38 | + public static final StringCleaner REMOVE_SINGLE_QUOTE_AND_TRIM = new StringCleaner(true, true, false);
|
|
| 39 | + public static final StringCleaner TRIM_AND_REPLACE_EMPTY_BY_NULL = new StringCleaner(false, true, true);
|
|
| 40 | + public static final StringCleaner TRIM = new StringCleaner(false, true, false);
|
|
| 41 | + |
|
| 42 | + /**
|
|
| 43 | + * To remove any single quote in given string.
|
|
| 44 | + */
|
|
| 45 | + private final boolean removeSingleQuote;
|
|
| 46 | + /**
|
|
| 47 | + * To perform a trim on given string.
|
|
| 48 | + */
|
|
| 49 | + private final boolean trim;
|
|
| 50 | + /**
|
|
| 51 | + * To replace the given string value by null if it is empty.
|
|
| 52 | + */
|
|
| 53 | + private final boolean replaceEmptyByNull;
|
|
| 54 | + |
|
| 55 | + public StringCleaner(boolean removeSingleQuote, boolean trim, boolean replaceEmptyByNull) {
|
|
| 56 | + this.removeSingleQuote = removeSingleQuote;
|
|
| 57 | + this.trim = trim;
|
|
| 58 | + this.replaceEmptyByNull = replaceEmptyByNull;
|
|
| 59 | + }
|
|
| 60 | + |
|
| 61 | + public static String removeSingleQuote(String string) {
|
|
| 62 | + return string.replaceAll("'", "");
|
|
| 63 | + }
|
|
| 64 | + |
|
| 65 | + @Override
|
|
| 66 | + public String apply(String string) {
|
|
| 67 | + if (string == null) {
|
|
| 68 | + return null;
|
|
| 69 | + }
|
|
| 70 | + String result = string;
|
|
| 71 | + if (removeSingleQuote) {
|
|
| 72 | + result = removeSingleQuote(result);
|
|
| 73 | + }
|
|
| 74 | + if (trim) {
|
|
| 75 | + result = result.trim();
|
|
| 76 | + }
|
|
| 77 | + if (replaceEmptyByNull && result.isEmpty()) {
|
|
| 78 | + result = null;
|
|
| 79 | + }
|
|
| 80 | + return result;
|
|
| 81 | + }
|
|
| 82 | +} |
| ... | ... | @@ -64,7 +64,21 @@ public class SqlHelper { |
| 64 | 64 | if (trim.length() > maxLength) {
|
| 65 | 65 | trim = trim.substring(0, maxLength - 1);
|
| 66 | 66 | }
|
| 67 | - return "'" + trim.replaceAll("'", "''") + "'";
|
|
| 67 | + return "'" + escapeSingleQuote(trim) + "'";
|
|
| 68 | 68 | }
|
| 69 | 69 | |
| 70 | + public static String escapeSingleQuote(String string) {
|
|
| 71 | + return string.replaceAll("'", "''");
|
|
| 72 | + }
|
|
| 73 | + |
|
| 74 | + public static String escapeString(String string) {
|
|
| 75 | + if (string == null) {
|
|
| 76 | + return "NULL";
|
|
| 77 | + }
|
|
| 78 | + String trim = string.trim();
|
|
| 79 | + if (trim.isEmpty()) {
|
|
| 80 | + return "NULL";
|
|
| 81 | + }
|
|
| 82 | + return "'" + escapeSingleQuote(trim) + "'";
|
|
| 83 | + }
|
|
| 70 | 84 | } |
| ... | ... | @@ -35,6 +35,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale; |
| 35 | 35 | import fr.ird.observe.entities.Entity;
|
| 36 | 36 | import fr.ird.observe.entities.data.DataEntity;
|
| 37 | 37 | import fr.ird.observe.entities.data.DataFileAware;
|
| 38 | +import fr.ird.observe.persistence.SqlHelper;
|
|
| 38 | 39 | import fr.ird.observe.persistence.request.DeleteRequest;
|
| 39 | 40 | import fr.ird.observe.spi.service.ServiceContext;
|
| 40 | 41 | import fr.ird.observe.spi.usage.UsageHelper;
|
| ... | ... | @@ -78,14 +79,7 @@ public abstract class DataDtoEntityContext< |
| 78 | 79 | }
|
| 79 | 80 | |
| 80 | 81 | public static String toId(Entity entity) {
|
| 81 | - return entity == null ? "NULL" : escapeString(entity.getTopiaId());
|
|
| 82 | - }
|
|
| 83 | - |
|
| 84 | - public static String escapeString(String string) {
|
|
| 85 | - if (string == null) {
|
|
| 86 | - return "NULL";
|
|
| 87 | - }
|
|
| 88 | - return "'" + string.trim() + "'";
|
|
| 82 | + return entity == null ? "NULL" : SqlHelper.escapeString(entity.getTopiaId());
|
|
| 89 | 83 | }
|
| 90 | 84 | |
| 91 | 85 | public static Blob byteArrayToBlob(byte[] bytes) {
|