/** * CentralIT - CITSmart */ package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.BaseItemConfiguracaoDTO; import br.com.centralit.citcorpore.util.CITCorporeUtil; 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; /** * DAO de BaseItemConfiguracao. * * @author valdoilo.damasceno * */ public class BaseItemConfiguracaoDAO extends CrudDaoDefaultImpl { /** * Construtor padr�o. */ public BaseItemConfiguracaoDAO() { super(Constantes.getValue("DATABASE_ALIAS"), null); } /* (non-Javadoc) * @see br.com.citframework.integracao.CrudDaoDefaultImpl#restore(br.com.citframework.dto.IDto) */ @SuppressWarnings("unchecked") @Override public IDto restore(IDto obj) throws PersistenceException { List<Object> parametro = new ArrayList<Object>(); List<Object> list = new ArrayList<Object>(); String sql = "SELECT fl.idbaseitemconfiguracao, " + "fl.idtipoitemconfiguracao, " + "pai.nomebaseitemconfiguracao, " + "fl.executavel, " + "fl.tipoexecucao, " + "fl.comando, " + "fl.idbaseitemconfiguracaopai, " + "pai.datainicio, " + "pai.datafim " + "FROM "+getTableName()+" AS pai " + "INNER JOIN "+getTableName()+" AS fl " + "ON pai.idbaseitemconfiguracao = fl.idbaseitemconfiguracaopai " + "WHERE fl.idbaseitemconfiguracao = ?"; parametro.add(((BaseItemConfiguracaoDTO) obj).getId()); list = this.execSQL(sql, parametro.toArray()); List<?> result = listConvertion(BaseItemConfiguracaoDTO.class, list, generateFieldsResult()); if (!result.isEmpty()) { return (IDto) result.get(0); } else { return null; } } @SuppressWarnings("unchecked") public List<IDto> restoreFilhos(IDto pai) throws PersistenceException { List<Object> parametro = new ArrayList<Object>(); List<Object> list = new ArrayList<Object>(); String sql = "SELECT fl.idbaseitemconfiguracao, fl.idtipoitemconfiguracao, pai.nomebaseitemconfiguracao, fl.executavel, fl.tipoexecucao, fl.comando, fl.idbaseitemconfiguracaopai, pai.datainicio, pai.datafim " + "FROM baseitemconfiguracao AS pai " + "INNER JOIN baseitemconfiguracao AS fl " + "ON pai.idbaseitemconfiguracao = fl.idbaseitemconfiguracaopai " + "WHERE pai.idbaseitemconfiguracaopai IS NULL " + "AND pai.datafim IS NULL " + "AND fl.idbaseitemconfiguracaopai = ?"; parametro.add(((BaseItemConfiguracaoDTO) pai).getId()); list = this.execSQL(sql, parametro.toArray()); List<?> result = listConvertion(BaseItemConfiguracaoDTO.class, list, generateFieldsResult()); return (List<IDto>) result; } private List<Object> generateFieldsResult() { List<Object> fields = new ArrayList<Object>(); fields.add("id"); fields.add("idTipoItemConfiguracao"); fields.add("nome"); fields.add("executavel"); fields.add("tipoexecucao"); fields.add("comando"); fields.add("idBaseItemConfiguracaoPai"); fields.add("dataInicio"); fields.add("dataFim"); return fields; } @Override public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("IDBASEITEMCONFIGURACAO", "id", true, true, false, false)); listFields.add(new Field("IDTIPOITEMCONFIGURACAO", "idTipoItemConfiguracao", false, false, false, false)); listFields.add(new Field("NOMEBASEITEMCONFIGURACAO", "nome", false, false, false, false)); listFields.add(new Field("IDBASEITEMCONFIGURACAOPAI", "idBaseItemConfiguracaoPai", false, false, false, false)); listFields.add(new Field("EXECUTAVEL", "executavel", false, false, false, false)); listFields.add(new Field("DATAINICIO", "dataInicio", false, false, false, false)); listFields.add(new Field("DATAFIM", "dataFim", false, false, false, false)); listFields.add(new Field("TIPOEXECUCAO", "tipoexecucao", false, false, false, false)); listFields.add(new Field("COMANDO", "comando", false, false, false, false)); return listFields; } @SuppressWarnings({ "rawtypes" }) @Override public Collection find(IDto obj) throws PersistenceException { return null; } @Override public String getTableName() { return "BASEITEMCONFIGURACAO"; } @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public Collection list() throws PersistenceException { List list = new ArrayList(); list.add(new Order("IDBASEITEMCONFIGURACAOPAI")); return super.list(list); } @SuppressWarnings("rawtypes") @Override public Class getBean() { return BaseItemConfiguracaoDTO.class; } /** * Busca na tabela se existe cadastro para a baseItemConfigura��o * * @param obj * @param nomePai * @return * @throws Exception */ @SuppressWarnings("unchecked") public boolean existBaseItemConfiguracao(BaseItemConfiguracaoDTO dto) throws PersistenceException { List<Object> parametro = new ArrayList<Object>(); List<Object> fields = new ArrayList<Object>(); List<Object> list = new ArrayList<Object>(); String sql = null; String strSGBDPrincipal = CITCorporeUtil.SGBD_PRINCIPAL; if(strSGBDPrincipal.equalsIgnoreCase("ORACLE")){ sql = "SELECT idbaseitemconfiguracao FROM "+getTableName()+" b " + "WHERE b.nomebaseitemconfiguracao = ? AND b.datafim IS NULL AND b.idbaseitemconfiguracaopai IS NULL"; }else{ sql = "SELECT idbaseitemconfiguracao FROM "+getTableName()+" AS b " + "WHERE b.nomebaseitemconfiguracao = ? AND b.datafim IS NULL AND b.idbaseitemconfiguracaopai IS NULL"; } parametro.add(dto.getNome()); list = this.execSQL(sql, parametro.toArray()); fields.add("IDBASEITEMCONFIGURACAO"); if (list.isEmpty()) { return false; } else { return true; } } }