package br.com.centralit.citcorpore.integracao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import br.com.centralit.citcorpore.bean.CategoriaServicoDTO;
import br.com.centralit.citcorpore.bean.GraficoPizzaDTO;
import br.com.centralit.citcorpore.bean.RequisicaoMudancaDTO;
import br.com.centralit.citcorpore.bean.RiscoDTO;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.PersistenceException;
import br.com.citframework.integracao.CrudDaoDefaultImpl;
import br.com.citframework.integracao.Field;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.SQLConfig;
/**
* @author rosana.godinho
*
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public class GraficosDao extends CrudDaoDefaultImpl {
public GraficosDao() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
public String getTableName() {
return null;
}
public Collection find(IDto obj) throws PersistenceException {
return null;
}
public Class getBean() {
return CategoriaServicoDTO.class;
}
@Override
public Collection<Field> getFields() {
return null;
}
@Override
public Collection list() throws PersistenceException {
return null;
}
public ArrayList<GraficoPizzaDTO> getRelatorioPorNomeCategoria() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT nomecategoriaservico as valor1, COUNT(*) as valor2 ");
sql.append("FROM solicitacaoservico ");
sql.append("INNER JOIN execucaosolicitacao ");
sql.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ");
sql.append("INNER JOIN tipodemandaservico ");
sql.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ");
sql.append("INNER JOIN servicocontrato ");
sql.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ");
sql.append("INNER JOIN servico ");
sql.append("ON servico.idservico = servicocontrato.idservico ");
sql.append("INNER JOIN categoriaservico ");
sql.append("ON categoriaservico.idcategoriaservico = servico.idcategoriaservico ");
sql.append("WHERE tipodemandaservico.classificacao LIKE 'I' ");
sql.append("AND (UPPER(solicitacaoservico.situacao) <> 'FECHADA' AND UPPER(solicitacaoservico.situacao) <> 'CANCELADA' ");
sql.append("AND UPPER(solicitacaoservico.situacao) <> 'RECLASSIFICADA') ");
sql.append("GROUP BY nomecategoriaservico ");
List<String> camposRetorno = new ArrayList<String>();
ArrayList<GraficoPizzaDTO> result = new ArrayList<GraficoPizzaDTO>();
List lista = null;
try {
lista = this.execSQL(sql.toString(), null);
camposRetorno.add("campo");
camposRetorno.add("valor");
result = (ArrayList)this.engine.listConvertion(GraficoPizzaDTO.class, lista, camposRetorno);
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public ArrayList<GraficoPizzaDTO> getRelatorioPorSituacao() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT situacao as valor1, COUNT(*) as valor2 ");
sql.append("FROM solicitacaoservico ");
sql.append("INNER JOIN execucaosolicitacao ");
sql.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ");
sql.append("INNER JOIN tipodemandaservico ");
sql.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ");
sql.append("INNER JOIN servicocontrato ");
sql.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ");
sql.append("WHERE tipodemandaservico.classificacao LIKE 'I' ");
sql.append("AND (UPPER(solicitacaoservico.situacao) <> 'FECHADA' AND UPPER(solicitacaoservico.situacao) <> 'CANCELADA' ");
sql.append("AND UPPER(solicitacaoservico.situacao) <> 'RECLASSIFICADA') ");
sql.append("GROUP BY situacao ");
List<String> camposRetorno = new ArrayList<String>();
ArrayList<GraficoPizzaDTO> result = new ArrayList<GraficoPizzaDTO>();
List lista = null;
try {
lista = this.execSQL(sql.toString(), null);
camposRetorno.add("campo");
camposRetorno.add("valor");
result = (ArrayList)this.engine.listConvertion(GraficoPizzaDTO.class, lista, camposRetorno);
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public ArrayList<GraficoPizzaDTO> getRelatorioPorGrupo() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT grupo.nome as valor1, COUNT(*) as valor2 ");
sql.append("FROM solicitacaoservico ");
sql.append("INNER JOIN execucaosolicitacao ");
sql.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ");
sql.append("INNER JOIN tipodemandaservico ");
sql.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ");
sql.append("INNER JOIN grupo ");
sql.append("ON solicitacaoservico.idgrupoatual = grupo.idgrupo ");
sql.append("WHERE tipodemandaservico.classificacao LIKE 'I' ");
sql.append("AND (UPPER(solicitacaoservico.situacao) <> 'FECHADA' AND UPPER(solicitacaoservico.situacao) <> 'CANCELADA' ");
sql.append("AND UPPER(solicitacaoservico.situacao) <> 'RECLASSIFICADA') ");
sql.append("GROUP BY grupo.nome ");
List<String> camposRetorno = new ArrayList<String>();
ArrayList<GraficoPizzaDTO> result = new ArrayList<GraficoPizzaDTO>();
List lista = null;
try {
lista = this.execSQL(sql.toString(), null);
camposRetorno.add("campo");
camposRetorno.add("valor");
result = (ArrayList)this.engine.listConvertion(GraficoPizzaDTO.class, lista, camposRetorno);
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* @author rodrigo.oliveira
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaIncidentesOrigem(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
StringBuilder sql = new StringBuilder();
sql.append("SELECT origematendimento.descricao as valor1, COUNT(*) as valor2 FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("INNER JOIN origematendimento ")
.append("ON solicitacaoservico.idorigem = origematendimento.idorigem ")
.append("INNER JOIN servicocontrato ")
.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("WHERE tipodemandaservico.classificacao LIKE ? ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (tiposervico.idtiposervico = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idfaseatual = ? OR ? = -1) ")
.append("AND (solicitacaoservico.situacao = ? OR ? = '*') ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY origematendimento.descricao ");
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
/**
* Retorna o N�mero M�ximo de registros que dever� ser retornado na consulta.
*
* @param parametros
* @return N�mero M�ximo de Registros
* @author valdoilo.damasceno
*/
private Integer obterValorParametroNumeroMaximoDeRegistros(HashMap parametros) {
String valor = (String) parametros.get("PARAM.topList");
if (StringUtils.isNotBlank(valor) && !valor.trim().equals("*")) {
try {
return new Integer(valor);
} catch (NumberFormatException e) {
return null;
}
} else {
return null;
}
}
/**
* Acrescenta no SQL a condi��o para limitar o retorno de registros de acordo com o valor selecionado.
*
* @param sql
* - String SQL.
* @param maximoRegistros
* - N�mero m�ximo de registros.
* @author valdoilo.damasceno
*/
private void acrescentarNaSqlOLimitadorDeRegistros(StringBuilder sql, Integer maximoRegistros) {
if (maximoRegistros == null)
return;
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.insert(0, "SELECT valor1, valor2 FROM (");
sql.insert(sql.length(), ") where rownum <= " + maximoRegistros);
} else if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.SQLSERVER)) {
sql.replace(0, 6, " select valor1, valor2 from (select ROW_NUMBER() OVER(order by (select 1)) rownum, ");
sql.append(" ) as teste where rownum between 0 and " + maximoRegistros);
} else {
sql.append(" LIMIT " + maximoRegistros);
}
}
/**
* @author rodrigo.oliveira
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaIncidentesPorFase(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
StringBuilder sql = new StringBuilder();
sql.append("SELECT nomefase as valor1, COUNT(*) as valor2 FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("INNER JOIN faseservico ")
.append("ON solicitacaoservico.idfaseatual = faseservico.idfase ")
.append("INNER JOIN servicocontrato ")
.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("WHERE tipodemandaservico.classificacao LIKE ? ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (tiposervico.idtiposervico = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idfaseatual = ? OR ? = -1) ")
.append("AND (solicitacaoservico.situacao = ? OR ? = '*') ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY nomefase ");
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
/**
* @author rodrigo.oliveira
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaIncidentesPorServico(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT nomeservico as valor1, COUNT(*) as valor2 FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("INNER JOIN servicocontrato ")
.append(" ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("WHERE tipodemandaservico.classificacao LIKE ? ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (tiposervico.idtiposervico = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idfaseatual = ? OR ? = -1) ")
.append("AND (solicitacaoservico.situacao = ? OR ? = '*') ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY nomeservico ");
//TODO I para indicentes e R para requisi�oes
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
/**
* @author rodrigo.oliveira
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaIncidentesPorSituacao(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
StringBuilder sql = new StringBuilder();
sql.append("SELECT solicitacaoservico.situacao as valor1, COUNT(*) as valor2 FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("INNER JOIN servicocontrato ")
.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("WHERE tipodemandaservico.classificacao LIKE ? ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (tiposervico.idtiposervico = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idfaseatual = ? OR ? = -1) ")
.append("AND (solicitacaoservico.situacao = ? OR ? = '*') ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY solicitacaoservico.situacao ");
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
/**
* @author rodrigo.oliveira
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaIncidentesPorUnidade(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
StringBuilder sql = new StringBuilder();
sql.append("SELECT unidade.nome as valor1, COUNT(*) as valor2 FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("LEFT OUTER JOIN unidade ")
.append("ON solicitacaoservico.idunidade = unidade.idunidade ")
.append("INNER JOIN servicocontrato ")
.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("WHERE tipodemandaservico.classificacao LIKE ? ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (tiposervico.idtiposervico = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idfaseatual = ? OR ? = -1) ")
.append("AND (solicitacaoservico.situacao = ? OR ? = '*') ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY unidade.nome ");
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
/**
* @author rodrigo.oliveira
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaIncidentesPrioridade(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
StringBuilder sql = new StringBuilder();
sql.append("SELECT nomeprioridade as valor1, COUNT(*) as valor2 FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("INNER JOIN prioridade ")
.append("ON solicitacaoservico.idprioridade = prioridade.idprioridade ")
.append("INNER JOIN servicocontrato ")
.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("INNER JOIN contratos ")
.append("ON servicocontrato.idcontrato = contratos.idcontrato ")
.append("WHERE tipodemandaservico.classificacao LIKE ? ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (tiposervico.idtiposervico = ? OR ? = -1)")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idfaseatual = ? OR ? = -1) ")
.append("AND (solicitacaoservico.situacao = ? OR ? = '*') ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY nomeprioridade ");
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
/**
* @author rodrigo.oliveira
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaPesquisaSatisfacao(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
// I para indicentes e R para requisi�oes, * para ambos
parametrosBusca.add(tipo);
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
StringBuilder sql = new StringBuilder();
sql.append("SELECT (CASE nota WHEN 4 THEN '�timo' ")
.append("WHEN 3 THEN 'Bom' ")
.append("WHEN 2 THEN 'Regular' ")
.append("WHEN 1 THEN 'Ruim' ")
.append("ELSE '--' END) ")
.append(", COUNT(*) ")
.append("FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("LEFT OUTER JOIN pesquisasatisfacao ")
.append("ON pesquisasatisfacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("INNER JOIN servicocontrato ")
.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("INNER JOIN contratos ")
.append("ON servicocontrato.idcontrato = contratos.idcontrato ")
.append("WHERE ")
.append("(tipodemandaservico.classificacao LIKE ? OR ? = '*') ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY NOTA");
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
/**
* @author flavio.junior
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaIncidentesPorContrato(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
StringBuilder sql = new StringBuilder();
sql.append("SELECT contratos.numero as valor1, COUNT(*) as valor2 FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("LEFT OUTER JOIN unidade ")
.append("ON solicitacaoservico.idunidade = unidade.idunidade ")
.append("INNER JOIN servicocontrato ")
.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("INNER JOIN contratos ")
.append("ON servicocontrato.idcontrato = contratos.idcontrato ")
.append("WHERE tipodemandaservico.classificacao LIKE ? ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (tiposervico.idtiposervico = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idfaseatual = ? OR ? = -1) ")
.append("AND (solicitacaoservico.situacao = ? OR ? = '*') ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY contratos.numero");
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
/**
* @author flavio.junior
* @param HashMap de par�metros
* @return Collection de resultados da busca
*/
public Collection consultaIncidentesPorTipoServico(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idContrato")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idTipoServico")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idPrioridade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idOrigem")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idUnidade")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idFase")));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.situacao"));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
StringBuilder sql = new StringBuilder();
sql.append("SELECT tiposervico.nometiposervico as valor1, COUNT(*) as valor2 FROM solicitacaoservico ")
.append("INNER JOIN execucaosolicitacao ")
.append("ON execucaosolicitacao.idsolicitacaoservico = solicitacaoservico.idsolicitacaoservico ")
.append("INNER JOIN tipodemandaservico ")
.append("ON solicitacaoservico.idtipodemandaservico = tipodemandaservico.idtipodemandaservico ")
.append("LEFT OUTER JOIN unidade ")
.append("ON solicitacaoservico.idunidade = unidade.idunidade ")
.append("INNER JOIN servicocontrato ")
.append("ON solicitacaoservico.idservicocontrato = servicocontrato.idservicocontrato ")
.append("INNER JOIN contratos ")
.append("ON servicocontrato.idcontrato = contratos.idcontrato ")
.append("INNER JOIN servico ")
.append("ON servicocontrato.idservico = servico.idservico ")
.append("INNER JOIN tiposervico ")
.append("ON servico.idtiposervico = tiposervico.idtiposervico ")
.append("WHERE tipodemandaservico.classificacao LIKE ? ")
.append("AND (servicocontrato.idservico = ? OR ? = -1) ")
.append("AND (servicocontrato.idcontrato = ? OR ? = -1) ")
.append("AND (tiposervico.idtiposervico = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idprioridade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idorigem = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idunidade = ? OR ? = -1) ")
.append("AND (solicitacaoservico.idfaseatual = ? OR ? = -1) ")
.append("AND (solicitacaoservico.situacao = ? OR ? = '*') ")
.append("AND (solicitacaoservico.datahorasolicitacao BETWEEN ? AND ?) ")
.append("GROUP BY tiposervico.nometiposervico ");
this.acrescentarNaSqlOLimitadorDeRegistros(sql, obterValorParametroNumeroMaximoDeRegistros(parametros));
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
public Collection consultaMudancaPorImpacto(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
//parametrosBusca.add(tipo);
parametrosBusca.add(String.valueOf(parametros.get("PARAM.situacaoMudanca")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.situacaoMudanca")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idtipomudanca")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idtipomudanca")));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.urgencia")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.urgencia")));
StringBuilder sql = new StringBuilder();
if (tipo.equals("Baixa")) {
sql.append("SELECT 'Baixa' AS impacto, COUNT(*) AS quantidade FROM requisicaomudanca ");
}
if (tipo.equals("Media")) {
sql.append("SELECT 'M�dia' AS impacto, COUNT(*) AS quantidade FROM requisicaomudanca ");
}
if (tipo.equals("Alta")) {
sql.append("SELECT 'Alta' AS impacto, COUNT(*) AS quantidade FROM requisicaomudanca ");
}
sql.append(" WHERE (status = ? OR ? = '*') ");
sql.append(" AND (idtipomudanca = ? OR ? = -1) ");
sql.append(" AND (DATAHORAINICIO BETWEEN ? AND ?) ");
if (tipo.equals("Baixa")) {
sql.append(" AND (nivelimpacto = 'B') ");
}
if (tipo.equals("Media")) {
sql.append(" AND (nivelimpacto = 'M') ");
}
if (tipo.equals("Alta")) {
sql.append(" AND (nivelimpacto = 'A') ");
}
sql.append(" AND (nivelurgencia = ? OR ? = '*') ");
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
public Collection<RequisicaoMudancaDTO> consultaMudancaPorSLAAtrazo(HashMap parametros, String tipo) throws PersistenceException {
List parametrosBusca = new ArrayList();
List fields = new ArrayList();
List list = new ArrayList();
//TODO I para indicentes e R para requisi�oes
//parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idtipomudanca")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idtipomudanca")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.situacaoMudanca")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.situacaoMudanca")));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.impacto")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.impacto")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.urgencia")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.urgencia")));
StringBuilder sql = new StringBuilder();
sql.append("SELECT titulo, prazohh, prazomm, datahoraconclusao, datahoratermino, status FROM requisicaomudanca ");
sql.append(" WHERE datahoratermino IS NOT NULL ");
sql.append(" AND (idtipomudanca = ? OR ? = -1 ) ");
sql.append(" AND (status = ? OR ? = '*') ");
sql.append(" AND (DATAHORAINICIO BETWEEN ? AND ? ) ");
sql.append(" AND (nivelimpacto = ? OR ? = '*' ) ");
sql.append(" AND (nivelurgencia = ? OR ? = '*' ) ");
list = this.execSQL(sql.toString(), parametrosBusca.toArray());
fields.add("titulo");
fields.add("prazoHH");
fields.add("prazoMM");
fields.add("dataHoraConclusao");
fields.add("dataHoraTermino");
fields.add("status");
if (list != null && !list.isEmpty()) {
return (List<RequisicaoMudancaDTO>) this.listConvertion(RequisicaoMudancaDTO.class, list, fields);
} else {
return null;
}
}
public Collection consultaMudancaPorRisco(HashMap parametros, RiscoDTO riscoDTO){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
//parametrosBusca.add(tipo);
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.situacaoMudanca")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.situacaoMudanca")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.nivel")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.nivel")));
StringBuilder sql = new StringBuilder();
if (riscoDTO != null && riscoDTO.getNomeRisco() != null && riscoDTO.getIdRisco() != null) {
sql.append("SELECT '"+riscoDTO.getNomeRisco()+"' AS risco, COUNT(*) AS quantidade FROM requisicaomudanca rm ");
sql.append(" INNER JOIN requisicaomudancarisco rmr ON rmr.idrequisicaomudanca = rm.idrequisicaomudanca ");
sql.append(" INNER JOIN risco r ON r.idrisco = rmr.idrisco ");
sql.append(" WHERE r.idrisco = " + riscoDTO.getIdRisco());
sql.append(" AND (r.datainicio BETWEEN ? AND ? ) ");
sql.append(" AND (status = ? OR ? = '*') ");
sql.append(" AND (r.nivelrisco = ? OR ? = -1 ) ");
}
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
public Collection consultaMudancaPorServico(HashMap parametros, String tipo){
List parametrosBusca = new ArrayList();
//TODO I para indicentes e R para requisi�oes
//parametrosBusca.add(tipo);
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idtipomudanca")));
parametrosBusca.add(Integer.parseInt((String) parametros.get("PARAM.idtipomudanca")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.situacaoMudanca")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.situacaoMudanca")));
parametrosBusca.add(parametros.get("PARAM.dataInicial"));
parametrosBusca.add(parametros.get("PARAM.dataFinal"));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.impacto")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.impacto")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.urgencia")));
parametrosBusca.add(String.valueOf(parametros.get("PARAM.urgencia")));
StringBuilder sql = new StringBuilder();
sql.append("SELECT rm.titulo, count(*) FROM requisicaomudanca rm ");
sql.append("INNER JOIN requisicaomudancaservico rms ON rms.idrequisicaomudanca = rm.idrequisicaomudanca ");
sql.append("INNER JOIN servico r ON r.idservico = rms.idservico ");
sql.append(" WHERE (idtipomudanca = ? OR ? = -1) ");
sql.append(" AND (status = ? OR ? = '*') ");
sql.append(" AND (DATAHORAINICIO BETWEEN ? AND ?) ");
sql.append(" AND (nivelimpacto = ? OR ? = '*') ");
sql.append(" AND (nivelurgencia = ? OR ? = '*') ");
sql.append(" GROUP BY rm.titulo ");
Collection lista = null;
try {
lista = this.execSQL(sql.toString(), parametrosBusca.toArray());
} catch (PersistenceException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return lista;
}
}