ChargementItemWriter.java
package com.sintia.ffl.admin.optique.specifique.isea.writer;
import com.sintia.ffl.admin.optique.specifique.isea.helpers.ModeleVerreIteHelper;
import com.sintia.ffl.admin.optique.specifique.isea.helpers.SupplementVerreIteHelper;
import com.sintia.ffl.admin.optique.specifique.isea.helpers.VerreSupplementAssoIteHelper;
import com.sintia.ffl.admin.optique.specifique.isea.models.FabricantCSV;
import com.sintia.ffl.admin.optique.specifique.isea.models.FournisseurCSV;
import com.sintia.ffl.admin.optique.specifique.isea.models.SupplementCSV;
import com.sintia.ffl.admin.optique.specifique.isea.models.VerreCSV;
import com.sintia.ffl.admin.optique.specifique.isea.models.VerreSupplementAssoCSV;
import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.StepExecutionListener;
import org.springframework.batch.core.configuration.annotation.StepScope;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component
@StepScope
@Slf4j
public class ChargementItemWriter implements Tasklet, StepExecutionListener {
@Autowired
private ModeleVerreIteHelper modeleVerreHelper;
@Autowired
private SupplementVerreIteHelper supplementVerreIteHelper;
@Autowired
private VerreSupplementAssoIteHelper verreSupplementAssoIteHelper;
List<VerreCSV> verreCSVList;
List<SupplementCSV> supplementCSVList;
List<VerreSupplementAssoCSV> verreSupplementAssoCSVList;
List<FabricantCSV> fabricantCSVList;
List<FournisseurCSV> fournisseurCSVList;
@Override
public void beforeStep(StepExecution stepExecution) {
// Do nothing
}
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
return ExitStatus.COMPLETED;
}
@Override
public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
log.info("ChargementItemWriter - execute()");
Date date = (Date) stepContribution.getStepExecution().getJobExecution().getJobParameters().getParameters().get("scriptDate").getValue();
log.info("Date : " + date);
verreCSVList = (List<VerreCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("verres");
log.info("verreCSVList.size() : " + verreCSVList.size());
supplementCSVList = (List<SupplementCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("supplements");
log.info("supplementCSVList.size() : " + supplementCSVList.size());
verreSupplementAssoCSVList = (List<VerreSupplementAssoCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("verresupplements");
log.info("verreSupplementAssoCSVList.size() : " + verreSupplementAssoCSVList.size());
fabricantCSVList = (List<FabricantCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("fabricants");
log.info("fabricantCSVList.size() : " + fabricantCSVList.size());
fournisseurCSVList = (List<FournisseurCSV>) stepContribution.getStepExecution().getJobExecution().getExecutionContext().get("fournisseurs");
log.info("fournisseurCSVList.size() : " + fournisseurCSVList.size());
// Create and Write in DB Modeleverre
log.info("Create and Write in DB Modeleverre");
modeleVerreHelper.process(verreCSVList, verreSupplementAssoCSVList, fabricantCSVList.get(0).getCodeFabricant(),
fournisseurCSVList.get(0).getCodeFournisseur(), date);
// Create and Write in DB SupplementVerre
log.info("Create and Write in DB SupplementVerre");
supplementVerreIteHelper.process(supplementCSVList, fabricantCSVList.get(0).getCodeFabricant(),
fournisseurCSVList.get(0).getCodeFournisseur(), date);
// Create and Write in DB SupplementVerreAsso
log.info("Create and Write in DB SupplementVerreAsso");
verreSupplementAssoIteHelper.process(verreSupplementAssoCSVList, date);
log.info("ChargementItemWriter - execute() - END");
return RepeatStatus.FINISHED;
}
}