package br.com.centralit.citcorpore.negocio;
import java.io.File;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import br.com.centralit.citcorpore.bean.MenuDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoMenuDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoUsuarioDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.MenuDao;
import br.com.centralit.citcorpore.integracao.PerfilAcessoDao;
import br.com.centralit.citcorpore.integracao.PerfilAcessoMenuDao;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.integracao.TransactionControler;
import br.com.citframework.integracao.TransactionControlerImpl;
import br.com.citframework.service.CrudServiceImpl;
import br.com.citframework.util.UtilDatas;
@SuppressWarnings({"rawtypes", "unchecked"})
public class MenuServiceEjb extends CrudServiceImpl implements MenuService {
private MenuDao dao;
@Override
protected MenuDao getDao() {
if (dao == null) {
dao = new MenuDao();
}
return dao;
}
@Override
public void updateNotNull(final Collection<MenuDTO> menus) {
getDao().updateNotNull(menus);
}
@Override
public Collection listarMenus() throws Exception {
return getDao().listarMenus();
}
@Override
public Collection<MenuDTO> listarSubMenus(final MenuDTO submenu) throws Exception {
return getDao().listarSubMenus(submenu);
}
@Override
public Collection<MenuDTO> listarMenusPorPerfil(final UsuarioDTO usuario, final Integer idMenuPai) throws Exception {
return getDao().listarMenusPorPerfil(usuario, idMenuPai, false);
}
@Override
public Collection<MenuDTO> listarMenusPorPerfil(final UsuarioDTO usuario, final Integer idMenuPai,
final boolean menuRapido) throws Exception {
final TransactionControler tc = new TransactionControlerImpl(getDao().getAliasDB());
Collection<MenuDTO> collection = null;
try {
tc.start();
getDao().setTransactionControler(tc);
collection = getDao().listarMenusPorPerfil(usuario, idMenuPai, menuRapido);
tc.commit();
} catch (final Exception e) {
rollbackTransaction(tc, e);
} finally {
tc.close();
}
return collection;
}
@Override
public void criaMenus(final Integer idUsuario) throws Exception {
final PerfilAcessoDTO perfilAcessoDTO = new PerfilAcessoDTO();
final PerfilAcessoMenuDao perfilAcessoMenuDao = new PerfilAcessoMenuDao();
final PerfilAcessoUsuarioDTO perfilAcessoUsuarioDto = new PerfilAcessoUsuarioDTO();
final Collection listaMenus = getDao().list();
if (listaMenus == null || listaMenus.size() == 0) {
final String[] paiNome = {"Ger�ncia Conhecimento", "Ger�ncia Configura��o", "Ger�ncia Servi�os",
"Ger�ncia Contratos", "Ger�ncia de Pessoal", "Relat�rio", "Cadastros", "Vis�es e Meta Dados",
"Sistema", "Justifica��o de Falhas", "Invent�rio", "Eventos", "Incidentes/Servi�os"};
final String[] paiDescricao = {"Gerenciamento de Conhecimento", "Gerenciamento de Configura��o",
"Gerenciamento de Servi�os", "Gerenciamento de Contratos", "Gerenciamento de Pessoal",
"Relat�rios", "Cadastros", "Vis�es e Meta Dados", "Sistema", "Justifica��o de Falhas",
"Levantamento de Invent�rio", "Execu��o de Eventos", "Abertura de Incidentes e Servi�os"};
final String[] paiLink = {"", "", "", "", "", "", "", "", "",
"/justificacaoFalhas/justificacaoFalhas.load", "/inventario/inventario.load",
"/eventoItemConfig/eventoItemConfig.load", "/gerenciamentoServicos/gerenciamentoServicos.load"};
final String[] paiOrdem = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"};
final String[] paiImagem = {"user_comment.png", "books_2.png", "cog_3.png", "documents.png", "users.png",
"graph.png", "list_w_images.png", "strategy.png", "alert_2.png", "alert_2.png", "hard_disk.png",
"month_calendar.png", "strategy.png"};
final String[] paiHorizontal = {"N", "N", "N", "N", "N", "N", "N", "N", "N", "S", "S", "S", "S"};
// FILHOS GER�NCIA CONHECIMENTO
final String[] filhoNomeGerenciaConhecimento = {"Base de Conhecimento", "Pasta"};
final String[] filhoDescricaoGerenciaConhecimento = {"Base de Conhecimento", "Pasta"};
final String[] filhoLinkGerenciaConhecimento = {"/baseConhecimento/baseConhecimento.load",
"/pasta/pasta.load"};
final String[] filhoOrdemGerenciaConhecimento = {"0", "1"};
final String[] filhoImagemGerenciaConhecimento = {"user_comment.png", "documents.png"};
final String[] filhoHorizontalGerenciaConhecimento = {"N", "N"};
// FILHOS GER�NCIA CONFIGURA��O
final String[] filhoNomeGerenciaConfiguracao = {"Pesquisa Item Config.", "Tipo Item Configura��o",
"Caracter�stica", "Softwares Inst/Des.", "Item de Configura��o"};
final String[] filhoDescricaoGerenciaConfiguracao = {"Pesquisa de Item de Configura��o",
"Tipo de Item Configura��o", "Caracter�stica dos Itens de Configura��o",
"Softwares para Instala��o/Desinstala��o", "Item de Configura��o"};
final String[] filhoLinkGerenciaConfiguracao = {"/pesquisaItemConfiguracao/pesquisaItemConfiguracao.load",
"/tipoItemConfiguracao/tipoItemConfiguracao.load", "/caracteristica/caracteristica.load",
"/baseItemConfiguracao/baseItemConfiguracao.load", "/itemConfiguracao/itemConfiguracao.load"};
final String[] filhoOrdemGerenciaConfiguracao = {"0", "1", "2", "3", "4"};
final String[] filhoImagemGerenciaConfiguracao = {"books_2.png", "books_2.png", "books_2.png",
"books_2.png", "books_2.png"};
final String[] filhoHorizontalGerenciaConfiguracao = {"N", "N", "N", "N", "N"};
// FILHOS GER�NCIA SERVI�OS
final String[] filhoNomeGerenciaServico = {"Minhas Requisi��es", "Mapa Desenho Servi�o", "Modelo de Email",
"Servi�os", "Situa��o de Servi�o", "Prioridade", "Condi��o de Opera��o", "Import�ncia Neg�cio",
"Categoria Servi�o", "Tipo Servi�o", "Pesquisa Sol. Servi�o"};
final String[] filhoDescricaoGerenciaServico = {"Minhas Requisi��es", "Mapa Desenho Servi�o",
"Modelo de Email", "Servi�os", "Situa��o de Servi�o", "Prioridade", "Condi��o de Opera��o",
"Import�ncia Neg�cio", "Categoria Servi�o", "Tipo Servi�o", "Pesquisa Sol. Servi�o"};
final String[] filhoLinkGerenciaServico = {"/resumoSolicitacoesServicos/resumoSolicitacoesServicos.load",
"/mapaDesenhoServico/mapaDesenhoServico.load", "/modeloEmail/modeloEmail.load",
"/dinamicViews/dinamicViews.load?idVisao=17", "/situacaoServico/situacaoServico.load",
"/prioridade/prioridade.load", "/condicaoOperacao/condicaoOperacao.load",
"/importanciaNegocio/importanciaNegocio.load", "/categoriaServico/categoriaServico.load",
"/tipoServico/tipoServico.load", "/pesquisaSolicitacoesServicos/pesquisaSolicitacoesServicos.load"};
final String[] filhoOrdemGerenciaServico = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
final String[] filhoImagemGerenciaServico = {"cog_3.png", "cog_3.png", "cog_3.png", "cog_3.png",
"cog_3.png", "cog_3.png", "cog_3.png", "cog_3.png", "cog_3.png", "cog_3.png", "cog_3.png"};
final String[] filhoHorizontalGerenciaServico = {"N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N"};
// FILHOS GER�NCIA CONTRATOS
final String[] filhoNomeGerenciaContrato = {"Administra��o de Contratos", "Agenda Ativ. Peri�dicas",
"Cadastro de Contratos", "Atividade Peri�dica"};
final String[] filhoDescricaoGerenciaContrato = {"Administra��o de Contratos",
"Agenda Atividades Peri�dicas", "Cadastro de Contratos", "Atividade Peri�dica"};
final String[] filhoLinkGerenciaContrato = {"/informacoesContrato/informacoesContrato.load",
"/agendaAtvPeriodicas/agendaAtvPeriodicas.load", "/dinamicViews/dinamicViews.load?idVisao=20",
"/atividadePeriodica/atividadePeriodica.load"};
final String[] filhoOrdemGerenciaContrato = {"0", "1", "2", "3"};
final String[] filhoImagemGerenciaContrato = {"documents.png", "documents.png", "documents.png",
"documents.png"};
final String[] filhoHorizontalGerenciaContrato = {"N", "N", "N", "N"};
// FILHOS GER�NCIA DE PESSOAL
final String[] filhoNomeGerenciaPessoal = {"Calend�rio", "Jornada de Trabalho", "Colaborador", "Grupo",
"Usu�rio", "Unidade", "Tipo de Unidade", "Perfil Acesso", "Cargos"};
final String[] filhoDescricaoGerenciaPessoal = {"Calend�rio", "Jornada de Trabalho", "Colaborador",
"Grupo", "Usu�rio", "Unidade", "Tipo de Unidade", "Perfil Acesso", "Cargos"};
final String[] filhoLinkGerenciaPessoal = {"/calendario/calendario.load",
"/jornadaTrabalho/jornadaTrabalho.load", "/empregado/empregado.load", "/grupo/grupo.load",
"/usuario/usuario.load", "/unidade/unidade.load", "/tipoUnidade/tipoUnidade.load",
"/perfilAcesso/perfilAcesso.load"};
final String[] filhoOrdemGerenciaPessoal = {"0", "1", "2", "3", "4", "5", "6", "7", "8"};
final String[] filhoImagemGerenciaPessoal = {"users.png", "users.png", "users.png", "users.png",
"users.png", "users.png", "users.png", "users.png", "users.png"};
final String[] filhoHorizontalGerenciaPessoal = {"N", "N", "N", "N", "N", "N", "N", "N", "N"};
// FILHOS RELAT�RIO
final String[] filhoNomeGerenciaRelatorio = {"Gantt", "Gr�ficos", "Gr�fico Tempo Real",
"Quantitativo de Incidentes / Solicita��es", "Relat�rio Base de Conhecimento",
"Utiliza��o das USTs"};
final String[] filhoDescricaoGerenciaRelatorio = {"Gantt", "Gr�ficos", "Gr�fico Tempo Real",
"Relat�rio Quantitativo de Incidentes / Solicita��es", "Relat�rio Base de Conhecimento",
"Relat�rio de Utiliza��o das USTs"};
final String[] filhoLinkGerenciaRelatorio = {"/ganttSolicitacaoServico/ganttSolicitacaoServico.load",
"/painel/painel.load", "/graficos/graficos.load",
"/relatorioQuantitativo/relatorioQuantitativo.load",
"/relatorioBaseConhecimento/relatorioBaseConhecimento.load",
"/relatorioOrdemServicoUst/relatorioOrdemServicoUst.load"};
final String[] filhoOrdemGerenciaRelatorio = {"0", "1", "2", "3", "4", "5"};
final String[] filhoImagemGerenciaRelatorio = {"graph.png", "graph.png", "graph.png", "documents.png",
"documents.png", "documents.png"};
final String[] filhoHorizontalGerenciaRelatorio = {"N", "N", "N", "N", "N", "N"};
// FILHOS CADASTROS
final String[] filhoNomeGerenciaCadastro = {"Administra��o de Contratos", "Agenda Ativ. Peri�dicas",
"Cadastro de Contratos", "Atividade Peri�dica"};
final String[] filhoDescricaoGerenciaCadastro = {"Administra��o de Contratos",
"Agenda Atividades Peri�dicas", "Cadastro de Contratos", "Atividade Peri�dica"};
final String[] filhoLinkGerenciaCadastro = {"/informacoesContrato/informacoesContrato.load",
"/agendaAtvPeriodicas/agendaAtvPeriodicas.load", "/dinamicViews/dinamicViews.load?idVisao=20",
"/atividadePeriodica/atividadePeriodica.load"};
final String[] filhoOrdemGerenciaCadastro = {"0", "1", "2", "3"};
final String[] filhoImagemGerenciaCadastro = {"documents.png", "documents.png", "documents.png",
"documents.png"};
final String[] filhoHorizontalGerenciaCadastro = {"N", "N", "N", "N"};
// FILHOS VIS�ES E META DADOS
final String[] filhoNomeGerenciaVisoesMetaDados = {"Question�rio", "Carrega Meta Dados",
"Manuten��o de Vis�es"};
final String[] filhoDescricaoGerenciaVisoesMetaDados = {"Question�rio", "Carrega Meta Dados",
"Manuten��o de Vis�es"};
final String[] filhoLinkGerenciaVisoesMetaDados = {"/questionario/questionario.load",
"/dataBaseMetaDados/dataBaseMetaDados.load", "/visaoAdm/visaoAdm.load"};
final String[] filhoOrdemGerenciaVisoesMetaDados = {"0", "1", "2"};
final String[] filhoImagemGerenciaVisoesMetaDados = {"strategy.png", "strategy.png", "strategy.png"};
final String[] filhoHorizontalGerenciaVisoesMetaDados = {"N", "N", "N"};
// FILHOS SISTEMA
final String[] filhoNomeGerenciaSistema = {"Par�metros CITSmart"};
final String[] filhoDescricaoGerenciaSistema = {"Par�metros CITSmart"};
final String[] filhoLinkGerenciaSistema = {"/parametroCorpore/parametroCorpore.load"};
final String[] filhoOrdemGerenciaSistema = {"0"};
final String[] filhoImagemGerenciaSistema = {"alert_2.png"};
final String[] filhoHorizontalGerenciaSistema = {"N"};
perfilAcessoDTO.setIdPerfilAcesso(1);
perfilAcessoUsuarioDto.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoUsuarioDto.setIdUsuario(idUsuario);
perfilAcessoUsuarioDto.setDataInicio(UtilDatas.getDataAtual());
// CRIA��O DOS MENUS
int i = 0;
for (final String pai : paiNome) {
MenuDTO dto = new MenuDTO();
final PerfilAcessoMenuDTO perfilAcessoMenuDTOPai = new PerfilAcessoMenuDTO();
dto.setDataInicio(UtilDatas.getDataAtual());
dto.setNome(pai);
dto.setDescricao(paiDescricao[i]);
dto.setImagem(paiImagem[i]);
dto.setOrdem(new Integer(paiOrdem[i]));
dto.setLink(paiLink[i]);
dto.setHorizontal(paiHorizontal[i]);
i++;
dto = (MenuDTO) getDao().create(dto);
perfilAcessoMenuDTOPai.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOPai.setIdMenu(dto.getIdMenu());
perfilAcessoMenuDTOPai.setPesquisa("S");
perfilAcessoMenuDTOPai.setGrava("S");
perfilAcessoMenuDTOPai.setDeleta("S");
perfilAcessoMenuDTOPai.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOPai);
// FILHOS GER�NCIA CONHECIMENTO
if (pai.equals("Ger�ncia Conhecimento")) {
int y = 0;
for (final String filho : filhoNomeGerenciaConhecimento) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaConhecimento[y]);
dtoFilho.setImagem(filhoImagemGerenciaConhecimento[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaConhecimento[y]));
dtoFilho.setLink(filhoLinkGerenciaConhecimento[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaConhecimento[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
// FILHOS GER�NCIA CONFIGURA��O
if (pai.equals("Ger�ncia Configura��o")) {
int y = 0;
for (final String filho : filhoNomeGerenciaConfiguracao) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaConfiguracao[y]);
dtoFilho.setImagem(filhoImagemGerenciaConfiguracao[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaConfiguracao[y]));
dtoFilho.setLink(filhoLinkGerenciaConfiguracao[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaConfiguracao[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
// FILHOS GER�NCIA SERVI�O
if (pai.equals("Ger�ncia Servi�os")) {
int y = 0;
for (final String filho : filhoNomeGerenciaServico) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaServico[y]);
dtoFilho.setImagem(filhoImagemGerenciaServico[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaServico[y]));
dtoFilho.setLink(filhoLinkGerenciaServico[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaServico[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
// FILHOS GER�NCIA CONTRATOS
if (pai.equals("Ger�ncia Contratos")) {
int y = 0;
for (final String filho : filhoNomeGerenciaContrato) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaContrato[y]);
dtoFilho.setImagem(filhoImagemGerenciaContrato[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaContrato[y]));
dtoFilho.setLink(filhoLinkGerenciaContrato[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaContrato[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
// FILHOS GER�NCIA PESSOAL
if (pai.equals("Ger�ncia de Pessoal")) {
int y = 0;
for (final String filho : filhoNomeGerenciaPessoal) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaPessoal[y]);
dtoFilho.setImagem(filhoImagemGerenciaPessoal[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaPessoal[y]));
dtoFilho.setLink(filhoLinkGerenciaPessoal[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaPessoal[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
// RELAT�RIO
if (pai.equals("Relat�rio")) {
int y = 0;
for (final String filho : filhoNomeGerenciaRelatorio) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaRelatorio[y]);
dtoFilho.setImagem(filhoImagemGerenciaRelatorio[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaRelatorio[y]));
dtoFilho.setLink(filhoLinkGerenciaRelatorio[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaRelatorio[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
// CADASTROS
if (pai.equals("Cadastros")) {
int y = 0;
for (final String filho : filhoNomeGerenciaCadastro) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaCadastro[y]);
dtoFilho.setImagem(filhoImagemGerenciaCadastro[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaCadastro[y]));
dtoFilho.setLink(filhoLinkGerenciaCadastro[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaCadastro[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
// VIS�ES E META DADOS
if (pai.equals("Vis�es e Meta Dados")) {
int y = 0;
for (final String filho : filhoNomeGerenciaVisoesMetaDados) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaVisoesMetaDados[y]);
dtoFilho.setImagem(filhoImagemGerenciaVisoesMetaDados[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaVisoesMetaDados[y]));
dtoFilho.setLink(filhoLinkGerenciaVisoesMetaDados[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaVisoesMetaDados[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
// SISTEMA
if (pai.equals("Sistema")) {
int y = 0;
for (final String filho : filhoNomeGerenciaSistema) {
final PerfilAcessoMenuDTO perfilAcessoMenuDTOFilho = new PerfilAcessoMenuDTO();
MenuDTO dtoFilho = new MenuDTO();
dtoFilho.setDataInicio(UtilDatas.getDataAtual());
dtoFilho.setNome(filho);
dtoFilho.setDescricao(filhoDescricaoGerenciaSistema[y]);
dtoFilho.setImagem(filhoImagemGerenciaSistema[y]);
dtoFilho.setOrdem(new Integer(filhoOrdemGerenciaSistema[y]));
dtoFilho.setLink(filhoLinkGerenciaSistema[y]);
dtoFilho.setHorizontal(filhoHorizontalGerenciaSistema[y]);
dtoFilho.setIdMenuPai(dto.getIdMenu());
y++;
dtoFilho = (MenuDTO) getDao().create(dtoFilho);
perfilAcessoMenuDTOFilho.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcessoMenuDTOFilho.setIdMenu(dtoFilho.getIdMenu());
perfilAcessoMenuDTOFilho.setPesquisa("S");
perfilAcessoMenuDTOFilho.setGrava("S");
perfilAcessoMenuDTOFilho.setDeleta("S");
perfilAcessoMenuDTOFilho.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDao.create(perfilAcessoMenuDTOFilho);
}
}
}
}
}
@Override
public Collection<MenuDTO> listaMenuByUsr(final UsuarioDTO usuario) throws Exception {
return getDao().listaMenuByUsr(usuario);
}
@Override
public boolean verificaSeExisteMenu(final MenuDTO menuDTO) throws Exception {
return getDao().verificaSeExisteMenu(menuDTO);
}
@Override
public Integer buscarIdMenu(final String link) throws Exception {
return getDao().buscarIdMenu(link);
}
@Override
public Collection<MenuDTO> listarMenusPais() throws Exception {
return getDao().listarMenusPais();
}
@Override
public Collection<MenuDTO> listarMenusFilhos(final Integer idMenuPai) throws Exception {
return getDao().listarMenusFilhos(idMenuPai);
}
@Override
public void gerarCarga(final File file) throws Exception {
final MenuDao menuDao = new MenuDao();
final PerfilAcessoDao perfilAcessoDAO = new PerfilAcessoDao();
final PerfilAcessoMenuDao perfilAcessoMenuDao = new PerfilAcessoMenuDao();
final TransactionControler tc = new TransactionControlerImpl(menuDao.getAliasDB());
tc.start();
menuDao.setTransactionControler(tc);
perfilAcessoMenuDao.setTransactionControler(tc);
perfilAcessoDAO.setTransactionControler(tc);
final Integer idPerfilAcesso = perfilAcessoDAO.listarIdAdministrador();
if (idPerfilAcesso != null) {
try {
final List<MenuDTO> menusPais = (List) menuDao.listarMenusPais();
final SAXBuilder sb = new SAXBuilder();
final Document doc = sb.build(file);
final Element elements = doc.getRootElement();
final List<Element> menuSuperior = elements.getChild("menuSuperior").getChildren();
for (final Element menuCarregadoXMLElement : menuSuperior) {
final int j = 0;
final MenuDTO menuCarregadoXmlDTO = new MenuDTO();
MenuDTO menuDtoAux = new MenuDTO();
menuCarregadoXmlDTO.setNome(menuCarregadoXMLElement.getChildText("nome").trim());
menuCarregadoXmlDTO.setDescricao(menuCarregadoXMLElement.getChildText("descricao"));
menuCarregadoXmlDTO.setOrdem(Integer.parseInt(menuCarregadoXMLElement.getChildText("ordem")));
menuCarregadoXmlDTO.setLink(menuCarregadoXMLElement.getChildText("link").trim());
menuCarregadoXmlDTO.setImagem(menuCarregadoXMLElement.getChildText("imagem"));
menuCarregadoXmlDTO.setHorizontal(menuCarregadoXMLElement.getChildText("horizontal"));
menuCarregadoXmlDTO.setMenuRapido(menuCarregadoXMLElement.getChildText("menuRapido"));
menuCarregadoXmlDTO.setDataInicio(UtilDatas.getDataAtual());
menuCarregadoXmlDTO.setMostrar(menuCarregadoXMLElement.getChildText("mostrar"));
for (final MenuDTO menuDoBancoDTO : menusPais) {
if (menuCarregadoXmlDTO.getNome() != null && menuDoBancoDTO.getNome() != null) {
if (menuDoBancoDTO.getNome().trim().replaceAll(" ", "")
.equalsIgnoreCase(menuCarregadoXmlDTO.getNome().trim().replaceAll(" ", ""))
&& menuDoBancoDTO.getLink().trim()
.equalsIgnoreCase(menuCarregadoXmlDTO.getLink().trim())) {
menuCarregadoXmlDTO.setIdMenu(menuDoBancoDTO.getIdMenu());
menuCarregadoXmlDTO.setDataFim(null);
menuDoBancoDTO.setDescricao(menuCarregadoXmlDTO.getDescricao());
menuDoBancoDTO.setMostrar(menuCarregadoXmlDTO.getMostrar());
menuDao.update(menuDoBancoDTO);
menuDtoAux = menuDoBancoDTO;
break;
}
}
}
if (menuCarregadoXmlDTO.getIdMenu() == null) {
if (!menuDao.verificaSeExisteMenuPorLink(menuCarregadoXmlDTO)) {
menuDtoAux = (MenuDTO) menuDao.create(menuCarregadoXmlDTO);
}
}
/* Cria Acesso ao administrador */
final PerfilAcessoMenuDTO perfilAcessoMenuDTO = new PerfilAcessoMenuDTO();
perfilAcessoMenuDTO.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDTO.setDeleta("S");
perfilAcessoMenuDTO.setGrava("S");
perfilAcessoMenuDTO.setPesquisa("S");
perfilAcessoMenuDTO.setIdMenu(menuDtoAux.getIdMenu());
perfilAcessoMenuDTO.setIdPerfilAcesso(idPerfilAcesso);
if (perfilAcessoMenuDao.restoreMenusAcesso(perfilAcessoMenuDTO).isEmpty()) {
perfilAcessoMenuDao.create(perfilAcessoMenuDTO);
}
if (!menuCarregadoXMLElement.getChild("subMenu" + j).getChildren().isEmpty()) {
importarFilhos(menuCarregadoXMLElement, j, menuDtoAux, menuDao, idPerfilAcesso,
perfilAcessoMenuDao);
}
}
tc.commit();
tc.close();
} catch (final ServiceException e) {
rollbackTransaction(tc, e);
e.printStackTrace();
}
}
}
@Override
public void deletaMenusSemReferencia() throws Exception {
final List<MenuDTO> menusPaisAtualizados = (List) getDao().listarMenusPais();
for (final MenuDTO menuDoBancoAtualizadoDTO : menusPaisAtualizados) {
final List<MenuDTO> menuFilho = (List) getDao().listarMenusFilhoByIdMenuPai(
menuDoBancoAtualizadoDTO.getIdMenu());
if ((menuDoBancoAtualizadoDTO.getLink() == null || menuDoBancoAtualizadoDTO.getLink().equalsIgnoreCase(""))
&& (menuFilho == null || menuFilho.isEmpty())) {
getDao().deleteMenu(menuDoBancoAtualizadoDTO.getIdMenu());
}
}
}
private void importarFilhos(final Element menus, int j, final MenuDTO menuDtoAux, final MenuDao menuDao,
final Integer idPerfilAcesso, final PerfilAcessoMenuDao perfilAcessoMenuDao) throws Exception {
final List<Element> subMenu = menus.getChild("subMenu" + j).getChildren();
final List<MenuDTO> menusFilhos = (List) menuDao.listarMenusFilhos(menuDtoAux.getIdMenu());
/* menus filhos */
for (final Element subMenus : subMenu) {
MenuDTO menuDtoAux1 = new MenuDTO();
final MenuDTO menuDTO = new MenuDTO();
menuDTO.setIdMenuPai(menuDtoAux.getIdMenu());
menuDTO.setNome(subMenus.getChildText("nome").trim());
menuDTO.setDescricao(subMenus.getChildText("descricao"));
String ordem = subMenus.getChildText("ordem");
if (ordem == null || ordem.isEmpty()) {
ordem = "0";
}
menuDTO.setOrdem(Integer.parseInt(ordem));
menuDTO.setLink(subMenus.getChildText("link").trim());
menuDTO.setImagem(subMenus.getChildText("imagem"));
menuDTO.setHorizontal(subMenus.getChildText("horizontal"));
menuDTO.setMenuRapido(subMenus.getChildText("menuRapido"));
menuDTO.setDataInicio(UtilDatas.getDataAtual());
for (final MenuDTO menusDTO : menusFilhos) {
if (menuDTO.getNome() != null && menusDTO.getNome() != null) {
if (menusDTO.getNome().trim().replaceAll(" ", "")
.equalsIgnoreCase(menuDTO.getNome().trim().replaceAll(" ", ""))
&& menusDTO.getLink().trim().equalsIgnoreCase(menuDTO.getLink().trim())) {
menuDTO.setIdMenu(menusDTO.getIdMenu());
menuDTO.setDataFim(null);
menusDTO.setDescricao(menuDTO.getDescricao());
menuDao.update(menusDTO);
menuDtoAux1 = menusDTO;
break;
}
}
}
if (menuDTO.getIdMenu() == null) {
if (menuDao.verificaSeExisteMenuPorLink(menuDTO) == false) {
menuDtoAux1 = (MenuDTO) menuDao.create(menuDTO);
} else {
menuDao.alterarMenuPorNome(menuDTO);
}
}
final PerfilAcessoMenuDTO perfilAcessoMenuDTO = new PerfilAcessoMenuDTO();
perfilAcessoMenuDTO.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoMenuDTO.setDeleta("S");
perfilAcessoMenuDTO.setGrava("S");
perfilAcessoMenuDTO.setPesquisa("S");
perfilAcessoMenuDTO.setIdMenu(menuDtoAux1.getIdMenu());
perfilAcessoMenuDTO.setIdPerfilAcesso(idPerfilAcesso);
if (perfilAcessoMenuDao.restoreMenusAcesso(perfilAcessoMenuDTO).isEmpty()) {
perfilAcessoMenuDao.create(perfilAcessoMenuDTO);
}
if (subMenus.getChild("subMenu" + (j + 1)) != null) {
importarFilhos(subMenus, j + 1, menuDtoAux1, menuDao, idPerfilAcesso, perfilAcessoMenuDao);
}
}
j++;
}
/**
* M�todo para obter um mapa com todos os menus que o usu�rio pode acessar
*
* @author thyen.chang
* @since 16/01/2015 - OPERA��O USAIN BOLT
* @param usuario
* @return
* @throws Exception
*/
@Override
public Map<Integer, List<MenuDTO>> listaMenuPorUsuario(UsuarioDTO usuario) throws Exception {
return getDao().listaMenuPorUsuario(usuario);
}
}