From e13d17c2a346d83dfa76c05dcf92aa43fc87e76d Mon Sep 17 00:00:00 2001 From: Guilherme Fay Vergara Date: Mon, 18 Nov 2019 10:52:05 -0300 Subject: [PATCH] Atualizando implementação do login unico, ajustando issues https://softwarepublico.gov.br/gitlab/prototocolizacao/protocolizacao/issues/1 https://softwarepublico.gov.br/gitlab/prototocolizacao/protocolizacao/issues/2 e https://softwarepublico.gov.br/gitlab/prototocolizacao/protocolizacao/issues/3 --- CHANGELOG | 62 -------------------------------------------------------------- docker/Dockerfile | 62 +++++++++++++++++++++++++++++++++++++++++++++----------------- docker/FILES/ICP-Brasilv5.crt | 38 -------------------------------------- docker/FILES/context.xml | 2 ++ protocolo-web-db.sql | 2 +- src/main/java/Sei/TesteIncluirDocumento.java | 71 +++++++++++++++++++++++++++++++++-------------------------------------- src/main/java/br/gov/planejamento/dipla/protocolo/clamav/ClamavUtil.java | 2 -- src/main/java/br/gov/planejamento/dipla/protocolo/config/BrasilCidadaoConfig.java | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------ src/main/java/br/gov/planejamento/dipla/protocolo/config/MailConfig.java | 7 ++----- src/main/java/br/gov/planejamento/dipla/protocolo/config/SecurityConfig.java | 10 ++-------- src/main/java/br/gov/planejamento/dipla/protocolo/config/ServiceConfig.java | 4 ---- src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ArquivosController.java | 8 +------- src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ConfiguracaoController.java | 40 ++++------------------------------------ src/main/java/br/gov/planejamento/dipla/protocolo/controllers/LoginController.java | 79 +++++++++++++++++++++++++------------------------------------------------------ src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ProtocoloController.java | 753 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/br/gov/planejamento/dipla/protocolo/controllers/UsuarioController.java | 1 - src/main/java/br/gov/planejamento/dipla/protocolo/dto/MetadadosDTO.java | 12 ------------ src/main/java/br/gov/planejamento/dipla/protocolo/dto/ProtocoloFlagDTO.java | 2 +- src/main/java/br/gov/planejamento/dipla/protocolo/entities/Arquivos.java | 2 +- src/main/java/br/gov/planejamento/dipla/protocolo/entities/Classificacao.java | 2 +- src/main/java/br/gov/planejamento/dipla/protocolo/entities/Configuracao.java | 6 ------ src/main/java/br/gov/planejamento/dipla/protocolo/entities/ConfiguracaoEmail.java | 6 ------ src/main/java/br/gov/planejamento/dipla/protocolo/entities/LogSistema.java | 1 - src/main/java/br/gov/planejamento/dipla/protocolo/entities/Metadado.java | 4 ---- src/main/java/br/gov/planejamento/dipla/protocolo/entities/Protocolo.java | 6 ++++-- src/main/java/br/gov/planejamento/dipla/protocolo/entities/TiposDocumento.java | 9 +++++++-- src/main/java/br/gov/planejamento/dipla/protocolo/entities/Usuario.java | 3 +-- src/main/java/br/gov/planejamento/dipla/protocolo/entities/UsuarioBrasilCidadao.java | 5 ----- src/main/java/br/gov/planejamento/dipla/protocolo/handler/LogoutBrasilCidadaoHandler.java | 13 +++++-------- src/main/java/br/gov/planejamento/dipla/protocolo/mail/Mailer.java | 22 +--------------------- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ClassificacaoRepository.java | 6 +++--- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoEmailRepository.java | 4 ---- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoRepository.java | 2 -- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LogStatusRepository.java | 1 - src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LoginAttemptRepository.java | 1 - src/main/java/br/gov/planejamento/dipla/protocolo/repositories/MetadadoRepository.java | 3 --- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ProtocoloRepository.java | 4 ---- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/TiposDocumentoRepository.java | 4 ++-- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/UsuarioRepository.java | 1 + src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryImpl.java | 15 +++++---------- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryQueries.java | 7 ------- src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/usuario/UsuarioRepositoryImpl.java | 30 +++++++++++------------------- src/main/java/br/gov/planejamento/dipla/protocolo/security/AppUserDetailsService.java | 2 -- src/main/java/br/gov/planejamento/dipla/protocolo/security/BrasilCidadaoUserDetails.java | 15 +++------------ src/main/java/br/gov/planejamento/dipla/protocolo/security/CaptchaService.java | 7 +++---- src/main/java/br/gov/planejamento/dipla/protocolo/security/CustomAuthenticationFailureHandler.java | 21 ++++++--------------- src/main/java/br/gov/planejamento/dipla/protocolo/security/LoginAttemptService.java | 11 ++++------- src/main/java/br/gov/planejamento/dipla/protocolo/sei/ws/SeiWSClient.java | 740 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ src/main/java/br/gov/planejamento/dipla/protocolo/services/AutoCadastroService.java | 41 ++++++++++++++++------------------------- src/main/java/br/gov/planejamento/dipla/protocolo/services/BrasilCidadaoService.java | 225 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------- src/main/java/br/gov/planejamento/dipla/protocolo/services/CadastroUsuarioService.java | 9 ++------- src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoEmailService.java | 4 ---- src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoService.java | 2 -- src/main/java/br/gov/planejamento/dipla/protocolo/services/EnviarProtocoloService.java | 8 +++----- src/main/java/br/gov/planejamento/dipla/protocolo/services/LogProtocoloService.java | 32 +++----------------------------- src/main/java/br/gov/planejamento/dipla/protocolo/services/ProtocoloFlagService.java | 3 ++- src/main/java/br/gov/planejamento/dipla/protocolo/services/event/AprovarProtocoloEvent.java | 4 +++- src/main/java/br/gov/planejamento/dipla/protocolo/services/event/listener/AprovarProtocoloListener.java | 6 +++++- src/main/java/br/gov/planejamento/dipla/protocolo/services/impl/ProtocoloFlagServiceImpl.java | 3 +-- src/main/java/br/gov/planejamento/dipla/protocolo/storage/local/ArquivoStorageLocal.java | 1 - src/main/java/fi/solita/clamav/ClamAVClient.java | 8 ++------ src/main/resources/application.properties | 18 ++++++++++++++---- src/main/resources/db/migration/V01_Start.sql | 582 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ src/main/resources/db/migration/V01__criar_tabela_usuario_grupo_permissao.sql | 42 ++++++++++++++++++++++++++++++++++++++++++ src/main/resources/db/migration/V02__inserir_permissoes_e_relacionar_usuario_admin.sql | 6 ++++++ src/main/resources/db/migration/V03__criar_tabela_protocolo.sql | 13 +++++++++++++ src/main/resources/db/migration/V04__criar_tabela_arquivos.sql | 12 ++++++++++++ src/main/resources/db/migration/V05__inserir_role_protocolo.sql | 3 +++ src/main/resources/db/migration/V06__remover_coluna_dt_nascimento_e_ativo_tabela_usuario.sql | 2 ++ src/main/resources/db/migration/V07__adicao_colula_telefone_tabela_usuario.sql | 1 + src/main/resources/db/migration/V08__remover_colunas_nome_rg_cpf_telefone_email_tabela_protocolo.sql | 5 +++++ src/main/resources/db/migration/V09__adicionar_coluna_codigo_usuario_tabela_protocolo.sql | 3 +++ src/main/resources/db/migration/V10__criar_tabela_tipo_documento.sql | 4 ++++ src/main/resources/db/migration/V11__adicionar_coluna_tipo_doc_e_desc_doc_tabela_arquivos.sql | 5 +++++ src/main/resources/db/migration/V12__retornando_coluna_ativo_tabela_usuario.sql | 1 + src/main/resources/db/migration/V13__remover_coluna_descricao_tabela_protocolo.sql | 1 + src/main/resources/db/migration/V14__adicionar_not_null_coluna_codigo_usuario_tabela_protocolo.sql | 1 + src/main/resources/db/migration/V15__adicionar_coluna_status_tabela_protocolo.sql | 1 + src/main/resources/db/migration/V16__adicionar_coluna_emails_secundarios_tabela_protocolo.sql | 2 ++ src/main/resources/db/migration/V17__alterar_conteudo_grupo_de_consulta_protocolo.sql | 1 + src/main/resources/db/migration/V18__adicionar_coluna_observacao_tabela_protocolo.sql | 1 + src/main/resources/db/migration/V19__adicionar_coluna_nupe_e_data_envio_tabela_protocolo.sql | 2 ++ src/main/resources/db/migration/V20__tipo_documento_insert.sql | 13 +++++++++++++ src/main/resources/db/migration/V21__remover_meu_tipo_documento.sql | 1 + src/main/resources/db/migration/V22__alterar_tamanho_campo_nome_tabela_arquivo.sql | 1 + src/main/resources/db/migration/V23__alterar_tamanho_campo_nome_original_tabela_arquivo.sql | 1 + src/main/resources/db/migration/V24__adicionar_coluna_nr_protocolo_anterior_tabela_protocolo.sql | 1 + src/main/resources/db/migration/V25__adicionar_coluna_id_unidade_tabela_protocolo.sql | 1 + src/main/resources/db/migration/V26__alterar_tamanho_campo_status_tabela_protocolo.sql | 1 + src/main/resources/db/migration/V27__alterar_tamanho_campo_ observacao _protocolo.sql | 1 + src/main/resources/db/migration/V28__alterar_tabela_tipodocumento_com_campo_codigo_sei_e _campo_ativo.sql | 3 +++ src/main/resources/db/migration/V29__limpa_as_tabelas_arquivos_protocolo_e_tipodocumento.sql | 11 +++++++++++ src/main/resources/db/migration/V30__tabela_usuario_estrutura_campo_email_para_unico.sql | 1 + src/main/resources/db/migration/V31__tabela_usuario_estrutura_campo_token_mobile.sql | 2 ++ src/main/resources/db/migration/V32__inserir_role_brasilcidadao.sql | 16 ++++++++++++++++ src/main/resources/db/migration/V33__criacao_de_tabela_de_log_protocolo_correcao_unique_cpf.sql | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/db/migration/V34__correcao_tabela_log.sql | 19 +++++++++++++++++++ src/main/resources/db/migration/V35__tabela_metadad_configuracao_email.sql | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/db/migration/V36__tabela_protocolo_erro_ws.sql | 1 + src/main/resources/db/migration/V37__correcao_metadado_urlconfirmacao.sql | 12 ++++++++++++ src/main/resources/db/migration/V38__correcao_atualizacao_token_brasil_cidadao.sql | 11 +++++++++++ src/main/resources/db/migration/V39__correcao_email_rodape_insercao_formulario.sql | 1 + src/main/resources/db/migration/V40__criando_link_acesso_sei.sql | 3 +++ src/main/resources/db/migration/V41__tabela_bloquei_login.sql | 20 ++++++++++++++++++++ src/main/resources/db/migration/V42__novo_template_email.sql | 5 +++++ src/main/resources/db/migration/V43__atualizacao_metadao_link_sei.sql | 3 +++ src/main/resources/db/migration/V44__atualizacao_tabela_configuracao_classificacao.sql | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/db/migration/V45__atualizacao_tabela_configuracao_captcha.sql | 9 +++++++++ src/main/resources/db/migration/V46__atualizacao_tabela_metadao_desbloqueio.sql | 10 ++++++++++ src/main/resources/db/migration/V47__adicionado-novo_sei.sql | 29 +++++++++++++++++++++++++++++ src/main/resources/db/migration/V48__adicionado-novos_parametros_tipo_documento_sei.sql | 9 +++++++++ src/main/resources/db/migration/V49__adicionado-novos_parametros_tipo_documento_sei-corrigidos.sql | 2 ++ src/main/resources/db/migration/V50__adicionado-novos_parametros_tipo_documento_sei-corrigidos3.sql | 2 ++ src/main/resources/db/migration/V51__adicionado-novos_parametros_tipo_documento_sei-mdic.sql | 2 ++ src/main/resources/db/migration/V52__adicionado-novo-parametro-hipotese-legal-sei.sql | 1 + src/main/resources/static/images/logoBras3ilCidadao.png | Bin 0 -> 4544 bytes src/main/resources/static/images/logoBrasilCidadao.png | Bin 4702 -> 0 bytes src/main/resources/static/images/logoBrasilCidadao_old.png | Bin 0 -> 4702 bytes src/main/resources/static/javascripts/dashboard.lista-arquivos.js | 15 +++++++++------ src/main/resources/static/layout/stylesheets/estilo-governo.css | 400 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/templates/Login.html | 21 +++++++++++++-------- src/main/resources/templates/SobreBrasilCidadao.html | 4 ++-- src/main/resources/templates/fragments/ConfirmacaoConsiliacaoUsuario.html | 4 ++-- src/main/resources/templates/hbs/TabelaListaArquivosModal.html | 13 +++++++++++++ src/main/resources/templates/layout/fragments/BarraNavegacao.html | 4 ++-- src/main/resources/templates/layout/fragments/Footer.html | 2 +- src/main/resources/templates/layout/fragments/MenuLateral.html | 17 ++++++++++++++--- src/main/resources/templates/layout/fragments/cabecalho-governo.html | 2 +- src/main/resources/templates/mail/confirmar-cadastro.html | 2 +- src/main/resources/templates/mail/confirmar-consolidacao.html | 2 +- src/main/resources/templates/mail/erro-sei.html | 4 ++-- src/main/resources/templates/mail/esqueci-senha.html | 4 ++-- src/main/resources/templates/mail/protocolo-negado.html | 2 +- src/main/resources/templates/mail/protocolo-recebimento-sei.html | 2 +- src/main/resources/templates/mail/protocolo.html | 2 +- src/main/resources/templates/modal/ModalBrasilCidadao.html | 14 +++++++------- src/main/resources/templates/protocolo/CadastroProtocolo.html | 2 +- src/main/resources/templates/protocolo/OpcoesProtocolo.html | 4 ++-- src/main/resources/templates/usuario/PerfilUsuario.html | 2 +- src/test/resources/application.properties | 26 ++++++++++++++++++++++---- 140 files changed, 2473 insertions(+), 1972 deletions(-) delete mode 100644 CHANGELOG delete mode 100644 docker/FILES/ICP-Brasilv5.crt delete mode 100644 src/main/resources/db/migration/V01_Start.sql create mode 100644 src/main/resources/db/migration/V01__criar_tabela_usuario_grupo_permissao.sql create mode 100644 src/main/resources/db/migration/V02__inserir_permissoes_e_relacionar_usuario_admin.sql create mode 100644 src/main/resources/db/migration/V03__criar_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V04__criar_tabela_arquivos.sql create mode 100644 src/main/resources/db/migration/V05__inserir_role_protocolo.sql create mode 100644 src/main/resources/db/migration/V06__remover_coluna_dt_nascimento_e_ativo_tabela_usuario.sql create mode 100644 src/main/resources/db/migration/V07__adicao_colula_telefone_tabela_usuario.sql create mode 100644 src/main/resources/db/migration/V08__remover_colunas_nome_rg_cpf_telefone_email_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V09__adicionar_coluna_codigo_usuario_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V10__criar_tabela_tipo_documento.sql create mode 100644 src/main/resources/db/migration/V11__adicionar_coluna_tipo_doc_e_desc_doc_tabela_arquivos.sql create mode 100644 src/main/resources/db/migration/V12__retornando_coluna_ativo_tabela_usuario.sql create mode 100644 src/main/resources/db/migration/V13__remover_coluna_descricao_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V14__adicionar_not_null_coluna_codigo_usuario_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V15__adicionar_coluna_status_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V16__adicionar_coluna_emails_secundarios_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V17__alterar_conteudo_grupo_de_consulta_protocolo.sql create mode 100644 src/main/resources/db/migration/V18__adicionar_coluna_observacao_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V19__adicionar_coluna_nupe_e_data_envio_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V20__tipo_documento_insert.sql create mode 100644 src/main/resources/db/migration/V21__remover_meu_tipo_documento.sql create mode 100644 src/main/resources/db/migration/V22__alterar_tamanho_campo_nome_tabela_arquivo.sql create mode 100644 src/main/resources/db/migration/V23__alterar_tamanho_campo_nome_original_tabela_arquivo.sql create mode 100644 src/main/resources/db/migration/V24__adicionar_coluna_nr_protocolo_anterior_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V25__adicionar_coluna_id_unidade_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V26__alterar_tamanho_campo_status_tabela_protocolo.sql create mode 100644 src/main/resources/db/migration/V27__alterar_tamanho_campo_ observacao _protocolo.sql create mode 100644 src/main/resources/db/migration/V28__alterar_tabela_tipodocumento_com_campo_codigo_sei_e _campo_ativo.sql create mode 100644 src/main/resources/db/migration/V29__limpa_as_tabelas_arquivos_protocolo_e_tipodocumento.sql create mode 100644 src/main/resources/db/migration/V30__tabela_usuario_estrutura_campo_email_para_unico.sql create mode 100644 src/main/resources/db/migration/V31__tabela_usuario_estrutura_campo_token_mobile.sql create mode 100644 src/main/resources/db/migration/V32__inserir_role_brasilcidadao.sql create mode 100644 src/main/resources/db/migration/V33__criacao_de_tabela_de_log_protocolo_correcao_unique_cpf.sql create mode 100644 src/main/resources/db/migration/V34__correcao_tabela_log.sql create mode 100644 src/main/resources/db/migration/V35__tabela_metadad_configuracao_email.sql create mode 100644 src/main/resources/db/migration/V36__tabela_protocolo_erro_ws.sql create mode 100644 src/main/resources/db/migration/V37__correcao_metadado_urlconfirmacao.sql create mode 100644 src/main/resources/db/migration/V38__correcao_atualizacao_token_brasil_cidadao.sql create mode 100644 src/main/resources/db/migration/V39__correcao_email_rodape_insercao_formulario.sql create mode 100644 src/main/resources/db/migration/V40__criando_link_acesso_sei.sql create mode 100644 src/main/resources/db/migration/V41__tabela_bloquei_login.sql create mode 100644 src/main/resources/db/migration/V42__novo_template_email.sql create mode 100644 src/main/resources/db/migration/V43__atualizacao_metadao_link_sei.sql create mode 100644 src/main/resources/db/migration/V44__atualizacao_tabela_configuracao_classificacao.sql create mode 100644 src/main/resources/db/migration/V45__atualizacao_tabela_configuracao_captcha.sql create mode 100644 src/main/resources/db/migration/V46__atualizacao_tabela_metadao_desbloqueio.sql create mode 100644 src/main/resources/db/migration/V47__adicionado-novo_sei.sql create mode 100644 src/main/resources/db/migration/V48__adicionado-novos_parametros_tipo_documento_sei.sql create mode 100644 src/main/resources/db/migration/V49__adicionado-novos_parametros_tipo_documento_sei-corrigidos.sql create mode 100644 src/main/resources/db/migration/V50__adicionado-novos_parametros_tipo_documento_sei-corrigidos3.sql create mode 100644 src/main/resources/db/migration/V51__adicionado-novos_parametros_tipo_documento_sei-mdic.sql create mode 100644 src/main/resources/db/migration/V52__adicionado-novo-parametro-hipotese-legal-sei.sql create mode 100644 src/main/resources/static/images/logoBras3ilCidadao.png create mode 100644 src/main/resources/static/images/logoBrasilCidadao_old.png diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index 030bfba..0000000 --- a/CHANGELOG +++ /dev/null @@ -1,62 +0,0 @@ -# CHANGELOG - -## 1.2.0 - (27/10/2017) ---- -### Features: -- Quando um protocolo está em analise ele agora está em uma nova tela chamada "ANALISANDO"; - -### Bugfixes: -- Modal quando o usuário visualiza um documento agora com botão de fechar; -- Melhorado alguns aspectos de segurança; -- Tamplate do email modificado; -- Modificado email na home; -- Adicionado FAVICON; -- Permitido apenas caixa alta no nome (cadastro); - -## 1.1.4 - (20/10/2017) ---- -### Features: - -- Criando diretório docker e escondendo variáveis de acesso a banco; -- Adicionando import do certificado; -- Adição do diretorio docker já com as configurações padrões para integração continua; - -### Bugfixes: - - -## 1.1.3 - (13/10/2017) ---- -### Features: -### Bugfixes: - -- Ajustando lista de documentos ativos e inativos - -## 1.1.2 - (06/10/2017) ---- -### Features: - -- Ajustes no controle da modal; -- Validação de data de pesquisa de protocolo; -- Apresentação do texto de recusa; - -### Bugfixes: - -- Dinamização do cadastro do tipo de documento; - -## 1.1.1 - (02/10/2017) ---- -### Features - -- Corrigido Texto "Deseja informar protocolo anterior?" atualizado para "Deseja informar o numero do protocolo anterior?"; -- Corrigido a restrição do documento e do processo. Agora o documento é público e o Processo privado; - -### Bugfixes: - -- Corrigido bug de envio com duplicidade para o sei quando dois usuários estão analisando o mesmo protocolo; -- Corrigido bug onde o E-Mail Interessado 1 não estava recebendo email no caso de recusa e de aceite; - -## 1.0.0 (25/09/2017) ---- -### Features: - -- Versão estável do projeto \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index dbbd272..1ddf556 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,32 +1,60 @@ FROM tomcat:8.5.20-jre8-alpine -LABEL maintainer="MP/SPO " +LABEL maintainer="MP/SPO " + +ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk + +ENV JAVA_SECURITY ${JAVA_HOME}/jre/lib/security + +ENV JAVA_CACERTS ${JAVA_SECURITY}/cacerts -ENV JAVA_CACERTS /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/cacerts ENV PROTOCOLO_ARQUIVO /opt/protocolo_arquivos -ENV CATALINA_HOME /usr/local/tomcat -ENV PATH $CATALINA_HOME/bin:$PATH -#WORKDIR /root/ -#RUN mkdir .protocolo-config -#RUN mkdir -p /root/.protocolo-arquivos/ +ENV CATALINA_HOME /usr/local/tomcat -RUN mkdir -p "$CATALINA_HOME" -RUN mkdir -p "$PROTOCOLO_ARQUIVO" -RUN mkdir -p $CATALINA_HOME/webapps/META-INF/ +ENV PATH $CATALINA_HOME/bin:$PATH WORKDIR $CATALINA_HOME -COPY ./FILES/ICP-Brasilv5.crt /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/ +COPY ./FILES/ICP-Brasilv5.crt \ + ./FILES/ACSecretariaReceitaFederalBrasilv3.crt \ + ./FILES/AutoridadeCertificadoraRaizBrasileirav2.crt \ + ./FILES/AutoridadeCertificadoraSERPRORFBSSL.crt \ + ./FILES/AutoridadeCertificadoraMDICGOVBR.crt \ + ${JAVA_SECURITY}/ + COPY ./FILES/protocolo.war $CATALINA_HOME/webapps/protocolo.war -COPY ./FILES/context.xml $CATALINA_HOME/webapps/META-INF/context.xml -COPY ./FILES/context.xml /usr/local/tomcat/conf/context.xml + COPY ./FILES/server.xml /usr/local/tomcat/conf/server.xml + COPY ./FILES/web.xml /usr/local/tomcat/conf/web.xml RUN apk --no-cache update \ - && apk --no-cache add tzdata zip unzip bzip2 less git net-tools iproute2 vim nano \ - && rm -f /etc/localtime \ - && ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime + && apk --no-cache add tzdata vim nano \ + && rm -f /etc/localtime \ + && ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime + +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ + -file ${JAVA_SECURITY}/ICP-Brasilv5.crt -alias ICP-Brasilv5 + +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ + -file ${JAVA_SECURITY}/ACSecretariaReceitaFederalBrasilv3.crt -alias ACSecretariaReceitaFederalBrasilv3 + +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ + -file ${JAVA_SECURITY}/AutoridadeCertificadoraRaizBrasileirav2.crt -alias AutoridadeCertificadoraRaizBrasileirav2 + +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ + -file ${JAVA_SECURITY}/AutoridadeCertificadoraSERPRORFBSSL.crt -alias AutoridadeCertificadoraSERPRORFBSSL + +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ + -file ${JAVA_SECURITY}/AutoridadeCertificadoraMDICGOVBR.crt -alias AutoridadeCertificadoraMDICGOVBR + +RUN mkdir -p "$PROTOCOLO_ARQUIVO" + +# +# Ports to expose +EXPOSE 8080 -RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import -file /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/ICP-Brasilv5.crt -alias ICP-Brasilv5 \ No newline at end of file +# +# Command to run +CMD ["catalina.sh", "run"] diff --git a/docker/FILES/ICP-Brasilv5.crt b/docker/FILES/ICP-Brasilv5.crt deleted file mode 100644 index 97074c6..0000000 --- a/docker/FILES/ICP-Brasilv5.crt +++ /dev/null @@ -1,38 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGoTCCBImgAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBlzELMAkGA1UEBhMCQlIx -EzARBgNVBAoMCklDUC1CcmFzaWwxPTA7BgNVBAsMNEluc3RpdHV0byBOYWNpb25h -bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMMK0F1 -dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjUwHhcNMTYw -MzAyMTMwMTM4WhcNMjkwMzAyMjM1OTM4WjCBlzELMAkGA1UEBhMCQlIxEzARBgNV -BAoMCklDUC1CcmFzaWwxPTA7BgNVBAsMNEluc3RpdHV0byBOYWNpb25hbCBkZSBU -ZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMMK0F1dG9yaWRh -ZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjUwggIiMA0GCSqGSIb3 -DQEBAQUAA4ICDwAwggIKAoICAQD3LXgabUWsF+gUXw/6YODeF2XkqEyfk3VehdsI -x+3/ERgdjCS/ouxYR0Epi2hdoMUVJDNf3XQfjAWXJyCoTneHYAl2McMdvoqtLB2i -leQlJiis0fTtYTJayee9BAIdIrCor1Lc0vozXCpDtq5nTwhjIocaZtcuFsdrkl+n -bfYxl5m7vjTkTMS6j8ffjmFzbNPDlJuV3Vy7AzapPVJrMl6UHPXCHMYMzl0KxR/4 -7S5XGgmLYkYt8bNCHA3fg07y+Gtvgu+SNhMPwWKIgwhYw+9vErOnavRhOimYo4M2 -AwNpNK0OKLI7Im5V094jFp4Ty+mlmfQH00k8nkSUEN+1TGGkhv16c2hukbx9iCfb -mk7im2hGKjQA8eH64VPYoS2qdKbPbd3xDDHN2croYKpy2U2oQTVBSf9hC3o6fKo3 -zp0U3dNiw7ZgWKS9UwP31Q0gwgB1orZgLuF+LIppHYwxcTG/AovNWa4sTPukMiX2 -L+p7uIHExTZJJU4YoDacQh/mfbPIz3261He4YFmQ35sfw3eKHQSOLyiVfev/n0l/ -r308PijEd+d+Hz5RmqIzS8jYXZIeJxym4mEjE1fKpeP56Ea52LlIJ8ZqsJ3xzHWu -3WkAVz4hMqrX6BPMGW2IxOuEUQyIaCBg1lI6QLiPMHvo2/J7gu4YfqRcH6i27W3H -yzamEQIDAQABo4H1MIHyME4GA1UdIARHMEUwQwYFYEwBAQAwOjA4BggrBgEFBQcC -ARYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0RQQ2FjcmFpei5wZGYw -PwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJy -L0xDUmFjcmFpenY1LmNybDAfBgNVHSMEGDAWgBRpqL512cTvbOcTReRhbuVo+LZA -XjAdBgNVHQ4EFgQUaai+ddnE72znE0XkYW7laPi2QF4wDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBABRt2/JiWapef7o/ -plhR4PxymlMIp/JeZ5F0BZ1XafmYpl5g6pRokFrIRMFXLyEhlgo51I05InyCc9Td -6UXjlsOASTc/LRavyjB/8NcQjlRYDh6xf7OdP05mFcT/0+6bYRtNgsnUbr10pfsK -/UzyUvQWbumGS57hCZrAZOyd9MzukiF/azAa6JfoZk2nDkEudKOY8tRyTpMmDzN5 -fufPSC3v7tSJUqTqo5z7roN/FmckRzGAYyz5XulbOc5/UsAT/tk+KP/clbbqd/hh -evmmdJclLr9qWZZcOgzuFU2YsgProtVu0fFNXGr6KK9fu44pOHajmMsTXK3X7r/P -wh19kFRow5F3RQMUZC6Re0YLfXh+ypnUSCzA+uL4JPtHIGyvkbWiulkustpOKUSV -wBPzvA2sQUOvqdbAR7C8jcHYFJMuK2HZFji7pxcWWab/NKsFcJ3sluDjmhizpQax -bYTfAVXu3q8yd0su/BHHhBpteyHvYyyz0Eb9LUysR2cMtWvfPU6vnoPgYvOGO1Cz -iyGEsgKULkCH4o2Vgl1gQuKWO4V68rFW8a/jvq28sbY+y/Ao0I5ohpnBcQOAawiF -bz6yJtObajYMuztDDP8oY656EuuJXBJhuKAJPI/7WDtgfV8ffOh/iQGQATVMtgDN -0gv8bn5NdUX8UMNX1sHhU3H1UpoW ------END CERTIFICATE----- diff --git a/docker/FILES/context.xml b/docker/FILES/context.xml index 837bca9..c8d7765 100644 --- a/docker/FILES/context.xml +++ b/docker/FILES/context.xml @@ -30,6 +30,7 @@ --> + Adesão de atas -// -// -// -//// -// Documento[] documentos = {documento}; -// -// RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStub.gerarProcedimento("UNB", -// "testeunb", -// "110001972", -// procedimento, null, -// null, -// null, "S", "N", null, null, null, null, null); -// -// System.out.println("************ RetornoGeracaoProcedimento = " + retornoGeracaoProcedimento.getProcedimentoFormatado()); -// System.out.println("************ RetornoGeracaoProcedimento = " + retornoGeracaoProcedimento.getLinkAcesso()); + procedimento.setIdTipoProcedimento("100000836"); // Tipo de Processo => Adesão de atas + + RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStub.gerarProcedimento("PROT_ELETRONICO", + "ProtocolizacaoEletronica", + "110000054", + procedimento, null, + null, + null, "S", "N", null, null, null, null, null); + + System.out.println("************ RetornoGeracaoProcedimento = " + retornoGeracaoProcedimento.getProcedimentoFormatado()); + System.out.println("************ RetornoGeracaoProcedimento = " + retornoGeracaoProcedimento.getLinkAcesso()); Documento documento = new Documento(); - documento.setIdProcedimento("03154000037201729"); + documento.setIdProcedimento(retornoGeracaoProcedimento.getProcedimentoFormatado()); documento.setDescricao("Meu documento 5"); documento.setNomeArquivo("PaytoStudy_Student_Guide_HiBonjour_PT.pdf"); - documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(new File("/home/leonardo/Downloads/PaytoStudy_Student_Guide_HiBonjour_PT.pdf")))); + documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(new File("/home/matheus/teste.pdf")))); documento.setTipo("R"); documento.setIdSerie("1"); - documento.setData("16/08/2017"); + documento.setData("02/04/2019"); - RetornoInclusaoDocumento retornoInclusaoDocumento = seiBindingStub.incluirDocumento("UNB", "testeunb", "110001972", documento); + RetornoInclusaoDocumento retornoInclusaoDocumento = seiBindingStub.incluirDocumento("PROT_ELETRONICO", "ProtocolizacaoEletronica", "110000054", documento); System.out.println("Link = " + retornoInclusaoDocumento.getLinkAcesso()); } } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/clamav/ClamavUtil.java b/src/main/java/br/gov/planejamento/dipla/protocolo/clamav/ClamavUtil.java index b9a29b4..ef52a86 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/clamav/ClamavUtil.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/clamav/ClamavUtil.java @@ -1,8 +1,6 @@ package br.gov.planejamento.dipla.protocolo.clamav; -import fi.solita.clamav.ClamAVClient; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/config/BrasilCidadaoConfig.java b/src/main/java/br/gov/planejamento/dipla/protocolo/config/BrasilCidadaoConfig.java index 72c72f5..1d33421 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/config/BrasilCidadaoConfig.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/config/BrasilCidadaoConfig.java @@ -1,31 +1,23 @@ package br.gov.planejamento.dipla.protocolo.config; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import java.util.Base64; -import java.util.HashMap; -import java.util.Map; -import java.util.Random; - -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; - +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.net.URLEncoder; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.Random; + @Configuration //@PropertySource(value = {"file:${HOME}/.protocolo-config/protocolo-brasilCidadao.properties"}) @@ -34,86 +26,88 @@ public class BrasilCidadaoConfig { @Autowired private ConfiguracaoRepository configuracaoRepository; - + Random gerador = new Random(); - - public String gerarUrlAutorizar(){ - disableSSLCertificateChecking(); - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_AUTORIZAR)+"?response_type=code&client_id="+ - configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_ID)+"&redirect_uri="+ - configuracaoRepository.recuperarValor(ConfiguracaoEnum.REDIRECT_URI)+"&nonce="+gerador.hashCode()+ - "&state="+gerador.hashCode(); - return url; - } - public String gerarUrlToken(){ - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_TOKEN); - return url; - } - public String gerarUrlDadosUsuarios(String token){ - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_DADOS_USUARIO)+ - configuracaoRepository.recuperarValor(ConfiguracaoEnum.ESCOPO)+"?access_token="+token; - return url; - } - @Bean(name = "urlBrasilCidadao") - public UrlBrasilCidadao gerarUrlBrasilCidadao(){ - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_BRASIL_CIDADAO); - return () -> url; - } - @Bean(name = "urlPrimeiroAcesso") - public UrlPrimeiroAcesso gerarUrlPrimeiroAcesso(){ - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_PRIMEIRO_ACESSO); - return () -> url; - } - - public String gerarRequisicaoAtributo(String code){ - String reqAtr = - "grant_type=authorization_code&"+ - "code="+code+"&"+ - "redirect_uri="+configuracaoRepository.recuperarValor(ConfiguracaoEnum.REDIRECT_URI); - - return reqAtr; - } - public HttpHeaders gerarRequisicaoHeader(){ - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - headers.add(headers.AUTHORIZATION, "Basic "+Base64.getEncoder().encodeToString(( - configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_ID)+":"+ - configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_SECRET)).getBytes())); - return headers; - } - - - private void disableSSLCertificateChecking() { - TrustManager[] trustAllCerts = new TrustManager[] { - new X509TrustManager() { - public X509Certificate[] getAcceptedIssuers() { - return null; - } - @Override - public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { - // Not implemented - } - @Override public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { - // Not implemented - } - } - }; - try { - SSLContext sc = SSLContext.getInstance("TLS"); - sc.init(null, trustAllCerts, new java.security.SecureRandom()); - HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); - - } catch (KeyManagementException e) { - e.printStackTrace(); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } - } - public interface UrlBrasilCidadao { + + public String gerarUrlAutorizar(){ + disableSSLCertificateChecking(); + String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_AUTORIZAR)+"?response_type=code&client_id="+ + configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_ID)+ "&scope=" + + configuracaoRepository.recuperarValor(ConfiguracaoEnum.SCOPE) + "&redirect_uri=" + + configuracaoRepository.recuperarValor(ConfiguracaoEnum.REDIRECT_URI)+"&nonce="+gerador.hashCode()+ + "&state="+gerador.hashCode(); + return url; + } + + @Bean(name = "urlBrasilCidadao") + public UrlBrasilCidadao gerarUrlBrasilCidadao(){ + String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_BRASIL_CIDADAO); + return () -> url; + } + @Bean(name = "urlPrimeiroAcesso") + public UrlPrimeiroAcesso gerarUrlPrimeiroAcesso(){ + String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_PRIMEIRO_ACESSO); + return () -> url; + } + + private void disableSSLCertificateChecking() { + TrustManager[] trustAllCerts = new TrustManager[] { + new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + @Override + public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { + // Not implemented + } + @Override public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { + // Not implemented + } + } + }; + try { + SSLContext sc = SSLContext.getInstance("TLS"); + sc.init(null, trustAllCerts, new java.security.SecureRandom()); + HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); + + } catch (KeyManagementException e) { + e.printStackTrace(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + } + public interface UrlBrasilCidadao { String getUrlBrasilCidadao(); } - public interface UrlPrimeiroAcesso { + public interface UrlPrimeiroAcesso { String getUrlPrimeiroAcesso(); } + + public String gerarURLToken(String code){ + String url = ""; + try { + url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_TOKEN) + "?grant_type=authorization_code&code=" + + code + "&redirect_uri=" + URLEncoder.encode(configuracaoRepository.recuperarValor(ConfiguracaoEnum.REDIRECT_URI), "UTF-8") ; + }catch (Exception e){ + e.printStackTrace(); + } + return url; + } + + public String obterClientSecret(){ + return configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_SECRET); + } + + public String obterClientID(){ + return configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_ID); + } + + public String obterURLBrasilCidadao(){ + return configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_BRASIL_CIDADAO); + } + + public String obterURLDadosUsuario(){ + return configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_DADOS_USUARIO); + } } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/config/MailConfig.java b/src/main/java/br/gov/planejamento/dipla/protocolo/config/MailConfig.java index 230448b..272a256 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/config/MailConfig.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/config/MailConfig.java @@ -1,16 +1,13 @@ package br.gov.planejamento.dipla.protocolo.config; +import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; +import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; -import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; - import java.util.Properties; @Configuration diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/config/SecurityConfig.java b/src/main/java/br/gov/planejamento/dipla/protocolo/config/SecurityConfig.java index a3b8662..cb1413f 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/config/SecurityConfig.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/config/SecurityConfig.java @@ -1,9 +1,9 @@ package br.gov.planejamento.dipla.protocolo.config; +import br.gov.planejamento.dipla.protocolo.handler.LogoutBrasilCidadaoHandler; +import br.gov.planejamento.dipla.protocolo.security.CustomAuthenticationFailureHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.annotation.Order; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; @@ -12,14 +12,8 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.AuthenticationFailureHandler; -import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; -import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; -import br.gov.planejamento.dipla.protocolo.handler.LogoutBrasilCidadaoHandler; -import br.gov.planejamento.dipla.protocolo.security.CustomAuthenticationFailureHandler; - /** diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/config/ServiceConfig.java b/src/main/java/br/gov/planejamento/dipla/protocolo/config/ServiceConfig.java index 1c390bf..15c63c4 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/config/ServiceConfig.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/config/ServiceConfig.java @@ -7,12 +7,8 @@ import br.gov.planejamento.dipla.protocolo.storage.local.ArquivoStorageLocal; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; import org.springframework.util.StringUtils; -import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; import static java.nio.file.FileSystems.getDefault; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ArquivosController.java b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ArquivosController.java index 4127891..7ea6ea5 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ArquivosController.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ArquivosController.java @@ -10,12 +10,9 @@ import br.gov.planejamento.dipla.protocolo.repositories.ArquivosRepository; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorageRunnable; -import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.scheduling.config.Task; -import org.springframework.security.access.method.P; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.multipart.MultipartFile; @@ -23,13 +20,10 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.UriUtils; import javax.servlet.http.HttpServletRequest; +import java.io.File; import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URLEncoder; -import java.nio.file.Files; import java.util.Base64; import java.util.List; -import java.io.*; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ConfiguracaoController.java b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ConfiguracaoController.java index 4c49f49..f72e331 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ConfiguracaoController.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ConfiguracaoController.java @@ -1,64 +1,32 @@ package br.gov.planejamento.dipla.protocolo.controllers; -import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig.UrlBrasilCidadao; import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; -import br.gov.planejamento.dipla.protocolo.controllers.sessions.ArquivosSession; -import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; -import br.gov.planejamento.dipla.protocolo.dto.MetadadosDTO; import br.gov.planejamento.dipla.protocolo.entities.Configuracao; import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; -import br.gov.planejamento.dipla.protocolo.entities.EmailEnum; import br.gov.planejamento.dipla.protocolo.entities.Metadado; -import br.gov.planejamento.dipla.protocolo.entities.MetadadosEmail; -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; -import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; import br.gov.planejamento.dipla.protocolo.mail.Mailer; import br.gov.planejamento.dipla.protocolo.repositories.ClassificacaoRepository; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; -import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; -import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; -import br.gov.planejamento.dipla.protocolo.repositories.filter.ProtocoloFilter; -import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; -import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; import br.gov.planejamento.dipla.protocolo.services.ConfiguracaoEmailService; import br.gov.planejamento.dipla.protocolo.services.ConfiguracaoService; -import br.gov.planejamento.dipla.protocolo.services.EnviarProtocoloService; -import br.gov.planejamento.dipla.protocolo.services.SalvarProtocoloService; -import br.gov.planejamento.dipla.protocolo.services.UnidadeService; -import br.gov.planejamento.dipla.protocolo.services.ProtocoloFlagService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableDefault; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Controller; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import java.util.Optional; -import br.gov.planejamento.dipla.protocolo.response.Response; -import br.gov.planejamento.dipla.protocolo.dto.ProtocoloFlagDTO; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; - -import java.util.ArrayList; -import java.util.Date; import java.util.Iterator; import java.util.List; -import java.util.UUID; -import org.springframework.validation.ObjectError; /** diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/LoginController.java b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/LoginController.java index af74aea..4005d90 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/LoginController.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/LoginController.java @@ -1,62 +1,30 @@ package br.gov.planejamento.dipla.protocolo.controllers; +import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; +import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; +import br.gov.planejamento.dipla.protocolo.entities.Usuario; +import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; +import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; +import br.gov.planejamento.dipla.protocolo.security.LoginAttemptService; +import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; +import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; +import br.gov.planejamento.dipla.protocolo.services.BrasilCidadaoService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.http.converter.StringHttpMessageConverter; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.annotation.AuthenticationPrincipal; -import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.User; -import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; -import br.gov.planejamento.dipla.protocolo.dto.TokenRetornoDto; -import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; -import br.gov.planejamento.dipla.protocolo.entities.Grupo; -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; -import br.gov.planejamento.dipla.protocolo.entities.Usuario; -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; -import br.gov.planejamento.dipla.protocolo.mail.Mailer; -import br.gov.planejamento.dipla.protocolo.repositories.*; -import br.gov.planejamento.dipla.protocolo.security.BrasilCidadaoUserDetails; -import br.gov.planejamento.dipla.protocolo.security.LoginAttemptService; -import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; -import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; -import br.gov.planejamento.dipla.protocolo.services.BrasilCidadaoService; -import br.gov.planejamento.dipla.protocolo.services.CadastroUsuarioService; - -import java.io.IOException; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashSet; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Optional; -import java.util.Set; - - -import javax.servlet.http.HttpServletRequest; /** * @author Leonardo Dias @@ -143,18 +111,21 @@ public class LoginController { mv.addObject("email",usuarioretorno.getEmail()); }else if(!usuarioBrasilCidadao.isPresent()) { - - //Primeiro Acesso - if(!usuarioEmailExistente.isPresent()) { - autoCadastroService.cadastrarBrasilCidadao(usuarioretorno); - } - autoCadastroService.migrarBrasilCidadao(usuarioretorno); - autoCadastroService.enviarConsiliacaoUsuario(usuarioBrasilCidadao.get(),usuarioretorno.getEmail(),baseUrl); - mv.addObject("modalConfirmacaoBrasilCidadao",true); - mv.addObject("email",usuarioretorno.getEmail()); - } - - } + + Usuario usuario = new Usuario(); + + //Primeiro Acesso + if(!usuarioEmailExistente.isPresent()) { + usuario = autoCadastroService.cadastrarBrasilCidadao(usuarioretorno); + }else{ + usuario = usuarioEmailExistente.get(); + } + UsuarioBrasilCidadao usuarioBrasilCidadaoRetorno = autoCadastroService.migrarBrasilCidadao(usuarioretorno, usuario); + autoCadastroService.enviarConsiliacaoUsuario(usuarioBrasilCidadaoRetorno, usuario.getEmail(),baseUrl); + mv.addObject("modalConfirmacaoBrasilCidadao",true); + mv.addObject("email",usuarioretorno.getEmail()); + } + } }catch (Exception e){ msgErro=e.getMessage(); } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ProtocoloController.java b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ProtocoloController.java index c737d01..f4b31ba 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ProtocoloController.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ProtocoloController.java @@ -3,16 +3,18 @@ package br.gov.planejamento.dipla.protocolo.controllers; import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; import br.gov.planejamento.dipla.protocolo.controllers.sessions.ArquivosSession; import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; +import br.gov.planejamento.dipla.protocolo.dto.ProtocoloFlagDTO; import br.gov.planejamento.dipla.protocolo.entities.Protocolo; import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; import br.gov.planejamento.dipla.protocolo.repositories.filter.ProtocoloFilter; +import br.gov.planejamento.dipla.protocolo.response.Response; import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; import br.gov.planejamento.dipla.protocolo.services.*; +import org.hibernate.service.spi.ServiceException; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableDefault; import org.springframework.http.ResponseEntity; @@ -23,391 +25,396 @@ import org.springframework.util.StringUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import java.io.IOException; -import java.util.Optional; -import br.gov.planejamento.dipla.protocolo.response.Response; -import br.gov.planejamento.dipla.protocolo.dto.ProtocoloFlagDTO; - import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; - -import java.util.HashMap; +import java.io.IOException; import java.util.List; -import java.util.Map; +import java.util.Optional; import java.util.UUID; import java.util.concurrent.CompletableFuture; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -import org.hibernate.service.spi.ServiceException; - - /** * @author Leonardo Dias */ @Controller public class ProtocoloController { - @Autowired - private ArquivosSession arquivosSession; - - @Autowired - private TiposDocumentoRepository tipoDocumentoRepository; - - @Autowired - private UsuarioRepository usuarioRepository; - - @Autowired - private ProtocoloRepository protocoloRepository; - - @Autowired - private EnviarProtocoloService enviarProtocoloService; - - @Autowired - private SalvarProtocoloService salvarProtocoloService; - - @Autowired - private UnidadeService unidadeService; - - @Autowired - private ProtocoloFlagService protocoloFlagService; - - @Autowired - private EventServerService eventServerService; - - private final int DEFAULT_PAGEABLE_SIZE = 10; - - @GetMapping("/") - public ModelAndView principal(Protocolo protocolo, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { - List permissoes = usuarioRepository.permissoes(usuarioSistema.getUsuario()); - if (permissoes.contains("ROLE_CADASTRO") & usuarioSistema.getUsuario().getTemPerfilBrasilCidadao() == null) { - ModelAndView mv = new ModelAndView("Dashboard"); - mv.addObject("usuario", usuarioSistema.getUsuario()); - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); - mv.addObject("unidades", unidadeService.obterUnidades()); - return mv; - } - - return enviar(protocolo, usuarioSistema); - } - - @GetMapping("/pendentes") - public ModelAndView pesquisaProtocolosPendentes(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosPendentes"); - filter.setStatus(StatusEnum.PENDENTE); - PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); - mv.addObject("pagina", paginaWrapper); - return mv; - } - - @GetMapping("/aprovados") - public ModelAndView pesquisaProtocolosAprovados(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAprovados"); - filter.setStatus(StatusEnum.APROVADO); - PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); - mv.addObject("pagina", paginaWrapper); - return mv; - } - - @GetMapping("/aprovadosManualmente") - public ModelAndView pesquisaProtocolosAprovadosManualmente(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAprovadosManualmente"); - filter.setStatus(StatusEnum.APROVADO_MANUALMENTE); - PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); - mv.addObject("pagina", paginaWrapper); - return mv; - } - - @GetMapping("/reprovados") - public ModelAndView pesquisaProtocolosReprovados(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosReprovados"); - filter.setStatus(StatusEnum.REPROVADO); - PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); - mv.addObject("pagina", paginaWrapper); - return mv; - } - - @GetMapping("/analisando") - public ModelAndView pesquisaProtocolosAnalisando(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAnalisando"); - filter.setStatus(StatusEnum.ANALISANDO); - PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); - mv.addObject("pagina", paginaWrapper); - return mv; - } - - @GetMapping("/opcoes") - public ModelAndView opcoes() { - return new ModelAndView("/protocolo/OpcoesProtocolo"); - } - - @GetMapping("/enviar") - public ModelAndView enviar(Protocolo protocolo, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { - if (StringUtils.isEmpty(protocolo.getUuid())) { - protocolo.setUuid(UUID.randomUUID().toString()); - protocolo.setPossuiProtocoloAnterior("N"); - } - ModelAndView mv = new ModelAndView("/protocolo/CadastroProtocolo"); - mv.addObject("usuario", usuarioSistema.getUsuario()); - mv.addObject("tiposDocumento", tipoDocumentoRepository.findByAtivo(true)); - mv.addObject("unidades", unidadeService.obterUnidades()); - return mv; - } - - @PostMapping("/enviar") - public ModelAndView enviar(@Valid Protocolo protocolo, BindingResult result, RedirectAttributes attributes, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { - if ("S".equals(protocolo.getPossuiProtocoloAnterior()) && StringUtils.isEmpty(protocolo.getNumeroProtocoloAnterior())) { - result.rejectValue("numeroProtocoloAnterior", "Número do protocolo Anterior é obrigatório.", "Número do protocolo Anterior é obrigatório."); - return enviar(protocolo, usuarioSistema); - } - - if (result.hasErrors()) { - return enviar(protocolo, usuarioSistema); - } - - List arquivoDTOList = arquivosSession.obterArquivos(protocolo.getUuid()); - - if (CollectionUtils.isEmpty(arquivoDTOList)) { - String msg = "Nenhum arquivo anexado, favor incluir algum arquivo antes de efetuar a protocolização."; - result.rejectValue("arquivo", msg, msg); - return enviar(protocolo, usuarioSistema); - } - - protocolo.setUsuario(usuarioSistema.getUsuario()); - enviarProtocoloService.enviar(protocolo, arquivoDTOList); - attributes.addFlashAttribute("mensagem", String.format("Protocolo Nº %s salvo com sucesso.", protocolo.getNumero())); - return new ModelAndView("redirect:/enviar"); - } - - @GetMapping("/meus-protocolos") - public ModelAndView meusProtocolos(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { - ModelAndView mv = new ModelAndView("protocolo/MeusProtocolos"); - - PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrarMeusProtocolos(usuarioSistema.getUsuario(), filter, pageable), httpServletRequest); - mv.addObject("pagina", paginaWrapper); - - return mv; - } - - @GetMapping("/reenvioRecibo/{codigo}") - public @ResponseBody - ResponseEntity reenviarRecibo(@PathVariable("codigo") Protocolo protocolo,@RequestParam(value = "email", required = false) String email) { - enviarProtocoloService.reenviarRecibo(protocolo,email); - Response response = new Response(); - String resposta=null; - if(!email.isEmpty()||email!=null) { - resposta=email; - } - if(!protocolo.getEmail1().isEmpty()&&protocolo.getEmail1()!=null&&protocolo.getEmail1()!="") { - resposta=resposta+" "+protocolo.getEmail1(); - } - if(!protocolo.getEmail2().isEmpty()&&protocolo.getEmail2()!=null&&protocolo.getEmail2()!="") { - resposta=resposta+" "+protocolo.getEmail2(); - } - if(!protocolo.getUsuario().getEmail().isEmpty()&&protocolo.getUsuario().getEmail()!=null&&protocolo.getUsuario().getEmail()!="") { - resposta=resposta+" "+protocolo.getUsuario().getEmail(); - } - response.setData(resposta); - return ResponseEntity.ok(response); - } - - - @RequestMapping("/stream") - public SseEmitter enableNotifier(){ - //SseEmitter notifier = new SseEmitter(); - return eventServerService; - } - - @PutMapping("/aprovar/{codigo}") - public @ResponseBody - ResponseEntity aprovar(@PathVariable("codigo") Protocolo protocolo, @RequestParam(value = "sei", required = false) String sei, @RequestParam(value = "tipo", required = false) String tipo) { - //SseEmitter sseEmitter = new SseEmitter(); - CompletableFuture.supplyAsync( () -> { - try { - enviarProtocoloService.enviarSEI( protocolo, sei, tipo ); - return "Sincronizado com Sucesso !"; - } catch (ServiceException e) { - return e.getMessage(); - } catch (Exception e) { - return e.getMessage(); - } - } ) - .whenCompleteAsync( (result, throwable) -> { - try { - eventServerService.send( result ); - } catch (IOException e) { - e.printStackTrace(); - } - } ) - .exceptionally( ex -> { - try { - eventServerService.send( ex.getMessage() ); - } catch (Exception e) { - e.printStackTrace(); - } - return "erro"; - } ); - - return ResponseEntity.ok().build(); - } - - @PutMapping("/aprovarManualmente/{sei}/{codigo}") - public @ResponseBody - ResponseEntity aprovarManualmente(@PathVariable("sei") String sei, @PathVariable("codigo") Protocolo protocolo) { - protocolo.setNupe(sei); - salvarProtocoloService.aprovarManualmente(protocolo); - return ResponseEntity.ok().build(); - } - - @GetMapping("/aprovarManualmente/{sei}") - public ResponseEntity> consultarSei(@PathVariable("sei") String sei) { - Optional linkSei = enviarProtocoloService.consultarSei(sei); - Response response = new Response(); - if (!linkSei.isPresent()) { - response.getErrors().add("Nº SEI não encontrado: " + sei); - return ResponseEntity.badRequest().body(response); - } - response.setData(linkSei.get()); - return ResponseEntity.ok(response); - } - - @PutMapping("/reprovar/{codigo}") - public @ResponseBody - ResponseEntity reprovar(@PathVariable("codigo") Protocolo protocolo, @RequestBody String observacao) { - protocolo.setObservacao(observacao); - enviarProtocoloService.recusar(protocolo); - return ResponseEntity.ok().build(); - } - - /** - * atulizado o status de pendente para analise na tabela protocolo - * - * @param protocolo - * @return ResponseEntity - */ - @PutMapping("/atualizarFlag/{codigo}") - public @ResponseBody - ResponseEntity atualizarflag(@PathVariable("codigo") Protocolo protocolo) { - salvarProtocoloService.analisando(protocolo); - return ResponseEntity.ok().build(); - } - - /** - * atulizado o status para pendente - * - * @param protocolo - * @return ResponseEntity - */ - @PutMapping("/atuzalizarFlagPendente/{codigo}") - public @ResponseBody - ResponseEntity atuzalizarFlagPendente(@PathVariable("codigo") Protocolo protocolo) { - salvarProtocoloService.pendente(protocolo); - return ResponseEntity.ok().build(); - } - - /** - * método para reprovar o protocolo - * - * @param protocolo - * @return ResponseEntity - */ - @PutMapping("/atuzalizarFlagReprovado/{codigo}") - public @ResponseBody - ResponseEntity atuzalizarFlagReprovado(@PathVariable("codigo") Protocolo protocolo) { - salvarProtocoloService.reprovar(protocolo); - return ResponseEntity.ok().build(); - } - - /** - * método para retirar o protocolo da análise - * - * @param protocolo - * @return ResponseEntity - */ - @PutMapping("/retirarAnalise") - public @ResponseBody - ResponseEntity retirarAnalise(@RequestParam("codigo") Protocolo protocolo) { - salvarProtocoloService.pendente(protocolo); - return ResponseEntity.ok().build(); - } - - /** - * método para retirar o protocolo da análise e deixar reprovado - * - * @param protocolo - * @return ResponseEntity - */ - @PutMapping("/retirarAnaliseReprovado") - public @ResponseBody - ResponseEntity retirarAnaliseReprovado(@RequestParam("codigo") Protocolo protocolo) { - salvarProtocoloService.reprovar(protocolo); - return ResponseEntity.ok().build(); - } - - /** - * busca o status passado o código - * - * @param codigo - * @return ResponseEntity - */ - @GetMapping(value = "/buscarFlag/{codigo}") - public ResponseEntity> buscarStatusPorCodigp(@PathVariable("codigo") Long codigo) { - Response response = new Response(); - Optional protocolo = protocoloFlagService.buscarStatusPorCodigo(codigo); - - if (!protocolo.isPresent()) { - response.getErrors().add("Status não encontrado para o código: " + codigo); - return ResponseEntity.badRequest().body(response); - } - - response.setData(this.converterProtocoloFlagDto(protocolo.get())); - return ResponseEntity.ok(response); - } - - /** - * convertendo a entidade para objeto DTO - * - * @param protocolo - * @return protocoloFlagDTO - */ - private ProtocoloFlagDTO converterProtocoloFlagDto(Protocolo protocolo) { - ProtocoloFlagDTO protocoloFlagDTO = new ProtocoloFlagDTO(); - protocoloFlagDTO.setStatus(protocolo.getStatus().toString()); - //protocoloFlagDTO.setObservacao(Optional.of(protocolo.getObservacao().toString())); - //protocoloFlagDTO.setObservacao().ifPresent(x -> protocolo.getObservacao(x.toString())); - protocolo.getObservacaoOpt().ifPresent(observacao -> protocoloFlagDTO.setObservacao(Optional.of(observacao.toString()))); - return protocoloFlagDTO; - } + @Autowired + private ArquivosSession arquivosSession; + + @Autowired + private TiposDocumentoRepository tipoDocumentoRepository; + + @Autowired + private UsuarioRepository usuarioRepository; + + @Autowired + private ProtocoloRepository protocoloRepository; + + @Autowired + private EnviarProtocoloService enviarProtocoloService; + + @Autowired + private SalvarProtocoloService salvarProtocoloService; + + @Autowired + private UnidadeService unidadeService; + + @Autowired + private ProtocoloFlagService protocoloFlagService; + + @Autowired + private EventServerService eventServerService; + + private final int DEFAULT_PAGEABLE_SIZE = 10; + + @GetMapping("/") + public ModelAndView principal(Protocolo protocolo, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { + List permissoes = usuarioRepository.permissoes(usuarioSistema.getUsuario()); + if (permissoes.contains("ROLE_CADASTRO") & usuarioSistema.getUsuario().getTemPerfilBrasilCidadao() == null) { + ModelAndView mv = new ModelAndView("Dashboard"); + mv.addObject("usuario", usuarioSistema.getUsuario()); + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); + mv.addObject("unidades", unidadeService.obterUnidades()); + return mv; + } + + return enviar(protocolo, usuarioSistema); + } + + @GetMapping("/pendentes") + public ModelAndView pesquisaProtocolosPendentes(ProtocoloFilter filter, BindingResult result, + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosPendentes"); + filter.setStatus(StatusEnum.PENDENTE); + PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), + httpServletRequest); + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); + mv.addObject("pagina", paginaWrapper); + return mv; + } + + @GetMapping("/aprovados") + public ModelAndView pesquisaProtocolosAprovados(ProtocoloFilter filter, BindingResult result, + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAprovados"); + filter.setStatus(StatusEnum.APROVADO); + PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), + httpServletRequest); + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); + mv.addObject("pagina", paginaWrapper); + return mv; + } + + @GetMapping("/aprovadosManualmente") + public ModelAndView pesquisaProtocolosAprovadosManualmente(ProtocoloFilter filter, BindingResult result, + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAprovadosManualmente"); + filter.setStatus(StatusEnum.APROVADO_MANUALMENTE); + PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), + httpServletRequest); + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); + mv.addObject("pagina", paginaWrapper); + return mv; + } + + @GetMapping("/reprovados") + public ModelAndView pesquisaProtocolosReprovados(ProtocoloFilter filter, BindingResult result, + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosReprovados"); + filter.setStatus(StatusEnum.REPROVADO); + PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), + httpServletRequest); + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); + mv.addObject("pagina", paginaWrapper); + return mv; + } + + @GetMapping("/analisando") + public ModelAndView pesquisaProtocolosAnalisando(ProtocoloFilter filter, BindingResult result, + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAnalisando"); + filter.setStatus(StatusEnum.ANALISANDO); + PageWrapper paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), + httpServletRequest); + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); + mv.addObject("pagina", paginaWrapper); + return mv; + } + + @GetMapping("/opcoes") + public ModelAndView opcoes() { + return new ModelAndView("/protocolo/OpcoesProtocolo"); + } + + @GetMapping("/enviar") + public ModelAndView enviar(Protocolo protocolo, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { + if (StringUtils.isEmpty(protocolo.getUuid())) { + protocolo.setUuid(UUID.randomUUID().toString()); + protocolo.setPossuiProtocoloAnterior("N"); + } + ModelAndView mv = new ModelAndView("/protocolo/CadastroProtocolo"); + mv.addObject("usuario", usuarioSistema.getUsuario()); + mv.addObject("tiposDocumento", tipoDocumentoRepository.findByAtivo(true)); + mv.addObject("unidades", unidadeService.obterUnidades()); + return mv; + } + + @PostMapping("/enviar") + public ModelAndView enviar(@Valid Protocolo protocolo, BindingResult result, RedirectAttributes attributes, + @AuthenticationPrincipal UsuarioSistema usuarioSistema) { + if ("S".equals(protocolo.getPossuiProtocoloAnterior()) + && StringUtils.isEmpty(protocolo.getNumeroProtocoloAnterior())) { + result.rejectValue("numeroProtocoloAnterior", "Número do protocolo Anterior é obrigatório.", + "Número do protocolo Anterior é obrigatório."); + return enviar(protocolo, usuarioSistema); + } + + if (result.hasErrors()) { + return enviar(protocolo, usuarioSistema); + } + + List arquivoDTOList = arquivosSession.obterArquivos(protocolo.getUuid()); + + if (CollectionUtils.isEmpty(arquivoDTOList)) { + String msg = "Nenhum arquivo anexado, favor incluir algum arquivo antes de efetuar a protocolização."; + result.rejectValue("arquivo", msg, msg); + return enviar(protocolo, usuarioSistema); + } + + protocolo.setUsuario(usuarioSistema.getUsuario()); + enviarProtocoloService.enviar(protocolo, arquivoDTOList); + attributes.addFlashAttribute("mensagem", + String.format("Protocolo Nº %s salvo com sucesso.", protocolo.getNumero())); + return new ModelAndView("redirect:/enviar"); + } + + @GetMapping("/meus-protocolos") + public ModelAndView meusProtocolos(ProtocoloFilter filter, BindingResult result, + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest, + @AuthenticationPrincipal UsuarioSistema usuarioSistema) { + ModelAndView mv = new ModelAndView("protocolo/MeusProtocolos"); + + PageWrapper paginaWrapper = new PageWrapper<>( + protocoloRepository.filtrarMeusProtocolos(usuarioSistema.getUsuario(), filter, pageable), + httpServletRequest); + mv.addObject("pagina", paginaWrapper); + + return mv; + } + + @GetMapping("/reenvioRecibo/{codigo}") + public @ResponseBody ResponseEntity reenviarRecibo(@PathVariable("codigo") Protocolo protocolo, + @RequestParam(value = "email", required = false) String email) { + enviarProtocoloService.reenviarRecibo(protocolo, email); + Response response = new Response(); + String resposta = null; + if (!email.isEmpty() || email != null) { + resposta = email; + } + if (!protocolo.getEmail1().isEmpty() && protocolo.getEmail1() != null && protocolo.getEmail1() != "") { + resposta = resposta + " " + protocolo.getEmail1(); + } + if (!protocolo.getEmail2().isEmpty() && protocolo.getEmail2() != null && protocolo.getEmail2() != "") { + resposta = resposta + " " + protocolo.getEmail2(); + } + if (!protocolo.getUsuario().getEmail().isEmpty() && protocolo.getUsuario().getEmail() != null + && protocolo.getUsuario().getEmail() != "") { + resposta = resposta + " " + protocolo.getUsuario().getEmail(); + } + response.setData(resposta); + return ResponseEntity.ok(response); + } + + @RequestMapping("/stream") + public SseEmitter enableNotifier() { + // SseEmitter notifier = new SseEmitter(); + return eventServerService; + } + + @PutMapping("/aprovar/{codigo}") + public @ResponseBody ResponseEntity aprovar(@PathVariable("codigo") Protocolo protocolo, + @RequestParam(value = "sei", required = false) String sei, + @RequestParam(value = "tipo", required = false) String tipo, + @RequestParam(value = "idSei") String idSei) { + // SseEmitter sseEmitter = new SseEmitter(); + CompletableFuture.supplyAsync(() -> { + try { + enviarProtocoloService.enviarSEI(protocolo, sei, tipo, idSei); + return "Sincronizado com Sucesso !"; + } catch (ServiceException e) { + return e.getMessage(); + } catch (Exception e) { + return e.getMessage(); + } + }).whenCompleteAsync((result, throwable) -> { + try { + eventServerService.send(result); + } catch (IOException e) { + e.printStackTrace(); + } + }).exceptionally(ex -> { + try { + eventServerService.send(ex.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + } + return "erro"; + }); + + return ResponseEntity.ok().build(); + } + + @PutMapping("/aprovarManualmente/{sei}/{codigo}") + public @ResponseBody ResponseEntity aprovarManualmente(@PathVariable("sei") String sei, + @PathVariable("codigo") Protocolo protocolo) { + protocolo.setNupe(sei); + salvarProtocoloService.aprovarManualmente(protocolo); + return ResponseEntity.ok().build(); + } + + @GetMapping("/aprovarManualmente/{sei}") + public ResponseEntity> consultarSei(@PathVariable("sei") String sei) { + Optional linkSei = enviarProtocoloService.consultarSei(sei); + Response response = new Response(); + if (!linkSei.isPresent()) { + response.getErrors().add("Nº SEI não encontrado: " + sei); + return ResponseEntity.badRequest().body(response); + } + response.setData(linkSei.get()); + return ResponseEntity.ok(response); + } + + @PutMapping("/reprovar/{codigo}") + public @ResponseBody ResponseEntity reprovar(@PathVariable("codigo") Protocolo protocolo, + @RequestBody String observacao) { + protocolo.setObservacao(observacao); + enviarProtocoloService.recusar(protocolo); + return ResponseEntity.ok().build(); + } + + /** + * atulizado o status de pendente para analise na tabela protocolo + * + * @param protocolo + * @return ResponseEntity + */ + @PutMapping("/atualizarFlag/{codigo}") + public @ResponseBody ResponseEntity atualizarflag(@PathVariable("codigo") Protocolo protocolo) { + salvarProtocoloService.analisando(protocolo); + return ResponseEntity.ok().build(); + } + + /** + * atulizado o status para pendente + * + * @param protocolo + * @return ResponseEntity + */ + @PutMapping("/atuzalizarFlagPendente/{codigo}") + public @ResponseBody ResponseEntity atuzalizarFlagPendente(@PathVariable("codigo") Protocolo protocolo) { + salvarProtocoloService.pendente(protocolo); + return ResponseEntity.ok().build(); + } + + /** + * método para reprovar o protocolo + * + * @param protocolo + * @return ResponseEntity + */ + @PutMapping("/atuzalizarFlagReprovado/{codigo}") + public @ResponseBody ResponseEntity atuzalizarFlagReprovado(@PathVariable("codigo") Protocolo protocolo) { + salvarProtocoloService.reprovar(protocolo); + return ResponseEntity.ok().build(); + } + + /** + * método para retirar o protocolo da análise + * + * @param protocolo + * @return ResponseEntity + */ + @PutMapping("/retirarAnalise") + public @ResponseBody ResponseEntity retirarAnalise(@RequestParam("codigo") Protocolo protocolo) { + salvarProtocoloService.pendente(protocolo); + return ResponseEntity.ok().build(); + } + + /** + * método para retirar o protocolo da análise e deixar reprovado + * + * @param protocolo + * @return ResponseEntity + */ + @PutMapping("/retirarAnaliseReprovado") + public @ResponseBody ResponseEntity retirarAnaliseReprovado(@RequestParam("codigo") Protocolo protocolo) { + salvarProtocoloService.reprovar(protocolo); + return ResponseEntity.ok().build(); + } + + /** + * busca o status passado o código + * + * @param codigo + * @return ResponseEntity + */ + @GetMapping(value = "/buscarFlag/{codigo}") + public ResponseEntity> buscarStatusPorCodigp(@PathVariable("codigo") Long codigo) { + Response response = new Response(); + Optional protocolo = protocoloFlagService.buscarStatusPorCodigo(codigo); + + if (!protocolo.isPresent()) { + response.getErrors().add("Status não encontrado para o código: " + codigo); + return ResponseEntity.badRequest().body(response); + } + + response.setData(this.converterProtocoloFlagDto(protocolo.get())); + return ResponseEntity.ok(response); + } + + /** + * convertendo a entidade para objeto DTO + * + * @param protocolo + * @return protocoloFlagDTO + */ + private ProtocoloFlagDTO converterProtocoloFlagDto(Protocolo protocolo) { + ProtocoloFlagDTO protocoloFlagDTO = new ProtocoloFlagDTO(); + protocoloFlagDTO.setStatus(protocolo.getStatus().toString()); + // protocoloFlagDTO.setObservacao(Optional.of(protocolo.getObservacao().toString())); + // protocoloFlagDTO.setObservacao().ifPresent(x -> + // protocolo.getObservacao(x.toString())); + protocolo.getObservacaoOpt() + .ifPresent(observacao -> protocoloFlagDTO.setObservacao(Optional.of(observacao.toString()))); + return protocoloFlagDTO; + } } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/UsuarioController.java b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/UsuarioController.java index 2b46c1e..98752a3 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/UsuarioController.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/controllers/UsuarioController.java @@ -7,7 +7,6 @@ package br.gov.planejamento.dipla.protocolo.controllers; import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; -import br.gov.planejamento.dipla.protocolo.dto.ProtocoloFlagDTO; import br.gov.planejamento.dipla.protocolo.entities.Grupo; import br.gov.planejamento.dipla.protocolo.entities.Usuario; import br.gov.planejamento.dipla.protocolo.repositories.GrupoRepository; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/dto/MetadadosDTO.java b/src/main/java/br/gov/planejamento/dipla/protocolo/dto/MetadadosDTO.java index c3c763e..7c26dc6 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/dto/MetadadosDTO.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/dto/MetadadosDTO.java @@ -3,18 +3,6 @@ package br.gov.planejamento.dipla.protocolo.dto; import lombok.Getter; import lombok.Setter; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import javax.persistence.Column; - -import org.hibernate.validator.constraints.NotBlank; -import org.hibernate.validator.constraints.NotEmpty; - -import br.gov.planejamento.dipla.protocolo.entities.Configuracao; - /** * Created by dario on 29/09/17. */ diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/dto/ProtocoloFlagDTO.java b/src/main/java/br/gov/planejamento/dipla/protocolo/dto/ProtocoloFlagDTO.java index 2afd576..b8affa4 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/dto/ProtocoloFlagDTO.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/dto/ProtocoloFlagDTO.java @@ -2,8 +2,8 @@ package br.gov.planejamento.dipla.protocolo.dto; import lombok.Getter; import lombok.Setter; + import java.util.Optional; -import org.hibernate.validator.constraints.NotEmpty; /** * Created by dario on 29/09/17. diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Arquivos.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Arquivos.java index 29ac875..bfe1d69 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Arquivos.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Arquivos.java @@ -48,7 +48,7 @@ public class Arquivos implements Serializable { @Column(name = "descricao_documento") private String descricaoDocumento; - @ManyToOne + @ManyToOne(fetch=FetchType.EAGER) @JoinColumn(name = "codigo_tipo_documento") private TiposDocumento tipoDocumento = new TiposDocumento(); diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Classificacao.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Classificacao.java index 1ea8b12..2c9847a 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Classificacao.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Classificacao.java @@ -29,6 +29,6 @@ public class Classificacao implements Serializable { @Column(name = "nome") private String nome; - @OneToMany(mappedBy = "classificacao", cascade = CascadeType.ALL) + @OneToMany(mappedBy = "classificacao", cascade = CascadeType.ALL, fetch = FetchType.EAGER) private List configuracoes = new ArrayList<>(); } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Configuracao.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Configuracao.java index 499b86b..d81013b 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Configuracao.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Configuracao.java @@ -1,18 +1,12 @@ package br.gov.planejamento.dipla.protocolo.entities; -import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import org.hibernate.validator.constraints.Email; -import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import javax.persistence.*; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.io.Serializable; -import java.util.List; /** * diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/ConfiguracaoEmail.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/ConfiguracaoEmail.java index 9c95b3e..2ccc6d1 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/ConfiguracaoEmail.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/ConfiguracaoEmail.java @@ -1,18 +1,12 @@ package br.gov.planejamento.dipla.protocolo.entities; -import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import org.hibernate.validator.constraints.Email; -import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import javax.persistence.*; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.io.Serializable; -import java.util.ArrayList; import java.util.List; /** diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/LogSistema.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/LogSistema.java index ef20089..17ce895 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/LogSistema.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/LogSistema.java @@ -7,7 +7,6 @@ import lombok.Setter; import javax.persistence.*; import java.io.Serializable; import java.util.Date; -import java.util.List; /** * diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Metadado.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Metadado.java index 3aef85f..f406294 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Metadado.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Metadado.java @@ -5,10 +5,6 @@ import lombok.Getter; import lombok.Setter; import javax.persistence.*; -import javax.validation.constraints.NotNull; - -import org.hibernate.validator.constraints.NotBlank; - import java.io.Serializable; import java.util.List; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Protocolo.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Protocolo.java index 1d0f958..a4e7669 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Protocolo.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Protocolo.java @@ -5,7 +5,6 @@ import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.DynamicUpdate; import org.hibernate.validator.constraints.Email; -import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.SafeHtml; import javax.persistence.*; @@ -14,7 +13,6 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; -import javax.persistence.Transient; import java.util.Optional; /** @@ -37,6 +35,10 @@ public class Protocolo implements Serializable { @Transient private String linkNup; + + @Transient + private String idSei; + @Transient private static final String urlNup = ""; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/TiposDocumento.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/TiposDocumento.java index bbccf4b..91f8c13 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/TiposDocumento.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/TiposDocumento.java @@ -11,7 +11,6 @@ import lombok.Setter; import org.hibernate.validator.constraints.NotBlank; import javax.persistence.*; -import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -35,9 +34,15 @@ public class TiposDocumento implements Serializable { @NotBlank(message = "O campo descrição é de preenchimento obrigatório") private String descricao; - @NotBlank(message = "O campo código é de preenchimento obrigatório") + //@NotBlank(message = "O campo código é de preenchimento obrigatório") @Column(name = "codigo_sei") private String codigoSei; + + @Column(name = "codigo_sei_mf") + private String codigoSeiMf; + + @Column(name = "codigo_sei_mdic") + private String codigoSeiMdic; private Boolean ativo; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Usuario.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Usuario.java index 542fce3..9dce0a9 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Usuario.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/Usuario.java @@ -1,6 +1,7 @@ package br.gov.planejamento.dipla.protocolo.entities; import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; +import lombok.AccessLevel; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; @@ -8,14 +9,12 @@ import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.SafeHtml; -import org.springframework.util.StringUtils; import javax.persistence.*; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; import java.util.List; -import lombok.AccessLevel; /** * diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/UsuarioBrasilCidadao.java b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/UsuarioBrasilCidadao.java index ed5bbd1..bbdd1b0 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/entities/UsuarioBrasilCidadao.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/entities/UsuarioBrasilCidadao.java @@ -1,18 +1,13 @@ package br.gov.planejamento.dipla.protocolo.entities; -import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import org.hibernate.validator.constraints.Email; -import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import javax.persistence.*; -import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; -import java.util.List; /** * diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/handler/LogoutBrasilCidadaoHandler.java b/src/main/java/br/gov/planejamento/dipla/protocolo/handler/LogoutBrasilCidadaoHandler.java index 6fbc749..01b0bf9 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/handler/LogoutBrasilCidadaoHandler.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/handler/LogoutBrasilCidadaoHandler.java @@ -1,19 +1,16 @@ package br.gov.planejamento.dipla.protocolo.handler; -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - +import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; import org.springframework.stereotype.Component; -import org.springframework.web.client.RestTemplate; -import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; @Component public class LogoutBrasilCidadaoHandler implements LogoutSuccessHandler { diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/mail/Mailer.java b/src/main/java/br/gov/planejamento/dipla/protocolo/mail/Mailer.java index d7b8bd1..1623484 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/mail/Mailer.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/mail/Mailer.java @@ -1,24 +1,12 @@ package br.gov.planejamento.dipla.protocolo.mail; -import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; -import br.gov.planejamento.dipla.protocolo.entities.Configuracao; -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; -import br.gov.planejamento.dipla.protocolo.entities.EmailEnum; -import br.gov.planejamento.dipla.protocolo.entities.Metadado; -import br.gov.planejamento.dipla.protocolo.entities.MetadadosEmail; -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; -import br.gov.planejamento.dipla.protocolo.entities.Usuario; +import br.gov.planejamento.dipla.protocolo.entities.*; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; import br.gov.planejamento.dipla.protocolo.repositories.MetadadoRepository; -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; import org.springframework.core.io.ClassPathResource; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; @@ -31,17 +19,9 @@ import org.thymeleaf.spring4.SpringTemplateEngine; import org.thymeleaf.spring4.dialect.SpringStandardDialect; import org.thymeleaf.templatemode.TemplateMode; import org.thymeleaf.templateresolver.StringTemplateResolver; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import java.io.StringReader; import java.util.Iterator; import java.util.List; import java.util.Locale; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ClassificacaoRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ClassificacaoRepository.java index ee0c5bf..1e3b66b 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ClassificacaoRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ClassificacaoRepository.java @@ -1,12 +1,11 @@ package br.gov.planejamento.dipla.protocolo.repositories; import br.gov.planejamento.dipla.protocolo.entities.Classificacao; - -import java.util.Optional; - import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.Optional; + /** * * @author Leonardo Dias @@ -14,4 +13,5 @@ import org.springframework.stereotype.Repository; @Repository public interface ClassificacaoRepository extends JpaRepository{ public Optional findByNome(String nome); + public Optional findByCodigo(Long codigo); } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoEmailRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoEmailRepository.java index d8eb8b7..1dbe5f5 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoEmailRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoEmailRepository.java @@ -1,13 +1,9 @@ package br.gov.planejamento.dipla.protocolo.repositories; import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; -import br.gov.planejamento.dipla.protocolo.entities.MetadadosEmail; - import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import java.util.List; import java.util.Optional; /** diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoRepository.java index 3b18569..010c319 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoRepository.java @@ -3,11 +3,9 @@ package br.gov.planejamento.dipla.protocolo.repositories; import br.gov.planejamento.dipla.protocolo.entities.Configuracao; import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; import br.gov.planejamento.dipla.protocolo.repositories.helper.configuracao.ConfiguracaoRepositoryQueries; -import br.gov.planejamento.dipla.protocolo.repositories.helper.usuario.UsuarioRepositoryQueries; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import java.util.List; import java.util.Optional; /** diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LogStatusRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LogStatusRepository.java index e1a9251..c3bddc0 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LogStatusRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LogStatusRepository.java @@ -1,7 +1,6 @@ package br.gov.planejamento.dipla.protocolo.repositories; import br.gov.planejamento.dipla.protocolo.entities.LogSistema; - import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LoginAttemptRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LoginAttemptRepository.java index bc9cca6..6d0ef84 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LoginAttemptRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LoginAttemptRepository.java @@ -1,7 +1,6 @@ package br.gov.planejamento.dipla.protocolo.repositories; import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; - import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/MetadadoRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/MetadadoRepository.java index 2f8d090..30dffec 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/MetadadoRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/MetadadoRepository.java @@ -1,10 +1,7 @@ package br.gov.planejamento.dipla.protocolo.repositories; -import br.gov.planejamento.dipla.protocolo.entities.Arquivos; import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; import br.gov.planejamento.dipla.protocolo.entities.Metadado; -import br.gov.planejamento.dipla.protocolo.entities.MetadadosEmail; - import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ProtocoloRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ProtocoloRepository.java index 008069a..1646834 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ProtocoloRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ProtocoloRepository.java @@ -1,16 +1,12 @@ package br.gov.planejamento.dipla.protocolo.repositories; import br.gov.planejamento.dipla.protocolo.entities.Protocolo; -import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; import br.gov.planejamento.dipla.protocolo.entities.Usuario; import br.gov.planejamento.dipla.protocolo.repositories.helper.protocolo.ProtocoloRepositoryQueries; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; -import java.util.Optional; import org.springframework.transaction.annotation.Transactional; -import org.springframework.data.jpa.repository.JpaRepository; import java.math.BigDecimal; import java.util.List; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/TiposDocumentoRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/TiposDocumentoRepository.java index 030f96a..592245c 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/TiposDocumentoRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/TiposDocumentoRepository.java @@ -8,10 +8,10 @@ package br.gov.planejamento.dipla.protocolo.repositories; import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; import br.gov.planejamento.dipla.protocolo.repositories.helper.tiposDocumento.TiposDocumentoRepositoryQueries; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; -import java.util.Optional; + import java.util.List; +import java.util.Optional; /** * @author leonardo diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/UsuarioRepository.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/UsuarioRepository.java index 77051fc..1db3562 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/UsuarioRepository.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/UsuarioRepository.java @@ -16,6 +16,7 @@ import java.util.Optional; public interface UsuarioRepository extends JpaRepository, UsuarioRepositoryQueries { public List findByCodigoIn(Long[] codigos); + public Usuario findByCodigo(Long codgio); public Optional findByEmail(String email); diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryImpl.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryImpl.java index baad9dc..aa69e36 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryImpl.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryImpl.java @@ -2,11 +2,8 @@ package br.gov.planejamento.dipla.protocolo.repositories.helper.configuracao; import br.gov.planejamento.dipla.protocolo.entities.Configuracao; import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; - - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; - +import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; +import br.gov.planejamento.dipla.protocolo.repositories.paginacao.PaginacaoUtil; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.MatchMode; @@ -17,15 +14,13 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; -import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; -import br.gov.planejamento.dipla.protocolo.repositories.paginacao.PaginacaoUtil; - -import java.util.List; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import java.util.Optional; /** * - * @author Leonardo Dias + * @authors Leonardo Dias, Matheus de Carvalho */ public class ConfiguracaoRepositoryImpl implements ConfiguracaoRepositoryQueries { diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryQueries.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryQueries.java index 68c70e1..d629172 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryQueries.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryQueries.java @@ -1,18 +1,11 @@ package br.gov.planejamento.dipla.protocolo.repositories.helper.configuracao; -import br.gov.planejamento.dipla.protocolo.dto.MetadadosDTO; import br.gov.planejamento.dipla.protocolo.entities.Configuracao; import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; -import br.gov.planejamento.dipla.protocolo.entities.Usuario; -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; -import br.gov.planejamento.dipla.protocolo.repositories.filter.ProtocoloFilter; -import br.gov.planejamento.dipla.protocolo.repositories.filter.UsuarioFilter; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import java.util.List; import java.util.Optional; /** diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/usuario/UsuarioRepositoryImpl.java b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/usuario/UsuarioRepositoryImpl.java index 04ff096..c7c3c15 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/usuario/UsuarioRepositoryImpl.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/usuario/UsuarioRepositoryImpl.java @@ -1,22 +1,16 @@ package br.gov.planejamento.dipla.protocolo.repositories.helper.usuario; import br.gov.planejamento.dipla.protocolo.entities.Grupo; -import java.util.ArrayList; -import java.util.List; - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; - +import br.gov.planejamento.dipla.protocolo.entities.Usuario; +import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; +import br.gov.planejamento.dipla.protocolo.entities.UsuarioGrupo; +import br.gov.planejamento.dipla.protocolo.repositories.filter.UsuarioFilter; +import br.gov.planejamento.dipla.protocolo.repositories.paginacao.PaginacaoUtil; import org.hibernate.Criteria; import org.hibernate.Hibernate; import org.hibernate.Session; -import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.DetachedCriteria; -import org.hibernate.criterion.MatchMode; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Projections; -import org.hibernate.criterion.Restrictions; -import org.hibernate.criterion.Subqueries; +import org.hibernate.criterion.*; +import org.hibernate.sql.JoinType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -24,13 +18,11 @@ import org.springframework.data.domain.Pageable; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; -import br.gov.planejamento.dipla.protocolo.entities.Usuario; -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; -import br.gov.planejamento.dipla.protocolo.entities.UsuarioGrupo; -import br.gov.planejamento.dipla.protocolo.repositories.filter.UsuarioFilter; -import br.gov.planejamento.dipla.protocolo.repositories.paginacao.PaginacaoUtil; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; -import org.hibernate.sql.JoinType; /** * diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/security/AppUserDetailsService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/security/AppUserDetailsService.java index 218ff84..5918411 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/security/AppUserDetailsService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/security/AppUserDetailsService.java @@ -2,8 +2,6 @@ package br.gov.planejamento.dipla.protocolo.security; import br.gov.planejamento.dipla.protocolo.entities.Usuario; import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; - -import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/security/BrasilCidadaoUserDetails.java b/src/main/java/br/gov/planejamento/dipla/protocolo/security/BrasilCidadaoUserDetails.java index 7bb5a10..e5b620d 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/security/BrasilCidadaoUserDetails.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/security/BrasilCidadaoUserDetails.java @@ -1,25 +1,16 @@ package br.gov.planejamento.dipla.protocolo.security; -import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; -import br.gov.planejamento.dipla.protocolo.entities.Usuario; import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; import java.util.Collection; +import java.util.Collections; /** - * * @author Leonardo Dias */ -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.Collections; -import java.util.Map; - public class BrasilCidadaoUserDetails implements UserDetails { /** diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/security/CaptchaService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/security/CaptchaService.java index dd59ada..7d0d2dc 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/security/CaptchaService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/security/CaptchaService.java @@ -1,15 +1,14 @@ package br.gov.planejamento.dipla.protocolo.security; +import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; +import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; +import br.gov.planejamento.dipla.protocolo.services.exeptions.ReCaptchaUnavailableException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; -import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; -import br.gov.planejamento.dipla.protocolo.services.exeptions.ReCaptchaUnavailableException; - import javax.servlet.http.HttpServletRequest; import java.net.URI; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/security/CustomAuthenticationFailureHandler.java b/src/main/java/br/gov/planejamento/dipla/protocolo/security/CustomAuthenticationFailureHandler.java index e85b9c2..0fd4462 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/security/CustomAuthenticationFailureHandler.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/security/CustomAuthenticationFailureHandler.java @@ -1,25 +1,16 @@ package br.gov.planejamento.dipla.protocolo.security; -import java.io.IOException; -import java.util.Optional; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.codec.digest.DigestUtils; +import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; +import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.DefaultRedirectStrategy; -import org.springframework.security.web.RedirectStrategy; -import org.springframework.security.web.WebAttributes; import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler; import org.springframework.stereotype.Component; -import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; -import br.gov.planejamento.dipla.protocolo.entities.Usuario; -import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; -import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; @Component public class CustomAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler { diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/security/LoginAttemptService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/security/LoginAttemptService.java index 91a5bb9..0b08c5a 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/security/LoginAttemptService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/security/LoginAttemptService.java @@ -1,17 +1,14 @@ package br.gov.planejamento.dipla.protocolo.security; -import java.util.Date; -import java.util.Map; -import java.util.Optional; - +import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; +import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; -import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; +import java.util.Date; +import java.util.Optional; @Service diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/sei/ws/SeiWSClient.java b/src/main/java/br/gov/planejamento/dipla/protocolo/sei/ws/SeiWSClient.java index ac7cebf..18a288c 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/sei/ws/SeiWSClient.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/sei/ws/SeiWSClient.java @@ -1,295 +1,495 @@ package br.gov.planejamento.dipla.protocolo.sei.ws; import Sei.*; -import br.gov.planejamento.dipla.protocolo.entities.Arquivos; -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; +import br.gov.planejamento.dipla.protocolo.entities.*; import br.gov.planejamento.dipla.protocolo.mail.Mailer; import br.gov.planejamento.dipla.protocolo.repositories.ArquivosRepository; +import br.gov.planejamento.dipla.protocolo.repositories.ClassificacaoRepository; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; import br.gov.planejamento.dipla.protocolo.services.SalvarProtocoloService; import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; +import org.apache.axis.AxisFault; import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.springframework.util.Base64Utils; -import java.io.Console; -import java.io.File; import java.io.IOException; +import java.net.MalformedURLException; import java.net.URL; import java.nio.file.Path; -import java.util.List; -import java.util.Optional; - -import static java.nio.file.FileSystems.getDefault; - -import java.util.concurrent.CompletableFuture; - -import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.*; - - - +import static java.nio.file.FileSystems.getDefault; @Component public class SeiWSClient { - @Autowired - private Mailer mailer; - - @Autowired - private ConfiguracaoRepository configuracaoRepository; - - @Autowired - private SalvarProtocoloService salvarProtocoloService; - - @Autowired - private ArquivosRepository arquivosRepository; - - @Autowired - private ArquivoStorage arquivoStorage; - - private String getDateTime() { - DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); - Date date = new Date(); - return dateFormat.format(date); - } - - @Async - public String enviar(Protocolo protocolo, Long idUsuario, String sei, String tipo) { - - if (sei!=null && tipo!=null && !sei.isEmpty() && tipo.equals("existente")) { - enviarDocumento( protocolo, idUsuario, sei ); - } else { - - try { - URL urlEndpoint = new URL( configuracaoRepository.recuperarValor( ConfiguracaoEnum.URL_ENDPOINT ) ); - SeiBindingStub seiBindingStub = new SeiBindingStub( urlEndpoint, null ); - seiBindingStub.setTimeout( 600000 * 60 ); - - - /*Assunto assunto = new Assunto(); - assunto.setCodigoEstruturado( configuracaoRepository.recuperarValor( ConfiguracaoEnum.ASSUNTO_CODIGO_ESTRUTURADO ) ); - Assunto[] assuntos = {assunto};*/ - - Procedimento procedimento = new Procedimento(); - if (tipo.equals("novo")) { - procedimento.setNumeroProtocolo( sei ); - procedimento.setDataAutuacao( getDateTime() ); - } - - procedimento.setAssuntos( recuperaAssunto() ); - procedimento.setEspecificacao( configuracaoRepository.recuperarValor( ConfiguracaoEnum.PROCEDIMENTO_ESPECIFICADO ) ); - - Interessado interessado = new Interessado(); - interessado.setNome( protocolo.getUsuario().getNome() ); - interessado.setSigla( "Telefone: " + protocolo.getUsuario().getTelefone() ); - Interessado[] interessados = {interessado}; - - procedimento.setInteressados( interessados ); - - procedimento.setNivelAcesso( configuracaoRepository.recuperarValor( ConfiguracaoEnum.PROCEDIMENTO_NIVEL_ACESSO ) ); - procedimento.setIdTipoProcedimento( configuracaoRepository.recuperarValor( ConfiguracaoEnum.PROCEDIMENTO_ID_TIPO_PROCEDIMENTO ) ); - - List arquivosList = arquivosRepository.findByProtocolo( protocolo ); - - procedimento.setObservacao( - protocolo.toString() + - "\n" + - "Quantidade Arquivos: " + arquivosList.size() - ); - - - //criando o procedimento - RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStub.gerarProcedimento( - configuracaoRepository.recuperarValor( ConfiguracaoEnum.SIGLA_SISTEMA ), - configuracaoRepository.recuperarValor( ConfiguracaoEnum.IDENTIFICACAO_SERVICO ), - configuracaoRepository.recuperarValor( ConfiguracaoEnum.ID_UNIDADE ), - procedimento, - null, - null, - null, - "N", - "N", - null, - null, - "N", - null, - null ); - - - arquivosList.forEach( arquivo -> { - try { - Documento documento = new Documento(); - documento.setIdProcedimento( retornoGeracaoProcedimento.getProcedimentoFormatado() - .replace( ".", "" ) - .replace( "/", "" ) - .replace( "-", "" ) ); - documento.setObservacao( protocolo.toString()); - documento.setDescricao( arquivo.getDescricaoDocumento() ); - documento.setNomeArquivo( arquivo.getNomeOriginal() ); - documento.setTipo( configuracaoRepository.recuperarValor( ConfiguracaoEnum.DOCUMENTO_TIPO ) ); - //documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar para pegar da combo Tipo Documento - documento.setIdSerie( arquivo.getTipoDocumento().getCodigoSei() ); //Tipo documento vindo do banco de dados - documento.setData( protocolo.getDataFormatada() ); - documento.setNivelAcesso( configuracaoRepository.recuperarValor( ConfiguracaoEnum.DOCUMENTO_NIVEL_ACESSO ) ); - - Path path = getDefault().getPath( configuracaoRepository.recuperarValor( ConfiguracaoEnum.STORAGE_PATH ) ).resolve( arquivo.getNome() ); - documento.setConteudo( Base64Utils.encodeToString( FileUtils.readFileToByteArray( path.toFile() ) ) ); - - seiBindingStub.incluirDocumento( - configuracaoRepository.recuperarValor( ConfiguracaoEnum.SIGLA_SISTEMA ), - configuracaoRepository.recuperarValor( ConfiguracaoEnum.IDENTIFICACAO_SERVICO ), - configuracaoRepository.recuperarValor( ConfiguracaoEnum.ID_UNIDADE ), - documento - ); - } catch (IOException e) { - protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage() ); - throw new RuntimeException( e.getMessage() ); - } - } ); - - protocolo.setLinkSEI(retornoGeracaoProcedimento.getLinkAcesso()); - protocolo.setNupe( retornoGeracaoProcedimento.getProcedimentoFormatado() ); - salvarProtocoloService.aprovar( protocolo, idUsuario ); - - //System.out.println("NUP TEMPORÃ�RIO"); - //System.out.println(protocolo.getEmail1()); - - protocolo.setArquivosList(arquivosList); - mailer.enviarAceite( protocolo ); - - /*arquivosList.forEach( arquivo -> { - arquivoStorage.excluir( arquivo.getNome() ); - } );*/ - - - return retornoGeracaoProcedimento.getProcedimentoFormatado(); - - } catch (Exception e) { - protocolo.setErroWs("[ERRO GERAR PROCEDIMENTO] " + e.getMessage() ); - e.printStackTrace(); - rollback( protocolo, e.getMessage() ); - } - } - - return null; - } - - /** - * - * @return array - */ - private Assunto[] recuperaAssunto() { - Assunto assunto = new Assunto(); - assunto.setCodigoEstruturado( configuracaoRepository.recuperarValor( ConfiguracaoEnum.ASSUNTO_CODIGO_ESTRUTURADO ) ); - Assunto[] assuntos = {assunto}; - return assuntos; - } - - private void rollback(Protocolo protocolo, String msgErro) { - protocolo.setNupe( null ); - salvarProtocoloService.pendente( protocolo ); - mailer.enviarEmailErroEnvioSEI( protocolo, msgErro ); - } - - public String enviarDocumento(Protocolo protocolo, Long idUsuario, String sei) { - String observacaoAnterior=""; - try { - - URL urlEndpoint = new URL( configuracaoRepository.recuperarValor( ConfiguracaoEnum.URL_ENDPOINT ) ); - SeiBindingStub seiBindingStub = new SeiBindingStub( urlEndpoint, null ); - seiBindingStub.setTimeout( 600000 * 60 ); - - List arquivosList = arquivosRepository.findByProtocolo( protocolo ); - - arquivosList.forEach( arquivo -> { - try { - Documento documento = new Documento(); - //documento.setIdProcedimento( sei ); - documento.setIdProcedimento( sei - .replace( ".", "" ) - .replace( "/", "" ) - .replace( "-", "" ) ); - documento.setObservacao( protocolo.toString()); - documento.setDescricao( arquivo.getDescricaoDocumento() ); - documento.setNomeArquivo( arquivo.getNomeOriginal() ); - documento.setTipo( configuracaoRepository.recuperarValor( ConfiguracaoEnum.DOCUMENTO_TIPO ) ); - //documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar para pegar da combo Tipo Documento - documento.setIdSerie( arquivo.getTipoDocumento().getCodigoSei() ); //Tipo documento vindo do banco de dados - documento.setData( protocolo.getDataFormatada() ); - documento.setNivelAcesso( configuracaoRepository.recuperarValor( ConfiguracaoEnum.DOCUMENTO_NIVEL_ACESSO ) ); - - Path path = getDefault().getPath( configuracaoRepository.recuperarValor( ConfiguracaoEnum.STORAGE_PATH ) ).resolve( arquivo.getNome() ); - documento.setConteudo( Base64Utils.encodeToString( FileUtils.readFileToByteArray( path.toFile() ) ) ); - - seiBindingStub.incluirDocumento( - configuracaoRepository.recuperarValor( ConfiguracaoEnum.SIGLA_SISTEMA ), - configuracaoRepository.recuperarValor( ConfiguracaoEnum.IDENTIFICACAO_SERVICO ), - configuracaoRepository.recuperarValor( ConfiguracaoEnum.ID_UNIDADE ), - documento - ); - } catch (IOException e) { - protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage() ); - throw new RuntimeException( e.getMessage() ); - } - } ); - - protocolo.setNupe( sei ); - //protocolo.setNupe( retornoGeracaoProcedimento.getProcedimentoFormatado() ); - salvarProtocoloService.aprovar( protocolo, idUsuario ); - - protocolo.setArquivosList(arquivosRepository.findByProtocolo(protocolo)); - mailer.enviarAceite( protocolo ); - - /*arquivosList.forEach( arquivo -> { - arquivoStorage.excluir( arquivo.getNome() ); - } );*/ - - - return sei; - - - } catch (Exception e) { - e.printStackTrace(); - rollback( protocolo, e.getMessage() ); - } - - return null; - - } - public RetornoConsultaProcedimento consultarProtocoloSei(String sei) { - Optional retorno = Optional.ofNullable(null); - RetornoConsultaProcedimento retornoConsultaProcedimento = new RetornoConsultaProcedimento(); - try { - URL urlEndpoint = new URL( configuracaoRepository.recuperarValor( ConfiguracaoEnum.URL_ENDPOINT ) ); - SeiBindingStub seiBindingStub = new SeiBindingStub( urlEndpoint, null ); - retornoConsultaProcedimento = seiBindingStub.consultarProcedimento( - configuracaoRepository.recuperarValor( ConfiguracaoEnum.SIGLA_SISTEMA ), - configuracaoRepository.recuperarValor( ConfiguracaoEnum.IDENTIFICACAO_SERVICO ), - configuracaoRepository.recuperarValor( ConfiguracaoEnum.ID_UNIDADE ), - sei, - "S", - "S", - "S", - "S", - "S", - "S", - "S", - "S", - "S" - ); - }catch(Exception e) { - e.printStackTrace(); - } - return retornoConsultaProcedimento; - } - - + @Autowired + private Mailer mailer; + + @Autowired + private ConfiguracaoRepository configuracaoRepository; + + @Autowired + private ClassificacaoRepository classificacaoRepository; + + @Autowired + private SalvarProtocoloService salvarProtocoloService; + + @Autowired + private ArquivosRepository arquivosRepository; + + @Autowired + private ArquivoStorage arquivoStorage; + + private String getDateTime() { + DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); + Date date = new Date(); + return dateFormat.format(date); + } + + @Async + public String enviar(Protocolo protocolo, Long idUsuario, String sei, String tipo, String idSei) throws Exception { + Map map = new HashMap(); + if (idSei != null) { + Optional classificacaoConfig = classificacaoRepository.findByCodigo(Long.parseLong(idSei)); + if (classificacaoConfig.isPresent()) { + Classificacao c = classificacaoConfig.get(); + Iterator itr = c.getConfiguracoes().iterator(); + while (itr.hasNext()) { + Configuracao conf = itr.next(); + map.put(conf.getNome(), conf.getValor()); + } + /** + * Envio para o SEI Definido + */ + this.enviarDocumentoComSei(protocolo, idUsuario, sei, tipo, map, idSei); + } + } else { + throw new Exception("[ERRO - idSei null]"); + } + return null; + } + + /** + * + * @return array + */ + private Assunto[] recuperaAssunto() { + Assunto assunto = new Assunto(); + assunto.setCodigoEstruturado( + configuracaoRepository.recuperarValor(ConfiguracaoEnum.ASSUNTO_CODIGO_ESTRUTURADO)); + Assunto[] assuntos = { assunto }; + return assuntos; + } + + private void rollback(Protocolo protocolo, String msgErro) { + protocolo.setNupe(null); + salvarProtocoloService.pendente(protocolo); + mailer.enviarEmailErroEnvioSEI(protocolo, msgErro); + } + + /** + * + * + * + * + * + */ + + private SeiBindingStub montarURLEndPoint(String endPoint) throws MalformedURLException, AxisFault { + URL urlEndpoint = new URL(endPoint); + SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); + return seiBindingStub; + } + + private Assunto[] montarAssunto(String assuntoCodigoEstruturado) { + Assunto assunto = new Assunto(); + assunto.setCodigoEstruturado(assuntoCodigoEstruturado); // Tipo de assunto + Assunto[] assuntos = { assunto }; + return assuntos; + } + + private Procedimento montarProcedimento(Assunto[] assuntos, Map mapConfig, Protocolo protocolo, int size) { + Procedimento procedimento = new Procedimento(); + procedimento.setAssuntos(assuntos); + procedimento.setEspecificacao(mapConfig.get("PROCEDIMENTO_ESPECIFICADO")); + procedimento.setObservacao(protocolo.toString() + "\n" + "Quantidade Arquivos: " + size); + procedimento.setNivelAcesso(mapConfig.get("PROCEDIMENTO_NIVEL_ACESSO")); // 0 = Publico, 1 = Restrito, 2 = Sigiloso + procedimento.setIdTipoProcedimento(mapConfig.get("PROCEDIMENTO_ID_TIPO_PROCEDIMENTO")); // Tipo de Processo => Adesão de atas + procedimento.setIdHipoteseLegal(mapConfig.get("PROCEDIMENTO_HIPOTESE_LEGAL")); + return procedimento; + } + + private Interessado[] montarInteressado(Protocolo protocolo) { + Interessado interessado = new Interessado(); + interessado.setNome(protocolo.getUsuario().getNome()); + interessado.setSigla("Telefone: " + protocolo.getUsuario().getTelefone()); + Interessado[] interessados = { interessado }; + return interessados; + } + + private Documento montarDocumento(String idProcedimento, String descricao, String observacao, String nomeArquivo, + String conteudo, String tipo, String idSerie, String data) throws IOException { + Documento documento = new Documento(); + documento.setIdProcedimento(idProcedimento); + documento.setDescricao(descricao); + documento.setObservacao(observacao); + documento.setNomeArquivo(nomeArquivo); + documento.setConteudo(conteudo); + documento.setTipo(tipo); + documento.setIdSerie(idSerie); + documento.setData(data); + + return documento; + } + + /** + * Função para enviar para múltiplos SEI's + * + * @author Matheus de Carvalho Sobrinho + * @param protocolo + * @param idUsuario + * @param sei + * @param tipo + * @param mapConfig + * @param idSei + * @return + */ + public String enviarDocumentoComSei(Protocolo protocolo, Long idUsuario, String sei, String tipo, + Map mapConfig, String idSei) { + + if (sei != null && tipo != null && !sei.isEmpty() && tipo.equals("existente")) { + enviarDocumento(protocolo, idUsuario, sei, mapConfig, idSei); + } else { + try { + List arquivosList = arquivosRepository.findByProtocolo(protocolo); + SeiBindingStub seiBindingStubMontado = this.montarURLEndPoint(mapConfig.get("URL_ENDPOINT")); + Assunto[] assuntos = this.montarAssunto(mapConfig.get("ASSUNTO_CODIGO_ESTRUTURADO")); + Interessado[] interessados = this.montarInteressado(protocolo); + Procedimento procedimento = this.montarProcedimento(assuntos, mapConfig, protocolo, arquivosList.size()); + procedimento.setInteressados(interessados); + + // Verificar se é um tipo informado + if (tipo.equals("novo")) { + procedimento.setNumeroProtocolo(sei); + procedimento.setDataAutuacao(getDateTime()); + } + + procedimento.setIdTipoProcedimento(mapConfig.get("PROCEDIMENTO_ID_TIPO_PROCEDIMENTO")); + + RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStubMontado.gerarProcedimento( + mapConfig.get("SIGLA_SISTEMA"), mapConfig.get("IDENTIFICACAO_SERVICO"), + mapConfig.get("ID_UNIDADE"), procedimento, null, null, null, "S", "N", null, null, null, null, + null); + + arquivosList.forEach(arquivo -> { + try { + Path path = getDefault() + .getPath(configuracaoRepository.recuperarValor(ConfiguracaoEnum.STORAGE_PATH)) + .resolve(arquivo.getNome()); + + Documento documento = this.montarDocumento( + retornoGeracaoProcedimento.getProcedimentoFormatado().replace(".", "").replace("/", "") + .replace("-", ""), + arquivo.getDescricaoDocumento(), + protocolo.toString() + "\n" + "Quantidade Arquivos: " + arquivosList.size(), + arquivo.getNomeOriginal(), + Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile())), + mapConfig.get("DOCUMENTO_TIPO"), recuperarCodigoSeiDeArquivo(arquivo, idSei), + protocolo.getDataFormatada()); + + documento.setNivelAcesso(mapConfig.get("DOCUMENTO_NIVEL_ACESSO")); + documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile()))); + + RetornoInclusaoDocumento retornoInclusaoDeDocumento = seiBindingStubMontado.incluirDocumento( + mapConfig.get("SIGLA_SISTEMA"), mapConfig.get("IDENTIFICACAO_SERVICO"), + mapConfig.get("ID_UNIDADE"), documento); + System.out.println("Link = " + retornoInclusaoDeDocumento.getLinkAcesso()); + + } catch (IOException e) { + protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage()); + throw new RuntimeException(e.getMessage()); + } + }); + + protocolo.setLinkSEI(retornoGeracaoProcedimento.getLinkAcesso()); + protocolo.setNupe(retornoGeracaoProcedimento.getProcedimentoFormatado()); + salvarProtocoloService.aprovar(protocolo, idUsuario); + + mailer.enviarAceite(protocolo); + + return retornoGeracaoProcedimento.getProcedimentoFormatado(); + } catch (Exception e) { + protocolo.setErroWs("[ERRO GERAR PROCEDIMENTO] " + e.getMessage()); + e.printStackTrace(); + rollback(protocolo, e.getMessage()); + } + } + + return null; + } + + public String enviarDocumento(Protocolo protocolo, Long idUsuario, String sei, Map mapConfig, + String idSei) { + try { + + URL urlEndpoint = new URL(mapConfig.get("URL_ENDPOINT")); + SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); + seiBindingStub.setTimeout(600000 * 60); + + List arquivosList = arquivosRepository.findByProtocolo(protocolo); + + arquivosList.forEach(arquivo -> { + try { + Documento documento = new Documento(); + // documento.setIdProcedimento( sei ); + documento.setIdProcedimento(sei.replace(".", "").replace("/", "").replace("-", "")); + documento.setObservacao(protocolo.toString()); + documento.setDescricao(arquivo.getDescricaoDocumento()); + documento.setNomeArquivo(arquivo.getNomeOriginal()); + + documento.setTipo(mapConfig.get("DOCUMENTO_TIPO")); + // documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar + // para pegar da combo Tipo Documento + + documento.setIdSerie(recuperarCodigoSeiDeArquivo(arquivo, idSei)); // Tipo documento vindo do banco + // de + // dados + documento.setData(protocolo.getDataFormatada()); + documento.setNivelAcesso(mapConfig.get("DOCUMENTO_NIVEL_ACESSO")); + + Path path = getDefault() + .getPath(configuracaoRepository.recuperarValor(ConfiguracaoEnum.STORAGE_PATH)) + .resolve(arquivo.getNome()); + documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile()))); + + seiBindingStub.incluirDocumento(mapConfig.get("SIGLA_SISTEMA"), + mapConfig.get("IDENTIFICACAO_SERVICO"), mapConfig.get("ID_UNIDADE"), documento); + } catch (IOException e) { + protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage()); + throw new RuntimeException(e.getMessage()); + } + }); + + protocolo.setNupe(sei); + salvarProtocoloService.aprovar(protocolo, idUsuario); + + protocolo.setArquivosList(arquivosRepository.findByProtocolo(protocolo)); + mailer.enviarAceite(protocolo); + + return sei; + } catch (Exception e) { + e.printStackTrace(); + rollback(protocolo, e.getMessage()); + } + + return null; + + } + + private String recuperarCodigoSeiDeArquivo(Arquivos arquivo, String idSei) { + if (idSei.equals("2")) { + return arquivo.getTipoDocumento().getCodigoSei(); + } else if (idSei.equals("6")) { + return arquivo.getTipoDocumento().getCodigoSeiMf(); + } else if (idSei.equals("7")) { + return arquivo.getTipoDocumento().getCodigoSeiMdic(); + } + return null; + } + + public RetornoConsultaProcedimento consultarProtocoloSei(String sei) { + Optional retorno = Optional.ofNullable(null); + RetornoConsultaProcedimento retornoConsultaProcedimento = new RetornoConsultaProcedimento(); + try { + URL urlEndpoint = new URL(configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_ENDPOINT)); + SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); + retornoConsultaProcedimento = seiBindingStub.consultarProcedimento( + configuracaoRepository.recuperarValor(ConfiguracaoEnum.SIGLA_SISTEMA), + configuracaoRepository.recuperarValor(ConfiguracaoEnum.IDENTIFICACAO_SERVICO), + configuracaoRepository.recuperarValor(ConfiguracaoEnum.ID_UNIDADE), sei, "S", "S", "S", "S", "S", + "S", "S", "S", "S"); + } catch (Exception e) { + e.printStackTrace(); + } + return retornoConsultaProcedimento; + } + +// /** +// * Enviar para o SEI primeiramente definido +// * +// * @param protocolo +// * @param idUsuario +// * @param sei +// * @param tipo +// * @return +// */ +// public String enviarSeiPadrao(Protocolo protocolo, Long idUsuario, String sei, String tipo, +// Map mapConfig, String idSei) { +// +// if (sei != null && tipo != null && !sei.isEmpty() && tipo.equals("existente")) { +// enviarDocumentoPadrao(protocolo, idUsuario, sei, mapConfig, idSei); +// } else { +// +// try { +// URL urlEndpoint = new URL(configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_ENDPOINT)); +// SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); +// seiBindingStub.setTimeout(600000 * 60); +// +// Procedimento procedimento = new Procedimento(); +// if (tipo.equals("novo")) { +// procedimento.setNumeroProtocolo(sei); +// procedimento.setDataAutuacao(getDateTime()); +// } +// +// procedimento.setAssuntos(recuperaAssunto()); +// procedimento.setEspecificacao( +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.PROCEDIMENTO_ESPECIFICADO)); +// +// Interessado interessado = new Interessado(); +// interessado.setNome(protocolo.getUsuario().getNome()); +// interessado.setSigla("Telefone: " + protocolo.getUsuario().getTelefone()); +// Interessado[] interessados = { interessado }; +// +// procedimento.setInteressados(interessados); +// +// procedimento.setNivelAcesso( +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.PROCEDIMENTO_NIVEL_ACESSO)); +// procedimento.setIdTipoProcedimento( +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.PROCEDIMENTO_ID_TIPO_PROCEDIMENTO)); +// +// List arquivosList = arquivosRepository.findByProtocolo(protocolo); +// +// procedimento.setObservacao(protocolo.toString() + "\n" + "Quantidade Arquivos: " + arquivosList.size()); +// +// // criando o procedimento +// RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStub.gerarProcedimento( +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.SIGLA_SISTEMA), +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.IDENTIFICACAO_SERVICO), +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.ID_UNIDADE), procedimento, null, null, +// null, "N", "N", null, null, "N", null, null); +// +// arquivosList.forEach(arquivo -> { +// try { +// Documento documento = new Documento(); +// documento.setIdProcedimento(retornoGeracaoProcedimento.getProcedimentoFormatado() +// .replace(".", "").replace("/", "").replace("-", "")); +// documento.setObservacao(protocolo.toString()); +// documento.setDescricao(arquivo.getDescricaoDocumento()); +// documento.setNomeArquivo(arquivo.getNomeOriginal()); +// documento.setTipo(configuracaoRepository.recuperarValor(ConfiguracaoEnum.DOCUMENTO_TIPO)); +// // documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar +// // para pegar da combo Tipo Documento +// documento.setIdSerie(arquivo.getTipoDocumento().getCodigoSei()); // Tipo documento vindo do +// // banco de dados +// documento.setData(protocolo.getDataFormatada()); +// documento.setNivelAcesso( +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.DOCUMENTO_NIVEL_ACESSO)); +// +// Path path = getDefault() +// .getPath(configuracaoRepository.recuperarValor(ConfiguracaoEnum.STORAGE_PATH)) +// .resolve(arquivo.getNome()); +// documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile()))); +// +// seiBindingStub.incluirDocumento( +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.SIGLA_SISTEMA), +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.IDENTIFICACAO_SERVICO), +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.ID_UNIDADE), documento); +// } catch (IOException e) { +// protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage()); +// throw new RuntimeException(e.getMessage()); +// } +// }); +// +// protocolo.setLinkSEI(retornoGeracaoProcedimento.getLinkAcesso()); +// protocolo.setNupe(retornoGeracaoProcedimento.getProcedimentoFormatado()); +// salvarProtocoloService.aprovar(protocolo, idUsuario); +// +// protocolo.setArquivosList(arquivosList); +// mailer.enviarAceite(protocolo); +// +// return retornoGeracaoProcedimento.getProcedimentoFormatado(); +// +// } catch (Exception e) { +// protocolo.setErroWs("[ERRO GERAR PROCEDIMENTO] " + e.getMessage()); +// e.printStackTrace(); +// rollback(protocolo, e.getMessage()); +// } +// } +// +// return null; +// } +// +// public String enviarDocumentoPadrao(Protocolo protocolo, Long idUsuario, String sei, Map mapConfig, +// String idSei) { +// String observacaoAnterior = ""; +// try { +// +// URL urlEndpoint = new URL(configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_ENDPOINT)); +// SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); +// seiBindingStub.setTimeout(600000 * 60); +// +// List arquivosList = arquivosRepository.findByProtocolo(protocolo); +// +// arquivosList.forEach(arquivo -> { +// try { +// Documento documento = new Documento(); +// // documento.setIdProcedimento( sei ); +// documento.setIdProcedimento(sei.replace(".", "").replace("/", "").replace("-", "")); +// documento.setObservacao(protocolo.toString()); +// documento.setDescricao(arquivo.getDescricaoDocumento()); +// documento.setNomeArquivo(arquivo.getNomeOriginal()); +// documento.setTipo(configuracaoRepository.recuperarValor(ConfiguracaoEnum.DOCUMENTO_TIPO)); +// // documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar +// // para pegar da combo Tipo Documento +// documento.setIdSerie(arquivo.getTipoDocumento().getCodigoSei()); // Tipo documento vindo do banco de +// // dados +// documento.setData(protocolo.getDataFormatada()); +// documento.setNivelAcesso( +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.DOCUMENTO_NIVEL_ACESSO)); +// +// Path path = getDefault() +// .getPath(configuracaoRepository.recuperarValor(ConfiguracaoEnum.STORAGE_PATH)) +// .resolve(arquivo.getNome()); +// documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile()))); +// +// seiBindingStub.incluirDocumento( +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.SIGLA_SISTEMA), +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.IDENTIFICACAO_SERVICO), +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.ID_UNIDADE), documento); +// } catch (IOException e) { +// protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage()); +// throw new RuntimeException(e.getMessage()); +// } +// }); +// +// protocolo.setNupe(sei); +// // protocolo.setNupe( retornoGeracaoProcedimento.getProcedimentoFormatado() ); +// salvarProtocoloService.aprovar(protocolo, idUsuario); +// +// protocolo.setArquivosList(arquivosRepository.findByProtocolo(protocolo)); +// mailer.enviarAceite(protocolo); +// +// /* +// * arquivosList.forEach( arquivo -> { arquivoStorage.excluir( arquivo.getNome() +// * ); } ); +// */ +// +// return sei; +// +// } catch (Exception e) { +// e.printStackTrace(); +// rollback(protocolo, e.getMessage()); +// } +// +// return null; +// +// } + + } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/AutoCadastroService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/AutoCadastroService.java index 3637048..ffaf482 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/AutoCadastroService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/AutoCadastroService.java @@ -1,21 +1,11 @@ package br.gov.planejamento.dipla.protocolo.services; import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; -import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; -import br.gov.planejamento.dipla.protocolo.entities.Grupo; -import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; -import br.gov.planejamento.dipla.protocolo.entities.Usuario; -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; +import br.gov.planejamento.dipla.protocolo.entities.*; import br.gov.planejamento.dipla.protocolo.mail.Mailer; -import br.gov.planejamento.dipla.protocolo.repositories.GrupoRepository; -import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; -import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioBrasilCidadaoRepository; -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; +import br.gov.planejamento.dipla.protocolo.repositories.*; import br.gov.planejamento.dipla.protocolo.services.exeptions.EmailUsuarioJaCadastradoException; import br.gov.planejamento.dipla.protocolo.services.exeptions.SenhaObrigatoriaUsuarioException; - import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder; @@ -23,9 +13,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Base64Utils; import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.servlet.ModelAndView; import java.util.ArrayList; import java.util.List; @@ -93,8 +80,8 @@ public class AutoCadastroService { } @Transactional - public void cadastrarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno) { - + public Usuario cadastrarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno) { + UsuarioBrasilCidadao usuarioBrasilCidadao= new UsuarioBrasilCidadao(); Usuario usuario = new Usuario(); usuario.setNome(usuarioretorno.getNome()); @@ -104,18 +91,22 @@ public class AutoCadastroService { List grupos = new ArrayList<>(); grupos.add(grupoRepository.findOne(3L)); usuario.setGrupos(grupos); - + salvar(usuario,grupos,false,false); - + + return usuario; + } - public void migrarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno) { + public UsuarioBrasilCidadao migrarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno, Usuario usuario) { UsuarioBrasilCidadao usuarioBrasilCidadao= new UsuarioBrasilCidadao(); - //Salvando CPF - usuarioBrasilCidadao.setCpf(usuarioretorno.getCpf()); - usuarioBrasilCidadao.setToken(usuarioretorno.getToken()); - usuarioBrasilCidadao.setAtivo(Boolean.FALSE); - usuarioBrasilCidadaoRepository.save(usuarioBrasilCidadao); + usuarioBrasilCidadao.setEmail(usuarioretorno.getEmail()); + usuarioBrasilCidadao.setUsuario(usuario); + usuarioBrasilCidadao.setCpf(usuarioretorno.getCpf()); + usuarioBrasilCidadao.setToken(usuarioretorno.getToken()); + usuarioBrasilCidadao.setAtivo(Boolean.FALSE); + usuarioBrasilCidadaoRepository.save(usuarioBrasilCidadao); + return usuarioBrasilCidadao; } public void atualizarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno, UsuarioBrasilCidadao usuarioBrasilCidadao, Boolean atualizaEmail) { diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/BrasilCidadaoService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/BrasilCidadaoService.java index b0e995a..e36b364 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/BrasilCidadaoService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/BrasilCidadaoService.java @@ -6,44 +6,38 @@ package br.gov.planejamento.dipla.protocolo.services; import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; -import br.gov.planejamento.dipla.protocolo.dto.TokenRetornoDto; import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; -import br.gov.planejamento.dipla.protocolo.entities.Configuracao; -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; import br.gov.planejamento.dipla.protocolo.entities.Usuario; import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; -import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; -import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; -import br.gov.planejamento.dipla.protocolo.security.BrasilCidadaoUserDetails; import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; - +import org.jose4j.json.internal.json_simple.JSONArray; +import org.jose4j.json.internal.json_simple.JSONObject; +import org.jose4j.json.internal.json_simple.parser.JSONParser; +import org.jose4j.jwk.PublicJsonWebKey; +import org.jose4j.jwt.JwtClaims; +import org.jose4j.jwt.consumer.JwtConsumer; +import org.jose4j.jwt.consumer.JwtConsumerBuilder; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; -import org.springframework.web.servlet.ModelAndView; - -import com.fasterxml.jackson.databind.ObjectMapper; +import javax.net.ssl.HttpsURLConnection; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; import java.nio.charset.Charset; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import java.util.*; + + /** * - * @author leonardo + * @author leonardo, Jose Fortes */ @Service public class BrasilCidadaoService { @@ -55,63 +49,148 @@ public class BrasilCidadaoService { @Autowired private BrasilCidadaoConfig brasilCidadaoOpenIdConnectConfig; - - - public UsuarioBrasilCidadaoDto autenticarBrasilCidadao(String code) throws Exception{ - UsuarioBrasilCidadaoDto usuarioretorno = new UsuarioBrasilCidadaoDto(); - - RestTemplate restTemplate = new RestTemplate(); - restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); - - HttpEntity entityToken = new HttpEntity(brasilCidadaoOpenIdConnectConfig.gerarRequisicaoAtributo(code), brasilCidadaoOpenIdConnectConfig.gerarRequisicaoHeader()); - - //Enviando autorização com code - - ResponseEntity respEntToken = restTemplate.exchange(brasilCidadaoOpenIdConnectConfig.gerarUrlToken(), HttpMethod.POST, entityToken, String.class); - - if(respEntToken.getStatusCodeValue()!=200) { - throw new Exception("Erro no recebimento do token"); - } - - //Capturando token - TokenRetornoDto retorno = new ObjectMapper().readValue(respEntToken.getBody().toString(), TokenRetornoDto.class); - - //Enviando token - ResponseEntity respEntUsuario = restTemplate.exchange(brasilCidadaoOpenIdConnectConfig.gerarUrlDadosUsuarios(retorno.getAccess_token()),HttpMethod.GET,null,String.class); - - if(respEntUsuario.getStatusCodeValue()!=200) { - throw new Exception("Erro no recebimento dos dados do usuario"); - } - - //Capturando dados usuario - usuarioretorno = new ObjectMapper().readValue(respEntUsuario.getBody().toString() , UsuarioBrasilCidadaoDto.class); - usuarioretorno.setToken(retorno.getAccess_token()); - - return usuarioretorno; - } - - public UsernamePasswordAuthenticationToken autenticarProtocolo(UsuarioBrasilCidadaoDto usuarioretorno) throws Exception { - Optional usuarioBrasilCidadao = usuarioRepository.buscarBrasilCidadao(usuarioretorno.getCpf()); - - BrasilCidadaoUserDetails userDetails = new BrasilCidadaoUserDetails(usuarioBrasilCidadao.get().getUsuario().getEmail()); - Optional usuario = usuarioRepository.findByEmail(usuarioBrasilCidadao.get().getUsuario().getEmail()); - - - List permissoes = usuarioRepository.permissoes(usuario.get()); + + + public UsernamePasswordAuthenticationToken autenticarProtocolo(UsuarioBrasilCidadaoDto usuarioretorno) throws Exception { + Optional usuarioBrasilCidadao = usuarioRepository.buscarBrasilCidadao(usuarioretorno.getCpf()); + + Optional usuario = usuarioRepository.findByEmail(usuarioBrasilCidadao.get().getUsuario().getEmail()); + usuario.get().setTemPerfilBrasilCidadao(true); - - UsuarioSistema usuarioSistema = new UsuarioSistema(usuario.get(),getPermissoes(),true); - - UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken( - usuarioSistema, - usuarioretorno.getToken(),getPermissoes()); + + UsuarioSistema usuarioSistema = new UsuarioSistema(usuario.get(), getPermissoes(), true); + + UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken( + usuarioSistema, + usuarioretorno.getToken(), getPermissoes()); return auth; - } - - private Collection getPermissoes() { + } + + private Collection getPermissoes() { Set authorities = new HashSet<>(); authorities.add(new SimpleGrantedAuthority("ROLE_BRASILCIDADAO")); return authorities; } + public UsuarioBrasilCidadaoDto autenticarBrasilCidadao(String code) throws Exception { + UsuarioBrasilCidadaoDto usuarioRetorno = new UsuarioBrasilCidadaoDto(); + + RestTemplate restTemplate = new RestTemplate(); + restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); + + //Enviando autorização com code + try { + String idToken = receberToken(code); + usuarioRetorno = recuperarInformacoesUsuarioBrasilCidadao(idToken); + return usuarioRetorno; + } catch (Exception e) { + msgErro = e.getMessage(); + System.out.println(msgErro); + } + + return null; + } + + private String receberToken(String code) throws Exception{ + String idToken = ""; + try { + String tokens = extractToken(code); + org.jose4j.json.internal.json_simple.parser.JSONParser parser = new JSONParser(); + org.jose4j.json.internal.json_simple.JSONObject tokensJson = (JSONObject) parser.parse(tokens); + idToken = (String) tokensJson.get("id_token"); + } catch (Exception e) { + msgErro = e.getMessage(); + System.out.println(msgErro); + } + + return idToken; + } + + private String extractToken(String code) throws Exception { + String retorno = ""; + URL url = new URL(brasilCidadaoOpenIdConnectConfig.gerarURLToken(code)); + HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Accept", "application/json"); + conn.setRequestProperty("authorization", String.format("Basic %s", + Base64.getEncoder().encodeToString(String.format("%s:%s", brasilCidadaoOpenIdConnectConfig.obterClientID(), brasilCidadaoOpenIdConnectConfig.obterClientSecret()).getBytes()))); + + if (conn.getResponseCode() != 200) { + throw new RuntimeException("Falhou : HTTP error code : " + conn.getResponseCode()); + } + + BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); + + String tokens = null; + while ((tokens = br.readLine()) != null) { + retorno += tokens; + } + + conn.disconnect(); + + return retorno; + } + + private UsuarioBrasilCidadaoDto recuperarInformacoesUsuarioBrasilCidadao(String idToken) throws Exception{ + JwtClaims idTokenJwtClaims; + try { + idTokenJwtClaims = processToClaims(idToken); + } catch (Exception e) { + msgErro = e.getMessage(); + System.out.println(msgErro); + throw new Exception(e); + } + + UsuarioBrasilCidadaoDto usuarioBrasilCidadaoDto = new UsuarioBrasilCidadaoDto(); + usuarioBrasilCidadaoDto.setEmail(idTokenJwtClaims.getClaimValue("email").toString()); + usuarioBrasilCidadaoDto.setNome(idTokenJwtClaims.getStringClaimValue("name").toString()); + usuarioBrasilCidadaoDto.setCpf(idTokenJwtClaims.getClaimValue("sub").toString()); + return usuarioBrasilCidadaoDto; + } + + private JwtClaims processToClaims(String token) throws Exception { + URL url = new URL(brasilCidadaoOpenIdConnectConfig.obterURLDadosUsuario()); + HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setRequestProperty("Accept", "application/json"); + if (conn.getResponseCode() != 200) { + throw new RuntimeException("Falhou : HTTP error code : " + conn.getResponseCode()); + } + + BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); + + String ln = null, jwk = ""; + while ((ln = br.readLine()) != null) { + jwk += ln; + } + + conn.disconnect(); + + JSONParser parser = new JSONParser(); + JSONObject tokensJson = (JSONObject) parser.parse(jwk); + + JSONArray keys = (JSONArray) tokensJson.get("keys"); + + JSONObject keyJSONObject = (JSONObject) keys.get(0); + + String key = keyJSONObject.toJSONString(); + + PublicJsonWebKey pjwk = PublicJsonWebKey.Factory.newPublicJwk(key); + + JwtConsumer jwtConsumer = new JwtConsumerBuilder().setRequireExpirationTime() // Exige que o token tenha um + // tempo de validade + .setExpectedAudience(brasilCidadaoOpenIdConnectConfig.obterClientID()).setMaxFutureValidityInMinutes(60) // Testa se o tempo de validade do + // access token é inferior ou igual + // ao tempo máximo estipulado (Tempo + // padrão de 60 minutos) + .setAllowedClockSkewInSeconds(30) // Esta é uma boa prática. + .setRequireSubject() // Exige que o token tenha um Subject. + .setExpectedIssuer(brasilCidadaoOpenIdConnectConfig.obterURLBrasilCidadao() + "/") // Verifica a procedência do token. + .setVerificationKey(pjwk.getPublicKey()) // Verifica a assinatura com a public key fornecida. + .build(); // Cria a instância JwtConsumer. + + return jwtConsumer.processToClaims(token); + } + + } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/CadastroUsuarioService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/CadastroUsuarioService.java index 5307305..5566de8 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/CadastroUsuarioService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/CadastroUsuarioService.java @@ -5,13 +5,10 @@ */ package br.gov.planejamento.dipla.protocolo.services; -import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; -import br.gov.planejamento.dipla.protocolo.entities.Grupo; import br.gov.planejamento.dipla.protocolo.entities.Usuario; -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; import br.gov.planejamento.dipla.protocolo.mail.Mailer; -import br.gov.planejamento.dipla.protocolo.repositories.*; +import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; import br.gov.planejamento.dipla.protocolo.services.exeptions.EmailUsuarioJaCadastradoException; import br.gov.planejamento.dipla.protocolo.services.exeptions.SenhaObrigatoriaUsuarioException; import org.springframework.beans.factory.annotation.Autowired; @@ -22,8 +19,6 @@ import org.springframework.util.StringUtils; import java.math.BigInteger; import java.security.SecureRandom; -import java.util.ArrayList; -import java.util.List; import java.util.Optional; /** @@ -105,7 +100,7 @@ public class CadastroUsuarioService { usuario.setSenha(senha); mailer.enviarNovaSenha(usuario); }else { - throw new RuntimeException("Usuário Cadastrado como Brasil Cidadão."); + throw new RuntimeException("Usuário Cadastrado com Login Único."); } }else{ throw new RuntimeException("Email não cadastrado."); diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoEmailService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoEmailService.java index 3695e7d..46abdfa 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoEmailService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoEmailService.java @@ -5,12 +5,8 @@ */ package br.gov.planejamento.dipla.protocolo.services; -import br.gov.planejamento.dipla.protocolo.entities.Configuracao; import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; -import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; -import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoService.java index 32470f7..2ff7368 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoService.java @@ -6,9 +6,7 @@ package br.gov.planejamento.dipla.protocolo.services; import br.gov.planejamento.dipla.protocolo.entities.Configuracao; -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; -import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/EnviarProtocoloService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/EnviarProtocoloService.java index c55273c..ba31d5e 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/EnviarProtocoloService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/EnviarProtocoloService.java @@ -1,5 +1,6 @@ package br.gov.planejamento.dipla.protocolo.services; +import Sei.RetornoConsultaProcedimento; import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; import br.gov.planejamento.dipla.protocolo.entities.Protocolo; @@ -13,9 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; -import Sei.RetornoConsultaProcedimento; - -import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.Optional; @@ -56,13 +54,13 @@ public class EnviarProtocoloService { return Optional.of(retornoConsultaProcedimento.getLinkAcesso()); } - public void enviarSEI(Protocolo protocolo, String sei, String tipo) { + public void enviarSEI(Protocolo protocolo, String sei, String tipo, String idSei) { protocolo.setDataEnvio(new Date()); protocolo.setNupe("Processando..."); protocolo.setStatus(StatusEnum.PROCESSANDO); protocoloRepository.save(protocolo); logProtocoloService.saveLog(protocolo,AcaoEnum.ALTERAR); - publisher.publishEvent(new AprovarProtocoloEvent(this, protocolo, logProtocoloService.recuperarUsuario(), sei, tipo)); + publisher.publishEvent(new AprovarProtocoloEvent(this, protocolo, logProtocoloService.recuperarUsuario(), sei, tipo, idSei)); } public void recusar(Protocolo protocolo) { diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/LogProtocoloService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/LogProtocoloService.java index 363045c..d575964 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/LogProtocoloService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/LogProtocoloService.java @@ -1,38 +1,12 @@ package br.gov.planejamento.dipla.protocolo.services; -import java.util.Date; -import java.util.List; -import java.util.Optional; - -import javax.persistence.Column; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Temporal; - +import br.gov.planejamento.dipla.protocolo.entities.*; +import br.gov.planejamento.dipla.protocolo.repositories.LogStatusRepository; +import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - -import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; -import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; -import br.gov.planejamento.dipla.protocolo.entities.Arquivos; -import br.gov.planejamento.dipla.protocolo.entities.EntidadeEnum; -import br.gov.planejamento.dipla.protocolo.entities.LogSistema; -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; -import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; -import br.gov.planejamento.dipla.protocolo.entities.Usuario; -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; -import br.gov.planejamento.dipla.protocolo.repositories.LogStatusRepository; -import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; -import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; -import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; /** * Created by dario on 29/09/17. */ diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/ProtocoloFlagService.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/ProtocoloFlagService.java index 6a6e27d..c3b4fde 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/ProtocoloFlagService.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/ProtocoloFlagService.java @@ -1,7 +1,8 @@ package br.gov.planejamento.dipla.protocolo.services; -import java.util.Optional; import br.gov.planejamento.dipla.protocolo.entities.Protocolo; + +import java.util.Optional; /** * Created by dario on 29/09/17. */ diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/event/AprovarProtocoloEvent.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/event/AprovarProtocoloEvent.java index b3bdb77..4124e83 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/event/AprovarProtocoloEvent.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/event/AprovarProtocoloEvent.java @@ -11,12 +11,14 @@ public class AprovarProtocoloEvent extends ApplicationEvent { private Long idUsuario; private String sei; private String tipo; + private String idSei; - public AprovarProtocoloEvent(Object source, Protocolo protocolo, Long idUsuario, String sei, String tipo) { + public AprovarProtocoloEvent(Object source, Protocolo protocolo, Long idUsuario, String sei, String tipo, String idSei) { super(source); this.protocolo = protocolo; this.idUsuario = idUsuario; this.sei = sei; this.tipo = tipo; + this.idSei = idSei; } } diff --git a/src/main/java/br/gov/planejamento/dipla/protocolo/services/event/listener/AprovarProtocoloListener.java b/src/main/java/br/gov/planejamento/dipla/protocolo/services/event/listener/AprovarProtocoloListener.java index 126e64d..03b5954 100644 --- a/src/main/java/br/gov/planejamento/dipla/protocolo/services/event/listener/AprovarProtocoloListener.java +++ b/src/main/java/br/gov/planejamento/dipla/protocolo/services/event/listener/AprovarProtocoloListener.java @@ -14,6 +14,10 @@ public class AprovarProtocoloListener implements ApplicationListenerPREZADO(A),

