package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.AprovacaoPropostaDTO; 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.util.Constantes; public class AprovacaoPropostaDao extends CrudDaoDefaultImpl{ public AprovacaoPropostaDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } @Override public Collection find(IDto obj) throws PersistenceException { return null; } @Override public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idAprovacaoProposta", "idAprovacaoProposta", true, true, false, false)); listFields.add(new Field("idRequisicaoMudanca", "idRequisicaoMudanca", false, false, false, false)); listFields.add(new Field("idEmpregado", "idEmpregado", false, false, false, false)); listFields.add(new Field("nomeEmpregado", "nomeEmpregado", false, false, false, false)); listFields.add(new Field("voto", "voto", false, false, false, false)); listFields.add(new Field("comentario", "comentario", false, false, false, false)); listFields.add(new Field("datahorainicio", "dataHoraInicio", false, false, false, false)); listFields.add(new Field("datahoravotacao", "datahoravotacao", false, false, false, false)); return listFields; } @Override public String getTableName() { return "APROVACAOPROPOSTA"; } @Override public Collection list() throws PersistenceException { return null; } @Override public Class getBean() { return AprovacaoPropostaDTO.class; } public Collection<AprovacaoPropostaDTO> listaAprovacaoPropostaPorIdRequisicaoMudanca(Integer idRequisicaoMudanca,Integer idGrupo, Integer idEmpregado) throws PersistenceException { List parametro = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("SELECT distinct (aprovacaoproposta.idempregado), aprovacaoproposta.comentario, aprovacaoproposta.voto, aprovacaoproposta.idrequisicaomudanca,aprovacaoproposta.idaprovacaoproposta,empregados.nome,aprovacaoproposta.datahorainicio, aprovacaoproposta.datahoravotacao "); sql.append("FROM " + getTableName() + " "); sql.append("inner join gruposempregados on gruposempregados.idempregado = aprovacaoproposta.idempregado "); sql.append("inner join empregados on empregados.idempregado = aprovacaoproposta.idempregado "); sql.append(" WHERE aprovacaoproposta.idrequisicaomudanca = ? "); parametro.add(idRequisicaoMudanca); /*if(idGrupo!=null){ sql.append("and gruposempregados.idgrupo = ?"); parametro.add(idGrupo); }*/ //parametro.add(idEmpregado); List lista = this.execSQL(sql.toString(), parametro.toArray()); List listRetorno = new ArrayList(); listRetorno.add("idEmpregado"); listRetorno.add("comentario"); listRetorno.add("voto"); listRetorno.add("idRequisicaoMudanca"); listRetorno.add("idAprovacaoProposta"); listRetorno.add("nomeEmpregado"); listRetorno.add("dataHoraInicio"); listRetorno.add("dataHoraVotacao"); if (lista != null && !lista.isEmpty()) { return this.engine.listConvertion(getBean(), lista, listRetorno); } else { return null; } } public void deleteByIdRequisicaoMudanca(Integer idRequisicaoMudanca) throws PersistenceException { List lstCondicao = new ArrayList(); lstCondicao.add(new Condition("idRequisicaoMudanca", "=", idRequisicaoMudanca)); super.deleteByCondition(lstCondicao); } public void updateByIdRequisicaoMudanca(AprovacaoPropostaDTO aprovacaopropostaDto) throws PersistenceException { super.updateNotNull(aprovacaopropostaDto); } public void deleteLinha(Integer idRequisicaoMudanca, Integer idEmpregado) throws PersistenceException { // List parametro = new ArrayList(); // parametro.add(idRequisicaoMudanca); // String sql = "DELETE FROM aprovacaoproposta where (datahoravotacao = 'Ainda n�o votou.' and idrequisicaomudanca = ?)"; // this.execSQL(sql.toString(), parametro.toArray()); List lstCondicao = new ArrayList(); lstCondicao.add(new Condition("idRequisicaoMudanca", "=", idRequisicaoMudanca)); lstCondicao.add(new Condition("idEmpregado", "=", idEmpregado)); super.deleteByCondition(lstCondicao); } public Integer quantidadeAprovacaoPropostaPorVotoAprovada(AprovacaoPropostaDTO aprovacao,Integer idGrupo) throws PersistenceException { List listRetorno = new ArrayList(); List parametro = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("select count(voto) from aprovacaoproposta "); /*if(idGrupo !=null){ sql.append("inner join gruposempregados on gruposempregados.idempregado = aprovacaoproposta.idempregado "); }*/ sql.append(" where idrequisicaomudanca = ? and voto = ? "); parametro.add(aprovacao.getIdRequisicaoMudanca()); parametro.add(aprovacao.getVoto()); /*if(idGrupo !=null){ sql.append("and gruposempregados.idgrupo = ?"); parametro.add(idGrupo); }*/ List list = this.execSQL(sql.toString(), parametro.toArray()); listRetorno.add("quantidadeVotoAprovada"); if (list != null && !list.isEmpty()) { AprovacaoPropostaDTO aprovacaopropostaDto = (AprovacaoPropostaDTO) this.engine.listConvertion(AprovacaoPropostaDTO.class, list, listRetorno).get(0); return aprovacaopropostaDto.getQuantidadeVotoAprovada(); } else { return new Integer(0); } } public Integer quantidadeAprovacaoPropostaPorVotoRejeitada(AprovacaoPropostaDTO aprovacao,Integer idGrupo) throws PersistenceException { List listRetorno = new ArrayList(); List parametro = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("select count(voto) from aprovacaoproposta "); /*if(idGrupo !=null){ sql.append("inner join gruposempregados on gruposempregados.idempregado = aprovacaoproposta.idempregado "); }*/ sql.append(" where idrequisicaomudanca = ? and voto = ? "); parametro.add(aprovacao.getIdRequisicaoMudanca()); parametro.add(aprovacao.getVoto()); /*if(idGrupo !=null){ sql.append("and gruposempregados.idgrupo = ?"); parametro.add(idGrupo); }*/ List list = this.execSQL(sql.toString(), parametro.toArray()); listRetorno.add("quantidadeVotoRejeitada"); if (list != null && !list.isEmpty()) { AprovacaoPropostaDTO aprovacaopropostaDto = (AprovacaoPropostaDTO) this.engine.listConvertion(AprovacaoPropostaDTO.class, list, listRetorno).get(0); return aprovacaopropostaDto.getQuantidadeVotoRejeitada(); } else { return new Integer(0); } } @Deprecated public Integer quantidadeAprovacaoProposta(AprovacaoPropostaDTO aprovacao, Integer idGrupo) throws PersistenceException { List listRetorno = new ArrayList(); List parametro = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("select count(aprovacaoproposta.idempregado) from aprovacaoproposta "); /*if(idGrupo !=null){ sql.append("inner join gruposempregados on gruposempregados.idempregado = aprovacaoproposta.idempregado "); }*/ sql.append(" where idrequisicaomudanca = ? "); parametro.add(aprovacao.getIdRequisicaoMudanca()); /*if(idGrupo !=null){ sql.append("and gruposempregados.idgrupo = ?"); parametro.add(idGrupo); }*/ List list = this.execSQL(sql.toString(), parametro.toArray()); listRetorno.add("quantidadeAprovacaoProposta"); if (list != null && !list.isEmpty()) { AprovacaoPropostaDTO aprovacaopropostaDto = (AprovacaoPropostaDTO) this.engine.listConvertion(AprovacaoPropostaDTO.class, list, listRetorno).get(0); return aprovacaopropostaDto.getQuantidadeAprovacaoProposta(); } else { return new Integer(0); } } public Boolean validacaoAprovacaoProposta(Integer idRequisicaoMudanca) throws PersistenceException { List parametro = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("select idrequisicaomudanca from aprovacaoproposta where idrequisicaomudanca = ?"); parametro.add(idRequisicaoMudanca); List list = this.execSQL(sql.toString(), parametro.toArray()); if (list != null && !list.isEmpty()) { return true; } else { return false; } } public Integer quantidadeDeEmpregdosPorGrupo(Integer idGrupo) throws PersistenceException { List listRetorno = new ArrayList(); List parametro = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("select count(idgrupo) from gruposempregados "); sql.append("where gruposempregados.idgrupo = ?"); parametro.add(idGrupo); List list = this.execSQL(sql.toString(), parametro.toArray()); listRetorno.add("quantidadeAprovacaoProposta"); if (list != null && !list.isEmpty()) { AprovacaoPropostaDTO aprovacaopropostaDto = (AprovacaoPropostaDTO) this.engine.listConvertion(AprovacaoPropostaDTO.class, list, listRetorno).get(0); return aprovacaopropostaDto.getQuantidadeAprovacaoProposta(); } else { return new Integer(0); } } }