package gcom.relatorio.atendimentopublico;
import gcom.atendimentopublico.ordemservico.bean.RelacaoOrdensServicoConcluidasHelper;
import gcom.batch.Relatorio;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.ControladorException;
import gcom.util.agendadortarefas.AgendadorTarefas;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* [UC0432] - Gerar Relatorio Acompanhamento Ordem de Servico de Hidrometro
*
* Tipo 3 - Por Local de Instalacao - Relatorio Relacao das Ordens de Servico Concluidas.
*
* @author Ivan S�rgio
* @created 04/04/2008
*
*/
public class RelatorioRelacaoOrdensServicoConcluidas extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioRelacaoOrdensServicoConcluidas(Usuario usuario, String nomeRelatorio) {
super(usuario, nomeRelatorio);
}
@Deprecated
public RelatorioRelacaoOrdensServicoConcluidas() {
super(null, "");
}
public Object executar() throws TarefaException {
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
String tipoOrdem = (String) getParametro("tipoOrdem");
String situacaoOrdemServico = (String) getParametro("situacaoOrdemServico").toString();
String firma = (String) getParametro("firma");
String nomeFirma = (String) getParametro("nomeFirma");
String idLocalidadeInicial = (String) getParametro("idLocalidadeInicial");
String idLocalidadeFinal = (String) getParametro("idLocalidadeFinal");
String dataEncerramentoInicial = (String) getParametro("dataEncerramentoInicial");
String dataEncerramentoFinal = (String) getParametro("dataEncerramentoFinal");
String idMotivoEncerramento = (String) getParametro("idMotivoEncerramento").toString();
String idSetorComercialInicial = (String) getParametro("idSetorComercialFinal");
String idSetorComercialFinal = (String) getParametro("idSetorComercialFinal");
String codigoQuadraInicial = (String) getParametro("codigoQuadraInicial");
String codigoQuadraFinal = (String) getParametro("codigoQuadraFinal");
String codigoRotaInicial = (String) getParametro("codigoRotaInicial");
String codigoRotaFinal = (String) getParametro("codigoRotaFinal");
String sequenciaRotaInicial = (String) getParametro("sequenciaRotaInicial");
String sequenciaRotaFinal = (String) getParametro("sequenciaRotaFinal");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// valor de retorno
byte[] retorno = null;
// cole��o de beans do relat�rio
List<RelatorioRelacaoOrdensServicoConcluidasBean> relatorioBeans = new ArrayList<RelatorioRelacaoOrdensServicoConcluidasBean>();
Fachada fachada = Fachada.getInstancia();
RelatorioRelacaoOrdensServicoConcluidasBean relatorioBean = null;
Collection<RelacaoOrdensServicoConcluidasHelper> colecaoDadosHelper = fachada
.pesquisarOrdemServicoConcluidaGerarRelatorioAcompanhamentoHidrometro(
firma, tipoOrdem, situacaoOrdemServico, idLocalidadeInicial,
idLocalidadeFinal, dataEncerramentoInicial, dataEncerramentoFinal,
idMotivoEncerramento, idSetorComercialInicial, idSetorComercialFinal,
codigoQuadraInicial, codigoQuadraFinal, codigoRotaInicial, codigoRotaFinal,
sequenciaRotaInicial, sequenciaRotaFinal);
if (colecaoDadosHelper != null && !colecaoDadosHelper.isEmpty()) {
Iterator<RelacaoOrdensServicoConcluidasHelper> iColecaoDados = colecaoDadosHelper.iterator();
while (iColecaoDados.hasNext()) {
//dados = (Object[]) iColecaoDados.next();
RelacaoOrdensServicoConcluidasHelper helper = iColecaoDados.next();
relatorioBean = new RelatorioRelacaoOrdensServicoConcluidasBean();
// Numero da Ordem
relatorioBean.setNumeroOrdem(helper.getIdOrdemServico().toString());
// Imovel Selecionado
relatorioBean.setImovel(helper.getIdImovel().toString());
// Localidade
relatorioBean.setIdLocalidade(helper.getIdLocalidade().toString());
// Inscricao do Imovel
Imovel imovel = new Imovel();
Localidade localidade = new Localidade();
localidade.setId(helper.getIdLocalidade());
SetorComercial setorComercial = new SetorComercial();
setorComercial.setCodigo(helper.getCodigoSetorComercial());
Quadra quadra = new Quadra();
quadra.setNumeroQuadra(helper.getNumeroQuadra());
imovel.setId(helper.getIdImovel());
imovel.setLocalidade(localidade);
imovel.setSetorComercial(setorComercial);
imovel.setQuadra(quadra);
imovel.setLote(helper.getLote());
imovel.setSubLote(helper.getSubLote());
relatorioBean.setInscricao(imovel.getInscricaoFormatada());
// Data Geracao
relatorioBean.setDataGeracao(helper.getDataGeracao());
// Data Encerramento
relatorioBean.setDataEncerramento(helper.getDataEncerramento());
// Motivo Encerramento
relatorioBean.setMotivoEncerramento(helper.getMotivoEncerramento());
// Situacao selecionada
relatorioBean.setSituacao(situacaoOrdemServico);
// Tipo do Servico
relatorioBean.setTipoServico(tipoOrdem);
// Periodo encerramento
if (dataEncerramentoInicial != null && !dataEncerramentoInicial.equals("") &&
dataEncerramentoFinal != null && !dataEncerramentoFinal.equals("")) {
relatorioBean.setPeriodoEncerramento(dataEncerramentoInicial + " � " + dataEncerramentoFinal);
}else {
relatorioBean.setPeriodoEncerramento("");
}
// Nome Localidade
relatorioBean.setNomeLocalidade(helper.getNomeLocalidade());
// Firma
relatorioBean.setFirma(firma);
// Nome Firma
relatorioBean.setNomeFirma(nomeFirma);
// Endereco abreviado
relatorioBean.setEndereco(fachada.obterEnderecoAbreviadoImovel(imovel.getId()));
// Id do Setor Comercial
relatorioBean.setIdSetorComercial(helper.getIdSetorComercial().toString());
// Codigo Setor Comercial
relatorioBean.setCodigoSetorComercial(helper.getCodigoSetorComercial().toString());
// Nome Setor Comercial
relatorioBean.setNomeSetorComercial(helper.getNomeSetorComercial());
// Id do Local de Instalacao do Hidrometro
relatorioBean.setIdLocalInstalacao(helper.getIdLocalInstalacaoHidrometro().toString());
// Descricao do Local de Instalacao do Hidrometro
relatorioBean.setDescricaoLocalInstalacao(helper.getDescricaoLocalInstalacaoHidrometro());
// adiciona o bean a cole��o
relatorioBeans.add(relatorioBean);
}
// Par�metros do relat�rio
Map<String, String> parametros = new HashMap<String, String>();
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
if(this.nomeRelatorio.equals(ConstantesRelatorios.RELATORIO_RELACAO_ORDENS_SERVICO_ENCERRADAS_MOTIVO_ENCERRAMENTO)){
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_RELACAO_ORDENS_SERVICO_ENCERRADAS_MOTIVO_ENCERRAMENTO,
parametros, ds, tipoFormatoRelatorio);
}else{
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_RELACAO_ORDENS_SERVICO_CONCLUIDAS,
parametros, ds, tipoFormatoRelatorio);
}
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno,
Relatorio.RELATORIO_RELACAO_OS_CONCLUIDAS,
idFuncionalidadeIniciada);
} catch (ControladorException e) {
e.printStackTrace();
throw new TarefaException("Erro ao gravar relat�rio no sistema", e);
}
// ------------------------------------
}else {
throw new ActionServletException("atencao.pesquisa.nenhumresultado");
}
// retorna o relat�rio gerado
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
return 0;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioRelacaoOrdensServicoConcluidas",
this);
}
}