\r\n


SEJA BEM VINDO AO SISTEMA DE PROTOCOLIZAÇÃO ELETRÔNICA DE DOCUMENTOS DO MINISTÉRIO DO PLANEJAMENTO, DESENVOLVIMENTO E GESTÃO. PARA CONCLUIR O SEU CADASTRO, ACESSE O LINK  {$METADADO_USUARIO_URLCONFIRMACAO}

\r\n


ESSE PASSO É IMPORTANTE PARA VALIDARMOS TODOS OS USUÁRIOS.

'),(2,'EMAIL_CONTEUDO_CONSOLIDACAO','

PREZADO(A),

\r\n


SEJA BEM VINDO AO SISTEMA DE PROTOCOLIZAÇÃO ELETRÔNICA DE DOCUMENTOS DO MINISTÉRIO DO PLANEJAMENTO, DESENVOLVIMENTO E GESTÃO. PARA CONCLUIR O SEU CADASTRO, ACESSE O LINK  {$METADADO_USUARIO_URLCONSILIACAO}

\r\n


ESSE PASSO É IMPORTANTE PARA VALIDARMOS TODOS OS USUÁRIOS.

'),(3,'EMAIL_CONTEUDO_ERRO_SEI','

Erro ao enviar o protocolo Nº {$METADADO_PROTOCOLO_NUMERO}para o SEI

