From 2d205cde66f7c5711ee714b4aa0e68be0e5d1e4b Mon Sep 17 00:00:00 2001 From: Carlos Alberto Date: Sun, 22 May 2016 18:47:24 -0300 Subject: [PATCH] Correção da importação de usuários e colaboradores --- cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Colaborador.java | 12 ++++++++++++ cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/FuncaoServiceImpl.java | 10 ++++++++-- cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/ImportacaoDadosServiceImpl.java | 26 ++++++++++++++++++++++++-- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Colaborador.java b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Colaborador.java index a221354..fa29f28 100644 --- a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Colaborador.java +++ b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Colaborador.java @@ -4,6 +4,7 @@ import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.ManyToOne; import javax.persistence.Table; +import javax.persistence.Transient; import org.hibernate.envers.Audited; import org.hibernate.envers.NotAudited; @@ -71,6 +72,9 @@ public class Colaborador extends Parceiro { @ManyToOne(fetch = FetchType.LAZY) @JsonView({ Views.PessoaEditView.class, Views.ColaboradorAutoCompleteView.class, Views.EstruturaOrganizacionalEditView.class }) private Funcao funcao; + + @Transient + private String siglaEstruturaOrganizacional; /** * Retorna o valor do atributo estruturaOrganizacional @@ -152,4 +156,12 @@ public class Colaborador extends Parceiro { this.funcao = funcao; } + public String getSiglaEstruturaOrganizacional() { + return siglaEstruturaOrganizacional; + } + + public void setSiglaEstruturaOrganizacional(String siglaEstruturaOrganizacional) { + this.siglaEstruturaOrganizacional = siglaEstruturaOrganizacional; + } + } diff --git a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/FuncaoServiceImpl.java b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/FuncaoServiceImpl.java index 90787f2..ed22200 100644 --- a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/FuncaoServiceImpl.java +++ b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/FuncaoServiceImpl.java @@ -75,7 +75,10 @@ public class FuncaoServiceImpl extends GenericServiceImpl implemen private void verificaCodigoIgual(Funcao funcao){ - Long idOrganizacao = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getOrganizacao().getId(); + Long idOrganizacao = funcao.getOrganizacao() != null ? funcao.getOrganizacao().getId() : null; + if (idOrganizacao == null) { + idOrganizacao = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getOrganizacao().getId(); + } // Verifica se o codigo ja existe if (UtilObjeto.isReferencia(funcao) && UtilObjeto.isReferencia(funcao.getId())) { @@ -92,7 +95,10 @@ public class FuncaoServiceImpl extends GenericServiceImpl implemen } private void verificaNomeIgual(Funcao funcao){ - Long idOrganizacao = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getOrganizacao().getId(); + Long idOrganizacao = funcao.getOrganizacao() != null ? funcao.getOrganizacao().getId() : null; + if (idOrganizacao == null) { + idOrganizacao = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getOrganizacao().getId(); + } // Verifica se o nome ja existe if (UtilObjeto.isReferencia(funcao) && UtilObjeto.isReferencia(funcao.getId())) { diff --git a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/ImportacaoDadosServiceImpl.java b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/ImportacaoDadosServiceImpl.java index db8215f..620f44a 100644 --- a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/ImportacaoDadosServiceImpl.java +++ b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/ImportacaoDadosServiceImpl.java @@ -12,12 +12,14 @@ import br.com.centralit.api.model.CentroResultado; import br.com.centralit.api.model.Colaborador; import br.com.centralit.api.model.Contato; import br.com.centralit.api.model.Endereco; +import br.com.centralit.api.model.EstruturaOrganizacional; import br.com.centralit.api.model.Funcao; import br.com.centralit.api.model.Pessoa; import br.com.centralit.api.model.PessoaFisica; import br.com.centralit.api.model.Telefone; import br.com.centralit.api.service.CentroResultadoService; import br.com.centralit.api.service.DominioService; +import br.com.centralit.api.service.EstruturaOrganizacionalService; import br.com.centralit.api.service.FuncaoService; import br.com.centralit.api.service.ImportacaoDadosService; import br.com.centralit.api.service.OrganizacaoService; @@ -96,16 +98,35 @@ public class ImportacaoDadosServiceImpl implements ImportacaoDadosService { @Autowired private CentroResultadoService centroResultadoService; + @Autowired + private EstruturaOrganizacionalService estruturaOrganizacionalService; + @Override public Pessoa importaColaborador(PessoaVH pessoaVH) { + List organizacoes = organizacaoService.findAll(); + try { - List organizacoes = organizacaoService.findAll(); - PessoaFisica pessoaFisica = this.pessoaFisicaService.findPorCPFAndOrganizacao(pessoaVH.getPessoa().getPessoaFisica().getCpf(), organizacoes.get(0).getId()); if (UtilObjeto.isReferencia(pessoaFisica)) { return this.sincronizaColaborador(pessoaVH, pessoaFisica); }else{ + EstruturaOrganizacional unidade = null; + List estruturasOrganizacionais = estruturaOrganizacionalService.findAll(); + + if (estruturasOrganizacionais != null && estruturasOrganizacionais.size() > 0) { + if (!UtilString.isNullOrEmpty(pessoaVH.getColaborador().getSiglaEstruturaOrganizacional())) { + for (EstruturaOrganizacional estruturaOrganizacional : estruturasOrganizacionais) { + if (estruturaOrganizacional.getSigla().equalsIgnoreCase(pessoaVH.getColaborador().getSiglaEstruturaOrganizacional())) { + unidade = estruturaOrganizacional; + break; + } + } + }else{ + unidade = estruturasOrganizacionais.get(0); + } + } + List dominiosTipoParceiros = new ArrayList(); dominiosTipoParceiros.add(dominioService.findByChaveAndCodigo(Dominio.TIPO_PARCEIRO, Dominio.TIPO_PARCEIRO_COLABORADOR_SERVIDOR)); pessoaVH.setDominiosTipoParceiroSelecionados(dominiosTipoParceiros); @@ -127,6 +148,7 @@ public class ImportacaoDadosServiceImpl implements ImportacaoDadosService { Colaborador colaborador = pessoaVH.getColaborador(); colaborador.setOrganizacao(organizacoes.get(0)); + colaborador.setEstruturaOrganizacional(unidade); this.sincronizaFuncao(colaborador); if (pessoa.getEnderecos() == null) { -- libgit2 0.21.2