[tutti] branch develop updated (8312ade -> 0bb341d)
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 8312ade fixes #5697: [CAPTURE] mauvais affichage de // new 0bb341d fixes #5695: [IMPORT] psion blocage fenettre suite message erreur The 1 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 0bb341dc72320b4fb576af1fe5cb0dda685af325 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Aug 30 12:22:58 2014 +0200 fixes #5695: [IMPORT] psion blocage fenettre suite message erreur Summary of changes: .../service/psionimport/PsionImportModel.java | 48 +++++++++++++++++++++- .../service/psionimport/PsionImportService.java | 2 +- .../resources/i18n/tutti-service_en_GB.properties | 2 + .../resources/i18n/tutti-service_fr_FR.properties | 20 +++++---- 4 files changed, 60 insertions(+), 12 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 0bb341dc72320b4fb576af1fe5cb0dda685af325 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Aug 30 12:22:58 2014 +0200 fixes #5695: [IMPORT] psion blocage fenettre suite message erreur --- .../service/psionimport/PsionImportModel.java | 48 +++++++++++++++++++++- .../service/psionimport/PsionImportService.java | 2 +- .../resources/i18n/tutti-service_en_GB.properties | 2 + .../resources/i18n/tutti-service_fr_FR.properties | 20 +++++---- 4 files changed, 60 insertions(+), 12 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java index 3c5f6f1..10608b7 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java @@ -28,8 +28,10 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; -import fr.ifremer.tutti.util.Weights; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.util.Weights; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -243,7 +245,7 @@ public class PsionImportModel { } } - void checkSortedBatches() throws IOException { + void checkSortedBatches(SampleCategoryModel sampleCategoryModel) throws IOException { for (Species species : sortedBatchsBySpecies.keySet()) { @@ -273,6 +275,8 @@ public class PsionImportModel { } + checkSampleCategoryModel(sampleCategoryModel, batchModel); + } if (!speciesBatchesWithDoubleWeight.isEmpty()) { @@ -300,4 +304,44 @@ public class PsionImportModel { } } + + protected void checkSampleCategoryModel(SampleCategoryModel sampleCategoryModel, PsionImportBatchModel batchModel) throws IOException { + + if (batchModel.withCategories()) { + + Iterator<SampleCategoryModelEntry> samplingOrderIterator = sampleCategoryModel.getCategory().iterator(); + Iterator<PsionImportBatchModel.SampleCategory> categoryIterator = batchModel.getCategoryIterator(); + while (categoryIterator.hasNext()) { + PsionImportBatchModel.SampleCategory nextCategory = categoryIterator.next(); + + Integer nextCategoryCategoryId = nextCategory.getCategoryId(); + if (!samplingOrderIterator.hasNext()) { + + // not an existing category (should never happend) + throw new IOException(t("tutti.service.psionimport.error.unkonwSampleCategory.message", batchModel.getSpecies().getSurveyCode(), nextCategoryCategoryId)); + + } + + if (!sampleCategoryModel.containsCategoryId(nextCategoryCategoryId)) { + + // not an existing category (should never happend) + throw new IOException(t("tutti.service.psionimport.error.unkonwSampleCategory.message", batchModel.getSpecies().getSurveyCode(), nextCategoryCategoryId)); + + } + + SampleCategoryModelEntry nextSampleCategory = samplingOrderIterator.next(); + + if (!nextSampleCategory.getCategoryId().equals(nextCategoryCategoryId)) { + + // mismatch sample category + SampleCategoryModelEntry foundSampleCategory = sampleCategoryModel.getCategoryById(nextCategoryCategoryId); + throw new IOException(t("tutti.service.psionimport.error.mismatchSampleCategory.message", batchModel.getSpecies().getSurveyCode(), foundSampleCategory, nextSampleCategory)); + + } + } + + + } + + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java index 6f955dd..e22428e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java @@ -281,7 +281,7 @@ public class PsionImportService extends AbstractTuttiService { // --- Check sorted batches --- // try { - importModel.checkSortedBatches(); + importModel.checkSortedBatches(context.getSampleCategoryModel()); } catch (IOException e) { result.addError(e.getMessage()); return result; diff --git a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties index c22425a..e810af7 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties @@ -185,10 +185,12 @@ tutti.service.psionimport.error.invalid.firstLine= tutti.service.psionimport.error.invalid.line.syntax= tutti.service.psionimport.error.invalid.operation= tutti.service.psionimport.error.invalidSampleCategoryModel.message= +tutti.service.psionimport.error.mismatchSampleCategory.message= tutti.service.psionimport.error.no.lengthClass.caracteristic= tutti.service.psionimport.error.no.protocol= tutti.service.psionimport.error.species.already.used= tutti.service.psionimport.error.species.not.found= +tutti.service.psionimport.error.unkonwSampleCategory.message= tutti.service.pupitri.export.species.error= tutti.service.pupitri.import.attachment.comment= tutti.service.pupitri.import.carrousel.error= diff --git a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties index 1a8b8eb..c25fa3d 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties @@ -161,19 +161,21 @@ tutti.service.protocol.import.benthos.error=Erreur lors de l'import du benthos d tutti.service.protocol.import.species.error=Erreur lors de l'import des espèces du protocole %1s du fichier %2s tutti.service.protocol.import.taxonUsed.error=Le taxon référent d'id %s est déjà utilisé tutti.service.psion.import.attachment.comment=Import Psion du %s -tutti.service.psionimport.error.inconsistentVracCategory.message=Pour l'espèce '%s', la cétégorisation des lots vrac n'est pas cohérente (POID \!\= 0 et TAIL > 0) (on autorise uniquement que tous les lots soient catégorisés ou un seul lot non catégorisé) -tutti.service.psionimport.error.inconsistentVracWeight.message=Pour l'espèce '%s', il existe deux enregistrements de lot vrac avec le champs 'POID' différent, ce qui est interdit -tutti.service.psionimport.error.invalid.category.syntax=Ligne %s, catégorisation '%s' inconnue, l'espèce %s sera ignorée -tutti.service.psionimport.error.invalid.command.syntax=Ligne %s, la commande '%s' n'est pas reconnue +tutti.service.psionimport.error.inconsistentVracCategory.message=Pour l'espèce '<strong>%s</strong>', la catégorisation des lots vrac n'est pas cohérente (POID \!\= 0 et TAIL > 0) (on autorise uniquement que tous les lots soient catégorisés ou un seul lot non catégorisé) +tutti.service.psionimport.error.inconsistentVracWeight.message=Pour l'espèce '<strong>%s</strong>', il existe deux enregistrements de lot vrac avec le champs 'POID' différent, ce qui est interdit +tutti.service.psionimport.error.invalid.category.syntax=Ligne <i>%s</i>, catégorisation '<strong>%s</strong>' inconnue, l'espèce <strong>%s</strong> sera ignorée +tutti.service.psionimport.error.invalid.command.syntax=Ligne <i>%s</i>, la commande '<strong>%s</strong>' n'est pas reconnue tutti.service.psionimport.error.invalid.date.format=Format de la date du trait incorrecte (mm-dd-aaaa) -tutti.service.psionimport.error.invalid.firstLine=La ligne %s (%s) n'est pas valide, elle doit être précédée par une ligne ESPE -tutti.service.psionimport.error.invalid.line.syntax=Ligne %s, format incorrecte (%s) +tutti.service.psionimport.error.invalid.firstLine=La ligne <i>%s</i> (<strong>%s</strong>) n'est pas valide, elle doit être précédée par une ligne <strong>ESPE</strong> +tutti.service.psionimport.error.invalid.line.syntax=Ligne <i>%s</i>, format incorrecte (<strong>%s</strong>) tutti.service.psionimport.error.invalid.operation=Code station ou date du trait incorrect tutti.service.psionimport.error.invalidSampleCategoryModel.message=<html><body>Le modèle de catégorisation n'est pas compatible pour un import psion.<br> Il manque les catégories suivantes \: <ul>%s</ul><hr/>Veuillez ajouter cette catégorie dans la configuration de catégorisation (menu administration).</body></html> -tutti.service.psionimport.error.no.lengthClass.caracteristic=Ligne %s espèce '%s' ignorée car pas de caractéristique de classe de taille renseignée dans le protocole. +tutti.service.psionimport.error.mismatchSampleCategory.message=Pour l'espèce '<strong>%s</strong>', la catégorisation ne respecte pas le modèle des catégorisation, la catégorie '<strong>%s</strong>' a été trouvé à la place de '<i>%s</i>' +tutti.service.psionimport.error.no.lengthClass.caracteristic=Ligne <i>%s</i> espèce '<strong>%s</strong>' ignorée car pas de caractéristique de classe de taille renseignée dans le protocole. tutti.service.psionimport.error.no.protocol=Impossible de faire un import Psion sans protocol. -tutti.service.psionimport.error.species.already.used="Ligne %s, espèce '%s' déjà utilisée -tutti.service.psionimport.error.species.not.found=Ligne %s, espèce '%s' inconnue +tutti.service.psionimport.error.species.already.used="Ligne <i>%s</i>, espèce '<strong>%s</strong>' déjà utilisée +tutti.service.psionimport.error.species.not.found=Ligne <i>%s</i>, espèce '<strong>%s</strong>' inconnue +tutti.service.psionimport.error.unkonwSampleCategory.message=Pour l'espèce '<strong>%s</strong>', la catégorisation '<strong>%s</strong>' n'est pas connue dans le modèle de catégorisation. tutti.service.pupitri.export.species.error=Erreur lors de l'export des espèces pour Pupitri dans le fichier %s tutti.service.pupitri.import.attachment.comment=Import Pupitri du %s tutti.service.pupitri.import.carrousel.error=Erreur lors de l'import du fichier de carrousel %2s pour le trait %1s -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm