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 b8e6f816885597501005beb5ee3d5c09f8721ac9 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jan 2 19:42:40 2017 +0100 fixes #8611: [EXPORT GENERIQUE] mauvais remplissage de Num_Lot_V_HV_H2 dans le Hors Vrac correction pour que l'export generic regenere tous les rankOrder durant l'export pour certifier qu'il n'y a pas de doublon --- .../GenericFormatExportOperationContext.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportOperationContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportOperationContext.java index 4ccd225..d492cf9 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportOperationContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportOperationContext.java @@ -49,6 +49,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; /** @@ -204,6 +205,31 @@ public class GenericFormatExportOperationContext { rootMarineLitterBatch = null; } + // poussin 20170102 fixes #8611: rewrite rankOrder to ensure unicity + if (rootSpeciesBatch != null) { + reOrder(rootSpeciesBatch.getChildren()); + } + if (rootBenthosBatch != null) { + reOrder(rootBenthosBatch.getChildren()); + } + } + + private void reOrder(List<SpeciesBatch> l) { + if (l != null) { + HashSet<Integer> check = new HashSet<Integer>(); + int rankOrder = 1; + for (SpeciesBatch b : l) { + if (log.isDebugEnabled()) { + Integer oldRankOrder = b.getRankOrder(); + boolean alreadyUse = !check.add(oldRankOrder); + if(alreadyUse || oldRankOrder != rankOrder) { + log.debug("Bad rank order (" + oldRankOrder + ") already use: " + alreadyUse + " good current: " + rankOrder); + } + } + b.setRankOrder(rankOrder++); + reOrder(b.getChildBatchs()); + } + } } public Cruise getCruise() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.