package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.ChecklistQuestionarioDTO; import br.com.centralit.citcorpore.bean.ContratoQuestionariosDTO; import br.com.centralit.citcorpore.bean.RequisicaoQuestionarioDTO; import br.com.centralit.citcorpore.bean.SolicitacaoServicoQuestionarioDTO; 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.integracao.Order; import br.com.citframework.util.Constantes; @SuppressWarnings({"unchecked", "rawtypes"}) public class RequisicaoQuestionarioDao extends CrudDaoDefaultImpl { public RequisicaoQuestionarioDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } public Collection find(IDto obj) throws PersistenceException { return null; } public Collection<Field> getFields() { List lista = new ArrayList(); lista.add(new Field("idRequisicaoQuestionario","idRequisicaoQuestionario",true,false,false,false)); lista.add(new Field("idQuestionario","idQuestionario",false,false,false,false)); lista.add(new Field("idRequisicao","idRequisicao",false,false,false,false)); lista.add(new Field("dataQuestionario","dataQuestionario",false,false,false,false)); lista.add(new Field("idResponsavel","idResponsavel",false,false,false,false)); lista.add(new Field("idTarefa","idTarefa",false,false,false,false)); lista.add(new Field("aba","aba",false,false,false,false)); lista.add(new Field("situacao","situacao",false,false,false,false)); lista.add(new Field("dataHoraGrav","dataHoraGrav",false,false,false,false)); lista.add(new Field("conteudoImpresso","conteudoImpresso",false,false,false,false)); lista.add(new Field("idtiporequisicao","idTipoRequisicao",false,false,false,false)); lista.add(new Field("idTipoAba","idTipoAba",false,false,false,false)); lista.add(new Field("confirmacao","confirmacao",false,false,false,false)); return lista; } public String getTableName() { return "requisicaoquestionario"; } public static String getTableNameAssDigital() { return "requisicaoquestionario"; } public Collection list() throws PersistenceException { return null; } public Class getBean() { return RequisicaoQuestionarioDTO.class; } public Collection listByIdSolicitacaoServico(Integer idSolicitacaoServico) throws PersistenceException { List list = new ArrayList(); list.add(new Order("dataQuestionario")); list.add(new Order("aba")); SolicitacaoServicoQuestionarioDTO obj = new SolicitacaoServicoQuestionarioDTO(); obj.setIdSolicitacaoServico(idSolicitacaoServico); return super.find(obj, list); } public SolicitacaoServicoQuestionarioDTO findByIdSolicitacaoServico(Integer idSolicitacaoServico) throws PersistenceException { List list = new ArrayList(); list.add(new Order("dataHoraGrav", Order.DESC)); list.add(new Order("idSolicitacaoQuestionario", Order.DESC)); SolicitacaoServicoQuestionarioDTO obj = new SolicitacaoServicoQuestionarioDTO(); obj.setIdSolicitacaoServico(idSolicitacaoServico); List<SolicitacaoServicoQuestionarioDTO> result = (List<SolicitacaoServicoQuestionarioDTO>) super.find(obj, list); if (result != null && result.size() > 0) return result.get(0); else return null; } public void update(IDto obj) throws PersistenceException { super.updateNotNull(obj); } public void updateSituacaoComplemento(Integer idPessQuest, String situacaoComplemento) throws PersistenceException { ContratoQuestionariosDTO obj = new ContratoQuestionariosDTO(); obj.setIdContratoQuestionario(idPessQuest); obj.setSituacaoComplemento(situacaoComplemento); super.updateNotNull(obj); } public void updateConteudoImpresso(Integer idPessQuest, String conteudoImpresso) throws PersistenceException { ContratoQuestionariosDTO obj = new ContratoQuestionariosDTO(); obj.setIdContratoQuestionario(idPessQuest); obj.setConteudoImpresso(conteudoImpresso); super.updateNotNull(obj); } public Collection listByIdTipoAbaAndTipoRequisicaoAndQuestionario(ChecklistQuestionarioDTO checklistQuestionarioDTO) throws PersistenceException { StringBuilder sqlBuffer = new StringBuilder(); List param = new ArrayList(); sqlBuffer.append("select requisicaoquestionario.idrequisicaoquestionario, requisicaoquestionario.idquestionario, requisicaoquestionario.idrequisicao,") ; sqlBuffer.append(" requisicaoquestionario.datahoragrav, "); sqlBuffer.append(" requisicaoquestionario.aba, requisicaoquestionario.situacao, questionario.nomequestionario, requisicaoquestionario.confirmacao "); sqlBuffer.append(" from requisicaoquestionario inner join "); sqlBuffer.append(" questionario on requisicaoquestionario.idquestionario = questionario.idquestionario "); sqlBuffer.append(" inner join questionario quest on requisicaoquestionario.idquestionario = quest.idquestionario "); if(checklistQuestionarioDTO.getIdQuestionario() != null ){ sqlBuffer.append(" where (requisicaoquestionario.idquestionario = ? "); param.add(checklistQuestionarioDTO.getIdQuestionario()); if(checklistQuestionarioDTO.getIdQuestionarioOrigem() != null){ sqlBuffer.append(" or questionario.idquestionarioorigem = ? "); param.add(checklistQuestionarioDTO.getIdQuestionarioOrigem()); } sqlBuffer.append(")"); } if(checklistQuestionarioDTO.getIdTipoAba() != null){ sqlBuffer.append(" and requisicaoquestionario.idtipoaba = ? "); param.add(checklistQuestionarioDTO.getIdTipoAba()); } if(checklistQuestionarioDTO.getIdTipoRequisicao() != null){ sqlBuffer.append(" and requisicaoquestionario.idtiporequisicao = ? "); param.add(checklistQuestionarioDTO.getIdTipoRequisicao()); } if(checklistQuestionarioDTO.getIdRequisicao() != null){ sqlBuffer.append(" and requisicaoquestionario.idrequisicao = ? "); param.add(checklistQuestionarioDTO.getIdRequisicao()); } //sqlBuffer.append(" order by requisicaoquestionario.dataquestionario desc, idrequisicaoquestionario desc; "); sqlBuffer.append(" order by requisicaoquestionario.datahoragrav desc, idrequisicaoquestionario desc "); List lista = this.execSQL(sqlBuffer.toString(), param.toArray()); List listRetorno = new ArrayList(); listRetorno.add("idRequisicaoQuestionario"); listRetorno.add("idQuestionario"); listRetorno.add("idRequisicao"); listRetorno.add("dataHoraGrav"); listRetorno.add("aba"); listRetorno.add("situacao"); listRetorno.add("nomeQuestionario"); listRetorno.add("confirmacao"); List result = this.engine.listConvertion(getBean(), lista, listRetorno); return result; } @Override public void updateNotNull(IDto obj) throws PersistenceException { // TODO Auto-generated method stub super.updateNotNull(obj); } public boolean gravaConfirmacao(Integer idRequisicao, String confirmacao){ String sql = "update " + getTableName() + " set confirmacao = ? where idRequisicaoQuestionario = ? "; Object[] parametros = {confirmacao, idRequisicao}; try { this.execUpdate(sql, parametros); return true; } catch (PersistenceException e) { return false; } } public Collection listNaoConfirmados(Integer id, Integer tipo) throws PersistenceException { StringBuilder sqlBuffer = new StringBuilder(); List param = new ArrayList(); sqlBuffer.append("select requisicaoquestionario.idrequisicaoquestionario from requisicaoquestionario where idrequisicao = ? and idtiporequisicao = ? and (confirmacao <> 'S' or confirmacao is null)") ; param.add(id); param.add(tipo); List lista = this.execSQL(sqlBuffer.toString(), param.toArray()); List listRetorno = new ArrayList(); listRetorno.add("idRequisicaoQuestionario"); List result = this.engine.listConvertion(getBean(), lista, listRetorno); return result; } }