package gcom.gui.batch.relatorio; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Collection; import java.util.Date; import java.util.Map; import gcom.batch.FiltroProcessoIniciado; import gcom.batch.ProcessoIniciado; import gcom.batch.ProcessoSituacao; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.filtro.ConectorAnd; import gcom.util.filtro.Intervalo; import gcom.util.filtro.ParametroSimples; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Classe resps�vel por montar a apresenta��o dos relat�rios armazenados em * batch * * * @author Genival Barbosa * @date 03/07/2009 */ public class ExibirAutorizarRelatoriosBatchAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("autorizarRelatorio"); HttpSession sessao = httpServletRequest.getSession(false); /* * -------Iniciar datas (mes atual, mes anterior)-------- */ if (httpServletRequest.getParameter("dataInicialSelecionado")== null || httpServletRequest.getParameter("dataFinalSelecionado") == null ||httpServletRequest.getParameter("dataInicialSelecionado").equals("") || httpServletRequest.getParameter("dataFinalSelecionado").equals("")) { Date dataInicial = new Date(System.currentTimeMillis()); Calendar calendarData = Calendar.getInstance(); calendarData.setTime(dataInicial); calendarData.add(Calendar.MONTH,-1); dataInicial = calendarData.getTime(); SimpleDateFormat formatarDateInicial = new SimpleDateFormat("dd/MM/yyyy"); httpServletRequest.setAttribute("dataInicial", formatarDateInicial.format(dataInicial)); Date dataFinal = new Date(System.currentTimeMillis()); SimpleDateFormat formatarDateFinal = new SimpleDateFormat("dd/MM/yyyy"); httpServletRequest.setAttribute("dataFinal", formatarDateFinal.format(dataFinal)); } else { httpServletRequest.setAttribute("dataInicial",httpServletRequest.getParameter("dataInicialSelecionado")); httpServletRequest.setAttribute("dataFinal",httpServletRequest.getParameter("dataFinalSelecionado")); } /* * ------------------------------------------------------ */ //limitar pesquisa por no maximo 30 dias Date dataInicialDate = converterDataHora(httpServletRequest.getAttribute("dataInicial").toString(),"00:00:00"); Date dataFinalDate = converterDataHora(httpServletRequest.getAttribute("dataFinal").toString(),"23:59:59"); Calendar calendDataInic = Calendar.getInstance(); calendDataInic.setTime(dataInicialDate); Calendar calendDataFinal = Calendar.getInstance(); calendDataFinal.setTime(dataFinalDate); long diferenca = calendDataFinal.getTimeInMillis() - calendDataInic.getTimeInMillis(); int tempoDia = 1000 * 60 * 60 * 24; long diasDiferenca = diferenca/tempoDia; if(diasDiferenca<=31){ if (diasDiferenca>=0){ FiltroProcessoIniciado filtroProcessoIniciado = new FiltroProcessoIniciado(); filtroProcessoIniciado.adicionarCaminhoParaCarregamentoEntidade(FiltroProcessoIniciado.PROCESSO); filtroProcessoIniciado.adicionarCaminhoParaCarregamentoEntidade(FiltroProcessoIniciado.USUARIO); filtroProcessoIniciado.adicionarCaminhoParaCarregamentoEntidade(FiltroProcessoIniciado.PROCESSO_SITUACAO); filtroProcessoIniciado.adicionarParametro(new ParametroSimples(FiltroProcessoIniciado.PROCESSO_SITUACAO_ID,ProcessoSituacao.AGUARDANDO_AUTORIZACAO,ConectorAnd.CONECTOR_AND)); filtroProcessoIniciado.adicionarParametro(new Intervalo(FiltroProcessoIniciado.DATA_HORA_AGENDAMENTO, dataInicialDate,dataFinalDate )); Collection colecaoProcessosIniciados = null; Map resultado = controlarPaginacao(httpServletRequest, retorno, filtroProcessoIniciado, ProcessoIniciado.class.getName()); colecaoProcessosIniciados = (Collection) resultado.get("colecaoRetorno"); retorno = (ActionForward) resultado.get("destinoActionForward"); sessao.setAttribute("collProcessoIniciado", colecaoProcessosIniciados); }else{ throw new ActionServletException( "atencao.processo_iniciado.datafinal_menor_datainicial", null, ""); } }else{ throw new ActionServletException( "atencao.processo_iniciado.limite_trinta_dias", null, ""); } return retorno; } private Date converterDataHora(String data, String hora) { SimpleDateFormat formatoDataHora = new SimpleDateFormat("dd/MM/yyyy k:mm:ss"); try { return formatoDataHora.parse(data + " " + hora); } catch (ParseException e) { throw new ActionServletException("erro.sistema"); } } }