branch feature/7846_import_generique_avec_taxons_referents_obsoletes created (now be5a541)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7846_import_generique_avec_taxons_referents_obsoletes in repository tutti. See http://git.codelutin.com/tutti.git at be5a541 Utilisation du dictionnaire des referents taxons obsolète lors d'un import générique (See #7846) This branch includes the following new commits: new 3793e24 Ajout d'une méthode sur le service de persistence pour récupérer le dictionnaire des referent taxon obsolètes (+ ajout d'un nouveau cache) new be5a541 Utilisation du dictionnaire des referents taxons obsolète lors d'un import générique (See #7846) The 2 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 be5a5414b7705d5ebb56d5bd7c038893d55b6c38 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 23 17:46:16 2015 +0100 Utilisation du dictionnaire des referents taxons obsolète lors d'un import générique (See #7846) commit 3793e24d62acda2aab8a8e4e7cc9a26d8bb8ec52 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 23 17:45:47 2015 +0100 Ajout d'une méthode sur le service de persistence pour récupérer le dictionnaire des referent taxon obsolètes (+ ajout d'un nouveau cache) -- 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 feature/7846_import_generique_avec_taxons_referents_obsoletes in repository tutti. See http://git.codelutin.com/tutti.git commit 3793e24d62acda2aab8a8e4e7cc9a26d8bb8ec52 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 23 17:45:47 2015 +0100 Ajout d'une méthode sur le service de persistence pour récupérer le dictionnaire des referent taxon obsolètes (+ ajout d'un nouveau cache) --- .../tutti/persistence/TuttiPersistenceImpl.java | 5 +++ .../persistence/TuttiPersistenceNoDbImpl.java | 6 +++ .../service/ProtocolPersistenceServiceImpl.java | 1 + .../service/ReferentialPersistenceService.java | 8 ++-- .../referential/SpeciesPersistenceService.java | 18 +++++--- .../referential/SpeciesPersistenceServiceImpl.java | 51 ++++++++++++++++++++-- .../resources/applicationContext-service-tutti.xml | 4 ++ .../ifremer/tutti/service/PersistenceService.java | 6 ++- 8 files changed, 86 insertions(+), 13 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java index 7785bbd..8951e86 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java @@ -625,6 +625,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + return getSpeciesService().getAllObsoleteReferentTaxons(); + } + + @Override public boolean isTemporarySpeciesUsed(Integer referenceTaxonId) { TuttiProtocol protocol = getProtocol(); diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java index f818246..2012d08 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java @@ -57,6 +57,7 @@ import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.concurrent.Callable; /** @@ -407,6 +408,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + @Override + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + throw notImplemented(); + } + //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java index ca7bdc2..d2f8b88 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java @@ -78,6 +78,7 @@ public class ProtocolPersistenceServiceImpl extends AbstractPersistenceService i cacheService.clearCache("referentSpecies"); cacheService.clearCache("referentSpeciesById"); cacheService.clearCache("referentSpeciesByIdVernacular"); + cacheService.clearCache("obsoleteReferentTaxons"); } catch (Exception e) { //FIXME This diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java index 0ff41b0..526b910 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java @@ -283,7 +283,7 @@ public interface ReferentialPersistenceService extends TuttiPersistenceServiceIm * @since 1.0 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) List<Species> importTemporarySpecies(List<Species> species); /** @@ -340,7 +340,7 @@ public interface ReferentialPersistenceService extends TuttiPersistenceServiceIm */ @Transactional(readOnly = false) @CacheEvict(value = {"fr.ifremer.adagio.core.dao.data.batch.CatchBatchCache", - "species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, + "species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void replaceSpecies(Species source, Species target, boolean delete); @@ -402,7 +402,7 @@ public interface ReferentialPersistenceService extends TuttiPersistenceServiceIm * @since 3.8 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void deleteTemporarySpecies(Integer id, boolean checkIfUsed); /** @@ -413,7 +413,7 @@ public interface ReferentialPersistenceService extends TuttiPersistenceServiceIm * @since 3.8 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void deleteTemporarySpecies(Collection<Integer> ids, boolean checkIfUsed); /** diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceService.java index 3cd3750..ead0ece 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceService.java @@ -32,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Collection; import java.util.List; +import java.util.Map; /** * Created on 11/3/14. @@ -84,6 +85,13 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem Species getSpeciesByReferenceTaxonIdWithVernacularCode(Integer referenceTaxonId); /** + * @return the dictionnary of obsolete referent taxon (key: old id, value : new id) + * @since 4.2 + */ + @Cacheable(value = "obsoleteReferentTaxons") + Map<Integer, Integer> getAllObsoleteReferentTaxons(); + + /** * Check if the temporary species with the given {@code referenceTaxonId} is used. * * @param referenceTaxonId referenceTaxonId of the species to check @@ -99,7 +107,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem * @since 3.14 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) List<Species> addTemporarySpecies(List<Species> species); /** @@ -110,7 +118,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem * @since 3.14 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) List<Species> updateTemporarySpecies(List<Species> species); /** @@ -133,7 +141,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem */ @Transactional(readOnly = false) @CacheEvict(value = {"fr.ifremer.adagio.core.dao.data.batch.CatchBatchCache", - "species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, + "species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void replaceSpecies(Species source, Species target, boolean delete); @@ -144,7 +152,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem * @since 3.8 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void deleteTemporarySpecies(Collection<Integer> referenceTaxonIds); /** @@ -154,7 +162,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem * @since 3.8 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void deleteTemporarySpecies(Integer referenceTaxonId); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java index e747ed9..a432cdf 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java @@ -26,16 +26,20 @@ package fr.ifremer.tutti.persistence.service.referential; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonDao; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonName; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameExtendDao; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameImpl; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefVO; +import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemType; +import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemTypeDao; import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemTypeId; import fr.ifremer.adagio.core.dao.technical.hibernate.TemporaryDataHelper; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.Speciess; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hibernate.Query; import org.hibernate.type.IntegerType; import org.hibernate.type.StringType; import org.nuiton.jaxx.application.ApplicationBusinessException; @@ -47,6 +51,8 @@ import javax.annotation.Resource; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.TreeMap; /** * Created on 11/3/14. @@ -57,11 +63,16 @@ import java.util.List; @Service("speciesPersistenceService") public class SpeciesPersistenceServiceImpl extends ReferentialPersistenceServiceSupport implements SpeciesPersistenceService { + /** Logger. */ + private static final Log log = LogFactory.getLog(SpeciesPersistenceServiceImpl.class); + + public static final String TAXINOMIE_COMMUN_REFERENCE_HISTORY = "TAXINOMIE-COMMUN.REFERENCE_HISTORY"; + @Resource(name = "taxonNameDao") protected TaxonNameExtendDao taxonNameDao; - @Resource(name = "referenceTaxonDao") - protected ReferenceTaxonDao referenceTaxonDao; + @Resource(name = "transcribingItemTypeDao") + protected TranscribingItemTypeDao transcribingItemTypeDao; @Override public List<Species> getAllSpecies() { @@ -152,6 +163,40 @@ public class SpeciesPersistenceServiceImpl extends ReferentialPersistenceService } + @Override + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + + TranscribingItemType transcribingItemType = transcribingItemTypeDao.searchUniqueLabel(TAXINOMIE_COMMUN_REFERENCE_HISTORY); + + Map<Integer, Integer> result = new TreeMap<>(); + + if (transcribingItemType == null) { + + if (log.isWarnEnabled()) { + log.warn("Could not find transcribing item type with label: '" + TAXINOMIE_COMMUN_REFERENCE_HISTORY + "'"); + } + + } else { + + Query query = createQuery("allTranscribingForAType", "transcribingTypeId", IntegerType.INSTANCE, transcribingItemType.getId()); + + for (Object o : query.list()) { + Object[] cols = (Object[]) o; + Integer referencetaxonId = (Integer) cols[0]; + String externalCode = (String) cols[1]; + result.put(Integer.valueOf(externalCode), referencetaxonId); + } + + if (log.isInfoEnabled()) { + log.info("Loaded allObsoleteReferentTaxons : " + result.keySet()); + } + + } + + return result; + + } + protected Species getSpeciesByReferenceTaxonId(Integer referenceTaxonId, Integer transcribingTypeId) { diff --git a/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml b/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml index 29352ce..76a1206 100644 --- a/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml +++ b/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml @@ -100,6 +100,10 @@ <bean id="tuttiReferentSpeciesByIdVenacularCache" parent="abstractEternalCache"> <property name="cacheName" value="referentSpeciesByIdVernacular" /> </bean> + + <bean id="tuttiObsoleteReferentTaxonsCache" parent="abstractEternalCache"> + <property name="cacheName" value="obsoleteReferentTaxons" /> + </bean> <bean id="tuttiGearsCache" parent="abstractEternalCache"> <property name="cacheName" value="gears" /> diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index e6ea9c2..b3b66aa 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -163,7 +163,6 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer return sourceList; } - public interface FrequencyFunction<S extends SpeciesAbleBatch, F extends SpeciesAbleBatchFrequency> extends Function<S, List<F>> { } @@ -671,6 +670,11 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + return driver.getAllObsoleteReferentTaxons(); + } + + @Override public List<Caracteristic> getAllCaracteristic() { return driver.getAllCaracteristic(); } -- 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 feature/7846_import_generique_avec_taxons_referents_obsoletes in repository tutti. See http://git.codelutin.com/tutti.git commit be5a5414b7705d5ebb56d5bd7c038893d55b6c38 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 23 17:46:16 2015 +0100 Utilisation du dictionnaire des referents taxons obsolète lors d'un import générique (See #7846) --- .../GenericFormatReferentialSpeciesImportResult.java | 19 +++++++++++++++++-- .../GenericformatImportPersistenceHelper.java | 5 +++++ .../importactions/ImportReferentialSpeciesAction.java | 4 ++++ 3 files changed, 26 insertions(+), 2 deletions(-) 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 index 0856ea5..fe0b3d2 100644 --- 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 @@ -62,9 +62,24 @@ public class GenericFormatReferentialSpeciesImportResult extends GenericFormatRe if (species == null) { species = entitiesLinked.get(originalId); } - Integer newReferenceTaxonId = species.getReferenceTaxonId(); - Integer oldReferenceTaxonId = entry.getValue(); + Integer newReferenceTaxonId; + Integer oldReferenceTaxonId; + if (species==null) { + + // il s'agit d'un taxon qui vient des referents taxon obsoletes + // et qui n'a pas été importé + + oldReferenceTaxonId = oldId; + newReferenceTaxonId = entry.getValue(); + + } else { + + // il s'agit d'un taxon importé, on effectue la correspondance + oldReferenceTaxonId = entry.getValue(); + newReferenceTaxonId = species.getReferenceTaxonId(); + } + referenceTaxonIdMap.put(oldReferenceTaxonId, newReferenceTaxonId); 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 c64408c..7dbbc93 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 @@ -59,6 +59,7 @@ import org.apache.commons.collections4.CollectionUtils; import java.io.File; import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -284,4 +285,8 @@ public class GenericformatImportPersistenceHelper { public String getProtocolFirstAvailableName(String protocolOriginalName) { return persistenceService.getFirstAvailableName(protocolOriginalName); } + + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + return persistenceService.getAllObsoleteReferentTaxons(); + } } 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 2a57367..2ec40fe 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 @@ -111,6 +111,10 @@ public class ImportReferentialSpeciesAction extends ImportActionSupport { ReferentialImportResult<Species> referentialImportResult = persistenceHelper.importSpecies(referentialImportRequest); importFileResult.flushResult(referentialImportRequest, referentialImportResult); + + // On ajoute aussi le dictionnaire de taxons référents obsolètes + referenceTaxonIdById.putAll(persistenceHelper.getAllObsoleteReferentTaxons()); + importFileResult.flushReferenceTaxonIds(referenceTaxonIdById); if (log.isInfoEnabled()) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm