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 | ... | ... |