package br.com.centralit.citcorpore.integracao; import java.sql.Date; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.OpiniaoDTO; 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; @SuppressWarnings({ "unchecked", "rawtypes" }) public class OpiniaoDao extends CrudDaoDefaultImpl { public OpiniaoDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } public Class getBean() { return OpiniaoDTO.class; } public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idOpiniao", "idOpiniao", true, true, false, false)); listFields.add(new Field("idUsuario", "idUsuario", false, false, false, false)); listFields.add(new Field("idSolicitacao", "idSolicitacao", false, false, false, false)); listFields.add(new Field("data", "data", false, false, false, false)); listFields.add(new Field("hora", "hora", false, false, false, false)); listFields.add(new Field("tipo", "tipo", false, false, false, false)); listFields.add(new Field("observacoes", "observacoes", false, false, false, false)); return listFields; } public String getTableName() { return "opiniao"; } public Collection find(IDto obj) throws PersistenceException { return null; } public Collection list() throws PersistenceException { List list = new ArrayList(); list.add(new Order("idOpiniao")); return super.list(list); } public Collection findByTipoAndPeriodo(String tipo, Integer idContrato, Date dataInicial, Date dataFinal) throws PersistenceException { List parametros = new ArrayList(); parametros.add(idContrato); parametros.add(dataInicial); parametros.add(dataFinal); parametros.add(tipo); String sql = "select " + this.getNamesFieldsStr() + " from " + this.getTableName() + " where idSolicitacao in (select idSolicitacao from solicitacaoservico where idservicocontrato in (select idservicocontrato from servicocontrato where idcontrato = ?) and datahorasolicitacao between ? and ?) and tipo = ? order by idSolicitacao"; List lista = this.execSQL(sql, parametros.toArray()); return this.listConvertion(getBean(), lista, this.getListNamesFieldClass()); } public OpiniaoDTO findByIdSolicitacao(Integer idSolicitacao) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idSolicitacao", "=", idSolicitacao)); ordenacao.add(new Order("idOpiniao")); Collection col = super.findByCondition(condicao, ordenacao); if (col != null && !col.isEmpty()) return (OpiniaoDTO) ((List) col).get(0); else return null; } }