\r\n

Detalhe do Erro: {$METADADO_MSGERRO}.

'),(4,'EMAIL_CONTEUDO_ESQUECI_SENHA','

Recebemos uma solicitação de recuperação de senha, por isso estamos enviando uma nova para que você possa continuar usando nosso sistema de protocolo.

\r\n

Sua nova senha é: {$METADADO_USUARIO_NOVASENHA}

'),(5,'EMAIL_CONTEUDO_PROTOCOLO','

Número do Protocolo Provisório: {$METADADO_PROTOCOLO_NUMERO}

\r\n

Número Único de Protocolo: Será enviado para o(s) e-mail(s) cadastrado(s) no prazo máximo de vinte e quatro horas, contadas do recebimento, salvo quando este ocorrer às sextas-feiras, véspera de feriados ou pontos facultativos ou haja restrição técnica da unidade, devidamente fundamentada.

\r\n

Data: {$METADADO_PROTOCOLO_DATAHORAFORMADATA}

\r\n

Nome: {$METADADO_PROTOCOLO_USUARIONOME}

\r\n

E-mail: {$METADADO_PROTOCOLO_USUARIOEMAIL}

\r\n

E-mail: {$METADADO_PROTOCOLO_EMAIL1}

\r\n

E-mail: {$METADADO_PROTOCOLO_EMAIL2}

