branch develop updated (17e4207 -> 3dd567b)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See http://git.codelutin.com/tutti.git from 17e4207 fixes #6942: [IMPORT GENERIQUE] perte des cases cochées Merge branch 'feature/6942' into develop new 3557260 refs #6249 reniommage de la colonne en Lot_A_Confirmer new 6eed9e0 refs #6956 Ajout de l'option dans la configuration new 0da3fda arret de la validation si le nombre de lignes en erreur est trop grand new 3dd567b fixes #6956: [IMPORT GENERIQUE] Ne pas valider les fichiers au dela d'un nombre d'erreurs configurable Merge branch 'feature/6956' into develop 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 3dd567ba497b74d0a634e5fd5126e93f391a3b4a Merge: 17e4207 0da3fda Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 14 15:23:41 2015 +0200 fixes #6956: [IMPORT GENERIQUE] Ne pas valider les fichiers au dela d'un nombre d'erreurs configurable Merge branch 'feature/6956' into develop commit 0da3fdade03312855120fc6084dce71fe62b7480 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 14 14:58:09 2015 +0200 arret de la validation si le nombre de lignes en erreur est trop grand commit 6eed9e0c453b86a968f2b7ae59ec6ed683c435d3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 14 14:57:44 2015 +0200 refs #6956 Ajout de l'option dans la configuration commit 3557260da0a0f51f1ac060db4db852e8ee98fade Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 14 14:56:04 2015 +0200 refs #6249 reniommage de la colonne en Lot_A_Confirmer Summary of changes: .../main/java/fr/ifremer/tutti/TuttiConfiguration.java | 5 +++++ .../java/fr/ifremer/tutti/TuttiConfigurationOption.java | 7 +++++++ .../resources/i18n/tutti-persistence_en_GB.properties | 1 + .../resources/i18n/tutti-persistence_fr_FR.properties | 1 + .../java/fr/ifremer/tutti/service/csv/CsvComsumer.java | 4 ++-- .../genericformat/GenericFormatCsvFileResult.java | 17 ++++++++++++++++- .../genericformat/GenericFormatImportConfiguration.java | 13 +++++++++++++ .../genericformat/GenericFormatImportRequest.java | 4 ++++ .../tutti/service/genericformat/csv/CatchModel.java | 4 ++-- .../importactions/ImportActionSupport.java | 13 +++++++++++++ .../importactions/ValidateAccidentalCatchAction.java | 11 ++++++++++- .../importactions/ValidateCatchAction.java | 11 ++++++++++- .../importactions/ValidateGearCaracteristicAction.java | 11 ++++++++++- .../ValidateIndividualObservationAction.java | 11 ++++++++++- .../importactions/ValidateMarineLitterAction.java | 11 ++++++++++- .../importactions/ValidateOperationAction.java | 11 ++++++++++- .../importactions/ValidateParameterAction.java | 11 ++++++++++- .../importactions/ValidateSurveyAction.java | 11 ++++++++++- .../resources/ftl/genericFormatValidateReport_fr.ftl | 3 +++ .../ui/swing/content/config/TuttiConfigUIHandler.java | 3 +++ .../genericformat/GenericFormatImportUIModel.java | 4 +++- .../actions/GenericFormatValidateAction.java | 3 ++- .../main/resources/i18n/tutti-ui-swing_en_GB.properties | 1 + .../main/resources/i18n/tutti-ui-swing_fr_FR.properties | 1 + 24 files changed, 157 insertions(+), 15 deletions(-) -- 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 develop in repository tutti. See http://git.codelutin.com/tutti.git commit 3557260da0a0f51f1ac060db4db852e8ee98fade Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 14 14:56:04 2015 +0200 refs #6249 reniommage de la colonne en Lot_A_Confirmer --- .../java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java index 28d81cc..743fa2a 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/CatchModel.java @@ -90,7 +90,7 @@ public class CatchModel extends AbstractTuttiImportExportModel<CatchRow> { newColumnForExport("Code_Espece_Campagne", SpeciesBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER); newColumnForExport("Nom_Scientifique", SpeciesBatch.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_FORMATTER); newColumnForExport("Benthos", CatchRow.PROPERTY_BENTHOS, TuttiCsvUtil.BOOLEAN); - newColumnForExport("Espece_A_Confirmer", CatchRow.PROPERTY_SPECIES_TO_CONFIRM, TuttiCsvUtil.BOOLEAN); + newColumnForExport("Lot_A_Confirmer", CatchRow.PROPERTY_SPECIES_TO_CONFIRM, TuttiCsvUtil.BOOLEAN); for (SampleCategoryModelEntry entry : sampleCategoryModel.getCategory()) { @@ -151,7 +151,7 @@ public class CatchModel extends AbstractTuttiImportExportModel<CatchRow> { newIgnoredColumn("Code_Espece_Campagne"); newIgnoredColumn("Nom_Scientifique"); newMandatoryColumn("Benthos", CatchRow.PROPERTY_BENTHOS, TuttiCsvUtil.BOOLEAN); - newMandatoryColumn("Espece_A_Confirmer", CatchRow.PROPERTY_SPECIES_TO_CONFIRM, TuttiCsvUtil.BOOLEAN); + newMandatoryColumn("Lot_A_Confirmer", CatchRow.PROPERTY_SPECIES_TO_CONFIRM, TuttiCsvUtil.BOOLEAN); for (SampleCategoryModelEntry entry : sampleCategoryModel.getCategory()) { -- 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 develop in repository tutti. See http://git.codelutin.com/tutti.git commit 6eed9e0c453b86a968f2b7ae59ec6ed683c435d3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 14 14:57:44 2015 +0200 refs #6956 Ajout de l'option dans la configuration --- .../src/main/java/fr/ifremer/tutti/TuttiConfiguration.java | 5 +++++ .../java/fr/ifremer/tutti/TuttiConfigurationOption.java | 7 +++++++ .../main/resources/i18n/tutti-persistence_en_GB.properties | 1 + .../main/resources/i18n/tutti-persistence_fr_FR.properties | 1 + .../genericformat/GenericFormatImportConfiguration.java | 13 +++++++++++++ .../tutti/ui/swing/content/config/TuttiConfigUIHandler.java | 3 +++ .../content/genericformat/GenericFormatImportUIModel.java | 4 +++- .../genericformat/actions/GenericFormatValidateAction.java | 3 ++- .../src/main/resources/i18n/tutti-ui-swing_en_GB.properties | 1 + .../src/main/resources/i18n/tutti-ui-swing_fr_FR.properties | 1 + 10 files changed, 37 insertions(+), 2 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java index 0654ffb..4dcd244 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java @@ -434,6 +434,11 @@ public class TuttiConfiguration extends ApplicationConfiguration { return result; } + public int getGenericFormatImportMaximumRowsInErrorsPerFile() { + int result = applicationConfig.getOptionAsInt(TuttiConfigurationOption.GENERIC_FORMAT_IMPORT_MAXIMUM_ROWS_IN_ERROR_PER_FILE.getKey()); + return result; + } + public boolean isImportDbSkipBackup() { boolean result = applicationConfig.getOptionAsBoolean(TuttiConfigurationOption.IMPORT_DB_SKIP_BACKUP.getKey()); return result; diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java index 469ae77..1beeb5b 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java @@ -259,6 +259,13 @@ public enum TuttiConfigurationOption implements ConfigOptionDef { Boolean.FALSE.toString(), Boolean.class, false), + GENERIC_FORMAT_IMPORT_MAXIMUM_ROWS_IN_ERROR_PER_FILE( + "tutti.genericFormat.import.maximumRowsInErrorPerFile", + n("tutti.config.option.genericFormat.import.maximumRowsInErrorPerFile.description"), + "100", + int.class, + false), + IMPORT_DB_SKIP_BACKUP( "tutti.db.import.skipBackup", n("tutti.config.option.db.import.skipBackup.description"), diff --git a/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties b/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties index 984798a..0d2bf90 100644 --- a/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties +++ b/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties @@ -15,6 +15,7 @@ tutti.config.option.data.directory.description= tutti.config.option.db.import.skipBackup.description= tutti.config.option.export.backup.directory.description= tutti.config.option.export.countryId.description= +tutti.config.option.genericFormat.import.maximumRowsInErrorPerFile.description= tutti.config.option.genericFormat.import.skipBackup.description= tutti.config.option.genericFormat.report.backup.directory.description= tutti.config.option.help.directory.description= diff --git a/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties b/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties index 50a5689..5d0ae82 100644 --- a/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties +++ b/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties @@ -11,6 +11,7 @@ tutti.config.option.data.directory.description=Répertoire de données de l'appl tutti.config.option.db.import.skipBackup.description=Pour ne pas effectuer une sauvegarde avant un import de base tutti.config.option.export.backup.directory.description=Répertoire où sont enregistrées les exports génériques tutti.config.option.export.countryId.description=L'id du pays à utiliser pour les exports (il s'agit de la valeur LOCATION.ID). +tutti.config.option.genericFormat.import.maximumRowsInErrorPerFile.description=Nombre maximum de lignes en erreur possible par fichier lors de la validation de l'import générique tutti.config.option.genericFormat.import.skipBackup.description=Pour ne pas effectuer une sauvegarde avant chaque import générique tutti.config.option.genericFormat.report.backup.directory.description=Répertoire où sont enregistrés les rapports de l'import générique tutti.config.option.help.directory.description=Répertoire des fichiers d'aide diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportConfiguration.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportConfiguration.java index 0f2dc3f..9e2caf6 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportConfiguration.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportConfiguration.java @@ -109,6 +109,11 @@ public class GenericFormatImportConfiguration implements Serializable { */ private boolean updateOperations; + /** + * Maximum rows in errors by file before stopping validation. + */ + private int maximumRowsInErrorPerFile; + public ProgramDataModel getDataToExport() { return dataToExport; } @@ -220,4 +225,12 @@ public class GenericFormatImportConfiguration implements Serializable { public void setImportAttachments(boolean importAttachments) { this.importAttachments = importAttachments; } + + public int getMaximumRowsInErrorPerFile() { + return maximumRowsInErrorPerFile; + } + + public void setMaximumRowsInErrorPerFile(int maximumRowsInErrorPerFile) { + this.maximumRowsInErrorPerFile = maximumRowsInErrorPerFile; + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java index 54eae81..bbe9e6d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java @@ -150,6 +150,9 @@ public class TuttiConfigUIHandler extends AbstractTuttiUIHandler<TuttiUIContext, .addOption(TuttiConfigurationOption.GENERIC_FORMAT_IMPORT_SKIP_BACKUP) .setOptionShortLabel(t("tutti.config.option.ui.genericFormat.import.skipBackup.shortLabel")) + .addOption(TuttiConfigurationOption.GENERIC_FORMAT_IMPORT_MAXIMUM_ROWS_IN_ERROR_PER_FILE) + .setOptionShortLabel(t("tutti.config.option.ui.genericFormat.import.maximumRowsInErrorPerFile.shortLabel")) + .addOption(TuttiConfigurationOption.IMPORT_DB_SKIP_BACKUP) .setOptionShortLabel(t("tutti.config.option.ui.db.import.skipBackup.shortLabel")) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/GenericFormatImportUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/GenericFormatImportUIModel.java index 29475ea..e49dee4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/GenericFormatImportUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/GenericFormatImportUIModel.java @@ -128,13 +128,15 @@ public class GenericFormatImportUIModel extends AbstractSerializableBean { private boolean dataSelected; - public GenericFormatImportConfiguration toValidateImportFileConfiguration() { + public GenericFormatImportConfiguration toValidateImportFileConfiguration(int maximumRowsInErrorsPerFile) { GenericFormatImportConfiguration configuration = new GenericFormatImportConfiguration(); ProgramDataModel selectedDataModel = new ProgramDataModel(program, Collections.<CruiseDataModel>emptySet()); configuration.setDataToExport(selectedDataModel); + configuration.setMaximumRowsInErrorPerFile(maximumRowsInErrorsPerFile); + configuration.setImportSpecies(importSpecies); configuration.setImportBenthos(importBenthos); configuration.setImportMarineLitter(importMarineLitter); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatValidateAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatValidateAction.java index 3639ba7..f346be5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatValidateAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/genericformat/actions/GenericFormatValidateAction.java @@ -85,7 +85,8 @@ public class GenericFormatValidateAction extends LongActionSupport<GenericFormat getModel().setValidateReportFile(getConfig().newTempFile("genericFormatValidateReport", ".pdf")); - GenericFormatImportConfiguration configuration = getModel().toValidateImportFileConfiguration(); + int maximumRowsInErrorsPerFile = getConfig().getGenericFormatImportMaximumRowsInErrorsPerFile(); + GenericFormatImportConfiguration configuration = getModel().toValidateImportFileConfiguration(maximumRowsInErrorsPerFile); GenericFormatImportService service = getContext().getGenericFormatImportService(); diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 64381e8..f8c8de9 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -168,6 +168,7 @@ tutti.config.option.ui.coordinateEditorType.shortLabel= tutti.config.option.ui.dateFormat.shortLabel= tutti.config.option.ui.db.import.skipBackup.shortLabel= tutti.config.option.ui.fullBluetoothScan.shortLabel= +tutti.config.option.ui.genericFormat.import.maximumRowsInErrorPerFile.shortLabel= tutti.config.option.ui.genericFormat.import.skipBackup.shortLabel= tutti.config.option.ui.ichtyometerMaximumNumberOfAttemptToConnect.shortLabel= tutti.config.option.ui.individualObservationRowsToCreate.shortLabel= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 7920c88..6df02e8 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -150,6 +150,7 @@ tutti.config.option.ui.coordinateEditorType.shortLabel=Formateur de coordonnées tutti.config.option.ui.dateFormat.shortLabel=Format des dates tutti.config.option.ui.db.import.skipBackup.shortLabel=Ne pas faire de sauvegarde avant un import de base tutti.config.option.ui.fullBluetoothScan.shortLabel=Recherche complète des périphériques bluetooth +tutti.config.option.ui.genericFormat.import.maximumRowsInErrorPerFile.shortLabel=Nombre maximum de lignes en erreur possible par fichier lors de la validation de l'import générique tutti.config.option.ui.genericFormat.import.skipBackup.shortLabel=Ne pas faire de sauvegarde avant un import au format générique tutti.config.option.ui.ichtyometerMaximumNumberOfAttemptToConnect.shortLabel=Nombre maximum de tentatives de connection à l'ichtyomètre tutti.config.option.ui.individualObservationRowsToCreate.shortLabel=Nombre max de données individuelles -- 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 develop in repository tutti. See http://git.codelutin.com/tutti.git commit 0da3fdade03312855120fc6084dce71fe62b7480 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 14 14:58:09 2015 +0200 arret de la validation si le nombre de lignes en erreur est trop grand --- .../java/fr/ifremer/tutti/service/csv/CsvComsumer.java | 4 ++-- .../genericformat/GenericFormatCsvFileResult.java | 17 ++++++++++++++++- .../genericformat/GenericFormatImportRequest.java | 4 ++++ .../importactions/ImportActionSupport.java | 13 +++++++++++++ .../importactions/ValidateAccidentalCatchAction.java | 11 ++++++++++- .../importactions/ValidateCatchAction.java | 11 ++++++++++- .../importactions/ValidateGearCaracteristicAction.java | 11 ++++++++++- .../ValidateIndividualObservationAction.java | 11 ++++++++++- .../importactions/ValidateMarineLitterAction.java | 11 ++++++++++- .../importactions/ValidateOperationAction.java | 11 ++++++++++- .../importactions/ValidateParameterAction.java | 11 ++++++++++- .../importactions/ValidateSurveyAction.java | 11 ++++++++++- .../resources/ftl/genericFormatValidateReport_fr.ftl | 3 +++ 13 files changed, 118 insertions(+), 11 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java index 1ae3331..ab4226e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java @@ -146,8 +146,8 @@ public abstract class CsvComsumer<O, M extends AbstractTuttiImportExportModel<O> } - public boolean foundSomeErrors() { - return !rowsInError.isEmpty(); + public int getNbRowsInErrors() { + return rowsInError.size(); } public Map<Long, Set<String>> getRowsInError() { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatCsvFileResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatCsvFileResult.java index 3dcb189..ea5f37e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatCsvFileResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatCsvFileResult.java @@ -38,9 +38,16 @@ import java.util.Set; public class GenericFormatCsvFileResult extends GenericFormatFileResult { private static final long serialVersionUID = 1L; - + + /** + * Number of lines in file. + */ private int linesCount; + /** + * Is the file was fully loaded ? + */ + private boolean fullyLoaded = true; public GenericFormatCsvFileResult(String filename, boolean mandatory, boolean found) { super(filename, mandatory, found); @@ -54,6 +61,14 @@ public class GenericFormatCsvFileResult extends GenericFormatFileResult { this.linesCount = linesCount; } + public boolean isFullyLoaded() { + return fullyLoaded; + } + + public void setFullyLoaded(boolean fullyLoaded) { + this.fullyLoaded = fullyLoaded; + } + public void flushErrors(CsvComsumer<?, ?> consumer) { Map<Long, Set<String>> rowsInError = consumer.getRowsInError(); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportRequest.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportRequest.java index 5b64a6e..c1a8419 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportRequest.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportRequest.java @@ -179,6 +179,10 @@ public class GenericFormatImportRequest implements Serializable { return importConfiguration.getReportFile(); } + public int getMaximumRowsInErrorPerFile() { + return importConfiguration.getMaximumRowsInErrorPerFile(); + } + protected String getExistingCruiseId(Cruise importRowCruise) { String result = null; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportActionSupport.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportActionSupport.java index 94477d8..95d808f 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportActionSupport.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportActionSupport.java @@ -24,7 +24,9 @@ package fr.ifremer.tutti.service.genericformat.importactions; * #L% */ +import fr.ifremer.tutti.service.csv.CsvComsumer; import fr.ifremer.tutti.service.genericformat.GenericFormatContextSupport; +import fr.ifremer.tutti.service.genericformat.GenericFormatCsvFileResult; /** * Created on 3/3/15. @@ -62,4 +64,15 @@ public abstract class ImportActionSupport { protected void skipExecute() { // by default do nothing } + + protected void flushConsumer(CsvComsumer consumer, GenericFormatCsvFileResult importFileResult) { + + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + + boolean fullyLoaded = consumer.getNbRowsInErrors() <= maximumRowsInErrorPerFile; + importFileResult.flushErrors(consumer); + importFileResult.setFullyLoaded(fullyLoaded); + + } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateAccidentalCatchAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateAccidentalCatchAction.java index 4417916..a4f9572 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateAccidentalCatchAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateAccidentalCatchAction.java @@ -66,6 +66,8 @@ public class ValidateAccidentalCatchAction extends ImportActionSupport { log.info("Validate accidentalCatch.csv file."); } + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + GenericFormatCsvFileResult importFileResult = importContext.getAccidentalCatchFileResult(); try (CsvConsumerForAccidentalCatch consumer = importContext.loadAccidentalCatches(false)) { for (ImportRow<AccidentalCatchRow> row : consumer) { @@ -78,9 +80,16 @@ public class ValidateAccidentalCatchAction extends ImportActionSupport { consumer.prepareRowForPersist(operationContext, row); } + if (consumer.getNbRowsInErrors() > maximumRowsInErrorPerFile) { + if (log.isWarnEnabled()) { + log.warn("Too much errors, stop validating this file."); + } + break; + } + } - importFileResult.flushErrors(consumer); + flushConsumer(consumer, importFileResult); } catch (IOException e) { throw new ApplicationTechnicalException("Could not close accidentalCatch.csv file", e); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateCatchAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateCatchAction.java index 2fda8f4..a02ec06 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateCatchAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateCatchAction.java @@ -66,6 +66,8 @@ public class ValidateCatchAction extends ImportActionSupport { log.info("Validate catch.csv file."); } + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + GenericFormatCsvFileResult importFileResult = importContext.getCatchFileResult(); try (CsvConsumerForCatch consumer = importContext.loadCatches(false)) { for (ImportRow<CatchRow> row : consumer) { @@ -78,9 +80,16 @@ public class ValidateCatchAction extends ImportActionSupport { consumer.prepareRowForPersist(operationContext, row); } + if (consumer.getNbRowsInErrors() > maximumRowsInErrorPerFile) { + if (log.isWarnEnabled()) { + log.warn("Too much errors, stop validating this file."); + } + break; + } + } - importFileResult.flushErrors(consumer); + flushConsumer(consumer, importFileResult); } catch (IOException e) { throw new ApplicationTechnicalException("Could not close catch.csv file", e); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateGearCaracteristicAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateGearCaracteristicAction.java index dabd0cc..02f5568 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateGearCaracteristicAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateGearCaracteristicAction.java @@ -66,6 +66,8 @@ public class ValidateGearCaracteristicAction extends ImportActionSupport { log.info("Validate gearCaracteristics.csv file."); } + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + GenericFormatCsvFileResult importFileResult = importContext.getGearCaracteristicFileResult(); try (CsvConsumerForGearCaracteristic consumer = importContext.loadGearCaracteristics(false)) { for (ImportRow<GearCaracteristicRow> row : consumer) { @@ -80,9 +82,16 @@ public class ValidateGearCaracteristicAction extends ImportActionSupport { } + if (consumer.getNbRowsInErrors() > maximumRowsInErrorPerFile) { + if (log.isWarnEnabled()) { + log.warn("Too much errors, stop validating this file."); + } + break; + } + } - importFileResult.flushErrors(consumer); + flushConsumer(consumer, importFileResult); } catch (IOException e) { throw new ApplicationTechnicalException("Could not close gearCaracteristic.csv file", e); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateIndividualObservationAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateIndividualObservationAction.java index 6d35e1c..dd62f13 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateIndividualObservationAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateIndividualObservationAction.java @@ -67,6 +67,8 @@ public class ValidateIndividualObservationAction extends ImportActionSupport { log.info("Validate individualObservation.csv file."); } + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + GenericFormatCsvFileResult importFileResult = importContext.getIndividualObservationFileResult(); try (CsvConsumerForIndividualObservation consumer = importContext.loadIndividualObservations(false)) { for (ImportRow<IndividualObservationRow> row : consumer) { @@ -79,9 +81,16 @@ public class ValidateIndividualObservationAction extends ImportActionSupport { consumer.prepareRowForPersist(operationContext, row); } + if (consumer.getNbRowsInErrors() > maximumRowsInErrorPerFile) { + if (log.isWarnEnabled()) { + log.warn("Too much errors, stop validating this file."); + } + break; + } + } - importFileResult.flushErrors(consumer); + flushConsumer(consumer, importFileResult); } catch (IOException e) { throw new ApplicationTechnicalException("Could not close individualObservation.csv file", e); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateMarineLitterAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateMarineLitterAction.java index 0dd8656..f1addc4 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateMarineLitterAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateMarineLitterAction.java @@ -66,6 +66,8 @@ public class ValidateMarineLitterAction extends ImportActionSupport { log.info("Validate marineLitter.csv file."); } + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + GenericFormatCsvFileResult importFileResult = importContext.getMarineLitterFileResult(); try (CsvConsumerForMarineLitter consumer = importContext.loadMarineLitters(false)) { for (ImportRow<MarineLitterRow> row : consumer) { @@ -78,9 +80,16 @@ public class ValidateMarineLitterAction extends ImportActionSupport { consumer.prepareRowForPersist(operationContext, row); } + if (consumer.getNbRowsInErrors() > maximumRowsInErrorPerFile) { + if (log.isWarnEnabled()) { + log.warn("Too much errors, stop validating this file."); + } + break; + } + } - importFileResult.flushErrors(consumer); + flushConsumer(consumer, importFileResult); } catch (IOException e) { throw new ApplicationTechnicalException("Could not close marineLitter.csv file", e); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateOperationAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateOperationAction.java index ab1718f..1fe6d31 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateOperationAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateOperationAction.java @@ -72,6 +72,8 @@ public class ValidateOperationAction extends ImportActionSupport { boolean importBenthos = importContext.getImportRequest().isImportBenthos(); boolean importMarineLitter = importContext.getImportRequest().isImportMarineLitter(); + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + GenericFormatCsvFileResult importFileResult = importContext.getOperationFileResult(); try (CsvConsumerForOperation consumer = importContext.loadOperations(false)) { for (ImportRow<OperationRow> row : consumer) { @@ -93,9 +95,16 @@ public class ValidateOperationAction extends ImportActionSupport { } + if (consumer.getNbRowsInErrors() > maximumRowsInErrorPerFile) { + if (log.isWarnEnabled()) { + log.warn("Too much errors, stop validating this file."); + } + break; + } + } - importFileResult.flushErrors(consumer); + flushConsumer(consumer, importFileResult); } catch (IOException e) { throw new ApplicationTechnicalException("Could not close operation.csv file", e); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateParameterAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateParameterAction.java index 8bcb592..dc3c66f 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateParameterAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateParameterAction.java @@ -66,6 +66,8 @@ public class ValidateParameterAction extends ImportActionSupport { log.info("Validate parameter.csv file."); } + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + GenericFormatCsvFileResult importFileResult = importContext.getParameterFileResult(); try (CsvConsumerForParameter consumer = importContext.loadParameters(false)) { for (ImportRow<ParameterRow> row : consumer) { @@ -78,9 +80,16 @@ public class ValidateParameterAction extends ImportActionSupport { consumer.prepareRowForPersist(operationContext, row); } + if (consumer.getNbRowsInErrors() > maximumRowsInErrorPerFile) { + if (log.isWarnEnabled()) { + log.warn("Too much errors, stop validating this file."); + } + break; + } + } - importFileResult.flushErrors(consumer); + flushConsumer(consumer, importFileResult); } catch (IOException e) { throw new ApplicationTechnicalException("Could not close parameter.csv file", e); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateSurveyAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateSurveyAction.java index bf78825..b39d014 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateSurveyAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ValidateSurveyAction.java @@ -75,6 +75,8 @@ public class ValidateSurveyAction extends ImportActionSupport { log.info("Validate survey.csv file."); } + int maximumRowsInErrorPerFile = importContext.getImportRequest().getMaximumRowsInErrorPerFile(); + GenericFormatCsvFileResult importFileResult = importContext.getSurveyFileResult(); try (CsvConsumerForSurvey consumer = importContext.loadSurveys(false)) { for (ImportRow<SurveyRow> row : consumer) { @@ -105,9 +107,16 @@ public class ValidateSurveyAction extends ImportActionSupport { importContext.addImportedCruise(cruise, null, existingCruiseData, existingFishingOperations); + if (consumer.getNbRowsInErrors() > maximumRowsInErrorPerFile) { + if (log.isWarnEnabled()) { + log.warn("Too much errors, stop validating this file."); + } + break; + } + } - importFileResult.flushErrors(consumer); + flushConsumer(consumer, importFileResult); } catch (IOException e) { throw new ApplicationTechnicalException("Could not close survey.csv file", e); diff --git a/tutti-service/src/main/resources/ftl/genericFormatValidateReport_fr.ftl b/tutti-service/src/main/resources/ftl/genericFormatValidateReport_fr.ftl index 7448808..f76cb18 100644 --- a/tutti-service/src/main/resources/ftl/genericFormatValidateReport_fr.ftl +++ b/tutti-service/src/main/resources/ftl/genericFormatValidateReport_fr.ftl @@ -82,6 +82,9 @@ </#if> <#if errorsEntries?size != 0> <li class="error">Nombre de lignes en erreurs : ${errorsEntries?size}</li> + <#if !fileResult.fullyLoaded> + <li class="error">Trop le lignes en erreurs, tout le fichier n'a pas été validé.</li> + </#if> </#if> </ul> <#if errorsEntries?size == 0> -- 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 develop in repository tutti. See http://git.codelutin.com/tutti.git commit 3dd567ba497b74d0a634e5fd5126e93f391a3b4a Merge: 17e4207 0da3fda Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 14 15:23:41 2015 +0200 fixes #6956: [IMPORT GENERIQUE] Ne pas valider les fichiers au dela d'un nombre d'erreurs configurable Merge branch 'feature/6956' into develop .../main/java/fr/ifremer/tutti/TuttiConfiguration.java | 5 +++++ .../java/fr/ifremer/tutti/TuttiConfigurationOption.java | 7 +++++++ .../resources/i18n/tutti-persistence_en_GB.properties | 1 + .../resources/i18n/tutti-persistence_fr_FR.properties | 1 + .../java/fr/ifremer/tutti/service/csv/CsvComsumer.java | 4 ++-- .../genericformat/GenericFormatCsvFileResult.java | 17 ++++++++++++++++- .../genericformat/GenericFormatImportConfiguration.java | 13 +++++++++++++ .../genericformat/GenericFormatImportRequest.java | 4 ++++ .../tutti/service/genericformat/csv/CatchModel.java | 4 ++-- .../importactions/ImportActionSupport.java | 13 +++++++++++++ .../importactions/ValidateAccidentalCatchAction.java | 11 ++++++++++- .../importactions/ValidateCatchAction.java | 11 ++++++++++- .../importactions/ValidateGearCaracteristicAction.java | 11 ++++++++++- .../ValidateIndividualObservationAction.java | 11 ++++++++++- .../importactions/ValidateMarineLitterAction.java | 11 ++++++++++- .../importactions/ValidateOperationAction.java | 11 ++++++++++- .../importactions/ValidateParameterAction.java | 11 ++++++++++- .../importactions/ValidateSurveyAction.java | 11 ++++++++++- .../resources/ftl/genericFormatValidateReport_fr.ftl | 3 +++ .../ui/swing/content/config/TuttiConfigUIHandler.java | 3 +++ .../genericformat/GenericFormatImportUIModel.java | 4 +++- .../actions/GenericFormatValidateAction.java | 3 ++- .../main/resources/i18n/tutti-ui-swing_en_GB.properties | 1 + .../main/resources/i18n/tutti-ui-swing_fr_FR.properties | 1 + 24 files changed, 157 insertions(+), 15 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm