Commit e13d17c2a346d83dfa76c05dcf92aa43fc87e76d
1 parent
2da88ff4
Exists in
master
Atualizando implementação do login unico, ajustando issues https://softwarepubli…
…co.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
Showing
140 changed files
with
2473 additions
and
1972 deletions
Show diff stats
Too many changes.
To preserve performance only 100 of 140 files displayed.
CHANGELOG
| @@ -1,62 +0,0 @@ | @@ -1,62 +0,0 @@ | ||
| 1 | -# CHANGELOG | ||
| 2 | - | ||
| 3 | -## 1.2.0 - (27/10/2017) | ||
| 4 | ---- | ||
| 5 | -### Features: | ||
| 6 | -- Quando um protocolo está em analise ele agora está em uma nova tela chamada "ANALISANDO"; | ||
| 7 | - | ||
| 8 | -### Bugfixes: | ||
| 9 | -- Modal quando o usuário visualiza um documento agora com botão de fechar; | ||
| 10 | -- Melhorado alguns aspectos de segurança; | ||
| 11 | -- Tamplate do email modificado; | ||
| 12 | -- Modificado email na home; | ||
| 13 | -- Adicionado FAVICON; | ||
| 14 | -- Permitido apenas caixa alta no nome (cadastro); | ||
| 15 | - | ||
| 16 | -## 1.1.4 - (20/10/2017) | ||
| 17 | ---- | ||
| 18 | -### Features: | ||
| 19 | - | ||
| 20 | -- Criando diretório docker e escondendo variáveis de acesso a banco; | ||
| 21 | -- Adicionando import do certificado; | ||
| 22 | -- Adição do diretorio docker já com as configurações padrões para integração continua; | ||
| 23 | - | ||
| 24 | -### Bugfixes: | ||
| 25 | - | ||
| 26 | - | ||
| 27 | -## 1.1.3 - (13/10/2017) | ||
| 28 | ---- | ||
| 29 | -### Features: | ||
| 30 | -### Bugfixes: | ||
| 31 | - | ||
| 32 | -- Ajustando lista de documentos ativos e inativos | ||
| 33 | - | ||
| 34 | -## 1.1.2 - (06/10/2017) | ||
| 35 | ---- | ||
| 36 | -### Features: | ||
| 37 | - | ||
| 38 | -- Ajustes no controle da modal; | ||
| 39 | -- Validação de data de pesquisa de protocolo; | ||
| 40 | -- Apresentação do texto de recusa; | ||
| 41 | - | ||
| 42 | -### Bugfixes: | ||
| 43 | - | ||
| 44 | -- Dinamização do cadastro do tipo de documento; | ||
| 45 | - | ||
| 46 | -## 1.1.1 - (02/10/2017) | ||
| 47 | ---- | ||
| 48 | -### Features | ||
| 49 | - | ||
| 50 | -- Corrigido Texto "Deseja informar protocolo anterior?" atualizado para "Deseja informar o numero do protocolo anterior?"; | ||
| 51 | -- Corrigido a restrição do documento e do processo. Agora o documento é público e o Processo privado; | ||
| 52 | - | ||
| 53 | -### Bugfixes: | ||
| 54 | - | ||
| 55 | -- Corrigido bug de envio com duplicidade para o sei quando dois usuários estão analisando o mesmo protocolo; | ||
| 56 | -- Corrigido bug onde o E-Mail Interessado 1 não estava recebendo email no caso de recusa e de aceite; | ||
| 57 | - | ||
| 58 | -## 1.0.0 (25/09/2017) | ||
| 59 | ---- | ||
| 60 | -### Features: | ||
| 61 | - | ||
| 62 | -- Versão estável do projeto | ||
| 63 | \ No newline at end of file | 0 | \ No newline at end of file |
docker/Dockerfile
| 1 | FROM tomcat:8.5.20-jre8-alpine | 1 | FROM tomcat:8.5.20-jre8-alpine |
| 2 | 2 | ||
| 3 | -LABEL maintainer="MP/SPO <biblioteca.digital@planejamento.gov.br>" | 3 | +LABEL maintainer="MP/SPO <protocolo@planejamento.gov.br>" |
| 4 | + | ||
| 5 | +ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk | ||
| 6 | + | ||
| 7 | +ENV JAVA_SECURITY ${JAVA_HOME}/jre/lib/security | ||
| 8 | + | ||
| 9 | +ENV JAVA_CACERTS ${JAVA_SECURITY}/cacerts | ||
| 4 | 10 | ||
| 5 | -ENV JAVA_CACERTS /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/cacerts | ||
| 6 | ENV PROTOCOLO_ARQUIVO /opt/protocolo_arquivos | 11 | ENV PROTOCOLO_ARQUIVO /opt/protocolo_arquivos |
| 7 | -ENV CATALINA_HOME /usr/local/tomcat | ||
| 8 | -ENV PATH $CATALINA_HOME/bin:$PATH | ||
| 9 | 12 | ||
| 10 | -#WORKDIR /root/ | ||
| 11 | -#RUN mkdir .protocolo-config | ||
| 12 | -#RUN mkdir -p /root/.protocolo-arquivos/ | 13 | +ENV CATALINA_HOME /usr/local/tomcat |
| 13 | 14 | ||
| 14 | -RUN mkdir -p "$CATALINA_HOME" | ||
| 15 | -RUN mkdir -p "$PROTOCOLO_ARQUIVO" | ||
| 16 | -RUN mkdir -p $CATALINA_HOME/webapps/META-INF/ | 15 | +ENV PATH $CATALINA_HOME/bin:$PATH |
| 17 | 16 | ||
| 18 | WORKDIR $CATALINA_HOME | 17 | WORKDIR $CATALINA_HOME |
| 19 | 18 | ||
| 20 | -COPY ./FILES/ICP-Brasilv5.crt /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/ | 19 | +COPY ./FILES/ICP-Brasilv5.crt \ |
| 20 | + ./FILES/ACSecretariaReceitaFederalBrasilv3.crt \ | ||
| 21 | + ./FILES/AutoridadeCertificadoraRaizBrasileirav2.crt \ | ||
| 22 | + ./FILES/AutoridadeCertificadoraSERPRORFBSSL.crt \ | ||
| 23 | + ./FILES/AutoridadeCertificadoraMDICGOVBR.crt \ | ||
| 24 | + ${JAVA_SECURITY}/ | ||
| 25 | + | ||
| 21 | COPY ./FILES/protocolo.war $CATALINA_HOME/webapps/protocolo.war | 26 | COPY ./FILES/protocolo.war $CATALINA_HOME/webapps/protocolo.war |
| 22 | -COPY ./FILES/context.xml $CATALINA_HOME/webapps/META-INF/context.xml | ||
| 23 | -COPY ./FILES/context.xml /usr/local/tomcat/conf/context.xml | 27 | + |
| 24 | COPY ./FILES/server.xml /usr/local/tomcat/conf/server.xml | 28 | COPY ./FILES/server.xml /usr/local/tomcat/conf/server.xml |
| 29 | + | ||
| 25 | COPY ./FILES/web.xml /usr/local/tomcat/conf/web.xml | 30 | COPY ./FILES/web.xml /usr/local/tomcat/conf/web.xml |
| 26 | 31 | ||
| 27 | RUN apk --no-cache update \ | 32 | RUN apk --no-cache update \ |
| 28 | - && apk --no-cache add tzdata zip unzip bzip2 less git net-tools iproute2 vim nano \ | ||
| 29 | - && rm -f /etc/localtime \ | ||
| 30 | - && ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime | 33 | + && apk --no-cache add tzdata vim nano \ |
| 34 | + && rm -f /etc/localtime \ | ||
| 35 | + && ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime | ||
| 36 | + | ||
| 37 | +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ | ||
| 38 | + -file ${JAVA_SECURITY}/ICP-Brasilv5.crt -alias ICP-Brasilv5 | ||
| 39 | + | ||
| 40 | +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ | ||
| 41 | + -file ${JAVA_SECURITY}/ACSecretariaReceitaFederalBrasilv3.crt -alias ACSecretariaReceitaFederalBrasilv3 | ||
| 42 | + | ||
| 43 | +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ | ||
| 44 | + -file ${JAVA_SECURITY}/AutoridadeCertificadoraRaizBrasileirav2.crt -alias AutoridadeCertificadoraRaizBrasileirav2 | ||
| 45 | + | ||
| 46 | +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ | ||
| 47 | + -file ${JAVA_SECURITY}/AutoridadeCertificadoraSERPRORFBSSL.crt -alias AutoridadeCertificadoraSERPRORFBSSL | ||
| 48 | + | ||
| 49 | +RUN keytool -noprompt -storepass changeit -keystore ${JAVA_CACERTS} -import \ | ||
| 50 | + -file ${JAVA_SECURITY}/AutoridadeCertificadoraMDICGOVBR.crt -alias AutoridadeCertificadoraMDICGOVBR | ||
| 51 | + | ||
| 52 | +RUN mkdir -p "$PROTOCOLO_ARQUIVO" | ||
| 53 | + | ||
| 54 | +# | ||
| 55 | +# Ports to expose | ||
| 56 | +EXPOSE 8080 | ||
| 31 | 57 | ||
| 32 | -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 | ||
| 33 | \ No newline at end of file | 58 | \ No newline at end of file |
| 59 | +# | ||
| 60 | +# Command to run | ||
| 61 | +CMD ["catalina.sh", "run"] |
docker/FILES/ICP-Brasilv5.crt
| @@ -1,38 +0,0 @@ | @@ -1,38 +0,0 @@ | ||
| 1 | ------BEGIN CERTIFICATE----- | ||
| 2 | -MIIGoTCCBImgAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBlzELMAkGA1UEBhMCQlIx | ||
| 3 | -EzARBgNVBAoMCklDUC1CcmFzaWwxPTA7BgNVBAsMNEluc3RpdHV0byBOYWNpb25h | ||
| 4 | -bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMMK0F1 | ||
| 5 | -dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjUwHhcNMTYw | ||
| 6 | -MzAyMTMwMTM4WhcNMjkwMzAyMjM1OTM4WjCBlzELMAkGA1UEBhMCQlIxEzARBgNV | ||
| 7 | -BAoMCklDUC1CcmFzaWwxPTA7BgNVBAsMNEluc3RpdHV0byBOYWNpb25hbCBkZSBU | ||
| 8 | -ZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMMK0F1dG9yaWRh | ||
| 9 | -ZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjUwggIiMA0GCSqGSIb3 | ||
| 10 | -DQEBAQUAA4ICDwAwggIKAoICAQD3LXgabUWsF+gUXw/6YODeF2XkqEyfk3VehdsI | ||
| 11 | -x+3/ERgdjCS/ouxYR0Epi2hdoMUVJDNf3XQfjAWXJyCoTneHYAl2McMdvoqtLB2i | ||
| 12 | -leQlJiis0fTtYTJayee9BAIdIrCor1Lc0vozXCpDtq5nTwhjIocaZtcuFsdrkl+n | ||
| 13 | -bfYxl5m7vjTkTMS6j8ffjmFzbNPDlJuV3Vy7AzapPVJrMl6UHPXCHMYMzl0KxR/4 | ||
| 14 | -7S5XGgmLYkYt8bNCHA3fg07y+Gtvgu+SNhMPwWKIgwhYw+9vErOnavRhOimYo4M2 | ||
| 15 | -AwNpNK0OKLI7Im5V094jFp4Ty+mlmfQH00k8nkSUEN+1TGGkhv16c2hukbx9iCfb | ||
| 16 | -mk7im2hGKjQA8eH64VPYoS2qdKbPbd3xDDHN2croYKpy2U2oQTVBSf9hC3o6fKo3 | ||
| 17 | -zp0U3dNiw7ZgWKS9UwP31Q0gwgB1orZgLuF+LIppHYwxcTG/AovNWa4sTPukMiX2 | ||
| 18 | -L+p7uIHExTZJJU4YoDacQh/mfbPIz3261He4YFmQ35sfw3eKHQSOLyiVfev/n0l/ | ||
| 19 | -r308PijEd+d+Hz5RmqIzS8jYXZIeJxym4mEjE1fKpeP56Ea52LlIJ8ZqsJ3xzHWu | ||
| 20 | -3WkAVz4hMqrX6BPMGW2IxOuEUQyIaCBg1lI6QLiPMHvo2/J7gu4YfqRcH6i27W3H | ||
| 21 | -yzamEQIDAQABo4H1MIHyME4GA1UdIARHMEUwQwYFYEwBAQAwOjA4BggrBgEFBQcC | ||
| 22 | -ARYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0RQQ2FjcmFpei5wZGYw | ||
| 23 | -PwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJy | ||
| 24 | -L0xDUmFjcmFpenY1LmNybDAfBgNVHSMEGDAWgBRpqL512cTvbOcTReRhbuVo+LZA | ||
| 25 | -XjAdBgNVHQ4EFgQUaai+ddnE72znE0XkYW7laPi2QF4wDwYDVR0TAQH/BAUwAwEB | ||
| 26 | -/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBABRt2/JiWapef7o/ | ||
| 27 | -plhR4PxymlMIp/JeZ5F0BZ1XafmYpl5g6pRokFrIRMFXLyEhlgo51I05InyCc9Td | ||
| 28 | -6UXjlsOASTc/LRavyjB/8NcQjlRYDh6xf7OdP05mFcT/0+6bYRtNgsnUbr10pfsK | ||
| 29 | -/UzyUvQWbumGS57hCZrAZOyd9MzukiF/azAa6JfoZk2nDkEudKOY8tRyTpMmDzN5 | ||
| 30 | -fufPSC3v7tSJUqTqo5z7roN/FmckRzGAYyz5XulbOc5/UsAT/tk+KP/clbbqd/hh | ||
| 31 | -evmmdJclLr9qWZZcOgzuFU2YsgProtVu0fFNXGr6KK9fu44pOHajmMsTXK3X7r/P | ||
| 32 | -wh19kFRow5F3RQMUZC6Re0YLfXh+ypnUSCzA+uL4JPtHIGyvkbWiulkustpOKUSV | ||
| 33 | -wBPzvA2sQUOvqdbAR7C8jcHYFJMuK2HZFji7pxcWWab/NKsFcJ3sluDjmhizpQax | ||
| 34 | -bYTfAVXu3q8yd0su/BHHhBpteyHvYyyz0Eb9LUysR2cMtWvfPU6vnoPgYvOGO1Cz | ||
| 35 | -iyGEsgKULkCH4o2Vgl1gQuKWO4V68rFW8a/jvq28sbY+y/Ao0I5ohpnBcQOAawiF | ||
| 36 | -bz6yJtObajYMuztDDP8oY656EuuJXBJhuKAJPI/7WDtgfV8ffOh/iQGQATVMtgDN | ||
| 37 | -0gv8bn5NdUX8UMNX1sHhU3H1UpoW | ||
| 38 | ------END CERTIFICATE----- |
docker/FILES/context.xml
| @@ -30,6 +30,7 @@ | @@ -30,6 +30,7 @@ | ||
| 30 | <Manager pathname="" /> | 30 | <Manager pathname="" /> |
| 31 | --> | 31 | --> |
| 32 | 32 | ||
| 33 | + <!-- | ||
| 33 | <Resource | 34 | <Resource |
| 34 | name="jdbc/protocoloDB" | 35 | name="jdbc/protocoloDB" |
| 35 | auth="Container" | 36 | auth="Container" |
| @@ -42,6 +43,7 @@ | @@ -42,6 +43,7 @@ | ||
| 42 | username="MYSQL_USER" | 43 | username="MYSQL_USER" |
| 43 | password="MYSQL_PASSWORD" | 44 | password="MYSQL_PASSWORD" |
| 44 | /> | 45 | /> |
| 46 | + --> | ||
| 45 | 47 | ||
| 46 | <Valve className="org.apache.catalina.authenticator.BasicAuthenticator" | 48 | <Valve className="org.apache.catalina.authenticator.BasicAuthenticator" |
| 47 | disableProxyCaching="false" | 49 | disableProxyCaching="false" |
protocolo-web-db.sql
| @@ -86,7 +86,7 @@ CREATE TABLE `configuracao` ( | @@ -86,7 +86,7 @@ CREATE TABLE `configuracao` ( | ||
| 86 | 86 | ||
| 87 | LOCK TABLES `configuracao` WRITE; | 87 | LOCK TABLES `configuracao` WRITE; |
| 88 | /*!40000 ALTER TABLE `configuracao` DISABLE KEYS */; | 88 | /*!40000 ALTER TABLE `configuracao` DISABLE KEYS */; |
| 89 | -INSERT INTO `configuracao` VALUES (1,'SMTP_SERVER','10.209.253.28','',1),(2,'SMTP_PORT','25','teste3',1),(3,'MAIL_FROM','xxx@yyy.zzz','',1),(4,'EMAIL_RESPONSAVEL','sss@sssf.com',NULL,1),(9,'URL_AUTORIZAR','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/authorize',NULL,4),(10,'URL_TOKEN','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/token',NULL,4),(11,'URL_DADOS_USUARIO','https://testeservicos-ecidadao.estaleiro.serpro.gov.br/servicos-ecidadao/ecidadao/usuario/getUserInfo/',NULL,4),(12,'CLIENT_ID','516a9b57-d022-4843-a792-93b4dc95622b',NULL,4),(13,'SCOPE','openid',NULL,4),(14,'REDIRECT_URI','https://protocolo.planejamento.gov.br/login',NULL,4),(15,'CLIENT_SECRET','Ld65DuKIva0_EU0LO1VrVC6Be7b-_AsgvkueKpW4OJlhDdJQ4TJ9nKB173M5c5mmG03uhZvEbBKnDRmAe7gZkw',NULL,4),(16,'ESCOPO','dados_brasil_cidadao',NULL,4),(18,'URL_BRASIL_CIDADAO','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/login',NULL,4),(19,'URL_PRIMEIRO_ACESSO','https://testeportal-ecidadao.estaleiro.serpro.gov.br/servicos-cidadao/acesso/#/primeiro-acesso',NULL,4),(20,'STORAGE_PATH','/opt/protocolo_arquivos','teste2',3),(21,'URL_ENDPOINT','https://seitreina.nuvem.gov.br/sei/ws/SeiWS.php','teste4',2),(22,'ASSUNTO_CODIGO_ESTRUTURADO','520.1',NULL,2),(23,'PROCEDIMENTO_ESPECIFICADO','Especificacao do processo',NULL,2),(24,'PROCEDIMENTO_NIVEL_ACESSO','0',NULL,2),(25,'PROCEDIMENTO_ID_TIPO_PROCEDIMENTO','100000346',NULL,2),(26,'DOCUMENTO_TIPO','R',NULL,2),(27,'DOCUMENTO_ID_SERIE','1',NULL,2),(28,'DOCUMENTO_NIVEL_ACESSO','0',NULL,2),(29,'SIGLA_SISTEMA','UNB',NULL,2),(30,'IDENTIFICACAO_SERVICO','testeunb',NULL,2),(31,'ID_UNIDADE','110001972',NULL,2),(32,'CAPTCHA_SITE_KEY','6LdBAVQUAAAAAET4Dun738dTVCWfhqVDuvnDoBAp',NULL,5),(33,'CAPTCHA_SECRET_KEY','6LdBAVQUAAAAAEa3owvd2PBSaOwU8OOPeFwTq13w',NULL,5),(34,'EXP_NUM_PROTOCOLO','03154000244201864','numero do protocolo do sei ',2),(35,'EXP_DESC','teste','descrição',2),(36,'EXP_NOME_PDF','teste.pdf',NULL,2),(37,'EXP_CAMINHO_ARQUIVO','/home/dario/Documentos/123456.pdf',NULL,2),(38,'EXP_SERIE_TIPO','R',NULL,2),(39,'EXP_ID_SERIE','1',NULL,2); | 89 | +INSERT INTO `configuracao` VALUES (1,'SMTP_SERVER',NULL,'ip do servidor de email',1),(2,'SMTP_PORT',NULL,'porta do servidor de email',1),(3,'MAIL_FROM','','email de envio',1),(4,'EMAIL_RESPONSAVEL',NULL,'responsavel por receber os emails de erro',1),(9,'URL_AUTORIZAR',NULL,'url autorizar do login unico /autorizar',4),(10,'URL_TOKEN',NULL,'url /token do portal do software publico',4),(11,'URL_DADOS_USUARIO',NULL,''url /getUserInfo do portal do login unico,4),(12,'CLIENT_ID',NULL,'client id do login unico',4),(13,'SCOPE',NULL,'scope do login unico',4),(14,'REDIRECT_URI',NULL,'URL de retorno do login unico',4),(15,'CLIENT_SECRET',NULL,'chave secreta do login unico',4),(16,'ESCOPO',NULL,'escopo de dados do login unico',4),(18,'URL_BRASIL_CIDADAO',NULL,'URL do login',4),(19,'URL_PRIMEIRO_ACESSO',NULL,'URL para o primeiro acesso',4),(20,'STORAGE_PATH',NULL,'Local no servidor onde será alocado para guardar os arquivos',3),(21,'URL_ENDPOINT',NULL,'Url do sei',2),(22,'ASSUNTO_CODIGO_ESTRUTURADO',NULL,'Código do assunto no sei',2),(23,'PROCEDIMENTO_ESPECIFICADO',NULL,'Expecificação do procesimento no sei',2),(24,'PROCEDIMENTO_NIVEL_ACESSO',NULL,'nivel de aceso no sei',2),(25,'PROCEDIMENTO_ID_TIPO_PROCEDIMENTO',NULL,'Tipo de procedimento no sei',2),(26,'DOCUMENTO_TIPO',NULL,'Tipo de documento no sei',2),(27,'DOCUMENTO_ID_SERIE',NULL,'Id serie do documento no sei',2),(28,'DOCUMENTO_NIVEL_ACESSO',NULL,'nivel de acesso do documento no sei',2),(29,'SIGLA_SISTEMA',NULL,'Sigla do sistema no sei',2),(30,'IDENTIFICACAO_SERVICO',NULL,'Identificação do serviço no sei',2),(31,'ID_UNIDADE',NULL,'Id da unidade no sei',2),(32,'CAPTCHA_SITE_KEY',NULL,'SITE_KEY do serviço de captcha do google',5),(33,'CAPTCHA_SECRET_KEY',NULL,'SECRET_KEY do serviço de captcha do google',5) |
| 90 | /*!40000 ALTER TABLE `configuracao` ENABLE KEYS */; | 90 | /*!40000 ALTER TABLE `configuracao` ENABLE KEYS */; |
| 91 | UNLOCK TABLES; | 91 | UNLOCK TABLES; |
| 92 | 92 |
src/main/java/Sei/TesteIncluirDocumento.java
| 1 | package Sei; | 1 | package Sei; |
| 2 | 2 | ||
| 3 | -import fi.solita.clamav.ClamAVClient; | ||
| 4 | import org.apache.commons.io.FileUtils; | 3 | import org.apache.commons.io.FileUtils; |
| 5 | import org.springframework.util.Base64Utils; | 4 | import org.springframework.util.Base64Utils; |
| 6 | 5 | ||
| 7 | import java.io.File; | 6 | import java.io.File; |
| 8 | -import java.io.FileInputStream; | ||
| 9 | import java.net.URL; | 7 | import java.net.URL; |
| 10 | import java.text.Normalizer; | 8 | import java.text.Normalizer; |
| 11 | 9 | ||
| @@ -26,20 +24,22 @@ public class TesteIncluirDocumento { | @@ -26,20 +24,22 @@ public class TesteIncluirDocumento { | ||
| 26 | 24 | ||
| 27 | System.out.println(part2);*/ | 25 | System.out.println(part2);*/ |
| 28 | 26 | ||
| 29 | - ClamAVClient cl = new ClamAVClient("10.209.40.206", 3310); | ||
| 30 | - final byte[] reply; | ||
| 31 | - try { | ||
| 32 | - System.out.println("Tudo limpo."); | ||
| 33 | - reply = cl.scan(new FileInputStream("/home/dario/Documentos/virus.pdf")); | ||
| 34 | - | ||
| 35 | - } catch (Exception e) { | ||
| 36 | - throw new RuntimeException(e); | ||
| 37 | - } | ||
| 38 | - if (!ClamAVClient.isCleanReply(reply)) { | ||
| 39 | - System.out.println("Virus encontrado."); | ||
| 40 | - } else { | ||
| 41 | - System.out.println("Tudo limpo."); | ||
| 42 | - } | 27 | +// ClamAVClient cl = new ClamAVClient("10.209.40.206", 3310); |
| 28 | +// final byte[] reply; | ||
| 29 | +// try { | ||
| 30 | +// System.out.println("Tudo limpo."); | ||
| 31 | +// reply = cl.scan(new FileInputStream("/home/dario/Documentos/virus.pdf")); | ||
| 32 | +// | ||
| 33 | +// } catch (Exception e) { | ||
| 34 | +// throw new RuntimeException(e); | ||
| 35 | +// } | ||
| 36 | +// if (!ClamAVClient.isCleanReply(reply)) { | ||
| 37 | +// System.out.println("Virus encontrado."); | ||
| 38 | +// } else { | ||
| 39 | +// System.out.println("Tudo limpo."); | ||
| 40 | +// } | ||
| 41 | + enviar(); | ||
| 42 | + | ||
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | 45 | ||
| @@ -52,11 +52,11 @@ public class TesteIncluirDocumento { | @@ -52,11 +52,11 @@ public class TesteIncluirDocumento { | ||
| 52 | // System.out.println(path.resolve("PaytoStudy_Student_Guide_HiBonjour_PT.pdf").toFile().getAbsolutePath()); | 52 | // System.out.println(path.resolve("PaytoStudy_Student_Guide_HiBonjour_PT.pdf").toFile().getAbsolutePath()); |
| 53 | 53 | ||
| 54 | // | 54 | // |
| 55 | - URL urlEndpoint = new URL("https://seitreina.nuvem.gov.br/sei/ws/SeiWS.php"); | 55 | + URL urlEndpoint = new URL("http://siphom.fazenda.gov.br/sei/ws/SeiWS.php"); |
| 56 | SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); | 56 | SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); |
| 57 | 57 | ||
| 58 | Assunto assunto = new Assunto(); | 58 | Assunto assunto = new Assunto(); |
| 59 | - assunto.setCodigoEstruturado("520.1"); //Tipo de assunto | 59 | + assunto.setCodigoEstruturado("900"); //Tipo de assunto |
| 60 | Assunto[] assuntos = {assunto}; | 60 | Assunto[] assuntos = {assunto}; |
| 61 | 61 | ||
| 62 | Procedimento procedimento = new Procedimento(); | 62 | Procedimento procedimento = new Procedimento(); |
| @@ -72,33 +72,28 @@ public class TesteIncluirDocumento { | @@ -72,33 +72,28 @@ public class TesteIncluirDocumento { | ||
| 72 | 72 | ||
| 73 | procedimento.setObservacao("Obs"); | 73 | procedimento.setObservacao("Obs"); |
| 74 | procedimento.setNivelAcesso("0"); // 0 = Publico, 1 = Restrito, 2 = Sigiloso | 74 | procedimento.setNivelAcesso("0"); // 0 = Publico, 1 = Restrito, 2 = Sigiloso |
| 75 | - procedimento.setIdTipoProcedimento("100000346"); // Tipo de Processo => Adesão de atas | ||
| 76 | -// | ||
| 77 | -// | ||
| 78 | -// | ||
| 79 | -//// | ||
| 80 | -// Documento[] documentos = {documento}; | ||
| 81 | -// | ||
| 82 | -// RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStub.gerarProcedimento("UNB", | ||
| 83 | -// "testeunb", | ||
| 84 | -// "110001972", | ||
| 85 | -// procedimento, null, | ||
| 86 | -// null, | ||
| 87 | -// null, "S", "N", null, null, null, null, null); | ||
| 88 | -// | ||
| 89 | -// System.out.println("************ RetornoGeracaoProcedimento = " + retornoGeracaoProcedimento.getProcedimentoFormatado()); | ||
| 90 | -// System.out.println("************ RetornoGeracaoProcedimento = " + retornoGeracaoProcedimento.getLinkAcesso()); | 75 | + procedimento.setIdTipoProcedimento("100000836"); // Tipo de Processo => Adesão de atas |
| 76 | + | ||
| 77 | + RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStub.gerarProcedimento("PROT_ELETRONICO", | ||
| 78 | + "ProtocolizacaoEletronica", | ||
| 79 | + "110000054", | ||
| 80 | + procedimento, null, | ||
| 81 | + null, | ||
| 82 | + null, "S", "N", null, null, null, null, null); | ||
| 83 | + | ||
| 84 | + System.out.println("************ RetornoGeracaoProcedimento = " + retornoGeracaoProcedimento.getProcedimentoFormatado()); | ||
| 85 | + System.out.println("************ RetornoGeracaoProcedimento = " + retornoGeracaoProcedimento.getLinkAcesso()); | ||
| 91 | 86 | ||
| 92 | Documento documento = new Documento(); | 87 | Documento documento = new Documento(); |
| 93 | - documento.setIdProcedimento("03154000037201729"); | 88 | + documento.setIdProcedimento(retornoGeracaoProcedimento.getProcedimentoFormatado()); |
| 94 | documento.setDescricao("Meu documento 5"); | 89 | documento.setDescricao("Meu documento 5"); |
| 95 | documento.setNomeArquivo("PaytoStudy_Student_Guide_HiBonjour_PT.pdf"); | 90 | documento.setNomeArquivo("PaytoStudy_Student_Guide_HiBonjour_PT.pdf"); |
| 96 | - documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(new File("/home/leonardo/Downloads/PaytoStudy_Student_Guide_HiBonjour_PT.pdf")))); | 91 | + documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(new File("/home/matheus/teste.pdf")))); |
| 97 | documento.setTipo("R"); | 92 | documento.setTipo("R"); |
| 98 | documento.setIdSerie("1"); | 93 | documento.setIdSerie("1"); |
| 99 | - documento.setData("16/08/2017"); | 94 | + documento.setData("02/04/2019"); |
| 100 | 95 | ||
| 101 | - RetornoInclusaoDocumento retornoInclusaoDocumento = seiBindingStub.incluirDocumento("UNB", "testeunb", "110001972", documento); | 96 | + RetornoInclusaoDocumento retornoInclusaoDocumento = seiBindingStub.incluirDocumento("PROT_ELETRONICO", "ProtocolizacaoEletronica", "110000054", documento); |
| 102 | System.out.println("Link = " + retornoInclusaoDocumento.getLinkAcesso()); | 97 | System.out.println("Link = " + retornoInclusaoDocumento.getLinkAcesso()); |
| 103 | } | 98 | } |
| 104 | } | 99 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/clamav/ClamavUtil.java
| 1 | package br.gov.planejamento.dipla.protocolo.clamav; | 1 | package br.gov.planejamento.dipla.protocolo.clamav; |
| 2 | 2 | ||
| 3 | -import fi.solita.clamav.ClamAVClient; | ||
| 4 | import org.springframework.beans.factory.annotation.Autowired; | 3 | import org.springframework.beans.factory.annotation.Autowired; |
| 5 | -import org.springframework.context.annotation.PropertySource; | ||
| 6 | import org.springframework.core.env.Environment; | 4 | import org.springframework.core.env.Environment; |
| 7 | import org.springframework.stereotype.Component; | 5 | import org.springframework.stereotype.Component; |
| 8 | 6 |
src/main/java/br/gov/planejamento/dipla/protocolo/config/BrasilCidadaoConfig.java
| 1 | package br.gov.planejamento.dipla.protocolo.config; | 1 | package br.gov.planejamento.dipla.protocolo.config; |
| 2 | 2 | ||
| 3 | -import java.security.KeyManagementException; | ||
| 4 | -import java.security.NoSuchAlgorithmException; | ||
| 5 | -import java.security.cert.CertificateException; | ||
| 6 | -import java.security.cert.X509Certificate; | ||
| 7 | -import java.util.Base64; | ||
| 8 | -import java.util.HashMap; | ||
| 9 | -import java.util.Map; | ||
| 10 | -import java.util.Random; | ||
| 11 | - | ||
| 12 | -import javax.net.ssl.HttpsURLConnection; | ||
| 13 | -import javax.net.ssl.SSLContext; | ||
| 14 | -import javax.net.ssl.TrustManager; | ||
| 15 | -import javax.net.ssl.X509TrustManager; | ||
| 16 | - | ||
| 17 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 18 | -import org.springframework.context.annotation.PropertySource; | ||
| 19 | -import org.springframework.core.env.Environment; | ||
| 20 | -import org.springframework.http.HttpHeaders; | ||
| 21 | -import org.springframework.http.MediaType; | ||
| 22 | 3 | ||
| 23 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | 4 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; |
| 24 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | 5 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; |
| 25 | - | 6 | +import org.springframework.beans.factory.annotation.Autowired; |
| 26 | import org.springframework.context.annotation.Bean; | 7 | import org.springframework.context.annotation.Bean; |
| 27 | import org.springframework.context.annotation.Configuration; | 8 | import org.springframework.context.annotation.Configuration; |
| 28 | 9 | ||
| 10 | +import javax.net.ssl.HttpsURLConnection; | ||
| 11 | +import javax.net.ssl.SSLContext; | ||
| 12 | +import javax.net.ssl.TrustManager; | ||
| 13 | +import javax.net.ssl.X509TrustManager; | ||
| 14 | +import java.net.URLEncoder; | ||
| 15 | +import java.security.KeyManagementException; | ||
| 16 | +import java.security.NoSuchAlgorithmException; | ||
| 17 | +import java.security.cert.CertificateException; | ||
| 18 | +import java.security.cert.X509Certificate; | ||
| 19 | +import java.util.Random; | ||
| 20 | + | ||
| 29 | 21 | ||
| 30 | @Configuration | 22 | @Configuration |
| 31 | //@PropertySource(value = {"file:${HOME}/.protocolo-config/protocolo-brasilCidadao.properties"}) | 23 | //@PropertySource(value = {"file:${HOME}/.protocolo-config/protocolo-brasilCidadao.properties"}) |
| @@ -34,86 +26,88 @@ public class BrasilCidadaoConfig { | @@ -34,86 +26,88 @@ public class BrasilCidadaoConfig { | ||
| 34 | 26 | ||
| 35 | @Autowired | 27 | @Autowired |
| 36 | private ConfiguracaoRepository configuracaoRepository; | 28 | private ConfiguracaoRepository configuracaoRepository; |
| 37 | - | 29 | + |
| 38 | Random gerador = new Random(); | 30 | Random gerador = new Random(); |
| 39 | - | ||
| 40 | - public String gerarUrlAutorizar(){ | ||
| 41 | - disableSSLCertificateChecking(); | ||
| 42 | - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_AUTORIZAR)+"?response_type=code&client_id="+ | ||
| 43 | - configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_ID)+"&redirect_uri="+ | ||
| 44 | - configuracaoRepository.recuperarValor(ConfiguracaoEnum.REDIRECT_URI)+"&nonce="+gerador.hashCode()+ | ||
| 45 | - "&state="+gerador.hashCode(); | ||
| 46 | - return url; | ||
| 47 | - } | ||
| 48 | - public String gerarUrlToken(){ | ||
| 49 | - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_TOKEN); | ||
| 50 | - return url; | ||
| 51 | - } | ||
| 52 | - public String gerarUrlDadosUsuarios(String token){ | ||
| 53 | - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_DADOS_USUARIO)+ | ||
| 54 | - configuracaoRepository.recuperarValor(ConfiguracaoEnum.ESCOPO)+"?access_token="+token; | ||
| 55 | - return url; | ||
| 56 | - } | ||
| 57 | - @Bean(name = "urlBrasilCidadao") | ||
| 58 | - public UrlBrasilCidadao gerarUrlBrasilCidadao(){ | ||
| 59 | - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_BRASIL_CIDADAO); | ||
| 60 | - return () -> url; | ||
| 61 | - } | ||
| 62 | - @Bean(name = "urlPrimeiroAcesso") | ||
| 63 | - public UrlPrimeiroAcesso gerarUrlPrimeiroAcesso(){ | ||
| 64 | - String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_PRIMEIRO_ACESSO); | ||
| 65 | - return () -> url; | ||
| 66 | - } | ||
| 67 | - | ||
| 68 | - public String gerarRequisicaoAtributo(String code){ | ||
| 69 | - String reqAtr = | ||
| 70 | - "grant_type=authorization_code&"+ | ||
| 71 | - "code="+code+"&"+ | ||
| 72 | - "redirect_uri="+configuracaoRepository.recuperarValor(ConfiguracaoEnum.REDIRECT_URI); | ||
| 73 | - | ||
| 74 | - return reqAtr; | ||
| 75 | - } | ||
| 76 | - public HttpHeaders gerarRequisicaoHeader(){ | ||
| 77 | - HttpHeaders headers = new HttpHeaders(); | ||
| 78 | - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); | ||
| 79 | - headers.add(headers.AUTHORIZATION, "Basic "+Base64.getEncoder().encodeToString(( | ||
| 80 | - configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_ID)+":"+ | ||
| 81 | - configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_SECRET)).getBytes())); | ||
| 82 | - return headers; | ||
| 83 | - } | ||
| 84 | - | ||
| 85 | - | ||
| 86 | - private void disableSSLCertificateChecking() { | ||
| 87 | - TrustManager[] trustAllCerts = new TrustManager[] { | ||
| 88 | - new X509TrustManager() { | ||
| 89 | - public X509Certificate[] getAcceptedIssuers() { | ||
| 90 | - return null; | ||
| 91 | - } | ||
| 92 | - @Override | ||
| 93 | - public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { | ||
| 94 | - // Not implemented | ||
| 95 | - } | ||
| 96 | - @Override public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { | ||
| 97 | - // Not implemented | ||
| 98 | - } | ||
| 99 | - } | ||
| 100 | - }; | ||
| 101 | - try { | ||
| 102 | - SSLContext sc = SSLContext.getInstance("TLS"); | ||
| 103 | - sc.init(null, trustAllCerts, new java.security.SecureRandom()); | ||
| 104 | - HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); | ||
| 105 | - | ||
| 106 | - } catch (KeyManagementException e) { | ||
| 107 | - e.printStackTrace(); | ||
| 108 | - } catch (NoSuchAlgorithmException e) { | ||
| 109 | - e.printStackTrace(); | ||
| 110 | - } | ||
| 111 | - } | ||
| 112 | - public interface UrlBrasilCidadao { | 31 | + |
| 32 | + public String gerarUrlAutorizar(){ | ||
| 33 | + disableSSLCertificateChecking(); | ||
| 34 | + String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_AUTORIZAR)+"?response_type=code&client_id="+ | ||
| 35 | + configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_ID)+ "&scope=" | ||
| 36 | + + configuracaoRepository.recuperarValor(ConfiguracaoEnum.SCOPE) + "&redirect_uri=" + | ||
| 37 | + configuracaoRepository.recuperarValor(ConfiguracaoEnum.REDIRECT_URI)+"&nonce="+gerador.hashCode()+ | ||
| 38 | + "&state="+gerador.hashCode(); | ||
| 39 | + return url; | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + @Bean(name = "urlBrasilCidadao") | ||
| 43 | + public UrlBrasilCidadao gerarUrlBrasilCidadao(){ | ||
| 44 | + String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_BRASIL_CIDADAO); | ||
| 45 | + return () -> url; | ||
| 46 | + } | ||
| 47 | + @Bean(name = "urlPrimeiroAcesso") | ||
| 48 | + public UrlPrimeiroAcesso gerarUrlPrimeiroAcesso(){ | ||
| 49 | + String url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_PRIMEIRO_ACESSO); | ||
| 50 | + return () -> url; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + private void disableSSLCertificateChecking() { | ||
| 54 | + TrustManager[] trustAllCerts = new TrustManager[] { | ||
| 55 | + new X509TrustManager() { | ||
| 56 | + public X509Certificate[] getAcceptedIssuers() { | ||
| 57 | + return null; | ||
| 58 | + } | ||
| 59 | + @Override | ||
| 60 | + public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { | ||
| 61 | + // Not implemented | ||
| 62 | + } | ||
| 63 | + @Override public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { | ||
| 64 | + // Not implemented | ||
| 65 | + } | ||
| 66 | + } | ||
| 67 | + }; | ||
| 68 | + try { | ||
| 69 | + SSLContext sc = SSLContext.getInstance("TLS"); | ||
| 70 | + sc.init(null, trustAllCerts, new java.security.SecureRandom()); | ||
| 71 | + HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); | ||
| 72 | + | ||
| 73 | + } catch (KeyManagementException e) { | ||
| 74 | + e.printStackTrace(); | ||
| 75 | + } catch (NoSuchAlgorithmException e) { | ||
| 76 | + e.printStackTrace(); | ||
| 77 | + } | ||
| 78 | + } | ||
| 79 | + public interface UrlBrasilCidadao { | ||
| 113 | String getUrlBrasilCidadao(); | 80 | String getUrlBrasilCidadao(); |
| 114 | } | 81 | } |
| 115 | 82 | ||
| 116 | - public interface UrlPrimeiroAcesso { | 83 | + public interface UrlPrimeiroAcesso { |
| 117 | String getUrlPrimeiroAcesso(); | 84 | String getUrlPrimeiroAcesso(); |
| 118 | } | 85 | } |
| 86 | + | ||
| 87 | + public String gerarURLToken(String code){ | ||
| 88 | + String url = ""; | ||
| 89 | + try { | ||
| 90 | + url = configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_TOKEN) + "?grant_type=authorization_code&code=" | ||
| 91 | + + code + "&redirect_uri=" + URLEncoder.encode(configuracaoRepository.recuperarValor(ConfiguracaoEnum.REDIRECT_URI), "UTF-8") ; | ||
| 92 | + }catch (Exception e){ | ||
| 93 | + e.printStackTrace(); | ||
| 94 | + } | ||
| 95 | + return url; | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + public String obterClientSecret(){ | ||
| 99 | + return configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_SECRET); | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + public String obterClientID(){ | ||
| 103 | + return configuracaoRepository.recuperarValor(ConfiguracaoEnum.CLIENT_ID); | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + public String obterURLBrasilCidadao(){ | ||
| 107 | + return configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_BRASIL_CIDADAO); | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + public String obterURLDadosUsuario(){ | ||
| 111 | + return configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_DADOS_USUARIO); | ||
| 112 | + } | ||
| 119 | } | 113 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/config/MailConfig.java
| 1 | package br.gov.planejamento.dipla.protocolo.config; | 1 | package br.gov.planejamento.dipla.protocolo.config; |
| 2 | 2 | ||
| 3 | +import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | ||
| 4 | +import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | ||
| 3 | import org.springframework.beans.factory.annotation.Autowired; | 5 | import org.springframework.beans.factory.annotation.Autowired; |
| 4 | import org.springframework.context.annotation.Bean; | 6 | import org.springframework.context.annotation.Bean; |
| 5 | import org.springframework.context.annotation.Configuration; | 7 | import org.springframework.context.annotation.Configuration; |
| 6 | -import org.springframework.context.annotation.PropertySource; | ||
| 7 | -import org.springframework.core.env.Environment; | ||
| 8 | import org.springframework.mail.javamail.JavaMailSender; | 8 | import org.springframework.mail.javamail.JavaMailSender; |
| 9 | import org.springframework.mail.javamail.JavaMailSenderImpl; | 9 | import org.springframework.mail.javamail.JavaMailSenderImpl; |
| 10 | 10 | ||
| 11 | -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | ||
| 12 | -import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | ||
| 13 | - | ||
| 14 | import java.util.Properties; | 11 | import java.util.Properties; |
| 15 | 12 | ||
| 16 | @Configuration | 13 | @Configuration |
src/main/java/br/gov/planejamento/dipla/protocolo/config/SecurityConfig.java
| 1 | package br.gov.planejamento.dipla.protocolo.config; | 1 | package br.gov.planejamento.dipla.protocolo.config; |
| 2 | 2 | ||
| 3 | +import br.gov.planejamento.dipla.protocolo.handler.LogoutBrasilCidadaoHandler; | ||
| 4 | +import br.gov.planejamento.dipla.protocolo.security.CustomAuthenticationFailureHandler; | ||
| 3 | import org.springframework.beans.factory.annotation.Autowired; | 5 | import org.springframework.beans.factory.annotation.Autowired; |
| 4 | import org.springframework.context.annotation.Bean; | 6 | import org.springframework.context.annotation.Bean; |
| 5 | -import org.springframework.context.annotation.Configuration; | ||
| 6 | -import org.springframework.core.annotation.Order; | ||
| 7 | import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; | 7 | import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; |
| 8 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | 8 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
| 9 | import org.springframework.security.config.annotation.web.builders.WebSecurity; | 9 | import org.springframework.security.config.annotation.web.builders.WebSecurity; |
| @@ -12,14 +12,8 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur | @@ -12,14 +12,8 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur | ||
| 12 | import org.springframework.security.core.userdetails.UserDetailsService; | 12 | import org.springframework.security.core.userdetails.UserDetailsService; |
| 13 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; | 13 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
| 14 | import org.springframework.security.crypto.password.PasswordEncoder; | 14 | import org.springframework.security.crypto.password.PasswordEncoder; |
| 15 | -import org.springframework.security.web.authentication.AuthenticationFailureHandler; | ||
| 16 | -import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; | ||
| 17 | -import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter; | ||
| 18 | import org.springframework.security.web.util.matcher.AntPathRequestMatcher; | 15 | import org.springframework.security.web.util.matcher.AntPathRequestMatcher; |
| 19 | 16 | ||
| 20 | -import br.gov.planejamento.dipla.protocolo.handler.LogoutBrasilCidadaoHandler; | ||
| 21 | -import br.gov.planejamento.dipla.protocolo.security.CustomAuthenticationFailureHandler; | ||
| 22 | - | ||
| 23 | 17 | ||
| 24 | 18 | ||
| 25 | /** | 19 | /** |
src/main/java/br/gov/planejamento/dipla/protocolo/config/ServiceConfig.java
| @@ -7,12 +7,8 @@ import br.gov.planejamento.dipla.protocolo.storage.local.ArquivoStorageLocal; | @@ -7,12 +7,8 @@ import br.gov.planejamento.dipla.protocolo.storage.local.ArquivoStorageLocal; | ||
| 7 | import org.springframework.beans.factory.annotation.Autowired; | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| 8 | import org.springframework.context.annotation.Bean; | 8 | import org.springframework.context.annotation.Bean; |
| 9 | import org.springframework.context.annotation.Configuration; | 9 | import org.springframework.context.annotation.Configuration; |
| 10 | -import org.springframework.context.annotation.PropertySource; | ||
| 11 | -import org.springframework.core.env.Environment; | ||
| 12 | import org.springframework.util.StringUtils; | 10 | import org.springframework.util.StringUtils; |
| 13 | 11 | ||
| 14 | -import java.io.IOException; | ||
| 15 | -import java.nio.file.Files; | ||
| 16 | import java.nio.file.Path; | 12 | import java.nio.file.Path; |
| 17 | 13 | ||
| 18 | import static java.nio.file.FileSystems.getDefault; | 14 | import static java.nio.file.FileSystems.getDefault; |
src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ArquivosController.java
| @@ -10,12 +10,9 @@ import br.gov.planejamento.dipla.protocolo.repositories.ArquivosRepository; | @@ -10,12 +10,9 @@ import br.gov.planejamento.dipla.protocolo.repositories.ArquivosRepository; | ||
| 10 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | 10 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; |
| 11 | import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; | 11 | import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; |
| 12 | import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorageRunnable; | 12 | import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorageRunnable; |
| 13 | -import org.apache.tomcat.util.threads.ThreadPoolExecutor; | ||
| 14 | import org.springframework.beans.factory.annotation.Autowired; | 13 | import org.springframework.beans.factory.annotation.Autowired; |
| 15 | import org.springframework.http.MediaType; | 14 | import org.springframework.http.MediaType; |
| 16 | import org.springframework.http.ResponseEntity; | 15 | import org.springframework.http.ResponseEntity; |
| 17 | -import org.springframework.scheduling.config.Task; | ||
| 18 | -import org.springframework.security.access.method.P; | ||
| 19 | import org.springframework.web.bind.annotation.*; | 16 | import org.springframework.web.bind.annotation.*; |
| 20 | import org.springframework.web.context.request.async.DeferredResult; | 17 | import org.springframework.web.context.request.async.DeferredResult; |
| 21 | import org.springframework.web.multipart.MultipartFile; | 18 | import org.springframework.web.multipart.MultipartFile; |
| @@ -23,13 +20,10 @@ import org.springframework.web.servlet.ModelAndView; | @@ -23,13 +20,10 @@ import org.springframework.web.servlet.ModelAndView; | ||
| 23 | import org.springframework.web.util.UriUtils; | 20 | import org.springframework.web.util.UriUtils; |
| 24 | 21 | ||
| 25 | import javax.servlet.http.HttpServletRequest; | 22 | import javax.servlet.http.HttpServletRequest; |
| 23 | +import java.io.File; | ||
| 26 | import java.io.IOException; | 24 | import java.io.IOException; |
| 27 | -import java.net.MalformedURLException; | ||
| 28 | -import java.net.URLEncoder; | ||
| 29 | -import java.nio.file.Files; | ||
| 30 | import java.util.Base64; | 25 | import java.util.Base64; |
| 31 | import java.util.List; | 26 | import java.util.List; |
| 32 | -import java.io.*; | ||
| 33 | 27 | ||
| 34 | 28 | ||
| 35 | 29 |
src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ConfiguracaoController.java
| 1 | package br.gov.planejamento.dipla.protocolo.controllers; | 1 | package br.gov.planejamento.dipla.protocolo.controllers; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig.UrlBrasilCidadao; | ||
| 4 | import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; | 3 | import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; |
| 5 | -import br.gov.planejamento.dipla.protocolo.controllers.sessions.ArquivosSession; | ||
| 6 | -import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; | ||
| 7 | -import br.gov.planejamento.dipla.protocolo.dto.MetadadosDTO; | ||
| 8 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | 4 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; |
| 9 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; | 5 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; |
| 10 | -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | ||
| 11 | -import br.gov.planejamento.dipla.protocolo.entities.EmailEnum; | ||
| 12 | import br.gov.planejamento.dipla.protocolo.entities.Metadado; | 6 | import br.gov.planejamento.dipla.protocolo.entities.Metadado; |
| 13 | -import br.gov.planejamento.dipla.protocolo.entities.MetadadosEmail; | ||
| 14 | -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | ||
| 15 | -import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; | ||
| 16 | -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; | ||
| 17 | import br.gov.planejamento.dipla.protocolo.mail.Mailer; | 7 | import br.gov.planejamento.dipla.protocolo.mail.Mailer; |
| 18 | import br.gov.planejamento.dipla.protocolo.repositories.ClassificacaoRepository; | 8 | import br.gov.planejamento.dipla.protocolo.repositories.ClassificacaoRepository; |
| 19 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; | 9 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; |
| 20 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | 10 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; |
| 21 | -import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; | ||
| 22 | -import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; | ||
| 23 | -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; | ||
| 24 | import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; | 11 | import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; |
| 25 | -import br.gov.planejamento.dipla.protocolo.repositories.filter.ProtocoloFilter; | ||
| 26 | -import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; | ||
| 27 | -import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; | ||
| 28 | import br.gov.planejamento.dipla.protocolo.services.ConfiguracaoEmailService; | 12 | import br.gov.planejamento.dipla.protocolo.services.ConfiguracaoEmailService; |
| 29 | import br.gov.planejamento.dipla.protocolo.services.ConfiguracaoService; | 13 | import br.gov.planejamento.dipla.protocolo.services.ConfiguracaoService; |
| 30 | -import br.gov.planejamento.dipla.protocolo.services.EnviarProtocoloService; | ||
| 31 | -import br.gov.planejamento.dipla.protocolo.services.SalvarProtocoloService; | ||
| 32 | -import br.gov.planejamento.dipla.protocolo.services.UnidadeService; | ||
| 33 | -import br.gov.planejamento.dipla.protocolo.services.ProtocoloFlagService; | ||
| 34 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| 35 | -import org.springframework.beans.factory.annotation.Value; | ||
| 36 | -import org.springframework.context.annotation.Bean; | ||
| 37 | import org.springframework.data.domain.Pageable; | 15 | import org.springframework.data.domain.Pageable; |
| 38 | import org.springframework.data.web.PageableDefault; | 16 | import org.springframework.data.web.PageableDefault; |
| 39 | -import org.springframework.http.MediaType; | ||
| 40 | -import org.springframework.http.ResponseEntity; | ||
| 41 | -import org.springframework.security.core.annotation.AuthenticationPrincipal; | ||
| 42 | import org.springframework.stereotype.Controller; | 17 | import org.springframework.stereotype.Controller; |
| 43 | -import org.springframework.util.CollectionUtils; | ||
| 44 | -import org.springframework.util.StringUtils; | ||
| 45 | import org.springframework.validation.BindingResult; | 18 | import org.springframework.validation.BindingResult; |
| 46 | -import org.springframework.web.bind.annotation.*; | 19 | +import org.springframework.web.bind.annotation.GetMapping; |
| 20 | +import org.springframework.web.bind.annotation.PathVariable; | ||
| 21 | +import org.springframework.web.bind.annotation.PostMapping; | ||
| 22 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 47 | import org.springframework.web.servlet.ModelAndView; | 23 | import org.springframework.web.servlet.ModelAndView; |
| 48 | import org.springframework.web.servlet.mvc.support.RedirectAttributes; | 24 | import org.springframework.web.servlet.mvc.support.RedirectAttributes; |
| 49 | -import java.util.Optional; | ||
| 50 | -import br.gov.planejamento.dipla.protocolo.response.Response; | ||
| 51 | -import br.gov.planejamento.dipla.protocolo.dto.ProtocoloFlagDTO; | ||
| 52 | 25 | ||
| 53 | import javax.servlet.http.HttpServletRequest; | 26 | import javax.servlet.http.HttpServletRequest; |
| 54 | import javax.validation.Valid; | 27 | import javax.validation.Valid; |
| 55 | - | ||
| 56 | -import java.util.ArrayList; | ||
| 57 | -import java.util.Date; | ||
| 58 | import java.util.Iterator; | 28 | import java.util.Iterator; |
| 59 | import java.util.List; | 29 | import java.util.List; |
| 60 | -import java.util.UUID; | ||
| 61 | -import org.springframework.validation.ObjectError; | ||
| 62 | 30 | ||
| 63 | 31 | ||
| 64 | /** | 32 | /** |
src/main/java/br/gov/planejamento/dipla/protocolo/controllers/LoginController.java
| 1 | package br.gov.planejamento.dipla.protocolo.controllers; | 1 | package br.gov.planejamento.dipla.protocolo.controllers; |
| 2 | 2 | ||
| 3 | +import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; | ||
| 4 | +import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; | ||
| 5 | +import br.gov.planejamento.dipla.protocolo.entities.Usuario; | ||
| 6 | +import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | ||
| 7 | +import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; | ||
| 8 | +import br.gov.planejamento.dipla.protocolo.security.LoginAttemptService; | ||
| 9 | +import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; | ||
| 10 | +import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; | ||
| 11 | +import br.gov.planejamento.dipla.protocolo.services.BrasilCidadaoService; | ||
| 3 | import org.slf4j.Logger; | 12 | import org.slf4j.Logger; |
| 4 | import org.slf4j.LoggerFactory; | 13 | import org.slf4j.LoggerFactory; |
| 5 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| 6 | import org.springframework.beans.factory.annotation.Value; | 15 | import org.springframework.beans.factory.annotation.Value; |
| 7 | -import org.springframework.http.HttpEntity; | ||
| 8 | -import org.springframework.http.HttpMethod; | ||
| 9 | -import org.springframework.http.ResponseEntity; | ||
| 10 | -import org.springframework.http.converter.StringHttpMessageConverter; | ||
| 11 | -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; | ||
| 12 | -import org.springframework.security.core.GrantedAuthority; | ||
| 13 | import org.springframework.security.core.annotation.AuthenticationPrincipal; | 16 | import org.springframework.security.core.annotation.AuthenticationPrincipal; |
| 14 | -import org.springframework.security.core.authority.SimpleGrantedAuthority; | ||
| 15 | import org.springframework.security.core.context.SecurityContextHolder; | 17 | import org.springframework.security.core.context.SecurityContextHolder; |
| 16 | import org.springframework.security.core.userdetails.User; | 18 | import org.springframework.security.core.userdetails.User; |
| 17 | -import org.springframework.security.crypto.password.PasswordEncoder; | ||
| 18 | import org.springframework.stereotype.Controller; | 19 | import org.springframework.stereotype.Controller; |
| 19 | -import org.springframework.web.bind.annotation.*; | ||
| 20 | import org.springframework.web.bind.annotation.GetMapping; | 20 | import org.springframework.web.bind.annotation.GetMapping; |
| 21 | -import org.springframework.web.bind.annotation.PathVariable; | ||
| 22 | import org.springframework.web.bind.annotation.RequestMapping; | 21 | import org.springframework.web.bind.annotation.RequestMapping; |
| 23 | -import org.springframework.web.bind.annotation.RequestMethod; | ||
| 24 | import org.springframework.web.bind.annotation.RequestParam; | 22 | import org.springframework.web.bind.annotation.RequestParam; |
| 25 | import org.springframework.web.servlet.ModelAndView; | 23 | import org.springframework.web.servlet.ModelAndView; |
| 26 | 24 | ||
| 27 | -import com.fasterxml.jackson.core.JsonParseException; | ||
| 28 | -import com.fasterxml.jackson.databind.JsonMappingException; | ||
| 29 | -import com.fasterxml.jackson.databind.ObjectMapper; | ||
| 30 | - | ||
| 31 | -import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; | ||
| 32 | -import br.gov.planejamento.dipla.protocolo.dto.TokenRetornoDto; | ||
| 33 | -import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; | ||
| 34 | -import br.gov.planejamento.dipla.protocolo.entities.Grupo; | ||
| 35 | -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | ||
| 36 | -import br.gov.planejamento.dipla.protocolo.entities.Usuario; | ||
| 37 | -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | ||
| 38 | -import br.gov.planejamento.dipla.protocolo.mail.Mailer; | ||
| 39 | -import br.gov.planejamento.dipla.protocolo.repositories.*; | ||
| 40 | -import br.gov.planejamento.dipla.protocolo.security.BrasilCidadaoUserDetails; | ||
| 41 | -import br.gov.planejamento.dipla.protocolo.security.LoginAttemptService; | ||
| 42 | -import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; | ||
| 43 | -import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; | ||
| 44 | -import br.gov.planejamento.dipla.protocolo.services.BrasilCidadaoService; | ||
| 45 | -import br.gov.planejamento.dipla.protocolo.services.CadastroUsuarioService; | ||
| 46 | - | ||
| 47 | -import java.io.IOException; | ||
| 48 | -import java.nio.charset.Charset; | ||
| 49 | -import java.util.ArrayList; | ||
| 50 | -import java.util.Arrays; | ||
| 51 | -import java.util.Collection; | ||
| 52 | -import java.util.Enumeration; | ||
| 53 | -import java.util.HashSet; | 25 | +import javax.servlet.http.HttpServletRequest; |
| 54 | import java.util.List; | 26 | import java.util.List; |
| 55 | import java.util.Optional; | 27 | import java.util.Optional; |
| 56 | -import java.util.Set; | ||
| 57 | - | ||
| 58 | - | ||
| 59 | -import javax.servlet.http.HttpServletRequest; | ||
| 60 | 28 | ||
| 61 | /** | 29 | /** |
| 62 | * @author Leonardo Dias | 30 | * @author Leonardo Dias |
| @@ -143,18 +111,21 @@ public class LoginController { | @@ -143,18 +111,21 @@ public class LoginController { | ||
| 143 | mv.addObject("email",usuarioretorno.getEmail()); | 111 | mv.addObject("email",usuarioretorno.getEmail()); |
| 144 | 112 | ||
| 145 | }else if(!usuarioBrasilCidadao.isPresent()) { | 113 | }else if(!usuarioBrasilCidadao.isPresent()) { |
| 146 | - | ||
| 147 | - //Primeiro Acesso | ||
| 148 | - if(!usuarioEmailExistente.isPresent()) { | ||
| 149 | - autoCadastroService.cadastrarBrasilCidadao(usuarioretorno); | ||
| 150 | - } | ||
| 151 | - autoCadastroService.migrarBrasilCidadao(usuarioretorno); | ||
| 152 | - autoCadastroService.enviarConsiliacaoUsuario(usuarioBrasilCidadao.get(),usuarioretorno.getEmail(),baseUrl); | ||
| 153 | - mv.addObject("modalConfirmacaoBrasilCidadao",true); | ||
| 154 | - mv.addObject("email",usuarioretorno.getEmail()); | ||
| 155 | - } | ||
| 156 | - | ||
| 157 | - } | 114 | + |
| 115 | + Usuario usuario = new Usuario(); | ||
| 116 | + | ||
| 117 | + //Primeiro Acesso | ||
| 118 | + if(!usuarioEmailExistente.isPresent()) { | ||
| 119 | + usuario = autoCadastroService.cadastrarBrasilCidadao(usuarioretorno); | ||
| 120 | + }else{ | ||
| 121 | + usuario = usuarioEmailExistente.get(); | ||
| 122 | + } | ||
| 123 | + UsuarioBrasilCidadao usuarioBrasilCidadaoRetorno = autoCadastroService.migrarBrasilCidadao(usuarioretorno, usuario); | ||
| 124 | + autoCadastroService.enviarConsiliacaoUsuario(usuarioBrasilCidadaoRetorno, usuario.getEmail(),baseUrl); | ||
| 125 | + mv.addObject("modalConfirmacaoBrasilCidadao",true); | ||
| 126 | + mv.addObject("email",usuarioretorno.getEmail()); | ||
| 127 | + } | ||
| 128 | + } | ||
| 158 | }catch (Exception e){ | 129 | }catch (Exception e){ |
| 159 | msgErro=e.getMessage(); | 130 | msgErro=e.getMessage(); |
| 160 | } | 131 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/controllers/ProtocoloController.java
| @@ -3,16 +3,18 @@ package br.gov.planejamento.dipla.protocolo.controllers; | @@ -3,16 +3,18 @@ package br.gov.planejamento.dipla.protocolo.controllers; | ||
| 3 | import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; | 3 | import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; |
| 4 | import br.gov.planejamento.dipla.protocolo.controllers.sessions.ArquivosSession; | 4 | import br.gov.planejamento.dipla.protocolo.controllers.sessions.ArquivosSession; |
| 5 | import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; | 5 | import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; |
| 6 | +import br.gov.planejamento.dipla.protocolo.dto.ProtocoloFlagDTO; | ||
| 6 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | 7 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; |
| 7 | import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; | 8 | import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; |
| 8 | import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; | 9 | import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; |
| 9 | import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; | 10 | import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; |
| 10 | import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; | 11 | import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; |
| 11 | import br.gov.planejamento.dipla.protocolo.repositories.filter.ProtocoloFilter; | 12 | import br.gov.planejamento.dipla.protocolo.repositories.filter.ProtocoloFilter; |
| 13 | +import br.gov.planejamento.dipla.protocolo.response.Response; | ||
| 12 | import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; | 14 | import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; |
| 13 | import br.gov.planejamento.dipla.protocolo.services.*; | 15 | import br.gov.planejamento.dipla.protocolo.services.*; |
| 16 | +import org.hibernate.service.spi.ServiceException; | ||
| 14 | import org.springframework.beans.factory.annotation.Autowired; | 17 | import org.springframework.beans.factory.annotation.Autowired; |
| 15 | -import org.springframework.beans.factory.annotation.Value; | ||
| 16 | import org.springframework.data.domain.Pageable; | 18 | import org.springframework.data.domain.Pageable; |
| 17 | import org.springframework.data.web.PageableDefault; | 19 | import org.springframework.data.web.PageableDefault; |
| 18 | import org.springframework.http.ResponseEntity; | 20 | import org.springframework.http.ResponseEntity; |
| @@ -23,391 +25,396 @@ import org.springframework.util.StringUtils; | @@ -23,391 +25,396 @@ import org.springframework.util.StringUtils; | ||
| 23 | import org.springframework.validation.BindingResult; | 25 | import org.springframework.validation.BindingResult; |
| 24 | import org.springframework.web.bind.annotation.*; | 26 | import org.springframework.web.bind.annotation.*; |
| 25 | import org.springframework.web.servlet.ModelAndView; | 27 | import org.springframework.web.servlet.ModelAndView; |
| 28 | +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; | ||
| 26 | import org.springframework.web.servlet.mvc.support.RedirectAttributes; | 29 | import org.springframework.web.servlet.mvc.support.RedirectAttributes; |
| 27 | 30 | ||
| 28 | -import java.io.IOException; | ||
| 29 | -import java.util.Optional; | ||
| 30 | -import br.gov.planejamento.dipla.protocolo.response.Response; | ||
| 31 | -import br.gov.planejamento.dipla.protocolo.dto.ProtocoloFlagDTO; | ||
| 32 | - | ||
| 33 | import javax.servlet.http.HttpServletRequest; | 31 | import javax.servlet.http.HttpServletRequest; |
| 34 | import javax.validation.Valid; | 32 | import javax.validation.Valid; |
| 35 | - | ||
| 36 | -import java.util.HashMap; | 33 | +import java.io.IOException; |
| 37 | import java.util.List; | 34 | import java.util.List; |
| 38 | -import java.util.Map; | 35 | +import java.util.Optional; |
| 39 | import java.util.UUID; | 36 | import java.util.UUID; |
| 40 | import java.util.concurrent.CompletableFuture; | 37 | import java.util.concurrent.CompletableFuture; |
| 41 | 38 | ||
| 42 | -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; | ||
| 43 | - | ||
| 44 | -import org.hibernate.service.spi.ServiceException; | ||
| 45 | - | ||
| 46 | - | ||
| 47 | /** | 39 | /** |
| 48 | * @author Leonardo Dias | 40 | * @author Leonardo Dias |
| 49 | */ | 41 | */ |
| 50 | @Controller | 42 | @Controller |
| 51 | public class ProtocoloController { | 43 | public class ProtocoloController { |
| 52 | 44 | ||
| 53 | - @Autowired | ||
| 54 | - private ArquivosSession arquivosSession; | ||
| 55 | - | ||
| 56 | - @Autowired | ||
| 57 | - private TiposDocumentoRepository tipoDocumentoRepository; | ||
| 58 | - | ||
| 59 | - @Autowired | ||
| 60 | - private UsuarioRepository usuarioRepository; | ||
| 61 | - | ||
| 62 | - @Autowired | ||
| 63 | - private ProtocoloRepository protocoloRepository; | ||
| 64 | - | ||
| 65 | - @Autowired | ||
| 66 | - private EnviarProtocoloService enviarProtocoloService; | ||
| 67 | - | ||
| 68 | - @Autowired | ||
| 69 | - private SalvarProtocoloService salvarProtocoloService; | ||
| 70 | - | ||
| 71 | - @Autowired | ||
| 72 | - private UnidadeService unidadeService; | ||
| 73 | - | ||
| 74 | - @Autowired | ||
| 75 | - private ProtocoloFlagService protocoloFlagService; | ||
| 76 | - | ||
| 77 | - @Autowired | ||
| 78 | - private EventServerService eventServerService; | ||
| 79 | - | ||
| 80 | - private final int DEFAULT_PAGEABLE_SIZE = 10; | ||
| 81 | - | ||
| 82 | - @GetMapping("/") | ||
| 83 | - public ModelAndView principal(Protocolo protocolo, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { | ||
| 84 | - List<String> permissoes = usuarioRepository.permissoes(usuarioSistema.getUsuario()); | ||
| 85 | - if (permissoes.contains("ROLE_CADASTRO") & usuarioSistema.getUsuario().getTemPerfilBrasilCidadao() == null) { | ||
| 86 | - ModelAndView mv = new ModelAndView("Dashboard"); | ||
| 87 | - mv.addObject("usuario", usuarioSistema.getUsuario()); | ||
| 88 | - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 89 | - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 90 | - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 91 | - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 92 | - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 93 | - mv.addObject("unidades", unidadeService.obterUnidades()); | ||
| 94 | - return mv; | ||
| 95 | - } | ||
| 96 | - | ||
| 97 | - return enviar(protocolo, usuarioSistema); | ||
| 98 | - } | ||
| 99 | - | ||
| 100 | - @GetMapping("/pendentes") | ||
| 101 | - public ModelAndView pesquisaProtocolosPendentes(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 102 | - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosPendentes"); | ||
| 103 | - filter.setStatus(StatusEnum.PENDENTE); | ||
| 104 | - PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); | ||
| 105 | - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 106 | - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 107 | - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 108 | - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 109 | - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 110 | - mv.addObject("pagina", paginaWrapper); | ||
| 111 | - return mv; | ||
| 112 | - } | ||
| 113 | - | ||
| 114 | - @GetMapping("/aprovados") | ||
| 115 | - public ModelAndView pesquisaProtocolosAprovados(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 116 | - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAprovados"); | ||
| 117 | - filter.setStatus(StatusEnum.APROVADO); | ||
| 118 | - PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); | ||
| 119 | - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 120 | - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 121 | - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 122 | - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 123 | - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 124 | - mv.addObject("pagina", paginaWrapper); | ||
| 125 | - return mv; | ||
| 126 | - } | ||
| 127 | - | ||
| 128 | - @GetMapping("/aprovadosManualmente") | ||
| 129 | - public ModelAndView pesquisaProtocolosAprovadosManualmente(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 130 | - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAprovadosManualmente"); | ||
| 131 | - filter.setStatus(StatusEnum.APROVADO_MANUALMENTE); | ||
| 132 | - PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); | ||
| 133 | - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 134 | - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 135 | - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 136 | - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 137 | - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 138 | - mv.addObject("pagina", paginaWrapper); | ||
| 139 | - return mv; | ||
| 140 | - } | ||
| 141 | - | ||
| 142 | - @GetMapping("/reprovados") | ||
| 143 | - public ModelAndView pesquisaProtocolosReprovados(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 144 | - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosReprovados"); | ||
| 145 | - filter.setStatus(StatusEnum.REPROVADO); | ||
| 146 | - PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); | ||
| 147 | - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 148 | - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 149 | - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 150 | - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 151 | - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 152 | - mv.addObject("pagina", paginaWrapper); | ||
| 153 | - return mv; | ||
| 154 | - } | ||
| 155 | - | ||
| 156 | - @GetMapping("/analisando") | ||
| 157 | - public ModelAndView pesquisaProtocolosAnalisando(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 158 | - ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAnalisando"); | ||
| 159 | - filter.setStatus(StatusEnum.ANALISANDO); | ||
| 160 | - PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), httpServletRequest); | ||
| 161 | - mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 162 | - mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 163 | - mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 164 | - mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 165 | - mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 166 | - mv.addObject("pagina", paginaWrapper); | ||
| 167 | - return mv; | ||
| 168 | - } | ||
| 169 | - | ||
| 170 | - @GetMapping("/opcoes") | ||
| 171 | - public ModelAndView opcoes() { | ||
| 172 | - return new ModelAndView("/protocolo/OpcoesProtocolo"); | ||
| 173 | - } | ||
| 174 | - | ||
| 175 | - @GetMapping("/enviar") | ||
| 176 | - public ModelAndView enviar(Protocolo protocolo, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { | ||
| 177 | - if (StringUtils.isEmpty(protocolo.getUuid())) { | ||
| 178 | - protocolo.setUuid(UUID.randomUUID().toString()); | ||
| 179 | - protocolo.setPossuiProtocoloAnterior("N"); | ||
| 180 | - } | ||
| 181 | - ModelAndView mv = new ModelAndView("/protocolo/CadastroProtocolo"); | ||
| 182 | - mv.addObject("usuario", usuarioSistema.getUsuario()); | ||
| 183 | - mv.addObject("tiposDocumento", tipoDocumentoRepository.findByAtivo(true)); | ||
| 184 | - mv.addObject("unidades", unidadeService.obterUnidades()); | ||
| 185 | - return mv; | ||
| 186 | - } | ||
| 187 | - | ||
| 188 | - @PostMapping("/enviar") | ||
| 189 | - public ModelAndView enviar(@Valid Protocolo protocolo, BindingResult result, RedirectAttributes attributes, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { | ||
| 190 | - if ("S".equals(protocolo.getPossuiProtocoloAnterior()) && StringUtils.isEmpty(protocolo.getNumeroProtocoloAnterior())) { | ||
| 191 | - result.rejectValue("numeroProtocoloAnterior", "Número do protocolo Anterior é obrigatório.", "Número do protocolo Anterior é obrigatório."); | ||
| 192 | - return enviar(protocolo, usuarioSistema); | ||
| 193 | - } | ||
| 194 | - | ||
| 195 | - if (result.hasErrors()) { | ||
| 196 | - return enviar(protocolo, usuarioSistema); | ||
| 197 | - } | ||
| 198 | - | ||
| 199 | - List<ArquivoDTO> arquivoDTOList = arquivosSession.obterArquivos(protocolo.getUuid()); | ||
| 200 | - | ||
| 201 | - if (CollectionUtils.isEmpty(arquivoDTOList)) { | ||
| 202 | - String msg = "Nenhum arquivo anexado, favor incluir algum arquivo antes de efetuar a protocolização."; | ||
| 203 | - result.rejectValue("arquivo", msg, msg); | ||
| 204 | - return enviar(protocolo, usuarioSistema); | ||
| 205 | - } | ||
| 206 | - | ||
| 207 | - protocolo.setUsuario(usuarioSistema.getUsuario()); | ||
| 208 | - enviarProtocoloService.enviar(protocolo, arquivoDTOList); | ||
| 209 | - attributes.addFlashAttribute("mensagem", String.format("Protocolo Nº %s salvo com sucesso.", protocolo.getNumero())); | ||
| 210 | - return new ModelAndView("redirect:/enviar"); | ||
| 211 | - } | ||
| 212 | - | ||
| 213 | - @GetMapping("/meus-protocolos") | ||
| 214 | - public ModelAndView meusProtocolos(ProtocoloFilter filter, BindingResult result, @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { | ||
| 215 | - ModelAndView mv = new ModelAndView("protocolo/MeusProtocolos"); | ||
| 216 | - | ||
| 217 | - PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrarMeusProtocolos(usuarioSistema.getUsuario(), filter, pageable), httpServletRequest); | ||
| 218 | - mv.addObject("pagina", paginaWrapper); | ||
| 219 | - | ||
| 220 | - return mv; | ||
| 221 | - } | ||
| 222 | - | ||
| 223 | - @GetMapping("/reenvioRecibo/{codigo}") | ||
| 224 | - public @ResponseBody | ||
| 225 | - ResponseEntity<?> reenviarRecibo(@PathVariable("codigo") Protocolo protocolo,@RequestParam(value = "email", required = false) String email) { | ||
| 226 | - enviarProtocoloService.reenviarRecibo(protocolo,email); | ||
| 227 | - Response<String> response = new Response<String>(); | ||
| 228 | - String resposta=null; | ||
| 229 | - if(!email.isEmpty()||email!=null) { | ||
| 230 | - resposta=email; | ||
| 231 | - } | ||
| 232 | - if(!protocolo.getEmail1().isEmpty()&&protocolo.getEmail1()!=null&&protocolo.getEmail1()!="") { | ||
| 233 | - resposta=resposta+" "+protocolo.getEmail1(); | ||
| 234 | - } | ||
| 235 | - if(!protocolo.getEmail2().isEmpty()&&protocolo.getEmail2()!=null&&protocolo.getEmail2()!="") { | ||
| 236 | - resposta=resposta+" "+protocolo.getEmail2(); | ||
| 237 | - } | ||
| 238 | - if(!protocolo.getUsuario().getEmail().isEmpty()&&protocolo.getUsuario().getEmail()!=null&&protocolo.getUsuario().getEmail()!="") { | ||
| 239 | - resposta=resposta+" "+protocolo.getUsuario().getEmail(); | ||
| 240 | - } | ||
| 241 | - response.setData(resposta); | ||
| 242 | - return ResponseEntity.ok(response); | ||
| 243 | - } | ||
| 244 | - | ||
| 245 | - | ||
| 246 | - @RequestMapping("/stream") | ||
| 247 | - public SseEmitter enableNotifier(){ | ||
| 248 | - //SseEmitter notifier = new SseEmitter(); | ||
| 249 | - return eventServerService; | ||
| 250 | - } | ||
| 251 | - | ||
| 252 | - @PutMapping("/aprovar/{codigo}") | ||
| 253 | - public @ResponseBody | ||
| 254 | - ResponseEntity<?> aprovar(@PathVariable("codigo") Protocolo protocolo, @RequestParam(value = "sei", required = false) String sei, @RequestParam(value = "tipo", required = false) String tipo) { | ||
| 255 | - //SseEmitter sseEmitter = new SseEmitter(); | ||
| 256 | - CompletableFuture.supplyAsync( () -> { | ||
| 257 | - try { | ||
| 258 | - enviarProtocoloService.enviarSEI( protocolo, sei, tipo ); | ||
| 259 | - return "Sincronizado com Sucesso !"; | ||
| 260 | - } catch (ServiceException e) { | ||
| 261 | - return e.getMessage(); | ||
| 262 | - } catch (Exception e) { | ||
| 263 | - return e.getMessage(); | ||
| 264 | - } | ||
| 265 | - } ) | ||
| 266 | - .whenCompleteAsync( (result, throwable) -> { | ||
| 267 | - try { | ||
| 268 | - eventServerService.send( result ); | ||
| 269 | - } catch (IOException e) { | ||
| 270 | - e.printStackTrace(); | ||
| 271 | - } | ||
| 272 | - } ) | ||
| 273 | - .exceptionally( ex -> { | ||
| 274 | - try { | ||
| 275 | - eventServerService.send( ex.getMessage() ); | ||
| 276 | - } catch (Exception e) { | ||
| 277 | - e.printStackTrace(); | ||
| 278 | - } | ||
| 279 | - return "erro"; | ||
| 280 | - } ); | ||
| 281 | - | ||
| 282 | - return ResponseEntity.ok().build(); | ||
| 283 | - } | ||
| 284 | - | ||
| 285 | - @PutMapping("/aprovarManualmente/{sei}/{codigo}") | ||
| 286 | - public @ResponseBody | ||
| 287 | - ResponseEntity<?> aprovarManualmente(@PathVariable("sei") String sei, @PathVariable("codigo") Protocolo protocolo) { | ||
| 288 | - protocolo.setNupe(sei); | ||
| 289 | - salvarProtocoloService.aprovarManualmente(protocolo); | ||
| 290 | - return ResponseEntity.ok().build(); | ||
| 291 | - } | ||
| 292 | - | ||
| 293 | - @GetMapping("/aprovarManualmente/{sei}") | ||
| 294 | - public ResponseEntity<Response<String>> consultarSei(@PathVariable("sei") String sei) { | ||
| 295 | - Optional<String> linkSei = enviarProtocoloService.consultarSei(sei); | ||
| 296 | - Response<String> response = new Response<String>(); | ||
| 297 | - if (!linkSei.isPresent()) { | ||
| 298 | - response.getErrors().add("Nº SEI não encontrado: " + sei); | ||
| 299 | - return ResponseEntity.badRequest().body(response); | ||
| 300 | - } | ||
| 301 | - response.setData(linkSei.get()); | ||
| 302 | - return ResponseEntity.ok(response); | ||
| 303 | - } | ||
| 304 | - | ||
| 305 | - @PutMapping("/reprovar/{codigo}") | ||
| 306 | - public @ResponseBody | ||
| 307 | - ResponseEntity<?> reprovar(@PathVariable("codigo") Protocolo protocolo, @RequestBody String observacao) { | ||
| 308 | - protocolo.setObservacao(observacao); | ||
| 309 | - enviarProtocoloService.recusar(protocolo); | ||
| 310 | - return ResponseEntity.ok().build(); | ||
| 311 | - } | ||
| 312 | - | ||
| 313 | - /** | ||
| 314 | - * atulizado o status de pendente para analise na tabela protocolo | ||
| 315 | - * | ||
| 316 | - * @param protocolo | ||
| 317 | - * @return ResponseEntity | ||
| 318 | - */ | ||
| 319 | - @PutMapping("/atualizarFlag/{codigo}") | ||
| 320 | - public @ResponseBody | ||
| 321 | - ResponseEntity<?> atualizarflag(@PathVariable("codigo") Protocolo protocolo) { | ||
| 322 | - salvarProtocoloService.analisando(protocolo); | ||
| 323 | - return ResponseEntity.ok().build(); | ||
| 324 | - } | ||
| 325 | - | ||
| 326 | - /** | ||
| 327 | - * atulizado o status para pendente | ||
| 328 | - * | ||
| 329 | - * @param protocolo | ||
| 330 | - * @return ResponseEntity | ||
| 331 | - */ | ||
| 332 | - @PutMapping("/atuzalizarFlagPendente/{codigo}") | ||
| 333 | - public @ResponseBody | ||
| 334 | - ResponseEntity<?> atuzalizarFlagPendente(@PathVariable("codigo") Protocolo protocolo) { | ||
| 335 | - salvarProtocoloService.pendente(protocolo); | ||
| 336 | - return ResponseEntity.ok().build(); | ||
| 337 | - } | ||
| 338 | - | ||
| 339 | - /** | ||
| 340 | - * método para reprovar o protocolo | ||
| 341 | - * | ||
| 342 | - * @param protocolo | ||
| 343 | - * @return ResponseEntity | ||
| 344 | - */ | ||
| 345 | - @PutMapping("/atuzalizarFlagReprovado/{codigo}") | ||
| 346 | - public @ResponseBody | ||
| 347 | - ResponseEntity<?> atuzalizarFlagReprovado(@PathVariable("codigo") Protocolo protocolo) { | ||
| 348 | - salvarProtocoloService.reprovar(protocolo); | ||
| 349 | - return ResponseEntity.ok().build(); | ||
| 350 | - } | ||
| 351 | - | ||
| 352 | - /** | ||
| 353 | - * método para retirar o protocolo da análise | ||
| 354 | - * | ||
| 355 | - * @param protocolo | ||
| 356 | - * @return ResponseEntity | ||
| 357 | - */ | ||
| 358 | - @PutMapping("/retirarAnalise") | ||
| 359 | - public @ResponseBody | ||
| 360 | - ResponseEntity<?> retirarAnalise(@RequestParam("codigo") Protocolo protocolo) { | ||
| 361 | - salvarProtocoloService.pendente(protocolo); | ||
| 362 | - return ResponseEntity.ok().build(); | ||
| 363 | - } | ||
| 364 | - | ||
| 365 | - /** | ||
| 366 | - * método para retirar o protocolo da análise e deixar reprovado | ||
| 367 | - * | ||
| 368 | - * @param protocolo | ||
| 369 | - * @return ResponseEntity | ||
| 370 | - */ | ||
| 371 | - @PutMapping("/retirarAnaliseReprovado") | ||
| 372 | - public @ResponseBody | ||
| 373 | - ResponseEntity<?> retirarAnaliseReprovado(@RequestParam("codigo") Protocolo protocolo) { | ||
| 374 | - salvarProtocoloService.reprovar(protocolo); | ||
| 375 | - return ResponseEntity.ok().build(); | ||
| 376 | - } | ||
| 377 | - | ||
| 378 | - /** | ||
| 379 | - * busca o status passado o código | ||
| 380 | - * | ||
| 381 | - * @param codigo | ||
| 382 | - * @return ResponseEntity | ||
| 383 | - */ | ||
| 384 | - @GetMapping(value = "/buscarFlag/{codigo}") | ||
| 385 | - public ResponseEntity<Response<ProtocoloFlagDTO>> buscarStatusPorCodigp(@PathVariable("codigo") Long codigo) { | ||
| 386 | - Response<ProtocoloFlagDTO> response = new Response<ProtocoloFlagDTO>(); | ||
| 387 | - Optional<Protocolo> protocolo = protocoloFlagService.buscarStatusPorCodigo(codigo); | ||
| 388 | - | ||
| 389 | - if (!protocolo.isPresent()) { | ||
| 390 | - response.getErrors().add("Status não encontrado para o código: " + codigo); | ||
| 391 | - return ResponseEntity.badRequest().body(response); | ||
| 392 | - } | ||
| 393 | - | ||
| 394 | - response.setData(this.converterProtocoloFlagDto(protocolo.get())); | ||
| 395 | - return ResponseEntity.ok(response); | ||
| 396 | - } | ||
| 397 | - | ||
| 398 | - /** | ||
| 399 | - * convertendo a entidade para objeto DTO | ||
| 400 | - * | ||
| 401 | - * @param protocolo | ||
| 402 | - * @return protocoloFlagDTO | ||
| 403 | - */ | ||
| 404 | - private ProtocoloFlagDTO converterProtocoloFlagDto(Protocolo protocolo) { | ||
| 405 | - ProtocoloFlagDTO protocoloFlagDTO = new ProtocoloFlagDTO(); | ||
| 406 | - protocoloFlagDTO.setStatus(protocolo.getStatus().toString()); | ||
| 407 | - //protocoloFlagDTO.setObservacao(Optional.of(protocolo.getObservacao().toString())); | ||
| 408 | - //protocoloFlagDTO.setObservacao().ifPresent(x -> protocolo.getObservacao(x.toString())); | ||
| 409 | - protocolo.getObservacaoOpt().ifPresent(observacao -> protocoloFlagDTO.setObservacao(Optional.of(observacao.toString()))); | ||
| 410 | - return protocoloFlagDTO; | ||
| 411 | - } | 45 | + @Autowired |
| 46 | + private ArquivosSession arquivosSession; | ||
| 47 | + | ||
| 48 | + @Autowired | ||
| 49 | + private TiposDocumentoRepository tipoDocumentoRepository; | ||
| 50 | + | ||
| 51 | + @Autowired | ||
| 52 | + private UsuarioRepository usuarioRepository; | ||
| 53 | + | ||
| 54 | + @Autowired | ||
| 55 | + private ProtocoloRepository protocoloRepository; | ||
| 56 | + | ||
| 57 | + @Autowired | ||
| 58 | + private EnviarProtocoloService enviarProtocoloService; | ||
| 59 | + | ||
| 60 | + @Autowired | ||
| 61 | + private SalvarProtocoloService salvarProtocoloService; | ||
| 62 | + | ||
| 63 | + @Autowired | ||
| 64 | + private UnidadeService unidadeService; | ||
| 65 | + | ||
| 66 | + @Autowired | ||
| 67 | + private ProtocoloFlagService protocoloFlagService; | ||
| 68 | + | ||
| 69 | + @Autowired | ||
| 70 | + private EventServerService eventServerService; | ||
| 71 | + | ||
| 72 | + private final int DEFAULT_PAGEABLE_SIZE = 10; | ||
| 73 | + | ||
| 74 | + @GetMapping("/") | ||
| 75 | + public ModelAndView principal(Protocolo protocolo, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { | ||
| 76 | + List<String> permissoes = usuarioRepository.permissoes(usuarioSistema.getUsuario()); | ||
| 77 | + if (permissoes.contains("ROLE_CADASTRO") & usuarioSistema.getUsuario().getTemPerfilBrasilCidadao() == null) { | ||
| 78 | + ModelAndView mv = new ModelAndView("Dashboard"); | ||
| 79 | + mv.addObject("usuario", usuarioSistema.getUsuario()); | ||
| 80 | + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 81 | + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 82 | + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 83 | + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 84 | + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 85 | + mv.addObject("unidades", unidadeService.obterUnidades()); | ||
| 86 | + return mv; | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + return enviar(protocolo, usuarioSistema); | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + @GetMapping("/pendentes") | ||
| 93 | + public ModelAndView pesquisaProtocolosPendentes(ProtocoloFilter filter, BindingResult result, | ||
| 94 | + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 95 | + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosPendentes"); | ||
| 96 | + filter.setStatus(StatusEnum.PENDENTE); | ||
| 97 | + PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), | ||
| 98 | + httpServletRequest); | ||
| 99 | + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 100 | + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 101 | + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 102 | + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 103 | + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 104 | + mv.addObject("pagina", paginaWrapper); | ||
| 105 | + return mv; | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + @GetMapping("/aprovados") | ||
| 109 | + public ModelAndView pesquisaProtocolosAprovados(ProtocoloFilter filter, BindingResult result, | ||
| 110 | + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 111 | + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAprovados"); | ||
| 112 | + filter.setStatus(StatusEnum.APROVADO); | ||
| 113 | + PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), | ||
| 114 | + httpServletRequest); | ||
| 115 | + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 116 | + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 117 | + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 118 | + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 119 | + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 120 | + mv.addObject("pagina", paginaWrapper); | ||
| 121 | + return mv; | ||
| 122 | + } | ||
| 123 | + | ||
| 124 | + @GetMapping("/aprovadosManualmente") | ||
| 125 | + public ModelAndView pesquisaProtocolosAprovadosManualmente(ProtocoloFilter filter, BindingResult result, | ||
| 126 | + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 127 | + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAprovadosManualmente"); | ||
| 128 | + filter.setStatus(StatusEnum.APROVADO_MANUALMENTE); | ||
| 129 | + PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), | ||
| 130 | + httpServletRequest); | ||
| 131 | + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 132 | + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 133 | + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 134 | + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 135 | + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 136 | + mv.addObject("pagina", paginaWrapper); | ||
| 137 | + return mv; | ||
| 138 | + } | ||
| 139 | + | ||
| 140 | + @GetMapping("/reprovados") | ||
| 141 | + public ModelAndView pesquisaProtocolosReprovados(ProtocoloFilter filter, BindingResult result, | ||
| 142 | + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 143 | + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosReprovados"); | ||
| 144 | + filter.setStatus(StatusEnum.REPROVADO); | ||
| 145 | + PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), | ||
| 146 | + httpServletRequest); | ||
| 147 | + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 148 | + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 149 | + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 150 | + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 151 | + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 152 | + mv.addObject("pagina", paginaWrapper); | ||
| 153 | + return mv; | ||
| 154 | + } | ||
| 155 | + | ||
| 156 | + @GetMapping("/analisando") | ||
| 157 | + public ModelAndView pesquisaProtocolosAnalisando(ProtocoloFilter filter, BindingResult result, | ||
| 158 | + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest) { | ||
| 159 | + ModelAndView mv = new ModelAndView("protocolo/PesquisaProtocolosAnalisando"); | ||
| 160 | + filter.setStatus(StatusEnum.ANALISANDO); | ||
| 161 | + PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>(protocoloRepository.filtrar(filter, pageable), | ||
| 162 | + httpServletRequest); | ||
| 163 | + mv.addObject("protocolosAprovados", protocoloRepository.protocolosAprovados()); | ||
| 164 | + mv.addObject("protocolosAprovadosManualmente", protocoloRepository.protocolosAprovadosManualmente()); | ||
| 165 | + mv.addObject("protocolosReprovados", protocoloRepository.protocolosReprovados()); | ||
| 166 | + mv.addObject("protocolosPendentes", protocoloRepository.protocolosPendentes()); | ||
| 167 | + mv.addObject("protocolosAnalise", protocoloRepository.protocolosAnalisando()); | ||
| 168 | + mv.addObject("pagina", paginaWrapper); | ||
| 169 | + return mv; | ||
| 170 | + } | ||
| 171 | + | ||
| 172 | + @GetMapping("/opcoes") | ||
| 173 | + public ModelAndView opcoes() { | ||
| 174 | + return new ModelAndView("/protocolo/OpcoesProtocolo"); | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + @GetMapping("/enviar") | ||
| 178 | + public ModelAndView enviar(Protocolo protocolo, @AuthenticationPrincipal UsuarioSistema usuarioSistema) { | ||
| 179 | + if (StringUtils.isEmpty(protocolo.getUuid())) { | ||
| 180 | + protocolo.setUuid(UUID.randomUUID().toString()); | ||
| 181 | + protocolo.setPossuiProtocoloAnterior("N"); | ||
| 182 | + } | ||
| 183 | + ModelAndView mv = new ModelAndView("/protocolo/CadastroProtocolo"); | ||
| 184 | + mv.addObject("usuario", usuarioSistema.getUsuario()); | ||
| 185 | + mv.addObject("tiposDocumento", tipoDocumentoRepository.findByAtivo(true)); | ||
| 186 | + mv.addObject("unidades", unidadeService.obterUnidades()); | ||
| 187 | + return mv; | ||
| 188 | + } | ||
| 189 | + | ||
| 190 | + @PostMapping("/enviar") | ||
| 191 | + public ModelAndView enviar(@Valid Protocolo protocolo, BindingResult result, RedirectAttributes attributes, | ||
| 192 | + @AuthenticationPrincipal UsuarioSistema usuarioSistema) { | ||
| 193 | + if ("S".equals(protocolo.getPossuiProtocoloAnterior()) | ||
| 194 | + && StringUtils.isEmpty(protocolo.getNumeroProtocoloAnterior())) { | ||
| 195 | + result.rejectValue("numeroProtocoloAnterior", "Número do protocolo Anterior é obrigatório.", | ||
| 196 | + "Número do protocolo Anterior é obrigatório."); | ||
| 197 | + return enviar(protocolo, usuarioSistema); | ||
| 198 | + } | ||
| 199 | + | ||
| 200 | + if (result.hasErrors()) { | ||
| 201 | + return enviar(protocolo, usuarioSistema); | ||
| 202 | + } | ||
| 203 | + | ||
| 204 | + List<ArquivoDTO> arquivoDTOList = arquivosSession.obterArquivos(protocolo.getUuid()); | ||
| 205 | + | ||
| 206 | + if (CollectionUtils.isEmpty(arquivoDTOList)) { | ||
| 207 | + String msg = "Nenhum arquivo anexado, favor incluir algum arquivo antes de efetuar a protocolização."; | ||
| 208 | + result.rejectValue("arquivo", msg, msg); | ||
| 209 | + return enviar(protocolo, usuarioSistema); | ||
| 210 | + } | ||
| 211 | + | ||
| 212 | + protocolo.setUsuario(usuarioSistema.getUsuario()); | ||
| 213 | + enviarProtocoloService.enviar(protocolo, arquivoDTOList); | ||
| 214 | + attributes.addFlashAttribute("mensagem", | ||
| 215 | + String.format("Protocolo Nº %s salvo com sucesso.", protocolo.getNumero())); | ||
| 216 | + return new ModelAndView("redirect:/enviar"); | ||
| 217 | + } | ||
| 218 | + | ||
| 219 | + @GetMapping("/meus-protocolos") | ||
| 220 | + public ModelAndView meusProtocolos(ProtocoloFilter filter, BindingResult result, | ||
| 221 | + @PageableDefault(size = DEFAULT_PAGEABLE_SIZE) Pageable pageable, HttpServletRequest httpServletRequest, | ||
| 222 | + @AuthenticationPrincipal UsuarioSistema usuarioSistema) { | ||
| 223 | + ModelAndView mv = new ModelAndView("protocolo/MeusProtocolos"); | ||
| 224 | + | ||
| 225 | + PageWrapper<Protocolo> paginaWrapper = new PageWrapper<>( | ||
| 226 | + protocoloRepository.filtrarMeusProtocolos(usuarioSistema.getUsuario(), filter, pageable), | ||
| 227 | + httpServletRequest); | ||
| 228 | + mv.addObject("pagina", paginaWrapper); | ||
| 229 | + | ||
| 230 | + return mv; | ||
| 231 | + } | ||
| 232 | + | ||
| 233 | + @GetMapping("/reenvioRecibo/{codigo}") | ||
| 234 | + public @ResponseBody ResponseEntity<?> reenviarRecibo(@PathVariable("codigo") Protocolo protocolo, | ||
| 235 | + @RequestParam(value = "email", required = false) String email) { | ||
| 236 | + enviarProtocoloService.reenviarRecibo(protocolo, email); | ||
| 237 | + Response<String> response = new Response<String>(); | ||
| 238 | + String resposta = null; | ||
| 239 | + if (!email.isEmpty() || email != null) { | ||
| 240 | + resposta = email; | ||
| 241 | + } | ||
| 242 | + if (!protocolo.getEmail1().isEmpty() && protocolo.getEmail1() != null && protocolo.getEmail1() != "") { | ||
| 243 | + resposta = resposta + " " + protocolo.getEmail1(); | ||
| 244 | + } | ||
| 245 | + if (!protocolo.getEmail2().isEmpty() && protocolo.getEmail2() != null && protocolo.getEmail2() != "") { | ||
| 246 | + resposta = resposta + " " + protocolo.getEmail2(); | ||
| 247 | + } | ||
| 248 | + if (!protocolo.getUsuario().getEmail().isEmpty() && protocolo.getUsuario().getEmail() != null | ||
| 249 | + && protocolo.getUsuario().getEmail() != "") { | ||
| 250 | + resposta = resposta + " " + protocolo.getUsuario().getEmail(); | ||
| 251 | + } | ||
| 252 | + response.setData(resposta); | ||
| 253 | + return ResponseEntity.ok(response); | ||
| 254 | + } | ||
| 255 | + | ||
| 256 | + @RequestMapping("/stream") | ||
| 257 | + public SseEmitter enableNotifier() { | ||
| 258 | + // SseEmitter notifier = new SseEmitter(); | ||
| 259 | + return eventServerService; | ||
| 260 | + } | ||
| 261 | + | ||
| 262 | + @PutMapping("/aprovar/{codigo}") | ||
| 263 | + public @ResponseBody ResponseEntity<?> aprovar(@PathVariable("codigo") Protocolo protocolo, | ||
| 264 | + @RequestParam(value = "sei", required = false) String sei, | ||
| 265 | + @RequestParam(value = "tipo", required = false) String tipo, | ||
| 266 | + @RequestParam(value = "idSei") String idSei) { | ||
| 267 | + // SseEmitter sseEmitter = new SseEmitter(); | ||
| 268 | + CompletableFuture.supplyAsync(() -> { | ||
| 269 | + try { | ||
| 270 | + enviarProtocoloService.enviarSEI(protocolo, sei, tipo, idSei); | ||
| 271 | + return "Sincronizado com Sucesso !"; | ||
| 272 | + } catch (ServiceException e) { | ||
| 273 | + return e.getMessage(); | ||
| 274 | + } catch (Exception e) { | ||
| 275 | + return e.getMessage(); | ||
| 276 | + } | ||
| 277 | + }).whenCompleteAsync((result, throwable) -> { | ||
| 278 | + try { | ||
| 279 | + eventServerService.send(result); | ||
| 280 | + } catch (IOException e) { | ||
| 281 | + e.printStackTrace(); | ||
| 282 | + } | ||
| 283 | + }).exceptionally(ex -> { | ||
| 284 | + try { | ||
| 285 | + eventServerService.send(ex.getMessage()); | ||
| 286 | + } catch (Exception e) { | ||
| 287 | + e.printStackTrace(); | ||
| 288 | + } | ||
| 289 | + return "erro"; | ||
| 290 | + }); | ||
| 291 | + | ||
| 292 | + return ResponseEntity.ok().build(); | ||
| 293 | + } | ||
| 294 | + | ||
| 295 | + @PutMapping("/aprovarManualmente/{sei}/{codigo}") | ||
| 296 | + public @ResponseBody ResponseEntity<?> aprovarManualmente(@PathVariable("sei") String sei, | ||
| 297 | + @PathVariable("codigo") Protocolo protocolo) { | ||
| 298 | + protocolo.setNupe(sei); | ||
| 299 | + salvarProtocoloService.aprovarManualmente(protocolo); | ||
| 300 | + return ResponseEntity.ok().build(); | ||
| 301 | + } | ||
| 302 | + | ||
| 303 | + @GetMapping("/aprovarManualmente/{sei}") | ||
| 304 | + public ResponseEntity<Response<String>> consultarSei(@PathVariable("sei") String sei) { | ||
| 305 | + Optional<String> linkSei = enviarProtocoloService.consultarSei(sei); | ||
| 306 | + Response<String> response = new Response<String>(); | ||
| 307 | + if (!linkSei.isPresent()) { | ||
| 308 | + response.getErrors().add("Nº SEI não encontrado: " + sei); | ||
| 309 | + return ResponseEntity.badRequest().body(response); | ||
| 310 | + } | ||
| 311 | + response.setData(linkSei.get()); | ||
| 312 | + return ResponseEntity.ok(response); | ||
| 313 | + } | ||
| 314 | + | ||
| 315 | + @PutMapping("/reprovar/{codigo}") | ||
| 316 | + public @ResponseBody ResponseEntity<?> reprovar(@PathVariable("codigo") Protocolo protocolo, | ||
| 317 | + @RequestBody String observacao) { | ||
| 318 | + protocolo.setObservacao(observacao); | ||
| 319 | + enviarProtocoloService.recusar(protocolo); | ||
| 320 | + return ResponseEntity.ok().build(); | ||
| 321 | + } | ||
| 322 | + | ||
| 323 | + /** | ||
| 324 | + * atulizado o status de pendente para analise na tabela protocolo | ||
| 325 | + * | ||
| 326 | + * @param protocolo | ||
| 327 | + * @return ResponseEntity | ||
| 328 | + */ | ||
| 329 | + @PutMapping("/atualizarFlag/{codigo}") | ||
| 330 | + public @ResponseBody ResponseEntity<?> atualizarflag(@PathVariable("codigo") Protocolo protocolo) { | ||
| 331 | + salvarProtocoloService.analisando(protocolo); | ||
| 332 | + return ResponseEntity.ok().build(); | ||
| 333 | + } | ||
| 334 | + | ||
| 335 | + /** | ||
| 336 | + * atulizado o status para pendente | ||
| 337 | + * | ||
| 338 | + * @param protocolo | ||
| 339 | + * @return ResponseEntity | ||
| 340 | + */ | ||
| 341 | + @PutMapping("/atuzalizarFlagPendente/{codigo}") | ||
| 342 | + public @ResponseBody ResponseEntity<?> atuzalizarFlagPendente(@PathVariable("codigo") Protocolo protocolo) { | ||
| 343 | + salvarProtocoloService.pendente(protocolo); | ||
| 344 | + return ResponseEntity.ok().build(); | ||
| 345 | + } | ||
| 346 | + | ||
| 347 | + /** | ||
| 348 | + * método para reprovar o protocolo | ||
| 349 | + * | ||
| 350 | + * @param protocolo | ||
| 351 | + * @return ResponseEntity | ||
| 352 | + */ | ||
| 353 | + @PutMapping("/atuzalizarFlagReprovado/{codigo}") | ||
| 354 | + public @ResponseBody ResponseEntity<?> atuzalizarFlagReprovado(@PathVariable("codigo") Protocolo protocolo) { | ||
| 355 | + salvarProtocoloService.reprovar(protocolo); | ||
| 356 | + return ResponseEntity.ok().build(); | ||
| 357 | + } | ||
| 358 | + | ||
| 359 | + /** | ||
| 360 | + * método para retirar o protocolo da análise | ||
| 361 | + * | ||
| 362 | + * @param protocolo | ||
| 363 | + * @return ResponseEntity | ||
| 364 | + */ | ||
| 365 | + @PutMapping("/retirarAnalise") | ||
| 366 | + public @ResponseBody ResponseEntity<?> retirarAnalise(@RequestParam("codigo") Protocolo protocolo) { | ||
| 367 | + salvarProtocoloService.pendente(protocolo); | ||
| 368 | + return ResponseEntity.ok().build(); | ||
| 369 | + } | ||
| 370 | + | ||
| 371 | + /** | ||
| 372 | + * método para retirar o protocolo da análise e deixar reprovado | ||
| 373 | + * | ||
| 374 | + * @param protocolo | ||
| 375 | + * @return ResponseEntity | ||
| 376 | + */ | ||
| 377 | + @PutMapping("/retirarAnaliseReprovado") | ||
| 378 | + public @ResponseBody ResponseEntity<?> retirarAnaliseReprovado(@RequestParam("codigo") Protocolo protocolo) { | ||
| 379 | + salvarProtocoloService.reprovar(protocolo); | ||
| 380 | + return ResponseEntity.ok().build(); | ||
| 381 | + } | ||
| 382 | + | ||
| 383 | + /** | ||
| 384 | + * busca o status passado o código | ||
| 385 | + * | ||
| 386 | + * @param codigo | ||
| 387 | + * @return ResponseEntity | ||
| 388 | + */ | ||
| 389 | + @GetMapping(value = "/buscarFlag/{codigo}") | ||
| 390 | + public ResponseEntity<Response<ProtocoloFlagDTO>> buscarStatusPorCodigp(@PathVariable("codigo") Long codigo) { | ||
| 391 | + Response<ProtocoloFlagDTO> response = new Response<ProtocoloFlagDTO>(); | ||
| 392 | + Optional<Protocolo> protocolo = protocoloFlagService.buscarStatusPorCodigo(codigo); | ||
| 393 | + | ||
| 394 | + if (!protocolo.isPresent()) { | ||
| 395 | + response.getErrors().add("Status não encontrado para o código: " + codigo); | ||
| 396 | + return ResponseEntity.badRequest().body(response); | ||
| 397 | + } | ||
| 398 | + | ||
| 399 | + response.setData(this.converterProtocoloFlagDto(protocolo.get())); | ||
| 400 | + return ResponseEntity.ok(response); | ||
| 401 | + } | ||
| 402 | + | ||
| 403 | + /** | ||
| 404 | + * convertendo a entidade para objeto DTO | ||
| 405 | + * | ||
| 406 | + * @param protocolo | ||
| 407 | + * @return protocoloFlagDTO | ||
| 408 | + */ | ||
| 409 | + private ProtocoloFlagDTO converterProtocoloFlagDto(Protocolo protocolo) { | ||
| 410 | + ProtocoloFlagDTO protocoloFlagDTO = new ProtocoloFlagDTO(); | ||
| 411 | + protocoloFlagDTO.setStatus(protocolo.getStatus().toString()); | ||
| 412 | + // protocoloFlagDTO.setObservacao(Optional.of(protocolo.getObservacao().toString())); | ||
| 413 | + // protocoloFlagDTO.setObservacao().ifPresent(x -> | ||
| 414 | + // protocolo.getObservacao(x.toString())); | ||
| 415 | + protocolo.getObservacaoOpt() | ||
| 416 | + .ifPresent(observacao -> protocoloFlagDTO.setObservacao(Optional.of(observacao.toString()))); | ||
| 417 | + return protocoloFlagDTO; | ||
| 418 | + } | ||
| 412 | 419 | ||
| 413 | } | 420 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/controllers/UsuarioController.java
| @@ -7,7 +7,6 @@ package br.gov.planejamento.dipla.protocolo.controllers; | @@ -7,7 +7,6 @@ package br.gov.planejamento.dipla.protocolo.controllers; | ||
| 7 | 7 | ||
| 8 | import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; | 8 | import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; |
| 9 | import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; | 9 | import br.gov.planejamento.dipla.protocolo.controllers.page.PageWrapper; |
| 10 | -import br.gov.planejamento.dipla.protocolo.dto.ProtocoloFlagDTO; | ||
| 11 | import br.gov.planejamento.dipla.protocolo.entities.Grupo; | 10 | import br.gov.planejamento.dipla.protocolo.entities.Grupo; |
| 12 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; | 11 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; |
| 13 | import br.gov.planejamento.dipla.protocolo.repositories.GrupoRepository; | 12 | import br.gov.planejamento.dipla.protocolo.repositories.GrupoRepository; |
src/main/java/br/gov/planejamento/dipla/protocolo/dto/MetadadosDTO.java
| @@ -3,18 +3,6 @@ package br.gov.planejamento.dipla.protocolo.dto; | @@ -3,18 +3,6 @@ package br.gov.planejamento.dipla.protocolo.dto; | ||
| 3 | import lombok.Getter; | 3 | import lombok.Getter; |
| 4 | import lombok.Setter; | 4 | import lombok.Setter; |
| 5 | 5 | ||
| 6 | -import java.util.HashMap; | ||
| 7 | -import java.util.List; | ||
| 8 | -import java.util.Map; | ||
| 9 | -import java.util.Optional; | ||
| 10 | - | ||
| 11 | -import javax.persistence.Column; | ||
| 12 | - | ||
| 13 | -import org.hibernate.validator.constraints.NotBlank; | ||
| 14 | -import org.hibernate.validator.constraints.NotEmpty; | ||
| 15 | - | ||
| 16 | -import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | ||
| 17 | - | ||
| 18 | /** | 6 | /** |
| 19 | * Created by dario on 29/09/17. | 7 | * Created by dario on 29/09/17. |
| 20 | */ | 8 | */ |
src/main/java/br/gov/planejamento/dipla/protocolo/dto/ProtocoloFlagDTO.java
| @@ -2,8 +2,8 @@ package br.gov.planejamento.dipla.protocolo.dto; | @@ -2,8 +2,8 @@ package br.gov.planejamento.dipla.protocolo.dto; | ||
| 2 | 2 | ||
| 3 | import lombok.Getter; | 3 | import lombok.Getter; |
| 4 | import lombok.Setter; | 4 | import lombok.Setter; |
| 5 | + | ||
| 5 | import java.util.Optional; | 6 | import java.util.Optional; |
| 6 | -import org.hibernate.validator.constraints.NotEmpty; | ||
| 7 | 7 | ||
| 8 | /** | 8 | /** |
| 9 | * Created by dario on 29/09/17. | 9 | * Created by dario on 29/09/17. |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/Arquivos.java
| @@ -48,7 +48,7 @@ public class Arquivos implements Serializable { | @@ -48,7 +48,7 @@ public class Arquivos implements Serializable { | ||
| 48 | @Column(name = "descricao_documento") | 48 | @Column(name = "descricao_documento") |
| 49 | private String descricaoDocumento; | 49 | private String descricaoDocumento; |
| 50 | 50 | ||
| 51 | - @ManyToOne | 51 | + @ManyToOne(fetch=FetchType.EAGER) |
| 52 | @JoinColumn(name = "codigo_tipo_documento") | 52 | @JoinColumn(name = "codigo_tipo_documento") |
| 53 | private TiposDocumento tipoDocumento = new TiposDocumento(); | 53 | private TiposDocumento tipoDocumento = new TiposDocumento(); |
| 54 | 54 |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/Classificacao.java
| @@ -29,6 +29,6 @@ public class Classificacao implements Serializable { | @@ -29,6 +29,6 @@ public class Classificacao implements Serializable { | ||
| 29 | @Column(name = "nome") | 29 | @Column(name = "nome") |
| 30 | private String nome; | 30 | private String nome; |
| 31 | 31 | ||
| 32 | - @OneToMany(mappedBy = "classificacao", cascade = CascadeType.ALL) | 32 | + @OneToMany(mappedBy = "classificacao", cascade = CascadeType.ALL, fetch = FetchType.EAGER) |
| 33 | private List<Configuracao> configuracoes = new ArrayList<>(); | 33 | private List<Configuracao> configuracoes = new ArrayList<>(); |
| 34 | } | 34 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/Configuracao.java
| 1 | package br.gov.planejamento.dipla.protocolo.entities; | 1 | package br.gov.planejamento.dipla.protocolo.entities; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; | ||
| 4 | import lombok.EqualsAndHashCode; | 3 | import lombok.EqualsAndHashCode; |
| 5 | import lombok.Getter; | 4 | import lombok.Getter; |
| 6 | import lombok.Setter; | 5 | import lombok.Setter; |
| 7 | -import org.hibernate.validator.constraints.Email; | ||
| 8 | -import org.hibernate.validator.constraints.Length; | ||
| 9 | import org.hibernate.validator.constraints.NotBlank; | 6 | import org.hibernate.validator.constraints.NotBlank; |
| 10 | 7 | ||
| 11 | import javax.persistence.*; | 8 | import javax.persistence.*; |
| 12 | -import javax.validation.constraints.NotNull; | ||
| 13 | -import javax.validation.constraints.Size; | ||
| 14 | import java.io.Serializable; | 9 | import java.io.Serializable; |
| 15 | -import java.util.List; | ||
| 16 | 10 | ||
| 17 | /** | 11 | /** |
| 18 | * | 12 | * |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/ConfiguracaoEmail.java
| 1 | package br.gov.planejamento.dipla.protocolo.entities; | 1 | package br.gov.planejamento.dipla.protocolo.entities; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; | ||
| 4 | import lombok.EqualsAndHashCode; | 3 | import lombok.EqualsAndHashCode; |
| 5 | import lombok.Getter; | 4 | import lombok.Getter; |
| 6 | import lombok.Setter; | 5 | import lombok.Setter; |
| 7 | -import org.hibernate.validator.constraints.Email; | ||
| 8 | -import org.hibernate.validator.constraints.Length; | ||
| 9 | import org.hibernate.validator.constraints.NotBlank; | 6 | import org.hibernate.validator.constraints.NotBlank; |
| 10 | 7 | ||
| 11 | import javax.persistence.*; | 8 | import javax.persistence.*; |
| 12 | -import javax.validation.constraints.NotNull; | ||
| 13 | -import javax.validation.constraints.Size; | ||
| 14 | import java.io.Serializable; | 9 | import java.io.Serializable; |
| 15 | -import java.util.ArrayList; | ||
| 16 | import java.util.List; | 10 | import java.util.List; |
| 17 | 11 | ||
| 18 | /** | 12 | /** |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/LogSistema.java
| @@ -7,7 +7,6 @@ import lombok.Setter; | @@ -7,7 +7,6 @@ import lombok.Setter; | ||
| 7 | import javax.persistence.*; | 7 | import javax.persistence.*; |
| 8 | import java.io.Serializable; | 8 | import java.io.Serializable; |
| 9 | import java.util.Date; | 9 | import java.util.Date; |
| 10 | -import java.util.List; | ||
| 11 | 10 | ||
| 12 | /** | 11 | /** |
| 13 | * | 12 | * |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/Metadado.java
| @@ -5,10 +5,6 @@ import lombok.Getter; | @@ -5,10 +5,6 @@ import lombok.Getter; | ||
| 5 | import lombok.Setter; | 5 | import lombok.Setter; |
| 6 | 6 | ||
| 7 | import javax.persistence.*; | 7 | import javax.persistence.*; |
| 8 | -import javax.validation.constraints.NotNull; | ||
| 9 | - | ||
| 10 | -import org.hibernate.validator.constraints.NotBlank; | ||
| 11 | - | ||
| 12 | import java.io.Serializable; | 8 | import java.io.Serializable; |
| 13 | import java.util.List; | 9 | import java.util.List; |
| 14 | 10 |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/Protocolo.java
| @@ -5,7 +5,6 @@ import lombok.Getter; | @@ -5,7 +5,6 @@ import lombok.Getter; | ||
| 5 | import lombok.Setter; | 5 | import lombok.Setter; |
| 6 | import org.hibernate.annotations.DynamicUpdate; | 6 | import org.hibernate.annotations.DynamicUpdate; |
| 7 | import org.hibernate.validator.constraints.Email; | 7 | import org.hibernate.validator.constraints.Email; |
| 8 | -import org.hibernate.validator.constraints.Length; | ||
| 9 | import org.hibernate.validator.constraints.SafeHtml; | 8 | import org.hibernate.validator.constraints.SafeHtml; |
| 10 | 9 | ||
| 11 | import javax.persistence.*; | 10 | import javax.persistence.*; |
| @@ -14,7 +13,6 @@ import java.text.SimpleDateFormat; | @@ -14,7 +13,6 @@ import java.text.SimpleDateFormat; | ||
| 14 | import java.util.ArrayList; | 13 | import java.util.ArrayList; |
| 15 | import java.util.Date; | 14 | import java.util.Date; |
| 16 | import java.util.List; | 15 | import java.util.List; |
| 17 | -import javax.persistence.Transient; | ||
| 18 | import java.util.Optional; | 16 | import java.util.Optional; |
| 19 | 17 | ||
| 20 | /** | 18 | /** |
| @@ -37,6 +35,10 @@ public class Protocolo implements Serializable { | @@ -37,6 +35,10 @@ public class Protocolo implements Serializable { | ||
| 37 | 35 | ||
| 38 | @Transient | 36 | @Transient |
| 39 | private String linkNup; | 37 | private String linkNup; |
| 38 | + | ||
| 39 | + @Transient | ||
| 40 | + private String idSei; | ||
| 41 | + | ||
| 40 | @Transient | 42 | @Transient |
| 41 | private static final String urlNup = ""; | 43 | private static final String urlNup = ""; |
| 42 | 44 |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/TiposDocumento.java
| @@ -11,7 +11,6 @@ import lombok.Setter; | @@ -11,7 +11,6 @@ import lombok.Setter; | ||
| 11 | import org.hibernate.validator.constraints.NotBlank; | 11 | import org.hibernate.validator.constraints.NotBlank; |
| 12 | 12 | ||
| 13 | import javax.persistence.*; | 13 | import javax.persistence.*; |
| 14 | -import javax.validation.constraints.NotNull; | ||
| 15 | import java.io.Serializable; | 14 | import java.io.Serializable; |
| 16 | 15 | ||
| 17 | /** | 16 | /** |
| @@ -35,9 +34,15 @@ public class TiposDocumento implements Serializable { | @@ -35,9 +34,15 @@ public class TiposDocumento implements Serializable { | ||
| 35 | @NotBlank(message = "O campo descrição é de preenchimento obrigatório") | 34 | @NotBlank(message = "O campo descrição é de preenchimento obrigatório") |
| 36 | private String descricao; | 35 | private String descricao; |
| 37 | 36 | ||
| 38 | - @NotBlank(message = "O campo código é de preenchimento obrigatório") | 37 | + //@NotBlank(message = "O campo código é de preenchimento obrigatório") |
| 39 | @Column(name = "codigo_sei") | 38 | @Column(name = "codigo_sei") |
| 40 | private String codigoSei; | 39 | private String codigoSei; |
| 40 | + | ||
| 41 | + @Column(name = "codigo_sei_mf") | ||
| 42 | + private String codigoSeiMf; | ||
| 43 | + | ||
| 44 | + @Column(name = "codigo_sei_mdic") | ||
| 45 | + private String codigoSeiMdic; | ||
| 41 | 46 | ||
| 42 | private Boolean ativo; | 47 | private Boolean ativo; |
| 43 | 48 |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/Usuario.java
| 1 | package br.gov.planejamento.dipla.protocolo.entities; | 1 | package br.gov.planejamento.dipla.protocolo.entities; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; | 3 | import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; |
| 4 | +import lombok.AccessLevel; | ||
| 4 | import lombok.EqualsAndHashCode; | 5 | import lombok.EqualsAndHashCode; |
| 5 | import lombok.Getter; | 6 | import lombok.Getter; |
| 6 | import lombok.Setter; | 7 | import lombok.Setter; |
| @@ -8,14 +9,12 @@ import org.hibernate.validator.constraints.Email; | @@ -8,14 +9,12 @@ import org.hibernate.validator.constraints.Email; | ||
| 8 | import org.hibernate.validator.constraints.Length; | 9 | import org.hibernate.validator.constraints.Length; |
| 9 | import org.hibernate.validator.constraints.NotBlank; | 10 | import org.hibernate.validator.constraints.NotBlank; |
| 10 | import org.hibernate.validator.constraints.SafeHtml; | 11 | import org.hibernate.validator.constraints.SafeHtml; |
| 11 | -import org.springframework.util.StringUtils; | ||
| 12 | 12 | ||
| 13 | import javax.persistence.*; | 13 | import javax.persistence.*; |
| 14 | import javax.validation.constraints.NotNull; | 14 | import javax.validation.constraints.NotNull; |
| 15 | import javax.validation.constraints.Size; | 15 | import javax.validation.constraints.Size; |
| 16 | import java.io.Serializable; | 16 | import java.io.Serializable; |
| 17 | import java.util.List; | 17 | import java.util.List; |
| 18 | -import lombok.AccessLevel; | ||
| 19 | 18 | ||
| 20 | /** | 19 | /** |
| 21 | * | 20 | * |
src/main/java/br/gov/planejamento/dipla/protocolo/entities/UsuarioBrasilCidadao.java
| 1 | package br.gov.planejamento.dipla.protocolo.entities; | 1 | package br.gov.planejamento.dipla.protocolo.entities; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.validation.AtributoConfirmacao; | ||
| 4 | import lombok.EqualsAndHashCode; | 3 | import lombok.EqualsAndHashCode; |
| 5 | import lombok.Getter; | 4 | import lombok.Getter; |
| 6 | import lombok.Setter; | 5 | import lombok.Setter; |
| 7 | -import org.hibernate.validator.constraints.Email; | ||
| 8 | -import org.hibernate.validator.constraints.Length; | ||
| 9 | import org.hibernate.validator.constraints.NotBlank; | 6 | import org.hibernate.validator.constraints.NotBlank; |
| 10 | 7 | ||
| 11 | import javax.persistence.*; | 8 | import javax.persistence.*; |
| 12 | -import javax.validation.constraints.NotNull; | ||
| 13 | import javax.validation.constraints.Size; | 9 | import javax.validation.constraints.Size; |
| 14 | import java.io.Serializable; | 10 | import java.io.Serializable; |
| 15 | -import java.util.List; | ||
| 16 | 11 | ||
| 17 | /** | 12 | /** |
| 18 | * | 13 | * |
src/main/java/br/gov/planejamento/dipla/protocolo/handler/LogoutBrasilCidadaoHandler.java
| 1 | package br.gov.planejamento.dipla.protocolo.handler; | 1 | package br.gov.planejamento.dipla.protocolo.handler; |
| 2 | 2 | ||
| 3 | -import java.io.IOException; | ||
| 4 | - | ||
| 5 | -import javax.servlet.ServletException; | ||
| 6 | -import javax.servlet.http.HttpServletRequest; | ||
| 7 | -import javax.servlet.http.HttpServletResponse; | ||
| 8 | - | 3 | +import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; |
| 9 | import org.springframework.beans.factory.annotation.Autowired; | 4 | import org.springframework.beans.factory.annotation.Autowired; |
| 10 | import org.springframework.http.HttpStatus; | 5 | import org.springframework.http.HttpStatus; |
| 11 | import org.springframework.security.core.Authentication; | 6 | import org.springframework.security.core.Authentication; |
| 12 | import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; | 7 | import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; |
| 13 | import org.springframework.stereotype.Component; | 8 | import org.springframework.stereotype.Component; |
| 14 | -import org.springframework.web.client.RestTemplate; | ||
| 15 | 9 | ||
| 16 | -import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; | 10 | +import javax.servlet.ServletException; |
| 11 | +import javax.servlet.http.HttpServletRequest; | ||
| 12 | +import javax.servlet.http.HttpServletResponse; | ||
| 13 | +import java.io.IOException; | ||
| 17 | 14 | ||
| 18 | @Component | 15 | @Component |
| 19 | public class LogoutBrasilCidadaoHandler implements LogoutSuccessHandler { | 16 | public class LogoutBrasilCidadaoHandler implements LogoutSuccessHandler { |
src/main/java/br/gov/planejamento/dipla/protocolo/mail/Mailer.java
| 1 | package br.gov.planejamento.dipla.protocolo.mail; | 1 | package br.gov.planejamento.dipla.protocolo.mail; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; | ||
| 4 | -import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | ||
| 5 | -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; | ||
| 6 | -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | ||
| 7 | -import br.gov.planejamento.dipla.protocolo.entities.EmailEnum; | ||
| 8 | -import br.gov.planejamento.dipla.protocolo.entities.Metadado; | ||
| 9 | -import br.gov.planejamento.dipla.protocolo.entities.MetadadosEmail; | ||
| 10 | -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | ||
| 11 | -import br.gov.planejamento.dipla.protocolo.entities.Usuario; | 3 | +import br.gov.planejamento.dipla.protocolo.entities.*; |
| 12 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; | 4 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; |
| 13 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | 5 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; |
| 14 | import br.gov.planejamento.dipla.protocolo.repositories.MetadadoRepository; | 6 | import br.gov.planejamento.dipla.protocolo.repositories.MetadadoRepository; |
| 15 | -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; | ||
| 16 | - | ||
| 17 | import org.slf4j.Logger; | 7 | import org.slf4j.Logger; |
| 18 | import org.slf4j.LoggerFactory; | 8 | import org.slf4j.LoggerFactory; |
| 19 | import org.springframework.beans.factory.annotation.Autowired; | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 20 | -import org.springframework.context.annotation.PropertySource; | ||
| 21 | -import org.springframework.core.env.Environment; | ||
| 22 | import org.springframework.core.io.ClassPathResource; | 10 | import org.springframework.core.io.ClassPathResource; |
| 23 | import org.springframework.mail.javamail.JavaMailSender; | 11 | import org.springframework.mail.javamail.JavaMailSender; |
| 24 | import org.springframework.mail.javamail.MimeMessageHelper; | 12 | import org.springframework.mail.javamail.MimeMessageHelper; |
| @@ -31,17 +19,9 @@ import org.thymeleaf.spring4.SpringTemplateEngine; | @@ -31,17 +19,9 @@ import org.thymeleaf.spring4.SpringTemplateEngine; | ||
| 31 | import org.thymeleaf.spring4.dialect.SpringStandardDialect; | 19 | import org.thymeleaf.spring4.dialect.SpringStandardDialect; |
| 32 | import org.thymeleaf.templatemode.TemplateMode; | 20 | import org.thymeleaf.templatemode.TemplateMode; |
| 33 | import org.thymeleaf.templateresolver.StringTemplateResolver; | 21 | import org.thymeleaf.templateresolver.StringTemplateResolver; |
| 34 | -import org.w3c.dom.Document; | ||
| 35 | -import org.w3c.dom.Node; | ||
| 36 | -import org.w3c.dom.NodeList; | ||
| 37 | -import org.xml.sax.InputSource; | ||
| 38 | 22 | ||
| 39 | import javax.mail.MessagingException; | 23 | import javax.mail.MessagingException; |
| 40 | import javax.mail.internet.MimeMessage; | 24 | import javax.mail.internet.MimeMessage; |
| 41 | -import javax.xml.parsers.DocumentBuilder; | ||
| 42 | -import javax.xml.parsers.DocumentBuilderFactory; | ||
| 43 | - | ||
| 44 | -import java.io.StringReader; | ||
| 45 | import java.util.Iterator; | 25 | import java.util.Iterator; |
| 46 | import java.util.List; | 26 | import java.util.List; |
| 47 | import java.util.Locale; | 27 | import java.util.Locale; |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ClassificacaoRepository.java
| 1 | package br.gov.planejamento.dipla.protocolo.repositories; | 1 | package br.gov.planejamento.dipla.protocolo.repositories; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.Classificacao; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Classificacao; |
| 4 | - | ||
| 5 | -import java.util.Optional; | ||
| 6 | - | ||
| 7 | import org.springframework.data.jpa.repository.JpaRepository; | 4 | import org.springframework.data.jpa.repository.JpaRepository; |
| 8 | import org.springframework.stereotype.Repository; | 5 | import org.springframework.stereotype.Repository; |
| 9 | 6 | ||
| 7 | +import java.util.Optional; | ||
| 8 | + | ||
| 10 | /** | 9 | /** |
| 11 | * | 10 | * |
| 12 | * @author Leonardo Dias | 11 | * @author Leonardo Dias |
| @@ -14,4 +13,5 @@ import org.springframework.stereotype.Repository; | @@ -14,4 +13,5 @@ import org.springframework.stereotype.Repository; | ||
| 14 | @Repository | 13 | @Repository |
| 15 | public interface ClassificacaoRepository extends JpaRepository<Classificacao, Long>{ | 14 | public interface ClassificacaoRepository extends JpaRepository<Classificacao, Long>{ |
| 16 | public Optional<Classificacao> findByNome(String nome); | 15 | public Optional<Classificacao> findByNome(String nome); |
| 16 | + public Optional<Classificacao> findByCodigo(Long codigo); | ||
| 17 | } | 17 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoEmailRepository.java
| 1 | package br.gov.planejamento.dipla.protocolo.repositories; | 1 | package br.gov.planejamento.dipla.protocolo.repositories; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; | 3 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; |
| 4 | -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | ||
| 5 | -import br.gov.planejamento.dipla.protocolo.entities.MetadadosEmail; | ||
| 6 | - | ||
| 7 | import org.springframework.data.jpa.repository.JpaRepository; | 4 | import org.springframework.data.jpa.repository.JpaRepository; |
| 8 | import org.springframework.stereotype.Repository; | 5 | import org.springframework.stereotype.Repository; |
| 9 | 6 | ||
| 10 | -import java.util.List; | ||
| 11 | import java.util.Optional; | 7 | import java.util.Optional; |
| 12 | 8 | ||
| 13 | /** | 9 | /** |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ConfiguracaoRepository.java
| @@ -3,11 +3,9 @@ package br.gov.planejamento.dipla.protocolo.repositories; | @@ -3,11 +3,9 @@ package br.gov.planejamento.dipla.protocolo.repositories; | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; |
| 4 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | 4 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; |
| 5 | import br.gov.planejamento.dipla.protocolo.repositories.helper.configuracao.ConfiguracaoRepositoryQueries; | 5 | import br.gov.planejamento.dipla.protocolo.repositories.helper.configuracao.ConfiguracaoRepositoryQueries; |
| 6 | -import br.gov.planejamento.dipla.protocolo.repositories.helper.usuario.UsuarioRepositoryQueries; | ||
| 7 | import org.springframework.data.jpa.repository.JpaRepository; | 6 | import org.springframework.data.jpa.repository.JpaRepository; |
| 8 | import org.springframework.stereotype.Repository; | 7 | import org.springframework.stereotype.Repository; |
| 9 | 8 | ||
| 10 | -import java.util.List; | ||
| 11 | import java.util.Optional; | 9 | import java.util.Optional; |
| 12 | 10 | ||
| 13 | /** | 11 | /** |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LogStatusRepository.java
| 1 | package br.gov.planejamento.dipla.protocolo.repositories; | 1 | package br.gov.planejamento.dipla.protocolo.repositories; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.LogSistema; | 3 | import br.gov.planejamento.dipla.protocolo.entities.LogSistema; |
| 4 | - | ||
| 5 | import org.springframework.data.jpa.repository.JpaRepository; | 4 | import org.springframework.data.jpa.repository.JpaRepository; |
| 6 | import org.springframework.stereotype.Repository; | 5 | import org.springframework.stereotype.Repository; |
| 7 | 6 |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/LoginAttemptRepository.java
| 1 | package br.gov.planejamento.dipla.protocolo.repositories; | 1 | package br.gov.planejamento.dipla.protocolo.repositories; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; | 3 | import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; |
| 4 | - | ||
| 5 | import org.springframework.data.jpa.repository.JpaRepository; | 4 | import org.springframework.data.jpa.repository.JpaRepository; |
| 6 | import org.springframework.data.jpa.repository.Modifying; | 5 | import org.springframework.data.jpa.repository.Modifying; |
| 7 | import org.springframework.data.jpa.repository.Query; | 6 | import org.springframework.data.jpa.repository.Query; |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/MetadadoRepository.java
| 1 | package br.gov.planejamento.dipla.protocolo.repositories; | 1 | package br.gov.planejamento.dipla.protocolo.repositories; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.entities.Arquivos; | ||
| 4 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; | 3 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; |
| 5 | import br.gov.planejamento.dipla.protocolo.entities.Metadado; | 4 | import br.gov.planejamento.dipla.protocolo.entities.Metadado; |
| 6 | -import br.gov.planejamento.dipla.protocolo.entities.MetadadosEmail; | ||
| 7 | - | ||
| 8 | import org.springframework.data.jpa.repository.JpaRepository; | 5 | import org.springframework.data.jpa.repository.JpaRepository; |
| 9 | import org.springframework.stereotype.Repository; | 6 | import org.springframework.stereotype.Repository; |
| 10 | 7 |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/ProtocoloRepository.java
| 1 | package br.gov.planejamento.dipla.protocolo.repositories; | 1 | package br.gov.planejamento.dipla.protocolo.repositories; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; |
| 4 | -import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; | ||
| 5 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; | 4 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; |
| 6 | import br.gov.planejamento.dipla.protocolo.repositories.helper.protocolo.ProtocoloRepositoryQueries; | 5 | import br.gov.planejamento.dipla.protocolo.repositories.helper.protocolo.ProtocoloRepositoryQueries; |
| 7 | import org.springframework.data.jpa.repository.JpaRepository; | 6 | import org.springframework.data.jpa.repository.JpaRepository; |
| 8 | import org.springframework.data.jpa.repository.Query; | 7 | import org.springframework.data.jpa.repository.Query; |
| 9 | -import org.springframework.data.repository.query.Param; | ||
| 10 | import org.springframework.stereotype.Repository; | 8 | import org.springframework.stereotype.Repository; |
| 11 | -import java.util.Optional; | ||
| 12 | import org.springframework.transaction.annotation.Transactional; | 9 | import org.springframework.transaction.annotation.Transactional; |
| 13 | -import org.springframework.data.jpa.repository.JpaRepository; | ||
| 14 | 10 | ||
| 15 | import java.math.BigDecimal; | 11 | import java.math.BigDecimal; |
| 16 | import java.util.List; | 12 | import java.util.List; |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/TiposDocumentoRepository.java
| @@ -8,10 +8,10 @@ package br.gov.planejamento.dipla.protocolo.repositories; | @@ -8,10 +8,10 @@ package br.gov.planejamento.dipla.protocolo.repositories; | ||
| 8 | import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; | 8 | import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; |
| 9 | import br.gov.planejamento.dipla.protocolo.repositories.helper.tiposDocumento.TiposDocumentoRepositoryQueries; | 9 | import br.gov.planejamento.dipla.protocolo.repositories.helper.tiposDocumento.TiposDocumentoRepositoryQueries; |
| 10 | import org.springframework.data.jpa.repository.JpaRepository; | 10 | import org.springframework.data.jpa.repository.JpaRepository; |
| 11 | -import org.springframework.data.jpa.repository.Query; | ||
| 12 | import org.springframework.stereotype.Repository; | 11 | import org.springframework.stereotype.Repository; |
| 13 | -import java.util.Optional; | 12 | + |
| 14 | import java.util.List; | 13 | import java.util.List; |
| 14 | +import java.util.Optional; | ||
| 15 | 15 | ||
| 16 | /** | 16 | /** |
| 17 | * @author leonardo | 17 | * @author leonardo |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/UsuarioRepository.java
| @@ -16,6 +16,7 @@ import java.util.Optional; | @@ -16,6 +16,7 @@ import java.util.Optional; | ||
| 16 | public interface UsuarioRepository extends JpaRepository<Usuario, Long>, UsuarioRepositoryQueries { | 16 | public interface UsuarioRepository extends JpaRepository<Usuario, Long>, UsuarioRepositoryQueries { |
| 17 | 17 | ||
| 18 | public List<Usuario> findByCodigoIn(Long[] codigos); | 18 | public List<Usuario> findByCodigoIn(Long[] codigos); |
| 19 | + public Usuario findByCodigo(Long codgio); | ||
| 19 | 20 | ||
| 20 | public Optional<Usuario> findByEmail(String email); | 21 | public Optional<Usuario> findByEmail(String email); |
| 21 | 22 |
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; | @@ -2,11 +2,8 @@ package br.gov.planejamento.dipla.protocolo.repositories.helper.configuracao; | ||
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; |
| 4 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | 4 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; |
| 5 | - | ||
| 6 | - | ||
| 7 | -import javax.persistence.EntityManager; | ||
| 8 | -import javax.persistence.PersistenceContext; | ||
| 9 | - | 5 | +import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; |
| 6 | +import br.gov.planejamento.dipla.protocolo.repositories.paginacao.PaginacaoUtil; | ||
| 10 | import org.hibernate.Criteria; | 7 | import org.hibernate.Criteria; |
| 11 | import org.hibernate.Session; | 8 | import org.hibernate.Session; |
| 12 | import org.hibernate.criterion.MatchMode; | 9 | import org.hibernate.criterion.MatchMode; |
| @@ -17,15 +14,13 @@ import org.springframework.data.domain.Page; | @@ -17,15 +14,13 @@ import org.springframework.data.domain.Page; | ||
| 17 | import org.springframework.data.domain.PageImpl; | 14 | import org.springframework.data.domain.PageImpl; |
| 18 | import org.springframework.data.domain.Pageable; | 15 | import org.springframework.data.domain.Pageable; |
| 19 | 16 | ||
| 20 | -import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; | ||
| 21 | -import br.gov.planejamento.dipla.protocolo.repositories.paginacao.PaginacaoUtil; | ||
| 22 | - | ||
| 23 | -import java.util.List; | 17 | +import javax.persistence.EntityManager; |
| 18 | +import javax.persistence.PersistenceContext; | ||
| 24 | import java.util.Optional; | 19 | import java.util.Optional; |
| 25 | 20 | ||
| 26 | /** | 21 | /** |
| 27 | * | 22 | * |
| 28 | - * @author Leonardo Dias | 23 | + * @authors Leonardo Dias, Matheus de Carvalho |
| 29 | */ | 24 | */ |
| 30 | public class ConfiguracaoRepositoryImpl implements ConfiguracaoRepositoryQueries { | 25 | public class ConfiguracaoRepositoryImpl implements ConfiguracaoRepositoryQueries { |
| 31 | 26 |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/configuracao/ConfiguracaoRepositoryQueries.java
| 1 | package br.gov.planejamento.dipla.protocolo.repositories.helper.configuracao; | 1 | package br.gov.planejamento.dipla.protocolo.repositories.helper.configuracao; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.dto.MetadadosDTO; | ||
| 4 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; |
| 5 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | 4 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; |
| 6 | -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | ||
| 7 | -import br.gov.planejamento.dipla.protocolo.entities.Usuario; | ||
| 8 | -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | ||
| 9 | import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; | 5 | import br.gov.planejamento.dipla.protocolo.repositories.filter.ConfiguracaoFilter; |
| 10 | -import br.gov.planejamento.dipla.protocolo.repositories.filter.ProtocoloFilter; | ||
| 11 | -import br.gov.planejamento.dipla.protocolo.repositories.filter.UsuarioFilter; | ||
| 12 | import org.springframework.data.domain.Page; | 6 | import org.springframework.data.domain.Page; |
| 13 | import org.springframework.data.domain.Pageable; | 7 | import org.springframework.data.domain.Pageable; |
| 14 | 8 | ||
| 15 | -import java.util.List; | ||
| 16 | import java.util.Optional; | 9 | import java.util.Optional; |
| 17 | 10 | ||
| 18 | /** | 11 | /** |
src/main/java/br/gov/planejamento/dipla/protocolo/repositories/helper/usuario/UsuarioRepositoryImpl.java
| 1 | package br.gov.planejamento.dipla.protocolo.repositories.helper.usuario; | 1 | package br.gov.planejamento.dipla.protocolo.repositories.helper.usuario; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.Grupo; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Grupo; |
| 4 | -import java.util.ArrayList; | ||
| 5 | -import java.util.List; | ||
| 6 | - | ||
| 7 | -import javax.persistence.EntityManager; | ||
| 8 | -import javax.persistence.PersistenceContext; | ||
| 9 | - | 4 | +import br.gov.planejamento.dipla.protocolo.entities.Usuario; |
| 5 | +import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | ||
| 6 | +import br.gov.planejamento.dipla.protocolo.entities.UsuarioGrupo; | ||
| 7 | +import br.gov.planejamento.dipla.protocolo.repositories.filter.UsuarioFilter; | ||
| 8 | +import br.gov.planejamento.dipla.protocolo.repositories.paginacao.PaginacaoUtil; | ||
| 10 | import org.hibernate.Criteria; | 9 | import org.hibernate.Criteria; |
| 11 | import org.hibernate.Hibernate; | 10 | import org.hibernate.Hibernate; |
| 12 | import org.hibernate.Session; | 11 | import org.hibernate.Session; |
| 13 | -import org.hibernate.criterion.Criterion; | ||
| 14 | -import org.hibernate.criterion.DetachedCriteria; | ||
| 15 | -import org.hibernate.criterion.MatchMode; | ||
| 16 | -import org.hibernate.criterion.Order; | ||
| 17 | -import org.hibernate.criterion.Projections; | ||
| 18 | -import org.hibernate.criterion.Restrictions; | ||
| 19 | -import org.hibernate.criterion.Subqueries; | 12 | +import org.hibernate.criterion.*; |
| 13 | +import org.hibernate.sql.JoinType; | ||
| 20 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| 21 | import org.springframework.data.domain.Page; | 15 | import org.springframework.data.domain.Page; |
| 22 | import org.springframework.data.domain.PageImpl; | 16 | import org.springframework.data.domain.PageImpl; |
| @@ -24,13 +18,11 @@ import org.springframework.data.domain.Pageable; | @@ -24,13 +18,11 @@ import org.springframework.data.domain.Pageable; | ||
| 24 | import org.springframework.transaction.annotation.Transactional; | 18 | import org.springframework.transaction.annotation.Transactional; |
| 25 | import org.springframework.util.StringUtils; | 19 | import org.springframework.util.StringUtils; |
| 26 | 20 | ||
| 27 | -import br.gov.planejamento.dipla.protocolo.entities.Usuario; | ||
| 28 | -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | ||
| 29 | -import br.gov.planejamento.dipla.protocolo.entities.UsuarioGrupo; | ||
| 30 | -import br.gov.planejamento.dipla.protocolo.repositories.filter.UsuarioFilter; | ||
| 31 | -import br.gov.planejamento.dipla.protocolo.repositories.paginacao.PaginacaoUtil; | 21 | +import javax.persistence.EntityManager; |
| 22 | +import javax.persistence.PersistenceContext; | ||
| 23 | +import java.util.ArrayList; | ||
| 24 | +import java.util.List; | ||
| 32 | import java.util.Optional; | 25 | import java.util.Optional; |
| 33 | -import org.hibernate.sql.JoinType; | ||
| 34 | 26 | ||
| 35 | /** | 27 | /** |
| 36 | * | 28 | * |
src/main/java/br/gov/planejamento/dipla/protocolo/security/AppUserDetailsService.java
| @@ -2,8 +2,6 @@ package br.gov.planejamento.dipla.protocolo.security; | @@ -2,8 +2,6 @@ package br.gov.planejamento.dipla.protocolo.security; | ||
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; |
| 4 | import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; | 4 | import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; |
| 5 | - | ||
| 6 | -import org.apache.commons.codec.digest.DigestUtils; | ||
| 7 | import org.springframework.beans.factory.annotation.Autowired; | 5 | import org.springframework.beans.factory.annotation.Autowired; |
| 8 | import org.springframework.security.core.GrantedAuthority; | 6 | import org.springframework.security.core.GrantedAuthority; |
| 9 | import org.springframework.security.core.authority.SimpleGrantedAuthority; | 7 | import org.springframework.security.core.authority.SimpleGrantedAuthority; |
src/main/java/br/gov/planejamento/dipla/protocolo/security/BrasilCidadaoUserDetails.java
| 1 | package br.gov.planejamento.dipla.protocolo.security; | 1 | package br.gov.planejamento.dipla.protocolo.security; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; | ||
| 4 | -import br.gov.planejamento.dipla.protocolo.entities.Usuario; | ||
| 5 | import org.springframework.security.core.GrantedAuthority; | 3 | import org.springframework.security.core.GrantedAuthority; |
| 6 | -import org.springframework.security.core.userdetails.User; | 4 | +import org.springframework.security.core.authority.SimpleGrantedAuthority; |
| 5 | +import org.springframework.security.core.userdetails.UserDetails; | ||
| 7 | 6 | ||
| 8 | import java.util.Collection; | 7 | import java.util.Collection; |
| 8 | +import java.util.Collections; | ||
| 9 | 9 | ||
| 10 | /** | 10 | /** |
| 11 | - * | ||
| 12 | * @author Leonardo Dias | 11 | * @author Leonardo Dias |
| 13 | */ | 12 | */ |
| 14 | 13 | ||
| 15 | -import org.springframework.security.core.GrantedAuthority; | ||
| 16 | -import org.springframework.security.core.authority.SimpleGrantedAuthority; | ||
| 17 | -import org.springframework.security.core.userdetails.UserDetails; | ||
| 18 | - | ||
| 19 | -import java.util.Collection; | ||
| 20 | -import java.util.Collections; | ||
| 21 | -import java.util.Map; | ||
| 22 | - | ||
| 23 | public class BrasilCidadaoUserDetails implements UserDetails { | 14 | public class BrasilCidadaoUserDetails implements UserDetails { |
| 24 | 15 | ||
| 25 | /** | 16 | /** |
src/main/java/br/gov/planejamento/dipla/protocolo/security/CaptchaService.java
| 1 | package br.gov.planejamento.dipla.protocolo.security; | 1 | package br.gov.planejamento.dipla.protocolo.security; |
| 2 | 2 | ||
| 3 | +import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | ||
| 4 | +import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | ||
| 5 | +import br.gov.planejamento.dipla.protocolo.services.exeptions.ReCaptchaUnavailableException; | ||
| 3 | import org.slf4j.Logger; | 6 | import org.slf4j.Logger; |
| 4 | import org.slf4j.LoggerFactory; | 7 | import org.slf4j.LoggerFactory; |
| 5 | import org.springframework.beans.factory.annotation.Autowired; | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| 6 | import org.springframework.stereotype.Service; | 9 | import org.springframework.stereotype.Service; |
| 7 | import org.springframework.web.client.RestTemplate; | 10 | import org.springframework.web.client.RestTemplate; |
| 8 | 11 | ||
| 9 | -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | ||
| 10 | -import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | ||
| 11 | -import br.gov.planejamento.dipla.protocolo.services.exeptions.ReCaptchaUnavailableException; | ||
| 12 | - | ||
| 13 | import javax.servlet.http.HttpServletRequest; | 12 | import javax.servlet.http.HttpServletRequest; |
| 14 | import java.net.URI; | 13 | import java.net.URI; |
| 15 | 14 |
src/main/java/br/gov/planejamento/dipla/protocolo/security/CustomAuthenticationFailureHandler.java
| 1 | package br.gov.planejamento.dipla.protocolo.security; | 1 | package br.gov.planejamento.dipla.protocolo.security; |
| 2 | 2 | ||
| 3 | -import java.io.IOException; | ||
| 4 | -import java.util.Optional; | ||
| 5 | - | ||
| 6 | -import javax.servlet.ServletException; | ||
| 7 | -import javax.servlet.http.HttpServletRequest; | ||
| 8 | -import javax.servlet.http.HttpServletResponse; | ||
| 9 | - | ||
| 10 | -import org.apache.commons.codec.digest.DigestUtils; | 3 | +import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; |
| 4 | +import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; | ||
| 11 | import org.springframework.beans.factory.annotation.Autowired; | 5 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | import org.springframework.security.core.AuthenticationException; | 6 | import org.springframework.security.core.AuthenticationException; |
| 13 | -import org.springframework.security.web.DefaultRedirectStrategy; | ||
| 14 | -import org.springframework.security.web.RedirectStrategy; | ||
| 15 | -import org.springframework.security.web.WebAttributes; | ||
| 16 | import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler; | 7 | import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler; |
| 17 | import org.springframework.stereotype.Component; | 8 | import org.springframework.stereotype.Component; |
| 18 | 9 | ||
| 19 | -import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; | ||
| 20 | -import br.gov.planejamento.dipla.protocolo.entities.Usuario; | ||
| 21 | -import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; | ||
| 22 | -import br.gov.planejamento.dipla.protocolo.services.AutoCadastroService; | 10 | +import javax.servlet.ServletException; |
| 11 | +import javax.servlet.http.HttpServletRequest; | ||
| 12 | +import javax.servlet.http.HttpServletResponse; | ||
| 13 | +import java.io.IOException; | ||
| 23 | 14 | ||
| 24 | @Component | 15 | @Component |
| 25 | public class CustomAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler { | 16 | public class CustomAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler { |
src/main/java/br/gov/planejamento/dipla/protocolo/security/LoginAttemptService.java
| 1 | package br.gov.planejamento.dipla.protocolo.security; | 1 | package br.gov.planejamento.dipla.protocolo.security; |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | -import java.util.Date; | ||
| 5 | -import java.util.Map; | ||
| 6 | -import java.util.Optional; | ||
| 7 | - | 4 | +import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; |
| 5 | +import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; | ||
| 8 | import org.apache.commons.codec.digest.DigestUtils; | 6 | import org.apache.commons.codec.digest.DigestUtils; |
| 9 | import org.springframework.beans.factory.annotation.Autowired; | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| 10 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
| 11 | 9 | ||
| 12 | -import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; | ||
| 13 | -import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; | ||
| 14 | -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; | 10 | +import java.util.Date; |
| 11 | +import java.util.Optional; | ||
| 15 | 12 | ||
| 16 | 13 | ||
| 17 | @Service | 14 | @Service |
src/main/java/br/gov/planejamento/dipla/protocolo/sei/ws/SeiWSClient.java
| 1 | package br.gov.planejamento.dipla.protocolo.sei.ws; | 1 | package br.gov.planejamento.dipla.protocolo.sei.ws; |
| 2 | 2 | ||
| 3 | import Sei.*; | 3 | import Sei.*; |
| 4 | -import br.gov.planejamento.dipla.protocolo.entities.Arquivos; | ||
| 5 | -import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEnum; | ||
| 6 | -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | 4 | +import br.gov.planejamento.dipla.protocolo.entities.*; |
| 7 | import br.gov.planejamento.dipla.protocolo.mail.Mailer; | 5 | import br.gov.planejamento.dipla.protocolo.mail.Mailer; |
| 8 | import br.gov.planejamento.dipla.protocolo.repositories.ArquivosRepository; | 6 | import br.gov.planejamento.dipla.protocolo.repositories.ArquivosRepository; |
| 7 | +import br.gov.planejamento.dipla.protocolo.repositories.ClassificacaoRepository; | ||
| 9 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | 8 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; |
| 10 | import br.gov.planejamento.dipla.protocolo.services.SalvarProtocoloService; | 9 | import br.gov.planejamento.dipla.protocolo.services.SalvarProtocoloService; |
| 11 | import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; | 10 | import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; |
| 11 | +import org.apache.axis.AxisFault; | ||
| 12 | import org.apache.commons.io.FileUtils; | 12 | import org.apache.commons.io.FileUtils; |
| 13 | import org.springframework.beans.factory.annotation.Autowired; | 13 | import org.springframework.beans.factory.annotation.Autowired; |
| 14 | -import org.springframework.context.annotation.PropertySource; | ||
| 15 | -import org.springframework.core.env.Environment; | ||
| 16 | import org.springframework.scheduling.annotation.Async; | 14 | import org.springframework.scheduling.annotation.Async; |
| 17 | import org.springframework.stereotype.Component; | 15 | import org.springframework.stereotype.Component; |
| 18 | import org.springframework.util.Base64Utils; | 16 | import org.springframework.util.Base64Utils; |
| 19 | 17 | ||
| 20 | -import java.io.Console; | ||
| 21 | -import java.io.File; | ||
| 22 | import java.io.IOException; | 18 | import java.io.IOException; |
| 19 | +import java.net.MalformedURLException; | ||
| 23 | import java.net.URL; | 20 | import java.net.URL; |
| 24 | import java.nio.file.Path; | 21 | import java.nio.file.Path; |
| 25 | -import java.util.List; | ||
| 26 | -import java.util.Optional; | ||
| 27 | - | ||
| 28 | -import static java.nio.file.FileSystems.getDefault; | ||
| 29 | - | ||
| 30 | -import java.util.concurrent.CompletableFuture; | ||
| 31 | - | ||
| 32 | -import java.util.Date; | ||
| 33 | import java.text.DateFormat; | 22 | import java.text.DateFormat; |
| 34 | import java.text.SimpleDateFormat; | 23 | import java.text.SimpleDateFormat; |
| 24 | +import java.util.*; | ||
| 35 | 25 | ||
| 36 | - | ||
| 37 | - | ||
| 38 | - | 26 | +import static java.nio.file.FileSystems.getDefault; |
| 39 | 27 | ||
| 40 | @Component | 28 | @Component |
| 41 | public class SeiWSClient { | 29 | public class SeiWSClient { |
| 42 | 30 | ||
| 43 | - @Autowired | ||
| 44 | - private Mailer mailer; | ||
| 45 | - | ||
| 46 | - @Autowired | ||
| 47 | - private ConfiguracaoRepository configuracaoRepository; | ||
| 48 | - | ||
| 49 | - @Autowired | ||
| 50 | - private SalvarProtocoloService salvarProtocoloService; | ||
| 51 | - | ||
| 52 | - @Autowired | ||
| 53 | - private ArquivosRepository arquivosRepository; | ||
| 54 | - | ||
| 55 | - @Autowired | ||
| 56 | - private ArquivoStorage arquivoStorage; | ||
| 57 | - | ||
| 58 | - private String getDateTime() { | ||
| 59 | - DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); | ||
| 60 | - Date date = new Date(); | ||
| 61 | - return dateFormat.format(date); | ||
| 62 | - } | ||
| 63 | - | ||
| 64 | - @Async | ||
| 65 | - public String enviar(Protocolo protocolo, Long idUsuario, String sei, String tipo) { | ||
| 66 | - | ||
| 67 | - if (sei!=null && tipo!=null && !sei.isEmpty() && tipo.equals("existente")) { | ||
| 68 | - enviarDocumento( protocolo, idUsuario, sei ); | ||
| 69 | - } else { | ||
| 70 | - | ||
| 71 | - try { | ||
| 72 | - URL urlEndpoint = new URL( configuracaoRepository.recuperarValor( ConfiguracaoEnum.URL_ENDPOINT ) ); | ||
| 73 | - SeiBindingStub seiBindingStub = new SeiBindingStub( urlEndpoint, null ); | ||
| 74 | - seiBindingStub.setTimeout( 600000 * 60 ); | ||
| 75 | - | ||
| 76 | - | ||
| 77 | - /*Assunto assunto = new Assunto(); | ||
| 78 | - assunto.setCodigoEstruturado( configuracaoRepository.recuperarValor( ConfiguracaoEnum.ASSUNTO_CODIGO_ESTRUTURADO ) ); | ||
| 79 | - Assunto[] assuntos = {assunto};*/ | ||
| 80 | - | ||
| 81 | - Procedimento procedimento = new Procedimento(); | ||
| 82 | - if (tipo.equals("novo")) { | ||
| 83 | - procedimento.setNumeroProtocolo( sei ); | ||
| 84 | - procedimento.setDataAutuacao( getDateTime() ); | ||
| 85 | - } | ||
| 86 | - | ||
| 87 | - procedimento.setAssuntos( recuperaAssunto() ); | ||
| 88 | - procedimento.setEspecificacao( configuracaoRepository.recuperarValor( ConfiguracaoEnum.PROCEDIMENTO_ESPECIFICADO ) ); | ||
| 89 | - | ||
| 90 | - Interessado interessado = new Interessado(); | ||
| 91 | - interessado.setNome( protocolo.getUsuario().getNome() ); | ||
| 92 | - interessado.setSigla( "Telefone: " + protocolo.getUsuario().getTelefone() ); | ||
| 93 | - Interessado[] interessados = {interessado}; | ||
| 94 | - | ||
| 95 | - procedimento.setInteressados( interessados ); | ||
| 96 | - | ||
| 97 | - procedimento.setNivelAcesso( configuracaoRepository.recuperarValor( ConfiguracaoEnum.PROCEDIMENTO_NIVEL_ACESSO ) ); | ||
| 98 | - procedimento.setIdTipoProcedimento( configuracaoRepository.recuperarValor( ConfiguracaoEnum.PROCEDIMENTO_ID_TIPO_PROCEDIMENTO ) ); | ||
| 99 | - | ||
| 100 | - List<Arquivos> arquivosList = arquivosRepository.findByProtocolo( protocolo ); | ||
| 101 | - | ||
| 102 | - procedimento.setObservacao( | ||
| 103 | - protocolo.toString() + | ||
| 104 | - "\n" + | ||
| 105 | - "Quantidade Arquivos: " + arquivosList.size() | ||
| 106 | - ); | ||
| 107 | - | ||
| 108 | - | ||
| 109 | - //criando o procedimento | ||
| 110 | - RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStub.gerarProcedimento( | ||
| 111 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.SIGLA_SISTEMA ), | ||
| 112 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.IDENTIFICACAO_SERVICO ), | ||
| 113 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.ID_UNIDADE ), | ||
| 114 | - procedimento, | ||
| 115 | - null, | ||
| 116 | - null, | ||
| 117 | - null, | ||
| 118 | - "N", | ||
| 119 | - "N", | ||
| 120 | - null, | ||
| 121 | - null, | ||
| 122 | - "N", | ||
| 123 | - null, | ||
| 124 | - null ); | ||
| 125 | - | ||
| 126 | - | ||
| 127 | - arquivosList.forEach( arquivo -> { | ||
| 128 | - try { | ||
| 129 | - Documento documento = new Documento(); | ||
| 130 | - documento.setIdProcedimento( retornoGeracaoProcedimento.getProcedimentoFormatado() | ||
| 131 | - .replace( ".", "" ) | ||
| 132 | - .replace( "/", "" ) | ||
| 133 | - .replace( "-", "" ) ); | ||
| 134 | - documento.setObservacao( protocolo.toString()); | ||
| 135 | - documento.setDescricao( arquivo.getDescricaoDocumento() ); | ||
| 136 | - documento.setNomeArquivo( arquivo.getNomeOriginal() ); | ||
| 137 | - documento.setTipo( configuracaoRepository.recuperarValor( ConfiguracaoEnum.DOCUMENTO_TIPO ) ); | ||
| 138 | - //documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar para pegar da combo Tipo Documento | ||
| 139 | - documento.setIdSerie( arquivo.getTipoDocumento().getCodigoSei() ); //Tipo documento vindo do banco de dados | ||
| 140 | - documento.setData( protocolo.getDataFormatada() ); | ||
| 141 | - documento.setNivelAcesso( configuracaoRepository.recuperarValor( ConfiguracaoEnum.DOCUMENTO_NIVEL_ACESSO ) ); | ||
| 142 | - | ||
| 143 | - Path path = getDefault().getPath( configuracaoRepository.recuperarValor( ConfiguracaoEnum.STORAGE_PATH ) ).resolve( arquivo.getNome() ); | ||
| 144 | - documento.setConteudo( Base64Utils.encodeToString( FileUtils.readFileToByteArray( path.toFile() ) ) ); | ||
| 145 | - | ||
| 146 | - seiBindingStub.incluirDocumento( | ||
| 147 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.SIGLA_SISTEMA ), | ||
| 148 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.IDENTIFICACAO_SERVICO ), | ||
| 149 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.ID_UNIDADE ), | ||
| 150 | - documento | ||
| 151 | - ); | ||
| 152 | - } catch (IOException e) { | ||
| 153 | - protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage() ); | ||
| 154 | - throw new RuntimeException( e.getMessage() ); | ||
| 155 | - } | ||
| 156 | - } ); | ||
| 157 | - | ||
| 158 | - protocolo.setLinkSEI(retornoGeracaoProcedimento.getLinkAcesso()); | ||
| 159 | - protocolo.setNupe( retornoGeracaoProcedimento.getProcedimentoFormatado() ); | ||
| 160 | - salvarProtocoloService.aprovar( protocolo, idUsuario ); | ||
| 161 | - | ||
| 162 | - //System.out.println("NUP TEMPOR�RIO"); | ||
| 163 | - //System.out.println(protocolo.getEmail1()); | ||
| 164 | - | ||
| 165 | - protocolo.setArquivosList(arquivosList); | ||
| 166 | - mailer.enviarAceite( protocolo ); | ||
| 167 | - | ||
| 168 | - /*arquivosList.forEach( arquivo -> { | ||
| 169 | - arquivoStorage.excluir( arquivo.getNome() ); | ||
| 170 | - } );*/ | ||
| 171 | - | ||
| 172 | - | ||
| 173 | - return retornoGeracaoProcedimento.getProcedimentoFormatado(); | ||
| 174 | - | ||
| 175 | - } catch (Exception e) { | ||
| 176 | - protocolo.setErroWs("[ERRO GERAR PROCEDIMENTO] " + e.getMessage() ); | ||
| 177 | - e.printStackTrace(); | ||
| 178 | - rollback( protocolo, e.getMessage() ); | ||
| 179 | - } | ||
| 180 | - } | ||
| 181 | - | ||
| 182 | - return null; | ||
| 183 | - } | ||
| 184 | - | ||
| 185 | - /** | ||
| 186 | - * | ||
| 187 | - * @return array | ||
| 188 | - */ | ||
| 189 | - private Assunto[] recuperaAssunto() { | ||
| 190 | - Assunto assunto = new Assunto(); | ||
| 191 | - assunto.setCodigoEstruturado( configuracaoRepository.recuperarValor( ConfiguracaoEnum.ASSUNTO_CODIGO_ESTRUTURADO ) ); | ||
| 192 | - Assunto[] assuntos = {assunto}; | ||
| 193 | - return assuntos; | ||
| 194 | - } | ||
| 195 | - | ||
| 196 | - private void rollback(Protocolo protocolo, String msgErro) { | ||
| 197 | - protocolo.setNupe( null ); | ||
| 198 | - salvarProtocoloService.pendente( protocolo ); | ||
| 199 | - mailer.enviarEmailErroEnvioSEI( protocolo, msgErro ); | ||
| 200 | - } | ||
| 201 | - | ||
| 202 | - public String enviarDocumento(Protocolo protocolo, Long idUsuario, String sei) { | ||
| 203 | - String observacaoAnterior=""; | ||
| 204 | - try { | ||
| 205 | - | ||
| 206 | - URL urlEndpoint = new URL( configuracaoRepository.recuperarValor( ConfiguracaoEnum.URL_ENDPOINT ) ); | ||
| 207 | - SeiBindingStub seiBindingStub = new SeiBindingStub( urlEndpoint, null ); | ||
| 208 | - seiBindingStub.setTimeout( 600000 * 60 ); | ||
| 209 | - | ||
| 210 | - List<Arquivos> arquivosList = arquivosRepository.findByProtocolo( protocolo ); | ||
| 211 | - | ||
| 212 | - arquivosList.forEach( arquivo -> { | ||
| 213 | - try { | ||
| 214 | - Documento documento = new Documento(); | ||
| 215 | - //documento.setIdProcedimento( sei ); | ||
| 216 | - documento.setIdProcedimento( sei | ||
| 217 | - .replace( ".", "" ) | ||
| 218 | - .replace( "/", "" ) | ||
| 219 | - .replace( "-", "" ) ); | ||
| 220 | - documento.setObservacao( protocolo.toString()); | ||
| 221 | - documento.setDescricao( arquivo.getDescricaoDocumento() ); | ||
| 222 | - documento.setNomeArquivo( arquivo.getNomeOriginal() ); | ||
| 223 | - documento.setTipo( configuracaoRepository.recuperarValor( ConfiguracaoEnum.DOCUMENTO_TIPO ) ); | ||
| 224 | - //documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar para pegar da combo Tipo Documento | ||
| 225 | - documento.setIdSerie( arquivo.getTipoDocumento().getCodigoSei() ); //Tipo documento vindo do banco de dados | ||
| 226 | - documento.setData( protocolo.getDataFormatada() ); | ||
| 227 | - documento.setNivelAcesso( configuracaoRepository.recuperarValor( ConfiguracaoEnum.DOCUMENTO_NIVEL_ACESSO ) ); | ||
| 228 | - | ||
| 229 | - Path path = getDefault().getPath( configuracaoRepository.recuperarValor( ConfiguracaoEnum.STORAGE_PATH ) ).resolve( arquivo.getNome() ); | ||
| 230 | - documento.setConteudo( Base64Utils.encodeToString( FileUtils.readFileToByteArray( path.toFile() ) ) ); | ||
| 231 | - | ||
| 232 | - seiBindingStub.incluirDocumento( | ||
| 233 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.SIGLA_SISTEMA ), | ||
| 234 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.IDENTIFICACAO_SERVICO ), | ||
| 235 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.ID_UNIDADE ), | ||
| 236 | - documento | ||
| 237 | - ); | ||
| 238 | - } catch (IOException e) { | ||
| 239 | - protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage() ); | ||
| 240 | - throw new RuntimeException( e.getMessage() ); | ||
| 241 | - } | ||
| 242 | - } ); | ||
| 243 | - | ||
| 244 | - protocolo.setNupe( sei ); | ||
| 245 | - //protocolo.setNupe( retornoGeracaoProcedimento.getProcedimentoFormatado() ); | ||
| 246 | - salvarProtocoloService.aprovar( protocolo, idUsuario ); | ||
| 247 | - | ||
| 248 | - protocolo.setArquivosList(arquivosRepository.findByProtocolo(protocolo)); | ||
| 249 | - mailer.enviarAceite( protocolo ); | ||
| 250 | - | ||
| 251 | - /*arquivosList.forEach( arquivo -> { | ||
| 252 | - arquivoStorage.excluir( arquivo.getNome() ); | ||
| 253 | - } );*/ | ||
| 254 | - | ||
| 255 | - | ||
| 256 | - return sei; | ||
| 257 | - | ||
| 258 | - | ||
| 259 | - } catch (Exception e) { | ||
| 260 | - e.printStackTrace(); | ||
| 261 | - rollback( protocolo, e.getMessage() ); | ||
| 262 | - } | ||
| 263 | - | ||
| 264 | - return null; | ||
| 265 | - | ||
| 266 | - } | ||
| 267 | - public RetornoConsultaProcedimento consultarProtocoloSei(String sei) { | ||
| 268 | - Optional<String> retorno = Optional.ofNullable(null); | ||
| 269 | - RetornoConsultaProcedimento retornoConsultaProcedimento = new RetornoConsultaProcedimento(); | ||
| 270 | - try { | ||
| 271 | - URL urlEndpoint = new URL( configuracaoRepository.recuperarValor( ConfiguracaoEnum.URL_ENDPOINT ) ); | ||
| 272 | - SeiBindingStub seiBindingStub = new SeiBindingStub( urlEndpoint, null ); | ||
| 273 | - retornoConsultaProcedimento = seiBindingStub.consultarProcedimento( | ||
| 274 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.SIGLA_SISTEMA ), | ||
| 275 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.IDENTIFICACAO_SERVICO ), | ||
| 276 | - configuracaoRepository.recuperarValor( ConfiguracaoEnum.ID_UNIDADE ), | ||
| 277 | - sei, | ||
| 278 | - "S", | ||
| 279 | - "S", | ||
| 280 | - "S", | ||
| 281 | - "S", | ||
| 282 | - "S", | ||
| 283 | - "S", | ||
| 284 | - "S", | ||
| 285 | - "S", | ||
| 286 | - "S" | ||
| 287 | - ); | ||
| 288 | - }catch(Exception e) { | ||
| 289 | - e.printStackTrace(); | ||
| 290 | - } | ||
| 291 | - return retornoConsultaProcedimento; | ||
| 292 | - } | ||
| 293 | - | ||
| 294 | - | 31 | + @Autowired |
| 32 | + private Mailer mailer; | ||
| 33 | + | ||
| 34 | + @Autowired | ||
| 35 | + private ConfiguracaoRepository configuracaoRepository; | ||
| 36 | + | ||
| 37 | + @Autowired | ||
| 38 | + private ClassificacaoRepository classificacaoRepository; | ||
| 39 | + | ||
| 40 | + @Autowired | ||
| 41 | + private SalvarProtocoloService salvarProtocoloService; | ||
| 42 | + | ||
| 43 | + @Autowired | ||
| 44 | + private ArquivosRepository arquivosRepository; | ||
| 45 | + | ||
| 46 | + @Autowired | ||
| 47 | + private ArquivoStorage arquivoStorage; | ||
| 48 | + | ||
| 49 | + private String getDateTime() { | ||
| 50 | + DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); | ||
| 51 | + Date date = new Date(); | ||
| 52 | + return dateFormat.format(date); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + @Async | ||
| 56 | + public String enviar(Protocolo protocolo, Long idUsuario, String sei, String tipo, String idSei) throws Exception { | ||
| 57 | + Map<String, String> map = new HashMap<String, String>(); | ||
| 58 | + if (idSei != null) { | ||
| 59 | + Optional<Classificacao> classificacaoConfig = classificacaoRepository.findByCodigo(Long.parseLong(idSei)); | ||
| 60 | + if (classificacaoConfig.isPresent()) { | ||
| 61 | + Classificacao c = classificacaoConfig.get(); | ||
| 62 | + Iterator<Configuracao> itr = c.getConfiguracoes().iterator(); | ||
| 63 | + while (itr.hasNext()) { | ||
| 64 | + Configuracao conf = itr.next(); | ||
| 65 | + map.put(conf.getNome(), conf.getValor()); | ||
| 66 | + } | ||
| 67 | + /** | ||
| 68 | + * Envio para o SEI Definido | ||
| 69 | + */ | ||
| 70 | + this.enviarDocumentoComSei(protocolo, idUsuario, sei, tipo, map, idSei); | ||
| 71 | + } | ||
| 72 | + } else { | ||
| 73 | + throw new Exception("[ERRO - idSei null]"); | ||
| 74 | + } | ||
| 75 | + return null; | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + /** | ||
| 79 | + * | ||
| 80 | + * @return array | ||
| 81 | + */ | ||
| 82 | + private Assunto[] recuperaAssunto() { | ||
| 83 | + Assunto assunto = new Assunto(); | ||
| 84 | + assunto.setCodigoEstruturado( | ||
| 85 | + configuracaoRepository.recuperarValor(ConfiguracaoEnum.ASSUNTO_CODIGO_ESTRUTURADO)); | ||
| 86 | + Assunto[] assuntos = { assunto }; | ||
| 87 | + return assuntos; | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + private void rollback(Protocolo protocolo, String msgErro) { | ||
| 91 | + protocolo.setNupe(null); | ||
| 92 | + salvarProtocoloService.pendente(protocolo); | ||
| 93 | + mailer.enviarEmailErroEnvioSEI(protocolo, msgErro); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + /** | ||
| 97 | + * | ||
| 98 | + * | ||
| 99 | + * | ||
| 100 | + * | ||
| 101 | + * | ||
| 102 | + */ | ||
| 103 | + | ||
| 104 | + private SeiBindingStub montarURLEndPoint(String endPoint) throws MalformedURLException, AxisFault { | ||
| 105 | + URL urlEndpoint = new URL(endPoint); | ||
| 106 | + SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); | ||
| 107 | + return seiBindingStub; | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + private Assunto[] montarAssunto(String assuntoCodigoEstruturado) { | ||
| 111 | + Assunto assunto = new Assunto(); | ||
| 112 | + assunto.setCodigoEstruturado(assuntoCodigoEstruturado); // Tipo de assunto | ||
| 113 | + Assunto[] assuntos = { assunto }; | ||
| 114 | + return assuntos; | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + private Procedimento montarProcedimento(Assunto[] assuntos, Map<String, String> mapConfig, Protocolo protocolo, int size) { | ||
| 118 | + Procedimento procedimento = new Procedimento(); | ||
| 119 | + procedimento.setAssuntos(assuntos); | ||
| 120 | + procedimento.setEspecificacao(mapConfig.get("PROCEDIMENTO_ESPECIFICADO")); | ||
| 121 | + procedimento.setObservacao(protocolo.toString() + "\n" + "Quantidade Arquivos: " + size); | ||
| 122 | + procedimento.setNivelAcesso(mapConfig.get("PROCEDIMENTO_NIVEL_ACESSO")); // 0 = Publico, 1 = Restrito, 2 = Sigiloso | ||
| 123 | + procedimento.setIdTipoProcedimento(mapConfig.get("PROCEDIMENTO_ID_TIPO_PROCEDIMENTO")); // Tipo de Processo => Adesão de atas | ||
| 124 | + procedimento.setIdHipoteseLegal(mapConfig.get("PROCEDIMENTO_HIPOTESE_LEGAL")); | ||
| 125 | + return procedimento; | ||
| 126 | + } | ||
| 127 | + | ||
| 128 | + private Interessado[] montarInteressado(Protocolo protocolo) { | ||
| 129 | + Interessado interessado = new Interessado(); | ||
| 130 | + interessado.setNome(protocolo.getUsuario().getNome()); | ||
| 131 | + interessado.setSigla("Telefone: " + protocolo.getUsuario().getTelefone()); | ||
| 132 | + Interessado[] interessados = { interessado }; | ||
| 133 | + return interessados; | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + private Documento montarDocumento(String idProcedimento, String descricao, String observacao, String nomeArquivo, | ||
| 137 | + String conteudo, String tipo, String idSerie, String data) throws IOException { | ||
| 138 | + Documento documento = new Documento(); | ||
| 139 | + documento.setIdProcedimento(idProcedimento); | ||
| 140 | + documento.setDescricao(descricao); | ||
| 141 | + documento.setObservacao(observacao); | ||
| 142 | + documento.setNomeArquivo(nomeArquivo); | ||
| 143 | + documento.setConteudo(conteudo); | ||
| 144 | + documento.setTipo(tipo); | ||
| 145 | + documento.setIdSerie(idSerie); | ||
| 146 | + documento.setData(data); | ||
| 147 | + | ||
| 148 | + return documento; | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + /** | ||
| 152 | + * Função para enviar para múltiplos SEI's | ||
| 153 | + * | ||
| 154 | + * @author Matheus de Carvalho Sobrinho | ||
| 155 | + * @param protocolo | ||
| 156 | + * @param idUsuario | ||
| 157 | + * @param sei | ||
| 158 | + * @param tipo | ||
| 159 | + * @param mapConfig | ||
| 160 | + * @param idSei | ||
| 161 | + * @return | ||
| 162 | + */ | ||
| 163 | + public String enviarDocumentoComSei(Protocolo protocolo, Long idUsuario, String sei, String tipo, | ||
| 164 | + Map<String, String> mapConfig, String idSei) { | ||
| 165 | + | ||
| 166 | + if (sei != null && tipo != null && !sei.isEmpty() && tipo.equals("existente")) { | ||
| 167 | + enviarDocumento(protocolo, idUsuario, sei, mapConfig, idSei); | ||
| 168 | + } else { | ||
| 169 | + try { | ||
| 170 | + List<Arquivos> arquivosList = arquivosRepository.findByProtocolo(protocolo); | ||
| 171 | + SeiBindingStub seiBindingStubMontado = this.montarURLEndPoint(mapConfig.get("URL_ENDPOINT")); | ||
| 172 | + Assunto[] assuntos = this.montarAssunto(mapConfig.get("ASSUNTO_CODIGO_ESTRUTURADO")); | ||
| 173 | + Interessado[] interessados = this.montarInteressado(protocolo); | ||
| 174 | + Procedimento procedimento = this.montarProcedimento(assuntos, mapConfig, protocolo, arquivosList.size()); | ||
| 175 | + procedimento.setInteressados(interessados); | ||
| 176 | + | ||
| 177 | + // Verificar se é um tipo informado | ||
| 178 | + if (tipo.equals("novo")) { | ||
| 179 | + procedimento.setNumeroProtocolo(sei); | ||
| 180 | + procedimento.setDataAutuacao(getDateTime()); | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + procedimento.setIdTipoProcedimento(mapConfig.get("PROCEDIMENTO_ID_TIPO_PROCEDIMENTO")); | ||
| 184 | + | ||
| 185 | + RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStubMontado.gerarProcedimento( | ||
| 186 | + mapConfig.get("SIGLA_SISTEMA"), mapConfig.get("IDENTIFICACAO_SERVICO"), | ||
| 187 | + mapConfig.get("ID_UNIDADE"), procedimento, null, null, null, "S", "N", null, null, null, null, | ||
| 188 | + null); | ||
| 189 | + | ||
| 190 | + arquivosList.forEach(arquivo -> { | ||
| 191 | + try { | ||
| 192 | + Path path = getDefault() | ||
| 193 | + .getPath(configuracaoRepository.recuperarValor(ConfiguracaoEnum.STORAGE_PATH)) | ||
| 194 | + .resolve(arquivo.getNome()); | ||
| 195 | + | ||
| 196 | + Documento documento = this.montarDocumento( | ||
| 197 | + retornoGeracaoProcedimento.getProcedimentoFormatado().replace(".", "").replace("/", "") | ||
| 198 | + .replace("-", ""), | ||
| 199 | + arquivo.getDescricaoDocumento(), | ||
| 200 | + protocolo.toString() + "\n" + "Quantidade Arquivos: " + arquivosList.size(), | ||
| 201 | + arquivo.getNomeOriginal(), | ||
| 202 | + Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile())), | ||
| 203 | + mapConfig.get("DOCUMENTO_TIPO"), recuperarCodigoSeiDeArquivo(arquivo, idSei), | ||
| 204 | + protocolo.getDataFormatada()); | ||
| 205 | + | ||
| 206 | + documento.setNivelAcesso(mapConfig.get("DOCUMENTO_NIVEL_ACESSO")); | ||
| 207 | + documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile()))); | ||
| 208 | + | ||
| 209 | + RetornoInclusaoDocumento retornoInclusaoDeDocumento = seiBindingStubMontado.incluirDocumento( | ||
| 210 | + mapConfig.get("SIGLA_SISTEMA"), mapConfig.get("IDENTIFICACAO_SERVICO"), | ||
| 211 | + mapConfig.get("ID_UNIDADE"), documento); | ||
| 212 | + System.out.println("Link = " + retornoInclusaoDeDocumento.getLinkAcesso()); | ||
| 213 | + | ||
| 214 | + } catch (IOException e) { | ||
| 215 | + protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage()); | ||
| 216 | + throw new RuntimeException(e.getMessage()); | ||
| 217 | + } | ||
| 218 | + }); | ||
| 219 | + | ||
| 220 | + protocolo.setLinkSEI(retornoGeracaoProcedimento.getLinkAcesso()); | ||
| 221 | + protocolo.setNupe(retornoGeracaoProcedimento.getProcedimentoFormatado()); | ||
| 222 | + salvarProtocoloService.aprovar(protocolo, idUsuario); | ||
| 223 | + | ||
| 224 | + mailer.enviarAceite(protocolo); | ||
| 225 | + | ||
| 226 | + return retornoGeracaoProcedimento.getProcedimentoFormatado(); | ||
| 227 | + } catch (Exception e) { | ||
| 228 | + protocolo.setErroWs("[ERRO GERAR PROCEDIMENTO] " + e.getMessage()); | ||
| 229 | + e.printStackTrace(); | ||
| 230 | + rollback(protocolo, e.getMessage()); | ||
| 231 | + } | ||
| 232 | + } | ||
| 233 | + | ||
| 234 | + return null; | ||
| 235 | + } | ||
| 236 | + | ||
| 237 | + public String enviarDocumento(Protocolo protocolo, Long idUsuario, String sei, Map<String, String> mapConfig, | ||
| 238 | + String idSei) { | ||
| 239 | + try { | ||
| 240 | + | ||
| 241 | + URL urlEndpoint = new URL(mapConfig.get("URL_ENDPOINT")); | ||
| 242 | + SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); | ||
| 243 | + seiBindingStub.setTimeout(600000 * 60); | ||
| 244 | + | ||
| 245 | + List<Arquivos> arquivosList = arquivosRepository.findByProtocolo(protocolo); | ||
| 246 | + | ||
| 247 | + arquivosList.forEach(arquivo -> { | ||
| 248 | + try { | ||
| 249 | + Documento documento = new Documento(); | ||
| 250 | + // documento.setIdProcedimento( sei ); | ||
| 251 | + documento.setIdProcedimento(sei.replace(".", "").replace("/", "").replace("-", "")); | ||
| 252 | + documento.setObservacao(protocolo.toString()); | ||
| 253 | + documento.setDescricao(arquivo.getDescricaoDocumento()); | ||
| 254 | + documento.setNomeArquivo(arquivo.getNomeOriginal()); | ||
| 255 | + | ||
| 256 | + documento.setTipo(mapConfig.get("DOCUMENTO_TIPO")); | ||
| 257 | + // documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar | ||
| 258 | + // para pegar da combo Tipo Documento | ||
| 259 | + | ||
| 260 | + documento.setIdSerie(recuperarCodigoSeiDeArquivo(arquivo, idSei)); // Tipo documento vindo do banco | ||
| 261 | + // de | ||
| 262 | + // dados | ||
| 263 | + documento.setData(protocolo.getDataFormatada()); | ||
| 264 | + documento.setNivelAcesso(mapConfig.get("DOCUMENTO_NIVEL_ACESSO")); | ||
| 265 | + | ||
| 266 | + Path path = getDefault() | ||
| 267 | + .getPath(configuracaoRepository.recuperarValor(ConfiguracaoEnum.STORAGE_PATH)) | ||
| 268 | + .resolve(arquivo.getNome()); | ||
| 269 | + documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile()))); | ||
| 270 | + | ||
| 271 | + seiBindingStub.incluirDocumento(mapConfig.get("SIGLA_SISTEMA"), | ||
| 272 | + mapConfig.get("IDENTIFICACAO_SERVICO"), mapConfig.get("ID_UNIDADE"), documento); | ||
| 273 | + } catch (IOException e) { | ||
| 274 | + protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage()); | ||
| 275 | + throw new RuntimeException(e.getMessage()); | ||
| 276 | + } | ||
| 277 | + }); | ||
| 278 | + | ||
| 279 | + protocolo.setNupe(sei); | ||
| 280 | + salvarProtocoloService.aprovar(protocolo, idUsuario); | ||
| 281 | + | ||
| 282 | + protocolo.setArquivosList(arquivosRepository.findByProtocolo(protocolo)); | ||
| 283 | + mailer.enviarAceite(protocolo); | ||
| 284 | + | ||
| 285 | + return sei; | ||
| 286 | + } catch (Exception e) { | ||
| 287 | + e.printStackTrace(); | ||
| 288 | + rollback(protocolo, e.getMessage()); | ||
| 289 | + } | ||
| 290 | + | ||
| 291 | + return null; | ||
| 292 | + | ||
| 293 | + } | ||
| 294 | + | ||
| 295 | + private String recuperarCodigoSeiDeArquivo(Arquivos arquivo, String idSei) { | ||
| 296 | + if (idSei.equals("2")) { | ||
| 297 | + return arquivo.getTipoDocumento().getCodigoSei(); | ||
| 298 | + } else if (idSei.equals("6")) { | ||
| 299 | + return arquivo.getTipoDocumento().getCodigoSeiMf(); | ||
| 300 | + } else if (idSei.equals("7")) { | ||
| 301 | + return arquivo.getTipoDocumento().getCodigoSeiMdic(); | ||
| 302 | + } | ||
| 303 | + return null; | ||
| 304 | + } | ||
| 305 | + | ||
| 306 | + public RetornoConsultaProcedimento consultarProtocoloSei(String sei) { | ||
| 307 | + Optional<String> retorno = Optional.ofNullable(null); | ||
| 308 | + RetornoConsultaProcedimento retornoConsultaProcedimento = new RetornoConsultaProcedimento(); | ||
| 309 | + try { | ||
| 310 | + URL urlEndpoint = new URL(configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_ENDPOINT)); | ||
| 311 | + SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); | ||
| 312 | + retornoConsultaProcedimento = seiBindingStub.consultarProcedimento( | ||
| 313 | + configuracaoRepository.recuperarValor(ConfiguracaoEnum.SIGLA_SISTEMA), | ||
| 314 | + configuracaoRepository.recuperarValor(ConfiguracaoEnum.IDENTIFICACAO_SERVICO), | ||
| 315 | + configuracaoRepository.recuperarValor(ConfiguracaoEnum.ID_UNIDADE), sei, "S", "S", "S", "S", "S", | ||
| 316 | + "S", "S", "S", "S"); | ||
| 317 | + } catch (Exception e) { | ||
| 318 | + e.printStackTrace(); | ||
| 319 | + } | ||
| 320 | + return retornoConsultaProcedimento; | ||
| 321 | + } | ||
| 322 | + | ||
| 323 | +// /** | ||
| 324 | +// * Enviar para o SEI primeiramente definido | ||
| 325 | +// * | ||
| 326 | +// * @param protocolo | ||
| 327 | +// * @param idUsuario | ||
| 328 | +// * @param sei | ||
| 329 | +// * @param tipo | ||
| 330 | +// * @return | ||
| 331 | +// */ | ||
| 332 | +// public String enviarSeiPadrao(Protocolo protocolo, Long idUsuario, String sei, String tipo, | ||
| 333 | +// Map<String, String> mapConfig, String idSei) { | ||
| 334 | +// | ||
| 335 | +// if (sei != null && tipo != null && !sei.isEmpty() && tipo.equals("existente")) { | ||
| 336 | +// enviarDocumentoPadrao(protocolo, idUsuario, sei, mapConfig, idSei); | ||
| 337 | +// } else { | ||
| 338 | +// | ||
| 339 | +// try { | ||
| 340 | +// URL urlEndpoint = new URL(configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_ENDPOINT)); | ||
| 341 | +// SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); | ||
| 342 | +// seiBindingStub.setTimeout(600000 * 60); | ||
| 343 | +// | ||
| 344 | +// Procedimento procedimento = new Procedimento(); | ||
| 345 | +// if (tipo.equals("novo")) { | ||
| 346 | +// procedimento.setNumeroProtocolo(sei); | ||
| 347 | +// procedimento.setDataAutuacao(getDateTime()); | ||
| 348 | +// } | ||
| 349 | +// | ||
| 350 | +// procedimento.setAssuntos(recuperaAssunto()); | ||
| 351 | +// procedimento.setEspecificacao( | ||
| 352 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.PROCEDIMENTO_ESPECIFICADO)); | ||
| 353 | +// | ||
| 354 | +// Interessado interessado = new Interessado(); | ||
| 355 | +// interessado.setNome(protocolo.getUsuario().getNome()); | ||
| 356 | +// interessado.setSigla("Telefone: " + protocolo.getUsuario().getTelefone()); | ||
| 357 | +// Interessado[] interessados = { interessado }; | ||
| 358 | +// | ||
| 359 | +// procedimento.setInteressados(interessados); | ||
| 360 | +// | ||
| 361 | +// procedimento.setNivelAcesso( | ||
| 362 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.PROCEDIMENTO_NIVEL_ACESSO)); | ||
| 363 | +// procedimento.setIdTipoProcedimento( | ||
| 364 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.PROCEDIMENTO_ID_TIPO_PROCEDIMENTO)); | ||
| 365 | +// | ||
| 366 | +// List<Arquivos> arquivosList = arquivosRepository.findByProtocolo(protocolo); | ||
| 367 | +// | ||
| 368 | +// procedimento.setObservacao(protocolo.toString() + "\n" + "Quantidade Arquivos: " + arquivosList.size()); | ||
| 369 | +// | ||
| 370 | +// // criando o procedimento | ||
| 371 | +// RetornoGeracaoProcedimento retornoGeracaoProcedimento = seiBindingStub.gerarProcedimento( | ||
| 372 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.SIGLA_SISTEMA), | ||
| 373 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.IDENTIFICACAO_SERVICO), | ||
| 374 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.ID_UNIDADE), procedimento, null, null, | ||
| 375 | +// null, "N", "N", null, null, "N", null, null); | ||
| 376 | +// | ||
| 377 | +// arquivosList.forEach(arquivo -> { | ||
| 378 | +// try { | ||
| 379 | +// Documento documento = new Documento(); | ||
| 380 | +// documento.setIdProcedimento(retornoGeracaoProcedimento.getProcedimentoFormatado() | ||
| 381 | +// .replace(".", "").replace("/", "").replace("-", "")); | ||
| 382 | +// documento.setObservacao(protocolo.toString()); | ||
| 383 | +// documento.setDescricao(arquivo.getDescricaoDocumento()); | ||
| 384 | +// documento.setNomeArquivo(arquivo.getNomeOriginal()); | ||
| 385 | +// documento.setTipo(configuracaoRepository.recuperarValor(ConfiguracaoEnum.DOCUMENTO_TIPO)); | ||
| 386 | +// // documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar | ||
| 387 | +// // para pegar da combo Tipo Documento | ||
| 388 | +// documento.setIdSerie(arquivo.getTipoDocumento().getCodigoSei()); // Tipo documento vindo do | ||
| 389 | +// // banco de dados | ||
| 390 | +// documento.setData(protocolo.getDataFormatada()); | ||
| 391 | +// documento.setNivelAcesso( | ||
| 392 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.DOCUMENTO_NIVEL_ACESSO)); | ||
| 393 | +// | ||
| 394 | +// Path path = getDefault() | ||
| 395 | +// .getPath(configuracaoRepository.recuperarValor(ConfiguracaoEnum.STORAGE_PATH)) | ||
| 396 | +// .resolve(arquivo.getNome()); | ||
| 397 | +// documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile()))); | ||
| 398 | +// | ||
| 399 | +// seiBindingStub.incluirDocumento( | ||
| 400 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.SIGLA_SISTEMA), | ||
| 401 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.IDENTIFICACAO_SERVICO), | ||
| 402 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.ID_UNIDADE), documento); | ||
| 403 | +// } catch (IOException e) { | ||
| 404 | +// protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage()); | ||
| 405 | +// throw new RuntimeException(e.getMessage()); | ||
| 406 | +// } | ||
| 407 | +// }); | ||
| 408 | +// | ||
| 409 | +// protocolo.setLinkSEI(retornoGeracaoProcedimento.getLinkAcesso()); | ||
| 410 | +// protocolo.setNupe(retornoGeracaoProcedimento.getProcedimentoFormatado()); | ||
| 411 | +// salvarProtocoloService.aprovar(protocolo, idUsuario); | ||
| 412 | +// | ||
| 413 | +// protocolo.setArquivosList(arquivosList); | ||
| 414 | +// mailer.enviarAceite(protocolo); | ||
| 415 | +// | ||
| 416 | +// return retornoGeracaoProcedimento.getProcedimentoFormatado(); | ||
| 417 | +// | ||
| 418 | +// } catch (Exception e) { | ||
| 419 | +// protocolo.setErroWs("[ERRO GERAR PROCEDIMENTO] " + e.getMessage()); | ||
| 420 | +// e.printStackTrace(); | ||
| 421 | +// rollback(protocolo, e.getMessage()); | ||
| 422 | +// } | ||
| 423 | +// } | ||
| 424 | +// | ||
| 425 | +// return null; | ||
| 426 | +// } | ||
| 427 | +// | ||
| 428 | +// public String enviarDocumentoPadrao(Protocolo protocolo, Long idUsuario, String sei, Map<String, String> mapConfig, | ||
| 429 | +// String idSei) { | ||
| 430 | +// String observacaoAnterior = ""; | ||
| 431 | +// try { | ||
| 432 | +// | ||
| 433 | +// URL urlEndpoint = new URL(configuracaoRepository.recuperarValor(ConfiguracaoEnum.URL_ENDPOINT)); | ||
| 434 | +// SeiBindingStub seiBindingStub = new SeiBindingStub(urlEndpoint, null); | ||
| 435 | +// seiBindingStub.setTimeout(600000 * 60); | ||
| 436 | +// | ||
| 437 | +// List<Arquivos> arquivosList = arquivosRepository.findByProtocolo(protocolo); | ||
| 438 | +// | ||
| 439 | +// arquivosList.forEach(arquivo -> { | ||
| 440 | +// try { | ||
| 441 | +// Documento documento = new Documento(); | ||
| 442 | +// // documento.setIdProcedimento( sei ); | ||
| 443 | +// documento.setIdProcedimento(sei.replace(".", "").replace("/", "").replace("-", "")); | ||
| 444 | +// documento.setObservacao(protocolo.toString()); | ||
| 445 | +// documento.setDescricao(arquivo.getDescricaoDocumento()); | ||
| 446 | +// documento.setNomeArquivo(arquivo.getNomeOriginal()); | ||
| 447 | +// documento.setTipo(configuracaoRepository.recuperarValor(ConfiguracaoEnum.DOCUMENTO_TIPO)); | ||
| 448 | +// // documento.setIdSerie(env.getProperty("documento.id-serie")); //TODO: Alterar | ||
| 449 | +// // para pegar da combo Tipo Documento | ||
| 450 | +// documento.setIdSerie(arquivo.getTipoDocumento().getCodigoSei()); // Tipo documento vindo do banco de | ||
| 451 | +// // dados | ||
| 452 | +// documento.setData(protocolo.getDataFormatada()); | ||
| 453 | +// documento.setNivelAcesso( | ||
| 454 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.DOCUMENTO_NIVEL_ACESSO)); | ||
| 455 | +// | ||
| 456 | +// Path path = getDefault() | ||
| 457 | +// .getPath(configuracaoRepository.recuperarValor(ConfiguracaoEnum.STORAGE_PATH)) | ||
| 458 | +// .resolve(arquivo.getNome()); | ||
| 459 | +// documento.setConteudo(Base64Utils.encodeToString(FileUtils.readFileToByteArray(path.toFile()))); | ||
| 460 | +// | ||
| 461 | +// seiBindingStub.incluirDocumento( | ||
| 462 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.SIGLA_SISTEMA), | ||
| 463 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.IDENTIFICACAO_SERVICO), | ||
| 464 | +// configuracaoRepository.recuperarValor(ConfiguracaoEnum.ID_UNIDADE), documento); | ||
| 465 | +// } catch (IOException e) { | ||
| 466 | +// protocolo.setErroWs("[ERRO INCLUIR DOCUMENTO] " + e.getMessage()); | ||
| 467 | +// throw new RuntimeException(e.getMessage()); | ||
| 468 | +// } | ||
| 469 | +// }); | ||
| 470 | +// | ||
| 471 | +// protocolo.setNupe(sei); | ||
| 472 | +// // protocolo.setNupe( retornoGeracaoProcedimento.getProcedimentoFormatado() ); | ||
| 473 | +// salvarProtocoloService.aprovar(protocolo, idUsuario); | ||
| 474 | +// | ||
| 475 | +// protocolo.setArquivosList(arquivosRepository.findByProtocolo(protocolo)); | ||
| 476 | +// mailer.enviarAceite(protocolo); | ||
| 477 | +// | ||
| 478 | +// /* | ||
| 479 | +// * arquivosList.forEach( arquivo -> { arquivoStorage.excluir( arquivo.getNome() | ||
| 480 | +// * ); } ); | ||
| 481 | +// */ | ||
| 482 | +// | ||
| 483 | +// return sei; | ||
| 484 | +// | ||
| 485 | +// } catch (Exception e) { | ||
| 486 | +// e.printStackTrace(); | ||
| 487 | +// rollback(protocolo, e.getMessage()); | ||
| 488 | +// } | ||
| 489 | +// | ||
| 490 | +// return null; | ||
| 491 | +// | ||
| 492 | +// } | ||
| 493 | + | ||
| 494 | + | ||
| 295 | } | 495 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/services/AutoCadastroService.java
| 1 | package br.gov.planejamento.dipla.protocolo.services; | 1 | package br.gov.planejamento.dipla.protocolo.services; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; | 3 | import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; |
| 4 | -import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; | ||
| 5 | -import br.gov.planejamento.dipla.protocolo.entities.Grupo; | ||
| 6 | -import br.gov.planejamento.dipla.protocolo.entities.LoginAttempt; | ||
| 7 | -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | ||
| 8 | -import br.gov.planejamento.dipla.protocolo.entities.Usuario; | ||
| 9 | -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | 4 | +import br.gov.planejamento.dipla.protocolo.entities.*; |
| 10 | import br.gov.planejamento.dipla.protocolo.mail.Mailer; | 5 | import br.gov.planejamento.dipla.protocolo.mail.Mailer; |
| 11 | -import br.gov.planejamento.dipla.protocolo.repositories.GrupoRepository; | ||
| 12 | -import br.gov.planejamento.dipla.protocolo.repositories.LoginAttemptRepository; | ||
| 13 | -import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; | ||
| 14 | -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioBrasilCidadaoRepository; | ||
| 15 | -import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; | 6 | +import br.gov.planejamento.dipla.protocolo.repositories.*; |
| 16 | import br.gov.planejamento.dipla.protocolo.services.exeptions.EmailUsuarioJaCadastradoException; | 7 | import br.gov.planejamento.dipla.protocolo.services.exeptions.EmailUsuarioJaCadastradoException; |
| 17 | import br.gov.planejamento.dipla.protocolo.services.exeptions.SenhaObrigatoriaUsuarioException; | 8 | import br.gov.planejamento.dipla.protocolo.services.exeptions.SenhaObrigatoriaUsuarioException; |
| 18 | - | ||
| 19 | import org.apache.commons.codec.digest.DigestUtils; | 9 | import org.apache.commons.codec.digest.DigestUtils; |
| 20 | import org.springframework.beans.factory.annotation.Autowired; | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| 21 | import org.springframework.security.crypto.password.PasswordEncoder; | 11 | import org.springframework.security.crypto.password.PasswordEncoder; |
| @@ -23,9 +13,6 @@ import org.springframework.stereotype.Service; | @@ -23,9 +13,6 @@ import org.springframework.stereotype.Service; | ||
| 23 | import org.springframework.transaction.annotation.Transactional; | 13 | import org.springframework.transaction.annotation.Transactional; |
| 24 | import org.springframework.util.Base64Utils; | 14 | import org.springframework.util.Base64Utils; |
| 25 | import org.springframework.util.StringUtils; | 15 | import org.springframework.util.StringUtils; |
| 26 | -import org.springframework.web.bind.annotation.GetMapping; | ||
| 27 | -import org.springframework.web.bind.annotation.PathVariable; | ||
| 28 | -import org.springframework.web.servlet.ModelAndView; | ||
| 29 | 16 | ||
| 30 | import java.util.ArrayList; | 17 | import java.util.ArrayList; |
| 31 | import java.util.List; | 18 | import java.util.List; |
| @@ -93,8 +80,8 @@ public class AutoCadastroService { | @@ -93,8 +80,8 @@ public class AutoCadastroService { | ||
| 93 | } | 80 | } |
| 94 | 81 | ||
| 95 | @Transactional | 82 | @Transactional |
| 96 | - public void cadastrarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno) { | ||
| 97 | - | 83 | + public Usuario cadastrarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno) { |
| 84 | + | ||
| 98 | UsuarioBrasilCidadao usuarioBrasilCidadao= new UsuarioBrasilCidadao(); | 85 | UsuarioBrasilCidadao usuarioBrasilCidadao= new UsuarioBrasilCidadao(); |
| 99 | Usuario usuario = new Usuario(); | 86 | Usuario usuario = new Usuario(); |
| 100 | usuario.setNome(usuarioretorno.getNome()); | 87 | usuario.setNome(usuarioretorno.getNome()); |
| @@ -104,18 +91,22 @@ public class AutoCadastroService { | @@ -104,18 +91,22 @@ public class AutoCadastroService { | ||
| 104 | List<Grupo> grupos = new ArrayList<>(); | 91 | List<Grupo> grupos = new ArrayList<>(); |
| 105 | grupos.add(grupoRepository.findOne(3L)); | 92 | grupos.add(grupoRepository.findOne(3L)); |
| 106 | usuario.setGrupos(grupos); | 93 | usuario.setGrupos(grupos); |
| 107 | - | 94 | + |
| 108 | salvar(usuario,grupos,false,false); | 95 | salvar(usuario,grupos,false,false); |
| 109 | - | 96 | + |
| 97 | + return usuario; | ||
| 98 | + | ||
| 110 | } | 99 | } |
| 111 | 100 | ||
| 112 | - public void migrarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno) { | 101 | + public UsuarioBrasilCidadao migrarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno, Usuario usuario) { |
| 113 | UsuarioBrasilCidadao usuarioBrasilCidadao= new UsuarioBrasilCidadao(); | 102 | UsuarioBrasilCidadao usuarioBrasilCidadao= new UsuarioBrasilCidadao(); |
| 114 | - //Salvando CPF | ||
| 115 | - usuarioBrasilCidadao.setCpf(usuarioretorno.getCpf()); | ||
| 116 | - usuarioBrasilCidadao.setToken(usuarioretorno.getToken()); | ||
| 117 | - usuarioBrasilCidadao.setAtivo(Boolean.FALSE); | ||
| 118 | - usuarioBrasilCidadaoRepository.save(usuarioBrasilCidadao); | 103 | + usuarioBrasilCidadao.setEmail(usuarioretorno.getEmail()); |
| 104 | + usuarioBrasilCidadao.setUsuario(usuario); | ||
| 105 | + usuarioBrasilCidadao.setCpf(usuarioretorno.getCpf()); | ||
| 106 | + usuarioBrasilCidadao.setToken(usuarioretorno.getToken()); | ||
| 107 | + usuarioBrasilCidadao.setAtivo(Boolean.FALSE); | ||
| 108 | + usuarioBrasilCidadaoRepository.save(usuarioBrasilCidadao); | ||
| 109 | + return usuarioBrasilCidadao; | ||
| 119 | } | 110 | } |
| 120 | public void atualizarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno, UsuarioBrasilCidadao usuarioBrasilCidadao, Boolean atualizaEmail) { | 111 | public void atualizarBrasilCidadao(UsuarioBrasilCidadaoDto usuarioretorno, UsuarioBrasilCidadao usuarioBrasilCidadao, Boolean atualizaEmail) { |
| 121 | 112 |
src/main/java/br/gov/planejamento/dipla/protocolo/services/BrasilCidadaoService.java
| @@ -6,44 +6,38 @@ | @@ -6,44 +6,38 @@ | ||
| 6 | package br.gov.planejamento.dipla.protocolo.services; | 6 | package br.gov.planejamento.dipla.protocolo.services; |
| 7 | 7 | ||
| 8 | import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; | 8 | import br.gov.planejamento.dipla.protocolo.config.BrasilCidadaoConfig; |
| 9 | -import br.gov.planejamento.dipla.protocolo.dto.TokenRetornoDto; | ||
| 10 | import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; | 9 | import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; |
| 11 | -import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | ||
| 12 | -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; | ||
| 13 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; | 10 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; |
| 14 | import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | 11 | import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; |
| 15 | -import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | ||
| 16 | -import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; | ||
| 17 | import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; | 12 | import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; |
| 18 | -import br.gov.planejamento.dipla.protocolo.security.BrasilCidadaoUserDetails; | ||
| 19 | import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; | 13 | import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; |
| 20 | - | 14 | +import org.jose4j.json.internal.json_simple.JSONArray; |
| 15 | +import org.jose4j.json.internal.json_simple.JSONObject; | ||
| 16 | +import org.jose4j.json.internal.json_simple.parser.JSONParser; | ||
| 17 | +import org.jose4j.jwk.PublicJsonWebKey; | ||
| 18 | +import org.jose4j.jwt.JwtClaims; | ||
| 19 | +import org.jose4j.jwt.consumer.JwtConsumer; | ||
| 20 | +import org.jose4j.jwt.consumer.JwtConsumerBuilder; | ||
| 21 | import org.springframework.beans.factory.annotation.Autowired; | 21 | import org.springframework.beans.factory.annotation.Autowired; |
| 22 | -import org.springframework.http.HttpEntity; | ||
| 23 | -import org.springframework.http.HttpMethod; | ||
| 24 | -import org.springframework.http.ResponseEntity; | ||
| 25 | import org.springframework.http.converter.StringHttpMessageConverter; | 22 | import org.springframework.http.converter.StringHttpMessageConverter; |
| 26 | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; | 23 | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
| 27 | import org.springframework.security.core.GrantedAuthority; | 24 | import org.springframework.security.core.GrantedAuthority; |
| 28 | import org.springframework.security.core.authority.SimpleGrantedAuthority; | 25 | import org.springframework.security.core.authority.SimpleGrantedAuthority; |
| 29 | -import org.springframework.security.core.context.SecurityContextHolder; | ||
| 30 | import org.springframework.stereotype.Service; | 26 | import org.springframework.stereotype.Service; |
| 31 | -import org.springframework.transaction.annotation.Transactional; | ||
| 32 | import org.springframework.web.client.RestTemplate; | 27 | import org.springframework.web.client.RestTemplate; |
| 33 | -import org.springframework.web.servlet.ModelAndView; | ||
| 34 | - | ||
| 35 | -import com.fasterxml.jackson.databind.ObjectMapper; | ||
| 36 | 28 | ||
| 29 | +import javax.net.ssl.HttpsURLConnection; | ||
| 30 | +import java.io.BufferedReader; | ||
| 31 | +import java.io.InputStreamReader; | ||
| 32 | +import java.net.URL; | ||
| 37 | import java.nio.charset.Charset; | 33 | import java.nio.charset.Charset; |
| 38 | -import java.util.Collection; | ||
| 39 | -import java.util.HashSet; | ||
| 40 | -import java.util.List; | ||
| 41 | -import java.util.Optional; | ||
| 42 | -import java.util.Set; | 34 | +import java.util.*; |
| 35 | + | ||
| 36 | + | ||
| 43 | 37 | ||
| 44 | /** | 38 | /** |
| 45 | * | 39 | * |
| 46 | - * @author leonardo | 40 | + * @author leonardo, Jose Fortes |
| 47 | */ | 41 | */ |
| 48 | @Service | 42 | @Service |
| 49 | public class BrasilCidadaoService { | 43 | public class BrasilCidadaoService { |
| @@ -55,63 +49,148 @@ public class BrasilCidadaoService { | @@ -55,63 +49,148 @@ public class BrasilCidadaoService { | ||
| 55 | 49 | ||
| 56 | @Autowired | 50 | @Autowired |
| 57 | private BrasilCidadaoConfig brasilCidadaoOpenIdConnectConfig; | 51 | private BrasilCidadaoConfig brasilCidadaoOpenIdConnectConfig; |
| 58 | - | ||
| 59 | - | ||
| 60 | - public UsuarioBrasilCidadaoDto autenticarBrasilCidadao(String code) throws Exception{ | ||
| 61 | - UsuarioBrasilCidadaoDto usuarioretorno = new UsuarioBrasilCidadaoDto(); | ||
| 62 | - | ||
| 63 | - RestTemplate restTemplate = new RestTemplate(); | ||
| 64 | - restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); | ||
| 65 | - | ||
| 66 | - HttpEntity<String> entityToken = new HttpEntity<String>(brasilCidadaoOpenIdConnectConfig.gerarRequisicaoAtributo(code), brasilCidadaoOpenIdConnectConfig.gerarRequisicaoHeader()); | ||
| 67 | - | ||
| 68 | - //Enviando autorização com code | ||
| 69 | - | ||
| 70 | - ResponseEntity<String> respEntToken = restTemplate.exchange(brasilCidadaoOpenIdConnectConfig.gerarUrlToken(), HttpMethod.POST, entityToken, String.class); | ||
| 71 | - | ||
| 72 | - if(respEntToken.getStatusCodeValue()!=200) { | ||
| 73 | - throw new Exception("Erro no recebimento do token"); | ||
| 74 | - } | ||
| 75 | - | ||
| 76 | - //Capturando token | ||
| 77 | - TokenRetornoDto retorno = new ObjectMapper().readValue(respEntToken.getBody().toString(), TokenRetornoDto.class); | ||
| 78 | - | ||
| 79 | - //Enviando token | ||
| 80 | - ResponseEntity<String> respEntUsuario = restTemplate.exchange(brasilCidadaoOpenIdConnectConfig.gerarUrlDadosUsuarios(retorno.getAccess_token()),HttpMethod.GET,null,String.class); | ||
| 81 | - | ||
| 82 | - if(respEntUsuario.getStatusCodeValue()!=200) { | ||
| 83 | - throw new Exception("Erro no recebimento dos dados do usuario"); | ||
| 84 | - } | ||
| 85 | - | ||
| 86 | - //Capturando dados usuario | ||
| 87 | - usuarioretorno = new ObjectMapper().readValue(respEntUsuario.getBody().toString() , UsuarioBrasilCidadaoDto.class); | ||
| 88 | - usuarioretorno.setToken(retorno.getAccess_token()); | ||
| 89 | - | ||
| 90 | - return usuarioretorno; | ||
| 91 | - } | ||
| 92 | - | ||
| 93 | - public UsernamePasswordAuthenticationToken autenticarProtocolo(UsuarioBrasilCidadaoDto usuarioretorno) throws Exception { | ||
| 94 | - Optional<UsuarioBrasilCidadao> usuarioBrasilCidadao = usuarioRepository.buscarBrasilCidadao(usuarioretorno.getCpf()); | ||
| 95 | - | ||
| 96 | - BrasilCidadaoUserDetails userDetails = new BrasilCidadaoUserDetails(usuarioBrasilCidadao.get().getUsuario().getEmail()); | ||
| 97 | - Optional<Usuario> usuario = usuarioRepository.findByEmail(usuarioBrasilCidadao.get().getUsuario().getEmail()); | ||
| 98 | - | ||
| 99 | - | ||
| 100 | - List<String> permissoes = usuarioRepository.permissoes(usuario.get()); | 52 | + |
| 53 | + | ||
| 54 | + public UsernamePasswordAuthenticationToken autenticarProtocolo(UsuarioBrasilCidadaoDto usuarioretorno) throws Exception { | ||
| 55 | + Optional<UsuarioBrasilCidadao> usuarioBrasilCidadao = usuarioRepository.buscarBrasilCidadao(usuarioretorno.getCpf()); | ||
| 56 | + | ||
| 57 | + Optional<Usuario> usuario = usuarioRepository.findByEmail(usuarioBrasilCidadao.get().getUsuario().getEmail()); | ||
| 58 | + | ||
| 101 | usuario.get().setTemPerfilBrasilCidadao(true); | 59 | usuario.get().setTemPerfilBrasilCidadao(true); |
| 102 | - | ||
| 103 | - UsuarioSistema usuarioSistema = new UsuarioSistema(usuario.get(),getPermissoes(),true); | ||
| 104 | - | ||
| 105 | - UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken( | ||
| 106 | - usuarioSistema, | ||
| 107 | - usuarioretorno.getToken(),getPermissoes()); | 60 | + |
| 61 | + UsuarioSistema usuarioSistema = new UsuarioSistema(usuario.get(), getPermissoes(), true); | ||
| 62 | + | ||
| 63 | + UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken( | ||
| 64 | + usuarioSistema, | ||
| 65 | + usuarioretorno.getToken(), getPermissoes()); | ||
| 108 | return auth; | 66 | return auth; |
| 109 | - } | ||
| 110 | - | ||
| 111 | - private Collection<? extends GrantedAuthority> getPermissoes() { | 67 | + } |
| 68 | + | ||
| 69 | + private Collection<? extends GrantedAuthority> getPermissoes() { | ||
| 112 | Set<SimpleGrantedAuthority> authorities = new HashSet<>(); | 70 | Set<SimpleGrantedAuthority> authorities = new HashSet<>(); |
| 113 | authorities.add(new SimpleGrantedAuthority("ROLE_BRASILCIDADAO")); | 71 | authorities.add(new SimpleGrantedAuthority("ROLE_BRASILCIDADAO")); |
| 114 | return authorities; | 72 | return authorities; |
| 115 | } | 73 | } |
| 116 | 74 | ||
| 75 | + public UsuarioBrasilCidadaoDto autenticarBrasilCidadao(String code) throws Exception { | ||
| 76 | + UsuarioBrasilCidadaoDto usuarioRetorno = new UsuarioBrasilCidadaoDto(); | ||
| 77 | + | ||
| 78 | + RestTemplate restTemplate = new RestTemplate(); | ||
| 79 | + restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); | ||
| 80 | + | ||
| 81 | + //Enviando autorização com code | ||
| 82 | + try { | ||
| 83 | + String idToken = receberToken(code); | ||
| 84 | + usuarioRetorno = recuperarInformacoesUsuarioBrasilCidadao(idToken); | ||
| 85 | + return usuarioRetorno; | ||
| 86 | + } catch (Exception e) { | ||
| 87 | + msgErro = e.getMessage(); | ||
| 88 | + System.out.println(msgErro); | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + return null; | ||
| 92 | + } | ||
| 93 | + | ||
| 94 | + private String receberToken(String code) throws Exception{ | ||
| 95 | + String idToken = ""; | ||
| 96 | + try { | ||
| 97 | + String tokens = extractToken(code); | ||
| 98 | + org.jose4j.json.internal.json_simple.parser.JSONParser parser = new JSONParser(); | ||
| 99 | + org.jose4j.json.internal.json_simple.JSONObject tokensJson = (JSONObject) parser.parse(tokens); | ||
| 100 | + idToken = (String) tokensJson.get("id_token"); | ||
| 101 | + } catch (Exception e) { | ||
| 102 | + msgErro = e.getMessage(); | ||
| 103 | + System.out.println(msgErro); | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + return idToken; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + private String extractToken(String code) throws Exception { | ||
| 110 | + String retorno = ""; | ||
| 111 | + URL url = new URL(brasilCidadaoOpenIdConnectConfig.gerarURLToken(code)); | ||
| 112 | + HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); | ||
| 113 | + conn.setRequestMethod("POST"); | ||
| 114 | + conn.setRequestProperty("Accept", "application/json"); | ||
| 115 | + conn.setRequestProperty("authorization", String.format("Basic %s", | ||
| 116 | + Base64.getEncoder().encodeToString(String.format("%s:%s", brasilCidadaoOpenIdConnectConfig.obterClientID(), brasilCidadaoOpenIdConnectConfig.obterClientSecret()).getBytes()))); | ||
| 117 | + | ||
| 118 | + if (conn.getResponseCode() != 200) { | ||
| 119 | + throw new RuntimeException("Falhou : HTTP error code : " + conn.getResponseCode()); | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); | ||
| 123 | + | ||
| 124 | + String tokens = null; | ||
| 125 | + while ((tokens = br.readLine()) != null) { | ||
| 126 | + retorno += tokens; | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + conn.disconnect(); | ||
| 130 | + | ||
| 131 | + return retorno; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + private UsuarioBrasilCidadaoDto recuperarInformacoesUsuarioBrasilCidadao(String idToken) throws Exception{ | ||
| 135 | + JwtClaims idTokenJwtClaims; | ||
| 136 | + try { | ||
| 137 | + idTokenJwtClaims = processToClaims(idToken); | ||
| 138 | + } catch (Exception e) { | ||
| 139 | + msgErro = e.getMessage(); | ||
| 140 | + System.out.println(msgErro); | ||
| 141 | + throw new Exception(e); | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + UsuarioBrasilCidadaoDto usuarioBrasilCidadaoDto = new UsuarioBrasilCidadaoDto(); | ||
| 145 | + usuarioBrasilCidadaoDto.setEmail(idTokenJwtClaims.getClaimValue("email").toString()); | ||
| 146 | + usuarioBrasilCidadaoDto.setNome(idTokenJwtClaims.getStringClaimValue("name").toString()); | ||
| 147 | + usuarioBrasilCidadaoDto.setCpf(idTokenJwtClaims.getClaimValue("sub").toString()); | ||
| 148 | + return usuarioBrasilCidadaoDto; | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + private JwtClaims processToClaims(String token) throws Exception { | ||
| 152 | + URL url = new URL(brasilCidadaoOpenIdConnectConfig.obterURLDadosUsuario()); | ||
| 153 | + HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); | ||
| 154 | + conn.setRequestMethod("GET"); | ||
| 155 | + conn.setRequestProperty("Accept", "application/json"); | ||
| 156 | + if (conn.getResponseCode() != 200) { | ||
| 157 | + throw new RuntimeException("Falhou : HTTP error code : " + conn.getResponseCode()); | ||
| 158 | + } | ||
| 159 | + | ||
| 160 | + BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); | ||
| 161 | + | ||
| 162 | + String ln = null, jwk = ""; | ||
| 163 | + while ((ln = br.readLine()) != null) { | ||
| 164 | + jwk += ln; | ||
| 165 | + } | ||
| 166 | + | ||
| 167 | + conn.disconnect(); | ||
| 168 | + | ||
| 169 | + JSONParser parser = new JSONParser(); | ||
| 170 | + JSONObject tokensJson = (JSONObject) parser.parse(jwk); | ||
| 171 | + | ||
| 172 | + JSONArray keys = (JSONArray) tokensJson.get("keys"); | ||
| 173 | + | ||
| 174 | + JSONObject keyJSONObject = (JSONObject) keys.get(0); | ||
| 175 | + | ||
| 176 | + String key = keyJSONObject.toJSONString(); | ||
| 177 | + | ||
| 178 | + PublicJsonWebKey pjwk = PublicJsonWebKey.Factory.newPublicJwk(key); | ||
| 179 | + | ||
| 180 | + JwtConsumer jwtConsumer = new JwtConsumerBuilder().setRequireExpirationTime() // Exige que o token tenha um | ||
| 181 | + // tempo de validade | ||
| 182 | + .setExpectedAudience(brasilCidadaoOpenIdConnectConfig.obterClientID()).setMaxFutureValidityInMinutes(60) // Testa se o tempo de validade do | ||
| 183 | + // access token é inferior ou igual | ||
| 184 | + // ao tempo máximo estipulado (Tempo | ||
| 185 | + // padrão de 60 minutos) | ||
| 186 | + .setAllowedClockSkewInSeconds(30) // Esta é uma boa prática. | ||
| 187 | + .setRequireSubject() // Exige que o token tenha um Subject. | ||
| 188 | + .setExpectedIssuer(brasilCidadaoOpenIdConnectConfig.obterURLBrasilCidadao() + "/") // Verifica a procedência do token. | ||
| 189 | + .setVerificationKey(pjwk.getPublicKey()) // Verifica a assinatura com a public key fornecida. | ||
| 190 | + .build(); // Cria a instância JwtConsumer. | ||
| 191 | + | ||
| 192 | + return jwtConsumer.processToClaims(token); | ||
| 193 | + } | ||
| 194 | + | ||
| 195 | + | ||
| 117 | } | 196 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/services/CadastroUsuarioService.java
| @@ -5,13 +5,10 @@ | @@ -5,13 +5,10 @@ | ||
| 5 | */ | 5 | */ |
| 6 | package br.gov.planejamento.dipla.protocolo.services; | 6 | package br.gov.planejamento.dipla.protocolo.services; |
| 7 | 7 | ||
| 8 | -import br.gov.planejamento.dipla.protocolo.dto.UsuarioBrasilCidadaoDto; | ||
| 9 | import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; | 8 | import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; |
| 10 | -import br.gov.planejamento.dipla.protocolo.entities.Grupo; | ||
| 11 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; | 9 | import br.gov.planejamento.dipla.protocolo.entities.Usuario; |
| 12 | -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | ||
| 13 | import br.gov.planejamento.dipla.protocolo.mail.Mailer; | 10 | import br.gov.planejamento.dipla.protocolo.mail.Mailer; |
| 14 | -import br.gov.planejamento.dipla.protocolo.repositories.*; | 11 | +import br.gov.planejamento.dipla.protocolo.repositories.UsuarioRepository; |
| 15 | import br.gov.planejamento.dipla.protocolo.services.exeptions.EmailUsuarioJaCadastradoException; | 12 | import br.gov.planejamento.dipla.protocolo.services.exeptions.EmailUsuarioJaCadastradoException; |
| 16 | import br.gov.planejamento.dipla.protocolo.services.exeptions.SenhaObrigatoriaUsuarioException; | 13 | import br.gov.planejamento.dipla.protocolo.services.exeptions.SenhaObrigatoriaUsuarioException; |
| 17 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -22,8 +19,6 @@ import org.springframework.util.StringUtils; | @@ -22,8 +19,6 @@ import org.springframework.util.StringUtils; | ||
| 22 | 19 | ||
| 23 | import java.math.BigInteger; | 20 | import java.math.BigInteger; |
| 24 | import java.security.SecureRandom; | 21 | import java.security.SecureRandom; |
| 25 | -import java.util.ArrayList; | ||
| 26 | -import java.util.List; | ||
| 27 | import java.util.Optional; | 22 | import java.util.Optional; |
| 28 | 23 | ||
| 29 | /** | 24 | /** |
| @@ -105,7 +100,7 @@ public class CadastroUsuarioService { | @@ -105,7 +100,7 @@ public class CadastroUsuarioService { | ||
| 105 | usuario.setSenha(senha); | 100 | usuario.setSenha(senha); |
| 106 | mailer.enviarNovaSenha(usuario); | 101 | mailer.enviarNovaSenha(usuario); |
| 107 | }else { | 102 | }else { |
| 108 | - throw new RuntimeException("Usuário Cadastrado como Brasil Cidadão."); | 103 | + throw new RuntimeException("Usuário Cadastrado com Login Único."); |
| 109 | } | 104 | } |
| 110 | }else{ | 105 | }else{ |
| 111 | throw new RuntimeException("Email não cadastrado."); | 106 | throw new RuntimeException("Email não cadastrado."); |
src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoEmailService.java
| @@ -5,12 +5,8 @@ | @@ -5,12 +5,8 @@ | ||
| 5 | */ | 5 | */ |
| 6 | package br.gov.planejamento.dipla.protocolo.services; | 6 | package br.gov.planejamento.dipla.protocolo.services; |
| 7 | 7 | ||
| 8 | -import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | ||
| 9 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; | 8 | import br.gov.planejamento.dipla.protocolo.entities.ConfiguracaoEmail; |
| 10 | -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; | ||
| 11 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; | 9 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoEmailRepository; |
| 12 | -import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | ||
| 13 | -import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; | ||
| 14 | import org.springframework.beans.factory.annotation.Autowired; | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| 15 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
| 16 | import org.springframework.transaction.annotation.Transactional; | 12 | import org.springframework.transaction.annotation.Transactional; |
src/main/java/br/gov/planejamento/dipla/protocolo/services/ConfiguracaoService.java
| @@ -6,9 +6,7 @@ | @@ -6,9 +6,7 @@ | ||
| 6 | package br.gov.planejamento.dipla.protocolo.services; | 6 | package br.gov.planejamento.dipla.protocolo.services; |
| 7 | 7 | ||
| 8 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; | 8 | import br.gov.planejamento.dipla.protocolo.entities.Configuracao; |
| 9 | -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; | ||
| 10 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; | 9 | import br.gov.planejamento.dipla.protocolo.repositories.ConfiguracaoRepository; |
| 11 | -import br.gov.planejamento.dipla.protocolo.repositories.TiposDocumentoRepository; | ||
| 12 | import org.springframework.beans.factory.annotation.Autowired; | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| 13 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
| 14 | import org.springframework.transaction.annotation.Transactional; | 12 | import org.springframework.transaction.annotation.Transactional; |
src/main/java/br/gov/planejamento/dipla/protocolo/services/EnviarProtocoloService.java
| 1 | package br.gov.planejamento.dipla.protocolo.services; | 1 | package br.gov.planejamento.dipla.protocolo.services; |
| 2 | 2 | ||
| 3 | +import Sei.RetornoConsultaProcedimento; | ||
| 3 | import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; | 4 | import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; |
| 4 | import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; | 5 | import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; |
| 5 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | 6 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; |
| @@ -13,9 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired; | @@ -13,9 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
| 13 | import org.springframework.context.ApplicationEventPublisher; | 14 | import org.springframework.context.ApplicationEventPublisher; |
| 14 | import org.springframework.stereotype.Service; | 15 | import org.springframework.stereotype.Service; |
| 15 | 16 | ||
| 16 | -import Sei.RetornoConsultaProcedimento; | ||
| 17 | - | ||
| 18 | -import java.time.LocalDateTime; | ||
| 19 | import java.util.Date; | 17 | import java.util.Date; |
| 20 | import java.util.List; | 18 | import java.util.List; |
| 21 | import java.util.Optional; | 19 | import java.util.Optional; |
| @@ -56,13 +54,13 @@ public class EnviarProtocoloService { | @@ -56,13 +54,13 @@ public class EnviarProtocoloService { | ||
| 56 | return Optional.of(retornoConsultaProcedimento.getLinkAcesso()); | 54 | return Optional.of(retornoConsultaProcedimento.getLinkAcesso()); |
| 57 | } | 55 | } |
| 58 | 56 | ||
| 59 | - public void enviarSEI(Protocolo protocolo, String sei, String tipo) { | 57 | + public void enviarSEI(Protocolo protocolo, String sei, String tipo, String idSei) { |
| 60 | protocolo.setDataEnvio(new Date()); | 58 | protocolo.setDataEnvio(new Date()); |
| 61 | protocolo.setNupe("Processando..."); | 59 | protocolo.setNupe("Processando..."); |
| 62 | protocolo.setStatus(StatusEnum.PROCESSANDO); | 60 | protocolo.setStatus(StatusEnum.PROCESSANDO); |
| 63 | protocoloRepository.save(protocolo); | 61 | protocoloRepository.save(protocolo); |
| 64 | logProtocoloService.saveLog(protocolo,AcaoEnum.ALTERAR); | 62 | logProtocoloService.saveLog(protocolo,AcaoEnum.ALTERAR); |
| 65 | - publisher.publishEvent(new AprovarProtocoloEvent(this, protocolo, logProtocoloService.recuperarUsuario(), sei, tipo)); | 63 | + publisher.publishEvent(new AprovarProtocoloEvent(this, protocolo, logProtocoloService.recuperarUsuario(), sei, tipo, idSei)); |
| 66 | } | 64 | } |
| 67 | 65 | ||
| 68 | public void recusar(Protocolo protocolo) { | 66 | public void recusar(Protocolo protocolo) { |
src/main/java/br/gov/planejamento/dipla/protocolo/services/LogProtocoloService.java
| 1 | package br.gov.planejamento.dipla.protocolo.services; | 1 | package br.gov.planejamento.dipla.protocolo.services; |
| 2 | 2 | ||
| 3 | -import java.util.Date; | ||
| 4 | -import java.util.List; | ||
| 5 | -import java.util.Optional; | ||
| 6 | - | ||
| 7 | -import javax.persistence.Column; | ||
| 8 | -import javax.persistence.EnumType; | ||
| 9 | -import javax.persistence.Enumerated; | ||
| 10 | -import javax.persistence.GeneratedValue; | ||
| 11 | -import javax.persistence.GenerationType; | ||
| 12 | -import javax.persistence.Id; | ||
| 13 | -import javax.persistence.JoinColumn; | ||
| 14 | -import javax.persistence.ManyToOne; | ||
| 15 | -import javax.persistence.Temporal; | ||
| 16 | - | 3 | +import br.gov.planejamento.dipla.protocolo.entities.*; |
| 4 | +import br.gov.planejamento.dipla.protocolo.repositories.LogStatusRepository; | ||
| 5 | +import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; | ||
| 17 | import org.springframework.beans.factory.annotation.Autowired; | 6 | import org.springframework.beans.factory.annotation.Autowired; |
| 18 | import org.springframework.security.core.context.SecurityContextHolder; | 7 | import org.springframework.security.core.context.SecurityContextHolder; |
| 19 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
| 20 | import org.springframework.transaction.annotation.Transactional; | 9 | import org.springframework.transaction.annotation.Transactional; |
| 21 | - | ||
| 22 | -import br.gov.planejamento.dipla.protocolo.dto.ArquivoDTO; | ||
| 23 | -import br.gov.planejamento.dipla.protocolo.entities.AcaoEnum; | ||
| 24 | -import br.gov.planejamento.dipla.protocolo.entities.Arquivos; | ||
| 25 | -import br.gov.planejamento.dipla.protocolo.entities.EntidadeEnum; | ||
| 26 | -import br.gov.planejamento.dipla.protocolo.entities.LogSistema; | ||
| 27 | -import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | ||
| 28 | -import br.gov.planejamento.dipla.protocolo.entities.StatusEnum; | ||
| 29 | -import br.gov.planejamento.dipla.protocolo.entities.TiposDocumento; | ||
| 30 | -import br.gov.planejamento.dipla.protocolo.entities.Usuario; | ||
| 31 | -import br.gov.planejamento.dipla.protocolo.entities.UsuarioBrasilCidadao; | ||
| 32 | -import br.gov.planejamento.dipla.protocolo.repositories.LogStatusRepository; | ||
| 33 | -import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; | ||
| 34 | -import br.gov.planejamento.dipla.protocolo.security.UsuarioSistema; | ||
| 35 | -import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; | ||
| 36 | /** | 10 | /** |
| 37 | * Created by dario on 29/09/17. | 11 | * Created by dario on 29/09/17. |
| 38 | */ | 12 | */ |
src/main/java/br/gov/planejamento/dipla/protocolo/services/ProtocoloFlagService.java
| 1 | package br.gov.planejamento.dipla.protocolo.services; | 1 | package br.gov.planejamento.dipla.protocolo.services; |
| 2 | 2 | ||
| 3 | -import java.util.Optional; | ||
| 4 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; |
| 4 | + | ||
| 5 | +import java.util.Optional; | ||
| 5 | /** | 6 | /** |
| 6 | * Created by dario on 29/09/17. | 7 | * Created by dario on 29/09/17. |
| 7 | */ | 8 | */ |
src/main/java/br/gov/planejamento/dipla/protocolo/services/event/AprovarProtocoloEvent.java
| @@ -11,12 +11,14 @@ public class AprovarProtocoloEvent extends ApplicationEvent { | @@ -11,12 +11,14 @@ public class AprovarProtocoloEvent extends ApplicationEvent { | ||
| 11 | private Long idUsuario; | 11 | private Long idUsuario; |
| 12 | private String sei; | 12 | private String sei; |
| 13 | private String tipo; | 13 | private String tipo; |
| 14 | + private String idSei; | ||
| 14 | 15 | ||
| 15 | - public AprovarProtocoloEvent(Object source, Protocolo protocolo, Long idUsuario, String sei, String tipo) { | 16 | + public AprovarProtocoloEvent(Object source, Protocolo protocolo, Long idUsuario, String sei, String tipo, String idSei) { |
| 16 | super(source); | 17 | super(source); |
| 17 | this.protocolo = protocolo; | 18 | this.protocolo = protocolo; |
| 18 | this.idUsuario = idUsuario; | 19 | this.idUsuario = idUsuario; |
| 19 | this.sei = sei; | 20 | this.sei = sei; |
| 20 | this.tipo = tipo; | 21 | this.tipo = tipo; |
| 22 | + this.idSei = idSei; | ||
| 21 | } | 23 | } |
| 22 | } | 24 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/services/event/listener/AprovarProtocoloListener.java
| @@ -14,6 +14,10 @@ public class AprovarProtocoloListener implements ApplicationListener<AprovarProt | @@ -14,6 +14,10 @@ public class AprovarProtocoloListener implements ApplicationListener<AprovarProt | ||
| 14 | 14 | ||
| 15 | @Override | 15 | @Override |
| 16 | public void onApplicationEvent(AprovarProtocoloEvent aprovarProtocoloEvent) { | 16 | public void onApplicationEvent(AprovarProtocoloEvent aprovarProtocoloEvent) { |
| 17 | - seiWSClient.enviar(aprovarProtocoloEvent.getProtocolo(),aprovarProtocoloEvent.getIdUsuario(), aprovarProtocoloEvent.getSei(),aprovarProtocoloEvent.getTipo()); | 17 | + try { |
| 18 | + seiWSClient.enviar(aprovarProtocoloEvent.getProtocolo(),aprovarProtocoloEvent.getIdUsuario(), aprovarProtocoloEvent.getSei(),aprovarProtocoloEvent.getTipo(), aprovarProtocoloEvent.getIdSei()); | ||
| 19 | + } catch (Exception e) { | ||
| 20 | + e.printStackTrace(); | ||
| 21 | + } | ||
| 18 | } | 22 | } |
| 19 | } | 23 | } |
src/main/java/br/gov/planejamento/dipla/protocolo/services/impl/ProtocoloFlagServiceImpl.java
| 1 | package br.gov.planejamento.dipla.protocolo.services.impl; | 1 | package br.gov.planejamento.dipla.protocolo.services.impl; |
| 2 | 2 | ||
| 3 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; | 3 | import br.gov.planejamento.dipla.protocolo.entities.Protocolo; |
| 4 | -import br.gov.planejamento.dipla.protocolo.services.ProtocoloFlagService; | ||
| 5 | import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; | 4 | import br.gov.planejamento.dipla.protocolo.repositories.ProtocoloRepository; |
| 5 | +import br.gov.planejamento.dipla.protocolo.services.ProtocoloFlagService; | ||
| 6 | import org.springframework.beans.factory.annotation.Autowired; | 6 | import org.springframework.beans.factory.annotation.Autowired; |
| 7 | import org.springframework.stereotype.Service; | 7 | import org.springframework.stereotype.Service; |
| 8 | -import org.springframework.stereotype.Service; | ||
| 9 | 8 | ||
| 10 | import java.util.Optional; | 9 | import java.util.Optional; |
| 11 | 10 |
src/main/java/br/gov/planejamento/dipla/protocolo/storage/local/ArquivoStorageLocal.java
| 1 | package br.gov.planejamento.dipla.protocolo.storage.local; | 1 | package br.gov.planejamento.dipla.protocolo.storage.local; |
| 2 | 2 | ||
| 3 | -import br.gov.planejamento.dipla.protocolo.clamav.ClamavUtil; | ||
| 4 | import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; | 3 | import br.gov.planejamento.dipla.protocolo.storage.ArquivoStorage; |
| 5 | import br.gov.planejamento.dipla.protocolo.util.MyStringUtil; | 4 | import br.gov.planejamento.dipla.protocolo.util.MyStringUtil; |
| 6 | import org.apache.commons.io.FileUtils; | 5 | import org.apache.commons.io.FileUtils; |
src/main/java/fi/solita/clamav/ClamAVClient.java
| @@ -3,12 +3,8 @@ package fi.solita.clamav; | @@ -3,12 +3,8 @@ package fi.solita.clamav; | ||
| 3 | /** | 3 | /** |
| 4 | * Created by dario on 19/10/17. | 4 | * Created by dario on 19/10/17. |
| 5 | */ | 5 | */ |
| 6 | -import java.io.BufferedOutputStream; | ||
| 7 | -import java.io.ByteArrayInputStream; | ||
| 8 | -import java.io.ByteArrayOutputStream; | ||
| 9 | -import java.io.IOException; | ||
| 10 | -import java.io.InputStream; | ||
| 11 | -import java.io.OutputStream; | 6 | + |
| 7 | +import java.io.*; | ||
| 12 | import java.net.Socket; | 8 | import java.net.Socket; |
| 13 | import java.nio.ByteBuffer; | 9 | import java.nio.ByteBuffer; |
| 14 | import java.nio.charset.StandardCharsets; | 10 | import java.nio.charset.StandardCharsets; |
src/main/resources/application.properties
| 1 | +#Banco de dados | ||
| 2 | + | ||
| 3 | +spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect | ||
| 4 | +spring.datasource.url= jdbc:mysql://10.209.40.206/protocolo-sei?useSSL=false | ||
| 5 | +spring.datasource.username=root | ||
| 6 | +spring.datasource.password=root | ||
| 7 | + | ||
| 8 | +#server.context-path=/protocolo | ||
| 9 | + | ||
| 1 | spring.thymeleaf.mode=HTML | 10 | spring.thymeleaf.mode=HTML |
| 2 | spring.thymeleaf.template-resolver-order=1 | 11 | spring.thymeleaf.template-resolver-order=1 |
| 3 | 12 | ||
| 4 | #spring.mvc.locale=pt_BR | 13 | #spring.mvc.locale=pt_BR |
| 5 | spring.mvc.date-format=dd/MM/yyyy HH:mm | 14 | spring.mvc.date-format=dd/MM/yyyy HH:mm |
| 6 | 15 | ||
| 7 | -spring.datasource.jndi-name=java:comp/env/jdbc/protocoloDB | 16 | +#spring.datasource.jndi-name=java:comp/env/jdbc/protocoloDB |
| 8 | 17 | ||
| 9 | spring.http.multipart.max-file-size=30720KB | 18 | spring.http.multipart.max-file-size=30720KB |
| 10 | spring.http.multipart.max-request-size=30720KB | 19 | spring.http.multipart.max-request-size=30720KB |
| @@ -18,9 +27,10 @@ versao=@project.version@ | @@ -18,9 +27,10 @@ versao=@project.version@ | ||
| 18 | 27 | ||
| 19 | 28 | ||
| 20 | 29 | ||
| 21 | - | ||
| 22 | - | ||
| 23 | # Recaptcha | 30 | # Recaptcha |
| 24 | #recaptcha.url=https://www.google.com/recaptcha/api/siteverify | 31 | #recaptcha.url=https://www.google.com/recaptcha/api/siteverify |
| 25 | #recaptcha.site-key=!1vfdvS34#$%%$Cdd7581dec | 32 | #recaptcha.site-key=!1vfdvS34#$%%$Cdd7581dec |
| 26 | -#recaptcha.secret-key=!1vfdvS34#$%%$Cdd7581dec | ||
| 27 | \ No newline at end of file | 33 | \ No newline at end of file |
| 34 | +#recaptcha.secret-key=!1vfdvS34#$%%$Cdd7581dec | ||
| 35 | + | ||
| 36 | +# Comando para execu��o do flyway em ambiente de desenvolvimento | ||
| 37 | +# mvn flyway:migrate -Dflyway.url=jdbc:mysql://localhost:3306/protocolo?useSSL=false -Dflyway.user=root -Dflyway.password=root -e -X | ||
| 28 | \ No newline at end of file | 38 | \ No newline at end of file |
src/main/resources/db/migration/V01_Start.sql
| @@ -1,582 +0,0 @@ | @@ -1,582 +0,0 @@ | ||
| 1 | --- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64) | ||
| 2 | --- | ||
| 3 | --- Server version 5.7.21 | ||
| 4 | - | ||
| 5 | -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; | ||
| 6 | -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; | ||
| 7 | -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; | ||
| 8 | -/*!40101 SET NAMES utf8 */; | ||
| 9 | -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; | ||
| 10 | -/*!40103 SET TIME_ZONE='+00:00' */; | ||
| 11 | -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; | ||
| 12 | -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; | ||
| 13 | -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; | ||
| 14 | -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; | ||
| 15 | - | ||
| 16 | --- | ||
| 17 | --- Table structure for table `arquivos` | ||
| 18 | --- | ||
| 19 | - | ||
| 20 | -DROP TABLE IF EXISTS `arquivos`; | ||
| 21 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 22 | -/*!40101 SET character_set_client = utf8 */; | ||
| 23 | -CREATE TABLE `arquivos` ( | ||
| 24 | - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, | ||
| 25 | - `codigo_protocolo` bigint(20) DEFAULT NULL, | ||
| 26 | - `nome` varchar(200) NOT NULL, | ||
| 27 | - `nome_original` varchar(100) NOT NULL, | ||
| 28 | - `content_type` varchar(100) NOT NULL, | ||
| 29 | - `tamanho` varchar(10) NOT NULL, | ||
| 30 | - `codigo_tipo_documento` bigint(20) DEFAULT NULL, | ||
| 31 | - `descricao_documento` varchar(200) DEFAULT NULL, | ||
| 32 | - PRIMARY KEY (`codigo`), | ||
| 33 | - KEY `codigo_protocolo` (`codigo_protocolo`), | ||
| 34 | - KEY `codigo_tipo_documento` (`codigo_tipo_documento`), | ||
| 35 | - CONSTRAINT `arquivos_ibfk_1` FOREIGN KEY (`codigo_protocolo`) REFERENCES `protocolo` (`codigo`), | ||
| 36 | - CONSTRAINT `arquivos_ibfk_2` FOREIGN KEY (`codigo_tipo_documento`) REFERENCES `tipo_documento` (`codigo`) | ||
| 37 | -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; | ||
| 38 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 39 | - | ||
| 40 | - | ||
| 41 | --- | ||
| 42 | --- Table structure for table `classificacao` | ||
| 43 | --- | ||
| 44 | - | ||
| 45 | -DROP TABLE IF EXISTS `classificacao`; | ||
| 46 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 47 | -/*!40101 SET character_set_client = utf8 */; | ||
| 48 | -CREATE TABLE `classificacao` ( | ||
| 49 | - `codigo` bigint(20) NOT NULL, | ||
| 50 | - `nome` varchar(100) NOT NULL, | ||
| 51 | - PRIMARY KEY (`codigo`) | ||
| 52 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 53 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 54 | - | ||
| 55 | --- | ||
| 56 | --- Dumping data for table `classificacao` | ||
| 57 | --- | ||
| 58 | - | ||
| 59 | -LOCK TABLES `classificacao` WRITE; | ||
| 60 | -/*!40000 ALTER TABLE `classificacao` DISABLE KEYS */; | ||
| 61 | -INSERT INTO `classificacao` VALUES (1,'server-email'),(2,'sei'),(3,'storage'),(4,'brasil-cidadao'),(5,'captcha'); | ||
| 62 | -/*!40000 ALTER TABLE `classificacao` ENABLE KEYS */; | ||
| 63 | -UNLOCK TABLES; | ||
| 64 | - | ||
| 65 | --- | ||
| 66 | --- Table structure for table `configuracao` | ||
| 67 | --- | ||
| 68 | - | ||
| 69 | -DROP TABLE IF EXISTS `configuracao`; | ||
| 70 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 71 | -/*!40101 SET character_set_client = utf8 */; | ||
| 72 | -CREATE TABLE `configuracao` ( | ||
| 73 | - `codigo` bigint(20) NOT NULL, | ||
| 74 | - `nome` varchar(45) NOT NULL, | ||
| 75 | - `valor` text, | ||
| 76 | - `descricao` text, | ||
| 77 | - `codigo_classificacao` bigint(20) NOT NULL, | ||
| 78 | - PRIMARY KEY (`codigo`), | ||
| 79 | - KEY `fk_configuracao_classificacao_idx` (`codigo_classificacao`), | ||
| 80 | - CONSTRAINT `classificacao_fk` FOREIGN KEY (`codigo_classificacao`) REFERENCES `classificacao` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION | ||
| 81 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 82 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 83 | - | ||
| 84 | --- | ||
| 85 | --- Dumping data for table `configuracao` | ||
| 86 | --- | ||
| 87 | - | ||
| 88 | -LOCK TABLES `configuracao` WRITE; | ||
| 89 | -/*!40000 ALTER TABLE `configuracao` DISABLE KEYS */; | ||
| 90 | -INSERT INTO `configuracao` VALUES (1,'SMTP_SERVER','10.209.253.28','',1),(2,'SMTP_PORT','25','teste3',1),(3,'MAIL_FROM','xxx@yyy.zzz','',1),(4,'EMAIL_RESPONSAVEL','sss@sssf.com',NULL,1),(9,'URL_AUTORIZAR','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/authorize',NULL,4),(10,'URL_TOKEN','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/token',NULL,4),(11,'URL_DADOS_USUARIO','https://testeservicos-ecidadao.estaleiro.serpro.gov.br/servicos-ecidadao/ecidadao/usuario/getUserInfo/',NULL,4),(12,'CLIENT_ID','516a9b57-d022-4843-a792-93b4dc95622b',NULL,4),(13,'SCOPE','openid',NULL,4),(14,'REDIRECT_URI','https://protocolo.planejamento.gov.br/login',NULL,4),(15,'CLIENT_SECRET','Ld65DuKIva0_EU0LO1VrVC6Be7b-_AsgvkueKpW4OJlhDdJQ4TJ9nKB173M5c5mmG03uhZvEbBKnDRmAe7gZkw',NULL,4),(16,'ESCOPO','dados_brasil_cidadao',NULL,4),(18,'URL_BRASIL_CIDADAO','https://testescp-ecidadao.estaleiro.serpro.gov.br/scp/login',NULL,4),(19,'URL_PRIMEIRO_ACESSO','https://testeportal-ecidadao.estaleiro.serpro.gov.br/servicos-cidadao/acesso/#/primeiro-acesso',NULL,4),(20,'STORAGE_PATH','E:/Ambiente/Desenvolvimento/estorage/temp','teste2',3),(21,'URL_ENDPOINT','https://seitreina.nuvem.gov.br/sei/ws/SeiWS.php','teste4',2),(22,'ASSUNTO_CODIGO_ESTRUTURADO','520.1',NULL,2),(23,'PROCEDIMENTO_ESPECIFICADO','Especificacao do processo',NULL,2),(24,'PROCEDIMENTO_NIVEL_ACESSO','0',NULL,2),(25,'PROCEDIMENTO_ID_TIPO_PROCEDIMENTO','100000346',NULL,2),(26,'DOCUMENTO_TIPO','R',NULL,2),(27,'DOCUMENTO_ID_SERIE','1',NULL,2),(28,'DOCUMENTO_NIVEL_ACESSO','0',NULL,2),(29,'SIGLA_SISTEMA','UNB',NULL,2),(30,'IDENTIFICACAO_SERVICO','testeunb',NULL,2),(31,'ID_UNIDADE','110001972',NULL,2),(32,'CAPTCHA_SITE_KEY','6LdBAVQUAAAAAET4Dun738dTVCWfhqVDuvnDoBAp',NULL,5),(33,'CAPTCHA_SECRET_KEY','6LdBAVQUAAAAAEa3owvd2PBSaOwU8OOPeFwTq13w',NULL,5); | ||
| 91 | -/*!40000 ALTER TABLE `configuracao` ENABLE KEYS */; | ||
| 92 | -UNLOCK TABLES; | ||
| 93 | - | ||
| 94 | --- | ||
| 95 | --- Table structure for table `configuracao_email` | ||
| 96 | --- | ||
| 97 | - | ||
| 98 | -DROP TABLE IF EXISTS `configuracao_email`; | ||
| 99 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 100 | -/*!40101 SET character_set_client = utf8 */; | ||
| 101 | -CREATE TABLE `configuracao_email` ( | ||
| 102 | - `codigo` int(11) NOT NULL, | ||
| 103 | - `nome` varchar(45) DEFAULT NULL, | ||
| 104 | - `valor` text, | ||
| 105 | - PRIMARY KEY (`codigo`) | ||
| 106 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 107 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 108 | - | ||
| 109 | --- | ||
| 110 | --- Dumping data for table `configuracao_email` | ||
| 111 | --- | ||
| 112 | - | ||
| 113 | -LOCK TABLES `configuracao_email` WRITE; | ||
| 114 | -/*!40000 ALTER TABLE `configuracao_email` DISABLE KEYS */; | ||
| 115 | -INSERT INTO `configuracao_email` VALUES (1,'EMAIL_CONTEUDO_CADASTRO','<p><span>PREZADO(A),</span></p>\r\n<p style=\"text-align: justify;\"><span><br />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 <span>{$METADADO_USUARIO_URLCONFIRMACAO}</span></span></p>\r\n<p><span><br />ESSE PASSO É IMPORTANTE PARA VALIDARMOS TODOS OS USUÁRIOS.</span></p>'),(2,'EMAIL_CONTEUDO_CONSOLIDACAO','<p><span>PREZADO(A),</span></p>\r\n<p style=\"text-align: justify;\"><span><br />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 <span>{$METADADO_USUARIO_URLCONSILIACAO}</span></span></p>\r\n<p><span><br />ESSE PASSO É IMPORTANTE PARA VALIDARMOS TODOS OS USUÁRIOS.</span></p>'),(3,'EMAIL_CONTEUDO_ERRO_SEI','<h1 style=\"font-size: 15px;\">Erro ao enviar o protocolo Nº <span>{$METADADO_PROTOCOLO_NUMERO}</span>para o SEI</h1>\r\n<p>Detalhe do Erro: <span>{$METADADO_MSGERRO}</span>.</p>'),(4,'EMAIL_CONTEUDO_ESQUECI_SENHA','<p style=\"font-size: 15px;\">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.</p>\r\n<h1 style=\"font-size: 15px;\">Sua nova senha é: <span>{$METADADO_USUARIO_NOVASENHA}</span></h1>'),(5,'EMAIL_CONTEUDO_PROTOCOLO','<h3>Número do Protocolo Provisório: <span>{$METADADO_PROTOCOLO_NUMERO}</span></h3>\r\n<p style=\"text-align: justify;\">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.</p>\r\n<p>Data: <span>{$METADADO_PROTOCOLO_DATAHORAFORMADATA}</span></p>\r\n<p>Nome: <span>{$METADADO_PROTOCOLO_USUARIONOME}</span></p>\r\n<p>E-mail: <span>{$METADADO_PROTOCOLO_USUARIOEMAIL}</span></p>\r\n<p>E-mail: <span>{$METADADO_PROTOCOLO_EMAIL1}</span></p>\r\n<p>E-mail: <span>{$METADADO_PROTOCOLO_EMAIL2}</span></p>\r\n<p>Referência ao protocolo anterior: <span>{$METADADO_PROTOCOLO_NUMEROANTERIOR}</span></p>\r\n<p><span>{$METADADO_PROTOCOLO_TABELAARQUIVO}</span></p>'),(6,'EMAIL_CONTEUDO_NEGADO','<h3>Número do Protocolo Provisório: <span>{$METADADO_PROTOCOLO_NUMERO}</span></h3>\r\n<p style=\"text-align: justify;\">Prezado (a)<span>{$METADADO_PROTOCOLO_USUARIONOME}</span>, <br /> Esta é uma mensagem automática e não deve ser respondida. <br /> Seu protocolo não foi aceito pelo motivo abaixo especificado: <br /><span>{$METADADO_PROTOCOLO_OBSERVACAO}</span></p>\r\n<p>Nome:<span>{$METADADO_PROTOCOLO_USUARIONOME}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_USUARIOEMAIL}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_EMAIL1}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_EMAIL2}</span></p>'),(7,'EMAIL_CONTEUDO_RECEBIMENTO_SEI','<h3>Número Único de Protocolo:<span>{$METADADO_PROTOCOLO_NUPE}</span></h3>\r\n<p style=\"text-align: justify;\">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:<span>{$METADADO_PROTOCOLO_NUPE}</span>. 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 <span>{$METADADO_PROTOCOLO_LINKSEI}</span></p>\r\n<p>Data:<span>{$METADADO_PROTOCOLO_DATAHORAFORMADATA}</span>}.</p>\r\n<p>Nome:<span>{$METADADO_PROTOCOLO_USUARIONOME}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_USUARIOEMAIL}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_EMAIL1}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_EMAIL2}</span></p>\r\n<p>Referência ao protocolo anterior:</p>\r\n<p><span>{$METADADO_PROTOCOLO_TABELAARQUIVO}</span></p>'),(8,'EMAIL_CABECALHO','<h4 style=\"background-color: #fafafa; color: #626262; text-align: center;\"><span>{$METADADO_LOGO_EMAIL}</span></h4><h4 style=\"background-color: #fafafa; color: #626262; text-align: center;\">Ministério do Planejamento, Desenvolvimento e Gestão <br />Protocolo Central <br />Esplanada dos Ministérios Bloco K, Térreo, sala T 28, CEP 70.040-906 – Brasília-DF <br />protocolo@planejamento.gov.br <br />(61) 2020-5195/5580 </h4>'),(9,'EMAIL_RODAPE','<p> </p>\r <p>“Por gentileza, responda nossa pesquisa de satisfação do Sistema de Protocolo Eletrônico. Sua contribuição é de extrema valia. <a href=\"http://formsus.datasus.gov.br/site/formulario.php?id_aplicacao=36481\">Clique aqui</a>”</p>\r <p> </p>\r <p style=\"text-align: justify; font-size: 10px;\">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. </p>'),(10,'EMAIL_CONTEUDO_DESBLOQUEIO','<p><span>PREZADO(A),</span></p>\r\n<p style=\"text-align: justify;\"><span><br />Usuário bloqueado, favor acessar o LINK <span>{$METADADO_USUARIO_URLDESBLOQUEIO}</span></span></p>\r\n<p><span><br />para desbloqueiar o usuário.</span></p>'); | ||
| 116 | -/*!40000 ALTER TABLE `configuracao_email` ENABLE KEYS */; | ||
| 117 | -UNLOCK TABLES; | ||
| 118 | - | ||
| 119 | --- | ||
| 120 | --- Table structure for table `expedicao` | ||
| 121 | --- | ||
| 122 | - | ||
| 123 | -DROP TABLE IF EXISTS `expedicao`; | ||
| 124 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 125 | -/*!40101 SET character_set_client = utf8 */; | ||
| 126 | -CREATE TABLE `expedicao` ( | ||
| 127 | - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, | ||
| 128 | - `numero_processo` varchar(100) NOT NULL, | ||
| 129 | - `data_expedicao` datetime NOT NULL, | ||
| 130 | - `usuario_codigo` bigint(20) NOT NULL, | ||
| 131 | - `status_expedicao` varchar(45) DEFAULT NULL, | ||
| 132 | - PRIMARY KEY (`codigo`), | ||
| 133 | - KEY `fk_expedicao_usuario1_idx` (`usuario_codigo`), | ||
| 134 | - CONSTRAINT `fk_expedicao_usuario1` FOREIGN KEY (`usuario_codigo`) REFERENCES `usuario` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION | ||
| 135 | -) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8; | ||
| 136 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 137 | - | ||
| 138 | - | ||
| 139 | --- | ||
| 140 | --- Table structure for table `grupo` | ||
| 141 | --- | ||
| 142 | - | ||
| 143 | -DROP TABLE IF EXISTS `grupo`; | ||
| 144 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 145 | -/*!40101 SET character_set_client = utf8 */; | ||
| 146 | -CREATE TABLE `grupo` ( | ||
| 147 | - `codigo` bigint(20) NOT NULL, | ||
| 148 | - `nome` varchar(50) NOT NULL, | ||
| 149 | - PRIMARY KEY (`codigo`) | ||
| 150 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 151 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 152 | - | ||
| 153 | --- | ||
| 154 | --- Dumping data for table `grupo` | ||
| 155 | --- | ||
| 156 | - | ||
| 157 | -LOCK TABLES `grupo` WRITE; | ||
| 158 | -/*!40000 ALTER TABLE `grupo` DISABLE KEYS */; | ||
| 159 | -INSERT INTO `grupo` VALUES (1,'Administrador'),(2,'Protocolo'),(3,'Brasil Cidadao'),(4,'Usuario Expedidor'); | ||
| 160 | -/*!40000 ALTER TABLE `grupo` ENABLE KEYS */; | ||
| 161 | -UNLOCK TABLES; | ||
| 162 | - | ||
| 163 | --- | ||
| 164 | --- Table structure for table `grupo_permissao` | ||
| 165 | --- | ||
| 166 | - | ||
| 167 | -DROP TABLE IF EXISTS `grupo_permissao`; | ||
| 168 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 169 | -/*!40101 SET character_set_client = utf8 */; | ||
| 170 | -CREATE TABLE `grupo_permissao` ( | ||
| 171 | - `codigo_grupo` bigint(20) NOT NULL, | ||
| 172 | - `codigo_permissao` bigint(20) NOT NULL, | ||
| 173 | - PRIMARY KEY (`codigo_grupo`,`codigo_permissao`), | ||
| 174 | - KEY `codigo_permissao` (`codigo_permissao`), | ||
| 175 | - CONSTRAINT `grupo_permissao_ibfk_1` FOREIGN KEY (`codigo_grupo`) REFERENCES `grupo` (`codigo`), | ||
| 176 | - CONSTRAINT `grupo_permissao_ibfk_2` FOREIGN KEY (`codigo_permissao`) REFERENCES `permissao` (`codigo`) | ||
| 177 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 178 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 179 | - | ||
| 180 | --- | ||
| 181 | --- Dumping data for table `grupo_permissao` | ||
| 182 | --- | ||
| 183 | - | ||
| 184 | -LOCK TABLES `grupo_permissao` WRITE; | ||
| 185 | -/*!40000 ALTER TABLE `grupo_permissao` DISABLE KEYS */; | ||
| 186 | -INSERT INTO `grupo_permissao` VALUES (1,1),(2,2),(3,3),(4,4); | ||
| 187 | -/*!40000 ALTER TABLE `grupo_permissao` ENABLE KEYS */; | ||
| 188 | -UNLOCK TABLES; | ||
| 189 | - | ||
| 190 | --- | ||
| 191 | --- Table structure for table `link_expedicao_sei` | ||
| 192 | --- | ||
| 193 | - | ||
| 194 | -DROP TABLE IF EXISTS `link_expedicao_sei`; | ||
| 195 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 196 | -/*!40101 SET character_set_client = utf8 */; | ||
| 197 | -CREATE TABLE `link_expedicao_sei` ( | ||
| 198 | - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, | ||
| 199 | - `link` varchar(255) NOT NULL, | ||
| 200 | - `data` datetime NOT NULL, | ||
| 201 | - `status` varchar(10) NOT NULL, | ||
| 202 | - `usuario_codigo` bigint(20) NOT NULL, | ||
| 203 | - `expedicao_codigo` bigint(20) NOT NULL, | ||
| 204 | - PRIMARY KEY (`codigo`), | ||
| 205 | - KEY `fk_link_expedicao_sei_usuario1_idx` (`usuario_codigo`), | ||
| 206 | - KEY `fk_link_expedicao_sei_expedicao1_idx` (`expedicao_codigo`), | ||
| 207 | - CONSTRAINT `fk_link_expedicao_sei_expedicao1` FOREIGN KEY (`expedicao_codigo`) REFERENCES `expedicao` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION, | ||
| 208 | - CONSTRAINT `fk_link_expedicao_sei_usuario1` FOREIGN KEY (`usuario_codigo`) REFERENCES `usuario` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION | ||
| 209 | -) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; | ||
| 210 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 211 | - | ||
| 212 | - | ||
| 213 | --- | ||
| 214 | --- Table structure for table `log_sistema` | ||
| 215 | --- | ||
| 216 | - | ||
| 217 | -DROP TABLE IF EXISTS `log_sistema`; | ||
| 218 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 219 | -/*!40101 SET character_set_client = utf8 */; | ||
| 220 | -CREATE TABLE `log_sistema` ( | ||
| 221 | - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, | ||
| 222 | - `codigo_entidade` bigint(20) NOT NULL, | ||
| 223 | - `entidade` varchar(45) NOT NULL, | ||
| 224 | - `acao` varchar(45) NOT NULL, | ||
| 225 | - `antes` text, | ||
| 226 | - `depois` text, | ||
| 227 | - `data_hora` datetime NOT NULL, | ||
| 228 | - `codigo_usuario` bigint(20) DEFAULT NULL, | ||
| 229 | - PRIMARY KEY (`codigo`) | ||
| 230 | -) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=utf8; | ||
| 231 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 232 | - | ||
| 233 | - | ||
| 234 | --- | ||
| 235 | --- Table structure for table `login_attempt` | ||
| 236 | --- | ||
| 237 | - | ||
| 238 | -DROP TABLE IF EXISTS `login_attempt`; | ||
| 239 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 240 | -/*!40101 SET character_set_client = utf8 */; | ||
| 241 | -CREATE TABLE `login_attempt` ( | ||
| 242 | - `id` int(11) NOT NULL AUTO_INCREMENT, | ||
| 243 | - `key` varchar(255) NOT NULL, | ||
| 244 | - `amount` int(2) NOT NULL DEFAULT '1', | ||
| 245 | - `reset_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 246 | - `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 247 | - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 248 | - PRIMARY KEY (`id`), | ||
| 249 | - KEY `amount` (`amount`), | ||
| 250 | - KEY `reset_at` (`reset_at`), | ||
| 251 | - KEY `key` (`key`) USING BTREE | ||
| 252 | -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1; | ||
| 253 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 254 | - | ||
| 255 | - | ||
| 256 | --- | ||
| 257 | --- Table structure for table `metadado` | ||
| 258 | --- | ||
| 259 | - | ||
| 260 | -DROP TABLE IF EXISTS `metadado`; | ||
| 261 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 262 | -/*!40101 SET character_set_client = utf8 */; | ||
| 263 | -CREATE TABLE `metadado` ( | ||
| 264 | - `codigo` int(11) NOT NULL, | ||
| 265 | - `nome` varchar(45) NOT NULL, | ||
| 266 | - `valor` text, | ||
| 267 | - `descricao` text, | ||
| 268 | - PRIMARY KEY (`codigo`) | ||
| 269 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 270 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 271 | - | ||
| 272 | --- | ||
| 273 | --- Dumping data for table `metadado` | ||
| 274 | --- | ||
| 275 | - | ||
| 276 | -LOCK TABLES `metadado` WRITE; | ||
| 277 | -/*!40000 ALTER TABLE `metadado` DISABLE KEYS */; | ||
| 278 | -INSERT INTO `metadado` VALUES (1,'METADADO_LOGO_EMAIL','<img src=\"../../static/images/brasao-brasil.png\" th:src=\"|cid:logo|\"/>','Imagem do logótipo do ministério.'),(2,'METADADO_MSGERRO','<span th:text=\"${msgErro}\">Erro no protocolo.</span>','Mensagem de erro ao enviar ao SEI.'),(3,'METADADO_PROTOCOLO_DATAHORAFORMADATA','<span th:text=\"${protocolo.dataHoraFormatada}\">','Data de criação do protocolo.'),(4,'METADADO_PROTOCOLO_EMAIL1','<span th:text=\"${protocolo.email1}\">E-mail: protocolo.email1</span>','E-mail 1 de interessado.'),(5,'METADADO_PROTOCOLO_EMAIL2','<span th:text=\"${protocolo.email2}\">E-mail: protocolo.emails</span>','E-mail 2 de interessado.'),(6,'METADADO_PROTOCOLO_LINKSEI','<a th:href=\"|https://protocolointegrado.gov.br/protocolo/documento/detalhes_documento.jsf?protocolo=${protocolo.nupe}|\">Link protocolo integrado.</a>','Link de acesso ao protocolo no SEI.'),(7,'METADADO_PROTOCOLO_NUMERO','<span th:text=\"${protocolo.numero}\">Nmero do Protocolo Provisrio: 123ads31232asfd</span>','Numero do protocolo.'),(8,'METADADO_PROTOCOLO_NUMEROANTERIOR','<span th:text=\"${protocolo.numeroProtocoloAnterior}\">Referncia ao protocolo anterior: 121345461</span>','Numero de protocolo anterior.'),(9,'METADADO_PROTOCOLO_NUPE','<span th:text=\"${protocolo.nupe}\">protocolo.nupe</span>','Numero único do protocolo no SEI.'),(10,'METADADO_PROTOCOLO_OBSERVACAO','<span th:text=\"${protocolo.observacao}\">observacao</span>','Obsersavação cadastrada no cancelamento do protocolo.'),(11,'METADADO_PROTOCOLO_TABELAARQUIVO','<table border=\"1\" cellpadding=\"2\" cellspacing=\"0\" style=\"width: 100%\">\n <thead>\n <tr>\n <td style=\"text-align: center\">\n Descrição do documento\n </td>\n <td style=\"text-align: center\">\n Arquivo\n </td>\n </tr>\n </thead>\n <tbody>\n <tr th:each=\"arquivo: ${protocolo.arquivosList}\">\n <td th:text=\"${arquivo.tipoDocumento.descricao}\">${arquivo.tipoDocumento.descricao}</td>\n <td th:text=\"${arquivo.nomeOriginal}\">${arquivo.nomeOriginal}</td>\n </tr>\n </tbody>\n</table>','Tabela com a lista de arquivos do protocolo.'),(12,'METADADO_PROTOCOLO_USUARIOEMAIL','<span th:text=\"${protocolo.usuario.email}\">E-mail: protocolo.email1</span>','E-mail do usuário que cadastrou o protocolo.'),(13,'METADADO_PROTOCOLO_USUARIONOME','<span th:text=\"${protocolo.usuario.nome}\">$ usuario nome</span>','Nome do usuário que cadastrou o protocolo.'),(14,'METADADO_USUARIO_NOVASENHA','<span th:text=\"${usuario.senha}\">Sua nova senha : 5as4f56as4f5as4</span>','Nova senha gerada para o usuário.'),(15,'METADADO_USUARIO_URLCONFIRMACAO','<a th:href=\"${usuario.urlConfirmacaoCadastro}\">CONFIRMAR MEU CADASTRO.</a>','Url para ativação do usuário.'),(16,'METADADO_USUARIO_URLCONSILIACAO','<a th:href=\"${usuario.urlConfirmacaoCadastro}\">CONFIRMAR MEU CADASTRO.</a>','Url para consiliação de usuário protocolo com usuário brasil cidadão.'),(17,'METADADO_USUARIO_URLDESBLOQUEIO','<a th:href=\"${usuario.urlDesbloqueio}\">Link de desbloqueio</a>',NULL); | ||
| 279 | -/*!40000 ALTER TABLE `metadado` ENABLE KEYS */; | ||
| 280 | -UNLOCK TABLES; | ||
| 281 | - | ||
| 282 | --- | ||
| 283 | --- Table structure for table `metadado_email` | ||
| 284 | --- | ||
| 285 | - | ||
| 286 | -DROP TABLE IF EXISTS `metadado_email`; | ||
| 287 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 288 | -/*!40101 SET character_set_client = utf8 */; | ||
| 289 | -CREATE TABLE `metadado_email` ( | ||
| 290 | - `codigo_email` int(11) NOT NULL, | ||
| 291 | - `codigo_metadado` int(11) NOT NULL, | ||
| 292 | - PRIMARY KEY (`codigo_metadado`,`codigo_email`), | ||
| 293 | - KEY `fk_metadado_email_configuracao_email1_idx` (`codigo_email`), | ||
| 294 | - CONSTRAINT `metadado_email_fk1` FOREIGN KEY (`codigo_email`) REFERENCES `configuracao_email` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION, | ||
| 295 | - CONSTRAINT `metadado_email_fk2` FOREIGN KEY (`codigo_metadado`) REFERENCES `metadado` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION | ||
| 296 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 297 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 298 | - | ||
| 299 | --- | ||
| 300 | --- Dumping data for table `metadado_email` | ||
| 301 | --- | ||
| 302 | - | ||
| 303 | -LOCK TABLES `metadado_email` WRITE; | ||
| 304 | -/*!40000 ALTER TABLE `metadado_email` DISABLE KEYS */; | ||
| 305 | -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); | ||
| 306 | -/*!40000 ALTER TABLE `metadado_email` ENABLE KEYS */; | ||
| 307 | -UNLOCK TABLES; | ||
| 308 | - | ||
| 309 | --- | ||
| 310 | --- Table structure for table `permissao` | ||
| 311 | --- | ||
| 312 | - | ||
| 313 | -DROP TABLE IF EXISTS `permissao`; | ||
| 314 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 315 | -/*!40101 SET character_set_client = utf8 */; | ||
| 316 | -CREATE TABLE `permissao` ( | ||
| 317 | - `codigo` bigint(20) NOT NULL, | ||
| 318 | - `nome` varchar(50) NOT NULL, | ||
| 319 | - PRIMARY KEY (`codigo`) | ||
| 320 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 321 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 322 | - | ||
| 323 | --- | ||
| 324 | --- Dumping data for table `permissao` | ||
| 325 | --- | ||
| 326 | - | ||
| 327 | -LOCK TABLES `permissao` WRITE; | ||
| 328 | -/*!40000 ALTER TABLE `permissao` DISABLE KEYS */; | ||
| 329 | -INSERT INTO `permissao` VALUES (1,'ROLE_CADASTRO'),(2,'ROLE_PROTOCOLO'),(3,'ROLE_BRASILCIDADAO'),(4,'ROLE_EXPEDIDOR'); | ||
| 330 | -/*!40000 ALTER TABLE `permissao` ENABLE KEYS */; | ||
| 331 | -UNLOCK TABLES; | ||
| 332 | - | ||
| 333 | --- | ||
| 334 | --- Table structure for table `protocolo` | ||
| 335 | --- | ||
| 336 | - | ||
| 337 | -DROP TABLE IF EXISTS `protocolo`; | ||
| 338 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 339 | -/*!40101 SET character_set_client = utf8 */; | ||
| 340 | -CREATE TABLE `protocolo` ( | ||
| 341 | - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, | ||
| 342 | - `numero` varchar(50) NOT NULL, | ||
| 343 | - `data_hora` datetime DEFAULT NULL, | ||
| 344 | - `codigo_usuario` bigint(20) NOT NULL, | ||
| 345 | - `status` varchar(20) NOT NULL DEFAULT 'PENDENTE', | ||
| 346 | - `email1` varchar(50) DEFAULT NULL, | ||
| 347 | - `email2` varchar(50) DEFAULT NULL, | ||
| 348 | - `observacao` text, | ||
| 349 | - `nupe` varchar(20) DEFAULT NULL, | ||
| 350 | - `data_envio` datetime DEFAULT NULL, | ||
| 351 | - `erro_ws` text, | ||
| 352 | - `nr_protocolo_anterior` varchar(50) DEFAULT NULL, | ||
| 353 | - `id_unidade` bigint(20) DEFAULT NULL, | ||
| 354 | - `linksei` varchar(255) DEFAULT NULL, | ||
| 355 | - PRIMARY KEY (`codigo`), | ||
| 356 | - KEY `codigo_usuario` (`codigo_usuario`), | ||
| 357 | - CONSTRAINT `protocolo_ibfk_1` FOREIGN KEY (`codigo_usuario`) REFERENCES `usuario` (`codigo`) | ||
| 358 | -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; | ||
| 359 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 360 | - | ||
| 361 | - | ||
| 362 | --- | ||
| 363 | --- Table structure for table `schema_version` | ||
| 364 | --- | ||
| 365 | - | ||
| 366 | -DROP TABLE IF EXISTS `schema_version`; | ||
| 367 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 368 | -/*!40101 SET character_set_client = utf8 */; | ||
| 369 | -CREATE TABLE `schema_version` ( | ||
| 370 | - `installed_rank` int(11) NOT NULL, | ||
| 371 | - `version` varchar(50) DEFAULT NULL, | ||
| 372 | - `description` varchar(200) NOT NULL, | ||
| 373 | - `type` varchar(20) NOT NULL, | ||
| 374 | - `script` varchar(1000) NOT NULL, | ||
| 375 | - `checksum` int(11) DEFAULT NULL, | ||
| 376 | - `installed_by` varchar(100) NOT NULL, | ||
| 377 | - `installed_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 378 | - `execution_time` int(11) NOT NULL, | ||
| 379 | - `success` tinyint(1) NOT NULL, | ||
| 380 | - PRIMARY KEY (`installed_rank`), | ||
| 381 | - KEY `schema_version_s_idx` (`success`) | ||
| 382 | -) ENGINE=InnoDB DEFAULT CHARSET=latin1; | ||
| 383 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 384 | - | ||
| 385 | --- | ||
| 386 | --- Dumping data for table `schema_version` | ||
| 387 | --- | ||
| 388 | - | ||
| 389 | -LOCK TABLES `schema_version` WRITE; | ||
| 390 | -/*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; | ||
| 391 | -INSERT INTO `schema_version` VALUES (1,'01','Script inicial','SQL','V01__Start.sql',107793004,'root','2018-10-26 14:48:18',1610,1); | ||
| 392 | -/*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; | ||
| 393 | -UNLOCK TABLES; | ||
| 394 | - | ||
| 395 | --- | ||
| 396 | --- Table structure for table `temp_arquivo` | ||
| 397 | --- | ||
| 398 | - | ||
| 399 | -DROP TABLE IF EXISTS `temp_arquivo`; | ||
| 400 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 401 | -/*!40101 SET character_set_client = utf8 */; | ||
| 402 | -CREATE TABLE `temp_arquivo` ( | ||
| 403 | - `id` int(11) NOT NULL AUTO_INCREMENT, | ||
| 404 | - `nome` varchar(255) CHARACTER SET latin1 NOT NULL, | ||
| 405 | - `pagina` varchar(10) CHARACTER SET latin1 NOT NULL, | ||
| 406 | - `temp_desc_arquivo_idarquivo` varchar(2) CHARACTER SET latin1 NOT NULL, | ||
| 407 | - `temp_desc_arquivo_token` varchar(6) CHARACTER SET latin1 NOT NULL, | ||
| 408 | - PRIMARY KEY (`id`), | ||
| 409 | - KEY `fk_temp_arquivo_temp_desc_arquivo1_idx` (`temp_desc_arquivo_idarquivo`,`temp_desc_arquivo_token`), | ||
| 410 | - 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 | ||
| 411 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 412 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 413 | - | ||
| 414 | - | ||
| 415 | --- | ||
| 416 | --- Table structure for table `temp_desc_arquivo` | ||
| 417 | --- | ||
| 418 | - | ||
| 419 | -DROP TABLE IF EXISTS `temp_desc_arquivo`; | ||
| 420 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 421 | -/*!40101 SET character_set_client = utf8 */; | ||
| 422 | -CREATE TABLE `temp_desc_arquivo` ( | ||
| 423 | - `tipo` varchar(45) CHARACTER SET latin1 NOT NULL, | ||
| 424 | - `qtd_paginas` varchar(10) CHARACTER SET latin1 NOT NULL, | ||
| 425 | - `temp_protocolo_token` varchar(6) CHARACTER SET latin1 NOT NULL, | ||
| 426 | - `idarquivo` varchar(2) CHARACTER SET latin1 NOT NULL, | ||
| 427 | - `token` varchar(6) CHARACTER SET latin1 NOT NULL, | ||
| 428 | - `descricao` varchar(45) CHARACTER SET latin1 NOT NULL, | ||
| 429 | - PRIMARY KEY (`idarquivo`,`token`), | ||
| 430 | - KEY `fk_temp_desc_arquivo_temp_protocolo1_idx` (`temp_protocolo_token`), | ||
| 431 | - CONSTRAINT `fk_temp_desc_arquivo_temp_protocolo1` FOREIGN KEY (`temp_protocolo_token`) REFERENCES `temp_protocolo` (`token`) ON DELETE NO ACTION ON UPDATE NO ACTION | ||
| 432 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 433 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 434 | - | ||
| 435 | - | ||
| 436 | --- | ||
| 437 | --- Table structure for table `temp_protocolo` | ||
| 438 | --- | ||
| 439 | - | ||
| 440 | -DROP TABLE IF EXISTS `temp_protocolo`; | ||
| 441 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 442 | -/*!40101 SET character_set_client = utf8 */; | ||
| 443 | -CREATE TABLE `temp_protocolo` ( | ||
| 444 | - `token` varchar(6) CHARACTER SET latin1 NOT NULL, | ||
| 445 | - `email1` varchar(100) CHARACTER SET latin1 DEFAULT NULL, | ||
| 446 | - `email2` varchar(100) CHARACTER SET big5 DEFAULT NULL, | ||
| 447 | - `nr_protocolo_anterior` varchar(100) CHARACTER SET latin1 DEFAULT NULL, | ||
| 448 | - `usuario_codigo` bigint(20) NOT NULL, | ||
| 449 | - PRIMARY KEY (`token`), | ||
| 450 | - KEY `fk_temp_protocolo_usuario1_idx` (`usuario_codigo`), | ||
| 451 | - CONSTRAINT `fk_temp_protocolo_usuario1` FOREIGN KEY (`usuario_codigo`) REFERENCES `usuario` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION | ||
| 452 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 453 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 454 | - | ||
| 455 | - | ||
| 456 | --- | ||
| 457 | --- Table structure for table `tipo_documento` | ||
| 458 | --- | ||
| 459 | - | ||
| 460 | -DROP TABLE IF EXISTS `tipo_documento`; | ||
| 461 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 462 | -/*!40101 SET character_set_client = utf8 */; | ||
| 463 | -CREATE TABLE `tipo_documento` ( | ||
| 464 | - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, | ||
| 465 | - `descricao` varchar(50) NOT NULL, | ||
| 466 | - `codigo_sei` varchar(45) NOT NULL, | ||
| 467 | - `ativo` tinyint(4) NOT NULL, | ||
| 468 | - PRIMARY KEY (`codigo`) | ||
| 469 | -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; | ||
| 470 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 471 | - | ||
| 472 | --- | ||
| 473 | --- Dumping data for table `tipo_documento` | ||
| 474 | --- | ||
| 475 | - | ||
| 476 | -LOCK TABLES `tipo_documento` WRITE; | ||
| 477 | -/*!40000 ALTER TABLE `tipo_documento` DISABLE KEYS */; | ||
| 478 | -INSERT INTO `tipo_documento` VALUES (14,'Requerimento','238',1),(15,'Complemento','651',1); | ||
| 479 | -/*!40000 ALTER TABLE `tipo_documento` ENABLE KEYS */; | ||
| 480 | -UNLOCK TABLES; | ||
| 481 | - | ||
| 482 | --- | ||
| 483 | --- Table structure for table `usuario` | ||
| 484 | --- | ||
| 485 | - | ||
| 486 | -DROP TABLE IF EXISTS `usuario`; | ||
| 487 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 488 | -/*!40101 SET character_set_client = utf8 */; | ||
| 489 | -CREATE TABLE `usuario` ( | ||
| 490 | - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, | ||
| 491 | - `nome` varchar(50) NOT NULL, | ||
| 492 | - `email` varchar(50) NOT NULL, | ||
| 493 | - `senha` varchar(120) NOT NULL, | ||
| 494 | - `telefone` varchar(15) DEFAULT NULL, | ||
| 495 | - `ativo` tinyint(1) DEFAULT '1', | ||
| 496 | - `token` varchar(255) NOT NULL DEFAULT '0', | ||
| 497 | - `nome_social` varchar(50) DEFAULT NULL, | ||
| 498 | - `status_expedicao` tinyint(1) DEFAULT '0', | ||
| 499 | - `listexpedidor` varchar(30) DEFAULT NULL, | ||
| 500 | - `unidade` varchar(12) DEFAULT NULL, | ||
| 501 | - PRIMARY KEY (`codigo`), | ||
| 502 | - UNIQUE KEY `email` (`email`) | ||
| 503 | -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; | ||
| 504 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 505 | - | ||
| 506 | --- | ||
| 507 | --- Dumping data for table `usuario` | ||
| 508 | --- | ||
| 509 | - | ||
| 510 | -LOCK TABLES `usuario` WRITE; | ||
| 511 | -/*!40000 ALTER TABLE `usuario` DISABLE KEYS */; | ||
| 512 | -INSERT INTO `usuario` VALUES (1,'Admin','admin@admin.com','$2a$10$g.wT4R0Wnfel1jc/k84OXuwZE02BlACSLfWy6TycGPvvEKvIm86SG',NULL,1,'0',NULL,0,'LISTA1',NULL),(2,'Dário','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'); | ||
| 513 | -/*!40000 ALTER TABLE `usuario` ENABLE KEYS */; | ||
| 514 | -UNLOCK TABLES; | ||
| 515 | - | ||
| 516 | --- | ||
| 517 | --- Table structure for table `usuario_brasil_cidadao` | ||
| 518 | --- | ||
| 519 | - | ||
| 520 | -DROP TABLE IF EXISTS `usuario_brasil_cidadao`; | ||
| 521 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 522 | -/*!40101 SET character_set_client = utf8 */; | ||
| 523 | -CREATE TABLE `usuario_brasil_cidadao` ( | ||
| 524 | - `codigo` bigint(20) NOT NULL AUTO_INCREMENT, | ||
| 525 | - `cpf` varchar(15) NOT NULL, | ||
| 526 | - `codigo_usuario` bigint(20) NOT NULL, | ||
| 527 | - `token` text, | ||
| 528 | - `ativo` tinyint(4) NOT NULL, | ||
| 529 | - `email` varchar(50) DEFAULT NULL, | ||
| 530 | - PRIMARY KEY (`codigo`), | ||
| 531 | - KEY `usuario_brasil_cidadao_fki_1` (`codigo_usuario`), | ||
| 532 | - CONSTRAINT `usuario_brasil_cidadao_ibfk_1` FOREIGN KEY (`codigo_usuario`) REFERENCES `usuario` (`codigo`) ON UPDATE CASCADE | ||
| 533 | -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; | ||
| 534 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 535 | - | ||
| 536 | --- | ||
| 537 | --- Dumping data for table `usuario_brasil_cidadao` | ||
| 538 | --- | ||
| 539 | - | ||
| 540 | -LOCK TABLES `usuario_brasil_cidadao` WRITE; | ||
| 541 | -/*!40000 ALTER TABLE `usuario_brasil_cidadao` DISABLE KEYS */; | ||
| 542 | -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); | ||
| 543 | -/*!40000 ALTER TABLE `usuario_brasil_cidadao` ENABLE KEYS */; | ||
| 544 | -UNLOCK TABLES; | ||
| 545 | - | ||
| 546 | --- | ||
| 547 | --- Table structure for table `usuario_grupo` | ||
| 548 | --- | ||
| 549 | - | ||
| 550 | -DROP TABLE IF EXISTS `usuario_grupo`; | ||
| 551 | -/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
| 552 | -/*!40101 SET character_set_client = utf8 */; | ||
| 553 | -CREATE TABLE `usuario_grupo` ( | ||
| 554 | - `codigo_usuario` bigint(20) NOT NULL, | ||
| 555 | - `codigo_grupo` bigint(20) NOT NULL, | ||
| 556 | - PRIMARY KEY (`codigo_usuario`,`codigo_grupo`), | ||
| 557 | - KEY `codigo_grupo` (`codigo_grupo`), | ||
| 558 | - CONSTRAINT `usuario_grupo_ibfk_1` FOREIGN KEY (`codigo_usuario`) REFERENCES `usuario` (`codigo`) | ||
| 559 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 560 | -/*!40101 SET character_set_client = @saved_cs_client */; | ||
| 561 | - | ||
| 562 | --- | ||
| 563 | --- Dumping data for table `usuario_grupo` | ||
| 564 | --- | ||
| 565 | - | ||
| 566 | -LOCK TABLES `usuario_grupo` WRITE; | ||
| 567 | -/*!40000 ALTER TABLE `usuario_grupo` DISABLE KEYS */; | ||
| 568 | -INSERT INTO `usuario_grupo` VALUES (1,1),(2,2),(6,3),(7,4),(8,4),(9,4); | ||
| 569 | -/*!40000 ALTER TABLE `usuario_grupo` ENABLE KEYS */; | ||
| 570 | -UNLOCK TABLES; | ||
| 571 | - | ||
| 572 | -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; | ||
| 573 | - | ||
| 574 | -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; | ||
| 575 | -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; | ||
| 576 | -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; | ||
| 577 | -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; | ||
| 578 | -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; | ||
| 579 | -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; | ||
| 580 | -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; | ||
| 581 | - | ||
| 582 | --- Dump completed on 2018-11-19 13:32:46 |
src/main/resources/db/migration/V01__criar_tabela_usuario_grupo_permissao.sql
0 → 100644
| @@ -0,0 +1,42 @@ | @@ -0,0 +1,42 @@ | ||
| 1 | +CREATE TABLE usuario ( | ||
| 2 | + codigo BIGINT(20) PRIMARY KEY AUTO_INCREMENT, | ||
| 3 | + nome VARCHAR(50) NOT NULL, | ||
| 4 | + email VARCHAR(50) NOT NULL, | ||
| 5 | + senha VARCHAR(120) NOT NULL, | ||
| 6 | + ativo BOOLEAN DEFAULT true, | ||
| 7 | + data_nascimento DATE | ||
| 8 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 9 | + | ||
| 10 | +CREATE TABLE grupo ( | ||
| 11 | + codigo BIGINT(20) PRIMARY KEY, | ||
| 12 | + nome VARCHAR(50) NOT NULL | ||
| 13 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 14 | + | ||
| 15 | +CREATE TABLE permissao ( | ||
| 16 | + codigo BIGINT(20) PRIMARY KEY, | ||
| 17 | + nome VARCHAR(50) NOT NULL | ||
| 18 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 19 | + | ||
| 20 | +CREATE TABLE usuario_grupo ( | ||
| 21 | + codigo_usuario BIGINT(20) NOT NULL, | ||
| 22 | + codigo_grupo BIGINT(20) NOT NULL, | ||
| 23 | + PRIMARY KEY (codigo_usuario, codigo_grupo), | ||
| 24 | + FOREIGN KEY (codigo_usuario) REFERENCES usuario(codigo), | ||
| 25 | + FOREIGN KEY (codigo_grupo) REFERENCES grupo(codigo) | ||
| 26 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 27 | + | ||
| 28 | +CREATE TABLE grupo_permissao ( | ||
| 29 | + codigo_grupo BIGINT(20) NOT NULL, | ||
| 30 | + codigo_permissao BIGINT(20) NOT NULL, | ||
| 31 | + PRIMARY KEY (codigo_grupo, codigo_permissao), | ||
| 32 | + FOREIGN KEY (codigo_grupo) REFERENCES grupo(codigo), | ||
| 33 | + FOREIGN KEY (codigo_permissao) REFERENCES permissao(codigo) | ||
| 34 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 35 | + | ||
| 36 | +ALTER TABLE usuario | ||
| 37 | + MODIFY ativo BOOLEAN DEFAULT true NOT NULL; | ||
| 38 | + | ||
| 39 | +INSERT INTO grupo (codigo, nome) VALUES (1, 'Administrador'); | ||
| 40 | +INSERT INTO grupo (codigo, nome) VALUES (2, 'Consulta'); | ||
| 41 | + | ||
| 42 | +INSERT INTO usuario (nome, email, senha, ativo) VALUES ('Admin', 'admin@admin.com', '$2a$10$g.wT4R0Wnfel1jc/k84OXuwZE02BlACSLfWy6TycGPvvEKvIm86SG', 1) | ||
| 0 | \ No newline at end of file | 43 | \ No newline at end of file |
src/main/resources/db/migration/V02__inserir_permissoes_e_relacionar_usuario_admin.sql
0 → 100644
| @@ -0,0 +1,6 @@ | @@ -0,0 +1,6 @@ | ||
| 1 | +INSERT INTO permissao VALUES (1, 'ROLE_CADASTRO'); | ||
| 2 | + | ||
| 3 | +INSERT INTO grupo_permissao (codigo_grupo, codigo_permissao) VALUES (1, 1); | ||
| 4 | + | ||
| 5 | +INSERT INTO usuario_grupo (codigo_usuario, codigo_grupo) VALUES ( | ||
| 6 | + (SELECT codigo FROM usuario WHERE email = 'admin@admin.com'), 1); | ||
| 0 | \ No newline at end of file | 7 | \ No newline at end of file |
src/main/resources/db/migration/V03__criar_tabela_protocolo.sql
0 → 100644
| @@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
| 1 | +CREATE TABLE protocolo ( | ||
| 2 | + codigo BIGINT(20) PRIMARY KEY AUTO_INCREMENT, | ||
| 3 | + nome VARCHAR(80) NOT NULL, | ||
| 4 | + rg VARCHAR(20) NOT NULL, | ||
| 5 | + cpf VARCHAR(11) NOT NULL, | ||
| 6 | + telefone VARCHAR(20) NOT NULL, | ||
| 7 | + email VARCHAR(50) NOT NULL, | ||
| 8 | + descricao VARCHAR(120) NOT NULL, | ||
| 9 | + numero VARCHAR(50) NOT NULL, | ||
| 10 | + arquivo VARCHAR(100) NOT NULL, | ||
| 11 | + content_type VARCHAR(100) NOT NULL, | ||
| 12 | + data_hora DATETIME | ||
| 13 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 0 | \ No newline at end of file | 14 | \ No newline at end of file |
src/main/resources/db/migration/V04__criar_tabela_arquivos.sql
0 → 100644
| @@ -0,0 +1,12 @@ | @@ -0,0 +1,12 @@ | ||
| 1 | +ALTER TABLE protocolo DROP COLUMN arquivo; | ||
| 2 | +ALTER TABLE protocolo DROP COLUMN content_type; | ||
| 3 | + | ||
| 4 | +CREATE TABLE arquivos ( | ||
| 5 | + codigo BIGINT(20) PRIMARY KEY AUTO_INCREMENT, | ||
| 6 | + codigo_protocolo BIGINT(20), | ||
| 7 | + nome VARCHAR(100) NOT NULL, | ||
| 8 | + nome_original VARCHAR(100) NOT NULL, | ||
| 9 | + content_type VARCHAR(100) NOT NULL, | ||
| 10 | + tamanho VARCHAR(10) NOT NULL, | ||
| 11 | + FOREIGN KEY (codigo_protocolo) REFERENCES protocolo(codigo) | ||
| 12 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
src/main/resources/db/migration/V05__inserir_role_protocolo.sql
0 → 100644
src/main/resources/db/migration/V06__remover_coluna_dt_nascimento_e_ativo_tabela_usuario.sql
0 → 100644
src/main/resources/db/migration/V07__adicao_colula_telefone_tabela_usuario.sql
0 → 100644
src/main/resources/db/migration/V08__remover_colunas_nome_rg_cpf_telefone_email_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V09__adicionar_coluna_codigo_usuario_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V10__criar_tabela_tipo_documento.sql
0 → 100644
src/main/resources/db/migration/V11__adicionar_coluna_tipo_doc_e_desc_doc_tabela_arquivos.sql
0 → 100644
src/main/resources/db/migration/V12__retornando_coluna_ativo_tabela_usuario.sql
0 → 100644
| @@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
| 1 | +ALTER TABLE usuario ADD COLUMN ativo BOOLEAN DEFAULT true; |
src/main/resources/db/migration/V13__remover_coluna_descricao_tabela_protocolo.sql
0 → 100644
| @@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
| 1 | +ALTER TABLE protocolo DROP COLUMN descricao; |
src/main/resources/db/migration/V14__adicionar_not_null_coluna_codigo_usuario_tabela_protocolo.sql
0 → 100644
| @@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
| 1 | +ALTER TABLE protocolo MODIFY codigo_usuario BIGINT(20) NOT NULL; |
src/main/resources/db/migration/V15__adicionar_coluna_status_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V16__adicionar_coluna_emails_secundarios_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V17__alterar_conteudo_grupo_de_consulta_protocolo.sql
0 → 100644
| @@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
| 1 | +update grupo set nome = 'Protocolo' where codigo = 2; |
src/main/resources/db/migration/V18__adicionar_coluna_observacao_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V19__adicionar_coluna_nupe_e_data_envio_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V20__tipo_documento_insert.sql
0 → 100644
| @@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
| 1 | +INSERT INTO tipo_documento (descricao) VALUES ('APOLICE (RECEBIMENTO)'); | ||
| 2 | +INSERT INTO tipo_documento (descricao) VALUES ('ATA (RECEBIMENTO)'); | ||
| 3 | +INSERT INTO tipo_documento (descricao) VALUES ('BOLETIM'); | ||
| 4 | +INSERT INTO tipo_documento (descricao) VALUES ('BOLETO (RECEBIMENTO)'); | ||
| 5 | +INSERT INTO tipo_documento (descricao) VALUES ('CARTA (RECEBIMENTO)'); | ||
| 6 | +INSERT INTO tipo_documento (descricao) VALUES ('CARTA CIRCULAR (RECEBIMENTO)'); | ||
| 7 | +INSERT INTO tipo_documento (descricao) VALUES ('CARTA CIRCULAR CONJUNTA (RECEBIMENTO)'); | ||
| 8 | +INSERT INTO tipo_documento (descricao) VALUES ('COMUNICAÇÃO EXTERNA'); | ||
| 9 | +INSERT INTO tipo_documento (descricao) VALUES ('CONVITE'); | ||
| 10 | +INSERT INTO tipo_documento (descricao) VALUES ('CURRICULUM VITAE'); | ||
| 11 | +INSERT INTO tipo_documento (descricao) VALUES ('DECLARAÇÃO (RECEBIMENTO)'); | ||
| 12 | +INSERT INTO tipo_documento (descricao) VALUES ('OFÍCIO (RECEBIMENTO)'); | ||
| 13 | +INSERT INTO tipo_documento (descricao) VALUES ('Meu tipo'); | ||
| 0 | \ No newline at end of file | 14 | \ No newline at end of file |
src/main/resources/db/migration/V21__remover_meu_tipo_documento.sql
0 → 100644
src/main/resources/db/migration/V22__alterar_tamanho_campo_nome_tabela_arquivo.sql
0 → 100644
src/main/resources/db/migration/V23__alterar_tamanho_campo_nome_original_tabela_arquivo.sql
0 → 100644
src/main/resources/db/migration/V24__adicionar_coluna_nr_protocolo_anterior_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V25__adicionar_coluna_id_unidade_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V26__alterar_tamanho_campo_status_tabela_protocolo.sql
0 → 100644
src/main/resources/db/migration/V27__alterar_tamanho_campo_ observacao _protocolo.sql
0 → 100644
src/main/resources/db/migration/V28__alterar_tabela_tipodocumento_com_campo_codigo_sei_e _campo_ativo.sql
0 → 100644
src/main/resources/db/migration/V29__limpa_as_tabelas_arquivos_protocolo_e_tipodocumento.sql
0 → 100644
| @@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
| 1 | +SET sql_safe_updates=0; | ||
| 2 | + | ||
| 3 | +DELETE FROM arquivos; | ||
| 4 | + | ||
| 5 | +DELETE FROM protocolo; | ||
| 6 | + | ||
| 7 | +DELETE FROM tipo_documento; | ||
| 8 | + | ||
| 9 | +INSERT INTO tipo_documento (descricao, codigo_sei, ativo) values ('Requerimento', '238', 1); | ||
| 10 | + | ||
| 11 | +INSERT INTO tipo_documento (descricao, codigo_sei, ativo) values ('Complemento', '651', 1); | ||
| 0 | \ No newline at end of file | 12 | \ No newline at end of file |
src/main/resources/db/migration/V30__tabela_usuario_estrutura_campo_email_para_unico.sql
0 → 100644
src/main/resources/db/migration/V31__tabela_usuario_estrutura_campo_token_mobile.sql
0 → 100644
src/main/resources/db/migration/V32__inserir_role_brasilcidadao.sql
0 → 100644
| @@ -0,0 +1,16 @@ | @@ -0,0 +1,16 @@ | ||
| 1 | +INSERT INTO permissao VALUES (3, 'ROLE_BRASILCIDADAO'); | ||
| 2 | + | ||
| 3 | +INSERT INTO grupo VALUES (3, 'Brasil Cidadao'); | ||
| 4 | + | ||
| 5 | +INSERT INTO grupo_permissao (codigo_grupo, codigo_permissao) VALUES (3, 3); | ||
| 6 | + | ||
| 7 | +CREATE TABLE usuario_brasil_cidadao ( | ||
| 8 | + codigo BIGINT NOT NULL AUTO_INCREMENT, | ||
| 9 | + cpf VARCHAR(15) NOT NULL, | ||
| 10 | + codigo_usuario BIGINT NOT NULL, | ||
| 11 | + FOREIGN KEY (codigo_usuario) | ||
| 12 | + REFERENCES usuario(codigo) | ||
| 13 | + ON UPDATE CASCADE ON DELETE RESTRICT, | ||
| 14 | + PRIMARY KEY(codigo) | ||
| 15 | + | ||
| 16 | + ); | ||
| 0 | \ No newline at end of file | 17 | \ No newline at end of file |
src/main/resources/db/migration/V33__criacao_de_tabela_de_log_protocolo_correcao_unique_cpf.sql
0 → 100644
| @@ -0,0 +1,102 @@ | @@ -0,0 +1,102 @@ | ||
| 1 | +-- MySQL Workbench Synchronization | ||
| 2 | +-- Generated: 2018-02-26 14:06 | ||
| 3 | +-- Model: New Model | ||
| 4 | +-- Version: 1.0 | ||
| 5 | +-- Project: Name of the project | ||
| 6 | +-- Author: 01572931140 | ||
| 7 | + | ||
| 8 | +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; | ||
| 9 | +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; | ||
| 10 | +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; | ||
| 11 | + | ||
| 12 | +CREATE TABLE IF NOT EXISTS `configuracao` ( | ||
| 13 | + `codigo` BIGINT(20) NOT NULL AUTO_INCREMENT, | ||
| 14 | + `nome` VARCHAR(45) NOT NULL, | ||
| 15 | + `valor` TEXT NULL DEFAULT NULL, | ||
| 16 | + `descricao` TEXT NULL DEFAULT NULL, | ||
| 17 | + `id_enum` INT(11) NULL DEFAULT NULL, | ||
| 18 | + `id_classificacao` INT(11) NULL DEFAULT NULL, | ||
| 19 | + `classificacao` VARCHAR(45) NULL DEFAULT NULL, | ||
| 20 | + PRIMARY KEY (`codigo`)) | ||
| 21 | +ENGINE = InnoDB | ||
| 22 | +AUTO_INCREMENT = 53 | ||
| 23 | +DEFAULT CHARACTER SET = utf8; | ||
| 24 | + | ||
| 25 | +CREATE TABLE IF NOT EXISTS `log_sistema` ( | ||
| 26 | + `codigo` BIGINT(20) NOT NULL AUTO_INCREMENT, | ||
| 27 | + `codigo_entidade` BIGINT(20) NOT NULL, | ||
| 28 | + `entidade` VARCHAR(45) NOT NULL, | ||
| 29 | + `acao` VARCHAR(45) NOT NULL, | ||
| 30 | + `antes` TEXT NULL DEFAULT NULL, | ||
| 31 | + `depois` TEXT NULL DEFAULT NULL, | ||
| 32 | + `data_hora` DATETIME NOT NULL, | ||
| 33 | + `codigo_usuario` BIGINT(20) NULL DEFAULT NULL, | ||
| 34 | + PRIMARY KEY (`codigo`)) | ||
| 35 | +ENGINE = InnoDB | ||
| 36 | +AUTO_INCREMENT = 33 | ||
| 37 | +DEFAULT CHARACTER SET = utf8; | ||
| 38 | + | ||
| 39 | +CREATE TABLE IF NOT EXISTS `temp_arquivo` ( | ||
| 40 | + `id` INT(11) NOT NULL AUTO_INCREMENT, | ||
| 41 | + `nome` VARCHAR(255) NOT NULL, | ||
| 42 | + `pagina` VARCHAR(10) NOT NULL, | ||
| 43 | + `temp_desc_arquivo_idarquivo` VARCHAR(2) NOT NULL, | ||
| 44 | + `temp_desc_arquivo_token` VARCHAR(6) NOT NULL, | ||
| 45 | + PRIMARY KEY (`id`), | ||
| 46 | + INDEX `fk_temp_arquivo_temp_desc_arquivo1_idx` (`temp_desc_arquivo_idarquivo` ASC, `temp_desc_arquivo_token` ASC), | ||
| 47 | + CONSTRAINT `fk_temp_arquivo_temp_desc_arquivo1` | ||
| 48 | + FOREIGN KEY (`temp_desc_arquivo_idarquivo` , `temp_desc_arquivo_token`) | ||
| 49 | + REFERENCES `temp_desc_arquivo` (`idarquivo` , `token`) | ||
| 50 | + ON DELETE NO ACTION | ||
| 51 | + ON UPDATE NO ACTION) | ||
| 52 | +ENGINE = InnoDB | ||
| 53 | +DEFAULT CHARACTER SET = latin1; | ||
| 54 | + | ||
| 55 | +CREATE TABLE IF NOT EXISTS `temp_desc_arquivo` ( | ||
| 56 | + `tipo` VARCHAR(45) NOT NULL, | ||
| 57 | + `qtd_paginas` VARCHAR(10) NOT NULL, | ||
| 58 | + `temp_protocolo_token` VARCHAR(6) NOT NULL, | ||
| 59 | + `idarquivo` VARCHAR(2) NOT NULL, | ||
| 60 | + `token` VARCHAR(6) NOT NULL, | ||
| 61 | + `descricao` VARCHAR(45) NOT NULL, | ||
| 62 | + PRIMARY KEY (`idarquivo`, `token`), | ||
| 63 | + INDEX `fk_temp_desc_arquivo_temp_protocolo1_idx` (`temp_protocolo_token` ASC), | ||
| 64 | + CONSTRAINT `fk_temp_desc_arquivo_temp_protocolo1` | ||
| 65 | + FOREIGN KEY (`temp_protocolo_token`) | ||
| 66 | + REFERENCES `temp_protocolo` (`token`) | ||
| 67 | + ON DELETE NO ACTION | ||
| 68 | + ON UPDATE NO ACTION) | ||
| 69 | +ENGINE = InnoDB | ||
| 70 | +DEFAULT CHARACTER SET = latin1; | ||
| 71 | + | ||
| 72 | +CREATE TABLE IF NOT EXISTS `temp_protocolo` ( | ||
| 73 | + `token` VARCHAR(6) NOT NULL, | ||
| 74 | + `email1` VARCHAR(100) NULL DEFAULT NULL, | ||
| 75 | + `email2` VARCHAR(100) CHARACTER SET 'big5' NULL DEFAULT NULL, | ||
| 76 | + `nr_protocolo_anterior` VARCHAR(100) NULL DEFAULT NULL, | ||
| 77 | + `usuario_codigo` BIGINT(20) NOT NULL, | ||
| 78 | + PRIMARY KEY (`token`), | ||
| 79 | + INDEX `fk_temp_protocolo_usuario1_idx` (`usuario_codigo` ASC), | ||
| 80 | + CONSTRAINT `fk_temp_protocolo_usuario1` | ||
| 81 | + FOREIGN KEY (`usuario_codigo`) | ||
| 82 | + REFERENCES `usuario` (`codigo`) | ||
| 83 | + ON DELETE NO ACTION | ||
| 84 | + ON UPDATE NO ACTION) | ||
| 85 | +ENGINE = InnoDB | ||
| 86 | +DEFAULT CHARACTER SET = latin1; | ||
| 87 | + | ||
| 88 | +ALTER TABLE `usuario` | ||
| 89 | +ADD COLUMN `nome_social` VARCHAR(50) NULL DEFAULT NULL AFTER `token`; | ||
| 90 | + | ||
| 91 | +ALTER TABLE `temp_arquivo` | ||
| 92 | +CHARACTER SET = utf8 ; | ||
| 93 | + | ||
| 94 | +ALTER TABLE `temp_desc_arquivo` | ||
| 95 | +CHARACTER SET = utf8 ; | ||
| 96 | + | ||
| 97 | +ALTER TABLE `temp_protocolo` | ||
| 98 | +CHARACTER SET = utf8 ; | ||
| 99 | + | ||
| 100 | +SET SQL_MODE=@OLD_SQL_MODE; | ||
| 101 | +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; | ||
| 102 | +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; |
src/main/resources/db/migration/V34__correcao_tabela_log.sql
0 → 100644
| @@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
| 1 | +-- MySQL Workbench Synchronization | ||
| 2 | +-- Generated: 2018-03-01 16:29 | ||
| 3 | +-- Model: New Model | ||
| 4 | +-- Version: 1.0 | ||
| 5 | +-- Project: Name of the project | ||
| 6 | +-- Author: 01572931140 | ||
| 7 | + | ||
| 8 | +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; | ||
| 9 | +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; | ||
| 10 | +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; | ||
| 11 | + | ||
| 12 | +--ALTER TABLE `protocolo`.`log_sistema` | ||
| 13 | +--CHANGE COLUMN `codigo` `codigo` BIGINT(20) NOT NULL AUTO_INCREMENT , | ||
| 14 | +--ADD COLUMN `codigo_usuario` BIGINT(20) NULL DEFAULT NULL AFTER `data_hora`; | ||
| 15 | + | ||
| 16 | + | ||
| 17 | +SET SQL_MODE=@OLD_SQL_MODE; | ||
| 18 | +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; | ||
| 19 | +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; |
src/main/resources/db/migration/V35__tabela_metadad_configuracao_email.sql
0 → 100644
| @@ -0,0 +1,180 @@ | @@ -0,0 +1,180 @@ | ||
| 1 | +-- MySQL Workbench Synchronization | ||
| 2 | +-- Generated: 2018-03-07 12:38 | ||
| 3 | +-- Model: New Model | ||
| 4 | +-- Version: 1.0 | ||
| 5 | +-- Project: Name of the project | ||
| 6 | +-- Author: 01572931140 | ||
| 7 | + | ||
| 8 | +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; | ||
| 9 | +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; | ||
| 10 | +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; | ||
| 11 | + | ||
| 12 | +ALTER TABLE `configuracao` | ||
| 13 | +CHANGE COLUMN `codigo` `codigo` INT(11) NOT NULL AUTO_INCREMENT ; | ||
| 14 | + | ||
| 15 | +CREATE TABLE IF NOT EXISTS `configuracao_email` ( | ||
| 16 | + `codigo` INT(11) NOT NULL, | ||
| 17 | + `nome` VARCHAR(45) NULL DEFAULT NULL, | ||
| 18 | + `valor` TEXT NULL DEFAULT NULL, | ||
| 19 | + PRIMARY KEY (`codigo`)) | ||
| 20 | +ENGINE = InnoDB | ||
| 21 | +DEFAULT CHARACTER SET = utf8; | ||
| 22 | + | ||
| 23 | +CREATE TABLE IF NOT EXISTS `metadado` ( | ||
| 24 | + `codigo` INT(11) NOT NULL, | ||
| 25 | + `nome` VARCHAR(45) NOT NULL, | ||
| 26 | + `valor` TEXT NULL DEFAULT NULL, | ||
| 27 | + `descricao` TEXT NULL DEFAULT NULL, | ||
| 28 | + PRIMARY KEY (`codigo`)) | ||
| 29 | +ENGINE = InnoDB | ||
| 30 | +DEFAULT CHARACTER SET = utf8; | ||
| 31 | + | ||
| 32 | +CREATE TABLE IF NOT EXISTS `metadado_email` ( | ||
| 33 | + `codigo_email` INT(11) NOT NULL, | ||
| 34 | + `codigo_metadado` INT(11) NOT NULL, | ||
| 35 | + PRIMARY KEY (`codigo_metadado`, `codigo_email`), | ||
| 36 | + INDEX `fk_metadado_email_configuracao_email1_idx` (`codigo_email` ASC), | ||
| 37 | + CONSTRAINT `metadado_email_fk1` | ||
| 38 | + FOREIGN KEY (`codigo_email`) | ||
| 39 | + REFERENCES `configuracao_email` (`codigo`) | ||
| 40 | + ON DELETE NO ACTION | ||
| 41 | + ON UPDATE NO ACTION, | ||
| 42 | + CONSTRAINT `metadado_email_fk2` | ||
| 43 | + FOREIGN KEY (`codigo_metadado`) | ||
| 44 | + REFERENCES `metadado` (`codigo`) | ||
| 45 | + ON DELETE NO ACTION | ||
| 46 | + ON UPDATE NO ACTION) | ||
| 47 | +ENGINE = InnoDB | ||
| 48 | +DEFAULT CHARACTER SET = utf8; | ||
| 49 | + | ||
| 50 | +SET SQL_MODE=@OLD_SQL_MODE; | ||
| 51 | +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; | ||
| 52 | +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; | ||
| 53 | + | ||
| 54 | + | ||
| 55 | +/* | ||
| 56 | +-- Insert protocolo.configuracao | ||
| 57 | +LIMIT 0, 1000 | ||
| 58 | + | ||
| 59 | +-- Date: 2018-03-07 12:42 | ||
| 60 | +*/ | ||
| 61 | +SET FOREIGN_KEY_CHECKS = 0; | ||
| 62 | +truncate table `configuracao`; | ||
| 63 | +SET FOREIGN_KEY_CHECKS = 1; | ||
| 64 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (1,'SMTP_SERVER','10.209.253.28','',1,1,'server-email'); | ||
| 65 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (2,'SMTP_PORT','25','teste3',2,1,'server-email'); | ||
| 66 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (3,'MAIL_FROM','xxx@yyy.zzz','',3,1,'server-email'); | ||
| 67 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (4,'EMAIL_RESPONSAVEL','sss@sssf.com',NULL,4,1,'server-email'); | ||
| 68 | +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'); | ||
| 69 | +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'); | ||
| 70 | +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'); | ||
| 71 | +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'); | ||
| 72 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (13,'SCOPE','openid',NULL,21,4,'brasil-cidadao'); | ||
| 73 | +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'); | ||
| 74 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (15,'CLIENT_SECRET','Ld65DuKIva0_EU0LO1VrVC6Be7b-_AsgvkueKpW4OJlhDdJQ4TJ9nKB173M5c5mmG03uhZvEbBKnDRmAe7gZkw',NULL,23,4,'brasil-cidadao'); | ||
| 75 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (16,'ESCOPO','dados_brasil_cidadao',NULL,24,4,'brasil-cidadao'); | ||
| 76 | +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'); | ||
| 77 | +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'); | ||
| 78 | +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'); | ||
| 79 | +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'); | ||
| 80 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (22,'ASSUNTO_CODIGO_ESTRUTURADO','520.1',NULL,6,2,'sei'); | ||
| 81 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (23,'PROCEDIMENTO_ESPECIFICADO','Especificacao do processo',NULL,7,2,'sei'); | ||
| 82 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (24,'PROCEDIMENTO_NIVEL_ACESSO','0',NULL,8,2,'sei'); | ||
| 83 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (25,'PROCEDIMENTO_ID_TIPO_PROCEDIMENTO','100000346',NULL,9,2,'sei'); | ||
| 84 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (26,'DOCUMENTO_TIPO','R',NULL,10,2,'sei'); | ||
| 85 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (27,'DOCUMENTO_ID_SERIE','1',NULL,11,2,'sei'); | ||
| 86 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (28,'DOCUMENTO_NIVEL_ACESSO','0',NULL,12,2,'sei'); | ||
| 87 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (29,'SIGLA_SISTEMA','UNB',NULL,13,2,'sei'); | ||
| 88 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (30,'IDENTIFICACAO_SERVICO','testeunb',NULL,14,2,'sei'); | ||
| 89 | +INSERT INTO `configuracao` (`codigo`,`nome`,`valor`,`descricao`,`id_enum`,`id_classificacao`,`classificacao`) VALUES (31,'ID_UNIDADE','110001972',NULL,15,2,'sei'); | ||
| 90 | + | ||
| 91 | +/* | ||
| 92 | +-- insert protocolo.configuracao_email | ||
| 93 | +LIMIT 0, 1000 | ||
| 94 | + | ||
| 95 | +-- Date: 2018-03-07 12:41 | ||
| 96 | +*/ | ||
| 97 | +SET FOREIGN_KEY_CHECKS = 0; | ||
| 98 | +truncate table `configuracao_email`; | ||
| 99 | +SET FOREIGN_KEY_CHECKS = 1; | ||
| 100 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (1,'EMAIL_CONTEUDO_CADASTRO','<p><span>PREZADO(A),</span></p>\r\n<p style=\"text-align: justify;\"><span><br />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 <span>{$METADADO_USUARIO_URLCONFIRMACAO}</span></span></p>\r\n<p><span><br />ESSE PASSO É IMPORTANTE PARA VALIDARMOS TODOS OS USUÁRIOS.</span></p>'); | ||
| 101 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (2,'EMAIL_CONTEUDO_CONSOLIDACAO','<p><span>PREZADO(A),</span></p>\r\n<p style=\"text-align: justify;\"><span><br />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 <span>{$METADADO_USUARIO_URLCONSILIACAO}</span></span></p>\r\n<p><span><br />ESSE PASSO É IMPORTANTE PARA VALIDARMOS TODOS OS USUÁRIOS.</span></p>'); | ||
| 102 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (3,'EMAIL_CONTEUDO_ERRO_SEI','<h1 style=\"font-size: 15px;\">Erro ao enviar o protocolo Nº <span>{$METADADO_PROTOCOLO_NUMERO}</span>para o SEI</h1>\r\n<p>Detalhe do Erro: <span>{$METADADO_MSGERRO}</span>.</p>'); | ||
| 103 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (4,'EMAIL_CONTEUDO_ESQUECI_SENHA','<p style=\"font-size: 15px;\">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.</p>\r\n<h1 style=\"font-size: 15px;\">Sua nova senha é: <span>{$METADADO_USUARIO_NOVASENHA}</span></h1>'); | ||
| 104 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (5,'EMAIL_CONTEUDO_PROTOCOLO','<h3>Número do Protocolo Provisório: <span>{$METADADO_PROTOCOLO_NUMERO}</span></h3>\r\n<p style=\"text-align: justify;\">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.</p>\r\n<p>Data: <span>{$METADADO_PROTOCOLO_DATAHORAFORMADATA}</span></p>\r\n<p>Nome: <span>{$METADADO_PROTOCOLO_USUARIONOME}</span></p>\r\n<p>E-mail: <span>{$METADADO_PROTOCOLO_USUARIOEMAIL}</span></p>\r\n<p>E-mail: <span>{$METADADO_PROTOCOLO_EMAIL1}</span></p>\r\n<p>E-mail: <span>{$METADADO_PROTOCOLO_EMAIL2}</span></p>\r\n<p>Referência ao protocolo anterior: <span>{$METADADO_PROTOCOLO_NUMEROANTERIOR}</span></p>\r\n<p><span>{$METADADO_PROTOCOLO_TABELAARQUIVO}</span></p>'); | ||
| 105 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (6,'EMAIL_CONTEUDO_NEGADO','<h3>Número do Protocolo Provisório: <span>{$METADADO_PROTOCOLO_NUMERO}</span></h3>\r\n<p style=\"text-align: justify;\">Prezado (a)<span>{$METADADO_PROTOCOLO_USUARIONOME}</span>, <br /> Esta é uma mensagem automática e não deve ser respondida. <br /> Seu protocolo não foi aceito pelo motivo abaixo especificado: <br /><span>{$METADADO_PROTOCOLO_OBSERVACAO}</span></p>\r\n<p>Nome:<span>{$METADADO_PROTOCOLO_USUARIONOME}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_USUARIOEMAIL}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_EMAIL1}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_EMAIL2}</span></p>'); | ||
| 106 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (7,'EMAIL_CONTEUDO_RECEBIMENTO_SEI','<h3>Número Único de Protocolo:<span>{$METADADO_PROTOCOLO_NUPE}</span></h3>\r\n<p style=\"text-align: justify;\">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:<span>{$METADADO_PROTOCOLO_NUPE}</span>. 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 <span>{$METADADO_PROTOCOLO_LINKSEI}</span></p>\r\n<p>Data:<span>{$METADADO_PROTOCOLO_DATAHORAFORMADATA}</span>}.</p>\r\n<p>Nome:<span>{$METADADO_PROTOCOLO_USUARIONOME}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_USUARIOEMAIL}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_EMAIL1}</span></p>\r\n<p>E-mail:<span>{$METADADO_PROTOCOLO_EMAIL2}</span></p>\r\n<p>Referência ao protocolo anterior:</p>\r\n<p><span>{$METADADO_PROTOCOLO_TABELAARQUIVO}</span></p>'); | ||
| 107 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (8,'EMAIL_CABECALHO','<table>\r\n<tbody>\r\n<tr style=\"text-align: center;\">\r\n<td><span>{$METADADO_LOGO_EMAIL}</span></td>\r\n</tr>\r\n<tr style=\"text-align: center;\">\r\n<td>\r\n<h4>Ministério do Planejamento, Desenvolvimento e Gestão <br /> Protocolo Central <br /> Esplanada dos Ministérios Bloco K, Térreo, sala T 28, CEP 70.040-906 – Brasília-DF <br /> protocolo@planejamento.gov.br <br /> (61) 2020-5195/5580 </h4>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>'); | ||
| 108 | +INSERT INTO `configuracao_email` (`codigo`,`nome`,`valor`) VALUES (9,'EMAIL_RODAPE','<p> </p>\r\n<p>“Por gentileza, responda nossa pesquisa de satisfação do Sistema de Protocolo Eletrônico. Sua contribuição é de extrema valia. <a href=\"http://formsus.datasus.gov.br/site/formulario.php?id_aplicacao=36481\" target=\"_blank\" rel=\"noopener\"> Clique aqui</a>”</p>\r\n<p> </p>\r\n<p style=\"text-align: justify; font-size: 10px;\">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. </p>'); | ||
| 109 | + | ||
| 110 | +/* | ||
| 111 | +-- Insert protocolo.metadado | ||
| 112 | +LIMIT 0, 1000 | ||
| 113 | + | ||
| 114 | +-- Date: 2018-03-07 12:42 | ||
| 115 | +*/ | ||
| 116 | +SET FOREIGN_KEY_CHECKS = 0; | ||
| 117 | +truncate table `metadado`; | ||
| 118 | +SET FOREIGN_KEY_CHECKS = 1; | ||
| 119 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (1,'METADADO_LOGO_EMAIL','<img src=\"../../static/images/brasao-brasil.png\" th:src=\"|cid:logo|\"/>','Imagem do logótipo do ministério.'); | ||
| 120 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (2,'METADADO_MSGERRO','<span th:text=\"&{msgErro}\">Erro no protocolo.</span>','Mensagem de erro ao enviar ao SEI.'); | ||
| 121 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (3,'METADADO_PROTOCOLO_DATAHORAFORMADATA','<span th:text=\"&{protocolo.dataHoraFormatada}\">','Data de criação do protocolo.'); | ||
| 122 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (4,'METADADO_PROTOCOLO_EMAIL1','<span th:text=\"&{protocolo.email1}\">E-mail: protocolo.email1</span>','E-mail 1 de interessado.'); | ||
| 123 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (5,'METADADO_PROTOCOLO_EMAIL2','<span th:text=\"&{protocolo.email2}\">E-mail: protocolo.emails</span>','E-mail 2 de interessado.'); | ||
| 124 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (6,'METADADO_PROTOCOLO_LINKSEI','<span th:text=\"&{protocolo.linkSEI}\">linksei</span>','Link de acesso ao protocolo no SEI.'); | ||
| 125 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (7,'METADADO_PROTOCOLO_NUMERO','<span th:text=\"&{protocolo.numero}\">Nmero do Protocolo Provisrio: 123ads31232asfd</span>','Numero do protocolo.'); | ||
| 126 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (8,'METADADO_PROTOCOLO_NUMEROANTERIOR','<span th:text=\"&{protocolo.numeroProtocoloAnterior}\">Referncia ao protocolo anterior: 121345461</span>','Numero de protocolo anterior.'); | ||
| 127 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (9,'METADADO_PROTOCOLO_NUPE','<span th:text=\"&{protocolo.nupe}\">protocolo.nupe</span>','Numero único do protocolo no SEI.'); | ||
| 128 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (10,'METADADO_PROTOCOLO_OBSERVACAO','<span th:text=\"&{protocolo.observacao}\">observacao</span>','Obsersavação cadastrada no cancelamento do protocolo.'); | ||
| 129 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (11,'METADADO_PROTOCOLO_TABELAARQUIVO','<table border=\"1\" cellpadding=\"2\" cellspacing=\"0\" style=\"width: 100%\">\n <thead>\n <tr>\n <td style=\"text-align: center\">\n Descrição do documento\n </td>\n <td style=\"text-align: center\">\n Arquivo\n </td>\n </tr>\n </thead>\n <tbody>\n <tr th:each=\"arquivo: &{protocolo.arquivosList}\">\n <td th:text=\"&{arquivo.tipoDocumento.descricao}\">&{arquivo.tipoDocumento.descricao}</td>\n <td th:text=\"&{arquivo.nomeOriginal}\">&{arquivo.nomeOriginal}</td>\n </tr>\n </tbody>\n</table>','Tabela com a lista de arquivos do protocolo.'); | ||
| 130 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (12,'METADADO_PROTOCOLO_USUARIOEMAIL','<span th:text=\"&{protocolo.usuario.email}\">E-mail: protocolo.email1</span>','E-mail do usuário que cadastrou o protocolo.'); | ||
| 131 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (13,'METADADO_PROTOCOLO_USUARIONOME','<span th:text=\"&{protocolo.usuario.nome}\">& usuario nome</span>','Nome do usuário que cadastrou o protocolo.'); | ||
| 132 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (14,'METADADO_USUARIO_NOVASENHA','<span th:text=\"&{usuario.senha}\">Sua nova senha : 5as4f56as4f5as4</span>','Nova senha gerada para o usuário.'); | ||
| 133 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (15,'METADADO_USUARIO_URLCONFIRMACAO','<a th:href=\"&{usuario.urlConfirmacaoCadastro}\">CONFIRMAR MEU CADASTRO.</a>','Url para ativação do usuário.'); | ||
| 134 | +INSERT INTO `metadado` (`codigo`,`nome`,`valor`,`descricao`) VALUES (16,'METADADO_USUARIO_URLCONSILIACAO','<a th:href=\"&{usuario.urlConfirmacaoCadastro}\">CONFIRMAR MEU CADASTRO.</a>','Url para consiliação de usuário protocolo com usuário brasil cidadão.'); | ||
| 135 | +UPDATE metadado SET valor = REPLACE(valor,'&','$'); | ||
| 136 | + | ||
| 137 | +/* | ||
| 138 | +-- insert protocolo.metadado_email | ||
| 139 | +LIMIT 0, 1000 | ||
| 140 | + | ||
| 141 | +-- Date: 2018-03-07 12:42 | ||
| 142 | +*/ | ||
| 143 | +SET FOREIGN_KEY_CHECKS = 0; | ||
| 144 | +truncate table `metadado_email`; | ||
| 145 | +SET FOREIGN_KEY_CHECKS = 1; | ||
| 146 | + | ||
| 147 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (1,15); | ||
| 148 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (2,16); | ||
| 149 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (3,2); | ||
| 150 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (3,7); | ||
| 151 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (4,14); | ||
| 152 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,3); | ||
| 153 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,4); | ||
| 154 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,5); | ||
| 155 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,7); | ||
| 156 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,8); | ||
| 157 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,10); | ||
| 158 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,11); | ||
| 159 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,12); | ||
| 160 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (5,13); | ||
| 161 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,3); | ||
| 162 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,4); | ||
| 163 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,5); | ||
| 164 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,7); | ||
| 165 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,10); | ||
| 166 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,12); | ||
| 167 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (6,13); | ||
| 168 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,3); | ||
| 169 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,4); | ||
| 170 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,5); | ||
| 171 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,6); | ||
| 172 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,7); | ||
| 173 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,8); | ||
| 174 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,9); | ||
| 175 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,10); | ||
| 176 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,11); | ||
| 177 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,12); | ||
| 178 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (7,13); | ||
| 179 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (8,1); | ||
| 180 | +INSERT INTO `metadado_email` (`codigo_email`,`codigo_metadado`) VALUES (9,1); |
src/main/resources/db/migration/V36__tabela_protocolo_erro_ws.sql
0 → 100644
src/main/resources/db/migration/V37__correcao_metadado_urlconfirmacao.sql
0 → 100644
| @@ -0,0 +1,12 @@ | @@ -0,0 +1,12 @@ | ||
| 1 | + | ||
| 2 | +UPDATE metadado | ||
| 3 | + SET valor=concat('<a th:href="', '$', '{usuario.urlConfirmacaoCadastro}">CONFIRMAR MEU CADASTRO.</a>') | ||
| 4 | + WHERE (codigo=15); | ||
| 5 | + | ||
| 6 | +UPDATE metadado | ||
| 7 | + SET valor=concat('<a th:href="', '$', '{usuario.urlConfirmacaoCadastro}">CONFIRMAR MEU CADASTRO.</a>') | ||
| 8 | + WHERE (codigo=16); | ||
| 9 | + | ||
| 10 | +UPDATE configuracao_email | ||
| 11 | + SET valor=concat('<h4 style="background-color: #fafafa; color: #626262; text-align: center;"><span>{', '$', 'METADADO_LOGO_EMAIL}</span></h4><h4 style="background-color: #fafafa; color: #626262; text-align: center;">Ministério do Planejamento, Desenvolvimento e Gestão <br />Protocolo Central <br />Esplanada dos Ministérios Bloco K, Térreo, sala T 28, CEP 70.040-906 – Brasília-DF <br />protocolo@planejamento.gov.br <br />(61) 2020-5195/5580 </h4>') | ||
| 12 | + WHERE (codigo=8); | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |