branch feature/2246 updated (883d892 -> a23905d)
This is an automated email from the git hooks/post-receive script. New change to branch feature/2246 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git from 883d892 Ne pas pouvoir effectuer plusieurs imports du même type new ea54a1e Début de check pour les Sub-Sample mais il me manque des confirmations, à revoir avec Mathieu new 0896dd7 Catch more exception while importing + ajout meilleur TODO new 6bcfd28 i18n new a23905d Ne pas autoriser de réimporter les données acoustiques déjà existantes (See #2246) The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit a23905dde41b2fbd383cb388072f791e13eedc01 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu May 12 15:39:59 2016 +0200 Ne pas autoriser de réimporter les données acoustiques déjà existantes (See #2246) commit 6bcfd28ac5a7a8547b4881f45a94f8015143e0d3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu May 12 09:10:22 2016 +0200 i18n commit 0896dd7e73ceaab18a32924bbe995f719a7d4956 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu May 12 09:09:06 2016 +0200 Catch more exception while importing + ajout meilleur TODO commit ea54a1e9f532ce63c96c8b723871a609649c4e9a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 10 10:50:51 2016 +0200 Début de check pour les Sub-Sample mais il me manque des confirmations, à revoir avec Mathieu Summary of changes: .../services/service/UserDbPersistenceService.java | 13 +++++++++++++ ...ion.java => DuplicatedElementaryCellException.java} | 8 ++++---- ...Exception.java => DuplicatedEsduCellException.java} | 8 ++++---- ...xception.java => DuplicatedSubSampleException.java} | 10 +++++++--- .../importdata/actions/ImportDataActionSupport.java | 8 ++++---- .../actions/VoyageAcousticsImportAction.java | 18 +++++++++++++++++- .../actions/VoyageCatchesSubSampleImportAction.java | 11 +++++++++++ .../resources/i18n/echobase-services_en_GB.properties | 3 +++ .../resources/i18n/echobase-services_fr_FR.properties | 3 +++ 9 files changed, 66 insertions(+), 16 deletions(-) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/{MoreThanOnceVoyageToImportException.java => DuplicatedElementaryCellException.java} (78%) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/{DuplicatedTransectException.java => DuplicatedEsduCellException.java} (80%) copy echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/{DuplicatedOperationException.java => DuplicatedSubSampleException.java} (73%) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/2246 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit ea54a1e9f532ce63c96c8b723871a609649c4e9a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 10 10:50:51 2016 +0200 Début de check pour les Sub-Sample mais il me manque des confirmations, à revoir avec Mathieu --- .../services/service/UserDbPersistenceService.java | 9 +++++ .../importdata/DuplicatedSubSampleException.java | 47 ++++++++++++++++++++++ .../VoyageCatchesSubSampleImportAction.java | 11 +++++ .../i18n/echobase-services_en_GB.properties | 1 + .../i18n/echobase-services_fr_FR.properties | 1 + 5 files changed, 69 insertions(+) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java index 9d160ba..603c26a 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java @@ -793,6 +793,15 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { //--- Sample -------------------------------------------------------------// //------------------------------------------------------------------------// + public boolean containsSubSample(Operation operation, SpeciesCategory category, String lengthClass) { + return false; + //FIXME +// return persistenceContext.getSampleDao() +// .forSpeciesCategoryEquals(category) +// .addEquals(Sample.PROPERTY_OPERATION, operation) +// .exists(); + } + public Sample getSample(String id) { return persistenceContext.getSampleDao().forTopiaIdEquals(id).findUnique(); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedSubSampleException.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedSubSampleException.java new file mode 100644 index 0000000..03a0543 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedSubSampleException.java @@ -0,0 +1,47 @@ +package fr.ifremer.echobase.services.service.importdata; + +/* + * #%L + * EchoBase :: Services + * %% + * Copyright (C) 2011 - 2015 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import org.nuiton.csv.ImportRuntimeException; + +import java.util.Locale; + +import static org.nuiton.i18n.I18n.l; + +/** + * Created on 5/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class DuplicatedSubSampleException extends ImportRuntimeException { + + private static final long serialVersionUID = 1L; + + public DuplicatedSubSampleException(Locale locale, + String operationId, + String category, + String lengthClass) { + super(l(locale, "echobase.importError.duplicate.subSamble", lengthClass, category, operationId)); + } + +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesSubSampleImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesSubSampleImportAction.java index be33c91..b0fe97d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesSubSampleImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesSubSampleImportAction.java @@ -12,6 +12,7 @@ import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.SpeciesCategory; import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.service.importdata.DuplicatedSubSampleException; import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.SpeciesCategoryCache; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageCatchesImportDataContext; @@ -88,6 +89,16 @@ public class VoyageCatchesSubSampleImportAction extends VoyageCatchesImportDataA // find the sample with this category Sample sample = operation.getSample(category, sampleTypeSubsample); + boolean exists = sample != null && persistenceService.containsSubSample(operation, + category, + row.getLengthClass()); + if (exists) { + throw new DuplicatedSubSampleException(getLocale(), + operation.getId(), + category.toString(), + row.getLengthClass()); + } + if (sample == null || (sample.getSampleWeight() != null && !sample.getSampleWeight().equals(row.getSampleWeight()))) { // must create it diff --git a/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties b/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties index 47c684c..efdb096 100644 --- a/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties +++ b/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties @@ -35,6 +35,7 @@ echobase.importError.dataMetadata.notFound=Metadata column %s missing (existing echobase.importError.duplicate.gearMetataValue=A gear meta data (type «%s») value on engin «%s» for operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.operation=An operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.operationMetataValue=An operation meta data (type «%s») value for operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. +echobase.importError.duplicate.subSamble=Subs-sample (length class %s, category %s, operation %s) already exists in database. echobase.importError.duplicate.sample=Operation %s cannot comprise several samples of same type, species and size category echobase.importError.duplicate.transect=A transect titled «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.transit=A transit start «%s» - end «%s» on voyage «%s» already exists in database. diff --git a/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties b/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties index 9ab4be7..5a09e87 100644 --- a/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties +++ b/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties @@ -35,6 +35,7 @@ echobase.importError.dataMetadata.notFound=Colonne de métadonnées nommée %s n echobase.importError.duplicate.gearMetataValue=La mise en œuvre (type %s) de l'engin «%s» (opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s») existe déjà dans la base. echobase.importError.duplicate.operation=L'opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s» existe déjà dans la base. echobase.importError.duplicate.operationMetataValue=La donnée (type %s) (opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s») existe déjà dans la base. +echobase.importError.duplicate.subSamble=Le subs-sample (classe de taille %s, catégorie %s, opération %s) existe déjà dans la base. echobase.importError.duplicate.sample=L'opération %s ne peut pas contenir deux échantillons de même type %s, espèce %s et classe de taille %s echobase.importError.duplicate.transect=Le transect nommé «%s» sur la marée nommée «%s» existe déjà dans la base. echobase.importError.duplicate.transit=Le transit début «%s» - fin «%s» sur la marée nommée «%s» existe déjà dans la base. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/2246 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 0896dd7e73ceaab18a32924bbe995f719a7d4956 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu May 12 09:09:06 2016 +0200 Catch more exception while importing + ajout meilleur TODO --- .../service/importdata/actions/ImportDataActionSupport.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java index 8811fdd..f031028 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java @@ -25,7 +25,6 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.csv.ExportModel; import org.nuiton.csv.Import; import org.nuiton.csv.ImportModel; -import org.nuiton.csv.ImportRuntimeException; import org.nuiton.topia.persistence.TopiaEntity; import java.io.BufferedWriter; @@ -172,7 +171,7 @@ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationS try { performImport(importDataContext, inputFile, result); - } catch (ImportRuntimeException e) { + } catch (Exception e) { throw new ImportException(importDataContext.getLocale(), inputFile, e); } finally { flushProcessedExport(result); @@ -314,11 +313,12 @@ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationS } protected void checkImport(ImportDataFileResult result, InputFile processedExportFile, InputFile importedExportFile) { - //TODO checkt that processed and imported file are the same if (log.isInfoEnabled()) { log.info("Check processed export file: " + processedExportFile + " vs imported export file: " + importedExportFile); } try { + + //TODO Faire cela de manière moins brute : comparaison des fichiers ligne à ligne (n plus cela nous donnerait aussi le numéro de première ligne défaillante) File dataDirectory = persistenceService.getConfiguration().getDataDirectory(); String expectedContent = new String(Files.readAllBytes(processedExportFile.getFile().toPath()), StandardCharsets.UTF_8); String actualContent = new String(Files.readAllBytes(importedExportFile.getFile().toPath()), StandardCharsets.UTF_8); @@ -410,7 +410,7 @@ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationS } - public <E extends TopiaEntity> void addId(ImportDataFileResult importResult, EchoBaseUserEntityEnum entityEnum, E entity, int lineNumber) { + public <EE extends TopiaEntity> void addId(ImportDataFileResult importResult, EchoBaseUserEntityEnum entityEnum, EE entity, int lineNumber) { int entityCount = importResult.addId(entityEnum); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/2246 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 6bcfd28ac5a7a8547b4881f45a94f8015143e0d3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu May 12 09:10:22 2016 +0200 i18n --- .../src/main/resources/i18n/echobase-services_en_GB.properties | 2 +- .../src/main/resources/i18n/echobase-services_fr_FR.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties b/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties index efdb096..81df9de 100644 --- a/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties +++ b/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties @@ -35,8 +35,8 @@ echobase.importError.dataMetadata.notFound=Metadata column %s missing (existing echobase.importError.duplicate.gearMetataValue=A gear meta data (type «%s») value on engin «%s» for operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.operation=An operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.operationMetataValue=An operation meta data (type «%s») value for operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. -echobase.importError.duplicate.subSamble=Subs-sample (length class %s, category %s, operation %s) already exists in database. echobase.importError.duplicate.sample=Operation %s cannot comprise several samples of same type, species and size category +echobase.importError.duplicate.subSamble=Subs-sample (length class %s, category %s, operation %s) already exists in database. echobase.importError.duplicate.transect=A transect titled «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.transit=A transit start «%s» - end «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.voyage=A voyage named «%s» already exists in database. diff --git a/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties b/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties index 5a09e87..049310c 100644 --- a/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties +++ b/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties @@ -35,8 +35,8 @@ echobase.importError.dataMetadata.notFound=Colonne de métadonnées nommée %s n echobase.importError.duplicate.gearMetataValue=La mise en œuvre (type %s) de l'engin «%s» (opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s») existe déjà dans la base. echobase.importError.duplicate.operation=L'opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s» existe déjà dans la base. echobase.importError.duplicate.operationMetataValue=La donnée (type %s) (opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s») existe déjà dans la base. -echobase.importError.duplicate.subSamble=Le subs-sample (classe de taille %s, catégorie %s, opération %s) existe déjà dans la base. echobase.importError.duplicate.sample=L'opération %s ne peut pas contenir deux échantillons de même type %s, espèce %s et classe de taille %s +echobase.importError.duplicate.subSamble=Le subs-sample (classe de taille %s, catégorie %s, opération %s) existe déjà dans la base. echobase.importError.duplicate.transect=Le transect nommé «%s» sur la marée nommée «%s» existe déjà dans la base. echobase.importError.duplicate.transit=Le transit début «%s» - fin «%s» sur la marée nommée «%s» existe déjà dans la base. echobase.importError.duplicate.voyage=La marée nommée «%s» existe déjà dans la base. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/2246 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit a23905dde41b2fbd383cb388072f791e13eedc01 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu May 12 15:39:59 2016 +0200 Ne pas autoriser de réimporter les données acoustiques déjà existantes (See #2246) --- .../services/service/UserDbPersistenceService.java | 4 ++ .../DuplicatedElementaryCellException.java | 43 ++++++++++++++++++++++ .../importdata/DuplicatedEsduCellException.java | 43 ++++++++++++++++++++++ .../actions/VoyageAcousticsImportAction.java | 18 ++++++++- .../i18n/echobase-services_en_GB.properties | 2 + .../i18n/echobase-services_fr_FR.properties | 2 + 6 files changed, 111 insertions(+), 1 deletion(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java index 603c26a..cd6300d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java @@ -217,6 +217,10 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { //--- Cell ---------------------------------------------------------------// //------------------------------------------------------------------------// + public boolean containsCellByName(String cellName) { + return persistenceContext.getCellDao().forNameEquals(cellName).exists(); + } + public Cell getCell(String id) { return persistenceContext.getCellDao().forTopiaIdEquals(id).findUnique(); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedElementaryCellException.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedElementaryCellException.java new file mode 100644 index 0000000..84037f2 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedElementaryCellException.java @@ -0,0 +1,43 @@ +package fr.ifremer.echobase.services.service.importdata; + +/* + * #%L + * EchoBase :: Services + * %% + * Copyright (C) 2011 - 2015 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import org.nuiton.csv.ImportRuntimeException; + +import java.util.Locale; + +import static org.nuiton.i18n.I18n.l; + +/** + * Created on 1/21/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class DuplicatedElementaryCellException extends ImportRuntimeException { + + private static final long serialVersionUID = 1L; + + public DuplicatedElementaryCellException(Locale locale, int rowNumber, String esduCellId) { + super(l(locale, "echobase.importError.duplicate.elementaryCell", rowNumber, esduCellId)); + } +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedEsduCellException.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedEsduCellException.java new file mode 100644 index 0000000..a37d5aa --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/DuplicatedEsduCellException.java @@ -0,0 +1,43 @@ +package fr.ifremer.echobase.services.service.importdata; + +/* + * #%L + * EchoBase :: Services + * %% + * Copyright (C) 2011 - 2015 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import org.nuiton.csv.ImportRuntimeException; + +import java.util.Locale; + +import static org.nuiton.i18n.I18n.l; + +/** + * Created on 1/21/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class DuplicatedEsduCellException extends ImportRuntimeException { + + private static final long serialVersionUID = 1L; + + public DuplicatedEsduCellException(Locale locale, int rowNumber, String esduCellId) { + super(l(locale, "echobase.importError.duplicate.esduCell", rowNumber, esduCellId)); + } +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java index 5c3a5f4..8b9d3ac 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java @@ -23,6 +23,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.services.service.importdata.DuplicatedEsduCellException; import fr.ifremer.echobase.services.service.importdata.ElementaryCellWithoutDepthEndException; import fr.ifremer.echobase.services.service.importdata.EsduCellNotFoundException; import fr.ifremer.echobase.services.service.importdata.EsduCellWithDepthEndFilledException; @@ -259,6 +260,12 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction log.debug("[row " + rowNumber + "] Esdu cell (" + esduCellId + ")"); } + // check name does not exist + boolean exists = persistenceService.containsCellByName(esduCellId); + if (exists) { + throw new DuplicatedEsduCellException(getLocale(), rowNumber, esduCellId); + } + // this is a esdu cell row // create esdu cell @@ -294,6 +301,15 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction String elementaryCellId = cellNum + (surface ? "S" : "B"); + // check name does not exist + boolean exists = persistenceService.containsCellByName(elementaryCellId); + if (exists) { + //FIXME Revoir ça (See #2246) + if (log.isErrorEnabled()) { + log.error("Duplicated ElementaryCellException: " + rowNumber + " → " + elementaryCellId); + } +// throw new DuplicatedElementaryCellException(getLocale(), rowNumber, elementaryCellId); + } if (log.isTraceEnabled()) { log.trace("[row " + rowNumber + "] elementary cell (" + elementaryCellId + ")"); } @@ -791,7 +807,7 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction private final DataMetadata numberOfSamplesEchoIntegratedDataMetadata; private final DataMetadata depthRefSurfaceStartDataMetadata; private final DataMetadata depthRefSurfaceEndDataMetadata; -// private final DataMetadata depthRefBottomStartDataMetadata; + // private final DataMetadata depthRefBottomStartDataMetadata; private final DataMetadata depthRefBottomEndDataMetadata; public DataMetadataProvider(VoyageAcousticsImportDataContext importDataContext) { diff --git a/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties b/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties index 81df9de..44c82be 100644 --- a/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties +++ b/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties @@ -32,6 +32,8 @@ echobase.common.voyageFile=Voyage data file echobase.exportError.toFile=An error occured while exporting file %s \:%s echobase.importError.can.only.import.one.voyage.atime=Impossible to import more that one voyage at a time echobase.importError.dataMetadata.notFound=Metadata column %s missing (existing values \:%s) +echobase.importError.duplicate.esduCell=ESDU cell named «%s» already exists in database. +echobase.importError.duplicate.elementaryCell=Elementary cell named «%s» already exists in database. echobase.importError.duplicate.gearMetataValue=A gear meta data (type «%s») value on engin «%s» for operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.operation=An operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. echobase.importError.duplicate.operationMetataValue=An operation meta data (type «%s») value for operation with id «%s», on startum «%s» - vessel «%s» on voyage «%s» already exists in database. diff --git a/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties b/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties index 049310c..6e8c3e9 100644 --- a/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties +++ b/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties @@ -35,6 +35,8 @@ echobase.importError.dataMetadata.notFound=Colonne de métadonnées nommée %s n echobase.importError.duplicate.gearMetataValue=La mise en œuvre (type %s) de l'engin «%s» (opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s») existe déjà dans la base. echobase.importError.duplicate.operation=L'opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s» existe déjà dans la base. echobase.importError.duplicate.operationMetataValue=La donnée (type %s) (opération d'identifiant «%s» sur la strate «%s» - navire «%s» et sur la marée nommée «%s») existe déjà dans la base. +echobase.importError.duplicate.esduCell=La cellule ESDU (ligne %s) d'identifiant «%s» existe déjà en base. +echobase.importError.duplicate.elementaryCell=La cellule élémentaire (ligne %s) d'identifiant «%s» existe déjà en base. echobase.importError.duplicate.sample=L'opération %s ne peut pas contenir deux échantillons de même type %s, espèce %s et classe de taille %s echobase.importError.duplicate.subSamble=Le subs-sample (classe de taille %s, catégorie %s, opération %s) existe déjà dans la base. echobase.importError.duplicate.transect=Le transect nommé «%s» sur la marée nommée «%s» existe déjà dans la base. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm