package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.ProcessamentoBatchDTO; import br.com.centralit.citcorpore.negocio.ConexaoBIService; import br.com.centralit.citcorpore.util.CITCorporeUtil; 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.integracao.Order; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.SQLConfig; public class ProcessamentoBatchDao extends CrudDaoDefaultImpl { public ProcessamentoBatchDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } @Override public Collection find(IDto arg0) throws PersistenceException { return null; } @Override public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idProcessamentoBatch", "idProcessamentoBatch", true, true, false, false)); listFields.add(new Field("descricao", "descricao", false, false, false, false)); listFields.add(new Field("expressaoCRON", "expressaoCRON", false, false, false, false)); listFields.add(new Field("conteudo", "conteudo", false, false, false, false)); listFields.add(new Field("tipo", "tipo", false, false, false, false)); listFields.add(new Field("situacao", "situacao", false, false, false, false)); return listFields; } @Override public String getTableName() { return "ProcessamentoBatch"; } @Override public Collection list() throws PersistenceException { List<Order> list = new ArrayList<>(); list.add(new Order("descricao")); return super.list(list); } @Override public Class<ProcessamentoBatchDTO> getBean() { return ProcessamentoBatchDTO.class; } public Collection getAtivos() throws Exception { List<Order> lstOrder = new ArrayList<>(); List<Condition> lstCondicao = new ArrayList<>(); lstCondicao.add(new Condition("situacao", "=", "A")); lstOrder.add(new Order("descricao")); return super.findByCondition(lstCondicao, lstOrder); } /** * Metodo que verifica se existe um registro com os mesmos dados na base de dados. * * @param processamentoBatch * @return * @throws Exception */ public boolean existeDuplicidade(ProcessamentoBatchDTO processamentoBatch) throws Exception { List<Condition> condicao = new ArrayList<>(); List<Order> ordenacao = new ArrayList<>(); condicao.add(new Condition("descricao", "=", processamentoBatch.getDescricao())); ordenacao.add(new Order("descricao")); List result = (List) super.findByCondition(condicao, ordenacao); if (result != null && !result.isEmpty()) { return true; } return false; } public boolean existeDuplicidadeClasse(ProcessamentoBatchDTO processamentoBatch) throws Exception { List<Condition> condicao = new ArrayList<>(); List<Order> ordenacao = new ArrayList<>(); condicao.add(new Condition("conteudo", "like", processamentoBatch.getConteudo())); ordenacao.add(new Order("descricao")); List result = (List) super.findByCondition(condicao, ordenacao); if (result != null && !result.isEmpty()) { return true; } return false; } public ProcessamentoBatchDTO findById(Integer id) { List result; try { if (id == null) { id = 0; } List resp = new ArrayList<>(); Collection<Field> fields = getFields(); List<Integer> parametro = new ArrayList<>(); List<String> listRetorno = new ArrayList<>(); String campos = ""; for (Field field : fields) { if (!campos.trim().equalsIgnoreCase("")) { campos = campos + ","; } campos = campos + field.getFieldDB(); listRetorno.add(field.getFieldClass()); } String sql = "SELECT " + campos + " FROM " + getTableName() + " WHERE idprocessamentobatch=?"; parametro.add(id); resp = this.execSQL(sql, parametro.toArray()); result = engine.listConvertion(getBean(), resp, listRetorno); } catch (PersistenceException e) { e.printStackTrace(); result = null; } catch (Exception e) { e.printStackTrace(); result = null; } return (ProcessamentoBatchDTO) (((result == null) || (result.size() <= 0)) ? new ProcessamentoBatchDTO() : result.get(0)); } public ProcessamentoBatchDTO getAgendamentoPadrao() throws Exception { ConexaoBIService conexaoBIService = (ConexaoBIService) ServiceLocator.getInstance().getService(ConexaoBIService.class, null); String idProcEspecificoOuExcecao = conexaoBIService.getIdProcEspecificoOuExcecao(); List result; try { List resp = new ArrayList<>(); Collection<Field> fields = getFields(); List<Integer> parametro = new ArrayList<>(); List<String> listRetorno = new ArrayList<>(); String campos = ""; for (Field field : fields) { if (!campos.trim().equalsIgnoreCase("")) { campos = campos + ","; } campos = campos + field.getFieldDB(); listRetorno.add(field.getFieldClass()); } StringBuilder sql = new StringBuilder(); sql.append("SELECT " + campos + " FROM " + getTableName()); if (CITCorporeUtil.SGBD_PRINCIPAL.trim().toUpperCase().equalsIgnoreCase(SQLConfig.SQLSERVER)) { sql.append(" WHERE (CONVERT(VARCHAR(MAX), conteudo) = 'br.com.centralit.citcorpore.quartz.job.ImportacaoAutoBiCitsmart') and (situacao = 'A') "); } else if (CITCorporeUtil.SGBD_PRINCIPAL.trim().toUpperCase().equalsIgnoreCase(SQLConfig.ORACLE)) { sql.append(" WHERE (TO_NCHAR(conteudo) = 'br.com.centralit.citcorpore.quartz.job.ImportacaoAutoBiCitsmart') and (situacao = 'A') "); } else { sql.append(" WHERE (conteudo = 'br.com.centralit.citcorpore.quartz.job.ImportacaoAutoBiCitsmart') and (situacao = 'A') "); } if ((idProcEspecificoOuExcecao != null) && (idProcEspecificoOuExcecao.length() > 0)) { sql.append("and (idprocessamentobatch not in (" + idProcEspecificoOuExcecao + "))"); } resp = this.execSQL(sql.toString(), parametro.toArray()); result = engine.listConvertion(getBean(), resp, listRetorno); } catch (PersistenceException e) { e.printStackTrace(); result = null; } catch (Exception e) { e.printStackTrace(); result = null; } return (ProcessamentoBatchDTO) (((result == null) || (result.size() <= 0)) ? new ProcessamentoBatchDTO() : result.get(0)); } }