package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.FluxoServicoDTO; 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; @SuppressWarnings({ "unchecked", "rawtypes" }) public class FluxoServicoDao extends CrudDaoDefaultImpl { public FluxoServicoDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } private List getColunasRestoreAll() { List listRetorno = new ArrayList(); listRetorno.add("idFluxoServico"); listRetorno.add("idServicoContrato"); listRetorno.add("idTipoFluxo"); listRetorno.add("idFase"); listRetorno.add("principal"); listRetorno.add("deleted"); return listRetorno; } private String getSQLRestoreAll() { StringBuilder sql = new StringBuilder(); sql.append("SELECT idFluxoServico, idServicoContrato, idTipoFluxo, idFase, principal, deleted FROM FluxoServico "); sql.append(" WHERE (deleted is null or UCASE(deleted) = 'N') "); return sql.toString(); } public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idFluxoServico", "idFluxoServico", true, true, false, false)); listFields.add(new Field("idServicoContrato", "idServicoContrato", false, false, false, false)); listFields.add(new Field("idTipoFluxo", "idTipoFluxo", false, false, false, false)); listFields.add(new Field("idFase", "idFase", false, false, false, false)); listFields.add(new Field("principal", "principal", false, false, false, false)); listFields.add(new Field("deleted", "deleted", false, false, false, false)); return listFields; } public String getTableName() { return this.getOwner() + "FluxoServico"; } public Collection list() throws PersistenceException { return null; } public Class getBean() { return FluxoServicoDTO.class; } public Collection find(IDto arg0) throws PersistenceException { return null; } public Collection findByIdServicoContrato(Integer parm) throws PersistenceException { List parametro = new ArrayList(); parametro.add(parm); String sql = getSQLRestoreAll(); sql += " AND idServicoContrato = ? " + "ORDER BY idTipoFluxo "; List lista = this.execSQL(sql.toString(), parametro.toArray()); return this.engine.listConvertion(FluxoServicoDTO.class, lista, getColunasRestoreAll()); } public Collection findByIdFluxoServico(Integer parm) throws PersistenceException { List parametro = new ArrayList(); parametro.add(parm); String sql = getSQLRestoreAll(); sql += " AND idFluxoServico = ? " + "ORDER BY idTipoFluxo "; List lista = this.execSQL(sql.toString(), parametro.toArray()); return this.engine.listConvertion(FluxoServicoDTO.class, lista, getColunasRestoreAll()); } public Collection findByIdServicoContratoAndIdFase(Integer idServicoContrato, Integer idFase) throws PersistenceException { List parametro = new ArrayList(); parametro.add(idServicoContrato); parametro.add(idFase); String sql = getSQLRestoreAll(); sql += " AND idServicoContrato = ? " + " AND idFase = ? " + "ORDER BY idTipoFluxo "; List lista = this.execSQL(sql.toString(), parametro.toArray()); return this.engine.listConvertion(FluxoServicoDTO.class, lista, getColunasRestoreAll()); } public FluxoServicoDTO findByIdServicoContratoAndIdTipoFluxo(Integer idServicoContrato, Integer idTipoFluxo) throws PersistenceException { List parametro = new ArrayList(); parametro.add(idServicoContrato); parametro.add(idTipoFluxo); String sql = getSQLRestoreAll(); sql += " AND idServicoContrato = ? " + " AND idTipoFluxo = ? " + "ORDER BY idTipoFluxo "; List lista = this.execSQL(sql.toString(), parametro.toArray()); FluxoServicoDTO fluxoServicoDTO = null; List<FluxoServicoDTO> collection = this.engine.listConvertion(FluxoServicoDTO.class, lista, getColunasRestoreAll()); if (collection != null && !collection.isEmpty()) { fluxoServicoDTO = collection.get(0); } return fluxoServicoDTO; } /** * Retorna FluxoServicoDTO Principal Ativo de acordo com o idServicoContrato informado. * * @param idServicoContrato * @return FluxoServicoDTO * @throws Exception * @author valdoilo.damasceno */ public FluxoServicoDTO findPrincipalByIdServicoContrato(Integer idServicoContrato) throws PersistenceException { List parametro = new ArrayList(); parametro.add(idServicoContrato); String sql = getSQLRestoreAll(); sql += " AND principal = 'S'" + " AND idServicoContrato = ? " + "ORDER BY idTipoFluxo "; List lista = this.execSQL(sql.toString(), parametro.toArray()); if (lista != null && !lista.isEmpty()) { List listaResult = this.engine.listConvertion(FluxoServicoDTO.class, lista, getColunasRestoreAll()); return (FluxoServicoDTO) listaResult.get(0); } else { return null; } } public boolean validarFluxoServico(FluxoServicoDTO fluxoServicoDTO) { try { List parametro = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("SELECT idFluxoServico, idServicoContrato, idTipoFluxo, idFase, principal, deleted FROM FluxoServico"); sql.append(" WHERE (deleted is null or UCASE(deleted) = 'N') AND idfase = ? AND idTipoFluxo = ? AND idServicoContrato = ? AND principal like '" + fluxoServicoDTO.getPrincipal() + "'"); parametro.add(fluxoServicoDTO.getIdFase()); parametro.add(fluxoServicoDTO.getIdTipoFluxo()); parametro.add(fluxoServicoDTO.getIdServicoContrato()); List lista = this.execSQL(sql.toString(), parametro.toArray()); if (lista != null && !lista.isEmpty()) { return false; } else { return true; } } catch (PersistenceException e) { e.printStackTrace(); return false; } } public void deleteByIdServicoContrato(Integer idServicocContrato) throws PersistenceException { List condicao = new ArrayList(); condicao.add(new Condition("idServicoContrato", "=", idServicocContrato)); FluxoServicoDTO fluxoServicoDTO = new FluxoServicoDTO(); fluxoServicoDTO.setDeleted("y"); super.updateNotNullByCondition(fluxoServicoDTO, condicao); // super.deleteByCondition(condicao); } }