package br.com.centralit.citgerencial.generateservices.itemcfg; import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import br.com.centralit.citcorpore.bean.GrupoItemConfiguracaoDTO; import br.com.centralit.citcorpore.negocio.GrupoItemConfiguracaoService; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.Enumerados.TipoDate; import br.com.centralit.citgerencial.bean.GerencialGenerateService; import br.com.citframework.excecao.PersistenceException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.integracao.JdbcEngine; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.SQLConfig; import br.com.citframework.util.UtilDatas; /** * Adaptado m�todo para utilizar corretamento os filtros de busca * 29/12/2014 - 10:42 * @author thyen.chang */ @SuppressWarnings({ "rawtypes", "unchecked" }) public class GenerateServiceItemCfgInventario extends GerencialGenerateService { public List execute(HashMap parametersValues, Collection paramtersDefinition) throws ParseException { String datainicial = (String) parametersValues.get("PARAM.dataInicial"); String datafinal = (String) parametersValues.get("PARAM.dataFinal"); String idGrupoItemConfiguracaoPaiStr = (String) parametersValues.get("PARAM.idGrupoItemConfiguracaoPai"); Integer idGrupoItemConfiguracaoPai = null; try { idGrupoItemConfiguracaoPai = new Integer(idGrupoItemConfiguracaoPaiStr); } catch (Exception e) { e.printStackTrace(); } String situacaoStr = (String) parametersValues.get("PARAM.situacao"); Integer situacao = null; try { situacao = new Integer(situacaoStr); } catch (Exception e) { e.printStackTrace(); } String idCriticidadeStr = (String) parametersValues.get("PARAM.idCriticidade"); Integer idCriticidade = null; try { idCriticidade = new Integer(idCriticidadeStr); } catch (Exception e) { e.printStackTrace(); } String idTipoItemConfiguracaoStr = (String) parametersValues.get("PARAM.idTipoItemConfiguracao"); Integer idTipoItemConfiguracao = null; try { idTipoItemConfiguracao = new Integer(idTipoItemConfiguracaoStr); } catch (Exception e) { e.printStackTrace(); } List parametros = new ArrayList(); String sql = "Select identificacao, datainicio, dataexpiracao, numeroSerie, localidade, versao, status from itemconfiguracao where 1=1 "; if(datainicial != null && !datainicial.isEmpty()){ sql += (" AND datainicio >= ? "); if(CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equalsIgnoreCase(SQLConfig.ORACLE)) parametros.add(datainicial); else parametros.add(UtilDatas.convertStringToSQLDate(TipoDate.DATE_DEFAULT, datainicial, null)); } if(datafinal != null && !datafinal.isEmpty()){ sql += (" AND datafim <= ? "); if(CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equalsIgnoreCase(SQLConfig.ORACLE)) parametros.add(datafinal); else parametros.add(UtilDatas.convertStringToSQLDate(TipoDate.DATE_DEFAULT, datafinal, null)); } if (situacao != null && situacao.intValue() != -1) { sql += " AND status = ? "; parametros.add(situacao); } if (idCriticidade != null && idCriticidade.intValue() != -1) { sql += "AND criticidade = ? "; parametros.add(idCriticidade); } if (idTipoItemConfiguracao != null && idTipoItemConfiguracao.intValue() != -1) { sql += "AND idtipoitemconfiguracao = ? "; parametros.add(idTipoItemConfiguracao); } GrupoItemConfiguracaoService grupoItemConfiguracaoService = null; try { grupoItemConfiguracaoService = (GrupoItemConfiguracaoService) ServiceLocator.getInstance().getService(GrupoItemConfiguracaoService.class, null); } catch (ServiceException e1) { e1.printStackTrace(); } catch (Exception e1) { e1.printStackTrace(); } Collection colGrupos = null; try { if (grupoItemConfiguracaoService != null) { colGrupos = grupoItemConfiguracaoService.listHierarquiaGruposByIdGrupo(idGrupoItemConfiguracaoPai, null); } } catch (Exception e1) { e1.printStackTrace(); } if (idGrupoItemConfiguracaoPai != null && idGrupoItemConfiguracaoPai.intValue() == 997) { Collection colGrupos2 = null; try { colGrupos2 = grupoItemConfiguracaoService.listHierarquiaGrupoPaiNull(); } catch (Exception e) { e.printStackTrace(); } if (colGrupos2 != null) { colGrupos.addAll(colGrupos2); } } if (idGrupoItemConfiguracaoPai != null && idGrupoItemConfiguracaoPai.intValue() != -1) { sql += "AND idgrupoitemconfiguracao IN ("; String strGrp = ""; for (Iterator it = colGrupos.iterator(); it.hasNext();) { GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO = (GrupoItemConfiguracaoDTO) it.next(); if (!strGrp.equalsIgnoreCase("")) { strGrp = strGrp + ","; } strGrp = strGrp + grupoItemConfiguracaoDTO.getIdGrupoItemConfiguracao(); } sql += strGrp; sql += ")"; } List lista = null; List listaNew = new ArrayList(); JdbcEngine jdbcEngine = new JdbcEngine(Constantes.getValue("DATABASE_ALIAS"), null); try { lista = jdbcEngine.execSQL(sql.toString(), parametros.toArray(), 0); if (lista != null) { for (Iterator it = lista.iterator(); it.hasNext();) { Object[] objsNew = new Object[7]; Object[] objs = (Object[]) it.next(); int x = 0; if (objs[6] != null) { try { if (objs[6] instanceof Integer) { x = (Integer) (objs[6]); } if (objs[6] instanceof Long) { x = new Integer(((Long) (objs[6])).intValue()); } } catch (Exception e) { } } objsNew[0] = objs[0]; objsNew[1] = objs[1]; objsNew[2] = objs[2]; objsNew[3] = objs[3]; objsNew[4] = objs[4]; objsNew[5] = objs[5]; Enumerados.StatusIC st = Enumerados.StatusIC.getStatus(x); if (st != null) { objsNew[6] = st.getDescricao(); } else { objsNew[6] = ""; } listaNew.add(objsNew); } } } catch (PersistenceException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } if (listaNew == null || listaNew.size() == 0) { // listaNew = new ArrayList(); // Object[] objFinal = { "", "", "", null, "", "", "" }; // listaNew.add(objFinal); } return listaNew; } }