\r\n

Referência ao protocolo anterior: {$METADADO_PROTOCOLO_NUMEROANTERIOR}

\r\n

{$METADADO_PROTOCOLO_TABELAARQUIVO}

'),(6,'EMAIL_CONTEUDO_NEGADO','

Número do Protocolo Provisório: {$METADADO_PROTOCOLO_NUMERO}

\r\n

Prezado (a){$METADADO_PROTOCOLO_USUARIONOME},
Esta é uma mensagem automática e não deve ser respondida.
Seu protocolo não foi aceito pelo motivo abaixo especificado:
{$METADADO_PROTOCOLO_OBSERVACAO}

\r\n

Nome:{$METADADO_PROTOCOLO_USUARIONOME}

\r\n

E-mail:{$METADADO_PROTOCOLO_USUARIOEMAIL}

\r\n

E-mail:{$METADADO_PROTOCOLO_EMAIL1}

\r\n

E-mail:{$METADADO_PROTOCOLO_EMAIL2}

'),(7,'EMAIL_CONTEUDO_RECEBIMENTO_SEI','

Número Único de Protocolo:{$METADADO_PROTOCOLO_NUPE}

\r\n

Prezado (a) usuário (a), Esta é uma mensagem automática e não deve ser respondida. Informamos que seu protocolo foi entregue ao setor responsável e que foi gerado o NUP:{$METADADO_PROTOCOLO_NUPE}. Quaisquer divergências das informações prestadas ou problemas nos arquivos anexados serão comunicados ao (à) senhor (a) através dos e-mails informados em seu cadastro. Informações referentes à tramitação de seu processo serão atualizadas até 24 horas e estarão acessíveis no sítio do protocolo integrado do Governo Federal, disponível em {$METADADO_PROTOCOLO_LINKSEI}

\r\n

Data:{$METADADO_PROTOCOLO_DATAHORAFORMADATA}}.

\r\n

Nome:{$METADADO_PROTOCOLO_USUARIONOME}

\r\n

E-mail:{$METADADO_PROTOCOLO_USUARIOEMAIL}

\r\n

E-mail:{$METADADO_PROTOCOLO_EMAIL1}

\r\n

E-mail:{$METADADO_PROTOCOLO_EMAIL2}

\r\n

Referência ao protocolo anterior:

\r\n

{$METADADO_PROTOCOLO_TABELAARQUIVO}

'),(8,'EMAIL_CABECALHO','

{$METADADO_LOGO_EMAIL}

Ministério do Planejamento, Desenvolvimento e Gestão 
Protocolo Central 
Esplanada dos Ministérios Bloco K, Térreo, sala T 28, CEP 70.040-906 – Brasília-DF 
protocolo@planejamento.gov.br 
(61) 2020-5195/5580 

'),(9,'EMAIL_RODAPE','

 

\r

“Por gentileza, responda nossa pesquisa de satisfação do Sistema de Protocolo Eletrônico. Sua contribuição é de extrema valia.  Clique aqui

\r

 

\r

São de exclusiva responsabilidade do usuário: A conformidade entre os dados informados e os documentos; A conservação dos originais em papel de documentos digitalizados até que decaia o direito de revisão dos atos praticados no processo, para que, caso solicitado, sejam apresentados para qualquer tipo de conferência; A observação de que os atos processuais se consideram realizados no dia e hora do recebimento pelo SEI, considerando-se tempestivos os praticados até 23h59min59s do último dia do prazo, considerando sempre o horário oficial de Brasília, independente do fuso horário em que se encontre.  

'),(10,'EMAIL_CONTEUDO_DESBLOQUEIO','

PREZADO(A),

\r\n


Usurio bloqueado, favor acessar o LINK {$METADADO_USUARIO_URLDESBLOQUEIO}

\r\n


para desbloqueiar o usurio.

'); -/*!40000 ALTER TABLE `configuracao_email` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `expedicao` --- - -DROP TABLE IF EXISTS `expedicao`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `expedicao` ( - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, - `numero_processo` varchar(100) NOT NULL, - `data_expedicao` datetime NOT NULL, - `usuario_codigo` bigint(20) NOT NULL, - `status_expedicao` varchar(45) DEFAULT NULL, - PRIMARY KEY (`codigo`), - KEY `fk_expedicao_usuario1_idx` (`usuario_codigo`), - CONSTRAINT `fk_expedicao_usuario1` FOREIGN KEY (`usuario_codigo`) REFERENCES `usuario` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `grupo` --- - -DROP TABLE IF EXISTS `grupo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grupo` ( - `codigo` bigint(20) NOT NULL, - `nome` varchar(50) NOT NULL, - PRIMARY KEY (`codigo`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `grupo` --- - -LOCK TABLES `grupo` WRITE; -/*!40000 ALTER TABLE `grupo` DISABLE KEYS */; -INSERT INTO `grupo` VALUES (1,'Administrador'),(2,'Protocolo'),(3,'Brasil Cidadao'),(4,'Usuario Expedidor'); -/*!40000 ALTER TABLE `grupo` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `grupo_permissao` --- - -DROP TABLE IF EXISTS `grupo_permissao`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grupo_permissao` ( - `codigo_grupo` bigint(20) NOT NULL, - `codigo_permissao` bigint(20) NOT NULL, - PRIMARY KEY (`codigo_grupo`,`codigo_permissao`), - KEY `codigo_permissao` (`codigo_permissao`), - CONSTRAINT `grupo_permissao_ibfk_1` FOREIGN KEY (`codigo_grupo`) REFERENCES `grupo` (`codigo`), - CONSTRAINT `grupo_permissao_ibfk_2` FOREIGN KEY (`codigo_permissao`) REFERENCES `permissao` (`codigo`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `grupo_permissao` --- - -LOCK TABLES `grupo_permissao` WRITE; -/*!40000 ALTER TABLE `grupo_permissao` DISABLE KEYS */; -INSERT INTO `grupo_permissao` VALUES (1,1),(2,2),(3,3),(4,4); -/*!40000 ALTER TABLE `grupo_permissao` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `link_expedicao_sei` --- - -DROP TABLE IF EXISTS `link_expedicao_sei`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `link_expedicao_sei` ( - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, - `link` varchar(255) NOT NULL, - `data` datetime NOT NULL, - `status` varchar(10) NOT NULL, - `usuario_codigo` bigint(20) NOT NULL, - `expedicao_codigo` bigint(20) NOT NULL, - PRIMARY KEY (`codigo`), - KEY `fk_link_expedicao_sei_usuario1_idx` (`usuario_codigo`), - KEY `fk_link_expedicao_sei_expedicao1_idx` (`expedicao_codigo`), - CONSTRAINT `fk_link_expedicao_sei_expedicao1` FOREIGN KEY (`expedicao_codigo`) REFERENCES `expedicao` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT `fk_link_expedicao_sei_usuario1` FOREIGN KEY (`usuario_codigo`) REFERENCES `usuario` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `log_sistema` --- - -DROP TABLE IF EXISTS `log_sistema`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `log_sistema` ( - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, - `codigo_entidade` bigint(20) NOT NULL, - `entidade` varchar(45) NOT NULL, - `acao` varchar(45) NOT NULL, - `antes` text, - `depois` text, - `data_hora` datetime NOT NULL, - `codigo_usuario` bigint(20) DEFAULT NULL, - PRIMARY KEY (`codigo`) -) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `login_attempt` --- - -DROP TABLE IF EXISTS `login_attempt`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `login_attempt` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `key` varchar(255) NOT NULL, - `amount` int(2) NOT NULL DEFAULT '1', - `reset_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - KEY `amount` (`amount`), - KEY `reset_at` (`reset_at`), - KEY `key` (`key`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `metadado` --- - -DROP TABLE IF EXISTS `metadado`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `metadado` ( - `codigo` int(11) NOT NULL, - `nome` varchar(45) NOT NULL, - `valor` text, - `descricao` text, - PRIMARY KEY (`codigo`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `metadado` --- - -LOCK TABLES `metadado` WRITE; -/*!40000 ALTER TABLE `metadado` DISABLE KEYS */; -INSERT INTO `metadado` VALUES (1,'METADADO_LOGO_EMAIL','','Imagem do logtipo do ministrio.'),(2,'METADADO_MSGERRO','Erro no protocolo.','Mensagem de erro ao enviar ao SEI.'),(3,'METADADO_PROTOCOLO_DATAHORAFORMADATA','','Data de criao do protocolo.'),(4,'METADADO_PROTOCOLO_EMAIL1','E-mail: protocolo.email1','E-mail 1 de interessado.'),(5,'METADADO_PROTOCOLO_EMAIL2','E-mail: protocolo.emails','E-mail 2 de interessado.'),(6,'METADADO_PROTOCOLO_LINKSEI','Link protocolo integrado.','Link de acesso ao protocolo no SEI.'),(7,'METADADO_PROTOCOLO_NUMERO','Nmero do Protocolo Provisrio: 123ads31232asfd','Numero do protocolo.'),(8,'METADADO_PROTOCOLO_NUMEROANTERIOR','Referncia ao protocolo anterior: 121345461','Numero de protocolo anterior.'),(9,'METADADO_PROTOCOLO_NUPE','protocolo.nupe','Numero nico do protocolo no SEI.'),(10,'METADADO_PROTOCOLO_OBSERVACAO','observacao','Obsersavao cadastrada no cancelamento do protocolo.'),(11,'METADADO_PROTOCOLO_TABELAARQUIVO','\n \n \n \n \n \n \n \n \n \n \n \n \n
\n Descrio do documento\n \n Arquivo\n
${arquivo.tipoDocumento.descricao}${arquivo.nomeOriginal}
','Tabela com a lista de arquivos do protocolo.'),(12,'METADADO_PROTOCOLO_USUARIOEMAIL','E-mail: protocolo.email1','E-mail do usurio que cadastrou o protocolo.'),(13,'METADADO_PROTOCOLO_USUARIONOME','$ usuario nome','Nome do usurio que cadastrou o protocolo.'),(14,'METADADO_USUARIO_NOVASENHA','Sua nova senha : 5as4f56as4f5as4','Nova senha gerada para o usurio.'),(15,'METADADO_USUARIO_URLCONFIRMACAO','CONFIRMAR MEU CADASTRO.','Url para ativao do usurio.'),(16,'METADADO_USUARIO_URLCONSILIACAO','CONFIRMAR MEU CADASTRO.','Url para consiliao de usurio protocolo com usurio brasil cidado.'),(17,'METADADO_USUARIO_URLDESBLOQUEIO','Link de desbloqueio',NULL); -/*!40000 ALTER TABLE `metadado` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `metadado_email` --- - -DROP TABLE IF EXISTS `metadado_email`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `metadado_email` ( - `codigo_email` int(11) NOT NULL, - `codigo_metadado` int(11) NOT NULL, - PRIMARY KEY (`codigo_metadado`,`codigo_email`), - KEY `fk_metadado_email_configuracao_email1_idx` (`codigo_email`), - CONSTRAINT `metadado_email_fk1` FOREIGN KEY (`codigo_email`) REFERENCES `configuracao_email` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT `metadado_email_fk2` FOREIGN KEY (`codigo_metadado`) REFERENCES `metadado` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `metadado_email` --- - -LOCK TABLES `metadado_email` WRITE; -/*!40000 ALTER TABLE `metadado_email` DISABLE KEYS */; -INSERT INTO `metadado_email` VALUES (1,15),(2,16),(3,2),(3,7),(4,14),(5,3),(5,4),(5,5),(5,7),(5,8),(5,10),(5,11),(5,12),(5,13),(6,3),(6,4),(6,5),(6,7),(6,10),(6,12),(6,13),(7,3),(7,4),(7,5),(7,6),(7,7),(7,8),(7,9),(7,10),(7,11),(7,12),(7,13),(8,1),(9,1),(10,17); -/*!40000 ALTER TABLE `metadado_email` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `permissao` --- - -DROP TABLE IF EXISTS `permissao`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `permissao` ( - `codigo` bigint(20) NOT NULL, - `nome` varchar(50) NOT NULL, - PRIMARY KEY (`codigo`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `permissao` --- - -LOCK TABLES `permissao` WRITE; -/*!40000 ALTER TABLE `permissao` DISABLE KEYS */; -INSERT INTO `permissao` VALUES (1,'ROLE_CADASTRO'),(2,'ROLE_PROTOCOLO'),(3,'ROLE_BRASILCIDADAO'),(4,'ROLE_EXPEDIDOR'); -/*!40000 ALTER TABLE `permissao` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `protocolo` --- - -DROP TABLE IF EXISTS `protocolo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `protocolo` ( - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, - `numero` varchar(50) NOT NULL, - `data_hora` datetime DEFAULT NULL, - `codigo_usuario` bigint(20) NOT NULL, - `status` varchar(20) NOT NULL DEFAULT 'PENDENTE', - `email1` varchar(50) DEFAULT NULL, - `email2` varchar(50) DEFAULT NULL, - `observacao` text, - `nupe` varchar(20) DEFAULT NULL, - `data_envio` datetime DEFAULT NULL, - `erro_ws` text, - `nr_protocolo_anterior` varchar(50) DEFAULT NULL, - `id_unidade` bigint(20) DEFAULT NULL, - `linksei` varchar(255) DEFAULT NULL, - PRIMARY KEY (`codigo`), - KEY `codigo_usuario` (`codigo_usuario`), - CONSTRAINT `protocolo_ibfk_1` FOREIGN KEY (`codigo_usuario`) REFERENCES `usuario` (`codigo`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `schema_version` --- - -DROP TABLE IF EXISTS `schema_version`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `schema_version` ( - `installed_rank` int(11) NOT NULL, - `version` varchar(50) DEFAULT NULL, - `description` varchar(200) NOT NULL, - `type` varchar(20) NOT NULL, - `script` varchar(1000) NOT NULL, - `checksum` int(11) DEFAULT NULL, - `installed_by` varchar(100) NOT NULL, - `installed_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `execution_time` int(11) NOT NULL, - `success` tinyint(1) NOT NULL, - PRIMARY KEY (`installed_rank`), - KEY `schema_version_s_idx` (`success`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `schema_version` --- - -LOCK TABLES `schema_version` WRITE; -/*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; -INSERT INTO `schema_version` VALUES (1,'01','Script inicial','SQL','V01__Start.sql',107793004,'root','2018-10-26 14:48:18',1610,1); -/*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `temp_arquivo` --- - -DROP TABLE IF EXISTS `temp_arquivo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `temp_arquivo` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `nome` varchar(255) CHARACTER SET latin1 NOT NULL, - `pagina` varchar(10) CHARACTER SET latin1 NOT NULL, - `temp_desc_arquivo_idarquivo` varchar(2) CHARACTER SET latin1 NOT NULL, - `temp_desc_arquivo_token` varchar(6) CHARACTER SET latin1 NOT NULL, - PRIMARY KEY (`id`), - KEY `fk_temp_arquivo_temp_desc_arquivo1_idx` (`temp_desc_arquivo_idarquivo`,`temp_desc_arquivo_token`), - CONSTRAINT `fk_temp_arquivo_temp_desc_arquivo1` FOREIGN KEY (`temp_desc_arquivo_idarquivo`, `temp_desc_arquivo_token`) REFERENCES `temp_desc_arquivo` (`idarquivo`, `token`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `temp_desc_arquivo` --- - -DROP TABLE IF EXISTS `temp_desc_arquivo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `temp_desc_arquivo` ( - `tipo` varchar(45) CHARACTER SET latin1 NOT NULL, - `qtd_paginas` varchar(10) CHARACTER SET latin1 NOT NULL, - `temp_protocolo_token` varchar(6) CHARACTER SET latin1 NOT NULL, - `idarquivo` varchar(2) CHARACTER SET latin1 NOT NULL, - `token` varchar(6) CHARACTER SET latin1 NOT NULL, - `descricao` varchar(45) CHARACTER SET latin1 NOT NULL, - PRIMARY KEY (`idarquivo`,`token`), - KEY `fk_temp_desc_arquivo_temp_protocolo1_idx` (`temp_protocolo_token`), - CONSTRAINT `fk_temp_desc_arquivo_temp_protocolo1` FOREIGN KEY (`temp_protocolo_token`) REFERENCES `temp_protocolo` (`token`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `temp_protocolo` --- - -DROP TABLE IF EXISTS `temp_protocolo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `temp_protocolo` ( - `token` varchar(6) CHARACTER SET latin1 NOT NULL, - `email1` varchar(100) CHARACTER SET latin1 DEFAULT NULL, - `email2` varchar(100) CHARACTER SET big5 DEFAULT NULL, - `nr_protocolo_anterior` varchar(100) CHARACTER SET latin1 DEFAULT NULL, - `usuario_codigo` bigint(20) NOT NULL, - PRIMARY KEY (`token`), - KEY `fk_temp_protocolo_usuario1_idx` (`usuario_codigo`), - CONSTRAINT `fk_temp_protocolo_usuario1` FOREIGN KEY (`usuario_codigo`) REFERENCES `usuario` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `tipo_documento` --- - -DROP TABLE IF EXISTS `tipo_documento`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `tipo_documento` ( - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, - `descricao` varchar(50) NOT NULL, - `codigo_sei` varchar(45) NOT NULL, - `ativo` tinyint(4) NOT NULL, - PRIMARY KEY (`codigo`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `tipo_documento` --- - -LOCK TABLES `tipo_documento` WRITE; -/*!40000 ALTER TABLE `tipo_documento` DISABLE KEYS */; -INSERT INTO `tipo_documento` VALUES (14,'Requerimento','238',1),(15,'Complemento','651',1); -/*!40000 ALTER TABLE `tipo_documento` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `usuario` --- - -DROP TABLE IF EXISTS `usuario`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `usuario` ( - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, - `nome` varchar(50) NOT NULL, - `email` varchar(50) NOT NULL, - `senha` varchar(120) NOT NULL, - `telefone` varchar(15) DEFAULT NULL, - `ativo` tinyint(1) DEFAULT '1', - `token` varchar(255) NOT NULL DEFAULT '0', - `nome_social` varchar(50) DEFAULT NULL, - `status_expedicao` tinyint(1) DEFAULT '0', - `listexpedidor` varchar(30) DEFAULT NULL, - `unidade` varchar(12) DEFAULT NULL, - PRIMARY KEY (`codigo`), - UNIQUE KEY `email` (`email`) -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `usuario` --- - -LOCK TABLES `usuario` WRITE; -/*!40000 ALTER TABLE `usuario` DISABLE KEYS */; -INSERT INTO `usuario` VALUES (1,'Admin','admin@admin.com','$2a$10$g.wT4R0Wnfel1jc/k84OXuwZE02BlACSLfWy6TycGPvvEKvIm86SG',NULL,1,'0',NULL,0,'LISTA1',NULL),(2,'Drio','dario.santos.bsb@gmail.com','$2a$10$kGXHZvmTfzS3.uAn7L5q1e6LXrQAhA29qFG0/d4jIUA684i8EJtNC','(99) 99999-9999',0,'0','',0,'selecionadosUsuarioExpedicao',NULL),(6,'FABIO HENRIQUE MAXIMIANO','dario.santos@redes.unb.br','$2a$10$Wv4zAd2QnmS.sFtvQf2xFuJZBCqkfyKeqI8lw3yEht/E6IUN9WgBm','(00)00000-0000',1,'0',NULL,1,'selecionadosUsuarioExpedicao',NULL),(7,'EXPEDIDOR','dariobsb@hotmail.com','$2a$10$K27B2DRGIjZAZxNXWzhkc./JFAQM98LJtzZbbGLm5Y6H0eSCDZTLO','(61) 99999-9999',1,'0','EXPED',0,'0',NULL),(8,'EXP@EXP.COM','exp@exp.com','$2a$10$sXtxt6ZrHbh8048pAppe8ubWUMJosr7wBVYsnMaIcpPAXM6SMT/1W','(11) 11111-1111',1,'0','EXP@EXP.COM',NULL,NULL,'110001972'),(9,'JOSE','jose@jose.com','$2a$10$BqBmIANciq4iZrPzJSXq8uTk5i/jZ8V0eFLetVUZohrLXEaRrznYi','(11) 2255-3366',1,'0','',NULL,NULL,'110001896'); -/*!40000 ALTER TABLE `usuario` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `usuario_brasil_cidadao` --- - -DROP TABLE IF EXISTS `usuario_brasil_cidadao`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `usuario_brasil_cidadao` ( - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, - `cpf` varchar(15) NOT NULL, - `codigo_usuario` bigint(20) NOT NULL, - `token` text, - `ativo` tinyint(4) NOT NULL, - `email` varchar(50) DEFAULT NULL, - PRIMARY KEY (`codigo`), - KEY `usuario_brasil_cidadao_fki_1` (`codigo_usuario`), - CONSTRAINT `usuario_brasil_cidadao_ibfk_1` FOREIGN KEY (`codigo_usuario`) REFERENCES `usuario` (`codigo`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `usuario_brasil_cidadao` --- - -LOCK TABLES `usuario_brasil_cidadao` WRITE; -/*!40000 ALTER TABLE `usuario_brasil_cidadao` DISABLE KEYS */; -INSERT INTO `usuario_brasil_cidadao` VALUES (1,'29752304869',6,'eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIyOTc1MjMwNDg2OSIsImF6cCI6IjUxNmE5YjU3LWQwMjItNDg0My1hNzkyLTkzYjRkYzk1NjIyYiIsInNjb3BlIjpbImRhZG9zX2JyYXNpbF9jaWRhZGFvIiwib3BlbmlkIl0sIm5hbWUiOiJGQUJJTyBIRU5SSVFVRSBNQVhJTUlBTk8iLCJpc3MiOiJodHRwczpcL1wvdGVzdGVzY3AtZWNpZGFkYW8uZXN0YWxlaXJvLnNlcnByby5nb3YuYnJcL3NjcFwvIiwiZXhwIjoxNTQwNTg0NDY1LCJpYXQiOjE1NDA1ODA4NjYsImF1dGhfZmFjdG9yIjoiQ1BGX1NFTkhBIiwianRpIjoiZjM2MjQ0N2YtMjQxYi00MGJkLWFiNjEtMTQ5ODc3NjJjYWZmIn0.Ra8uMYFaxwXKhy3YG2Lu6HEC61hNVRW5bH2adk3oP3VgyC2wySvviXqz_Jd805Thl86SCVtWhr2csXWllBn0_gELW6BVAawePP7izaUef1Oohby9e7yluugMglvfqxQ8cRX0CZnprEflrS_SuWkvbW_ULxQ7clfSdJVkK0nkho9xgoQT133F-sCjjfPvg44jLqeNjbnVkRTtZwWBK14_pkDq90QLmZKryFwIstHuiVb-vTMdSMIbo4w3ppoT8UZaD8EXVoi_pAN8pXc8RLLi3gvGqxBvw71Zm18uJhf_bVkvlhClfwO-qK6oCxRTHMkBiFfUjpcLLuNS-GuSHS3AwQ',1,NULL); -/*!40000 ALTER TABLE `usuario_brasil_cidadao` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `usuario_grupo` --- - -DROP TABLE IF EXISTS `usuario_grupo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `usuario_grupo` ( - `codigo_usuario` bigint(20) NOT NULL, - `codigo_grupo` bigint(20) NOT NULL, - PRIMARY KEY (`codigo_usuario`,`codigo_grupo`), - KEY `codigo_grupo` (`codigo_grupo`), - CONSTRAINT `usuario_grupo_ibfk_1` FOREIGN KEY (`codigo_usuario`) REFERENCES `usuario` (`codigo`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `usuario_grupo` --- - -LOCK TABLES `usuario_grupo` WRITE; -/*!40000 ALTER TABLE `usuario_grupo` DISABLE KEYS */; -INSERT INTO `usuario_grupo` VALUES (1,1),(2,2),(6,3),(7,4),(8,4),(9,4); -/*!40000 ALTER TABLE `usuario_grupo` ENABLE KEYS */; -UNLOCK TABLES; - -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2018-11-19 13:32:46 diff --git a/src/main/resources/db/migration/V01__criar_tabela_usuario_grupo_permissao.sql b/src/main/resources/db/migration/V01__criar_tabela_usuario_grupo_permissao.sql new file mode 100644 index 0000000..e71175e --- /dev/null +++ b/src/main/resources/db/migration/V01__criar_tabela_usuario_grupo_permissao.sql @@ -0,0 +1,42 @@ +CREATE TABLE usuario ( + codigo BIGINT(20) PRIMARY KEY AUTO_INCREMENT, + nome VARCHAR(50) NOT NULL, + email VARCHAR(50) NOT NULL, + senha VARCHAR(120) NOT NULL, + ativo BOOLEAN DEFAULT true, + data_nascimento DATE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE grupo ( + codigo BIGINT(20) PRIMARY KEY, + nome VARCHAR(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE permissao ( + codigo BIGINT(20) PRIMARY KEY, + nome VARCHAR(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE usuario_grupo ( + codigo_usuario BIGINT(20) NOT NULL, + codigo_grupo BIGINT(20) NOT NULL, + PRIMARY KEY (codigo_usuario, codigo_grupo), + FOREIGN KEY (codigo_usuario) REFERENCES usuario(codigo), + FOREIGN KEY (codigo_grupo) REFERENCES grupo(codigo) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE grupo_permissao ( + codigo_grupo BIGINT(20) NOT NULL, + codigo_permissao BIGINT(20) NOT NULL, + PRIMARY KEY (codigo_grupo, codigo_permissao), + FOREIGN KEY (codigo_grupo) REFERENCES grupo(codigo), + FOREIGN KEY (codigo_permissao) REFERENCES permissao(codigo) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +ALTER TABLE usuario + MODIFY ativo BOOLEAN DEFAULT true NOT NULL; + +INSERT INTO grupo (codigo, nome) VALUES (1, 'Administrador'); +INSERT INTO grupo (codigo, nome) VALUES (2, 'Consulta'); + +INSERT INTO usuario (nome, email, senha, ativo) VALUES ('Admin', 'admin@admin.com', '$2a$10$g.wT4R0Wnfel1jc/k84OXuwZE02BlACSLfWy6TycGPvvEKvIm86SG', 1) \ No newline at end of file diff --git a/src/main/resources/db/migration/V02__inserir_permissoes_e_relacionar_usuario_admin.sql b/src/main/resources/db/migration/V02__inserir_permissoes_e_relacionar_usuario_admin.sql new file mode 100644 index 0000000..c93c5a4 --- /dev/null +++ b/src/main/resources/db/migration/V02__inserir_permissoes_e_relacionar_usuario_admin.sql @@ -0,0 +1,6 @@ +INSERT INTO permissao VALUES (1, 'ROLE_CADASTRO'); + +INSERT INTO grupo_permissao (codigo_grupo, codigo_permissao) VALUES (1, 1); + +INSERT INTO usuario_grupo (codigo_usuario, codigo_grupo) VALUES ( + (SELECT codigo FROM usuario WHERE email = 'admin@admin.com'), 1); \ No newline at end of file diff --git a/src/main/resources/db/migration/V03__criar_tabela_protocolo.sql b/src/main/resources/db/migration/V03__criar_tabela_protocolo.sql new file mode 100644 index 0000000..1ae6c08 --- /dev/null +++ b/src/main/resources/db/migration/V03__criar_tabela_protocolo.sql @@ -0,0 +1,13 @@ +CREATE TABLE protocolo ( + codigo BIGINT(20) PRIMARY KEY AUTO_INCREMENT, + nome VARCHAR(80) NOT NULL, + rg VARCHAR(20) NOT NULL, + cpf VARCHAR(11) NOT NULL, + telefone VARCHAR(20) NOT NULL, + email VARCHAR(50) NOT NULL, + descricao VARCHAR(120) NOT NULL, + numero VARCHAR(50) NOT NULL, + arquivo VARCHAR(100) NOT NULL, + content_type VARCHAR(100) NOT NULL, + data_hora DATETIME +) ENGINE=InnoDB DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/src/main/resources/db/migration/V04__criar_tabela_arquivos.sql b/src/main/resources/db/migration/V04__criar_tabela_arquivos.sql new file mode 100644 index 0000000..11865af --- /dev/null +++ b/src/main/resources/db/migration/V04__criar_tabela_arquivos.sql @@ -0,0 +1,12 @@ +ALTER TABLE protocolo DROP COLUMN arquivo; +ALTER TABLE protocolo DROP COLUMN content_type; + +CREATE TABLE arquivos ( + codigo BIGINT(20) PRIMARY KEY AUTO_INCREMENT, + codigo_protocolo BIGINT(20), + nome VARCHAR(100) NOT NULL, + nome_original VARCHAR(100) NOT NULL, + content_type VARCHAR(100) NOT NULL, + tamanho VARCHAR(10) NOT NULL, + FOREIGN KEY (codigo_protocolo) REFERENCES protocolo(codigo) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/src/main/resources/db/migration/V05__inserir_role_protocolo.sql b/src/main/resources/db/migration/V05__inserir_role_protocolo.sql new file mode 100644 index 0000000..115397b --- /dev/null +++ b/src/main/resources/db/migration/V05__inserir_role_protocolo.sql @@ -0,0 +1,3 @@ +INSERT INTO permissao VALUES (2, 'ROLE_PROTOCOLO'); + +INSERT INTO grupo_permissao (codigo_grupo, codigo_permissao) VALUES (2, 2); diff --git a/src/main/resources/db/migration/V06__remover_coluna_dt_nascimento_e_ativo_tabela_usuario.sql b/src/main/resources/db/migration/V06__remover_coluna_dt_nascimento_e_ativo_tabela_usuario.sql new file mode 100644 index 0000000..1dc7561 --- /dev/null +++ b/src/main/resources/db/migration/V06__remover_coluna_dt_nascimento_e_ativo_tabela_usuario.sql @@ -0,0 +1,2 @@ +ALTER TABLE usuario DROP COLUMN data_nascimento; +ALTER TABLE usuario DROP COLUMN ativo; diff --git a/src/main/resources/db/migration/V07__adicao_colula_telefone_tabela_usuario.sql b/src/main/resources/db/migration/V07__adicao_colula_telefone_tabela_usuario.sql new file mode 100644 index 0000000..f95d238 --- /dev/null +++ b/src/main/resources/db/migration/V07__adicao_colula_telefone_tabela_usuario.sql @@ -0,0 +1 @@ +ALTER TABLE usuario ADD COLUMN telefone VARCHAR(15); \ No newline at end of file diff --git a/src/main/resources/db/migration/V08__remover_colunas_nome_rg_cpf_telefone_email_tabela_protocolo.sql b/src/main/resources/db/migration/V08__remover_colunas_nome_rg_cpf_telefone_email_tabela_protocolo.sql new file mode 100644 index 0000000..8eb38be --- /dev/null +++ b/src/main/resources/db/migration/V08__remover_colunas_nome_rg_cpf_telefone_email_tabela_protocolo.sql @@ -0,0 +1,5 @@ +ALTER TABLE protocolo DROP COLUMN nome; +ALTER TABLE protocolo DROP COLUMN rg; +ALTER TABLE protocolo DROP COLUMN cpf; +ALTER TABLE protocolo DROP COLUMN telefone; +ALTER TABLE protocolo DROP COLUMN email; diff --git a/src/main/resources/db/migration/V09__adicionar_coluna_codigo_usuario_tabela_protocolo.sql b/src/main/resources/db/migration/V09__adicionar_coluna_codigo_usuario_tabela_protocolo.sql new file mode 100644 index 0000000..7ca367e --- /dev/null +++ b/src/main/resources/db/migration/V09__adicionar_coluna_codigo_usuario_tabela_protocolo.sql @@ -0,0 +1,3 @@ +ALTER TABLE protocolo ADD COLUMN codigo_usuario BIGINT(20); + +ALTER TABLE protocolo ADD FOREIGN KEY(codigo_usuario) REFERENCES usuario(codigo); diff --git a/src/main/resources/db/migration/V10__criar_tabela_tipo_documento.sql b/src/main/resources/db/migration/V10__criar_tabela_tipo_documento.sql new file mode 100644 index 0000000..a5562dd --- /dev/null +++ b/src/main/resources/db/migration/V10__criar_tabela_tipo_documento.sql @@ -0,0 +1,4 @@ +CREATE TABLE tipo_documento ( + codigo BIGINT(20) PRIMARY KEY AUTO_INCREMENT, + descricao VARCHAR(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/src/main/resources/db/migration/V11__adicionar_coluna_tipo_doc_e_desc_doc_tabela_arquivos.sql b/src/main/resources/db/migration/V11__adicionar_coluna_tipo_doc_e_desc_doc_tabela_arquivos.sql new file mode 100644 index 0000000..11b2183 --- /dev/null +++ b/src/main/resources/db/migration/V11__adicionar_coluna_tipo_doc_e_desc_doc_tabela_arquivos.sql @@ -0,0 +1,5 @@ +ALTER TABLE arquivos ADD COLUMN codigo_tipo_documento BIGINT(20); + +ALTER TABLE arquivos ADD FOREIGN KEY(codigo_tipo_documento) REFERENCES tipo_documento(codigo); + +ALTER TABLE arquivos ADD COLUMN descricao_documento VARCHAR(200); diff --git a/src/main/resources/db/migration/V12__retornando_coluna_ativo_tabela_usuario.sql b/src/main/resources/db/migration/V12__retornando_coluna_ativo_tabela_usuario.sql new file mode 100644 index 0000000..a689611 --- /dev/null +++ b/src/main/resources/db/migration/V12__retornando_coluna_ativo_tabela_usuario.sql @@ -0,0 +1 @@ +ALTER TABLE usuario ADD COLUMN ativo BOOLEAN DEFAULT true; diff --git a/src/main/resources/db/migration/V13__remover_coluna_descricao_tabela_protocolo.sql b/src/main/resources/db/migration/V13__remover_coluna_descricao_tabela_protocolo.sql new file mode 100644 index 0000000..08726a8 --- /dev/null +++ b/src/main/resources/db/migration/V13__remover_coluna_descricao_tabela_protocolo.sql @@ -0,0 +1 @@ +ALTER TABLE protocolo DROP COLUMN descricao; diff --git a/src/main/resources/db/migration/V14__adicionar_not_null_coluna_codigo_usuario_tabela_protocolo.sql b/src/main/resources/db/migration/V14__adicionar_not_null_coluna_codigo_usuario_tabela_protocolo.sql new file mode 100644 index 0000000..e6fd436 --- /dev/null +++ b/src/main/resources/db/migration/V14__adicionar_not_null_coluna_codigo_usuario_tabela_protocolo.sql @@ -0,0 +1 @@ +ALTER TABLE protocolo MODIFY codigo_usuario BIGINT(20) NOT NULL; diff --git a/src/main/resources/db/migration/V15__adicionar_coluna_status_tabela_protocolo.sql b/src/main/resources/db/migration/V15__adicionar_coluna_status_tabela_protocolo.sql new file mode 100644 index 0000000..7b4392f --- /dev/null +++ b/src/main/resources/db/migration/V15__adicionar_coluna_status_tabela_protocolo.sql @@ -0,0 +1 @@ +ALTER TABLE protocolo ADD COLUMN status VARCHAR(10) NOT NULL DEFAULT 'PENDENTE'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V16__adicionar_coluna_emails_secundarios_tabela_protocolo.sql b/src/main/resources/db/migration/V16__adicionar_coluna_emails_secundarios_tabela_protocolo.sql new file mode 100644 index 0000000..0a1d0e8 --- /dev/null +++ b/src/main/resources/db/migration/V16__adicionar_coluna_emails_secundarios_tabela_protocolo.sql @@ -0,0 +1,2 @@ +ALTER TABLE protocolo ADD COLUMN email1 VARCHAR(50); +ALTER TABLE protocolo ADD COLUMN email2 VARCHAR(50); diff --git a/src/main/resources/db/migration/V17__alterar_conteudo_grupo_de_consulta_protocolo.sql b/src/main/resources/db/migration/V17__alterar_conteudo_grupo_de_consulta_protocolo.sql new file mode 100644 index 0000000..c5b577c --- /dev/null +++ b/src/main/resources/db/migration/V17__alterar_conteudo_grupo_de_consulta_protocolo.sql @@ -0,0 +1 @@ +update grupo set nome = 'Protocolo' where codigo = 2; diff --git a/src/main/resources/db/migration/V18__adicionar_coluna_observacao_tabela_protocolo.sql b/src/main/resources/db/migration/V18__adicionar_coluna_observacao_tabela_protocolo.sql new file mode 100644 index 0000000..494d183 --- /dev/null +++ b/src/main/resources/db/migration/V18__adicionar_coluna_observacao_tabela_protocolo.sql @@ -0,0 +1 @@ +ALTER TABLE protocolo ADD COLUMN observacao VARCHAR(50); \ No newline at end of file diff --git a/src/main/resources/db/migration/V19__adicionar_coluna_nupe_e_data_envio_tabela_protocolo.sql b/src/main/resources/db/migration/V19__adicionar_coluna_nupe_e_data_envio_tabela_protocolo.sql new file mode 100644 index 0000000..7b91c43 --- /dev/null +++ b/src/main/resources/db/migration/V19__adicionar_coluna_nupe_e_data_envio_tabela_protocolo.sql @@ -0,0 +1,2 @@ +ALTER TABLE protocolo ADD COLUMN nupe VARCHAR(20); +ALTER TABLE protocolo ADD COLUMN data_envio DATETIME; \ No newline at end of file diff --git a/src/main/resources/db/migration/V20__tipo_documento_insert.sql b/src/main/resources/db/migration/V20__tipo_documento_insert.sql new file mode 100644 index 0000000..71320d9 --- /dev/null +++ b/src/main/resources/db/migration/V20__tipo_documento_insert.sql @@ -0,0 +1,13 @@ +INSERT INTO tipo_documento (descricao) VALUES ('APOLICE (RECEBIMENTO)'); +INSERT INTO tipo_documento (descricao) VALUES ('ATA (RECEBIMENTO)'); +INSERT INTO tipo_documento (descricao) VALUES ('BOLETIM'); +INSERT INTO tipo_documento (descricao) VALUES ('BOLETO (RECEBIMENTO)'); +INSERT INTO tipo_documento (descricao) VALUES ('CARTA (RECEBIMENTO)'); +INSERT INTO tipo_documento (descricao) VALUES ('CARTA CIRCULAR (RECEBIMENTO)'); +INSERT INTO tipo_documento (descricao) VALUES ('CARTA CIRCULAR CONJUNTA (RECEBIMENTO)'); +INSERT INTO tipo_documento (descricao) VALUES ('COMUNICAÇÃO EXTERNA'); +INSERT INTO tipo_documento (descricao) VALUES ('CONVITE'); +INSERT INTO tipo_documento (descricao) VALUES ('CURRICULUM VITAE'); +INSERT INTO tipo_documento (descricao) VALUES ('DECLARAÇÃO (RECEBIMENTO)'); +INSERT INTO tipo_documento (descricao) VALUES ('OFÍCIO (RECEBIMENTO)'); +INSERT INTO tipo_documento (descricao) VALUES ('Meu tipo'); \ No newline at end of file diff --git a/src/main/resources/db/migration/V21__remover_meu_tipo_documento.sql b/src/main/resources/db/migration/V21__remover_meu_tipo_documento.sql new file mode 100644 index 0000000..02fd886 --- /dev/null +++ b/src/main/resources/db/migration/V21__remover_meu_tipo_documento.sql @@ -0,0 +1 @@ +DELETE FROM tipo_documento WHERE descricao = 'Meu tipo'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V22__alterar_tamanho_campo_nome_tabela_arquivo.sql b/src/main/resources/db/migration/V22__alterar_tamanho_campo_nome_tabela_arquivo.sql new file mode 100644 index 0000000..b8293ed --- /dev/null +++ b/src/main/resources/db/migration/V22__alterar_tamanho_campo_nome_tabela_arquivo.sql @@ -0,0 +1 @@ +ALTER TABLE arquivos MODIFY nome VARCHAR(250) NOT NULL; \ No newline at end of file diff --git a/src/main/resources/db/migration/V23__alterar_tamanho_campo_nome_original_tabela_arquivo.sql b/src/main/resources/db/migration/V23__alterar_tamanho_campo_nome_original_tabela_arquivo.sql new file mode 100644 index 0000000..deca243 --- /dev/null +++ b/src/main/resources/db/migration/V23__alterar_tamanho_campo_nome_original_tabela_arquivo.sql @@ -0,0 +1 @@ +ALTER TABLE arquivos MODIFY nome VARCHAR(200) NOT NULL; \ No newline at end of file diff --git a/src/main/resources/db/migration/V24__adicionar_coluna_nr_protocolo_anterior_tabela_protocolo.sql b/src/main/resources/db/migration/V24__adicionar_coluna_nr_protocolo_anterior_tabela_protocolo.sql new file mode 100644 index 0000000..f90e67e --- /dev/null +++ b/src/main/resources/db/migration/V24__adicionar_coluna_nr_protocolo_anterior_tabela_protocolo.sql @@ -0,0 +1 @@ +ALTER TABLE protocolo ADD COLUMN nr_protocolo_anterior VARCHAR(50); \ No newline at end of file diff --git a/src/main/resources/db/migration/V25__adicionar_coluna_id_unidade_tabela_protocolo.sql b/src/main/resources/db/migration/V25__adicionar_coluna_id_unidade_tabela_protocolo.sql new file mode 100644 index 0000000..de2900d --- /dev/null +++ b/src/main/resources/db/migration/V25__adicionar_coluna_id_unidade_tabela_protocolo.sql @@ -0,0 +1 @@ +ALTER TABLE protocolo ADD COLUMN id_unidade BIGINT(20); \ No newline at end of file diff --git a/src/main/resources/db/migration/V26__alterar_tamanho_campo_status_tabela_protocolo.sql b/src/main/resources/db/migration/V26__alterar_tamanho_campo_status_tabela_protocolo.sql new file mode 100644 index 0000000..0752aa4 --- /dev/null +++ b/src/main/resources/db/migration/V26__alterar_tamanho_campo_status_tabela_protocolo.sql @@ -0,0 +1 @@ +ALTER TABLE protocolo MODIFY status VARCHAR(20) NOT NULL DEFAULT 'PENDENTE'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V27__alterar_tamanho_campo_ observacao _protocolo.sql b/src/main/resources/db/migration/V27__alterar_tamanho_campo_ observacao _protocolo.sql new file mode 100644 index 0000000..7fa523d --- /dev/null +++ b/src/main/resources/db/migration/V27__alterar_tamanho_campo_ observacao _protocolo.sql @@ -0,0 +1 @@ + ALTER TABLE `protocolo` CHANGE `observacao` `observacao` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; \ No newline at end of file diff --git a/src/main/resources/db/migration/V28__alterar_tabela_tipodocumento_com_campo_codigo_sei_e _campo_ativo.sql b/src/main/resources/db/migration/V28__alterar_tabela_tipodocumento_com_campo_codigo_sei_e _campo_ativo.sql new file mode 100644 index 0000000..b19d5ce --- /dev/null +++ b/src/main/resources/db/migration/V28__alterar_tabela_tipodocumento_com_campo_codigo_sei_e _campo_ativo.sql @@ -0,0 +1,3 @@ +ALTER TABLE `tipo_documento` + ADD `codigo_sei` VARCHAR(45) NOT NULL AFTER `descricao`, + ADD `ativo` TINYINT NOT NULL AFTER `codigo_sei`; \ No newline at end of file diff --git a/src/main/resources/db/migration/V29__limpa_as_tabelas_arquivos_protocolo_e_tipodocumento.sql b/src/main/resources/db/migration/V29__limpa_as_tabelas_arquivos_protocolo_e_tipodocumento.sql new file mode 100644 index 0000000..38d1e64 --- /dev/null +++ b/src/main/resources/db/migration/V29__limpa_as_tabelas_arquivos_protocolo_e_tipodocumento.sql @@ -0,0 +1,11 @@ +SET sql_safe_updates=0; + +DELETE FROM arquivos; + +DELETE FROM protocolo; + +DELETE FROM tipo_documento; + +INSERT INTO tipo_documento (descricao, codigo_sei, ativo) values ('Requerimento', '238', 1); + +INSERT INTO tipo_documento (descricao, codigo_sei, ativo) values ('Complemento', '651', 1); \ No newline at end of file diff --git a/src/main/resources/db/migration/V30__tabela_usuario_estrutura_campo_email_para_unico.sql b/src/main/resources/db/migration/V30__tabela_usuario_estrutura_campo_email_para_unico.sql new file mode 100644 index 0000000..da61728 --- /dev/null +++ b/src/main/resources/db/migration/V30__tabela_usuario_estrutura_campo_email_para_unico.sql @@ -0,0 +1 @@ +ALTER TABLE usuario ADD UNIQUE(`email`); \ No newline at end of file diff --git a/src/main/resources/db/migration/V31__tabela_usuario_estrutura_campo_token_mobile.sql b/src/main/resources/db/migration/V31__tabela_usuario_estrutura_campo_token_mobile.sql new file mode 100644 index 0000000..6d2b9dc --- /dev/null +++ b/src/main/resources/db/migration/V31__tabela_usuario_estrutura_campo_token_mobile.sql @@ -0,0 +1,2 @@ +ALTER TABLE `usuario` + ADD COLUMN `token` VARCHAR(255) NOT NULL DEFAULT '0' AFTER `ativo`; diff --git a/src/main/resources/db/migration/V32__inserir_role_brasilcidadao.sql b/src/main/resources/db/migration/V32__inserir_role_brasilcidadao.sql new file mode 100644 index 0000000..81aca23 --- /dev/null +++ b/src/main/resources/db/migration/V32__inserir_role_brasilcidadao.sql @@ -0,0 +1,16 @@ +INSERT INTO permissao VALUES (3, 'ROLE_BRASILCIDADAO'); + +INSERT INTO grupo VALUES (3, 'Brasil Cidadao'); + +INSERT INTO grupo_permissao (codigo_grupo, codigo_permissao) VALUES (3, 3); + +CREATE TABLE usuario_brasil_cidadao ( + codigo BIGINT NOT NULL AUTO_INCREMENT, + cpf VARCHAR(15) NOT NULL, + codigo_usuario BIGINT NOT NULL, + FOREIGN KEY (codigo_usuario) + REFERENCES usuario(codigo) + ON UPDATE CASCADE ON DELETE RESTRICT, + PRIMARY KEY(codigo) + + ); \ No newline at end of file diff --git a/src/main/resources/db/migration/V33__criacao_de_tabela_de_log_protocolo_correcao_unique_cpf.sql b/src/main/resources/db/migration/V33__criacao_de_tabela_de_log_protocolo_correcao_unique_cpf.sql new file mode 100644 index 0000000..6111b6b --- /dev/null +++ b/src/main/resources/db/migration/V33__criacao_de_tabela_de_log_protocolo_correcao_unique_cpf.sql @@ -0,0 +1,102 @@ +-- MySQL Workbench Synchronization +-- Generated: 2018-02-26 14:06 +-- Model: New Model +-- Version: 1.0 +-- Project: Name of the project +-- Author: 01572931140 + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; + +CREATE TABLE IF NOT EXISTS `configuracao` ( + `codigo` BIGINT(20) NOT NULL AUTO_INCREMENT, + `nome` VARCHAR(45) NOT NULL, + `valor` TEXT NULL DEFAULT NULL, + `descricao` TEXT NULL DEFAULT NULL, + `id_enum` INT(11) NULL DEFAULT NULL, + `id_classificacao` INT(11) NULL DEFAULT NULL, + `classificacao` VARCHAR(45) NULL DEFAULT NULL, + PRIMARY KEY (`codigo`)) +ENGINE = InnoDB +AUTO_INCREMENT = 53 +DEFAULT CHARACTER SET = utf8; + +CREATE TABLE IF NOT EXISTS `log_sistema` ( + `codigo` BIGINT(20) NOT NULL AUTO_INCREMENT, + `codigo_entidade` BIGINT(20) NOT NULL, + `entidade` VARCHAR(45) NOT NULL, + `acao` VARCHAR(45) NOT NULL, + `antes` TEXT NULL DEFAULT NULL, + `depois` TEXT NULL DEFAULT NULL, + `data_hora` DATETIME NOT NULL, + `codigo_usuario` BIGINT(20) NULL DEFAULT NULL, + PRIMARY KEY (`codigo`)) +ENGINE = InnoDB +AUTO_INCREMENT = 33 +DEFAULT CHARACTER SET = utf8; + +CREATE TABLE IF NOT EXISTS `temp_arquivo` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `nome` VARCHAR(255) NOT NULL, + `pagina` VARCHAR(10) NOT NULL, + `temp_desc_arquivo_idarquivo` VARCHAR(2) NOT NULL, + `temp_desc_arquivo_token` VARCHAR(6) NOT NULL, + PRIMARY KEY (`id`), + INDEX `fk_temp_arquivo_temp_desc_arquivo1_idx` (`temp_desc_arquivo_idarquivo` ASC, `temp_desc_arquivo_token` ASC), + CONSTRAINT `fk_temp_arquivo_temp_desc_arquivo1` + FOREIGN KEY (`temp_desc_arquivo_idarquivo` , `temp_desc_arquivo_token`) + REFERENCES `temp_desc_arquivo` (`idarquivo` , `token`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + +CREATE TABLE IF NOT EXISTS `temp_desc_arquivo` ( + `tipo` VARCHAR(45) NOT NULL, + `qtd_paginas` VARCHAR(10) NOT NULL, + `temp_protocolo_token` VARCHAR(6) NOT NULL, + `idarquivo` VARCHAR(2) NOT NULL, + `token` VARCHAR(6) NOT NULL, + `descricao` VARCHAR(45) NOT NULL, + PRIMARY KEY (`idarquivo`, `token`), + INDEX `fk_temp_desc_arquivo_temp_protocolo1_idx` (`temp_protocolo_token` ASC), + CONSTRAINT `fk_temp_desc_arquivo_temp_protocolo1` + FOREIGN KEY (`temp_protocolo_token`) + REFERENCES `temp_protocolo` (`token`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + +CREATE TABLE IF NOT EXISTS `temp_protocolo` ( + `token` VARCHAR(6) NOT NULL, + `email1` VARCHAR(100) NULL DEFAULT NULL, + `email2` VARCHAR(100) CHARACTER SET 'big5' NULL DEFAULT NULL, + `nr_protocolo_anterior` VARCHAR(100) NULL DEFAULT NULL, + `usuario_codigo` BIGINT(20) NOT NULL, + PRIMARY KEY (`token`), + INDEX `fk_temp_protocolo_usuario1_idx` (`usuario_codigo` ASC), + CONSTRAINT `fk_temp_protocolo_usuario1` + FOREIGN KEY (`usuario_codigo`) + REFERENCES `usuario` (`codigo`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + +ALTER TABLE `usuario` +ADD COLUMN `nome_social` VARCHAR(50) NULL DEFAULT NULL AFTER `token`; + +ALTER TABLE `temp_arquivo` +CHARACTER SET = utf8 ; + +ALTER TABLE `temp_desc_arquivo` +CHARACTER SET = utf8 ; + +ALTER TABLE `temp_protocolo` +CHARACTER SET = utf8 ; + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/src/main/resources/db/migration/V34__correcao_tabela_log.sql b/src/main/resources/db/migration/V34__correcao_tabela_log.sql new file mode 100644 index 0000000..16a8e9c --- /dev/null +++ b/src/main/resources/db/migration/V34__correcao_tabela_log.sql @@ -0,0 +1,19 @@ +-- MySQL Workbench Synchronization +-- Generated: 2018-03-01 16:29 +-- Model: New Model +-- Version: 1.0 +-- Project: Name of the project +-- Author: 01572931140 + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +--ALTER TABLE `protocolo`.`log_sistema` +--CHANGE COLUMN `codigo` `codigo` BIGINT(20) NOT NULL AUTO_INCREMENT , +--ADD COLUMN `codigo_usuario` BIGINT(20) NULL DEFAULT NULL AFTER `data_hora`; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/src/main/resources/db/migration/V35__tabela_metadad_configuracao_email.sql b/src/main/resources/db/migration/V35__tabela_metadad_configuracao_email.sql new file mode 100644 index 0000000..661cde1 --- /dev/null +++ b/src/main/resources/db/migration/V35__tabela_metadad_configuracao_email.sql @@ -0,0 +1,180 @@ +-- MySQL Workbench Synchronization +-- Generated: 2018-03-07 12:38 +-- Model: New Model +-- Version: 1.0 +-- Project: Name of the project +-- Author: 01572931140 + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +ALTER TABLE `configuracao` +CHANGE COLUMN `codigo` `codigo` INT(11) NOT NULL AUTO_INCREMENT ; + +CREATE TABLE IF NOT EXISTS `configuracao_email` ( + `codigo` INT(11) NOT NULL, + `nome` VARCHAR(45) NULL DEFAULT NULL, + `valor` TEXT NULL DEFAULT NULL, + PRIMARY KEY (`codigo`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = utf8; + +CREATE TABLE IF NOT EXISTS `metadado` ( + `codigo` INT(11) NOT NULL, + `nome` VARCHAR(45) NOT NULL, + `valor` TEXT NULL DEFAULT NULL, + `descricao` TEXT NULL DEFAULT NULL, + PRIMARY KEY (`codigo`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = utf8; + +CREATE TABLE IF NOT EXISTS `metadado_email` ( + `codigo_email` INT(11) NOT NULL, + `codigo_metadado` INT(11) NOT NULL, + PRIMARY KEY (`codigo_metadado`, `codigo_email`), + INDEX `fk_metadado_email_configuracao_email1_idx` (`codigo_email` ASC), + CONSTRAINT `metadado_email_fk1` + FOREIGN KEY (`codigo_email`) + REFERENCES `configuracao_email` (`codigo`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `metadado_email_fk2` + FOREIGN KEY (`codigo_metadado`) + REFERENCES `metadado` (`codigo`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +DEFAULT CHARACTER SET = utf8; + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; + + +/* +-- Insert protocolo.configuracao +LIMIT 0, 1000 + +-- Date: 2018-03-07 12:42 +*/ +SET FOREIGN_KEY_CHECKS = 0; +truncate table `configuracao`; +SET FOREIGN_KEY_CHECKS = 1; +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (1,'SMTP_SERVER','10.209.253.28','',1,1,'server-email'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (2,'SMTP_PORT','25','teste3',2,1,'server-email'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (3,'MAIL_FROM','xxx@yyy.zzz','',3,1,'server-email'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (4,'EMAIL_RESPONSAVEL','sss@sssf.com',NULL,4,1,'server-email'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (9,'URL_AUTORIZAR','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/authorize',NULL,17,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (10,'URL_TOKEN','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/token',NULL,18,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (11,'URL_DADOS_USUARIO','https://testeservicos-ecidadao.estaleiro.serpro.gov.br/servicos-ecidadao/ecidadao/usuario/getUserInfo/',NULL,19,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (12,'CLIENT_ID','516a9b57-d022-4843-a792-93b4dc95622b',NULL,20,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (13,'SCOPE','openid',NULL,21,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (14,'REDIRECT_URI','https://protocolo.planejamento.gov.br/login',NULL,22,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (15,'CLIENT_SECRET','Ld65DuKIva0_EU0LO1VrVC6Be7b-_AsgvkueKpW4OJlhDdJQ4TJ9nKB173M5c5mmG03uhZvEbBKnDRmAe7gZkw',NULL,23,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (16,'ESCOPO','dados_brasil_cidadao',NULL,24,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (18,'URL_BRASIL_CIDADAO','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/login',NULL,25,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (19,'URL_PRIMEIRO_ACESSO','https://testeportal-ecidadao.estaleiro.serpro.gov.br/servicos-cidadao/acesso/#/primeiro-acesso',NULL,26,4,'brasil-cidadao'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (20,'STORAGE_PATH','E:/Ambiente/Desenvolvimento/estorage/temp','teste2',16,3,'storage'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (21,'URL_ENDPOINT','https://seitreina.nuvem.gov.br/sei/ws/SeiWS.php','teste4',5,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (22,'ASSUNTO_CODIGO_ESTRUTURADO','520.1',NULL,6,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (23,'PROCEDIMENTO_ESPECIFICADO','Especificacao do processo',NULL,7,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (24,'PROCEDIMENTO_NIVEL_ACESSO','0',NULL,8,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (25,'PROCEDIMENTO_ID_TIPO_PROCEDIMENTO','100000346',NULL,9,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (26,'DOCUMENTO_TIPO','R',NULL,10,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (27,'DOCUMENTO_ID_SERIE','1',NULL,11,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (28,'DOCUMENTO_NIVEL_ACESSO','0',NULL,12,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (29,'SIGLA_SISTEMA','UNB',NULL,13,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (30,'IDENTIFICACAO_SERVICO','testeunb',NULL,14,2,'sei'); +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (31,'ID_UNIDADE','110001972',NULL,15,2,'sei'); + +/* +-- insert protocolo.configuracao_email +LIMIT 0, 1000 + +-- Date: 2018-03-07 12:41 +*/ +SET FOREIGN_KEY_CHECKS = 0; +truncate table `configuracao_email`; +SET FOREIGN_KEY_CHECKS = 1; +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (1,'EMAIL_CONTEUDO_CADASTRO','

PREZADO(A),

\r\n


SEJA BEM VINDO AO SISTEMA DE PROTOCOLIZAÇÃO ELETRÔNICA DE DOCUMENTOS DO MINISTÉRIO DO PLANEJAMENTO, DESENVOLVIMENTO E GESTÃO. PARA CONCLUIR O SEU CADASTRO, ACESSE O LINK  {$METADADO_USUARIO_URLCONFIRMACAO}

\r\n


ESSE PASSO É IMPORTANTE PARA VALIDARMOS TODOS OS USUÁRIOS.

'); +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (2,'EMAIL_CONTEUDO_CONSOLIDACAO','

PREZADO(A),

\r\n


SEJA BEM VINDO AO SISTEMA DE PROTOCOLIZAÇÃO ELETRÔNICA DE DOCUMENTOS DO MINISTÉRIO DO PLANEJAMENTO, DESENVOLVIMENTO E GESTÃO. PARA CONCLUIR O SEU CADASTRO, ACESSE O LINK  {$METADADO_USUARIO_URLCONSILIACAO}

\r\n


ESSE PASSO É IMPORTANTE PARA VALIDARMOS TODOS OS USUÁRIOS.

'); +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (3,'EMAIL_CONTEUDO_ERRO_SEI','

Erro ao enviar o protocolo Nº {$METADADO_PROTOCOLO_NUMERO}para o SEI

\r\n

Detalhe do Erro: {$METADADO_MSGERRO}.

'); +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (4,'EMAIL_CONTEUDO_ESQUECI_SENHA','

Recebemos uma solicitação de recuperação de senha, por isso estamos enviando uma nova para que você possa continuar usando nosso sistema de protocolo.

\r\n

Sua nova senha é: {$METADADO_USUARIO_NOVASENHA}

'); +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (5,'EMAIL_CONTEUDO_PROTOCOLO','

Número do Protocolo Provisório: {$METADADO_PROTOCOLO_NUMERO}

\r\n

Número Único de Protocolo: Será enviado para o(s) e-mail(s) cadastrado(s) no prazo máximo de vinte e quatro horas, contadas do recebimento, salvo quando este ocorrer às sextas-feiras, véspera de feriados ou pontos facultativos ou haja restrição técnica da unidade, devidamente fundamentada.

\r\n

Data: {$METADADO_PROTOCOLO_DATAHORAFORMADATA}

\r\n

Nome: {$METADADO_PROTOCOLO_USUARIONOME}

\r\n

E-mail: {$METADADO_PROTOCOLO_USUARIOEMAIL}

\r\n

E-mail: {$METADADO_PROTOCOLO_EMAIL1}

\r\n

E-mail: {$METADADO_PROTOCOLO_EMAIL2}

\r\n

Referência ao protocolo anterior: {$METADADO_PROTOCOLO_NUMEROANTERIOR}

\r\n

{$METADADO_PROTOCOLO_TABELAARQUIVO}

'); +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (6,'EMAIL_CONTEUDO_NEGADO','

Número do Protocolo Provisório: {$METADADO_PROTOCOLO_NUMERO}

\r\n

Prezado (a){$METADADO_PROTOCOLO_USUARIONOME},
Esta é uma mensagem automática e não deve ser respondida.
Seu protocolo não foi aceito pelo motivo abaixo especificado:
{$METADADO_PROTOCOLO_OBSERVACAO}

\r\n

Nome:{$METADADO_PROTOCOLO_USUARIONOME}

\r\n

E-mail:{$METADADO_PROTOCOLO_USUARIOEMAIL}

\r\n

E-mail:{$METADADO_PROTOCOLO_EMAIL1}

\r\n

E-mail:{$METADADO_PROTOCOLO_EMAIL2}

'); +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (7,'EMAIL_CONTEUDO_RECEBIMENTO_SEI','

Número Único de Protocolo:{$METADADO_PROTOCOLO_NUPE}

\r\n

Prezado (a) usuário (a), Esta é uma mensagem automática e não deve ser respondida. Informamos que seu protocolo foi entregue ao setor responsável e que foi gerado o NUP:{$METADADO_PROTOCOLO_NUPE}. Quaisquer divergências das informações prestadas ou problemas nos arquivos anexados serão comunicados ao (à) senhor (a) através dos e-mails informados em seu cadastro. Informações referentes à tramitação de seu processo serão atualizadas até 24 horas e estarão acessíveis no sítio do protocolo integrado do Governo Federal, disponível em {$METADADO_PROTOCOLO_LINKSEI}

\r\n

Data:{$METADADO_PROTOCOLO_DATAHORAFORMADATA}}.

\r\n

Nome:{$METADADO_PROTOCOLO_USUARIONOME}

\r\n

E-mail:{$METADADO_PROTOCOLO_USUARIOEMAIL}

\r\n

E-mail:{$METADADO_PROTOCOLO_EMAIL1}

\r\n

E-mail:{$METADADO_PROTOCOLO_EMAIL2}

\r\n

Referência ao protocolo anterior:

\r\n

{$METADADO_PROTOCOLO_TABELAARQUIVO}

'); +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (8,'EMAIL_CABECALHO','\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
{$METADADO_LOGO_EMAIL}
\r\n

Ministério do Planejamento, Desenvolvimento e Gestão
Protocolo Central
Esplanada dos Ministérios Bloco K, Térreo, sala T 28, CEP 70.040-906 – Brasília-DF
protocolo@planejamento.gov.br
(61) 2020-5195/5580 

\r\n
'); +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (9,'EMAIL_RODAPE','

 

\r\n

“Por gentileza, responda nossa pesquisa de satisfação do Sistema de Protocolo Eletrônico. Sua contribuição é de extrema valia. Clique aqui

\r\n

 

\r\n

São de exclusiva responsabilidade do usuário: A conformidade entre os dados informados e os documentos; A conservação dos originais em papel de documentos digitalizados até que decaia o direito de revisão dos atos praticados no processo, para que, caso solicitado, sejam apresentados para qualquer tipo de conferência; A observação de que os atos processuais se consideram realizados no dia e hora do recebimento pelo SEI, considerando-se tempestivos os praticados até 23h59min59s do último dia do prazo, considerando sempre o horário oficial de Brasília, independente do fuso horário em que se encontre. 

