Commit 8e59a33e1ed2797879ba5de70dca1bc3dcfc8c14
1 parent
c0fe18cc
Exists in
master
#4393 Correção de defeitos encontrados em homologação
Showing
7 changed files
with
98 additions
and
66 deletions
Show diff stats
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/ProcessoDaoHibernate.java
| ... | ... | @@ -97,21 +97,15 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD |
| 97 | 97 | @Override |
| 98 | 98 | public Boolean isProcessoAbertoEmOutrasUnidades(Processo processo) { |
| 99 | 99 | |
| 100 | - Session session = (Session) this.em().getDelegate(); | |
| 101 | - | |
| 102 | - Criteria criteria = session.createCriteria(persistentClass); | |
| 100 | + Criteria criteria = this.newCriteria(); | |
| 103 | 101 | |
| 104 | 102 | criteria.setProjection(Projections.rowCount()); |
| 105 | 103 | |
| 106 | 104 | criteria.add(Restrictions.eq("id", processo.getId())); |
| 107 | 105 | criteria.add(Restrictions.ne("unidade.id", processo.getUnidade().getId())); |
| 108 | 106 | |
| 109 | - Long quantidade = (Long) criteria.uniqueResult(); | |
| 110 | - | |
| 111 | - if (quantidade > 0) | |
| 112 | - return Boolean.TRUE; | |
| 107 | + return (Long) criteria.uniqueResult() > 0; | |
| 113 | 108 | |
| 114 | - return Boolean.FALSE; | |
| 115 | 109 | } |
| 116 | 110 | |
| 117 | 111 | /** |
| ... | ... | @@ -178,27 +172,27 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD |
| 178 | 172 | |
| 179 | 173 | @Override |
| 180 | 174 | public <RT> SearchResult<RT> searchAndCount(ISearch search) { |
| 181 | - | |
| 182 | - Long idUsuario = ((Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getId(); | |
| 183 | - | |
| 175 | + | |
| 176 | + Long idUsuario = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getId(); | |
| 177 | + | |
| 184 | 178 | Criteria criteriaPrivilegio = this.newCriteria(SigiloPrivilegio.class); |
| 185 | - | |
| 179 | + | |
| 186 | 180 | criteriaPrivilegio.setProjection(Projections.property("sigilo.id")); |
| 187 | - | |
| 181 | + | |
| 188 | 182 | criteriaPrivilegio.createAlias("privilegio", "privilegio"); |
| 189 | - | |
| 183 | + | |
| 190 | 184 | criteriaPrivilegio.createAlias("privilegio.grupoPrivilegios", "grupoPrivilegio"); |
| 191 | 185 | |
| 192 | 186 | criteriaPrivilegio.add(Restrictions.isNull("grupoPrivilegio.dataInativo")); |
| 193 | - | |
| 187 | + | |
| 194 | 188 | criteriaPrivilegio.createCriteria("grupoPrivilegio.grupo").createAlias("grupoUsuarios", "grupoUsuario"); |
| 195 | - | |
| 189 | + | |
| 196 | 190 | criteriaPrivilegio.add(Restrictions.isNull("grupoUsuario.dataInativo")); |
| 197 | 191 | |
| 198 | 192 | criteriaPrivilegio.add(Restrictions.eq("grupoUsuario.usuario.id", idUsuario)); |
| 199 | - | |
| 193 | + | |
| 200 | 194 | search.getFilters().add(Filter.in("sigilo.id", criteriaPrivilegio.list())); |
| 201 | - | |
| 195 | + | |
| 202 | 196 | return super.searchAndCount(search); |
| 203 | 197 | } |
| 204 | 198 | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/EstruturaOrganizacionalECMServiceImpl.java
| ... | ... | @@ -15,7 +15,11 @@ import br.com.centralit.api.model.EstruturaOrganizacionalECM; |
| 15 | 15 | import br.com.centralit.api.service.ConfiguracaoUsuarioUnidadeService; |
| 16 | 16 | import br.com.centralit.api.service.EstruturaOrganizacionalECMService; |
| 17 | 17 | import br.com.centralit.api.service.GrupoService; |
| 18 | +import br.com.centralit.api.service.UnidadeService; | |
| 19 | +import br.com.centralit.framework.exception.BusinessException; | |
| 20 | +import br.com.centralit.framework.exception.CodigoErro; | |
| 18 | 21 | import br.com.centralit.framework.model.GrupoUnidade; |
| 22 | +import br.com.centralit.framework.model.Unidade; | |
| 19 | 23 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; |
| 20 | 24 | import br.com.centralit.framework.util.UtilColecao; |
| 21 | 25 | import br.com.centralit.framework.util.UtilObjeto; |
| ... | ... | @@ -55,6 +59,8 @@ import br.com.centralit.framework.util.UtilObjeto; |
| 55 | 59 | @Service("estruturaOrganizacionalECMService") |
| 56 | 60 | public class EstruturaOrganizacionalECMServiceImpl extends GenericServiceImpl<EstruturaOrganizacionalECM, Long> implements EstruturaOrganizacionalECMService { |
| 57 | 61 | |
| 62 | + private static final String VALIDACAO_GRUPO_PADRAO_EM_OUTRA_UNIDADE = "ECM.VALIDACAO.GRUPO_PADRAO_EM_OUTRA_UNIDADE"; | |
| 63 | + | |
| 58 | 64 | /** Atributo estruturaOrganizacionalECMDao. */ |
| 59 | 65 | private EstruturaOrganizacionalECMDao estruturaOrganizacionalECMDao; |
| 60 | 66 | |
| ... | ... | @@ -66,6 +72,10 @@ public class EstruturaOrganizacionalECMServiceImpl extends GenericServiceImpl<Es |
| 66 | 72 | @Autowired |
| 67 | 73 | private GrupoService grupoService; |
| 68 | 74 | |
| 75 | + /** Atributo unidadeService. */ | |
| 76 | + @Autowired | |
| 77 | + private UnidadeService unidadeService; | |
| 78 | + | |
| 69 | 79 | /** |
| 70 | 80 | * Responsável pela criação de novas instâncias desta classe. |
| 71 | 81 | * |
| ... | ... | @@ -111,9 +121,9 @@ public class EstruturaOrganizacionalECMServiceImpl extends GenericServiceImpl<Es |
| 111 | 121 | this.configuracaoUsuarioUnidadeService.verificarRemocaoConfiguracaoUsuarioUnidade(entity); |
| 112 | 122 | |
| 113 | 123 | this.resolveTransiente(entity); |
| 114 | - | |
| 124 | + | |
| 115 | 125 | EstruturaOrganizacional estruturaOrganizacional = entity.getEstruturaOrganizacional(); |
| 116 | - | |
| 126 | + | |
| 117 | 127 | entity.setNome(estruturaOrganizacional.getNome()); |
| 118 | 128 | entity.setSigla(estruturaOrganizacional.getSigla()); |
| 119 | 129 | |
| ... | ... | @@ -156,6 +166,13 @@ public class EstruturaOrganizacionalECMServiceImpl extends GenericServiceImpl<Es |
| 156 | 166 | |
| 157 | 167 | if (UtilObjeto.isReferencia(entity.getGrupo()) && UtilObjeto.isReferencia(entity.getGrupo().getId())) { |
| 158 | 168 | |
| 169 | + Unidade unidadeUtilizandoGrupoPadrao = this.unidadeService.obterPorGrupoPadrao(entity.getGrupo().getId()); | |
| 170 | + | |
| 171 | + if (UtilObjeto.isReferencia(unidadeUtilizandoGrupoPadrao) && !entity.isNew() && unidadeUtilizandoGrupoPadrao.getId().longValue() != entity.getId().longValue()) { | |
| 172 | + | |
| 173 | + throw new BusinessException(VALIDACAO_GRUPO_PADRAO_EM_OUTRA_UNIDADE, CodigoErro.REGRA_NEGOCIO.getValue(), unidadeUtilizandoGrupoPadrao.getNome()); | |
| 174 | + } | |
| 175 | + | |
| 159 | 176 | entity.setGrupo(this.grupoService.getReference(entity.getGrupo().getId())); |
| 160 | 177 | |
| 161 | 178 | } else { | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
| ... | ... | @@ -650,17 +650,18 @@ public class ProcessoServiceImpl extends GenericServiceImpl<Processo, Long> impl |
| 650 | 650 | * @param processo |
| 651 | 651 | */ |
| 652 | 652 | @Override |
| 653 | - public Boolean concluir(final Long idProcesso, final Long idTask) { | |
| 653 | + public Boolean concluir(Long idProcesso, Long idTask) { | |
| 654 | 654 | |
| 655 | - final Boolean concluidoEmTodasUnidades = this.unidadeProcessoService.isProcessoConcluidoEmTodasUnidades(idProcesso); | |
| 656 | - | |
| 657 | - final Processo processo = this.getReference(idProcesso); | |
| 655 | + Processo processo = this.getReference(idProcesso); | |
| 658 | 656 | |
| 659 | 657 | this.unidadeProcessoService.executarConcluirProcessoNaUnidade(idTask, processo); |
| 660 | 658 | |
| 659 | + Boolean concluidoEmTodasUnidades = this.unidadeProcessoService.isProcessoConcluidoEmTodasUnidades(idProcesso); | |
| 660 | + | |
| 661 | 661 | // Verifica se o processo foi concluído em todas unidades. |
| 662 | 662 | if (concluidoEmTodasUnidades) { |
| 663 | 663 | |
| 664 | + processo.setStatus(this.dominioService.findByChaveAndCodigo("statusProcesso", 1L)); | |
| 664 | 665 | processo.getTemporalidade().setDataFimTemporalidade(this.executarCalculoTemporalidade(processo)); |
| 665 | 666 | processo.setDataConclusao(UtilDate.getDataAtualCalendar()); |
| 666 | 667 | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java
| ... | ... | @@ -221,25 +221,28 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl<UnidadeProces |
| 221 | 221 | */ |
| 222 | 222 | public void executarConcluirProcessoNaUnidade(Long idTask, Processo processo) { |
| 223 | 223 | |
| 224 | - UnidadeProcesso unidadeProcesso = new UnidadeProcesso(); | |
| 225 | - unidadeProcesso.setProcesso(processo); | |
| 226 | - unidadeProcesso.setUnidade(this.getUsuario().getUnidade()); | |
| 227 | - unidadeProcesso.setConcluido(Boolean.TRUE); | |
| 224 | + UnidadeProcesso unidadeProcesso = this.unidadeProcessoDao.obterPorUnidadeEProcesso(processo.getId(), this.getUsuario().getUnidade().getId()); | |
| 225 | + | |
| 226 | + if (UtilObjeto.isReferencia(unidadeProcesso)) { | |
| 228 | 227 | |
| 229 | - List<String> grupos = new ArrayList<String>(); | |
| 228 | + unidadeProcesso.setConcluido(Boolean.TRUE); | |
| 230 | 229 | |
| 231 | - List<String> users = new ArrayList<String>(); | |
| 230 | + List<String> grupos = new ArrayList<String>(); | |
| 232 | 231 | |
| 233 | - users.add(processo.getAutor().getUsername()); | |
| 232 | + List<String> users = new ArrayList<String>(); | |
| 234 | 233 | |
| 235 | - Unidade unidade = this.unidadeService.getReference(this.getUsuario().getUnidade().getId()); | |
| 234 | + users.add(processo.getAutor().getUsername()); | |
| 236 | 235 | |
| 237 | - grupos.add(unidade.getGrupo().getSigla()); | |
| 236 | + Unidade unidade = this.unidadeService.getReference(this.getUsuario().getUnidade().getId()); | |
| 238 | 237 | |
| 239 | - this.removeUserTaskDelegation(idTask, grupos, null); | |
| 240 | - this.removeUserTaskDelegation(idTask, null, users); | |
| 238 | + grupos.add(unidade.getGrupo().getSigla()); | |
| 241 | 239 | |
| 242 | - this.save(unidadeProcesso); | |
| 240 | + this.removeUserTaskDelegation(idTask, grupos, null); | |
| 241 | + | |
| 242 | + this.removeUserTaskDelegation(idTask, null, users); | |
| 243 | + | |
| 244 | + this.save(unidadeProcesso); | |
| 245 | + } | |
| 243 | 246 | } |
| 244 | 247 | |
| 245 | 248 | /** | ... | ... |
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
| ... | ... | @@ -200,6 +200,9 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen |
| 200 | 200 | |
| 201 | 201 | list.add(new Dominio("formaNumeracao", "Sequencial por ano", "SEQUENCIAL_ANO", 1L)); |
| 202 | 202 | list.add(new Dominio("formaNumeracao", "Sequencial único", "SEQUENCIAL_UNICO", 2L)); |
| 203 | + | |
| 204 | + list.add(new Dominio("statusProcesso", "Concluído", "CONCLUIDO", 1L)); | |
| 205 | + list.add(new Dominio("statusProcesso", "Em andamento", "EM_ANDAMENTO", 2L)); | |
| 203 | 206 | |
| 204 | 207 | this.dominioService.saveListIfNotExist(list); |
| 205 | 208 | |
| ... | ... | @@ -432,7 +435,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen |
| 432 | 435 | internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.ERRO_CONFIGURACAO_GRUPO_PADRAO_USUARIO", "O grupo padrão não foi configurado para unidade vigente", dominio, modulo)); |
| 433 | 436 | internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.REMOCAO_COM_VINCULO", "Não é possível excluir pois o mesmo encontra-se em uso por outro cadastro no sistema!", dominio, modulo)); |
| 434 | 437 | internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.PERMISSAO_OPERACAO", "Você não tem permissão para executar a operação.", dominio, modulo)); |
| 435 | - | |
| 438 | + internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.GRUPO_PADRAO_EM_OUTRA_UNIDADE", "O grupo selecionado como padrão está sendo usado como grupo padrão da unidade ", dominio, modulo)); | |
| 439 | + | |
| 436 | 440 | } |
| 437 | 441 | |
| 438 | 442 | /** |
| ... | ... | @@ -501,8 +505,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen |
| 501 | 505 | internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.DESEJA_CAPTURAR", "Desejá capturar o processo?", dominio, modulo)); |
| 502 | 506 | internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.CAPTURADO_SUCESSO", "Processo capturado com sucesso!", dominio, modulo)); |
| 503 | 507 | internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.LEGENDA_CAMPO_DINAMICO_NUMERO_DOCUMENTO", "Use: @numeroDocumento@ para adicionar o número do documento", dominio, modulo)); |
| 508 | + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.PROCESSO_CONCLUIDO_SUCESSO", "Processo concluído com sucesso!", dominio, modulo)); | |
| 504 | 509 | |
| 505 | - | |
| 506 | - | |
| 507 | 510 | } |
| 508 | 511 | } | ... | ... |
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
| ... | ... | @@ -153,10 +153,7 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim |
| 153 | 153 | } else { |
| 154 | 154 | $scope.closeWidget(); |
| 155 | 155 | |
| 156 | - DocumentoGedRepository.existeVinculo( { | |
| 157 | - 'joinClass' : 'processo.id', | |
| 158 | - 'id' : $scope.processo.id | |
| 159 | - } ).then( function ( result ) { | |
| 156 | + DocumentoGedRepository.existeVinculo( {'joinClass' : 'processo.id', 'id' : $scope.processo.id} ).then( function ( result ) { | |
| 160 | 157 | if ( !result ) { |
| 161 | 158 | var mensagem = $translate.instant( 'ECM.MSG.PROCESSO_SEM_DOCUMENTO' ) + $scope.flowAction.name; |
| 162 | 159 | $scope.showAlert( "warning", mensagem ); |
| ... | ... | @@ -201,11 +198,9 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim |
| 201 | 198 | // Conclui o proceso |
| 202 | 199 | $scope.concluir = function () { |
| 203 | 200 | |
| 204 | - DocumentoGedRepository.existeVinculo( { | |
| 205 | - 'joinClass' : 'processo.id', | |
| 206 | - 'id' : $scope.processo.id | |
| 207 | - } ).then( function ( result ) { | |
| 208 | - if ( !result ) { | |
| 201 | + DocumentoGedRepository.existeVinculo({'joinClass' : 'processo.id', 'id' : $scope.processo.id} ).then(function(result) { | |
| 202 | + | |
| 203 | + if (!result) { | |
| 209 | 204 | var mensagem = $translate.instant( 'ECM.MSG.PROCESSO_SEM_DOCUMENTO' ) + " " + $translate.instant( 'ECM.LABEL.CONCLUIR' ); |
| 210 | 205 | $scope.showAlert( "warning", mensagem ); |
| 211 | 206 | } else { |
| ... | ... | @@ -218,23 +213,33 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim |
| 218 | 213 | } ); |
| 219 | 214 | }; |
| 220 | 215 | |
| 216 | + //Concluir processo | |
| 221 | 217 | $scope.saveConcluir = function () { |
| 222 | 218 | |
| 223 | 219 | ProcessoRepository.concluir( {"idProcesso" : $scope.processo.id, "idTask" : $scope.task.id} ).then( function ( result ) { |
| 224 | 220 | |
| 225 | 221 | // Verifica se foi concluido em todas unidades. |
| 226 | - $timeout( function () { | |
| 227 | - if ( result ) { | |
| 228 | - if ( $scope.task.flowElement.actions && $scope.task.flowElement.actions.length == 1 ) { | |
| 222 | + $timeout(function () { | |
| 223 | + if (result) { | |
| 224 | + if ($scope.task.flowElement.actions && $scope.task.flowElement.actions.length == 1 ) { | |
| 229 | 225 | $scope.executarProcesso( $scope.task.flowElement.actions[ 0 ] ); |
| 230 | 226 | } |
| 231 | 227 | } else { |
| 232 | - var workspace = angular.element( '#editProcessoEcm' ).scope().workspace; | |
| 233 | - if ( workspace ) { | |
| 228 | + var workspace = angular.element( '#searchGerenciarProcesso' ).scope().workspace; | |
| 229 | + //Fechar workspace de gerenciamento de processo | |
| 230 | + if (workspace) { | |
| 231 | + | |
| 234 | 232 | $scope.$modalConfirmInstance.dismiss( 'cancel' ); |
| 235 | - angular.element( "#citapp-controller" ).scope().removeWorkspace( workspace.id ); | |
| 233 | + | |
| 234 | + angular.element("#citapp-controller").scope().removeWorkspace(workspace.id); | |
| 236 | 235 | |
| 237 | - angular.element( "#citapp-controller" ).scope().showAlert( "success", $translate.instant( 'MSG.PROCESSO_ENVIADO_SUCESSO' ) ); | |
| 236 | + angular.element("#citapp-controller").scope().showAlert("success", $translate.instant('ECM.MSG.PROCESSO_CONCLUIDO_SUCESSO')); | |
| 237 | + | |
| 238 | + //Atualizar grid de gerenciamento de tarefas do bpe/esi | |
| 239 | + if(angular.element( '#idGerenciamentoTarefas' )){ | |
| 240 | + | |
| 241 | + angular.element( '#idGerenciamentoTarefas' ).scope().fetchResult(); | |
| 242 | + } | |
| 238 | 243 | } |
| 239 | 244 | } |
| 240 | 245 | |
| ... | ... | @@ -489,6 +494,10 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim |
| 489 | 494 | } else { |
| 490 | 495 | $scope.execute( complete ); |
| 491 | 496 | } |
| 497 | + | |
| 498 | + $timeout( function () { | |
| 499 | + angular.element( '#idGerenciamentoTarefas' ).scope().fetchResult(); | |
| 500 | + } ); | |
| 492 | 501 | |
| 493 | 502 | }; |
| 494 | 503 | |
| ... | ... | @@ -601,9 +610,9 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim |
| 601 | 610 | |
| 602 | 611 | ProcessoRepository.getProcessoGerenciamento($scope.idProcesso).then( function ( result ) { |
| 603 | 612 | $scope.processo = result.originalElement; |
| 604 | - $scope.apresentarCabecalho = true; | |
| 605 | - $scope.processo.idTask = $scope.task.id; | |
| 606 | - | |
| 613 | + $scope.apresentarCabecalho = true; | |
| 614 | + $scope.processo.idTask = $scope.task.id; | |
| 615 | + | |
| 607 | 616 | ProcessoRepository.verificarAtribuicaoProcessoPrimeiroAcesso($scope.idProcesso).then( function ( result ) { |
| 608 | 617 | |
| 609 | 618 | if(result){ | ... | ... |
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/UnidadeProcessoController.js
| ... | ... | @@ -139,16 +139,21 @@ citApp.controller('UnidadeProcessoController', ['$scope', 'UnidadeProcessoReposi |
| 139 | 139 | |
| 140 | 140 | }); |
| 141 | 141 | |
| 142 | - var historicoAlteracaoProcesso = { | |
| 143 | - descricaoAcao : $translate.instant('ECM.MSG_HISTORICO_ECM.CONCLUSAO_PROCESSO_UNIDADE'), | |
| 144 | - processo : processo, | |
| 145 | - autor : $scope.usuarioLogado, | |
| 146 | - acaoAlteracao : "CONCLUSAO_PROCESSO_UNIDADE" | |
| 147 | - }; | |
| 142 | + //Verifica se o processo foi concluído na unidade, caso sejá verdadeiro gera o histórico de conclusão | |
| 143 | + if($scope.enviarProcessoVH.concluirProcesso){ | |
| 148 | 144 | |
| 149 | - HistoricoAlteracaoProcessoRepository.saveParams(historicoAlteracaoProcesso).then(function(result){ | |
| 145 | + var historicoAlteracaoProcesso = { | |
| 146 | + descricaoAcao : $translate.instant('ECM.MSG_HISTORICO_ECM.CONCLUSAO_PROCESSO_UNIDADE'), | |
| 147 | + processo : processo, | |
| 148 | + autor : $scope.usuarioLogado, | |
| 149 | + acaoAlteracao : "CONCLUSAO_PROCESSO_UNIDADE" | |
| 150 | + }; | |
| 151 | + | |
| 152 | + HistoricoAlteracaoProcessoRepository.saveParams(historicoAlteracaoProcesso).then(function(result){ | |
| 153 | + | |
| 154 | + }); | |
| 150 | 155 | |
| 151 | - }); | |
| 156 | + } | |
| 152 | 157 | |
| 153 | 158 | }; |
| 154 | 159 | ... | ... |