Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package br.com.postalis.folhapgto.steps.posFolha; import br.com.postalis.folhapgto.entidade.PosGpxConsignacaoPopulisControle; import br.com.postalis.folhapgto.repository.ConsignacaoPopulisRepository; import br.com.postalis.folhapgto.repository.ControleRepository; import java.util.Date; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.job.flow.FlowExecutionStatus; import org.springframework.batch.core.job.flow.JobExecutionDecider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * * @author jonathan.salcedo */ @Component("consultarDescPosFolhaDecider") public class ConsultarDescPosFolhaDecider implements JobExecutionDecider { private final Logger LOGGER = LoggerFactory.getLogger(this.getClass()); @Autowired private ConsignacaoPopulisRepository consignacaoPopulisRepository; @Autowired private ControleRepository controleRepository; private Date dtReferencia; private List<PosGpxConsignacaoPopulisControle> listaControle; private int loop = 0; private int qtdErro = 0; public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) { dtReferencia = (Date) jobExecution.getJobParameters().getParameters().get("dtReferencia").getValue(); listaControle = (List<PosGpxConsignacaoPopulisControle>) jobExecution.getExecutionContext() .get("listaControle"); qtdErro = (Integer) jobExecution.getExecutionContext().get("qtdErro"); LOGGER.info("Verificando se ainda existem registros a processar..."); long qtdFaltam = consignacaoPopulisRepository.countByDtReferenciaAndEnviados(dtReferencia); if (qtdFaltam > 0) { loop++; if (loop <= 5) { LOGGER.warn( "Encontrou " + qtdFaltam + " registros a processar, voltando para procesar o que falta!!!"); return new FlowExecutionStatus("LOOP"); } else { LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!"); LOGGER.warn("AINDA FALTAM: " + qtdFaltam + " LANAMENTOS PARA SEREM ENVIADOS. "); LOGGER.warn("O SISTEMA RE-EXECUTA AUTOMTICAMENTE APENAS 5 VEZES. "); LOGGER.warn( "CASO QUEIRA ENVIAR OS LANAMENTOS PENDENTES, EXECUTE NOVAMENTE O SISTEMA MANUALMENTE!!! "); return FlowExecutionStatus.COMPLETED; } } else { for (PosGpxConsignacaoPopulisControle controle : listaControle) { controle.setIdExportado('S'); controleRepository.save(controle); } if (qtdErro > 0) { LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!"); LOGGER.warn("ALGUMAS RUBRICAS FORAM CRITICADAS PELA ECT. FAVOR, VERIFICAR NA BASE!!! "); } return FlowExecutionStatus.COMPLETED; } } }