package br.com.centralit.citcorpore.ajaxForms;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.quartz.SchedulerException;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citajax.html.HTMLForm;
import br.com.centralit.citajax.html.HTMLSelect;
import br.com.centralit.citajax.html.HTMLTable;
import br.com.centralit.citcorpore.batch.JobService;
import br.com.centralit.citcorpore.bean.ExecucaoBatchDTO;
import br.com.centralit.citcorpore.bean.ProcessamentoBatchDTO;
import br.com.centralit.citcorpore.integracao.ExecucaoBatchDao;
import br.com.centralit.citcorpore.negocio.ProcessamentoBatchService;
import br.com.centralit.citcorpore.util.Util;
import br.com.citframework.service.ServiceLocator;
//import org.apache.tools.ant.util.DateUtils;
import br.com.citframework.util.UtilI18N;
@SuppressWarnings({ "rawtypes", "unused" })
public class ProcessamentoBatch extends AjaxFormAction {
public Class getBeanClass() {
return ProcessamentoBatchDTO.class;
}
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProcessamentoBatchDTO processamentoBatchBean = (ProcessamentoBatchDTO) document.getBean();
ProcessamentoBatchService processamentoBatchService = (ProcessamentoBatchService) ServiceLocator.getInstance().getService(ProcessamentoBatchService.class, null);
processamentoBatchService.populaSelects(document, request, response);
HTMLSelect comboTipo = (HTMLSelect) document.getSelectById("tipo");
if (comboTipo!=null){
comboTipo.addOption("C", UtilI18N.internacionaliza(request, "processamentoBatch.classeJava"));
comboTipo.addOption("S", UtilI18N.internacionaliza(request, "processamentoBatch.sql"));
}
}
public void restore(DocumentHTML document, HttpServletRequest arg1, HttpServletResponse arg2) throws Exception {
ProcessamentoBatchDTO processamentoBatchDTO = (ProcessamentoBatchDTO) document.getBean();
ProcessamentoBatchService processamentoBatchService = (ProcessamentoBatchService) ServiceLocator.getInstance().getService(ProcessamentoBatchService.class, null);
processamentoBatchDTO = (ProcessamentoBatchDTO) processamentoBatchService.restore(processamentoBatchDTO);
processamentoBatchService.setaPropriedadesExpressaoCron(processamentoBatchDTO);
HTMLForm form = document.getForm("form");
form.clear();
form.setValues(processamentoBatchDTO);
}
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse arg2) throws Exception {
ProcessamentoBatchDTO processamentoBatchDTO = (ProcessamentoBatchDTO) document.getBean();
ProcessamentoBatchService processamentoBatchService = (ProcessamentoBatchService) ServiceLocator.getInstance().getService(ProcessamentoBatchService.class, null);
processamentoBatchDTO.setConteudo(processamentoBatchDTO.getConteudo().trim());
processamentoBatchService.montaExpressaoCron(processamentoBatchDTO);
if (processamentoBatchService.validaExpressaoCron(document,request,processamentoBatchDTO)){
if (processamentoBatchDTO.getIdProcessamentoBatch() != null && processamentoBatchDTO.getIdProcessamentoBatch().intValue() > 0) {
processamentoBatchService.update(processamentoBatchDTO);
if (processamentoBatchDTO != null && processamentoBatchDTO.getSituacao() != null && processamentoBatchDTO.getSituacao().equalsIgnoreCase("A")) {
processamentoBatchService.agendaJob(processamentoBatchDTO, document, request);
}
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
} else {
boolean existeDuplicidade = processamentoBatchService.existeDuplicidade(processamentoBatchDTO);
if (existeDuplicidade) {
document.alert(UtilI18N.internacionaliza(request, "MSE01"));
return;
} else {
processamentoBatchDTO = (ProcessamentoBatchDTO) processamentoBatchService.create(processamentoBatchDTO);
if (processamentoBatchDTO != null && processamentoBatchDTO.getSituacao() != null && processamentoBatchDTO.getSituacao().equalsIgnoreCase("A")) {
processamentoBatchService.agendaJob(processamentoBatchDTO, document, request);
}
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
}
}
HTMLForm form = document.getForm("form");
form.clear();
}
}
@SuppressWarnings("unchecked")
public void mostrarExecucoes(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) {
ProcessamentoBatchDTO processamentoBatchBean = (ProcessamentoBatchDTO) document.getBean();
StringBuilder tabela = new StringBuilder();
try {
HTMLTable tblExecucao = document.getTableById("tblExecucao");
tblExecucao.deleteAllRows();
tabela.append("<table id='tblExecucao' name='tblExecucao' class='table table-bordered'>");
tabela.append("<tr>");
tabela.append("<th height='10px' width='15%'>"+UtilI18N.internacionaliza(request,"citcorpore.comum.datahora")+"</th>");
tabela.append("<th height='10px' width='85%'>"+UtilI18N.internacionaliza(request,"citcorpore.comum.conteudo")+"</th>");
tabela.append("</tr>");
if (processamentoBatchBean.getIdProcessamentoBatch() != null) {
ExecucaoBatchDao execDao = new ExecucaoBatchDao();
Collection<ExecucaoBatchDTO> listaExecucoes = execDao.findByIdProcBatch(processamentoBatchBean.getIdProcessamentoBatch());
if (listaExecucoes != null) {
String txtDataHora = "";
String txtConteudo = "";
Integer i = 1;
for (ExecucaoBatchDTO execucaoBatchDTO : listaExecucoes) {
if (i<11){
txtDataHora = (String) ((execucaoBatchDTO.getDataHora()!=null)? Util.formatDateDDMMYYYYHHMMSS(execucaoBatchDTO.getDataHora()):"");
txtConteudo = (String) ((execucaoBatchDTO.getConteudo()!=null)?execucaoBatchDTO.getConteudo().toString():"");
tabela.append("<tr>");
tabela.append("<th>"+txtDataHora+"</th>");
tabela.append("<th>"+txtConteudo+"</th>");
tabela.append("</tr>");
} else {
break;
}
i+=1;
}
}
}
tabela.append("</table>");
tblExecucao.setInnerHTML(tabela.toString());
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblExecucao', 'tblExecucao');");
document.executeScript("$('#modal_Execucoes').modal();");
} catch (Exception e) {
e.printStackTrace();
}
}
public void listaProcessamentosBatch(DocumentHTML document, HttpServletRequest arg1, HttpServletResponse arg2) throws Exception {
org.quartz.SchedulerFactory schedulerFactory = new org.quartz.impl.StdSchedulerFactory();
// org.quartz.Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
org.quartz.Scheduler scheduler = null;
try {
scheduler = schedulerFactory.getScheduler();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
public void executaJobService(DocumentHTML document, HttpServletRequest arg1, HttpServletResponse arg2) throws Exception {
ProcessamentoBatchDTO processamentoBatchBean = (ProcessamentoBatchDTO) document.getBean();
if (processamentoBatchBean.getNomeClasseJobService() == null || processamentoBatchBean.getNomeClasseJobService().trim().length() == 0)
return;
JobService jobService = (JobService) Class.forName(processamentoBatchBean.getNomeClasseJobService()).newInstance();
jobService.execute(null);
}
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse arg2) throws Exception {
ProcessamentoBatchDTO processamentoBatchBean = (ProcessamentoBatchDTO) document.getBean();
ProcessamentoBatchService processamentoBatchService = (ProcessamentoBatchService) ServiceLocator.getInstance().getService(ProcessamentoBatchService.class, null);
if (processamentoBatchBean.getIdProcessamentoBatch() == null || processamentoBatchBean.getIdProcessamentoBatch().intValue() == 0) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.necessarioSelecionarRegistro"));
return;
} else {
processamentoBatchBean.setSituacao("I");
processamentoBatchService.update(processamentoBatchBean);
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}
HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("document.location.reload()");
}
}