RefCommunSequencesUpdateStepConfig.java

  1. package com.sintia.ffl.admin.optique.services.batch.refcommun.load;

  2. import com.sintia.ffl.admin.staging.FileUtils;
  3. import com.sintia.ffl.admin.staging.sequences.IntegerSequence;
  4. import com.sintia.ffl.admin.staging.step.imports.sequences.SequenceCommunImportStepConfig;
  5. import com.sintia.ffl.adminui.commons.enums.TypeStaging;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.batch.core.Step;
  8. import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
  9. import org.springframework.batch.core.configuration.annotation.StepScope;
  10. import org.springframework.batch.item.support.AbstractItemStreamItemReader;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.context.annotation.Bean;
  13. import org.springframework.context.annotation.Configuration;
  14. import org.springframework.core.task.AsyncTaskExecutor;

  15. import javax.sql.DataSource;
  16. import java.io.IOException;
  17. import java.util.Set;

  18. @Slf4j
  19. @Configuration
  20. public class RefCommunSequencesUpdateStepConfig extends SequenceCommunImportStepConfig {

  21.     public RefCommunSequencesUpdateStepConfig(){
  22.         super(
  23.                 TypeStaging.REF_COMMUN
  24.         );
  25.     }

  26.     @Bean
  27.     public Step refCommunSequencesUpdateStep(
  28.             StepBuilderFactory stepBuilderFactory,
  29.             FileUtils fileUtils,
  30.             DataSource dataSource,
  31.             AsyncTaskExecutor asyncExecutor
  32.     ) throws IOException {
  33.         return super.buildStep(
  34.                 stepBuilderFactory,
  35.                 fileUtils,
  36.                 asyncExecutor,
  37.                 dataSource,
  38.                 Set.of(
  39.                         "autre_taux_ro_id_taux_ro_seq",
  40.                         "classe_id_classe_seq",
  41.                         "code_lpp_id_code_lpp_seq",
  42.                         "coeff_majoration_dom_id_coeff_majoration_dom_seq",
  43.                         // Pas de séquence pour les tables devspec_* sauf une :
  44.                         "devpec_type_renouvellement_le_id_devpec_type_renouvellement_seq",
  45.                         "diametre_verre_id_diametre_verre_seq",
  46.                         "duree_validite_ordonnance_len_id_duree_validite_ordonnance__seq",
  47.                         "duree_validite_ordonnance_lun_id_duree_validite_ordonnance__seq",
  48.                         "equipement_specifique_id_equipement_specifique_seq",
  49.                         "etat_demande_tiers_payant_etat_id_seq",
  50.                         "etat_devis_etat_id_seq",
  51.                         "fabricant_conventionne_id_fabricant_conventionne_seq",
  52.                         "fabricant_equipement_specifiq_id_fabricant_equipement_speci_seq",
  53.                         "fabricant_monture_id_fabricant_monture_seq",
  54.                         "famille_lentille_id_famille_lentille_seq",
  55.                         "frequence_lentille_id_frequence_lentille_seq",
  56.                         // Pas de séquence pour la table identifiant_table_referentiel
  57.                         "indice_min_id_indice_min_seq",
  58.                         "laboratoire_id_laboratoire_seq",
  59.                         "lpp_adaptation_id_lpp_adaptation_seq",
  60.                         "lpp_appairage_id_lpp_appairage_seq",
  61.                         "lpp_monture_id_lpp_monture_seq",
  62.                         "lpp_supplement_ro_monture_id_lpp_supplement_ro_monture_seq",
  63.                         "lpp_supplement_ro_verre_id_lpp_supplement_ro_verre_seq",
  64.                         "lpp_verre_id_lpp_verre_seq",
  65.                         "matiere_monture_id_matiere_monture_seq",
  66.                         "modele_lentille_id_modele_lentille_seq",
  67.                         "mode_paiement_id_mode_paiement_seq",
  68.                         "montage_monture_id_montage_monture_seq",
  69.                         "monture_id_monture_seq",
  70.                         "motif_absence_ordonnance_id_motif_absence_ordonnance_seq",
  71.                         "nature_assurance_maladie_id_nature_assurance_maladie_seq",
  72.                         "prix_equipement_specifique_id_prix_equipement_specifique_seq",
  73.                         "produit_entretien_id_produit_entretien_seq",
  74.                         "regime_social_id_regime_social_seq",
  75.                         "supplement_monture_id_supplement_monture_seq",
  76.                         "supplement_verre_ro_id_supplement_verre_ro_seq",
  77.                         "traitement_specifique_id_traitement_specifique_seq",
  78.                         "type_lentille_id_type_lentille_seq",
  79.                         "type_renouvellement_lentille_id_type_renouvellement_lentill_seq",
  80.                         "type_renouvellement_lunette_id_type_renouvellement_lunette_seq",
  81.                         "type_renouvellement_id_type_renouvellement_seq",
  82.                         "types_materiaux_indices_id_type_materiau_indice_seq"
  83.                         // Pas de séquence pour la table utilisateur_chargement_catalogue
  84.                 )
  85.         );
  86.     }

  87.     @Bean("refCommunSequencesReader")
  88.     @StepScope
  89.     @Override
  90.     public AbstractItemStreamItemReader<IntegerSequence> reader(
  91.             FileUtils fileUtils,
  92.             @Value("#{jobParameters['envSource'] ?: 'pprod'}") String envSource,
  93.             @Value("#{jobParameters['envCible'] ?: 'pprod'}") String envCible
  94.     ) throws IOException {
  95.         return super.buildReader(fileUtils, envSource, envCible);
  96.     }

  97. }