'); + +/* +-- Insert protocolo.metadado +LIMIT 0, 1000 + +-- Date: 2018-03-07 12:42 +*/ +SET FOREIGN_KEY_CHECKS = 0; +truncate table `metadado`; +SET FOREIGN_KEY_CHECKS = 1; +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (1,'METADADO_LOGO_EMAIL','','Imagem do logótipo do ministério.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (2,'METADADO_MSGERRO','Erro no protocolo.','Mensagem de erro ao enviar ao SEI.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (3,'METADADO_PROTOCOLO_DATAHORAFORMADATA','','Data de criação do protocolo.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (4,'METADADO_PROTOCOLO_EMAIL1','E-mail: protocolo.email1','E-mail 1 de interessado.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (5,'METADADO_PROTOCOLO_EMAIL2','E-mail: protocolo.emails','E-mail 2 de interessado.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (6,'METADADO_PROTOCOLO_LINKSEI','linksei','Link de acesso ao protocolo no SEI.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (7,'METADADO_PROTOCOLO_NUMERO','Nmero do Protocolo Provisrio: 123ads31232asfd','Numero do protocolo.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (8,'METADADO_PROTOCOLO_NUMEROANTERIOR','Referncia ao protocolo anterior: 121345461','Numero de protocolo anterior.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (9,'METADADO_PROTOCOLO_NUPE','protocolo.nupe','Numero único do protocolo no SEI.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (10,'METADADO_PROTOCOLO_OBSERVACAO','observacao','Obsersavação cadastrada no cancelamento do protocolo.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (11,'METADADO_PROTOCOLO_TABELAARQUIVO','\n \n \n \n \n \n \n \n \n \n \n \n \n
\n Descrição do documento\n \n Arquivo\n
&{arquivo.tipoDocumento.descricao}&{arquivo.nomeOriginal}
','Tabela com a lista de arquivos do protocolo.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (12,'METADADO_PROTOCOLO_USUARIOEMAIL','E-mail: protocolo.email1','E-mail do usuário que cadastrou o protocolo.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (13,'METADADO_PROTOCOLO_USUARIONOME','& usuario nome','Nome do usuário que cadastrou o protocolo.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (14,'METADADO_USUARIO_NOVASENHA','Sua nova senha : 5as4f56as4f5as4','Nova senha gerada para o usuário.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (15,'METADADO_USUARIO_URLCONFIRMACAO','CONFIRMAR MEU CADASTRO.','Url para ativação do usuário.'); +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (16,'METADADO_USUARIO_URLCONSILIACAO','CONFIRMAR MEU CADASTRO.','Url para consiliação de usuário protocolo com usuário brasil cidadão.'); +UPDATE metadado SET valor = REPLACE(valor,'&','$'); + +/* +-- insert protocolo.metadado_email +LIMIT 0, 1000 + +-- Date: 2018-03-07 12:42 +*/ +SET FOREIGN_KEY_CHECKS = 0; +truncate table `metadado_email`; +SET FOREIGN_KEY_CHECKS = 1; + +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (1,15); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (2,16); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (3,2); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (3,7); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (4,14); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,3); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,4); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,5); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,7); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,8); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,10); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,11); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,12); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,13); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,3); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,4); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,5); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,7); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,10); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,12); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,13); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,3); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,4); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,5); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,6); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,7); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,8); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,9); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,10); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,11); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,12); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,13); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (8,1); +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (9,1); diff --git a/src/main/resources/db/migration/V36__tabela_protocolo_erro_ws.sql b/src/main/resources/db/migration/V36__tabela_protocolo_erro_ws.sql new file mode 100644 index 0000000..4d0004c --- /dev/null +++ b/src/main/resources/db/migration/V36__tabela_protocolo_erro_ws.sql @@ -0,0 +1 @@ +ALTER TABLE `protocolo` ADD `erro_ws` TEXT NULL AFTER `data_envio`; \ No newline at end of file diff --git a/src/main/resources/db/migration/V37__correcao_metadado_urlconfirmacao.sql b/src/main/resources/db/migration/V37__correcao_metadado_urlconfirmacao.sql new file mode 100644 index 0000000..c855372 --- /dev/null +++ b/src/main/resources/db/migration/V37__correcao_metadado_urlconfirmacao.sql @@ -0,0 +1,12 @@ + +UPDATE metadado + SET valor=concat('CONFIRMAR MEU CADASTRO.') + WHERE (codigo=15); + +UPDATE metadado + SET valor=concat('CONFIRMAR MEU CADASTRO.') + WHERE (codigo=16); + +UPDATE configuracao_email + SET valor=concat('

{', '$', 'METADADO_LOGO_EMAIL}

Ministério do Planejamento, Desenvolvimento e Gestão 
Protocolo Central 
Esplanada dos Ministérios Bloco K, Térreo, sala T 28, CEP 70.040-906 – Brasília-DF 
protocolo@planejamento.gov.br 
(61) 2020-5195/5580 

') + WHERE (codigo=8); \ No newline at end of file diff --git a/src/main/resources/db/migration/V38__correcao_atualizacao_token_brasil_cidadao.sql b/src/main/resources/db/migration/V38__correcao_atualizacao_token_brasil_cidadao.sql new file mode 100644 index 0000000..f4b3ab1 --- /dev/null +++ b/src/main/resources/db/migration/V38__correcao_atualizacao_token_brasil_cidadao.sql @@ -0,0 +1,11 @@ + +ALTER TABLE `usuario_brasil_cidadao` +ADD COLUMN `token` VARCHAR(255) NOT NULL AFTER `codigo_usuario`, +ADD COLUMN `ativo` TINYINT(4) NOT NULL AFTER `token`, +ADD COLUMN `email` VARCHAR(50) NULL DEFAULT NULL AFTER `ativo`; + +ALTER TABLE `usuario_brasil_cidadao` +MODIFY token TEXT; + +ALTER TABLE `usuario_brasil_cidadao` +ADD INDEX `usuario_brasil_cidadao_fki_1` (`codigo_usuario` ASC); diff --git a/src/main/resources/db/migration/V39__correcao_email_rodape_insercao_formulario.sql b/src/main/resources/db/migration/V39__correcao_email_rodape_insercao_formulario.sql new file mode 100644 index 0000000..518d0fc --- /dev/null +++ b/src/main/resources/db/migration/V39__correcao_email_rodape_insercao_formulario.sql @@ -0,0 +1 @@ +UPDATE `configuracao_email` SET valor=concat('

','&','nbsp;

\r

','&','ldquo;Por gentileza, responda nossa pesquisa de satisfa','&','ccedil;','&','atilde;o do Sistema de Protocolo Eletr','&','ocirc;nico. Sua contribui','&','ccedil;','&','atilde;o ','&','eacute; de extrema valia.','&','nbsp;','&','nbsp;Clique aqui','&','rdquo;

\r

','&','nbsp;

\r

S','&','atilde;o de exclusiva responsabilidade do usu','&','aacute;rio: A conformidade entre os dados informados e os documentos; A conserva','&','ccedil;','&','atilde;o dos originais em papel de documentos digitalizados at','&','eacute; que decaia o direito de revisão dos atos praticados no processo, para que, caso solicitado, sejam apresentados para qualquer tipo de conferência; A observa','&','ccedil;','&','atilde;o de que os atos processuais se consideram realizados no dia e hora do recebimento pelo SEI, considerando-se tempestivos os praticados at','&','eacute; 23h59min59s do ','&','uacute;ltimo dia do prazo, considerando sempre o hor','&','aacute;rio oficial de Bras','&','iacute;lia, independente do fuso hor','&','aacute;rio em que se encontre. ','&','nbsp;

') WHERE `codigo`='9'; diff --git a/src/main/resources/db/migration/V40__criando_link_acesso_sei.sql b/src/main/resources/db/migration/V40__criando_link_acesso_sei.sql new file mode 100644 index 0000000..c5494ad --- /dev/null +++ b/src/main/resources/db/migration/V40__criando_link_acesso_sei.sql @@ -0,0 +1,3 @@ + +ALTER TABLE `protocolo` +ADD COLUMN `linksei` VARCHAR(255) NULL AFTER `id_unidade`; \ No newline at end of file diff --git a/src/main/resources/db/migration/V41__tabela_bloquei_login.sql b/src/main/resources/db/migration/V41__tabela_bloquei_login.sql new file mode 100644 index 0000000..2c8c3a0 --- /dev/null +++ b/src/main/resources/db/migration/V41__tabela_bloquei_login.sql @@ -0,0 +1,20 @@ +CREATE TABLE `login_attempt` ( + `id` int(11) NOT NULL, + `key` varchar(255) NOT NULL, + `amount` int(2) NOT NULL DEFAULT '1', + `reset_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + + +ALTER TABLE login_attempt + ADD PRIMARY KEY (`id`), + ADD KEY `amount` (`amount`), + ADD KEY `reset_at` (`reset_at`), + ADD KEY `key` (`key`) USING BTREE; + + + +ALTER TABLE login_attempt + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; \ No newline at end of file diff --git a/src/main/resources/db/migration/V42__novo_template_email.sql b/src/main/resources/db/migration/V42__novo_template_email.sql new file mode 100644 index 0000000..0dd7217 --- /dev/null +++ b/src/main/resources/db/migration/V42__novo_template_email.sql @@ -0,0 +1,5 @@ +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (10,'EMAIL_CONTEUDO_DESBLOQUEIO','

PREZADO(A),

\r\n


Usuário bloqueado, favor acessar o LINK {$METADADO_USUARIO_URLDESBLOQUEIO}

\r\n


para desbloqueiar o usuário.

'); + +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (17,'METADADO_USUARIO_URLDESBLOQUEIO',concat('CONFIRMAR MEU CADASTRO.Url para consiliação de usuário protocolo com usuário brasil cidadão.'),null); + +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (10,17); \ No newline at end of file diff --git a/src/main/resources/db/migration/V43__atualizacao_metadao_link_sei.sql b/src/main/resources/db/migration/V43__atualizacao_metadao_link_sei.sql new file mode 100644 index 0000000..1eebfed --- /dev/null +++ b/src/main/resources/db/migration/V43__atualizacao_metadao_link_sei.sql @@ -0,0 +1,3 @@ +UPDATE `metadado` +SET `valor` = concat('Link protocolo integrado.') +WHERE `codigo` = 6 ; \ No newline at end of file diff --git a/src/main/resources/db/migration/V44__atualizacao_tabela_configuracao_classificacao.sql b/src/main/resources/db/migration/V44__atualizacao_tabela_configuracao_classificacao.sql new file mode 100644 index 0000000..53da057 --- /dev/null +++ b/src/main/resources/db/migration/V44__atualizacao_tabela_configuracao_classificacao.sql @@ -0,0 +1,77 @@ +-- MySQL Workbench Synchronization +-- Generated: 2018-04-19 14:26 +-- Model: New Model +-- Version: 1.0 +-- Project: Name of the project +-- Author: 01572931140 + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +ALTER TABLE usuario_grupo + DROP FOREIGN KEY `usuario_grupo_ibfk_2`; + +CREATE TABLE IF NOT EXISTS classificacao ( + `codigo` BIGINT(20) NOT NULL, + `nome` VARCHAR(100) NOT NULL, + PRIMARY KEY (`codigo`)) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + +INSERT INTO classificacao (`codigo`, `nome`) VALUES ('1', 'server-email'); +INSERT INTO classificacao (`codigo`, `nome`) VALUES ('2', 'sei'); +INSERT INTO classificacao (`codigo`, `nome`) VALUES ('3', 'storage'); +INSERT INTO classificacao (`codigo`, `nome`) VALUES ('4', 'brasil-cidadao'); +INSERT INTO classificacao (`codigo`, `nome`) VALUES ('5', 'captcha'); + +ALTER TABLE `configuracao` + DROP COLUMN `classificacao`, + DROP COLUMN `id_classificacao`, + DROP COLUMN `id_enum`, + CHANGE COLUMN `codigo` `codigo` BIGINT(20) NOT NULL , + ADD COLUMN `codigo_classificacao` BIGINT(20) NOT NULL AFTER `descricao`, + ADD INDEX `fk_configuracao_classificacao_idx` (`codigo_classificacao` ASC); + +UPDATE configuracao SET `codigo_classificacao`=1 WHERE `codigo`=1; +UPDATE configuracao SET `codigo_classificacao`=1 WHERE `codigo`=2; +UPDATE configuracao SET `codigo_classificacao`=1 WHERE `codigo`=3; +UPDATE configuracao SET `codigo_classificacao`=1 WHERE `codigo`=4; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=9; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=10; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=11; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=12; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=13; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=14; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=15; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=16; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=18; +UPDATE configuracao SET `codigo_classificacao`=4 WHERE `codigo`=19; +UPDATE configuracao SET `codigo_classificacao`=3 WHERE `codigo`=20; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=21; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=22; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=23; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=24; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=25; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=26; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=27; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=28; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=29; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=30; +UPDATE configuracao SET `codigo_classificacao`=2 WHERE `codigo`=31; +UPDATE configuracao SET `codigo_classificacao`=5 WHERE `codigo`=32; +UPDATE configuracao SET `codigo_classificacao`=5 WHERE `codigo`=33; + + +ALTER TABLE configuracao + ADD CONSTRAINT `classificacao_fk` + FOREIGN KEY (`codigo_classificacao`) + REFERENCES classificacao (`codigo`) + ON DELETE NO ACTION + ON UPDATE NO ACTION; + +DELIMITER ; + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/src/main/resources/db/migration/V45__atualizacao_tabela_configuracao_captcha.sql b/src/main/resources/db/migration/V45__atualizacao_tabela_configuracao_captcha.sql new file mode 100644 index 0000000..dc71377 --- /dev/null +++ b/src/main/resources/db/migration/V45__atualizacao_tabela_configuracao_captcha.sql @@ -0,0 +1,9 @@ +-- MySQL Workbench Synchronization +-- Generated: 2018-04-19 14:26 +-- Model: New Model +-- Version: 1.0 +-- Project: Name of the project +-- Author: 01572931140 + +INSERT INTO `configuracao` (`codigo`, `nome`, `valor`, `descricao`, `codigo_classificacao`) VALUES ('32', 'CAPTCHA_SITE_KEY', '6LdBAVQUAAAAAET4Dun738dTVCWfhqVDuvnDoBAp', null, '5'); +INSERT INTO `configuracao` (`codigo`, `nome`, `valor`, `descricao`, `codigo_classificacao`) VALUES ('33', 'CAPTCHA_SECRET_KEY', '6LdBAVQUAAAAAEa3owvd2PBSaOwU8OOPeFwTq13w', null, '5'); diff --git a/src/main/resources/db/migration/V46__atualizacao_tabela_metadao_desbloqueio.sql b/src/main/resources/db/migration/V46__atualizacao_tabela_metadao_desbloqueio.sql new file mode 100644 index 0000000..971cc80 --- /dev/null +++ b/src/main/resources/db/migration/V46__atualizacao_tabela_metadao_desbloqueio.sql @@ -0,0 +1,10 @@ +-- MySQL Workbench Synchronization +-- Generated: 2018-04-19 14:26 +-- Model: New Model +-- Version: 1.0 +-- Project: Name of the project +-- Author: 01572931140 + +UPDATE `metadado` SET `valor`=concat('Link de desbloqueio') WHERE `codigo`='17'; + + diff --git a/src/main/resources/db/migration/V47__adicionado-novo_sei.sql b/src/main/resources/db/migration/V47__adicionado-novo_sei.sql new file mode 100644 index 0000000..a0f8096 --- /dev/null +++ b/src/main/resources/db/migration/V47__adicionado-novo_sei.sql @@ -0,0 +1,29 @@ +INSERT INTO classificacao (`codigo`, `nome`) VALUES (6, 'sei-mf'); +INSERT INTO classificacao (`codigo`, `nome`) VALUES (7, 'sei-mdic'); +UPDATE classificacao SET `nome`='sei-mp' WHERE `codigo`=2; + +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (34,'URL_ENDPOINT','http://siphom.fazenda.gov.br/sei/ws/SeiWS.php','Sei MF',6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (35,'ASSUNTO_CODIGO_ESTRUTURADO','900',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (36,'PROCEDIMENTO_ESPECIFICADO','Especificacao do processo',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (37,'PROCEDIMENTO_NIVEL_ACESSO','0',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (38,'PROCEDIMENTO_ID_TIPO_PROCEDIMENTO','100000836',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (39,'DOCUMENTO_TIPO','R',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (40,'DOCUMENTO_ID_SERIE','64',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (41,'DOCUMENTO_NIVEL_ACESSO','0',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (42,'SIGLA_SISTEMA','PROT_ELETRONICO',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (43,'IDENTIFICACAO_SERVICO','ProtocolizacaoEletronica',NULL,6); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (44,'ID_UNIDADE','110000054',NULL,6); +-- +--Mudar para SEI MDIC +-- +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (45,'URL_ENDPOINT','https://seitreina.nuvem.gov.br/sei/ws/SeiWS.php','Sei MDIC',7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (46,'ASSUNTO_CODIGO_ESTRUTURADO','520.1',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (47,'PROCEDIMENTO_ESPECIFICADO','Especificacao do processo',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (48,'PROCEDIMENTO_NIVEL_ACESSO','0',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (49,'PROCEDIMENTO_ID_TIPO_PROCEDIMENTO','100000346',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (50,'DOCUMENTO_TIPO','R',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (51,'DOCUMENTO_ID_SERIE','1',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (52,'DOCUMENTO_NIVEL_ACESSO','0',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (53,'SIGLA_SISTEMA','UNB',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (54,'IDENTIFICACAO_SERVICO','testeunb',NULL,7); +INSERT INTO configuracao (`codigo`,`nome`,`valor`,`descricao`,`codigo_classificacao`) VALUES (55,'ID_UNIDADE','110001972',NULL,7); diff --git a/src/main/resources/db/migration/V48__adicionado-novos_parametros_tipo_documento_sei.sql b/src/main/resources/db/migration/V48__adicionado-novos_parametros_tipo_documento_sei.sql new file mode 100644 index 0000000..a5ff1a6 --- /dev/null +++ b/src/main/resources/db/migration/V48__adicionado-novos_parametros_tipo_documento_sei.sql @@ -0,0 +1,9 @@ +ALTER TABLE `tipo_documento` +ADD COLUMN `codigo_sei_mf` VARCHAR(45) NULL AFTER `ativo`, +ADD COLUMN `codigo_sei_mdic` VARCHAR(45) NULL AFTER `codigo_sei_mf`; + + +--Códigos do SEI da Fazenda e MDIC como iguais por falta de dados do sei MDIC + +UPDATE `tipo_documento` SET `codigo_sei_mf`='64', `codigo_sei_mdic`='64' WHERE `codigo`='14'; +UPDATE `tipo_documento` SET `codigo_sei_mf`='495', `codigo_sei_mdic`='495' WHERE `codigo`='15'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V49__adicionado-novos_parametros_tipo_documento_sei-corrigidos.sql b/src/main/resources/db/migration/V49__adicionado-novos_parametros_tipo_documento_sei-corrigidos.sql new file mode 100644 index 0000000..de4c842 --- /dev/null +++ b/src/main/resources/db/migration/V49__adicionado-novos_parametros_tipo_documento_sei-corrigidos.sql @@ -0,0 +1,2 @@ +UPDATE `tipo_documento` SET `codigo_sei_mf`='64', `codigo_sei_mdic`='64' WHERE `descricao`='Requerimento'; +UPDATE `tipo_documento` SET `codigo_sei_mf`='495', `codigo_sei_mdic`='495' WHERE `descricao`='Complemento'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V50__adicionado-novos_parametros_tipo_documento_sei-corrigidos3.sql b/src/main/resources/db/migration/V50__adicionado-novos_parametros_tipo_documento_sei-corrigidos3.sql new file mode 100644 index 0000000..368a327 --- /dev/null +++ b/src/main/resources/db/migration/V50__adicionado-novos_parametros_tipo_documento_sei-corrigidos3.sql @@ -0,0 +1,2 @@ +UPDATE `tipo_documento` SET `codigo_sei_mf`='64', `codigo_sei_mdic`='64' WHERE `descricao`='Requerimento'; +UPDATE `tipo_documento` SET `codigo_sei_mf`='870', `codigo_sei_mdic`='495' WHERE `descricao`='Complemento'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V51__adicionado-novos_parametros_tipo_documento_sei-mdic.sql b/src/main/resources/db/migration/V51__adicionado-novos_parametros_tipo_documento_sei-mdic.sql new file mode 100644 index 0000000..60bf406 --- /dev/null +++ b/src/main/resources/db/migration/V51__adicionado-novos_parametros_tipo_documento_sei-mdic.sql @@ -0,0 +1,2 @@ +UPDATE `tipo_documento` SET `codigo_sei_mdic`='64' WHERE `descricao`='Requerimento'; +UPDATE `tipo_documento` SET `codigo_sei_mdic`='1207' WHERE `descricao`='Complemento'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V52__adicionado-novo-parametro-hipotese-legal-sei.sql b/src/main/resources/db/migration/V52__adicionado-novo-parametro-hipotese-legal-sei.sql new file mode 100644 index 0000000..836a1dd --- /dev/null +++ b/src/main/resources/db/migration/V52__adicionado-novo-parametro-hipotese-legal-sei.sql @@ -0,0 +1 @@ +INSERT INTO configuracao (`codigo`, `nome`, `valor`, `descricao`, `codigo_classificacao`) VALUES (56, 'PROCEDIMENTO_HIPOTESE_LEGAL', '44', 'Hipótese legal de procedimento - dependência quando o processo é restrito', 6); diff --git a/src/main/resources/static/images/logoBras3ilCidadao.png b/src/main/resources/static/images/logoBras3ilCidadao.png new file mode 100644 index 0000000..5628865 Binary files /dev/null and b/src/main/resources/static/images/logoBras3ilCidadao.png differ diff --git a/src/main/resources/static/images/logoBrasilCidadao.png b/src/main/resources/static/images/logoBrasilCidadao.png index a284eb9..b775e4f 100644 Binary files a/src/main/resources/static/images/logoBrasilCidadao.png and b/src/main/resources/static/images/logoBrasilCidadao.png differ diff --git a/src/main/resources/static/images/logoBrasilCidadao_old.png b/src/main/resources/static/images/logoBrasilCidadao_old.png new file mode 100644 index 0000000..a284eb9 Binary files /dev/null and b/src/main/resources/static/images/logoBrasilCidadao_old.png differ diff --git a/src/main/resources/static/javascripts/dashboard.lista-arquivos.js b/src/main/resources/static/javascripts/dashboard.lista-arquivos.js index 4b33119..a079c42 100644 --- a/src/main/resources/static/javascripts/dashboard.lista-arquivos.js +++ b/src/main/resources/static/javascripts/dashboard.lista-arquivos.js @@ -66,7 +66,6 @@ Protocolo.ListaArquivos = (function () { })(); Protocolo.TelaAprovarReprovar = (function () { - function TelaAprovarReprovar() { this.idProtocolo = $('.js-lista-arquivos-codigo-protocolo').data('codigo-protocolo'); this.btnAprovarModal = $('.js-btn-modal-aprovar'); @@ -79,7 +78,9 @@ Protocolo.TelaAprovarReprovar = (function () { TelaAprovarReprovar.prototype.iniciar = function () { this.btnAprovarModal.on('click', onClickBtnAprovarModal.bind(this)); - this.btnAprovarManualModal.on('click', onClickconsultaSei.bind(this)); + //this.btnAprovarManualModal.on('click', onClickconsultaSei.bind(this)); + this.btnAprovarManualModal.on('click', onConfirmarAprovacaoManual.bind(this)); + this.btnReprovarModal.on('click', onClickBtnReprovarModal.bind(this)); if (this.tipoFormulario === 'reprovacao') { @@ -95,6 +96,7 @@ Protocolo.TelaAprovarReprovar = (function () { this.numeroProtocoloSei = $('.numero_protocolo_sei').val(); this.tipoProtocolo = $("input[name='radio_protocolo']:checked").val(); + if ((this.tipoProtocolo=='novo'||this.tipoProtocolo=='existente')&&this.numeroProtocoloSei==''){ swal("Error", "Informe o numero do SEI obrigatório", "error"); }else{ @@ -131,8 +133,9 @@ Protocolo.TelaAprovarReprovar = (function () { } function onConfirmarAprovacao() { - $.ajax({ - url: this.btnAprovarModal.data('url') + this.idProtocolo + '?sei=' + this.numeroProtocoloSei+'&tipo='+ this.tipoProtocolo, + this.idSei = $('#idSei').val(); + $.ajax({ + url: this.btnAprovarModal.data('url') + this.idProtocolo + '?sei=' + this.numeroProtocoloSei+'&tipo='+ this.tipoProtocolo+'&idSei='+ this.idSei, method: 'PUT', contentType: 'application/json', success: onBtnAprovarModalSucesso.bind(this), @@ -339,7 +342,7 @@ EnvioSEI = { success: function (data) { //console.log(data.data.status); if(data.data.status == "ANALISANDO"){ - //console.log("hayaaaa") + EnvioSEI.atuzalizarFlagReprovado(id); } }, @@ -388,4 +391,4 @@ $( document ).ready(function() { EnvioSEI.buscarFlag($(this).attr('id')); }); -}); +}); \ No newline at end of file diff --git a/src/main/resources/static/layout/stylesheets/estilo-governo.css b/src/main/resources/static/layout/stylesheets/estilo-governo.css index f354844..1f73d43 100644 --- a/src/main/resources/static/layout/stylesheets/estilo-governo.css +++ b/src/main/resources/static/layout/stylesheets/estilo-governo.css @@ -8,6 +8,406 @@ and open the template in the editor. Author : Narmer Abouhassan */ +/*! + * button - 0.2.2 */ + + +@-webkit-keyframes spinAround { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes spinAround { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + + +.br-button.is-primary { + background: #1351b4; + border: 1px solid #1351b4; + border-radius: 100px; + color: #ffffff; + cursor: pointer; + display: inline-block; + font-family: Rawline; + font-size: 16px; + font-style: normal; + font-weight: 600; + line-height: normal; + padding: 8px 24px; + text-align: center; + width: 100%; +} +.br-button.is-primary span { + font-stretch: ultra-condensed; + font-weight: 900; +} + +@media (min-width: 576px) { + .br-button.is-primary { + min-width: 144px; + width: auto; + } +} + +.br-button.is-primary:focus, +.br-button.is-primary.is-focus { + -webkit-box-shadow: 0 3px 6px -3px #1351b4; + box-shadow: 0 3px 6px -3px #1351b4; + outline: 0; +} +.br-button.is-primary:hover, +.br-button.is-primary.is-hover { + background-color: #2670e8; + border-color: #2670e8; + color: #ffffff; + text-decoration: none; +} +.br-button.is-primary:disabled, +.br-button.is-primary.is-disabled { + background: #888888; + border-color: #888888; + color: #ffffff; + cursor: default; +} + +.br-button.is-secondary { + background: #ffffff; + border: 1px solid #1351b4; + border-radius: 100px; + color: #1351b4; + cursor: pointer; + display: inline-block; + /*font-family: Rawline;*/ + font-size: 14px; + font-style: normal; + font-weight: 500; + line-height: normal; + padding: 8px 24px; + text-align: center; + width: 100%; +} +.br-button.is-secondary span { + font-stretch: ultra-condensed; + font-weight: 900; +} + +@media (min-width: 576px) { + .br-button.is-secondary { + min-width: 144px; + width: auto; + } +} + +.br-button.is-secondary:focus, +.br-button.is-secondary.is-focus { + -webkit-box-shadow: 0 3px 6px -3px #1351b4; + box-shadow: 0 3px 6px -3px #1351b4; + outline: 0; +} +.br-button.is-secondary:hover, +.br-button.is-secondary.is-hover { + background-color: #2670e8; + border-color: #2670e8; + color: #ffffff; + text-decoration: none; +} +.br-button.is-secondary:disabled, +.br-button.is-secondary.is-disabled { + background: #888888; + border-color: #888888; + color: #ffffff; + cursor: default; +} + +.br-button.is-tertiary { + background: transparent; + border: 0; + color: #1351b4; + cursor: pointer; + padding: 0; +} +.br-button.is-tertiary:focus, +.br-button.is-tertiary.is-focus { + outline: 0; + text-shadow: 0 3px 6px currentColor; +} +.br-button.is-tertiary:hover, +.br-button.is-tertiary.is-hover { + color: #2670e8; + text-decoration: underline; +} +.br-button.is-tertiary:disabled, +.br-button.is-tertiary.is-disabled { + color: #888888; + cursor: default; +} + +.br-button.is-cancel { + background: transparent; + border: 0; + color: #555555; + cursor: pointer; + padding: 0; +} +.br-button.is-cancel:focus, +.br-button.is-cancel.is-focus { + outline: 0; + text-shadow: 0 3px 6px currentColor; +} +.br-button.is-cancel:hover, +.br-button.is-cancel.is-hover { + color: #2670e8; + text-decoration: underline; +} +.br-button.is-cancel:disabled, +.br-button.is-cancel.is-disabled { + color: #888888; + cursor: default; +} + +.br-button.is-call-to-action { + background: #268744; + border: 1px solid #ededed; + border-radius: 100px; + border-width: 16px; + color: #ffffff; + cursor: pointer; + display: inline-block; + font-family: Rawline; + font-size: 16px; + font-style: normal; + font-weight: 600; + line-height: normal; + padding: 8px 24px; + text-align: center; + width: 100%; +} + +@media (min-width: 576px) { + .br-button.is-call-to-action { + min-width: 144px; + width: auto; + } +} + +.br-button.is-call-to-action:focus, +.br-button.is-call-to-action.is-focus { + -webkit-box-shadow: 0 3px 6px -3px #1351b4; + box-shadow: 0 3px 6px -3px #1351b4; + outline: 0; +} +.br-button.is-call-to-action:hover, +.br-button.is-call-to-action.is-hover { + background-color: #2670e8; + border-color: #2670e8; + color: #ffffff; + text-decoration: none; +} +.br-button.is-call-to-action:disabled, +.br-button.is-call-to-action.is-disabled { + background: #888888; + border-color: #888888; + color: #ffffff; + cursor: default; +} + +@media (min-width: 576px) { + .br-button.is-call-to-action { + min-width: 176px; + } +} + +.br-button.is-call-to-action:focus, +.br-button.is-call-to-action.is-focus { + -webkit-box-shadow: 0 3px 6px -3px #268744; + box-shadow: 0 3px 6px -3px #268744; +} +.br-button.is-call-to-action:hover, +.br-button.is-call-to-action.is-hover { + background-color: #36a191; + border-color: #ededed; + color: #ffffff; + text-decoration: none; +} + +.br-button.is-circle { + align-items: center; + border-radius: 50% !important; + -webkit-box-align: center; + -webkit-box-pack: center; + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + -ms-flex-align: center; + -ms-flex-pack: center; + height: 36px !important; + justify-content: center; + padding: 0 !important; + width: 36px !important; +} + +@media (min-width: 576px) { + .br-button.is-circle { + height: 36px !important; + min-width: 0; + width: 36px !important; + } +} + +.br-button.is-circle img { + width: 100%; +} +.br-button.is-circle:not(.is-primary):not(.is-secondary) { + border-color: transparent; +} + +.br-button.is-social-media { + align-items: center; + border-color: transparent; + border-radius: 50% !important; + -webkit-box-align: center; + -webkit-box-pack: center; + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + -ms-flex-align: center; + -ms-flex-pack: center; + height: 64px !important; + justify-content: center; + padding: 0 !important; + width: 64px !important; +} + +@media (min-width: 576px) { + .br-button.is-social-media { + height: 64px !important; + min-width: 0; + width: 64px !important; + } +} + +.br-button.is-social-media img { + width: 100%; +} + +.br-button.is-go-top { + align-items: center; + background: transparent; + border: 0; + -webkit-box-align: center; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-align: center; + font-size: 12px; + font-weight: 800; + margin: 0; + padding: 0; + text-transform: uppercase; +} +.br-button.is-go-top .br-button { + margin-left: 8px; +} +.br-button.is-go-top:hover .br-button, +.br-button.is-go-top:focus .br-button { + background-color: #2670e8; + border-color: #2670e8; +} +.br-button.is-go-top:disabled .br-button { + background: #888888; + border-color: #888888; +} + +.br-button.is-filter { + align-items: center; + background: transparent; + border: 0; + -webkit-box-align: center; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-align: center; + margin: 0; + padding: 0; +} +.br-button.is-filter .fas { + color: #1351b4; + margin-left: 8px; +} +.br-button.is-filter:hover .fas, +.br-button.is-filter:focus .fas { + color: #2670e8; +} +.br-button.is-filter:disabled .fas { + color: #888888; +} + +.br-button.is-loading { + color: transparent !important; + pointer-events: none; + position: relative; +} +.br-button.is-loading::after { + -webkit-animation: spinAround 500ms infinite linear; + animation: spinAround 500ms infinite linear; + border: 2px solid currentColor; + border-radius: 50%; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + left: calc(50% - (1em / 2)); + position: absolute !important; + top: calc(50% - (1em / 2)); + width: 1em; +} +.br-button.is-loading.is-primary::after, +.br-button.is-loading.is-call-to-action::after { + border-color: transparent transparent #ffffff #ffffff !important; +} +.br-button.is-loading.is-secondary::after { + border-color: transparent transparent #1351b4 #1351b4 !important; +} + +.br-button + .br-button { + margin-top: 16px; +} + +@media (min-width: 576px) { + .br-button + .br-button { + margin-left: 24px; + margin-top: 0; + } +} + +.br-button.is-facebook { + background: #3b5998; + color: #ffffff; +} +.br-button.is-twitter { + background: #00aced; + color: #ffffff; +} +/*# sourceMappingURL=button.css.map */ + +/*ME*/ .idg-cabecalho{ background-color: #0042b1; color: inherit; diff --git a/src/main/resources/templates/Login.html b/src/main/resources/templates/Login.html index d01ba52..be45a83 100644 --- a/src/main/resources/templates/Login.html +++ b/src/main/resources/templates/Login.html @@ -6,12 +6,14 @@ - Protocolo MP - Acesso Identificado + Protocolo ME - Acesso Identificado + @@ -104,7 +106,7 @@
-

Acesso Brasil Cidadão

+

Acesso Login Único

@@ -115,15 +117,18 @@ dipla

-

O Brasil Cidadão é um serviço online de identificação e autenticação digital do cidadão em único meio, para acesso aos diversos serviços públicos digitais.

+

O Login Único é um meio de acesso digital do usuário aos serviços públicos digitais.



- - Entrar com Brasil Cidadão - -
diff --git a/src/main/resources/templates/SobreBrasilCidadao.html b/src/main/resources/templates/SobreBrasilCidadao.html index 49446a4..0529d0b 100644 --- a/src/main/resources/templates/SobreBrasilCidadao.html +++ b/src/main/resources/templates/SobreBrasilCidadao.html @@ -6,7 +6,7 @@ - Protocolo MP - Acesso Identificado + Protocolo ME - Acesso Identificado @@ -34,7 +34,7 @@
-

Informações sobre o Brasil Cidadão

+

Informações sobre o Login Único

diff --git a/src/main/resources/templates/fragments/ConfirmacaoConsiliacaoUsuario.html b/src/main/resources/templates/fragments/ConfirmacaoConsiliacaoUsuario.html index 6b98164..8b7b081 100644 --- a/src/main/resources/templates/fragments/ConfirmacaoConsiliacaoUsuario.html +++ b/src/main/resources/templates/fragments/ConfirmacaoConsiliacaoUsuario.html @@ -14,10 +14,10 @@

Cadastro Confirmado

- Seu cadastro foi confirmado com sucesso, acesse o Brasil Cidadao para logar. + Seu cadastro foi confirmado com sucesso, acesse o Login Único para logar.

- Entrar com Brasil Cidadão + Entrar com Login Único
diff --git a/src/main/resources/templates/hbs/TabelaListaArquivosModal.html b/src/main/resources/templates/hbs/TabelaListaArquivosModal.html index c6a89ea..8a09f93 100644 --- a/src/main/resources/templates/hbs/TabelaListaArquivosModal.html +++ b/src/main/resources/templates/hbs/TabelaListaArquivosModal.html @@ -72,6 +72,19 @@ {{/if}} {{/each}} +
+
Informe para qual SEi o documento será enviado
+
+
+ +
+
+
+
Deseja informar o número do protocolo no SEI?
diff --git a/src/main/resources/templates/layout/fragments/BarraNavegacao.html b/src/main/resources/templates/layout/fragments/BarraNavegacao.html index bde88db..b6460a6 100644 --- a/src/main/resources/templates/layout/fragments/BarraNavegacao.html +++ b/src/main/resources/templates/layout/fragments/BarraNavegacao.html @@ -14,7 +14,7 @@
@@ -26,7 +26,7 @@
  • diff --git a/src/main/resources/templates/layout/fragments/Footer.html b/src/main/resources/templates/layout/fragments/Footer.html index abbc38e..da98661 100644 --- a/src/main/resources/templates/layout/fragments/Footer.html +++ b/src/main/resources/templates/layout/fragments/Footer.html @@ -5,7 +5,7 @@
    - © + ©
    diff --git a/src/main/resources/templates/layout/fragments/MenuLateral.html b/src/main/resources/templates/layout/fragments/MenuLateral.html index ef8590d..071d3d2 100644 --- a/src/main/resources/templates/layout/fragments/MenuLateral.html +++ b/src/main/resources/templates/layout/fragments/MenuLateral.html @@ -51,17 +51,28 @@ + + +
      diff --git a/src/main/resources/templates/layout/fragments/cabecalho-governo.html b/src/main/resources/templates/layout/fragments/cabecalho-governo.html index a83adc9..768d9f6 100644 --- a/src/main/resources/templates/layout/fragments/cabecalho-governo.html +++ b/src/main/resources/templates/layout/fragments/cabecalho-governo.html @@ -27,7 +27,7 @@ /-->
      -

      PROTOCOLO ELETRÔNICO - MP

      +

      PROTOCOLO ELETRÔNICO - ME

      diff --git a/src/main/resources/templates/mail/confirmar-cadastro.html b/src/main/resources/templates/mail/confirmar-cadastro.html index b67364c..145c70e 100644 --- a/src/main/resources/templates/mail/confirmar-cadastro.html +++ b/src/main/resources/templates/mail/confirmar-cadastro.html @@ -13,7 +13,7 @@ -

      Ministério do Planejamento, Desenvolvimento e Gestão

      +

      Ministério da Economia

      diff --git a/src/main/resources/templates/mail/confirmar-consolidacao.html b/src/main/resources/templates/mail/confirmar-consolidacao.html index 5886bd8..b9a299b 100644 --- a/src/main/resources/templates/mail/confirmar-consolidacao.html +++ b/src/main/resources/templates/mail/confirmar-consolidacao.html @@ -13,7 +13,7 @@ -

      Ministério do Planejamento, Desenvolvimento e Gestão

      +

      Ministério da Economia

      diff --git a/src/main/resources/templates/mail/erro-sei.html b/src/main/resources/templates/mail/erro-sei.html index 5ab7b1d..2fe395c 100644 --- a/src/main/resources/templates/mail/erro-sei.html +++ b/src/main/resources/templates/mail/erro-sei.html @@ -13,7 +13,7 @@ -

      Ministério do Planejamento, Desenvolvimento e Gestão

      +

      Ministério da Economia

      @@ -35,6 +35,6 @@
      -

      Ministério do Planejamento, Desenvolvimento e Gestão

      +

      Ministério da Economia

      \ No newline at end of file diff --git a/src/main/resources/templates/mail/esqueci-senha.html b/src/main/resources/templates/mail/esqueci-senha.html index 92e6e02..1392132 100644 --- a/src/main/resources/templates/mail/esqueci-senha.html +++ b/src/main/resources/templates/mail/esqueci-senha.html @@ -13,7 +13,7 @@ -

      Ministério do Planejamento, Desenvolvimento e Gestão

      +

      Ministério da Economia

      @@ -38,6 +38,6 @@

      -

      Ministério do Planejamento, Desenvolvimento e Gestão

      +

      Ministério da Economia

      \ No newline at end of file diff --git a/src/main/resources/templates/mail/protocolo-negado.html b/src/main/resources/templates/mail/protocolo-negado.html index 290a69c..8ab8cdc 100644 --- a/src/main/resources/templates/mail/protocolo-negado.html +++ b/src/main/resources/templates/mail/protocolo-negado.html @@ -15,7 +15,7 @@

      - Ministério do Planejamento, Desenvolvimento e Gestão + Ministério da Economia
      Protocolo Central
      diff --git a/src/main/resources/templates/mail/protocolo-recebimento-sei.html b/src/main/resources/templates/mail/protocolo-recebimento-sei.html index dac4103..3ca8263 100644 --- a/src/main/resources/templates/mail/protocolo-recebimento-sei.html +++ b/src/main/resources/templates/mail/protocolo-recebimento-sei.html @@ -15,7 +15,7 @@

      - Ministério do Planejamento, Desenvolvimento e Gestão + Ministério da Economia
      Protocolo Central
      diff --git a/src/main/resources/templates/mail/protocolo.html b/src/main/resources/templates/mail/protocolo.html index b98facc..2fe7f95 100644 --- a/src/main/resources/templates/mail/protocolo.html +++ b/src/main/resources/templates/mail/protocolo.html @@ -15,7 +15,7 @@

      - Ministério do Planejamento, Desenvolvimento e Gestão + Ministério da Economia
      Protocolo Central
      diff --git a/src/main/resources/templates/modal/ModalBrasilCidadao.html b/src/main/resources/templates/modal/ModalBrasilCidadao.html index cc01962..55db83f 100644 --- a/src/main/resources/templates/modal/ModalBrasilCidadao.html +++ b/src/main/resources/templates/modal/ModalBrasilCidadao.html @@ -9,18 +9,18 @@