branch develop updated (8f4f316 -> b863962)
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 8f4f316 fixes #6989: [IMPORT GENERIQUE] si on importe que le benthos il vide toutes les espèces Merge branch 'feature/6989' into develop new 68a81d5 refs #6990 sauvegarde a l'import / export de taxons temporaires des referenceTaxonIds (uniquement pour la partie format generique) new b2ea656 refs #6990 on conserve la map de translation des referenceTaxonId pour les taxons temporaires importes new b6e640f refs #6990 utilisation de la table de translation des referenceTaxonId lors de l'import du protocole new ed01b4f refs #6990 utilisation aussi de la translation via referenceTaxonId lors du reste de l'import new a87fc39 fixes #6990: [IMPORT GENERIQUE] Mauvaise gestion des espèces temporaires Merge branch 'feature/6990' into develop new e3a504b refs #6973 bien deselectionne le protocol avant sa suppression + supprimer ancien protocol, avant de repositionner un eventuel protocol selectionne avant import new e1e5ca2 refs #6973 Amélioration du code de nettoyage après import new b863962 fixes #6973: [IMPORT GENERIQUE] Le protocol n'est pas bien supprimé après une simple validation Merge branch 'feature/6973' into develop The 8 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 b8639625cfc23bd7b0cacb5b02c41ea80355c27e Merge: a87fc39 e1e5ca2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:19:58 2015 +0200 fixes #6973: [IMPORT GENERIQUE] Le protocol n'est pas bien supprimé après une simple validation Merge branch 'feature/6973' into develop commit e1e5ca2032255aafae5c62e3c6873d046d6db4a6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:19:56 2015 +0200 refs #6973 Amélioration du code de nettoyage après import commit e3a504b6aade8bb9944e14967152527036c502b3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:18:25 2015 +0200 refs #6973 bien deselectionne le protocol avant sa suppression + supprimer ancien protocol, avant de repositionner un eventuel protocol selectionne avant import commit a87fc399c8168606e19fed9ace4ab704fdb44912 Merge: 8f4f316 ed01b4f Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:03:24 2015 +0200 fixes #6990: [IMPORT GENERIQUE] Mauvaise gestion des espèces temporaires Merge branch 'feature/6990' into develop commit ed01b4fb5bfdcd55efec872e7c27361fcddb513e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:03:05 2015 +0200 refs #6990 utilisation aussi de la translation via referenceTaxonId lors du reste de l'import commit b6e640f00cd446b298da0e42c9b89a5bd9a0293d Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 08:45:01 2015 +0200 refs #6990 utilisation de la table de translation des referenceTaxonId lors de l'import du protocole commit b2ea656db75a1c727e0368d12fb36d3c4ace17a8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 08:44:18 2015 +0200 refs #6990 on conserve la map de translation des referenceTaxonId pour les taxons temporaires importes commit 68a81d58a9a969151edd02a1e1dd7f5635a1d698 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 08:42:41 2015 +0200 refs #6990 sauvegarde a l'import / export de taxons temporaires des referenceTaxonIds (uniquement pour la partie format generique) Summary of changes: .../entities/protocol/TuttiProtocols.java | 10 ++-- .../tutti/service/csv/SpeciesParserFormatter.java | 22 ++++++--- .../genericformat/GenericFormatContextSupport.java | 10 ++-- .../genericformat/GenericFormatExportContext.java | 2 +- .../GenericFormatImportEntityParserFactory.java | 2 +- .../GenericFormatReferentialImportResult.java | 6 +-- ...enericFormatReferentialSpeciesImportResult.java | 53 ++++++++++++++++++++++ .../importactions/ImportProtocolAction.java | 6 ++- .../ImportReferentialSpeciesAction.java | 10 +++- .../importactions/RestoreAfterImportAction.java | 35 ++++++++++---- .../importactions/RestoreAfterValidateAction.java | 3 ++ .../ReferentialTemporarySpeciesService.java | 4 +- .../consumer/CsvConsumerForTemporarySpecies.java | 4 +- .../service/referential/csv/SpeciesModel.java | 22 ++++++--- .../tutti/service/referential/csv/SpeciesRow.java | 14 ++++++ .../producer/CsvProducerForTemporarySpecies.java | 4 +- 16 files changed, 158 insertions(+), 49 deletions(-) create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialSpeciesImportResult.java -- 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 68a81d58a9a969151edd02a1e1dd7f5635a1d698 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 08:42:41 2015 +0200 refs #6990 sauvegarde a l'import / export de taxons temporaires des referenceTaxonIds (uniquement pour la partie format generique) --- .../ReferentialTemporarySpeciesService.java | 4 ++-- .../service/referential/csv/SpeciesModel.java | 22 +++++++++++++++------- .../tutti/service/referential/csv/SpeciesRow.java | 14 ++++++++++++++ .../producer/CsvProducerForTemporarySpecies.java | 4 ++-- 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporarySpeciesService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporarySpeciesService.java index a5f57a0..467b769 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporarySpeciesService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialTemporarySpeciesService.java @@ -84,7 +84,7 @@ public class ReferentialTemporarySpeciesService extends AbstractTuttiService { ReferentialImportRequest<Species, Integer> requestResult = createReferentialImportRequest(); - try (CsvConsumerForTemporarySpecies consumer = new CsvConsumerForTemporarySpecies(file.toPath(), getCsvSeparator(), true)) { + try (CsvConsumerForTemporarySpecies consumer = new CsvConsumerForTemporarySpecies(file.toPath(), getCsvSeparator(), false, true)) { for (ImportRow<SpeciesRow> bean : consumer) { @@ -190,7 +190,7 @@ public class ReferentialTemporarySpeciesService extends AbstractTuttiService { public void exportTemporarySpecies(File file, List<Species> toExport) throws IOException { - try (CsvProducerForTemporarySpecies producerForTemporarySpecies = new CsvProducerForTemporarySpecies(file.toPath(), getCsvSeparator())) { + try (CsvProducerForTemporarySpecies producerForTemporarySpecies = new CsvProducerForTemporarySpecies(file.toPath(), getCsvSeparator(), false)) { List<SpeciesRow> dataToExport = producerForTemporarySpecies.getDataToExport(toExport); producerForTemporarySpecies.write(dataToExport); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesModel.java index 6114fc4..5beccdc 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesModel.java @@ -37,18 +37,18 @@ import static org.nuiton.i18n.I18n.t; */ public class SpeciesModel extends AbstractTuttiImportExportModel<SpeciesRow> { - public static SpeciesModel forExport(char separator) { + public static SpeciesModel forExport(char separator, boolean addReferenceTaxonId) { SpeciesModel exportModel = new SpeciesModel(separator); - exportModel.forExport(); + exportModel.forExport(addReferenceTaxonId); return exportModel; } - public static SpeciesModel forImport(char separator) { + public static SpeciesModel forImport(char separator, boolean addReferenceTaxonId) { SpeciesModel importModel = new SpeciesModel(separator); - importModel.forImport(); + importModel.forImport(addReferenceTaxonId); return importModel; } @@ -58,10 +58,10 @@ public class SpeciesModel extends AbstractTuttiImportExportModel<SpeciesRow> { return new SpeciesRow(); } - protected void forImport() { + protected void forImport(boolean addReferenceTaxonId) { newMandatoryColumn(SpeciesRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser( - t("tutti.service.referential.import.species.error.idNotNegative")){ + t("tutti.service.referential.import.species.error.idNotNegative")) { @Override protected boolean isTemporaryId(String parse) { @@ -72,14 +72,22 @@ public class SpeciesModel extends AbstractTuttiImportExportModel<SpeciesRow> { newMandatoryColumn(SpeciesRow.PROPERTY_NAME); newMandatoryColumn(SpeciesRow.PROPERTY_TO_DELETE, TuttiCsvUtil.BOOLEAN); + if (addReferenceTaxonId) { + newMandatoryColumn(SpeciesRow.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.INTEGER); + } + } - protected void forExport() { + protected void forExport(boolean addReferenceTaxonId) { newColumnForExport(SpeciesRow.PROPERTY_ID); newColumnForExport(SpeciesRow.PROPERTY_NAME); newColumnForExport(SpeciesRow.PROPERTY_TO_DELETE); + if (addReferenceTaxonId) { + newColumnForExport(SpeciesRow.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.INTEGER); + } + } protected SpeciesModel(char separator) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesRow.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesRow.java index 88aef6a..b9ce585 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesRow.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/SpeciesRow.java @@ -36,12 +36,16 @@ public class SpeciesRow { public static final String PROPERTY_ID = "id"; + public static final String PROPERTY_REFERENCE_TAXON_ID = "referenceTaxonId"; + public static final String PROPERTY_NAME = "name"; public static final String PROPERTY_TO_DELETE = "toDelete"; protected String id; + protected Integer referenceTaxonId; + protected String name; protected Boolean toDelete; @@ -54,6 +58,8 @@ public class SpeciesRow { super(); Preconditions.checkNotNull(species); setId(species.getId()); + setReferenceTaxonId(species.getReferenceTaxonId()); + setName(species.getName()); } @@ -65,6 +71,14 @@ public class SpeciesRow { this.id = id; } + public Integer getReferenceTaxonId() { + return referenceTaxonId; + } + + public void setReferenceTaxonId(Integer referenceTaxonId) { + this.referenceTaxonId = referenceTaxonId; + } + public String getName() { return name; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/producer/CsvProducerForTemporarySpecies.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/producer/CsvProducerForTemporarySpecies.java index 0c94be7..ef1e262 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/producer/CsvProducerForTemporarySpecies.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/producer/CsvProducerForTemporarySpecies.java @@ -42,8 +42,8 @@ import java.util.List; */ public class CsvProducerForTemporarySpecies extends CsvProducer<SpeciesRow, SpeciesModel> { - public CsvProducerForTemporarySpecies(Path file, char separator) { - super(file, SpeciesModel.forExport(separator)); + public CsvProducerForTemporarySpecies(Path file, char separator, boolean addReferenceTaxonId) { + super(file, SpeciesModel.forExport(separator, addReferenceTaxonId)); } public List<SpeciesRow> getDataToExport(List<Species> toExport) { -- 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 b2ea656db75a1c727e0368d12fb36d3c4ace17a8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 08:44:18 2015 +0200 refs #6990 on conserve la map de translation des referenceTaxonId pour les taxons temporaires importes --- .../genericformat/GenericFormatContextSupport.java | 10 ++-- .../genericformat/GenericFormatExportContext.java | 2 +- .../GenericFormatReferentialImportResult.java | 4 +- ...enericFormatReferentialSpeciesImportResult.java | 53 ++++++++++++++++++++++ .../ImportReferentialSpeciesAction.java | 10 +++- .../consumer/CsvConsumerForTemporarySpecies.java | 4 +- 6 files changed, 71 insertions(+), 12 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatContextSupport.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatContextSupport.java index ed2493b..63fb3e8 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatContextSupport.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatContextSupport.java @@ -41,7 +41,6 @@ import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; -import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity; import fr.ifremer.tutti.persistence.entities.referential.Vessel; import fr.ifremer.tutti.persistence.model.CruiseDataModel; @@ -113,7 +112,7 @@ public abstract class GenericFormatContextSupport implements Closeable, Iterable private final GenericFormatReferentialImportResult<Person, Integer> referentialTemporaryPersonFileResult; - private final GenericFormatReferentialImportResult<Species, Integer> referentialTemporarySpeciesFileResult; + private final GenericFormatReferentialSpeciesImportResult referentialTemporarySpeciesFileResult; private final GenericFormatReferentialImportResult<Vessel, String> referentialTemporaryVesselFileResult; @@ -174,8 +173,9 @@ public abstract class GenericFormatContextSupport implements Closeable, Iterable this.referentialTemporaryGearFileResult = createReferentialFileResult(archive.getTemporaryReferentialGearsPath()); this.referentialTemporaryPersonFileResult = createReferentialFileResult(archive.getTemporaryReferentialPersonsPath()); - this.referentialTemporarySpeciesFileResult = createReferentialFileResult(archive.getTemporaryReferentialSpeciesPath()); this.referentialTemporaryVesselFileResult = createReferentialFileResult(archive.getTemporaryReferentialVesselsPath()); + File file = archive.getTemporaryReferentialSpeciesPath().toFile(); + this.referentialTemporarySpeciesFileResult = new GenericFormatReferentialSpeciesImportResult(file.getName(), file.exists()); this.protocolFileResult = createFileResult(archive.getProtocolPath(), false); this.surveyFileResult = createFileResult(archive.getSurveyPath(), true); @@ -240,7 +240,7 @@ public abstract class GenericFormatContextSupport implements Closeable, Iterable return referentialTemporaryPersonFileResult; } - public GenericFormatReferentialImportResult<Species, Integer> getReferentialTemporarySpeciesFileResult() { + public GenericFormatReferentialSpeciesImportResult getReferentialTemporarySpeciesFileResult() { return referentialTemporarySpeciesFileResult; } @@ -460,7 +460,7 @@ public abstract class GenericFormatContextSupport implements Closeable, Iterable public CsvConsumerForTemporarySpecies loadTemporarySpecies(boolean failFast) { referentialTemporarySpeciesFileResult.setImported(true); referentialTemporarySpeciesFileResult.setLinesCount(importRequest.getArchive().getTemporaryReferentialSpeciesLineCount()); - CsvConsumerForTemporarySpecies consumer = new CsvConsumerForTemporarySpecies(importRequest.getArchive().getTemporaryReferentialSpeciesPath(), importRequest.getCsvSeparator(), failFast); + CsvConsumerForTemporarySpecies consumer = new CsvConsumerForTemporarySpecies(importRequest.getArchive().getTemporaryReferentialSpeciesPath(), importRequest.getCsvSeparator(), true, failFast); return consumer; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java index 1db7b3e..c608748 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportContext.java @@ -181,7 +181,7 @@ public class GenericFormatExportContext implements Closeable, Iterable<GenericFo this.producerForTemporaryGear = new CsvProducerForTemporaryGear(archive.getTemporaryReferentialGearsPath(), csvSeparator); this.producerForTemporaryPerson = new CsvProducerForTemporaryPerson(archive.getTemporaryReferentialPersonsPath(), csvSeparator); - this.producerForTemporarySpecies = new CsvProducerForTemporarySpecies(archive.getTemporaryReferentialSpeciesPath(), csvSeparator); + this.producerForTemporarySpecies = new CsvProducerForTemporarySpecies(archive.getTemporaryReferentialSpeciesPath(), csvSeparator, true); this.producerForTemporaryVessel = new CsvProducerForTemporaryVessel(archive.getTemporaryReferentialVesselsPath(), csvSeparator); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialImportResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialImportResult.java index d7f86f2..3ca3317 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialImportResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialImportResult.java @@ -48,9 +48,9 @@ public class GenericFormatReferentialImportResult<E extends TuttiReferentialEnti private static final long serialVersionUID = 1L; - private Map<String, E> entitiesAdded; + protected Map<String, E> entitiesAdded; - private Map<String, E> entitiesLinked; + protected Map<String, E> entitiesLinked; private Map<String, String> idTranslationMap; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialSpeciesImportResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialSpeciesImportResult.java new file mode 100644 index 0000000..fb32101 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialSpeciesImportResult.java @@ -0,0 +1,53 @@ +package fr.ifremer.tutti.service.genericformat; + +import fr.ifremer.tutti.persistence.entities.referential.Species; + +import java.util.Collections; +import java.util.Map; +import java.util.TreeMap; + +/** + * Created on 4/17/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0-RC3 + */ +public class GenericFormatReferentialSpeciesImportResult extends GenericFormatReferentialImportResult<Species, Integer> { + + private static final long serialVersionUID = 1L; + + private Map<Integer, Integer> referenceTaxonIdTranslationMap; + + public GenericFormatReferentialSpeciesImportResult(String filename, boolean found) { + super(filename, found); + this.referenceTaxonIdTranslationMap = new TreeMap<>(); + } + + public Map<Integer, Integer> getReferenceTaxonIdTranslationMap() { + return referenceTaxonIdTranslationMap; + } + + public void flushReferenceTaxonIds(Map<Integer, Integer> referenceTaxonIdById) { + + Map<Integer, Integer> referenceTaxonIdMap = new TreeMap<>(); + + for (Map.Entry<Integer, Integer> entry : referenceTaxonIdById.entrySet()) { + Integer oldId = entry.getKey(); + String originalId = String.valueOf(oldId); + Species species = entitiesAdded.get(originalId); + if (species == null) { + species = entitiesLinked.get(originalId); + } + Integer newReferenceTaxonId = species.getReferenceTaxonId(); + + Integer oldReferenceTaxonId = entry.getValue(); + + referenceTaxonIdMap.put(oldReferenceTaxonId, newReferenceTaxonId); + + } + + referenceTaxonIdTranslationMap = Collections.unmodifiableMap(referenceTaxonIdMap); + + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportReferentialSpeciesAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportReferentialSpeciesAction.java index 0de96d8..2a57367 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportReferentialSpeciesAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportReferentialSpeciesAction.java @@ -26,7 +26,7 @@ package fr.ifremer.tutti.service.genericformat.importactions; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.genericformat.GenericFormatContextSupport; -import fr.ifremer.tutti.service.genericformat.GenericFormatReferentialImportResult; +import fr.ifremer.tutti.service.genericformat.GenericFormatReferentialSpeciesImportResult; import fr.ifremer.tutti.service.genericformat.GenericformatImportPersistenceHelper; import fr.ifremer.tutti.service.referential.ReferentialImportRequest; import fr.ifremer.tutti.service.referential.ReferentialImportResult; @@ -39,6 +39,8 @@ import org.nuiton.csv.ImportRuntimeException; import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.IOException; +import java.util.Map; +import java.util.TreeMap; import static org.nuiton.i18n.I18n.t; @@ -86,10 +88,13 @@ public class ImportReferentialSpeciesAction extends ImportActionSupport { ReferentialImportRequest<Species, Integer> referentialImportRequest = persistenceHelper.createSpeciesImportRequest(); - GenericFormatReferentialImportResult<Species, Integer> importFileResult = importContext.getReferentialTemporarySpeciesFileResult(); + Map<Integer, Integer> referenceTaxonIdById = new TreeMap<>(); + + GenericFormatReferentialSpeciesImportResult importFileResult = importContext.getReferentialTemporarySpeciesFileResult(); try (CsvConsumerForTemporarySpecies consumer = importContext.loadTemporarySpecies(false)) { for (ImportRow<SpeciesRow> row : consumer) { consumer.checkRowForGenericFormatImport(row, referentialImportRequest); + referenceTaxonIdById.put(row.getBean().getIdAsInt(), row.getBean().getReferenceTaxonId()); } importFileResult.flushErrors(consumer); @@ -106,6 +111,7 @@ public class ImportReferentialSpeciesAction extends ImportActionSupport { ReferentialImportResult<Species> referentialImportResult = persistenceHelper.importSpecies(referentialImportRequest); importFileResult.flushResult(referentialImportRequest, referentialImportResult); + importFileResult.flushReferenceTaxonIds(referenceTaxonIdById); if (log.isInfoEnabled()) { log.info("Temporary species import result: " + importFileResult.getReport()); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporarySpecies.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporarySpecies.java index 29b9ee8..d40605e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporarySpecies.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/consumer/CsvConsumerForTemporarySpecies.java @@ -54,8 +54,8 @@ public class CsvConsumerForTemporarySpecies extends CsvComsumer<SpeciesRow, Spec /** Logger. */ private static final Log log = LogFactory.getLog(CsvConsumerForTemporarySpecies.class); - public CsvConsumerForTemporarySpecies(Path file, char separator, boolean reportError) { - super(file, SpeciesModel.forImport(separator), reportError); + public CsvConsumerForTemporarySpecies(Path file, char separator, boolean addReferenceTaxonId, boolean reportError) { + super(file, SpeciesModel.forImport(separator, addReferenceTaxonId), reportError); } public void checkRow(ImportRow<SpeciesRow> row, -- 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 b6e640f00cd446b298da0e42c9b89a5bd9a0293d Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 08:45:01 2015 +0200 refs #6990 utilisation de la table de translation des referenceTaxonId lors de l'import du protocole --- .../tutti/persistence/entities/protocol/TuttiProtocols.java | 10 ++++------ .../genericformat/importactions/ImportProtocolAction.java | 6 ++++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java index 870953b..540d59c 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java @@ -151,7 +151,7 @@ public class TuttiProtocols extends AbstractTuttiProtocols { return result; } - public static void translateReferenceTaxonIds(TuttiProtocol result, Map<String, String> idTranslationMap) { + public static void translateReferenceTaxonIds(TuttiProtocol result, Map<Integer, Integer> idTranslationMap) { List<SpeciesProtocol> species = result.getSpecies(); translateReferenceTaxonIds(species, idTranslationMap); @@ -161,15 +161,13 @@ public class TuttiProtocols extends AbstractTuttiProtocols { } - protected static void translateReferenceTaxonIds(List<SpeciesProtocol> species, Map<String, String> idTranslationMap) { + protected static void translateReferenceTaxonIds(List<SpeciesProtocol> species, Map<Integer, Integer> idTranslationMap) { for (SpeciesProtocol speciesProtocol : species) { Integer speciesReferenceTaxonId = speciesProtocol.getSpeciesReferenceTaxonId(); - String id = String.valueOf(speciesReferenceTaxonId); - if (idTranslationMap.containsKey(id)) { + if (idTranslationMap.containsKey(speciesReferenceTaxonId)) { - String newId = idTranslationMap.get(id); - Integer newSpeciesReferenceTaxonId = Integer.valueOf(newId); + Integer newSpeciesReferenceTaxonId = idTranslationMap.get(speciesReferenceTaxonId); speciesProtocol.setSpeciesReferenceTaxonId(newSpeciesReferenceTaxonId); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportProtocolAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportProtocolAction.java index 2ff1643..8cddeb3 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportProtocolAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/ImportProtocolAction.java @@ -90,8 +90,10 @@ public class ImportProtocolAction extends ImportActionSupport { TuttiProtocol tuttiProtocol = persistenceHelper.importProtocol(archive.getProtocolPath().toFile()); - Map<String, String> idTranslationMap = importContext.getReferentialTemporarySpeciesFileResult().getIdTranslationMap(); - TuttiProtocols.translateReferenceTaxonIds(tuttiProtocol, idTranslationMap); + // get id translations + Map<Integer, Integer> referenceTaxonIdMap = importContext.getReferentialTemporarySpeciesFileResult().getReferenceTaxonIdTranslationMap(); + + TuttiProtocols.translateReferenceTaxonIds(tuttiProtocol, referenceTaxonIdMap); String protocolOriginalName = tuttiProtocol.getName(); -- 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 ed01b4fb5bfdcd55efec872e7c27361fcddb513e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:03:05 2015 +0200 refs #6990 utilisation aussi de la translation via referenceTaxonId lors du reste de l'import --- .../tutti/service/csv/SpeciesParserFormatter.java | 22 +++++++++++++++------- .../GenericFormatImportEntityParserFactory.java | 2 +- .../GenericFormatReferentialImportResult.java | 2 +- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesParserFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesParserFormatter.java index fe4de4f..3224d4d 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesParserFormatter.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesParserFormatter.java @@ -27,6 +27,7 @@ package fr.ifremer.tutti.service.csv; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.PersistenceService; +import org.nuiton.csv.ImportRuntimeException; import java.util.List; import java.util.Map; @@ -47,18 +48,18 @@ public class SpeciesParserFormatter extends EntityParserFormatterSupport<Species return new SpeciesParserFormatter(true, null, null); } - public static SpeciesParserFormatter newParser(PersistenceService persistenceService, Map<String, String> idTranslationMap) { - return new SpeciesParserFormatter(true, persistenceService, idTranslationMap); + public static SpeciesParserFormatter newParser(PersistenceService persistenceService, Map<Integer, Integer> referenceTaxonIdTranslationMap) { + return new SpeciesParserFormatter(true, persistenceService, referenceTaxonIdTranslationMap); } private final PersistenceService persistenceService; - private final Map<String, String> idTranslationMap; + private final Map<Integer, Integer> referenceTaxonIdTranslationMap; - protected SpeciesParserFormatter(boolean technical, PersistenceService persistenceService, Map<String, String> idTranslationMap) { + protected SpeciesParserFormatter(boolean technical, PersistenceService persistenceService, Map<Integer, Integer> referenceTaxonIdTranslationMap) { super("", technical, Species.class); this.persistenceService = persistenceService; - this.idTranslationMap = idTranslationMap; + this.referenceTaxonIdTranslationMap = referenceTaxonIdTranslationMap; } @Override @@ -89,8 +90,15 @@ public class SpeciesParserFormatter extends EntityParserFormatterSupport<Species @Override protected Species parseNotBlankValue(String value) { - if (idTranslationMap.containsKey(value)) { - value = idTranslationMap.get(value); + Integer referenceTaxonId; + try { + referenceTaxonId = Integer.valueOf(value); + } catch (NumberFormatException e) { + throw new ImportRuntimeException("Le format du Code taxon n'est pas valide, cela devrait être un entier: " + value); + } + + if (referenceTaxonIdTranslationMap.containsKey(referenceTaxonId)) { + value = String.valueOf(referenceTaxonIdTranslationMap.get(referenceTaxonId)); } return super.parseNotBlankValue(value); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportEntityParserFactory.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportEntityParserFactory.java index e07d9b5..f798dda 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportEntityParserFactory.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportEntityParserFactory.java @@ -196,7 +196,7 @@ public class GenericFormatImportEntityParserFactory { public SpeciesParserFormatter getSpeciesParser() { if (speciesParser == null) { - speciesParser = SpeciesParserFormatter.newParser(persistenceService, importContext.getReferentialTemporarySpeciesFileResult().getIdTranslationMap()); + speciesParser = SpeciesParserFormatter.newParser(persistenceService, importContext.getReferentialTemporarySpeciesFileResult().getReferenceTaxonIdTranslationMap()); } return speciesParser; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialImportResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialImportResult.java index 3ca3317..ef42a8e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialImportResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatReferentialImportResult.java @@ -160,7 +160,7 @@ public class GenericFormatReferentialImportResult<E extends TuttiReferentialEnti for (Map.Entry<String, String> entry : idTranslationMap.entrySet()) { String originalId = entry.getKey(); String targetId = entry.getValue(); - if (map.containsKey(targetId)) { + if (map.containsKey(originalId)) { list.add(String.format("original id: %s -> persist id: %s", originalId, targetId)); } -- 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 a87fc399c8168606e19fed9ace4ab704fdb44912 Merge: 8f4f316 ed01b4f Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:03:24 2015 +0200 fixes #6990: [IMPORT GENERIQUE] Mauvaise gestion des espèces temporaires Merge branch 'feature/6990' into develop .../entities/protocol/TuttiProtocols.java | 10 ++-- .../tutti/service/csv/SpeciesParserFormatter.java | 22 ++++++--- .../genericformat/GenericFormatContextSupport.java | 10 ++-- .../genericformat/GenericFormatExportContext.java | 2 +- .../GenericFormatImportEntityParserFactory.java | 2 +- .../GenericFormatReferentialImportResult.java | 6 +-- ...enericFormatReferentialSpeciesImportResult.java | 53 ++++++++++++++++++++++ .../importactions/ImportProtocolAction.java | 6 ++- .../ImportReferentialSpeciesAction.java | 10 +++- .../ReferentialTemporarySpeciesService.java | 4 +- .../consumer/CsvConsumerForTemporarySpecies.java | 4 +- .../service/referential/csv/SpeciesModel.java | 22 ++++++--- .../tutti/service/referential/csv/SpeciesRow.java | 14 ++++++ .../producer/CsvProducerForTemporarySpecies.java | 4 +- 14 files changed, 129 insertions(+), 40 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 e3a504b6aade8bb9944e14967152527036c502b3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:18:25 2015 +0200 refs #6973 bien deselectionne le protocol avant sa suppression + supprimer ancien protocol, avant de repositionner un eventuel protocol selectionne avant import --- .../genericformat/importactions/RestoreAfterValidateAction.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/RestoreAfterValidateAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/RestoreAfterValidateAction.java index 32fc547..ff8205c 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/RestoreAfterValidateAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/RestoreAfterValidateAction.java @@ -80,12 +80,14 @@ public class RestoreAfterValidateAction extends ImportActionSupport { actions.add(new Runnable() { @Override public void run() { + // clean imported protocol rollbackProtocol(); } }); actions.add(new Runnable() { @Override public void run() { + // push back if any previous protocol rollbackPreviousProtocol(importContext.getImportRequest()); } }); @@ -159,6 +161,7 @@ public class RestoreAfterValidateAction extends ImportActionSupport { if (log.isInfoEnabled()) { log.info("Delete imported protocol: " + importedProtocol); } + persistenceService.setProtocol(null); persistenceService.deleteProtocol(importedProtocol.getId()); } -- 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 e1e5ca2032255aafae5c62e3c6873d046d6db4a6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:19:56 2015 +0200 refs #6973 Amélioration du code de nettoyage après import --- .../importactions/RestoreAfterImportAction.java | 35 ++++++++++++++++------ 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/RestoreAfterImportAction.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/RestoreAfterImportAction.java index 8cbf95c..8f41ae1 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/RestoreAfterImportAction.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/importactions/RestoreAfterImportAction.java @@ -32,6 +32,9 @@ import fr.ifremer.tutti.service.genericformat.GenericFormatImportRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.util.HashSet; +import java.util.Set; + /** * Created on 3/25/15. * @@ -57,15 +60,29 @@ public class RestoreAfterImportAction extends ImportActionSupport { @Override protected void doExecute() { - - GenericFormatImportRequest importRequest = importContext.getImportRequest(); - - try { - rollbackSampleCategoryModel(importRequest); - } finally { - - rollbackProtocol(importRequest); - + + Set<Runnable> actions = new HashSet<>(); + actions.add(new Runnable() { + @Override + public void run() { + rollbackSampleCategoryModel(importContext.getImportRequest()); + } + }); + actions.add(new Runnable() { + @Override + public void run() { + rollbackProtocol(importContext.getImportRequest()); + } + }); + + for (Runnable action : actions) { + try { + action.run(); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Could not execute rollback action", e); + } + } } } -- 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 b8639625cfc23bd7b0cacb5b02c41ea80355c27e Merge: a87fc39 e1e5ca2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 18 10:19:58 2015 +0200 fixes #6973: [IMPORT GENERIQUE] Le protocol n'est pas bien supprimé après une simple validation Merge branch 'feature/6973' into develop .../importactions/RestoreAfterImportAction.java | 35 ++++++++++++++++------ .../importactions/RestoreAfterValidateAction.java | 3 ++ 2 files changed, 29 insertions(+), 9 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm