package br.com.centralit.citcorpore.quartz.job;
import java.sql.Date;
import java.util.Collection;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.mail.MensagemEmail;
import br.com.centralit.citcorpore.negocio.BaseConhecimentoService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
import br.com.centralit.citcorpore.negocio.UsuarioService;
import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.citframework.dto.IDto;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
public class VerificaValidadeBaseConhecimento implements Job {
@Override
public void execute(final JobExecutionContext arg0) throws JobExecutionException {
Collection<BaseConhecimentoDTO> colBaseConhecimento = null;
UsuarioDTO usuarioDtoAutor = new UsuarioDTO();
UsuarioDTO usuarioDtoAvaliador = new UsuarioDTO();
EmpregadoDTO empregadoDtoAutor = new EmpregadoDTO();
EmpregadoDTO empregadoDtoAvaliador = new EmpregadoDTO();
try {
String AVISAR_DATAEXPIRACAO_BASECONHECIMENTO = "1";
String ID_MODELO_EMAIL_EXPIRACAO_BASECONHECIMENTO = "7";
final String remetente = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.RemetenteNotificacoesSolicitacao, null);
if (AVISAR_DATAEXPIRACAO_BASECONHECIMENTO == null || AVISAR_DATAEXPIRACAO_BASECONHECIMENTO.isEmpty()) {
AVISAR_DATAEXPIRACAO_BASECONHECIMENTO = "90";
}
if (ID_MODELO_EMAIL_EXPIRACAO_BASECONHECIMENTO == null || ID_MODELO_EMAIL_EXPIRACAO_BASECONHECIMENTO.isEmpty()) {
ID_MODELO_EMAIL_EXPIRACAO_BASECONHECIMENTO = "6";
}
Date dataAtual = UtilDatas.getDataAtual();
dataAtual = (Date) UtilDatas.incrementaDiasEmData(dataAtual, Integer.parseInt(AVISAR_DATAEXPIRACAO_BASECONHECIMENTO));
final BaseConhecimentoService baseConhecimentoService = (BaseConhecimentoService) ServiceLocator.getInstance().getService(BaseConhecimentoService.class, null);
final EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
final UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null);
final BaseConhecimentoDTO baseConhecimento = new BaseConhecimentoDTO();
baseConhecimento.setDataExpiracao(dataAtual);
colBaseConhecimento = baseConhecimentoService.listaBaseConhecimentoUltimasVersoes(baseConhecimento);
if (!colBaseConhecimento.isEmpty()) {
for (final BaseConhecimentoDTO baseConhecimentoDTO : colBaseConhecimento) {
if (baseConhecimentoDTO.getIdUsuarioAutor() != null) {
usuarioDtoAutor = usuarioService.restoreByID(baseConhecimentoDTO.getIdUsuarioAutor());
}
if (baseConhecimentoDTO.getIdUsuarioAprovador() != null) {
usuarioDtoAvaliador = usuarioService.restoreByID(baseConhecimentoDTO.getIdUsuarioAprovador());
}
if (usuarioDtoAutor.getIdEmpregado() != null) {
empregadoDtoAutor = empregadoService.restoreByIdEmpregado(usuarioDtoAutor.getIdEmpregado());
}
if (usuarioDtoAvaliador.getIdEmpregado() != null) {
empregadoDtoAvaliador = empregadoService.restoreByIdEmpregado(usuarioDtoAvaliador.getIdEmpregado());
}
final MensagemEmail mensagem = new MensagemEmail(Integer.parseInt(ID_MODELO_EMAIL_EXPIRACAO_BASECONHECIMENTO), new IDto[] {baseConhecimentoDTO});
mensagem.envia(empregadoDtoAutor.getEmail(), "", remetente);
mensagem.envia(empregadoDtoAvaliador.getEmail(), "", remetente);
}
}
} catch (final Exception e) {
e.printStackTrace();
}
}
}