package gcom.gui.relatorio.atendimentopublico; import gcom.atendimentopublico.registroatendimento.AtendimentoMotivoEncerramento; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.SetorComercial; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.atendimentopublico.ordemservico.GerarRelatorioAcompanhamentoOrdemServicoHidrometroActionForm; import gcom.relatorio.ConstantesRelatorios; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.atendimentopublico.RelatorioRelacaoOrdensServicoConcluidas; import gcom.relatorio.atendimentopublico.RelatorioRelacaoOrdensServicoEncerradasPendentes; import gcom.relatorio.atendimentopublico.RelatorioResumoOrdensServicoEncerradasPendentes; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaRelatorio; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * * @author Ivan S�rgio * @created 11/12/2007, 27/03/2008, 04/04/2008 * @alteracao: 27/03/2008 - Adicionado Motivo Encerramento; Setor Comercial; * 04/04/2008 - Adicionado um novo relatorio quebrando por Local de Instala��o; */ public class GerarRelatorioAcompanhamentoOrdemServicoHidrometroAction extends ExibidorProcessamentoTarefaRelatorio { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // cria a vari�vel de retorno ActionForward retorno = null; GerarRelatorioAcompanhamentoOrdemServicoHidrometroActionForm form = (GerarRelatorioAcompanhamentoOrdemServicoHidrometroActionForm) actionForm; // Recupera os valores do form para serem passados como par�metros para // o RelatorioAcompanhamentoOrdemServicoHidrometro String tipoOrdem = form.getTipoOrdem(); String situacaoOrdemServico = form.getSituacaoOrdemServico(); String firma = form.getFirma(); String nomeFirma = form.getNomeFirma(); String idLocalidadeInicial = form.getLocalidadeInicial(); String nomeLocalidadeInicial = form.getNomeLocalidadeInicial(); String idLocalidadeFinal = form.getLocalidadeFinal(); String nomeLocalidadeFinal = form.getNomeLocalidadeFinal(); String dataEncerramentoInicial = form.getDataEncerramentoInicial(); String dataEncerramentoFinal = form.getDataEncerramentoFinal(); if (dataEncerramentoInicial != null && !dataEncerramentoInicial.trim().equals("")) { dataEncerramentoInicial += " 00:00:00"; } if (dataEncerramentoFinal != null && !dataEncerramentoFinal.trim().equals("")) { dataEncerramentoFinal += " 23:59:59"; } String tipoRelatorioAcompanhamento = form.gettipoRelatorioAcompanhamento(); String idMotivoEncerramento = form.getIdMotivoEncerramento(); String descricaoMotivoEncerramento = form.getDescricaoMotivoEncerramento(); String idSetorComercialInicial = form.getSetorComercialInicial(); String idSetorComercialFinal = form.getSetorComercialFinal(); String codigoSetorComercialInicial = form.getCodigoSetorComercialInicial(); String codigoSetorComercialFinal = form.getCodigoSetorComercialFinal(); String nomeSetorComercialInicial = form.getNomeSetorComercialInicial(); String nomeSetorComercialFinal = form.getNomeSetorComercialFinal(); String codigoQuadraInicial = form.getQuadraInicial(); String codigoQuadraFinal = form.getQuadraFinal(); String codigoRotaInicial = form.getRotaInicial(); String codigoRotaFinal = form.getRotaFinal(); String sequenciaRotaInicial = form.getRotaSequenciaInicial(); String sequenciaRotaFinal = form.getRotaSequenciaFinal(); // Valida a Localidade Informada if (idLocalidadeInicial != null && !idLocalidadeInicial.equals("") && idLocalidadeFinal != null && !idLocalidadeFinal.equals("")) { Localidade localidadeInicial = validarLocalidade(idLocalidadeInicial); Localidade localidadeFinal = validarLocalidade(idLocalidadeFinal); if (nomeLocalidadeInicial == null || nomeLocalidadeInicial.equals("")) { nomeLocalidadeInicial = localidadeInicial.getDescricao(); } if (nomeLocalidadeFinal == null || nomeLocalidadeFinal.equals("")) { nomeLocalidadeFinal = localidadeFinal.getDescricao(); } } // Valida o Setor Informado if (codigoSetorComercialInicial != null && !codigoSetorComercialInicial.equals("")&& codigoSetorComercialFinal != null && !codigoSetorComercialFinal.equals("")) { SetorComercial setorComercialInicial = validarSetorComercial(idLocalidadeInicial, codigoSetorComercialInicial); SetorComercial setorComercialFinal = validarSetorComercial(idLocalidadeFinal, codigoSetorComercialFinal); //inicial if (idSetorComercialInicial == null || idSetorComercialInicial.equals("")) { idSetorComercialInicial = setorComercialInicial.getId().toString(); } if (nomeSetorComercialInicial == null || nomeSetorComercialInicial.equals("")) { nomeSetorComercialInicial = setorComercialInicial.getDescricao(); } //final if (idSetorComercialFinal == null || idSetorComercialFinal.equals("")) { idSetorComercialFinal = setorComercialFinal.getId().toString(); } if (nomeSetorComercialFinal == null || nomeSetorComercialFinal.equals("")) { nomeSetorComercialFinal = setorComercialFinal.getDescricao(); } } String tipoGeracaoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); // Verifica o Tipo do Relatorio Escolhido pelo usuario // 1 - Analitico (RelatorioRelacaoOrdensServicoEncerradasPendentes) // 2 - Sintetico (RelatorioResumoOrdensServicoEncerradasPendentes) // 3 - Por Local de Instalacao (RelatorioRelacaoOrdensServicoConcluidas) // 4 - Por Motivo de Encerramento (RelatorioRelacaoOrdensServicoConcluidas) if (Util.converterStringParaInteger(tipoRelatorioAcompanhamento).equals( GerarRelatorioAcompanhamentoOrdemServicoHidrometroActionForm.TIPO_RELATORIO_ANALITICO)) { RelatorioRelacaoOrdensServicoEncerradasPendentes relatorio = new RelatorioRelacaoOrdensServicoEncerradasPendentes( (Usuario) (httpServletRequest.getSession(false)).getAttribute("usuarioLogado")); relatorio.addParametro("tipoOrdem", tipoOrdem); relatorio.addParametro("situacaoOrdemServico", situacaoOrdemServico); relatorio.addParametro("idMotivoEncerramento", idMotivoEncerramento); relatorio.addParametro("descricaoMotivoEncerramento", descricaoMotivoEncerramento); relatorio.addParametro("firma", firma); relatorio.addParametro("nomeFirma", nomeFirma); relatorio.addParametro("idLocalidadeInicial", idLocalidadeInicial); relatorio.addParametro("idLocalidadeFinal", idLocalidadeFinal); relatorio.addParametro("idSetorComercialInicial", idSetorComercialInicial); relatorio.addParametro("idSetorComercialFinal", idSetorComercialFinal); relatorio.addParametro("codigoSetorComercialInicial", codigoSetorComercialInicial); relatorio.addParametro("codigoSetorComercialFinal", codigoSetorComercialFinal); relatorio.addParametro("dataEncerramentoInicial", dataEncerramentoInicial); relatorio.addParametro("dataEncerramentoFinal", dataEncerramentoFinal); relatorio.addParametro("tipoRelatorioAcompanhamento", tipoRelatorioAcompanhamento); relatorio.addParametro("codigoQuadraInicial", codigoQuadraInicial); relatorio.addParametro("codigoQuadraFinal", codigoQuadraFinal); relatorio.addParametro("codigoRotaInicial", codigoRotaInicial); relatorio.addParametro("codigoRotaFinal", codigoRotaFinal); relatorio.addParametro("sequenciaRotaInicial", sequenciaRotaInicial); relatorio.addParametro("sequenciaRotaFinal", sequenciaRotaFinal); if (tipoGeracaoRelatorio == null) { tipoGeracaoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorio.addParametro("tipoFormatoRelatorio", Integer.parseInt(tipoGeracaoRelatorio)); retorno = processarExibicaoRelatorio(relatorio, tipoGeracaoRelatorio, httpServletRequest, httpServletResponse, actionMapping); }else if (Util.converterStringParaInteger(tipoRelatorioAcompanhamento).equals( GerarRelatorioAcompanhamentoOrdemServicoHidrometroActionForm.TIPO_RELATORIO_SINTETICO)) { RelatorioResumoOrdensServicoEncerradasPendentes relatorio = new RelatorioResumoOrdensServicoEncerradasPendentes( (Usuario) (httpServletRequest.getSession(false)).getAttribute("usuarioLogado")); relatorio.addParametro("tipoOrdem", tipoOrdem); relatorio.addParametro("situacaoOrdemServico", situacaoOrdemServico); relatorio.addParametro("idMotivoEncerramento", idMotivoEncerramento); relatorio.addParametro("descricaoMotivoEncerramento", descricaoMotivoEncerramento); relatorio.addParametro("firma", firma); relatorio.addParametro("nomeFirma", nomeFirma); relatorio.addParametro("idLocalidadeInicial", idLocalidadeInicial); relatorio.addParametro("idLocalidadeFinal", idLocalidadeFinal); relatorio.addParametro("idSetorComercialInicial", idSetorComercialInicial); relatorio.addParametro("idSetorComercialFinal", idSetorComercialFinal); relatorio.addParametro("codigoSetorComercialInicial", codigoSetorComercialInicial); relatorio.addParametro("codigoSetorComercialFinal", codigoSetorComercialFinal); relatorio.addParametro("dataEncerramentoInicial", dataEncerramentoInicial); relatorio.addParametro("dataEncerramentoFinal", dataEncerramentoFinal); relatorio.addParametro("tipoRelatorioAcompanhamento", tipoRelatorioAcompanhamento); relatorio.addParametro("codigoQuadraInicial", codigoQuadraInicial); relatorio.addParametro("codigoQuadraFinal", codigoQuadraFinal); relatorio.addParametro("codigoRotaInicial", codigoRotaInicial); relatorio.addParametro("codigoRotaFinal", codigoRotaFinal); relatorio.addParametro("sequenciaRotaInicial", sequenciaRotaInicial); relatorio.addParametro("sequenciaRotaFinal", sequenciaRotaFinal); if (tipoGeracaoRelatorio == null) { tipoGeracaoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorio.addParametro("tipoFormatoRelatorio", Integer.parseInt(tipoGeracaoRelatorio)); retorno = processarExibicaoRelatorio(relatorio, tipoGeracaoRelatorio, httpServletRequest, httpServletResponse, actionMapping); }else if (Util.converterStringParaInteger(tipoRelatorioAcompanhamento).equals( GerarRelatorioAcompanhamentoOrdemServicoHidrometroActionForm.TIPO_RELATORIO_POR_LOCAL_INSTALACAO)) { RelatorioRelacaoOrdensServicoConcluidas relatorio = new RelatorioRelacaoOrdensServicoConcluidas((Usuario) (httpServletRequest.getSession(false)).getAttribute("usuarioLogado"), ConstantesRelatorios.RELATORIO_RELACAO_ORDENS_SERVICO_ENCERRADAS_PENDENTES); relatorio.addParametro("tipoOrdem", tipoOrdem); relatorio.addParametro("situacaoOrdemServico", "ENCERRADAS"); relatorio.addParametro("idMotivoEncerramento", AtendimentoMotivoEncerramento.CONCLUSAO_SERVICO); relatorio.addParametro("descricaoMotivoEncerramento", descricaoMotivoEncerramento); relatorio.addParametro("firma", firma); relatorio.addParametro("nomeFirma", nomeFirma); relatorio.addParametro("idLocalidadeInicial", idLocalidadeInicial); relatorio.addParametro("idLocalidadeFinal", idLocalidadeFinal); relatorio.addParametro("idSetorComercialInicial", idSetorComercialInicial); relatorio.addParametro("idSetorComercialFinal", idSetorComercialFinal); relatorio.addParametro("codigoSetorComercialInicial", codigoSetorComercialInicial); relatorio.addParametro("codigoSetorComercialFinal", codigoSetorComercialFinal); relatorio.addParametro("dataEncerramentoInicial", dataEncerramentoInicial); relatorio.addParametro("dataEncerramentoFinal", dataEncerramentoFinal); relatorio.addParametro("tipoRelatorioAcompanhamento", tipoRelatorioAcompanhamento); relatorio.addParametro("codigoQuadraInicial", codigoQuadraInicial); relatorio.addParametro("codigoQuadraFinal", codigoQuadraFinal); relatorio.addParametro("codigoRotaInicial", codigoRotaInicial); relatorio.addParametro("codigoRotaFinal", codigoRotaFinal); relatorio.addParametro("sequenciaRotaInicial", sequenciaRotaInicial); relatorio.addParametro("sequenciaRotaFinal", sequenciaRotaFinal); if (tipoGeracaoRelatorio == null) { tipoGeracaoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorio.addParametro("tipoFormatoRelatorio", Integer.parseInt(tipoGeracaoRelatorio)); retorno = processarExibicaoRelatorio(relatorio, tipoGeracaoRelatorio, httpServletRequest, httpServletResponse, actionMapping); }else if (Util.converterStringParaInteger(tipoRelatorioAcompanhamento).equals( GerarRelatorioAcompanhamentoOrdemServicoHidrometroActionForm.TIPO_RELATORIO_POR_MOTIVO_ENCERRAMENTO)) { RelatorioRelacaoOrdensServicoConcluidas relatorio = new RelatorioRelacaoOrdensServicoConcluidas((Usuario) (httpServletRequest.getSession(false)).getAttribute("usuarioLogado"), ConstantesRelatorios.RELATORIO_RELACAO_ORDENS_SERVICO_ENCERRADAS_MOTIVO_ENCERRAMENTO); relatorio.addParametro("tipoOrdem", tipoOrdem); relatorio.addParametro("situacaoOrdemServico", "ENCERRADAS"); relatorio.addParametro("idMotivoEncerramento", idMotivoEncerramento); relatorio.addParametro("descricaoMotivoEncerramento", descricaoMotivoEncerramento); relatorio.addParametro("firma", firma); relatorio.addParametro("nomeFirma", nomeFirma); relatorio.addParametro("idLocalidadeInicial", idLocalidadeInicial); relatorio.addParametro("idLocalidadeFinal", idLocalidadeFinal); relatorio.addParametro("idSetorComercialInicial", idSetorComercialInicial); relatorio.addParametro("idSetorComercialFinal", idSetorComercialFinal); relatorio.addParametro("codigoSetorComercialInicial", codigoSetorComercialInicial); relatorio.addParametro("codigoSetorComercialFinal", codigoSetorComercialFinal); relatorio.addParametro("dataEncerramentoInicial", dataEncerramentoInicial); relatorio.addParametro("dataEncerramentoFinal", dataEncerramentoFinal); relatorio.addParametro("tipoRelatorioAcompanhamento", tipoRelatorioAcompanhamento); relatorio.addParametro("codigoQuadraInicial", codigoQuadraInicial); relatorio.addParametro("codigoQuadraFinal", codigoQuadraFinal); relatorio.addParametro("codigoRotaInicial", codigoRotaInicial); relatorio.addParametro("codigoRotaFinal", codigoRotaFinal); relatorio.addParametro("sequenciaRotaInicial", sequenciaRotaInicial); relatorio.addParametro("sequenciaRotaFinal", sequenciaRotaFinal); if (tipoGeracaoRelatorio == null) { tipoGeracaoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorio.addParametro("tipoFormatoRelatorio", Integer.parseInt(tipoGeracaoRelatorio)); retorno = processarExibicaoRelatorio(relatorio, tipoGeracaoRelatorio, httpServletRequest, httpServletResponse, actionMapping); } return retorno; } private Localidade validarLocalidade(String localidade) { Localidade retorno = null; Fachada fachada = Fachada.getInstancia(); FiltroLocalidade filtroLocalidade = null; Collection<Localidade> colecaoLocalidade = null; // Verifica se a Localidade existe if (localidade != null && !localidade.equals("")) { filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidade)); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); colecaoLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) { Iterator<Localidade> iColecaoLocalidade = colecaoLocalidade.iterator(); retorno = iColecaoLocalidade.next(); }else { throw new ActionServletException("atencao.pesquisa_inexistente", null, "Localidade"); } } return retorno; } private SetorComercial validarSetorComercial(String localidade, String codigoSetorComercial) { SetorComercial retorno = null; Fachada fachada = Fachada.getInstancia(); FiltroSetorComercial filtroSetorComercial = null; Collection<SetorComercial> colecaoSetorComercial = null; // Verifica se o Setor existe if (codigoSetorComercial != null && !codigoSetorComercial.equals("")) { filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidade)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercial)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); colecaoSetorComercial = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (colecaoSetorComercial != null && !colecaoSetorComercial.isEmpty()) { Iterator<SetorComercial> iColecaoSetorComercial = colecaoSetorComercial.iterator(); retorno = iColecaoSetorComercial.next(); }else { throw new ActionServletException("atencao.pesquisa_inexistente", null, "Setor Comercial"); } } return retorno; } }