package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.LiberacaoMudancaDTO; import br.com.citframework.dto.IDto; import br.com.citframework.excecao.PersistenceException; import br.com.citframework.excecao.ServiceException; 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({"rawtypes","unchecked"}) public class LiberacaoMudancaDao extends CrudDaoDefaultImpl { public LiberacaoMudancaDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } private static final String SQL_DELETE = "delete from liberacaomudanca where idliberacao = ? and idhistoricoliberacao is null"; private static final String SQL_DELETE_BY_ID_MUDANCA = "delete from liberacaomudanca where idRequisicaoMudanca = ? and idhistoricomudanca is null "; public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idLiberacao" ,"idLiberacao", false, false, false, false)); listFields.add(new Field("idRequisicaoMudanca" ,"idRequisicaoMudanca", true, false, false, false)); listFields.add(new Field("idhistoricoliberacao" ,"idHistoricoLiberacao", true, false, false, false)); //listFields.add(new Field("descricao" ,"descricao", false, false, false, false)); listFields.add(new Field("status" ,"status", false, false, false, false)); listFields.add(new Field("situacaoliberacao" ,"situacaoLiberacao", false, false, false, false)); listFields.add(new Field("idHistoricoMudanca" ,"idHistoricoMudanca", false, false, false, false)); return listFields; } public String getTableName() { return this.getOwner() + "liberacaomudanca"; } public Collection list() throws PersistenceException { return null; } public Class getBean() { return LiberacaoMudancaDTO.class; } public Collection find(IDto arg0) throws PersistenceException { return null; } public Collection findByIdLiberacao(Integer parm) throws Exception { List condicao = new ArrayList(); List ordenacao = new ArrayList(); String param2 = "is null"; condicao.add(new Condition("idLiberacao", "=", parm)); condicao.add(new Condition("idHistoricoLiberacao", "is", null)); ordenacao.add(new Order("idRequisicaoMudanca")); return super.findByCondition(condicao, ordenacao); } public void deleteByIdLiberacao(Integer parm) throws Exception { /*List condicao = new ArrayList(); condicao.add(new Condition("idLiberacao", "=", parm)); super.deleteByCondition(condicao);*/ super.execUpdate(SQL_DELETE, new Object[]{parm}); } public ArrayList<LiberacaoMudancaDTO> listByIdRequisicaoLiberacao(Integer idrequisicaoliberacao) throws ServiceException, Exception { ArrayList<Condition> condicoes = new ArrayList<Condition>(); condicoes.add(new Condition("idLiberacao", "=", idrequisicaoliberacao)); return (ArrayList<LiberacaoMudancaDTO>) super.findByCondition(condicoes, null); } public ArrayList<LiberacaoMudancaDTO> listByIdRequisicaMudanca(Integer idrequisicaoMudanca) throws ServiceException, Exception { ArrayList<Condition> condicoes = new ArrayList<Condition>(); condicoes.add(new Condition("idRequisicaoMudanca", "=", idrequisicaoMudanca)); return (ArrayList<LiberacaoMudancaDTO>) super.findByCondition(condicoes, null); } public ArrayList<LiberacaoMudancaDTO> listByIdHistoricoLiberacao(Integer idHistoricoLiberacao) throws ServiceException, Exception { ArrayList<Condition> condicoes = new ArrayList<Condition>(); condicoes.add(new Condition("idHistoricoLiberacao", "=", idHistoricoLiberacao)); return (ArrayList<LiberacaoMudancaDTO>) super.findByCondition(condicoes, null); } public ArrayList<LiberacaoMudancaDTO> listByIdHistoricoMudanca(Integer idHistoricoMudanca) throws ServiceException, Exception { ArrayList<Condition> condicoes = new ArrayList<Condition>(); condicoes.add(new Condition("idHistoricoMudanca", "=", idHistoricoMudanca)); return (ArrayList<LiberacaoMudancaDTO>) super.findByCondition(condicoes, null); } //geber.costa public Collection<LiberacaoMudancaDTO> listAll() throws ServiceException, Exception { StringBuilder sb = new StringBuilder(); List listRetorno = new ArrayList(); sb.append("SELECT distinct status "); sb.append("FROM liberacaomudanca "); sb.append("WHERE status is not null "); List lista = this.execSQL(sb.toString(), null); listRetorno.add("status"); List listaSolicitacoes = this.engine.listConvertion(getBean(), lista, listRetorno); return listaSolicitacoes; } public Collection findByIdRequisicaoMudanca(Integer idLiberacao , Integer idRequisicaoMudanca) throws Exception { List parametro = new ArrayList(); List fields = new ArrayList(); List list = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append(" SELECT libmud.idliberacao,libmud.idrequisicaomudanca, lib.titulo, lib.descricao, libmud.status, libmud.situacaoliberacao "); sql.append(" FROM liberacaomudanca libmud "); sql.append(" inner join liberacao lib on libmud.idliberacao = lib.idliberacao "); sql.append(" inner join requisicaomudanca mud on libmud.idrequisicaomudanca = mud.idrequisicaomudanca where idhistoricoliberacao is null and idhistoricomudanca is null and "); if(idRequisicaoMudanca != null){ if(idLiberacao != null){ sql.append(" libmud.idrequisicaomudanca = ? AND "); }else{ sql.append(" libmud.idrequisicaomudanca = ? "); } parametro.add(idRequisicaoMudanca); } if(idLiberacao != null){ sql.append(" libmud.idliberacao = ? "); parametro.add(idLiberacao); } list = this.execSQL(sql.toString(), parametro.toArray()); fields.add("idLiberacao"); fields.add("idRequisicaoMudanca"); fields.add("titulo"); fields.add("descricao"); fields.add("status"); fields.add("situacaoLiberacao"); if (list != null && !list.isEmpty()) { return (List<LiberacaoMudancaDTO>) this.listConvertion(getBean(), list, fields); } else { return null; } } public Collection listByIdHistoricoMudanca2(Integer idHistoricoMudanca) throws Exception { List parametro = new ArrayList(); List fields = new ArrayList(); List list = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("SELECT libmud.idliberacao,libmud.idrequisicaomudanca, lib.titulo, lib.descricao, libmud.status, libmud.situacaoliberacao "+ "FROM liberacaomudanca libmud "+ "inner join liberacao lib on libmud.idliberacao = lib.idliberacao "+ "inner join requisicaomudanca mud on libmud.idrequisicaomudanca = mud.idrequisicaomudanca "+ "where idhistoricomudanca = ? "); parametro.add(idHistoricoMudanca); list = this.execSQL(sql.toString(), parametro.toArray()); fields.add("idLiberacao"); fields.add("idRequisicaoMudanca"); fields.add("titulo"); fields.add("descricao"); fields.add("status"); fields.add("situacaoLiberacao"); if (list != null && !list.isEmpty()) { return (List<LiberacaoMudancaDTO>) this.listConvertion(getBean(), list, fields); } else { return null; } } // // public Collection findByIdRequisicaoMudanca(Integer parm) throws Exception { // List parametro = new ArrayList(); // List fields = new ArrayList(); // List list = new ArrayList(); // StringBuilder sql = new StringBuilder(); // // sql.append(" SELECT idRequisicaoMudanca,idLiberacao,descricao,status,situacaoLiberacao FROM "+getTableName()); // sql.append(" WHERE idHistoricoLiberacao is null "); // sql.append(" AND idliberacao = ?"); // parametro.add(parm); // list = this.execSQL(sql.toString(), parametro.toArray()); // fields.add("idRequisicaoMudanca"); // fields.add("idLiberacao"); // fields.add("descricao"); // fields.add("status"); // fields.add("situacaoLiberacao"); // if (list != null && !list.isEmpty()) { // return (List<LiberacaoMudancaDTO>) this.listConvertion(getBean(), list, fields); // } else { // return null; // } // } public Collection findByIdLiberacao2(Integer parm) throws Exception { List parametro = new ArrayList(); List fields = new ArrayList(); List list = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append(" select libm.idliberacao, l.titulo, l.descricao, libm.status, libm.situacaoliberacao, libm.idrequisicaomudanca from liberacaomudanca libm "); sql.append(" inner join liberacao l on l.idliberacao = libm.idliberacao "); sql.append(" where libm.idliberacao = ? and idhistoricoliberacao is null"); parametro.add(parm); list = this.execSQL(sql.toString(), parametro.toArray()); fields.add("idLiberacao"); fields.add("titulo"); fields.add("descricao"); fields.add("status"); fields.add("situacaoLiberacao"); fields.add("idRequisicaoMudanca"); if (list != null && !list.isEmpty()) { return (List<LiberacaoMudancaDTO>) this.listConvertion(getBean(), list, fields); } else { return null; } } public void deleteByIdRequisicaoMudanca(Integer idRequisicaoMudanca) throws ServiceException, Exception{ ArrayList<Condition> condicoes = new ArrayList<Condition>(); condicoes.add(new Condition("idRequisicaoMudanca", "=", idRequisicaoMudanca)); super.deleteByCondition(condicoes); } public void deleteByIdMudanca(Integer parm) throws Exception { /*List condicao = new ArrayList(); condicao.add(new Condition("idLiberacao", "=", parm)); super.deleteByCondition(condicao);*/ super.execUpdate(SQL_DELETE_BY_ID_MUDANCA, new Object[]{parm}); } }