This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 9187b52937fec24963ae8c369647f82508ad504b Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jun 20 10:34:51 2016 +0200 Revert "fixes #8335" This reverts commit 919567bb552e259bc94180a16209b5d23a97b799. --- .../GenericFormatImportOperationContext.java | 21 ++-------- .../GenericFormatImportOperationResult.java | 12 ++---- .../GenericformatImportPersistenceHelper.java | 3 +- .../ImportIndividualObservationAction.java | 45 ++++++++-------------- .../resources/ftl/genericFormatImportReport_fr.ftl | 7 +--- 5 files changed, 24 insertions(+), 64 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationContext.java index 0b23063..b262a20 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationContext.java @@ -39,19 +39,19 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.model.OperationDataModel; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; + import java.io.Closeable; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; /** * Created on 2/20/15. @@ -75,12 +75,8 @@ public class GenericFormatImportOperationContext implements Closeable { private final Map<Integer, AccidentalBatch> accidentalBatchesById; - /** all observation available in imported file */ private final Map<Integer, IndividualObservationBatch> individualObservationBatchesById; - /** valid observation realy imported in database */ - private List<IndividualObservationBatch> individualObservationBatchImported; - private final Map<Integer, SpeciesBatch> vracSpeciesBatches; private final Map<Integer, SpeciesBatch> horsVracSpeciesBatches; @@ -123,7 +119,6 @@ public class GenericFormatImportOperationContext implements Closeable { this.marineLitterBatches = new ArrayList<>(); this.accidentalBatchesById = new TreeMap<>(); this.individualObservationBatchesById = new TreeMap<>(); - this.individualObservationBatchImported = Collections.emptyList(); this.vracSpeciesBatches = new TreeMap<>(); this.horsVracSpeciesBatches = new TreeMap<>(); this.speciesFrequencies = ArrayListMultimap.create(); @@ -254,14 +249,6 @@ public class GenericFormatImportOperationContext implements Closeable { return ImmutableList.copyOf(individualObservationBatchesById.values()); } - public List<IndividualObservationBatch> getIndividualObservationBatchImported() { - return individualObservationBatchImported; - } - - public void setIndividualObservationBatchImported(List<IndividualObservationBatch> imported) { - individualObservationBatchImported = imported; - } - public int getNbSpeciesTaxon() { Set<Species> speciesSet = new HashSet<>(); SpeciesBatchs.grabSpeciesChildBatchs(vracSpeciesBatches.values(), speciesSet); @@ -319,7 +306,6 @@ public class GenericFormatImportOperationContext implements Closeable { vesselUseFeatures.clear(); marineLitterBatches.clear(); individualObservationBatchesById.clear(); - individualObservationBatchImported.clear(); accidentalBatchesById.clear(); benthosFrequencies.clear(); vracBenthosBatches.clear(); @@ -358,6 +344,5 @@ public class GenericFormatImportOperationContext implements Closeable { public boolean isWeightsDeleted() { return weightsDeleted; } - } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationResult.java index c1ad783..034c8c6 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationResult.java @@ -26,11 +26,12 @@ package fr.ifremer.tutti.service.genericformat; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import java.io.Serializable; -import java.util.Set; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.BooleanUtils; +import java.io.Serializable; +import java.util.Set; + /** * Created on 2/22/15. * @@ -61,8 +62,6 @@ public class GenericFormatImportOperationResult implements Serializable { private int nbIndividualObservations; - private int nbIndividualObservationsImported; - private int nbSpeciesTaxon; private int nbBenthosTaxon; @@ -158,10 +157,6 @@ public class GenericFormatImportOperationResult implements Serializable { return nbIndividualObservations; } - public int getNbIndividualObservationsImported() { - return nbIndividualObservationsImported; - } - public int getNbSpeciesTaxon() { return nbSpeciesTaxon; } @@ -187,7 +182,6 @@ public class GenericFormatImportOperationResult implements Serializable { } if (operationContext.withIndividualObservationBatches()) { nbIndividualObservations = operationContext.getIndividualObservationBatches().size(); - nbIndividualObservationsImported = operationContext.getIndividualObservationBatchImported().size(); } if (operationContext.withSpeciesBatches(true)) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericformatImportPersistenceHelper.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericformatImportPersistenceHelper.java index 44ecb2f..507ec87 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericformatImportPersistenceHelper.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericformatImportPersistenceHelper.java @@ -24,6 +24,7 @@ package fr.ifremer.tutti.service.genericformat; * #L% */ +import com.google.common.collect.ImmutableList; import com.google.common.collect.Sets; import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; @@ -291,7 +292,7 @@ public class GenericformatImportPersistenceHelper { persistenceService.deleteAllIndividualObservationsForFishingOperation(fishingOperationId); } - public List<IndividualObservationBatch> createIndividualObservationBatch(FishingOperation fishingOperation, List<IndividualObservationBatch> individualObservationBatch) { + public List<IndividualObservationBatch> createIndividualObservationBatch(FishingOperation fishingOperation, ImmutableList<IndividualObservationBatch> individualObservationBatch) { return persistenceService.createIndividualObservationBatches(fishingOperation, individualObservationBatch); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportIndividualObservationAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportIndividualObservationAction.java index 4d84aee..5d4a3ec 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportIndividualObservationAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportIndividualObservationAction.java @@ -37,16 +37,17 @@ import fr.ifremer.tutti.service.genericformat.GenericformatImportPersistenceHelp import fr.ifremer.tutti.service.genericformat.consumer.CsvConsumerForIndividualObservation; import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow; import fr.ifremer.tutti.service.genericformat.csv.IndividualObservationRow; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.csv.ImportRow; import org.nuiton.csv.ImportRuntimeException; import org.nuiton.jaxx.application.ApplicationTechnicalException; +import java.io.IOException; +import java.util.Collection; +import java.util.List; +import java.util.Objects; + import static org.nuiton.i18n.I18n.t; /** @@ -152,8 +153,8 @@ public class ImportIndividualObservationAction extends ImportActionSupport { if (log.isInfoEnabled()) { log.info("Persist " + individualObservationBatches.size() + " individual observation(s) of " + operationStr + " for cruise: " + cruiseStr); } - List<IndividualObservationBatch> imported = persistIndividualObservationBatches(fishingOperationContext, individualObservationBatches); - fishingOperationContext.setIndividualObservationBatchImported(imported); + persistIndividualObservationBatches(fishingOperationContext, individualObservationBatches); + } } @@ -167,45 +168,29 @@ public class ImportIndividualObservationAction extends ImportActionSupport { } - private List<IndividualObservationBatch> persistIndividualObservationBatches(GenericFormatImportOperationContext fishingOperationContext, ImmutableList<IndividualObservationBatch> batches) { - - // https://forge.codelutin.com/issues/8335 - // Certain observation individuelle ne sont pas retrouvee dans - // le fichier "catch" importer, cela est du a un autre bug - // qui fait que certaine observation reste dans le system - // au lieu d'etre effacee (?) - // On ne peut donc pas les importer, on les ignores simplement - // (car pour pouvoir les importer il faut absolument un speciesBatchId - // valide) au lieu de lever une exception. - List<IndividualObservationBatch> goodBatches = new ArrayList<IndividualObservationBatch>(batches.size()); + private void persistIndividualObservationBatches(GenericFormatImportOperationContext fishingOperationContext, ImmutableList<IndividualObservationBatch> batches) { for (IndividualObservationBatch individualObservation : batches) { Integer batchId = individualObservation.getBatchId(); Integer speciesBatchId = fishingOperationContext.getSpeciesBatchId(batchId); - if (speciesBatchId == null) { - if (log.isErrorEnabled()) { - log.error("Persisted Species batch id not found for import species batch id: " + batchId); - } - } else { - // Objects.requireNonNull(speciesBatchId, "Persisted Species batch id not found for import species batch id: " + batchId); - individualObservation.setBatchId(speciesBatchId); - goodBatches.add(individualObservation); - } + Objects.requireNonNull(speciesBatchId, "Persisted Species batch id not found for import species batch id: " + batchId); + individualObservation.setBatchId(speciesBatchId); + } // On conserve l'ordre des ids d'imports qui vont servir ensuite pour persister les pièces jointes ImmutableList.Builder<Integer> idsBuilder = ImmutableList.builder(); - goodBatches.forEach(batch -> idsBuilder.add(batch.getIdAsInt())); + batches.forEach(batch -> idsBuilder.add(batch.getIdAsInt())); ImmutableList<Integer> importIds = idsBuilder.build(); // on enlève les ids pour la persistence - goodBatches.forEach(batch -> batch.setId((String) null)); + batches.forEach(batch -> batch.setId((String) null)); FishingOperation fishingOperation = fishingOperationContext.getFishingOperation(); - List<IndividualObservationBatch> savedBatches = persistenceHelper.createIndividualObservationBatch(fishingOperation, goodBatches); + List<IndividualObservationBatch> savedBatches = persistenceHelper.createIndividualObservationBatch(fishingOperation, batches); // Persistence des pièces-jointes associées aux observations individuelles int index = 0; @@ -215,7 +200,7 @@ public class ImportIndividualObservationAction extends ImportActionSupport { Collection<AttachmentRow> attachmentRows = importContext.popAttachmentRows(ObjectTypeCode.SAMPLE, importId); persistenceHelper.persistAttachments(savedBatch.getIdAsInt(), attachmentRows); } - return goodBatches; + } }); diff --git a/tutti-service/src/main/resources/ftl/genericFormatImportReport_fr.ftl b/tutti-service/src/main/resources/ftl/genericFormatImportReport_fr.ftl index 224c503..9c3e628 100644 --- a/tutti-service/src/main/resources/ftl/genericFormatImportReport_fr.ftl +++ b/tutti-service/src/main/resources/ftl/genericFormatImportReport_fr.ftl @@ -532,12 +532,7 @@ <td class="small"><#if importBenthos> ${operationResult.benthosTotalSortedWeight!'NA'}<#else> - </#if></td> <td class="small"><#if importSpecies> ${operationResult.nbSpeciesTaxon}<#else> - </#if></td> <td class="small"><#if importBenthos> ${operationResult.nbBenthosTaxon}<#else> - </#if></td> - <td class="small"> - <#if importIndividualObservation> - <#if operationResult.nbIndividualObservations == operationResult.nbIndividualObservationsImported> ${operationResult.nbIndividualObservations} - <#else> ${operationResult.nbIndividualObservationsImported}/${operationResult.nbIndividualObservations} </#if> - <#else> - </#if> - </td> + <td class="small"><#if importIndividualObservation> ${operationResult.nbIndividualObservations}<#else> - </#if></td> <td class="small"><#if importAccidentalCatch> ${operationResult.withAccidentalCatches?string('Oui', 'Non')}<#else> - </#if></td> <td class="small"><#if importMarineLitter> ${operationResult.withMarineLitter?string('Oui', 'Non')}<#else> - </#if></td> </tr> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.