package br.com.centralit.citcorpore.negocio; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import br.com.centralit.citcorpore.bean.CategoriaSolucaoDTO; import br.com.centralit.citcorpore.integracao.CategoriaSolucaoDao; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.CrudServiceImpl; public class CategoriaSolucaoServiceEjb extends CrudServiceImpl implements CategoriaSolucaoService { private CategoriaSolucaoDao dao; @Override protected CategoriaSolucaoDao getDao() { if (dao == null) { dao = new CategoriaSolucaoDao(); } return dao; } @Override public Collection<CategoriaSolucaoDTO> findByIdCategoriaSolucaoPai(final Integer parm) throws Exception { try { return this.getDao().findByIdCategoriaSolucaoPai(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void deleteByIdCategoriaSolucaoPai(final Integer parm) throws Exception { try { this.getDao().deleteByIdCategoriaSolucaoPai(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public Collection<CategoriaSolucaoDTO> listHierarquia() throws Exception { final Collection<CategoriaSolucaoDTO> colFinal = new ArrayList<>(); try { final Collection<CategoriaSolucaoDTO> col = this.getDao().findSemPai(); if (col != null) { for (final CategoriaSolucaoDTO categoriaSolucaoDTO : col) { categoriaSolucaoDTO.setNivel(0); colFinal.add(categoriaSolucaoDTO); final Collection<CategoriaSolucaoDTO> colAux = this.getCollectionHierarquia(categoriaSolucaoDTO.getIdCategoriaSolucao(), 0); if (colAux != null && colAux.size() > 0) { colFinal.addAll(colAux); } } } return colFinal; } catch (final Exception e) { throw new ServiceException(e); } } @Override public Collection<CategoriaSolucaoDTO> getCollectionHierarquia(final Integer idCateg, final Integer nivel) throws Exception { final Collection<CategoriaSolucaoDTO> col = this.getDao().findByIdPai(idCateg); final Collection<CategoriaSolucaoDTO> colFinal = new ArrayList<>(); if (col != null) { for (final CategoriaSolucaoDTO categoriaSolucaoDTO : col) { categoriaSolucaoDTO.setNivel(nivel + 1); colFinal.add(categoriaSolucaoDTO); final Collection<CategoriaSolucaoDTO> colAux = this.getCollectionHierarquia(categoriaSolucaoDTO.getIdCategoriaSolucao(), categoriaSolucaoDTO.getNivel()); if (colAux != null && colAux.size() > 0) { colFinal.addAll(colAux); } } } return colFinal; } @Override public String verificaDescricaoDuplicadaCategoriaAoCriar(final Map mapFields) throws Exception { List<CategoriaSolucaoDTO> listaCategoriaSolucao = null; final String descricaoCategoria = mapFields.get("DESCRICAOCATEGORIASOLUCAO").toString().trim(); listaCategoriaSolucao = (List<CategoriaSolucaoDTO>) this.getDao().verificaDescricaoDuplicadaCategoriaAoCriar(descricaoCategoria); if (listaCategoriaSolucao == null || listaCategoriaSolucao.isEmpty()) { return "1"; } return "0"; } @Override public String verificaDescricaoDuplicadaCategoriaAoAtualizar(final Map mapFields) throws Exception { List<CategoriaSolucaoDTO> listaCategoriaSolucao = null; final String descricaoCategoria = mapFields.get("DESCRICAOCATEGORIASOLUCAO").toString().trim(); final String idCategoria = mapFields.get("IDCATEGORIASOLUCAO").toString().trim(); listaCategoriaSolucao = (List<CategoriaSolucaoDTO>) this.getDao().verificaDescricaoDuplicadaCategoriaAoAtualizar(Integer.valueOf(idCategoria), descricaoCategoria); if (listaCategoriaSolucao == null || listaCategoriaSolucao.isEmpty()) { return "1"; } return "0"; } @Override public Collection<CategoriaSolucaoDTO> listaCategoriasSolucaoAtivas() throws Exception { return this.getDao().listaCategoriasSolucaoAtivas(); } }