package gcom.gui.relatorio.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.FiltroOSReferidaRetornoTipo; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.OsReferidaRetornoTipo; import gcom.batch.Relatorio; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.relatorio.ConstantesRelatorios; import gcom.relatorio.RelatorioDataSource; import gcom.relatorio.atendimentopublico.ordemservico.RelatorioOrdemServicoFiscalizacaoAnaliticoBean; import gcom.relatorio.atendimentopublico.ordemservico.RelatorioOrdemServicoFiscalizacaoSinteticoBean; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaException; import gcom.tarefa.TarefaRelatorio; import gcom.util.ControladorException; import gcom.util.Util; import gcom.util.agendadortarefas.AgendadorTarefas; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /** * * * [UC1213] Emitir Relatorio de Ordem de Sercico de Fiscalizacao * * @author Paulo Diniz * @date 02/08/2011 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public class RelatorioOrdensServicoFiscalizacaoAction extends TarefaRelatorio { private static final long serialVersionUID = 1L; private int relatorioTipoFiscalizacao; public RelatorioOrdensServicoFiscalizacaoAction(Usuario usuario, String tipoRelatorio) { super(usuario, tipoRelatorio); } @Deprecated public RelatorioOrdensServicoFiscalizacaoAction() { super(null, ""); } public Object executar() throws TarefaException { // ------------------------------------ Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); // ------------------------------------ //Par�metros vindos do gerar relat�rio Collection colecaoOrdemServico = (Collection)getParametro("colecaoOrdemServico"); int tipoFormatoRelatorio = (Integer)getParametro("tipoFormatoRelatorio"); relatorioTipoFiscalizacao = (Integer)getParametro("relatorioTipoFiscalizacao"); String idLocalidadeFinal = (String)getParametro("idLocalidadeFinal"); String idLocalidadeInicial = (String)getParametro("idLocalidadeInicial"); String periodoFinal = (String)getParametro("periodoFinal"); String periodoInicial =(String)getParametro("periodoInicial"); String descLocalidadeInicial = (String)getParametro("descLocalidadeInicial"); String descLocalidadeFinal = (String)getParametro("descLocalidadeFinal"); String idGerenciaRegional = (String)getParametro("idGerenciaRegional"); String idUnidadeNegocios = (String)getParametro("idUnidadeNegocios"); String situacaoOS = (String)getParametro("situacaoOS"); String idOSReferidaRetornoTipo = (String)getParametro("idOSReferidaRetornoTipo"); String aceitacaoDaOS = (String)getParametro("aceitacaoDaOS"); //Vari�veis Fachada fachada = Fachada.getInstancia(); SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); Map parametros = new HashMap(); //valor de retorno byte[] retorno = null; //Relatorio Analitico if(relatorioTipoFiscalizacao == 1){ //Define a vari�lvel de nome usada para construir o relatorio this.nomeRelatorio = ConstantesRelatorios.RELATORIO_ORDEM_SERVICO_FISCALIZACAO_ANALITICO; //Montar Cabe�alho parametros = montarCabecalhoAnalitico(idLocalidadeInicial, idLocalidadeFinal, periodoInicial, periodoFinal, descLocalidadeInicial, descLocalidadeFinal, idGerenciaRegional, idUnidadeNegocios, situacaoOS, idOSReferidaRetornoTipo, aceitacaoDaOS, sistemaParametro, fachada); //Montar Beans RelatorioDataSource ds = montarBeansAnalitico(colecaoOrdemServico,fachada); //Montar relat�rio retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_ORDEM_SERVICO_FISCALIZACAO_ANALITICO, parametros, ds, tipoFormatoRelatorio); // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_ORDEM_SERVICO_FISCALIZACAO_ANALITICO, idFuncionalidadeIniciada); } catch (ControladorException e) { e.printStackTrace(); throw new TarefaException("Erro ao gravar relat�rio no sistema", e); } // ------------------------------------ } //Relatorio Sintetico else if(relatorioTipoFiscalizacao == 2){ //Define a vari�lvel de nome usada para construir o relatorio this.nomeRelatorio = ConstantesRelatorios.RELATORIO_ORDEM_SERVICO_FISCALIZACAO_SINTETICO; //Montar Cabe�alho parametros = montarCabecalhoSintetico(idLocalidadeInicial, idLocalidadeFinal, periodoInicial, periodoFinal, descLocalidadeInicial, descLocalidadeFinal, idGerenciaRegional, idUnidadeNegocios, sistemaParametro, fachada); //Montar Beans RelatorioDataSource ds = montarBeansSintetico(colecaoOrdemServico,fachada); //Montar relat�rio retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_ORDEM_SERVICO_FISCALIZACAO_SINTETICO, parametros, ds, tipoFormatoRelatorio); // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_ORDEM_SERVICO_FISCALIZACAO_SINTETICO, idFuncionalidadeIniciada); } catch (ControladorException e) { e.printStackTrace(); throw new TarefaException("Erro ao gravar relat�rio no sistema", e); } // ------------------------------------ } // retorna o relat�rio gerado return retorno; } /** * * M�todo auxiliar para montar o cabe�alho do relat�rio analitico * * @author Paulo Diniz * @data 12/08/2011 */ private Map montarCabecalhoAnalitico(String idLocalidadeInicial, String idLocalidadeFinal, String periodoInicial, String periodoFinal, String descLocalidadeInicial, String descLocalidadeFinal, String idGerenciaRegional, String idUnidadeNegocios, String situacaoOS, String idOSReferidaRetornoTipo, String aceitacaoDaOS, SistemaParametro sistemaParametro, Fachada fachada) { HashMap parametros = new HashMap(); //Imagem do relat�rio parametros.put("imagem", sistemaParametro.getImagemRelatorio()); //Insere os par�metros na hash de retorno if(idLocalidadeInicial != null && !idLocalidadeInicial.equals("")){ parametros.put("localidadeInicial",descLocalidadeInicial); } if(idLocalidadeFinal != null && !idLocalidadeFinal.equals("")){ parametros.put("localidadeFinal",descLocalidadeFinal); } parametros.put("periodoInicial",Util.formatarMesAnoParaData(periodoInicial,"01","00:00:00")); String[] mesAnoArray = periodoFinal.split("/"); String ultimoDiaMEs = Util.obterUltimoDiaMes(Integer.parseInt(mesAnoArray[0]),Integer.parseInt(mesAnoArray[1])); parametros.put("periodoFinal",Util.formatarMesAnoParaData(periodoFinal,ultimoDiaMEs,"23:59:59")); if(idGerenciaRegional != null && !idGerenciaRegional.equals("")){ FiltroGerenciaRegional filtroGerencia = new FiltroGerenciaRegional(); filtroGerencia.adicionarParametro(new ParametroSimples(FiltroGerenciaRegional.ID, idGerenciaRegional)); Collection collGerenciaRegional = fachada.pesquisar(filtroGerencia, GerenciaRegional.class.getName()); GerenciaRegional gerencia = (GerenciaRegional) collGerenciaRegional.iterator().next(); parametros.put("gerenciaRegional",gerencia.getNome()); }else{ parametros.put("gerenciaRegional",""); } if(idUnidadeNegocios != null && !idUnidadeNegocios.equals("")){ FiltroUnidadeNegocio filtroUnidade = new FiltroUnidadeNegocio(); filtroUnidade.adicionarParametro(new ParametroSimples(FiltroUnidadeNegocio.ID, idUnidadeNegocios)); Collection collUnidadeNegocio = fachada.pesquisar(filtroUnidade, UnidadeNegocio.class.getName()); UnidadeNegocio unidade = (UnidadeNegocio) collUnidadeNegocio.iterator().next(); parametros.put("unidadeNegocios",unidade.getNome()); }else{ parametros.put("unidadeNegocios",""); } if(idOSReferidaRetornoTipo != null && !idOSReferidaRetornoTipo.equals("")){ FiltroOSReferidaRetornoTipo filtroRetornoTipo = new FiltroOSReferidaRetornoTipo(); filtroRetornoTipo.adicionarParametro(new ParametroSimples(FiltroOSReferidaRetornoTipo.ID, idOSReferidaRetornoTipo)); Collection collTipoRetorno = fachada.pesquisar(filtroRetornoTipo, OsReferidaRetornoTipo.class.getName()); OsReferidaRetornoTipo retornoTipo = (OsReferidaRetornoTipo) collTipoRetorno.iterator().next(); parametros.put("tipoRetorno",retornoTipo.getDescricao()); }else{ parametros.put("tipoRetorno",""); } if(situacaoOS != null && !situacaoOS.equals("")){ if(situacaoOS.equals("-1")){ parametros.put("situacao","TODOS"); }else if(situacaoOS.equals("1")){ parametros.put("situacao","PENDENTES"); }else if(situacaoOS.equals("2")){ parametros.put("situacao","ENCERRADOS"); } }else{ parametros.put("situacao",""); } if(aceitacaoDaOS != null && !aceitacaoDaOS.equals("") && aceitacaoDaOS.equals("1")){ parametros.put("aceitacao","SIM"); }else if(aceitacaoDaOS != null && !aceitacaoDaOS.equals("") && aceitacaoDaOS.equals("2")){ parametros.put("aceitacao","N�O"); }else if(aceitacaoDaOS != null && !aceitacaoDaOS.equals("") && aceitacaoDaOS.equals("3")){ parametros.put("aceitacao","TODOS"); } //retorna ao m�todo principal return parametros; } /** * * M�todo auxiliar para montar os dados do relat�rio analitico * * @author Paulo Diniz * @data 02/08/2011 */ private RelatorioDataSource montarBeansAnalitico(Collection colecaoOrdemServico, Fachada fachada) { //lista de retorno ArrayList<RelatorioOrdemServicoFiscalizacaoAnaliticoBean> beans = new ArrayList<RelatorioOrdemServicoFiscalizacaoAnaliticoBean>(); //Itera��o com cada im�vel retornado pelo filtro Iterator it = colecaoOrdemServico.iterator(); while(it.hasNext()){ OrdemServico ordemServico = (OrdemServico) it.next(); OrdemServico ordemFiscalidada = fachada.pesquisarOrdemServicoFiscalizada(ordemServico.getOsReferencia().getId()); RelatorioOrdemServicoFiscalizacaoAnaliticoBean bean = new RelatorioOrdemServicoFiscalizacaoAnaliticoBean(); if(ordemFiscalidada.getImovel() != null){ bean.setGerenciaRegional(ordemFiscalidada.getImovel().getLocalidade().getUnidadeNegocio().getGerenciaRegional().getNome()); bean.setUnidadeNegocio(ordemFiscalidada.getImovel().getLocalidade().getUnidadeNegocio().getNome()); bean.setLocalidade(ordemFiscalidada.getImovel().getLocalidade().getDescricao()); }else{ bean.setGerenciaRegional(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getUnidadeNegocio().getGerenciaRegional().getNome()); bean.setUnidadeNegocio(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getUnidadeNegocio().getNome()); bean.setLocalidade(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getDescricao()); } String mes = Util.getMes(ordemServico.getDataGeracao())+""; if(Util.getMes(ordemServico.getDataGeracao()) < 10){ mes = "0"+mes; } bean.setMesAnoReferencia(mes +"/" +Util.getAno(ordemServico.getDataGeracao())); bean.setQuantidade(new BigDecimal("1")); if(ordemServico.getOsReferidaRetornoTipo() != null && ordemServico.getOsReferidaRetornoTipo().getIndicadorDeferimento() == 1){ bean.setAceitacaoFiscalizada("Sim"); }else if(ordemServico.getOsReferidaRetornoTipo() != null && ordemServico.getOsReferidaRetornoTipo().getIndicadorDeferimento() == 2){ bean.setAceitacaoFiscalizada("N�o"); }else{ bean.setAceitacaoFiscalizada(""); } if(ordemServico.getDataGeracao() != null){ bean.setDataGeracaoFiscalizacao(Util.formatarData(ordemServico.getDataGeracao())); }else{ bean.setDataGeracaoFiscalizacao(""); } if(ordemServico.getAtendimentoMotivoEncerramento() != null){ bean.setMotivoEncerFiscalizacao(ordemServico.getAtendimentoMotivoEncerramento().getDescricao()); }else{ bean.setMotivoEncerFiscalizacao(""); } if(ordemServico.getDataEncerramento() != null){ bean.setDataEncerramentoFiscalizacao(Util.formatarData(ordemServico.getDataEncerramento())); }else{ bean.setDataEncerramentoFiscalizacao(""); } if(ordemServico.getOsReferidaRetornoTipo() != null){ bean.setTipoRetornoFiscalizacao(ordemServico.getOsReferidaRetornoTipo().getDescricao()); }else{ bean.setTipoRetornoFiscalizacao(""); } bean.setIdFiscalizacao(ordemServico.getId().intValue()+""); bean.setIdFiscalizada(ordemFiscalidada.getId().intValue()+""); if(ordemFiscalidada.getImovel() != null){ ClienteImovel clienteImovel = fachada.pesquisarClienteImovelOSFiscalizada(ordemFiscalidada.getImovel().getId()); if(clienteImovel != null && clienteImovel.getCliente() != null){ bean.setClienteFiscalizada(clienteImovel.getCliente().getNome()); }else{ bean.setClienteFiscalizada(""); } bean.setImovelFiscalizacao(ordemFiscalidada.getImovel().getMatriculaFormatada()); }else{ bean.setClienteFiscalizada(""); bean.setImovelFiscalizacao(""); } if(ordemFiscalidada.getAtendimentoMotivoEncerramento() != null){ bean.setMotivoEncerFiscalizada(ordemFiscalidada.getAtendimentoMotivoEncerramento().getDescricao()); }else{ bean.setMotivoEncerFiscalizada(""); } if(ordemFiscalidada.getOsReferidaRetornoTipo() != null){ bean.setTipoRetornoFiscalizada(ordemFiscalidada.getOsReferidaRetornoTipo().getDescricao()); }else{ bean.setTipoRetornoFiscalizada(""); } if(ordemFiscalidada.getServicoTipo() != null){ bean.setTipoServicoFiscalizada(ordemFiscalidada.getServicoTipo().getDescricao()); }else{ bean.setTipoServicoFiscalizada(""); } if(ordemFiscalidada.getDataEncerramento() != null){ bean.setDataExecucaoFiscalizada(Util.formatarData(ordemFiscalidada.getDataEncerramento())); }else{ bean.setDataExecucaoFiscalizada(""); } beans.add(bean); } RelatorioDataSource ds = new RelatorioDataSource(beans); return ds; } /** * * M�todo auxiliar para montar o cabe�alho do relat�rio sintetico * * @author Paulo Diniz * @data 12/08/2011 */ private Map montarCabecalhoSintetico(String idLocalidadeInicial, String idLocalidadeFinal, String periodoInicial, String periodoFinal, String descLocalidadeInicial, String descLocalidadeFinal, String idGerenciaRegional, String idUnidadeNegocios, SistemaParametro sistemaParametro, Fachada fachada) { HashMap parametros = new HashMap(); //Imagem do relat�rio parametros.put("imagem", sistemaParametro.getImagemRelatorio()); //Insere os par�metros na hash de retorno if(idLocalidadeInicial != null && !idLocalidadeInicial.equals("")){ parametros.put("localidadeInicial",descLocalidadeInicial); } if(idLocalidadeFinal != null && !idLocalidadeFinal.equals("")){ parametros.put("localidadeFinal",descLocalidadeFinal); } parametros.put("periodoInicial",Util.formatarMesAnoParaData(periodoInicial,"01","00:00:00")); String[] mesAnoArray = periodoFinal.split("/"); String ultimoDiaMEs = Util.obterUltimoDiaMes(Integer.parseInt(mesAnoArray[0]),Integer.parseInt(mesAnoArray[1])); parametros.put("periodoFinal",Util.formatarMesAnoParaData(periodoFinal,ultimoDiaMEs,"23:59:59")); if(idGerenciaRegional != null && !idGerenciaRegional.equals("")){ FiltroGerenciaRegional filtroGerencia = new FiltroGerenciaRegional(); filtroGerencia.adicionarParametro(new ParametroSimples(FiltroGerenciaRegional.ID, idGerenciaRegional)); Collection collGerenciaRegional = fachada.pesquisar(filtroGerencia, GerenciaRegional.class.getName()); GerenciaRegional gerencia = (GerenciaRegional) collGerenciaRegional.iterator().next(); parametros.put("gerenciaRegional",gerencia.getNome()); }else{ parametros.put("gerenciaRegional",""); } if(idUnidadeNegocios != null && !idUnidadeNegocios.equals("")){ FiltroUnidadeNegocio filtroUnidade = new FiltroUnidadeNegocio(); filtroUnidade.adicionarParametro(new ParametroSimples(FiltroUnidadeNegocio.ID, idUnidadeNegocios)); Collection collUnidadeNegocio = fachada.pesquisar(filtroUnidade, UnidadeNegocio.class.getName()); UnidadeNegocio unidade = (UnidadeNegocio) collUnidadeNegocio.iterator().next(); parametros.put("unidadeNegocios",unidade.getNome()); }else{ parametros.put("unidadeNegocios",""); } //retorna ao m�todo principal return parametros; } /** * * M�todo auxiliar para montar os dados do relat�rio analitico * * @author Paulo Diniz * @data 02/08/2011 */ private RelatorioDataSource montarBeansSintetico(Collection colecaoOrdemServico, Fachada fachada) { //lista de retorno ArrayList<RelatorioOrdemServicoFiscalizacaoSinteticoBean> beans = new ArrayList<RelatorioOrdemServicoFiscalizacaoSinteticoBean>(); ArrayList<RelatorioOrdemServicoFiscalizacaoSinteticoBean> beansMotivoEncerramento = new ArrayList<RelatorioOrdemServicoFiscalizacaoSinteticoBean>(); List<OrdemServico> listaOS = new ArrayList<OrdemServico>(colecaoOrdemServico); int quatidadeSomadaTipoRetorno = 1; int quatidadeSomadaMotivo = 1; for (int i = 0; i < listaOS.size(); i++) { OrdemServico ordemServico = listaOS.get(i); OrdemServico ordemFiscalidada = fachada.pesquisarOrdemServicoFiscalizada(ordemServico.getOsReferencia().getId()); OrdemServico ordemProx = null; OrdemServico ordemFiscalidadaProx = null; Localidade localidadeProx = null; Localidade localidade = null; if(i < listaOS.size()-1){ ordemProx = listaOS.get(i+1); ordemFiscalidadaProx = fachada.pesquisarOrdemServicoFiscalizada(ordemProx.getOsReferencia().getId()); if(ordemFiscalidadaProx.getImovel() != null){ localidadeProx = ordemFiscalidadaProx.getImovel().getLocalidade(); }else{ localidadeProx = ordemFiscalidadaProx.getRegistroAtendimento().getLocalidade(); } if(ordemFiscalidada.getImovel() != null){ localidade = ordemFiscalidada.getImovel().getLocalidade(); }else{ localidade = ordemFiscalidada.getRegistroAtendimento().getLocalidade(); } } if(ordemServico.getOsReferidaRetornoTipo() != null){ boolean criaNovoBean = false; if(i < listaOS.size()-1){ if(ordemProx.getOsReferidaRetornoTipo() == null || ordemProx.getOsReferidaRetornoTipo().getId().intValue() != ordemServico.getOsReferidaRetornoTipo().getId().intValue() || localidadeProx == null || localidade.getId().intValue() != localidadeProx.getId().intValue()){ criaNovoBean = true; }else{ quatidadeSomadaTipoRetorno++; } }else{ criaNovoBean = true; } if(criaNovoBean){ RelatorioOrdemServicoFiscalizacaoSinteticoBean beanTipoRetorno = new RelatorioOrdemServicoFiscalizacaoSinteticoBean(); if(ordemFiscalidada.getImovel() != null){ beanTipoRetorno.setUnidadeNegocio(ordemFiscalidada.getImovel().getLocalidade().getUnidadeNegocio().getNome()); beanTipoRetorno.setGerenciaRegional(ordemFiscalidada.getImovel().getLocalidade().getUnidadeNegocio().getGerenciaRegional().getNome()); beanTipoRetorno.setLocalidade(ordemFiscalidada.getImovel().getLocalidade().getDescricao()); }else{ beanTipoRetorno.setUnidadeNegocio(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getUnidadeNegocio().getNome()); beanTipoRetorno.setGerenciaRegional(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getUnidadeNegocio().getGerenciaRegional().getNome()); beanTipoRetorno.setLocalidade(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getDescricao()); } String mes = Util.getMes(ordemServico.getDataGeracao())+""; if(Util.getMes(ordemServico.getDataGeracao()) < 10){ mes = "0"+mes; } beanTipoRetorno.setMesAnoReferencia(mes +"/" +Util.getAno(ordemServico.getDataGeracao())); beanTipoRetorno.setQuantidadeTipoRetorno(new BigDecimal(quatidadeSomadaTipoRetorno)); beanTipoRetorno.setNomeTotal("OS de Fiscaliza��o para os Tipos de Retorno:"); beanTipoRetorno.setNomeColuna("Tipo de Retorno"); beanTipoRetorno.setItemDescricao(ordemServico.getOsReferidaRetornoTipo().getDescricao()); beans.add(beanTipoRetorno); quatidadeSomadaTipoRetorno = 1; } } if(ordemServico.getAtendimentoMotivoEncerramento() != null){ boolean criaNovoBean = false; if(i < listaOS.size()-1){ if(ordemProx.getAtendimentoMotivoEncerramento() == null || ordemProx.getAtendimentoMotivoEncerramento().getId().intValue() != ordemServico.getAtendimentoMotivoEncerramento().getId().intValue() || localidadeProx == null || localidade.getId().intValue() != localidadeProx.getId().intValue()){ criaNovoBean = true; }else{ quatidadeSomadaMotivo++; } }else{ criaNovoBean = true; } if(criaNovoBean){ RelatorioOrdemServicoFiscalizacaoSinteticoBean beanMotivoEncerramento = new RelatorioOrdemServicoFiscalizacaoSinteticoBean(); if(ordemServico.getImovel() != null){ beanMotivoEncerramento.setUnidadeNegocio(ordemFiscalidada.getImovel().getLocalidade().getUnidadeNegocio().getNome()); beanMotivoEncerramento.setGerenciaRegional(ordemFiscalidada.getImovel().getLocalidade().getUnidadeNegocio().getGerenciaRegional().getNome()); beanMotivoEncerramento.setLocalidade(ordemFiscalidada.getImovel().getLocalidade().getDescricao()); }else{ beanMotivoEncerramento.setUnidadeNegocio(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getUnidadeNegocio().getNome()); beanMotivoEncerramento.setGerenciaRegional(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getUnidadeNegocio().getGerenciaRegional().getNome()); beanMotivoEncerramento.setLocalidade(ordemFiscalidada.getRegistroAtendimento().getLocalidade().getDescricao()); } String mes = Util.getMes(ordemServico.getDataGeracao())+""; if(Util.getMes(ordemServico.getDataGeracao()) < 10){ mes = "0"+mes; } beanMotivoEncerramento.setMesAnoReferencia(mes +"/" +Util.getAno(ordemServico.getDataGeracao())); beanMotivoEncerramento.setQuantidadeMotivo(new BigDecimal(quatidadeSomadaMotivo)); beanMotivoEncerramento.setNomeTotal("OS de Fiscaliza��o para os Motivos de Encerramento:"); beanMotivoEncerramento.setNomeColuna("Motivo de Encerramento"); beanMotivoEncerramento.setItemDescricao(ordemServico.getAtendimentoMotivoEncerramento().getDescricao()); beansMotivoEncerramento.add(beanMotivoEncerramento); quatidadeSomadaMotivo = 1; } } if(i == 16){ System.out.println("a"); } if(localidadeProx != null){ if(localidade.getId().intValue() != localidadeProx.getId().intValue()){ beans.addAll(beansMotivoEncerramento); beansMotivoEncerramento.clear(); } }else{ beans.addAll(beansMotivoEncerramento); } } RelatorioDataSource ds = new RelatorioDataSource(beans); return ds; } @Override public int calcularTotalRegistrosRelatorio() { Collection colecaoOrdemServico = (Collection)getParametro("colecaoOrdemServico"); if(colecaoOrdemServico == null || colecaoOrdemServico.isEmpty()){ return 0; } return colecaoOrdemServico.size(); } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioOrdensServicoFiscalizacaoAction", this); // AgendadorTarefas.agendarTarefa("RelatorioOrdensServicoFiscalizacaoSintetico", this); } }