package br.com.centralit.citgerencial.generateservices.mudancas; import java.sql.Date; import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import br.com.centralit.citcorpore.bean.GrupoItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.HistoricoItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO; import br.com.centralit.citcorpore.integracao.HistoricoItemConfiguracaoDAO; import br.com.centralit.citcorpore.integracao.ItemConfiguracaoDao; import br.com.centralit.citcorpore.negocio.GrupoItemConfiguracaoService; import br.com.centralit.citcorpore.negocio.ImagemItemConfiguracaoServiceEjb; import br.com.centralit.citcorpore.util.Enumerados.StatusIC; import br.com.centralit.citcorpore.util.Enumerados.TipoDate; import br.com.centralit.citgerencial.bean.GerencialGenerateService; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilDatas; /** */ public class GenerateServiceAtualizacoesNaoAutorizadas extends GerencialGenerateService { @SuppressWarnings({ "unchecked", "rawtypes" }) 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"); String situacaoStr = (String) parametersValues.get("PARAM.situacao"); String idCriticidadeStr = (String) parametersValues.get("PARAM.idCriticidade"); String idTipoItemConfiguracaoStr = (String) parametersValues.get("PARAM.idTipoItemConfiguracao"); Date datafim = null; Date datainicio = null; Integer idGrupoItemConfiguracaoPai = null; Integer situacao = null; Integer idCriticidade = null; Integer idTipoItemConfiguracao = null; List<HistoricoItemConfiguracaoDTO> historicoIC = null; GrupoItemConfiguracaoService grupoItemConfiguracaoService = null; Collection<GrupoItemConfiguracaoDTO> colGrupos = null; List retorno = null; try { datainicio = UtilDatas.convertStringToSQLDate(TipoDate.DATE_DEFAULT, datainicial, super.getLanguage(paramtersDefinition)); datafim = UtilDatas.convertStringToSQLDate(TipoDate.DATE_DEFAULT, datafinal, super.getLanguage(paramtersDefinition)); idGrupoItemConfiguracaoPai = new Integer(idGrupoItemConfiguracaoPaiStr); situacao = new Integer(situacaoStr); idCriticidade = new Integer(idCriticidadeStr); idTipoItemConfiguracao = new Integer(idTipoItemConfiguracaoStr); grupoItemConfiguracaoService = (GrupoItemConfiguracaoService) ServiceLocator.getInstance().getService(GrupoItemConfiguracaoService.class, null); historicoIC = new HistoricoItemConfiguracaoDAO().listHistoricoSemIdMudanca(datainicio, datafim); colGrupos = grupoItemConfiguracaoService.listHierarquiaGruposByIdGrupo(idGrupoItemConfiguracaoPai, null); /* * if (idGrupoItemConfiguracaoPai != null && idGrupoItemConfiguracaoPai.intValue() == 997){ Collection colGrupos2 = null; try { colGrupos2 = * grupoItemConfiguracaoService.listHierarquiaGrupoPaiNull(); } catch (Exception e) { e.printStackTrace(); } if (colGrupos2 != null){ colGrupos.addAll(colGrupos2); } } */ retorno = new ArrayList(); ImagemItemConfiguracaoServiceEjb imagemItemConfiguracaoService = new ImagemItemConfiguracaoServiceEjb(); ItemConfiguracaoDao itemConfiguracaoDao = new ItemConfiguracaoDao(); for (HistoricoItemConfiguracaoDTO historicoDto : historicoIC) { Collection<ItemConfiguracaoDTO> itensImpactados = new ArrayList(); ItemConfiguracaoDTO itemConfiguracaoDto = null; try { itemConfiguracaoDto = new ItemConfiguracaoDTO(); itemConfiguracaoDto.setIdItemConfiguracao(historicoDto.getIdItemConfiguracao()); itemConfiguracaoDto = (ItemConfiguracaoDTO) itemConfiguracaoDao.restore(itemConfiguracaoDto); } catch (Exception e1) { e1.printStackTrace(); } if (itemConfiguracaoDto == null) continue; if (!itemValido(itemConfiguracaoDto, situacao, idTipoItemConfiguracao, idCriticidade, colGrupos)) continue; HashMap<String, ItemConfiguracaoDTO> mapItens = new HashMap(); itensImpactados.add(itemConfiguracaoDto); mapItens.put("" + itemConfiguracaoDto.getIdItemConfiguracao(), itemConfiguracaoDto); try { Collection<ItemConfiguracaoDTO> colHierarq = imagemItemConfiguracaoService.findItensRelacionadosHierarquia(itemConfiguracaoDto.getIdItemConfiguracao()); if (colHierarq != null) { for (ItemConfiguracaoDTO itemDto : colHierarq) { if (mapItens.get("" + itemDto.getIdItemConfiguracao()) != null) continue; if (!itemValido(itemDto, situacao, idTipoItemConfiguracao, idCriticidade, colGrupos)) continue; mapItens.put("" + itemDto.getIdItemConfiguracao(), itemDto); itensImpactados.add(itemDto); } } } catch (Exception e) { e.printStackTrace(); } for (ItemConfiguracaoDTO itemDto : itensImpactados) { List<Object> linha = new ArrayList(); linha.add(UtilDatas.convertDateToString(TipoDate.TIMESTAMP_WITH_SECONDS, historicoDto.getDataHoraAlteracao(), super.getLanguage(paramtersDefinition))); linha.add(itemDto.getIdentificacao()); linha.add(itemDto.getDataInicio()); linha.add(itemDto.getDataExpiracao()); linha.add(itemDto.getNumeroSerie()); linha.add(itemDto.getVersao()); StatusIC status = StatusIC.getStatus(itemDto.getStatus()); if (status != null) linha.add(status.getDescricao()); else linha.add(""); retorno.add(linha.toArray()); } } } catch (Exception e) { e.printStackTrace(); } return retorno; } private boolean itemValido(ItemConfiguracaoDTO itemConfiguracaoDto, Integer situacao, Integer idTipoItemConfiguracao, Integer idCriticidade, Collection<GrupoItemConfiguracaoDTO> colGrupos) { if (situacao != null && situacao.intValue() != -1) { if (itemConfiguracaoDto.getStatus() == null && situacao.intValue() == 1) return true; if (itemConfiguracaoDto.getStatus() == null || itemConfiguracaoDto.getStatus().intValue() != situacao) return false; } if (idTipoItemConfiguracao != null && idTipoItemConfiguracao.intValue() != -1) { if (itemConfiguracaoDto.getIdTipoItemConfiguracao() == null || itemConfiguracaoDto.getIdTipoItemConfiguracao().intValue() != idTipoItemConfiguracao.intValue()) return false; } if (idCriticidade != null && idCriticidade.intValue() != -1) { if (itemConfiguracaoDto.getCriticidade() == null || itemConfiguracaoDto.getCriticidade().intValue() != idCriticidade.intValue()) return false; } if (colGrupos != null && colGrupos.size() > 0) { boolean bAdicionar = false; for (GrupoItemConfiguracaoDTO grupoDto : colGrupos) { if (grupoDto.getIdGrupoItemConfiguracao().intValue() == itemConfiguracaoDto.getIdGrupoItemConfiguracao()) { bAdicionar = true; break; } } if (!bAdicionar) return false; } return true; } }