ChargementItemWriter.java

  1. package com.sintia.ffl.admin.optique.specifique.isea.writer;

  2. import com.sintia.ffl.admin.optique.specifique.isea.helpers.ModeleVerreIteHelper;
  3. import com.sintia.ffl.admin.optique.specifique.isea.helpers.SupplementVerreIteHelper;
  4. import com.sintia.ffl.admin.optique.specifique.isea.helpers.VerreSupplementAssoIteHelper;
  5. import com.sintia.ffl.admin.optique.specifique.isea.models.FabricantCSV;
  6. import com.sintia.ffl.admin.optique.specifique.isea.models.FournisseurCSV;
  7. import com.sintia.ffl.admin.optique.specifique.isea.models.SupplementCSV;
  8. import com.sintia.ffl.admin.optique.specifique.isea.models.VerreCSV;
  9. import com.sintia.ffl.admin.optique.specifique.isea.models.VerreSupplementAssoCSV;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.batch.core.ExitStatus;
  12. import org.springframework.batch.core.StepContribution;
  13. import org.springframework.batch.core.StepExecution;
  14. import org.springframework.batch.core.StepExecutionListener;
  15. import org.springframework.batch.core.configuration.annotation.StepScope;
  16. import org.springframework.batch.core.scope.context.ChunkContext;
  17. import org.springframework.batch.core.step.tasklet.Tasklet;
  18. import org.springframework.batch.repeat.RepeatStatus;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Component;

  21. import java.util.Date;
  22. import java.util.List;

  23. @Component
  24. @StepScope
  25. @Slf4j
  26. public class ChargementItemWriter implements Tasklet, StepExecutionListener {
  27.    
  28.     @Autowired
  29.     private ModeleVerreIteHelper modeleVerreHelper;
  30.    
  31.     @Autowired
  32.     private SupplementVerreIteHelper supplementVerreIteHelper;
  33.    
  34.     @Autowired
  35.     private VerreSupplementAssoIteHelper verreSupplementAssoIteHelper;
  36.    
  37.     List<VerreCSV> verreCSVList;
  38.     List<SupplementCSV> supplementCSVList;
  39.     List<VerreSupplementAssoCSV> verreSupplementAssoCSVList;
  40.     List<FabricantCSV> fabricantCSVList;
  41.     List<FournisseurCSV> fournisseurCSVList;
  42.    
  43.     @Override
  44.     public void beforeStep(StepExecution stepExecution) {
  45.         // Do nothing
  46.     }
  47.    
  48.     @Override
  49.     public ExitStatus afterStep(StepExecution stepExecution) {
  50.         return ExitStatus.COMPLETED;
  51.     }
  52.    
  53.     @Override
  54.     public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
  55.         log.info("ChargementItemWriter - execute()");
  56.         Date date = (Date) stepContribution.getStepExecution().getJobExecution().getJobParameters().getParameters().get("scriptDate").getValue();
  57.         log.info("Date : " + date);
  58.         verreCSVList = (List<VerreCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("verres");
  59.         log.info("verreCSVList.size() : " + verreCSVList.size());
  60.         supplementCSVList = (List<SupplementCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("supplements");
  61.         log.info("supplementCSVList.size() : " + supplementCSVList.size());
  62.         verreSupplementAssoCSVList = (List<VerreSupplementAssoCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("verresupplements");
  63.         log.info("verreSupplementAssoCSVList.size() : " + verreSupplementAssoCSVList.size());
  64.         fabricantCSVList = (List<FabricantCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("fabricants");
  65.         log.info("fabricantCSVList.size() : " + fabricantCSVList.size());
  66.         fournisseurCSVList = (List<FournisseurCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("fournisseurs");
  67.         log.info("fournisseurCSVList.size() : " + fournisseurCSVList.size());


  68.         // Create and Write in DB Modeleverre
  69.         log.info("Create and Write in DB Modeleverre");
  70.         modeleVerreHelper.process(verreCSVList, verreSupplementAssoCSVList, fabricantCSVList.get(0).getCodeFabricant(),
  71.                 fournisseurCSVList.get(0).getCodeFournisseur(), date);
  72.        
  73.         // Create and Write in DB SupplementVerre
  74.         log.info("Create and Write in DB SupplementVerre");
  75.         supplementVerreIteHelper.process(supplementCSVList, fabricantCSVList.get(0).getCodeFabricant(),
  76.                 fournisseurCSVList.get(0).getCodeFournisseur(), date);
  77.        
  78.         // Create and Write in DB SupplementVerreAsso
  79.         log.info("Create and Write in DB SupplementVerreAsso");
  80.         verreSupplementAssoIteHelper.process(verreSupplementAssoCSVList, date);

  81.         log.info("ChargementItemWriter - execute() - END");
  82.         return RepeatStatus.FINISHED;
  83.     }
  84.    
  85. }