package br.com.centralit.citcorpore.integracao;
import java.sql.Date;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.bpm.dto.TarefaFluxoDTO;
import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO;
import br.com.centralit.citcorpore.bean.PesquisaProblemaDTO;
import br.com.centralit.citcorpore.bean.ProblemaDTO;
import br.com.centralit.citcorpore.bean.RelatorioProblemaIncidentesDTO;
import br.com.centralit.citcorpore.bean.RelatorioQuantitativoProblemaDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.centralit.citcorpore.util.Enumerados.SituacaoRequisicaoProblema;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.PersistenceException;
import br.com.citframework.integracao.Condition;
import br.com.citframework.integracao.CrudDaoDefaultImpl;
import br.com.citframework.integracao.Field;
import br.com.citframework.integracao.Order;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.SQLConfig;
import br.com.citframework.util.UtilDatas;
@SuppressWarnings({ "rawtypes", "unchecked"})
public class ProblemaDAO extends CrudDaoDefaultImpl {
public ProblemaDAO() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("idProblema", "idProblema", true, true, false, false));
listFields.add(new Field("status", "status", false, false, false, false));
listFields.add(new Field("prioridade", "prioridade", false, false, false, false));
listFields.add(new Field("idCriador", "idCriador", false, false, false, false));
listFields.add(new Field("idProprietario", "idProprietario", false, false, false, false));
listFields.add(new Field("titulo", "titulo", false, false, false, false));
listFields.add(new Field("descricao", "descricao", false, false, false, false));
listFields.add(new Field("idCategoriaProblema", "idCategoriaProblema", false, false, false, false));
listFields.add(new Field("impacto", "impacto", false, false, false, false));
listFields.add(new Field("urgencia", "urgencia", false, false, false, false));
listFields.add(new Field("severidade", "severidade", false, false, false, false));
listFields.add(new Field("proativoReativo", "proativoReativo", false, false, false, false));
listFields.add(new Field("dataHoraLimiteSolucionar", "dataHoraLimiteSolucionar", false, false, false, false));
listFields.add(new Field("msgErroAssociada", "msgErroAssociada", false, false, false, false));
listFields.add(new Field("idProblemaItemConfiguracao", "idProblemaItemConfiguracao", false, false, false, false));
// listFields.add(new Field("idErrosConhecidos", "idErrosConhecidos", false, false, false, false));
listFields.add(new Field("idProblemaMudanca", "idProblemaMudanca", false, false, false, false));
listFields.add(new Field("idProblemaIncidente", "idProblemaIncidente", false, false, false, false));
listFields.add(new Field("dataHoraInicio", "dataHoraInicio", false, false, false, false));
listFields.add(new Field("dataHoraFim", "dataHoraFim", false, false, false, false));
listFields.add(new Field("solucaoDefinitiva", "solucaoDefinitiva", false, false, false, false));
listFields.add(new Field("adicionarBDCE", "adicionarBDCE", false, false, false, false));
listFields.add(new Field("statusBaseConhecimento", "statusBaseConhecimento", false, false, false, false));
listFields.add(new Field("idPastaBaseConhecimento", "idPastaBaseConhecimento", false, false, false, false));
listFields.add(new Field("causaRaiz", "causaRaiz", false, false, false, false));
listFields.add(new Field("solucaoContorno", "solucaoContorno", false, false, false, false));
listFields.add(new Field("idBaseConhecimento", "idBaseConhecimento", false, false, false, false));
listFields.add(new Field("idServico", "idServico", false, false, false, false));
listFields.add(new Field("idGrupo", "idGrupo", false, false, false, false));
listFields.add(new Field("idContrato", "idContrato", false, false, false, false));
listFields.add(new Field("idServicoContrato", "idServicoContrato", false, false, false, false));
listFields.add(new Field("prazoHH", "prazoHH", false, false, false, false));
listFields.add(new Field("prazoMM", "prazoMM", false, false, false, false));
listFields.add(new Field("slaACombinar", "slaACombinar", false, false, false, false));
listFields.add(new Field("dataHoraLimite", "dataHoraLimite", false, false, false, false));
listFields.add(new Field("idPrioridade", "idPrioridade", false, false, false, false));
listFields.add(new Field("dataHoraSolicitacao", "dataHoraSolicitacao", false, false, false, false));
listFields.add(new Field("dataHoraCaptura", "dataHoraCaptura", false, false, false, false));
listFields.add(new Field("dataHoraInicioSLA", "dataHoraInicioSLA", false, false, false, false));
listFields.add(new Field("dataHoraReativacao", "dataHoraReativacao", false, false, false, false));
listFields.add(new Field("dataHoraReativacaoSLA", "dataHoraReativacaoSLA", false, false, false, false));
listFields.add(new Field("dataHoraSuspensao", "dataHoraSuspensao", false, false, false, false));
listFields.add(new Field("dataHoraSuspensaoSLA", "dataHoraSuspensaoSLA", false, false, false, false));
listFields.add(new Field("enviaEmailAcoes", "enviaEmailAcoes", false, false, false, false));
listFields.add(new Field("enviaEmailCriacao", "enviaEmailCriacao", false, false, false, false));
listFields.add(new Field("enviaEmailFinalizacao", "enviaEmailFinalizacao", false, false, false, false));
listFields.add(new Field("idCalendario", "idCalendario", false, false, false, false));
listFields.add(new Field("idFaseAtual", "idFaseAtual", false, false, false, false));
listFields.add(new Field("idSolicitacaoServico", "idSolicitacaoServico", false, false, false, false));
listFields.add(new Field("idSolicitante", "idSolicitante", false, false, false, false));
listFields.add(new Field("resposta", "resposta", false, false, false, false));
listFields.add(new Field("seqreabertura", "seqReabertura", false, false, false, false));
listFields.add(new Field("situacaoSLA", "situacaoSLA", false, false, false, false));
listFields.add(new Field("tempoAtendimentoHH", "tempoAtendimentoHH", false, false, false, false));
listFields.add(new Field("tempoAtendimentoMM", "tempoAtendimentoMM", false, false, false, false));
listFields.add(new Field("tempoAtrasoHH", "tempoAtrasoHH", false, false, false, false));
listFields.add(new Field("tempoAtrasoMM", "tempoAtrasoMM", false, false, false, false));
listFields.add(new Field("tempoCapturaHH", "tempoCapturaHH", false, false, false, false));
listFields.add(new Field("tempoCapturaMM", "tempoCapturaMM", false, false, false, false));
listFields.add(new Field("tempoDecorridoHH", "tempoDecorridoHH", false, false, false, false));
listFields.add(new Field("tempoDecorridoMM", "tempoDecorridoMM", false, false, false, false));
listFields.add(new Field("diagnostico", "diagnostico", false, false, false, false));
listFields.add(new Field("idorigematendimento", "idOrigemAtendimento", false, false, false, false));
listFields.add(new Field("idcontatoproblema", "idContatoProblema", false, false, false, false));
listFields.add(new Field("acoescorretas", "acoesCorretas", false, false, false, false));
listFields.add(new Field("acoesincorretas", "acoesIncorretas", false, false, false, false));
listFields.add(new Field("melhoriasfuturas", "melhoriasFuturas", false, false, false, false));
listFields.add(new Field("recorrenciaproblema", "recorrenciaProblema", false, false, false, false));
listFields.add(new Field("responsabilidadeterceiros", "responsabilidadeTerceiros", false, false, false, false));
listFields.add(new Field("acompanhamento", "acompanhamento", false, false, false, false));
listFields.add(new Field("idcategoriasolucao", "idCategoriaSolucao", false, false, false, false));
listFields.add(new Field("confirmasolucaocontorno", "confirmaSolucaoContorno", false, false, false, false));
listFields.add(new Field("fechamento", "fechamento", false, false, false, false));
listFields.add(new Field("idunidade", "idUnidade", false, false, false, false));
listFields.add(new Field("grave", "grave", false, false, false, false));
listFields.add(new Field("precisamudanca", "precisaMudanca", false, false, false, false));
listFields.add(new Field("precisasolucaocontorno", "precisaSolucaoContorno", false, false, false, false));
listFields.add(new Field("fase", "fase", false, false, false, false));
listFields.add(new Field("resolvido", "resolvido", false, false, false, false));
listFields.add(new Field("enviaemailprazosolucionarexpirou", "enviaEmailPrazoSolucionarExpirou", false, false, false, false));
listFields.add(new Field("idCausa", "idCausa", false, false, false, false));
listFields.add(new Field("fecharItensRelacionados", "fecharItensRelacionados", false, false, false, false));
return listFields;
}
public void delecaoLogica(ProblemaDTO parm) throws Exception {
parm.setDataHoraFim(UtilDatas.getDataHoraAtual());
update(parm);
}
@Override
public IDto restore(IDto obj) throws PersistenceException {
ProblemaDTO problemaDto = (ProblemaDTO) obj;
List condicao = new ArrayList();
condicao.add(new Condition("dataHoraFim", "IS", null));
condicao.add(new Condition("idProblema", "=", problemaDto.getIdProblema()));
ArrayList<ProblemaDTO> p = (ArrayList<ProblemaDTO>) super.findByCondition(condicao, null);
if (p != null && p.size() > 0) {
return p.get(0);
}
return null;
}
public ProblemaDTO restoreAll(Integer idProblema) throws Exception {
List parametro = new ArrayList();
parametro.add(idProblema);
String sql = getSQLRestoreAll();
sql += " WHERE pro.idProblema = ? ";
List lista = this.execSQL(sql.toString(), parametro.toArray());
if (lista != null && !lista.isEmpty()) {
List listaResult = this.engine.listConvertion(ProblemaDTO.class, lista, getColunasRestoreAll());
return (ProblemaDTO) listaResult.get(0);
} else {
return null;
}
}
private String getSQLRestoreAll() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT pro.idProblema, pro.titulo, empcriadopor.nome, emppropri.nome, pro.status, ");
sql.append(" pro.urgencia, pro.impacto, pro.severidade, serv.nomeServico, grp.nome, con.numero, ");
sql.append(" pro.idPrioridade, pro.dataHoraLimite, pro.prazohh, pro.prazomm ");
sql.append("FROM problema pro ");
sql.append(" LEFT OUTER JOIN empregados empcriadopor on pro.idCriador = empcriadopor.idEmpregado ");
sql.append(" LEFT OUTER JOIN servico serv on pro.idServico = serv.idServico ");
sql.append(" LEFT OUTER JOIN grupo grp on pro.idGrupo = grp.idGrupo ");
sql.append(" LEFT OUTER JOIN contratos con on con.idContrato = pro.idContrato ");
sql.append(" LEFT OUTER JOIN empregados emppropri on pro.idProprietario = emppropri.idEmpregado ");
return sql.toString();
}
private List getColunasRestoreAll() {
List listRetorno = new ArrayList();
listRetorno.add("idProblema");
listRetorno.add("titulo");
listRetorno.add("nomeCriador");
listRetorno.add("nomeProprietario");
listRetorno.add("status");
listRetorno.add("urgencia");
listRetorno.add("impacto");
listRetorno.add("severidade");
listRetorno.add("servico");
listRetorno.add("grupo");
listRetorno.add("contrato");
listRetorno.add("idPrioridade");
listRetorno.add("dataHoraLimite");
listRetorno.add("prazoHH");
listRetorno.add("prazoMM");
return listRetorno;
}
public List<ProblemaDTO> listProblema(ProblemaDTO bean) throws Exception {
List parametro = new ArrayList();
List fields = new ArrayList();
List list = new ArrayList();
String sql = "SELECT pro.idProblema, pro.titulo, con.numero, pro.datahoracaptura, us.nome, pro.idSolicitante, "
+ " us1.login, pro.status, pro.prioridade, pro.urgencia, pro.impacto, pro.severidade, "
+ " serv.nomeServico, grp.nome, pro.dataHoraLimite, pro.prazohh, pro.prazomm, pro.idServicoContrato, pro.SituacaoSLA, pro.idFaseAtual, fase.nomefase, fase.fasecaptura "
+ " FROM problema pro " + " LEFT OUTER JOIN usuario us on pro.idProprietario = us.idUsuario " + " LEFT OUTER JOIN servico serv on pro.idServico = serv.idServico "
+ " LEFT OUTER JOIN grupo grp on pro.idGrupo = grp.idGrupo " + " LEFT OUTER JOIN contratos con on con.idContrato = pro.idContrato "
+ " LEFT OUTER JOIN usuario us1 on pro.idSolicitante = us1.idEmpregado " + " LEFT OUTER JOIN servicocontrato sc ON sc.idservicocontrato = pro.idservicocontrato "
+ " LEFT OUTER JOIN faseservico fase ON fase.idfase = pro.idFaseAtual " + " WHERE pro.dataHoraFim is null ";
if (bean != null) {
if (bean.getIdProblema() != null) {
sql += "and pro.idProblema = ? ";
parametro.add(bean.getIdProblema());
}
}
list = this.execSQL(sql, parametro.toArray());
fields.add("idProblema");
fields.add("titulo");
fields.add("contrato");
fields.add("dataHoraCaptura");
fields.add("solicitante");
fields.add("idSolicitante");
fields.add("responsavel");
fields.add("status");
fields.add("prioridade");
fields.add("urgencia");
fields.add("impacto");
fields.add("severidade");
fields.add("servico");
fields.add("grupo");
fields.add("dataHoraLimite");
fields.add("prazoHH");
fields.add("prazoMM");
fields.add("idServicoContrato");
fields.add("situacaoSLA");
fields.add("nomeFase");
fields.add("faseCaptura");
if (list != null && !list.isEmpty()) {
return (List<ProblemaDTO>) this.listConvertion(getBean(), list, fields);
} else {
return null;
}
}
public List<ProblemaDTO> listProblemaByIdSolicitacao(ProblemaDTO bean) throws Exception {
List parametro = new ArrayList();
List fields = new ArrayList();
List list = new ArrayList();
String sql = " select pro.idProblema , pro.titulo, empcriadopor.nome, emppropri.nome, pro.status, pro.urgencia, pro.impacto, pro.severidade, sol.idSolicitacaoServico, ser.nomeServico from problema pro "
+ " inner join empregados empcriadopor on pro.idcriador = empcriadopor.idempregado "
+ " inner join empregados emppropri on pro.idproprietario = emppropri.idempregado "
+ " inner join solicitacaoservicoproblema solpro on solpro.idproblema = pro.idproblema "
+ " inner join solicitacaoservico sol on sol.idsolicitacaoservico = solpro.idsolicitacaoservico "
+ " inner join servicocontrato sercont on sol.idservicocontrato = sercont.idservicocontrato "
+ " inner join servico ser on ser.idservico = sercont.idservico where pro.dataHoraFim is null ";
if (bean != null) {
if (bean.getIdSolicitacaoServico() != null) {
sql += "and sol.idSolicitacaoServico = ? ";
parametro.add(bean.getIdSolicitacaoServico());
}
}
if (bean != null) {
if (bean.getIdProblema() != null) {
sql += "and pro.idProblema = ? ";
parametro.add(bean.getIdProblema());
}
}
list = this.execSQL(sql, parametro.toArray());
fields.add("idProblema");
fields.add("titulo");
fields.add("nomeCriador");
fields.add("nomeProprietario");
fields.add("status");
fields.add("urgencia");
fields.add("impacto");
fields.add("severidade");
fields.add("idSolicitacaoServico");
fields.add("nomeServico");
if (list != null && !list.isEmpty()) {
return (List<ProblemaDTO>) this.listConvertion(getBean(), list, fields);
} else {
return null;
}
}
public String getTableName() {
return this.getOwner() + "problema";
}
public Collection list() throws PersistenceException {
return null;
}
@Override
public void updateNotNull(IDto obj) throws PersistenceException {
super.updateNotNull(obj);
}
public Class getBean() {
return ProblemaDTO.class;
}
public Collection find(IDto problemaDTO) throws PersistenceException {
List ordenacao = new ArrayList();
ordenacao.add(new Order("idProblema"));
return super.find(problemaDTO, ordenacao);
}
public Collection findByIdProblema(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idProblema", "=", parm));
ordenacao.add(new Order("idProblema"));
return super.findByCondition(condicao, ordenacao);
}
public Collection<ProblemaDTO> findByIdProblemaPai(Integer idProblemaPai) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProblemaPai", "=", idProblemaPai));
return super.findByCondition(condicao, null);
}
public void deleteByIdProblema(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProblema", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByStatus(String parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("status", "=", parm));
ordenacao.add(new Order("status"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByStatus(String parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("status", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByPrioridade(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("prioridade", "=", parm));
ordenacao.add(new Order("prioridade"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByPrioridade(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("prioridade", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdCriador(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idCriador", "=", parm));
ordenacao.add(new Order("idCriador"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdCriador(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idCriador", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdProprietario(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idProprietario", "=", parm));
ordenacao.add(new Order("idProprietario"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdProprietario(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProprietario", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByTitulo(String parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("titulo", "=", parm));
ordenacao.add(new Order("titulo"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByTitulo(String parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("titulo", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByDescricao(String parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("descricao", "=", parm));
ordenacao.add(new Order("descricao"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByDescricao(String parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("descricao", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdCategoriaProblema(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idCategoriaProblema", "=", parm));
ordenacao.add(new Order("idCategoriaProblema"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdCategoriaProblema(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idCategoriaProblema", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByImpacto(String parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("impacto", "=", parm));
ordenacao.add(new Order("impacto"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByImpacto(String parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("impacto", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByUrgencia(String parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("urgencia", "=", parm));
ordenacao.add(new Order("urgencia"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByUrgencia(String parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("urgencia", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByProativoReativo(String parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("proativoReativo", "=", parm));
ordenacao.add(new Order("proativoReativo"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByProativoReativo(String parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("proativoReativo", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByMsgErroAssociada(String parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("msgErroAssociada", "=", parm));
ordenacao.add(new Order("msgErroAssociada"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByMsgErroAssociada(String parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("msgErroAssociada", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdProblemaItemConfiguracao(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idProblemaItemConfiguracao", "=", parm));
ordenacao.add(new Order("idProblemaItemConfiguracao"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdProblemaItemConfiguracao(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProblemaItemConfiguracao", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdErrosConhecidos(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idErrosConhecidos", "=", parm));
ordenacao.add(new Order("idErrosConhecidos"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdErrosConhecidos(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idErrosConhecidos", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdProblemaMudanca(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idProblemaMudanca", "=", parm));
ordenacao.add(new Order("idProblemaMudanca"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdProblemaMudanca(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProblemaMudanca", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdProblemaIncidente(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idProblemaIncidente", "=", parm));
ordenacao.add(new Order("idProblemaIncidente"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdProblemaIncidente(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProblemaIncidente", "=", parm));
super.deleteByCondition(condicao);
}
public List<ProblemaDTO> listProblemaByIdItemConfiguracao(Integer idItemConfiguracao) throws Exception {
String sql = " Select pro.idProblema, pro.idsolicitante, pro.idproprietario, pro.titulo, pro.descricao, " + " pro.impacto, pro.urgencia, pro.proativoReativo, pro.severidade ," +
"emp.nome, us.nome "
+ " from problema pro " + " inner join problemaitemconfiguracao proitem on pro.idproblema = proitem.idproblema "
+ " inner join itemconfiguracao item on item.iditemconfiguracao = proitem.iditemconfiguracao " +
" inner join empregados emp on emp.idempregado = pro.idsolicitante " +
" inner join usuario us on us.idusuario = pro.idproprietario " + " where item.iditemconfiguracao = ? " +
"and (pro.status like 'SolucaoContornoDefinida' or pro.status like 'Investigacao' or pro.status like 'Registrado' or pro.status like 'Registrada') ";
/**
* A regra relacionada ao status estava comentada
* @author flavio.santana
* 25/10/2013 14:00
*/
List parametro = new ArrayList();
List<String> listRetorno = new ArrayList<String>();
parametro.add(idItemConfiguracao);
listRetorno.add("idProblema");
listRetorno.add("idSolicitante");
listRetorno.add("idProprietario");
listRetorno.add("titulo");
listRetorno.add("descricao");
listRetorno.add("impacto");
listRetorno.add("urgencia");
listRetorno.add("proativoReativo");
listRetorno.add("severidade");
listRetorno.add("nomeProprietario");
listRetorno.add("solicitante");
List lista = this.execSQL(sql, parametro.toArray());
return this.engine.listConvertion(ProblemaDTO.class, lista, listRetorno);
}
public Collection<ProblemaDTO> quantidadeProblemaPorBaseConhecimento(ProblemaDTO problema) throws Exception {
StringBuilder sql = new StringBuilder();
List parametro = new ArrayList();
List listRetorno = new ArrayList();
sql.append("select idbaseconhecimento,count(idbaseconhecimento) from problema where idbaseconhecimento = ? group by idbaseconhecimento");
parametro.add(problema.getIdBaseConhecimento());
listRetorno.add("idBaseConhecimento");
listRetorno.add("quantidade");
List list = execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
Collection<ProblemaDTO> listaQuantidadeProblemaPorBaseConhecimento = this.listConvertion(ProblemaDTO.class, list, listRetorno);
return listaQuantidadeProblemaPorBaseConhecimento;
}
return null;
}
public Collection<ProblemaDTO> listaProblemasPorBaseConhecimento(ProblemaDTO problema) throws Exception {
StringBuilder sql = new StringBuilder();
List parametro = new ArrayList();
List listRetorno = new ArrayList();
sql.append("SELECT p.idBaseConhecimento, p.idproblema, p.titulo, p.datahorainicio, p.idproprietario, p.status, ");
sql.append("p.descricao, p.causaraiz, p.solucaocontorno, p.solucaodefinitiva, e.nome ");
sql.append("FROM problema p, empregados e WHERE p.idproprietario = e.idempregado and p.idbaseconhecimento = ? ");
parametro.add(problema.getIdBaseConhecimento());
listRetorno.add("idBaseConhecimento");
listRetorno.add("idProblema");
listRetorno.add("titulo");
listRetorno.add("dataHoraInicio");
listRetorno.add("idProprietario");
listRetorno.add("status");
listRetorno.add("descricao");
listRetorno.add("causaRaiz");
listRetorno.add("solucaoContorno");
listRetorno.add("solucaoDefinitiva");
listRetorno.add("nomeProprietario");
List list = execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
Collection<ProblemaDTO> listaProblemaPorBaseConhecimento = this.listConvertion(ProblemaDTO.class, list, listRetorno);
return listaProblemaPorBaseConhecimento;
}
return null;
}
/**
* Retorna Problemas associados ao conhecimento.
*
* @param baseConhecimentoDto
* @return
* @throws Exception
*/
public List<ProblemaDTO> findByConhecimento(BaseConhecimentoDTO baseConhecimentoDto) throws Exception {
List parametro = new ArrayList();
List fields = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select problema.idProblema, problema.titulo, problema.status, problema.urgencia, problema.impacto, problema.severidade from problema ");
sql.append("inner join conhecimentoproblema on problema.idproblema = conhecimentoproblema.idproblema ");
sql.append("where conhecimentoproblema.idbaseconhecimento = ? ");
parametro.add(baseConhecimentoDto.getIdBaseConhecimento());
list = this.execSQL(sql.toString(), parametro.toArray());
fields.add("idProblema");
fields.add("titulo");
fields.add("status");
fields.add("urgencia");
fields.add("impacto");
fields.add("severidade");
if (list != null && !list.isEmpty()) {
return (List<ProblemaDTO>) this.listConvertion(getBean(), list, fields);
} else {
return null;
}
}
public void atualizaDataHoraCaptura(ProblemaDTO problemaDto) {
StringBuilder sql = new StringBuilder();
sql.append("UPDATE " + getTableName() + " SET dataHoraCaptura = ? WHERE idproblema = ?");
Object[] params = { problemaDto.getDataHoraCaptura(), problemaDto.getIdProblema() };
try {
this.execUpdate(sql.toString(), params);
} catch (PersistenceException e) {
System.out.println("Problemas com atualiza��o da tabela problema.");
e.printStackTrace();
}
}
// public Collection<ProblemaDTO> listProblemasFilhos() throws Exception {
// List condicao = new ArrayList();
// condicao.add(new Condition("idProblemaPai", "is not", null));
// return super.findByCondition(condicao, null);
// }
public Collection<ProblemaDTO> listByTarefas(Collection<TarefaFluxoDTO> listTarefa) throws Exception {
List listRetorno = new ArrayList();
listRetorno.add("idProblema");
listRetorno.add("titulo");
listRetorno.add("contrato");
listRetorno.add("dataHoraCaptura");
listRetorno.add("nomeCriador");
listRetorno.add("idSolicitante");
listRetorno.add("nomeProprietario");
listRetorno.add("status");
listRetorno.add("idPrioridade");
listRetorno.add("urgencia");
listRetorno.add("impacto");
listRetorno.add("severidade");
listRetorno.add("servico");
listRetorno.add("grupo");
listRetorno.add("dataHoraLimite");
listRetorno.add("prazoHH");
listRetorno.add("prazoMM");
listRetorno.add("idServicoContrato");
listRetorno.add("idInstanciaFluxo");
StringBuilder sql = new StringBuilder();
sql.append("SELECT pro.idProblema, pro.titulo, con.numero, pro.datahoracaptura, empcriadopor.nome, pro.idSolicitante, ");
sql.append(" emppropri.nome, pro.status, pro.idPrioridade, pro.urgencia, pro.impacto, pro.severidade, ");
sql.append(" serv.nomeServico, grp.nome, pro.dataHoraLimite, pro.prazohh, pro.prazomm, pro.idServicoContrato, ep.idInstanciaFluxo ");
sql.append("FROM problema pro ");
sql.append(" INNER JOIN empregados empcriadopor on pro.idCriador = empcriadopor.idEmpregado ");
sql.append(" LEFT OUTER JOIN servico serv on pro.idServico = serv.idServico ");
sql.append(" LEFT OUTER JOIN grupo grp on pro.idGrupo = grp.idGrupo ");
sql.append(" LEFT OUTER JOIN contratos con on con.idContrato = pro.idContrato ");
sql.append(" INNER JOIN empregados emppropri on pro.idProprietario = emppropri.idEmpregado ");
sql.append(" LEFT JOIN servicocontrato sc ON sc.idservicocontrato = pro.idservicocontrato ");
sql.append(" INNER JOIN execucaoproblema ep ON ep.idProblema = pro.idProblema ");
sql.append(" WHERE pro.dataHoraFim is null ");
if (listTarefa != null && !listTarefa.isEmpty()) {
// Hack oracle
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE))
sql.append("and ep.idInstanciaFluxo in ( select * from table(sys.odcinumberlist( ");
else
sql.append("and ep.idInstanciaFluxo in ( ");
int size = listTarefa.size();
int max = 1;
int aux = 0;
int CONSTANT = 999;
// Hack oracle
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
for (TarefaFluxoDTO tarefaFluxoDto : listTarefa) {
aux += 1;
sql.append(tarefaFluxoDto.getIdInstancia());
if (aux == size) {
sql.append(")))");
} else if (aux > (CONSTANT * (max - 1)) && aux <= (CONSTANT * max)) {
sql.append(")) union select * from table(sys.odcinumberlist( ");
max++;
} else {
sql.append(",");
}
}
} else {
for (TarefaFluxoDTO tarefaFluxoDto : listTarefa) {
aux += 1;
sql.append(tarefaFluxoDto.getIdInstancia());
if (aux == size) {
sql.append(")");
} else {
sql.append(",");
}
}
}
} else {
return null;
}
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), null);
if (lista != null && !lista.isEmpty()) {
return this.engine.listConvertion(ProblemaDTO.class, lista, listRetorno);
} else {
return null;
}
}
public ProblemaDTO restoreByIdInstanciaFluxo(Integer idInstanciaFluxo) throws Exception {
List parametro = new ArrayList();
parametro.add(idInstanciaFluxo);
String sql = getSQLRestoreAll();
sql += " INNER JOIN execucaosolicitacao ep ON ep.idProblema = pro.idProblema ";
sql += " WHERE pro.idProblemaPai is null and ep.idInstanciaFluxo = ? ";
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
if (lista != null && !lista.isEmpty()) {
List listaResult = this.engine.listConvertion(ProblemaDTO.class, lista, getColunasRestoreAll());
return (ProblemaDTO) listaResult.get(0);
} else {
return null;
}
}
public void updateFase(Integer idProblema, String fase) {
StringBuilder sql = new StringBuilder();
sql.append("UPDATE " + getTableName() + " SET fase = ? WHERE (idProblema = ?)");
Object[] params = { fase, idProblema };
try {
this.execUpdate(sql.toString(), params);
} catch (PersistenceException e) {
System.out.println("Problemas com atualiza��o da requisi��o de mudan�a.");
e.printStackTrace();
}
}
/**
* M�todo respons�vel por efetuar a contagem de problemas com prazo (data e hora) limite de c,ontorno expirado. A contagem � feita por usu�rio propriet�rio do problema. Caso exist�o um ou mais
* registros de problema com o prazo limite expirado o usu�rio propriet�rio e o grupo de interessados (grupo executor) dever� ser notificado por e-mail.
*
* @author thiago.monteiro (Thiago Alexandre Martins Monteiro)
* @param UsuarioDTO
* - usuarioDTO
* @return int
* @throws Exception
*/
public int contarProblemasComPrazoLimiteContornoExpirado(UsuarioDTO usuarioDTO) throws Exception {
int quantidadeRegistros = 0;
if (usuarioDTO != null && usuarioDTO.getIdUsuario() != null) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT\n");
sql.append(" COUNT(datahoralimite) AS quantidade\n");
sql.append("FROM\n");
sql.append(" problema,\n");
sql.append(" usuario AS u\n");
sql.append("WHERE\n");
sql.append(" datahoralimite IS NOT NULL AND\n");
sql.append(" idproprietario = u.idusuario AND\n");
sql.append(" idproprietario = ?");
List parametros = new ArrayList();
parametros.add(usuarioDTO.getIdUsuario());
try {
// Executando a consulta SQL.
List resultado = this.execSQL(sql.toString(), parametros.toArray());
// Verificando se o resultado existe.
if (resultado != null && !resultado.isEmpty()) {
List colunas_retornadas = new ArrayList();
colunas_retornadas.add("quantidade");
// Convertendo a lista para o DTO apropriado.
// d=p diz: O atributo quantidade e os metodos publicos de acesso j� s�o criados automaticamente pelo framework.
resultado = this.listConvertion(ProblemaDTO.class, resultado, colunas_retornadas);
if (resultado != null && !resultado.isEmpty()) {
quantidadeRegistros = ((ProblemaDTO) resultado.get(0)).getQuantidade();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
return quantidadeRegistros;
}
/**
* Retorna uma lista de problemas com prazo limite expeirado.
*
* @param UsuarioDTO
* - usuarioDTO
* @return Collection
* @throws Exception
* @author thays.araujo
*/
public Collection<ProblemaDTO> listaProblemasComPrazoLimiteContornoExpirado(UsuarioDTO usuarioDTO) throws Exception {
List resultado = new ArrayList();
List colunas_retornadas = new ArrayList();
List parametros = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT idproblema,idgrupo ");
sql.append("FROM\n");
sql.append(" problema,\n");
sql.append(" usuario AS u\n");
sql.append("WHERE\n");
sql.append(" datahoralimite IS NOT NULL AND\n");
sql.append(" idproprietario = u.idusuario AND\n");
sql.append(" problema.status != ? and problema.status != ?");
parametros.add(SituacaoRequisicaoProblema.Cancelada.getDescricao());
parametros.add(SituacaoRequisicaoProblema.Concluida.getDescricao());
if (usuarioDTO != null && usuarioDTO.getIdUsuario() != null) {
sql.append(" and idproprietario = ? ");
parametros.add(usuarioDTO.getIdUsuario());
}
resultado = this.execSQL(sql.toString(), parametros.toArray());
colunas_retornadas.add("idProblema");
colunas_retornadas.add("idGrupo");
if (resultado != null && !resultado.isEmpty()) {
resultado = this.listConvertion(ProblemaDTO.class, resultado, colunas_retornadas);
return resultado;
}else{
return resultado = null;
}
}
/**
* @author geber.costa
* @param pesquisaProblemaDto
* @return
* @throws Exception
*/
public Collection<PesquisaProblemaDTO> listProblemaByCriterios(PesquisaProblemaDTO pesquisaProblemaDto) throws Exception {
List parametro = new ArrayList();
List listRetorno = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT problema.idproblema, categoriaproblema.nomecategoriaproblema,problema.status,problema.titulo, ");
sql.append("problema.dataHoraCaptura,problema.datahorafim, problema.descricao, ");
sql.append("proprietario.nome, solicitante.nome, grupo.nome ");
sql.append("FROM " + getTableName() + " ");
sql.append("left join usuario as proprietario on proprietario.idusuario = problema.idproprietario ");
sql.append("inner join empregados as solicitante on solicitante.idempregado = problema.idsolicitante ");
sql.append("left join grupo on grupo.idgrupo = problema.idgrupo ");
sql.append("inner join categoriaproblema on categoriaproblema.idcategoriaproblema = problema.idcategoriaproblema ");
sql.append("left join problemaitemconfiguracao on problemaitemconfiguracao.idproblema = problema.idproblema");
if(CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.MYSQL) || CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.SQLSERVER)){
if (pesquisaProblemaDto.getDataInicio() != null) {
sql.append(" where problema.datahorainicio BETWEEN ? and ? ");
parametro.add(pesquisaProblemaDto.getDataInicio() + " 00:00:00");
parametro.add(pesquisaProblemaDto.getDataFim() + " 23:59:59");
}
}else{
if (pesquisaProblemaDto.getDataInicio() != null) {
// Adapta��o realizada passando o timestamp concatenado no
// pr�prio sqp para poder colocar aspas simples na pesquisa
sql.append(" where problema.datahorainicio BETWEEN TO_DATE('"
+ UtilDatas.dateToSTR(pesquisaProblemaDto.getDataInicio())
+ "', 'DD/MM/YYYY ') and TO_DATE('"
+ UtilDatas.dateToSTR(pesquisaProblemaDto.getDataFim())
+ "', 'DD/MM/YYYY ') ");
}
}
if (pesquisaProblemaDto.getIdProblema() != null) {
if(pesquisaProblemaDto.getDataInicio()==null){
sql.append(" where problema.idproblema = ?");
parametro.add(pesquisaProblemaDto.getIdProblema());
}else{
sql.append(" and problema.idproblema = ?");
parametro.add(pesquisaProblemaDto.getIdProblema());
}
}
if (pesquisaProblemaDto.getStatus() != null && !pesquisaProblemaDto.getStatus().equalsIgnoreCase("")) {
sql.append(" and problema.status = ?");
parametro.add(pesquisaProblemaDto.getStatus());
}
if (pesquisaProblemaDto.getIdSolicitante() != null) {
sql.append(" and problema.idsolicitante = ? ");
parametro.add(pesquisaProblemaDto.getIdSolicitante());
}
if (pesquisaProblemaDto.getIdProprietario() != null) {
sql.append(" and problema.idproprietario = ?");
parametro.add(pesquisaProblemaDto.getIdProprietario());
}
if (pesquisaProblemaDto.getIdGrupoAtual() != null) {
sql.append(" and problema.idgrupo= ?");
parametro.add(pesquisaProblemaDto.getIdGrupoAtual());
}
if (pesquisaProblemaDto.getIdItemConfiguracao() != null) {
sql.append(" and problemaitemconfiguracao.iditemconfiguracao = ?");
parametro.add(pesquisaProblemaDto.getIdItemConfiguracao());
}
if(pesquisaProblemaDto.getIdCalendario()!= null){
sql.append(" and tipomudanca.idtipomudanca = ?");
parametro.add(pesquisaProblemaDto.getIdCalendario());
}
if(pesquisaProblemaDto.getIdCategoriaProblema() != null && pesquisaProblemaDto.getIdCategoriaProblema().intValue()>0){
//if(pesquisaProblemaDto.getNomeCategoriaProblema()!=null && !pesquisaProblemaDto.getNomeCategoriaProblema().equalsIgnoreCase("")){
//sql.append(" and categoriaproblema.nomecategoria = ?");
sql.append(" and categoriaproblema.idcategoriaproblema = ?");
//parametro.add(pesquisaProblemaDto.getNomeCategoriaProblema());
parametro.add(pesquisaProblemaDto.getIdCategoriaProblema());
//}
}
if (pesquisaProblemaDto.getOrdenacao() != null) {
sql.append(" ORDER BY " + pesquisaProblemaDto.getOrdenacao()+"");
}
list = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idProblema");
listRetorno.add("categoria");
listRetorno.add("status");
listRetorno.add("titulo");
listRetorno.add("dataHoraCaptura");
listRetorno.add("dataHoraFim");
listRetorno.add("descricao");
listRetorno.add("nomeProprietario");
listRetorno.add("nomeSolicitante");
listRetorno.add("nomeGrupoAtual");
if (list != null && !list.isEmpty()) {
Collection<PesquisaProblemaDTO> listProblemaoMudancaByCriterios = this.listConvertion(PesquisaProblemaDTO.class, list, listRetorno);
return listProblemaoMudancaByCriterios;
}
return null;
}
// public Collection<RelatorioProblemaIncidentesDTO> listProblemaIncidentes(RelatorioProblemaIncidentesDTO problemasIncidentes) throws Exception {
//
// List parametro = new ArrayList();
// List listRetorno = new ArrayList();
// List list = new ArrayList();
// StringBuilder sql = new StringBuilder();
//
// sql.append("select distinct ssp.idproblema, pr.titulo ");
// sql.append("from solicitacaoservicoproblema ssp ");
// sql.append("inner join problema pr on ssp.idproblema = pr.idproblema ");
//
//
// if (problemasIncidentes.getDataInicio() != null) {
// sql.append(" where problema.datahorainicio BETWEEN ? and ? ");
//
// parametro.add(problemasIncidentes.getDataInicio() + " 00:00:00");
// parametro.add(problemasIncidentes.getDataFim() + " 23:59:59");
//
// }
//
// if (problemasIncidentes.getIdProblema() != null) {
// if(problemasIncidentes.getDataInicio()==null){
// sql.append(" where problema.idproblema = ?");
// parametro.add(problemasIncidentes.getIdProblema());
// }else{
// sql.append(" and problema.idproblema = ?");
// parametro.add(problemasIncidentes.getIdProblema());
// }
// }
//
// sql.append(" ORDER BY ssp.idproblema asc ");
//
//
// list = this.execSQL(sql.toString(), parametro.toArray());
//
// listRetorno.add("idProblema");
// listRetorno.add("titulo");
//
// if (list != null && !list.isEmpty()) {
//
// Collection<RelatorioProblemaIncidentesDTO> listProblemaoMudancaByCriterios = this.listConvertion(RelatorioProblemaIncidentesDTO.class, list, listRetorno);
//
// return listProblemaoMudancaByCriterios;
//
// }
//
// return null;
//
// }
public Collection<RelatorioProblemaIncidentesDTO> listProblemaIncidentes(RelatorioProblemaIncidentesDTO problemasIncidentes) throws Exception {
List parametro = new ArrayList();
List listRetorno = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select distinct ssp.idproblema, pr.titulo ,pr.descricao ");
sql.append("from solicitacaoservicoproblema ssp ");
sql.append("inner join problema pr on ssp.idproblema = pr.idproblema ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.MYSQL) || CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.SQLSERVER)){
if (problemasIncidentes.getDataInicio() != null && problemasIncidentes.getDataFim() != null) {
sql.append(" where pr.datahorainicio BETWEEN ? and ? ");
parametro.add(problemasIncidentes.getDataInicio() + " 00:00:00");
parametro.add(problemasIncidentes.getDataFim() + " 23:59:59");
}
}else{
if (problemasIncidentes.getDataInicio() != null) {
// Adapta��o realizada passando o timestamp concatenado no
// pr�prio sqp para poder colocar aspas simples na pesquisa
sql.append(" where pr.datahorainicio BETWEEN TO_DATE('"
+ UtilDatas.dateToSTR(problemasIncidentes.getDataInicio())
+ "', 'DD/MM/YYYY ') and TO_DATE('"
+ UtilDatas.dateToSTR(problemasIncidentes.getDataFim())
+ "', 'DD/MM/YYYY ') ");
}
}
if (problemasIncidentes.getIdProblema() != null) {
if(problemasIncidentes.getDataInicio()==null){
sql.append(" where pr.idproblema = ?");
parametro.add(problemasIncidentes.getIdProblema());
}else{
sql.append(" and pr.idproblema = ?");
parametro.add(problemasIncidentes.getIdProblema());
}
}
if(problemasIncidentes.getIdContrato() != null){
sql.append(" and pr.idcontrato = ?");
parametro.add(problemasIncidentes.getIdContrato());
} else { //Se a op��o for "Todos", seleciona somente os contratos que n�o est�o deletados
sql.append(" and pr.idcontrato not in (select idcontrato from contratos where deleted = 'Y')");
}
sql.append(" ORDER BY ssp.idproblema asc ");
list = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idProblema");
listRetorno.add("titulo");
listRetorno.add("descricao");
if (list != null && !list.isEmpty()) {
Collection<RelatorioProblemaIncidentesDTO> listProblemaoMudancaByCriterios = this.listConvertion(RelatorioProblemaIncidentesDTO.class, list, listRetorno);
return listProblemaoMudancaByCriterios;
}
return null;
}
public IDto restoreTela(IDto obj) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) obj;
List condicao = new ArrayList();
condicao.add(new Condition("idProblema", "=", problemaDto.getIdProblema()));
ArrayList<ProblemaDTO> p = (ArrayList<ProblemaDTO>) super.findByCondition(condicao, null);
if (p != null && p.size() > 0) {
return p.get(0);
}
return null;
}
public IDto restauraTodos(IDto obj) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) obj;
List condicao = new ArrayList();
//condicao.add(new Condition("dataHoraFim", "IS", null));
condicao.add(new Condition("idProblema", "=", problemaDto.getIdProblema()));
ArrayList<ProblemaDTO> p = (ArrayList<ProblemaDTO>) super.findByCondition(condicao, null);
if (p != null && p.size() > 0) {
return p.get(0);
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por situa��o
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorSituacao(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select problema.status, count(*) ");
sql.append("from " + getTableName() + " problema ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append("group by problema.status");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("situacao");
listRetorno.add("quantidadeSituacao");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorSituacao = new ArrayList();
listaQuantidadeProblemaPorSituacao = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorSituacao;
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por grupo
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorGrupo(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select grupo.sigla, count(*) ");
sql.append("from " + getTableName() + " problema ");
sql.append("inner join grupo grupo on grupo.idgrupo = problema.idgrupo ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append("group by grupo.sigla ");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("grupo");
listRetorno.add("quantidadeGrupo");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorGrupo = new ArrayList();
listaQuantidadeProblemaPorGrupo = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorGrupo;
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por origem
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorOrigem(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select origem.descricao, count(*) ");
sql.append("from " + getTableName() + " problema ");
sql.append("inner join origematendimento origem on problema.idorigematendimento = origem.idorigem ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append("group by origem.descricao ");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("origem");
listRetorno.add("quantidadeOrigem");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorOrigem = new ArrayList();
listaQuantidadeProblemaPorOrigem = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorOrigem;
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por solicitante
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorSolicitante(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select ltrim(empregado.nome), count(*) ");
sql.append("from " + getTableName() + " problema ");
sql.append("inner join empregados empregado on empregado.idempregado = problema.idsolicitante ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append(" group by empregado.nome order by ltrim(empregado.nome) ");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("solicitante");
listRetorno.add("quantidadeSolicitante");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorSolicitante = new ArrayList();
listaQuantidadeProblemaPorSolicitante = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorSolicitante;
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por prioridade
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorPrioridade(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select prioridade.nomeprioridade, count(*) ");
sql.append("from " + getTableName() + " problema ");
sql.append("inner join prioridade prioridade on prioridade.idprioridade = problema.prioridade ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append("group by prioridade.nomeprioridade ");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("prioridade");
listRetorno.add("quantidadePrioridade");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorPrioridade = new ArrayList();
listaQuantidadeProblemaPorPrioridade = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorPrioridade;
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por categoria problema
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorCategoria(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select categoriaproblema.nomecategoriaproblema, count(*) ");
sql.append("from " + getTableName() + " problema ");
sql.append("inner join categoriaproblema categoriaproblema on categoriaproblema.idcategoriaproblema = problema.idcategoriaproblema ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append("group by categoriaproblema.nomecategoriaproblema ");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("categoriaProblema");
listRetorno.add("quantidadeCategoriaProblema");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorPrioridade = new ArrayList();
listaQuantidadeProblemaPorPrioridade = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorPrioridade;
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por proprietario
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorProprietario(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select ltrim(usuario.nome), count(*) ");
sql.append("from " + getTableName() + " problema ");
sql.append("inner join usuario usuario on usuario.idusuario = problema.idproprietario ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append(" group by usuario.nome order by ltrim(usuario.nome) ");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("proprietario");
listRetorno.add("quantidadeProprietario");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorProprietario = new ArrayList();
listaQuantidadeProblemaPorProprietario = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorProprietario;
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por impacto
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorImpacto(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select CASE WHEN problema.impacto = 'B' then 'Baixo' ");
sql.append("WHEN problema.impacto = 'M' then 'Medio' ");
sql.append("WHEN problema.impacto = 'A' then 'Alto' ");
sql.append("else problema.impacto end as impacto, count(*) ");
sql.append("from " + getTableName() + " problema ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append("group by problema.impacto");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("impacto");
listRetorno.add("quantidadeImpacto");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorImpacto = new ArrayList();
listaQuantidadeProblemaPorImpacto = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorImpacto;
}
return null;
}
/**
* Retorna uma lista quantitativa de problema por urgencia
* @param relatorioQuantitativoProblemaDto
* @return Collection<RelatorioQuantitativoProblemaDTO>
* @throws Exception
* @author thays.araujo
*/
public Collection<RelatorioQuantitativoProblemaDTO> listaQuantidadeProblemaPorUrgencia(RelatorioQuantitativoProblemaDTO relatorioQuantitativoProblemaDto) throws Exception {
List listRetorno = new ArrayList();
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select CASE WHEN problema.urgencia = 'B' then 'Baixo' ");
sql.append("WHEN problema.urgencia = 'M' then 'Medio' ");
sql.append("WHEN problema.urgencia = 'A' then 'Alto' ");
sql.append("else problema.urgencia end as urgencia , count(*) ");
sql.append("from " + getTableName() + " problema ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
sql.append("where to_char(problema.datahorainicio, 'YYYY-MM-DD') BETWEEN ? AND ? ");
} else {
sql.append("where problema.datahorainicio BETWEEN ? AND ? ");
}
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataInicio()));
parametro.add(formatter.format(relatorioQuantitativoProblemaDto.getDataFim()));
} else {
parametro.add(relatorioQuantitativoProblemaDto.getDataInicio());
parametro.add(transformaHoraFinal(relatorioQuantitativoProblemaDto.getDataFim()));
}
if(relatorioQuantitativoProblemaDto.getIdContrato()!=null){
sql.append(" and problema.idcontrato = ? ");
parametro.add(relatorioQuantitativoProblemaDto.getIdContrato());
}
sql.append("group by problema.urgencia");
List lista = new ArrayList();
lista = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("urgencia");
listRetorno.add("quantidadeUrgencia");
if (lista != null && !lista.isEmpty()) {
List listaQuantidadeProblemaPorUrgencia = new ArrayList();
listaQuantidadeProblemaPorUrgencia = this.engine.listConvertion(RelatorioQuantitativoProblemaDTO.class, lista, listRetorno);
return listaQuantidadeProblemaPorUrgencia;
}
return null;
}
private Timestamp transformaHoraFinal(Date data) throws ParseException {
String dataHora = data + " 23:59:59";
String pattern = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
java.util.Date d = sdf.parse(dataHora);
java.sql.Timestamp sqlDate = new java.sql.Timestamp(d.getTime());
return sqlDate;
}
public Collection listSolicitacoesByRegra() throws Exception {
List listRetorno = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT distinct (s.idproblema), "
+ " s.prioridade, s.datahoralimite, s.datahorasolicitacao, regra1.idcontrato as idcontrato, regra3.idsolicitante as idsolicitante, "
+ " regra4.idgrupo as idgrupo, s.vencendo, s.datahorainicio, s.prazohh, s.prazomm, s.impacto, s.urgencia "
+ " FROM problema s "
+ " INNER JOIN contratos contratos on contratos.idcontrato = s.idcontrato "
+ " INNER JOIN empregados solicitante on solicitante.idempregado = s.idsolicitante "
+ " LEFT JOIN grupo grupo on grupo.idgrupo = s.idgrupo "
+ " LEFT JOIN regraescalonamento regra1 on regra1.idcontrato = contratos.idcontrato "
+ " LEFT JOIN regraescalonamento regra3 on regra3.idsolicitante = solicitante.idempregado "
+ " LEFT JOIN regraescalonamento regra4 on regra4.idgrupo = grupo.idgrupo "
+ " WHERE UPPER(s.status) not in ('FECHADA', 'CANCELADA', 'RESOLVIDA', 'SUSPENSA', 'CONCLUIDA') ");
listRetorno.add("idProblema");
listRetorno.add("prioridade");
listRetorno.add("dataHoraLimite");
listRetorno.add("dataHoraSolicitacao");
listRetorno.add("idContrato");
listRetorno.add("idSolicitante");
listRetorno.add("idGrupo");
listRetorno.add("vencendo");
listRetorno.add("dataHoraInicio");
listRetorno.add("prazoHH");
listRetorno.add("prazoMM");
listRetorno.add("impacto");
listRetorno.add("urgencia");
List list = this.execSQL(sql.toString(), null);
if (list != null && !list.isEmpty()) {
return (Collection<ProblemaDTO>) this.listConvertion(getBean(), list, listRetorno);
} else {
return null;
}
}
}