r364 - trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service
Author: echatellier Date: 2014-07-08 16:12:34 +0200 (Tue, 08 Jul 2014) New Revision: 364 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/364 Log: Add fixme. Only generate edi once once (there is still a problem with TRANSFER to edi state). Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-07-08 14:10:53 UTC (rev 363) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-07-08 14:12:34 UTC (rev 364) @@ -42,6 +42,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; import javax.activation.DataSource; import javax.activation.FileDataSource; @@ -63,6 +64,7 @@ import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm; import org.apache.pdfbox.pdmodel.interactive.form.PDField; import org.nuiton.topia.persistence.TopiaEntities; +import org.nuiton.util.FileUtil; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; import org.nuiton.util.pagination.PaginationParameter; @@ -259,6 +261,8 @@ while (!folder.isUseCurrentLevelEdiFolder() && folder.getParent() != null) { folder = folder.getParent(); } + + // FIXME echatellier : et si on définit le ediFolder après ? la demande ne peux pas passer en TRANSMITTED_TO_EDI ? if (StringUtils.isNotBlank(folder.getEdiFolder())) { History transmissionToEdi = CollectionUtils.find(email.getHistory(), new Predicate<History>() { @Override @@ -335,6 +339,7 @@ protected void transmitDemandToEdi(Email email) { Preconditions.checkArgument(email.getDemandStatus() == DemandStatus.TRANSMITTED_TO_EDI); + // FIXME echatellier : une demande transmise a EDI sasn rangeRow restera en TRANSMITTED_TO_EDI pour toujours if (CollectionUtils.isEmpty(email.getRangeRow())) { return; } @@ -347,9 +352,22 @@ ediDirectory.mkdirs(); String fileDate = DateFormatUtils.format(now, "yyMMddHHmmss"); - + // create a file for each commande for (RangeRow rangeRow : email.getRangeRow()) { + + // il n'y a pas de condition si le fait que le fichier à déjà été généré + // si il existe déjà, on ne le génére pas à nouveau + // TODO comment avoir une vraie condition de non génération en double ? + String pattern = Pattern.quote("ORD_FAX_") + ".*" + Pattern.quote(rangeRow.getTopiaId() + ".txt"); + Collection<File> files = FileUtil.find(ediDirectory, pattern, false); + if (!files.isEmpty()) { + if (log.isDebugEnabled()) { + log.debug("Already existing file found for " + rangeRow.getTopiaId() + ". Skipping."); + } + continue; + } + String fileName = "ORD_FAX_" + fileDate + "_" + rangeRow.getTopiaId() + ".txt"; File ediFile = new File(ediDirectory, fileName);
participants (1)
-
echatellier@users.forge.codelutin.com