package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; import br.com.centralit.citcorpore.bean.InventarioXMLDTO; 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.util.Constantes; import br.com.citframework.util.SQLConfig; public class InventarioXMLDAO extends CrudDaoDefaultImpl { public InventarioXMLDAO() { super(Constantes.getValue("DATABASE_ALIAS"), null); } public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idInventarioxml", "idInventarioxml", true, true, false, false)); listFields.add(new Field("idNetMap", "idNetMap", false, false, false, false)); listFields.add(new Field("nome", "nome", false, false, false, false)); listFields.add(new Field("conteudo", "conteudo", false, false, false, false)); listFields.add(new Field("datainicial", "datainicial", false, false, false, false)); listFields.add(new Field("datafinal", "datafinal", false, false, false, false)); return listFields; } public String getTableName() { return this.getOwner() + "InventarioXML"; } public Collection list() throws PersistenceException { return null; } public Class getBean() { return InventarioXMLDTO.class; } public Collection find(IDto arg0) throws PersistenceException { return null; } /** * Verifica se o ultimo inventario foi gerado no tempo parametrizado. * * @return Falso se o inventario estiver desatualizado. * @throws Exception Excecao ganerica. */ public boolean inventarioAtualizado (String ip, java.util.Date dataExpiracao) throws PersistenceException { StringBuilder sql = new StringBuilder(); List<Date> parametro = new ArrayList<Date>(); if(CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.SQLSERVER)){ sql.append("SELECT top(1) * FROM inventarioxml "); }else{ sql.append("SELECT * FROM inventarioxml "); } sql.append("WHERE nome like '%" + ip + "%' "); sql.append("AND datainicial >= ? "); if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) sql.append("AND ROWNUM = 1"); else if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.POSTGRESQL)) sql.append("offset 1"); else if(!CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.SQLSERVER)) sql.append("LIMIT 1"); parametro.add(dataExpiracao); List lista = this.execSQL(sql.toString(), parametro.toArray()); if (lista != null && !lista.isEmpty()) return true; else return false; } }