Commit 0b2f4cf0afdcf68701a96c64e980eae2bf97f613

Authored by ROGERIO CASSIMIRO DE SOUZA
1 parent 538e988c
Exists in master

redmine #4583 panel assinar doc

cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Pessoa.java
... ... @@ -14,6 +14,7 @@ import javax.persistence.ManyToOne;
14 14 import javax.persistence.OneToMany;
15 15 import javax.persistence.OneToOne;
16 16 import javax.persistence.PrimaryKeyJoinColumn;
  17 +import javax.persistence.Transient;
17 18  
18 19 import org.hibernate.envers.Audited;
19 20 import org.hibernate.envers.NotAudited;
... ... @@ -31,37 +32,37 @@ import com.fasterxml.jackson.annotation.JsonView;
31 32 * <p>
32 33 * <img src="http://centralit.com.br/images/logo_central.png">
33 34 * </p>
34   - *
  35 + *
35 36 * <p>
36 37 * <b>Company: </b> Central IT - Governança Corporativa -
37 38 * </p>
38   - *
  39 + *
39 40 * <p>
40 41 * <b>Title: </b>Pessoa
41 42 * </p>
42   - *
  43 + *
43 44 * <p>
44 45 * <b>Description: </b>Entidade <code>Pessoa</code>
45 46 * </p>
46   - *
  47 + *
47 48 * <p>
48 49 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
49 50 * </p>
50   - *
  51 + *
51 52 * <p>
52 53 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
53 54 * </p>
54   - *
  55 + *
55 56 * @since 27/11/2014 - 10:32:19
56   - *
  57 + *
57 58 * @version 1.0.0
58   - *
  59 + *
59 60 * @author rogerio.costa
60   - *
  61 + *
61 62 */
62 63 @Audited
63 64 @Entity
64   -@JsonIgnoreProperties({ "$checked"})
  65 +@JsonIgnoreProperties({ "$checked" })
65 66 public class Pessoa extends PersistentObjectAuditOrganizacao {
66 67  
67 68 /** Atributo serialVersionUID. */
... ... @@ -69,46 +70,14 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
69 70  
70 71 @Id
71 72 @GeneratedValue(strategy = GenerationType.AUTO)
72   - @JsonView({ Views.GenericView.class, Views.FornecedorFindView.class, Views.SeguradoraAutoCompleteView.class, Views.InventarioMobileCompleto.class, Views.InventarioMobileSimples.class })
  73 + @JsonView({ Views.GenericView.class, Views.FornecedorFindView.class, Views.SeguradoraAutoCompleteView.class, Views.InventarioMobileCompleto.class, Views.InventarioMobileSimples.class })
73 74 protected Long id;
74 75  
75 76 /** Atributo nome. */
76 77 // TODO acrescentar view do estrutura organizacional, substituir Views.LookupView.class pelo do estrutura organizacional
77   - @JsonView({ Views.FornecedorFindView.class,
78   - Views.LookupView.class,
79   - Views.PessoaListViewListView.class,
80   - Views.ColaboradorAutoCompleteView.class,
81   - Views.ComissaoListView.class,
82   - Views.BemPatrimonialAutoCompleteView.class,
83   - Views.EntradaListView.class,
84   - Views.EstruturaOrganizacionalEditView.class,
85   - Views.TransferenciaListView.class,
86   - Views.SaidaTemporariaListView.class,
87   - Views.AdicaoBemPatrimonialView.class,
88   - Views.ParceiroAutoCompleteView.class,
89   - Views.BaixaEditView.class,
90   - Views.SaidaTemporariaItemListView.class,
91   - Views.ColaboradorContratoAutoCompleteView.class,
92   - Views.SeguradoraAutoCompleteView.class,
93   - Views.ComissaoIntegranteEditView.class,
94   - Views.InventarioBemPatrimonialInconsistenciaView.class,
95   - Views.DadosBemPatrimonialEditView.class,
96   - Views.BemPatrimonialInventarioAutoCompleteView.class,
97   - Views.BaixaAlmoxarifadoView.class,
98   - Views.GenericView.class,
99   - Views.InventarioMobileCompleto.class,
100   - Views.InventarioMobileSimples.class,
101   - Views.InventarioMobileJEDI.class,
102   - Views.DefinicaoDetentorListView.class,
103   - ViewsTabelasCorp.CentroResultadoResponsavelTodosResponsaveis.class,
104   - ViewsTabelasCorp.CentroResultadoDelegacaoTodasDelegacoes.class,
105   - ViewsTabelasCorp.CentroResultadoSubstituicao.class,
106   - Views.BemPatrimonialEditView.class,
107   - Views.DocumentoGedEdit.class,
108   - Views.ProcessoEdit.class,
109   - Views.DocumentoGedEdit.class,
110   - Views.ContratoView.class,
111   - Views.PessoaAutoCompeteView.class})
  78 + @JsonView({ Views.FornecedorFindView.class, Views.LookupView.class, Views.PessoaListViewListView.class, Views.ColaboradorAutoCompleteView.class, Views.ComissaoListView.class, Views.BemPatrimonialAutoCompleteView.class, Views.EntradaListView.class, Views.EstruturaOrganizacionalEditView.class, Views.TransferenciaListView.class, Views.SaidaTemporariaListView.class, Views.AdicaoBemPatrimonialView.class, Views.ParceiroAutoCompleteView.class, Views.BaixaEditView.class,
  79 + Views.SaidaTemporariaItemListView.class, Views.ColaboradorContratoAutoCompleteView.class, Views.SeguradoraAutoCompleteView.class, Views.ComissaoIntegranteEditView.class, Views.InventarioBemPatrimonialInconsistenciaView.class, Views.DadosBemPatrimonialEditView.class, Views.BemPatrimonialInventarioAutoCompleteView.class, Views.BaixaAlmoxarifadoView.class, Views.GenericView.class, Views.InventarioMobileCompleto.class, Views.InventarioMobileSimples.class,
  80 + Views.InventarioMobileJEDI.class, Views.DefinicaoDetentorListView.class, ViewsTabelasCorp.CentroResultadoResponsavelTodosResponsaveis.class, ViewsTabelasCorp.CentroResultadoDelegacaoTodasDelegacoes.class, ViewsTabelasCorp.CentroResultadoSubstituicao.class, Views.BemPatrimonialEditView.class, Views.DocumentoGedEdit.class, Views.ProcessoEdit.class, Views.DocumentoGedEdit.class, Views.ContratoView.class, Views.PessoaAutoCompeteView.class })
112 81 private String nome;
113 82  
114 83 /** Atributo email. */
... ... @@ -123,7 +92,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
123 92  
124 93 /** Atributo pessoaFisica. */
125 94 @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
126   - @JsonView({ Views.PessoaEditView.class})
  95 + @JsonView({ Views.PessoaEditView.class })
127 96 @PrimaryKeyJoinColumn
128 97 private PessoaFisica pessoaFisica;
129 98  
... ... @@ -157,8 +126,8 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
157 126  
158 127 /** Atributo usuario. */
159 128 @NotAudited
160   - @ManyToOne(fetch=FetchType.LAZY, optional=true)
161   - @JsonView({ Views.PessoaEditView.class})
  129 + @ManyToOne(fetch = FetchType.LAZY, optional = true)
  130 + @JsonView({ Views.PessoaEditView.class })
162 131 private Usuario usuario;
163 132  
164 133 /** Atributo codigo. */
... ... @@ -166,10 +135,13 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
166 135 @JsonView({ Views.GenericView.class })
167 136 private String codigo;
168 137  
  138 + @JsonView({ Views.PessoaEditView.class })
  139 + @Transient
  140 + private boolean isAssinarDocumento;
169 141  
170 142 /**
171 143 * Retorna o valor do atributo <code>id</code>
172   - *
  144 + *
173 145 * @return <code>Long</code>
174 146 */
175 147 public Long getId() {
... ... @@ -179,7 +151,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
179 151  
180 152 /**
181 153 * Define o valor do atributo <code>id</code>.
182   - *
  154 + *
183 155 * @param nome
184 156 */
185 157 public void setId(Long id) {
... ... @@ -189,7 +161,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
189 161  
190 162 /**
191 163 * Retorna o valor do atributo <code>email</code>
192   - *
  164 + *
193 165 * @return <code>String</code>
194 166 */
195 167 public String getEmail() {
... ... @@ -199,7 +171,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
199 171  
200 172 /**
201 173 * Define o valor do atributo <code>email</code>.
202   - *
  174 + *
203 175 * @param email
204 176 */
205 177 public void setEmail(String email) {
... ... @@ -209,7 +181,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
209 181  
210 182 /**
211 183 * Define o valor do atributo <code>tipoPessoa</code>.
212   - *
  184 + *
213 185 * @param tipoPessoa
214 186 */
215 187 public void setTipoPessoa(Dominio tipoPessoa) {
... ... @@ -218,7 +190,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
218 190  
219 191 /**
220 192 * Retorna o valor do atributo <code>pessoaFisica</code>
221   - *
  193 + *
222 194 * @return <code>PessoaFisica</code>
223 195 */
224 196 public PessoaFisica getPessoaFisica() {
... ... @@ -228,7 +200,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
228 200  
229 201 /**
230 202 * Define o valor do atributo <code>pessoaFisica</code>.
231   - *
  203 + *
232 204 * @param pessoaFisica
233 205 */
234 206 public void setPessoaFisica(PessoaFisica pessoaFisica) {
... ... @@ -238,7 +210,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
238 210  
239 211 /**
240 212 * Retorna o valor do atributo <code>pessoaJuridica</code>
241   - *
  213 + *
242 214 * @return <code>PessoaJuridica</code>
243 215 */
244 216 public PessoaJuridica getPessoaJuridica() {
... ... @@ -248,7 +220,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
248 220  
249 221 /**
250 222 * Define o valor do atributo <code>pessoaJuridica</code>.
251   - *
  223 + *
252 224 * @param pessoaJuridica
253 225 */
254 226 public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
... ... @@ -258,7 +230,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
258 230  
259 231 /**
260 232 * Retorna o valor do atributo <code>listaParceiro</code>
261   - *
  233 + *
262 234 * @return <code>Collection<Parceiro></code>
263 235 */
264 236 public Collection<Parceiro> getParceiros() {
... ... @@ -268,7 +240,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
268 240  
269 241 /**
270 242 * Define o valor do atributo <code>listaParceiro</code>.
271   - *
  243 + *
272 244 * @param listaParceiro
273 245 */
274 246 public void setParceiros(final Collection<Parceiro> listaParceiro) {
... ... @@ -278,7 +250,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
278 250  
279 251 /**
280 252 * Retorna o valor do atributo <code>nome</code>
281   - *
  253 + *
282 254 * @return <code>String</code>
283 255 */
284 256 public String getNome() {
... ... @@ -288,7 +260,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
288 260  
289 261 /**
290 262 * Define o valor do atributo <code>nome</code>.
291   - *
  263 + *
292 264 * @param nome
293 265 */
294 266 public void setNome(String nome) {
... ... @@ -298,7 +270,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
298 270  
299 271 /**
300 272 * Retorna o valor do atributo <code>listaTelefone</code>
301   - *
  273 + *
302 274 * @return <code>Collection<Telefone></code>
303 275 */
304 276 public Collection<Telefone> getTelefones() {
... ... @@ -308,7 +280,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
308 280  
309 281 /**
310 282 * Define o valor do atributo <code>listaTelefone</code>.
311   - *
  283 + *
312 284 * @param listaTelefone
313 285 */
314 286 public void setTelefones(Collection<Telefone> listaTelefone) {
... ... @@ -318,7 +290,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
318 290  
319 291 /**
320 292 * Retorna o valor do atributo <code>contatos</code>
321   - *
  293 + *
322 294 * @return <code>Collection<Contato></code>
323 295 */
324 296 public Collection<Contato> getContatos() {
... ... @@ -328,7 +300,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
328 300  
329 301 /**
330 302 * Define o valor do atributo <code>contatos</code>.
331   - *
  303 + *
332 304 * @param contatos
333 305 */
334 306 public void setContatos(Collection<Contato> contatos) {
... ... @@ -338,7 +310,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
338 310  
339 311 /**
340 312 * Retorna o valor do atributo <code>dominioPessoa</code>
341   - *
  313 + *
342 314 * @return <code>Dominio</code>
343 315 */
344 316 public Dominio getDominioPessoa() {
... ... @@ -348,7 +320,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
348 320  
349 321 /**
350 322 * Define o valor do atributo <code>dominioPessoa</code>.
351   - *
  323 + *
352 324 * @param dominioPessoa
353 325 */
354 326 public void setDominioPessoa(Dominio dominioPessoa) {
... ... @@ -358,7 +330,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
358 330  
359 331 /**
360 332 * Retorna o valor do atributo <code>enderecos</code>
361   - *
  333 + *
362 334 * @return <code>Collection<Endereco></code>
363 335 */
364 336 public Collection<Endereco> getEnderecos() {
... ... @@ -368,7 +340,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
368 340  
369 341 /**
370 342 * Define o valor do atributo <code>enderecos</code>.
371   - *
  343 + *
372 344 * @param enderecos
373 345 */
374 346 public void setEnderecos(Collection<Endereco> enderecos) {
... ... @@ -376,10 +348,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
376 348 this.enderecos = enderecos;
377 349 }
378 350  
379   -
380 351 /**
381 352 * Retorna o valor do atributo <code>codigo</code>
382   - *
  353 + *
383 354 * @return <code>String</code>
384 355 */
385 356 public String getCodigo() {
... ... @@ -387,10 +358,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
387 358 return codigo;
388 359 }
389 360  
390   -
391 361 /**
392 362 * Define o valor do atributo <code>codigo</code>.
393   - *
  363 + *
394 364 * @param codigo
395 365 */
396 366 public void setCodigo(String codigo) {
... ... @@ -398,10 +368,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
398 368 this.codigo = codigo;
399 369 }
400 370  
401   -
402 371 /**
403 372 * Retorna o valor do atributo <code>usuario</code>
404   - *
  373 + *
405 374 * @return <code>Usuario</code>
406 375 */
407 376 public Usuario getUsuario() {
... ... @@ -409,10 +378,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
409 378 return usuario;
410 379 }
411 380  
412   -
413 381 /**
414 382 * Define o valor do atributo <code>usuario</code>.
415   - *
  383 + *
416 384 * @param usuario
417 385 */
418 386 public void setUsuario(Usuario usuario) {
... ... @@ -420,6 +388,24 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
420 388 this.usuario = usuario;
421 389 }
422 390  
  391 + /**
  392 + * Retorna o valor do atributo <code>isAssinarDocumento</code>
  393 + *
  394 + * @return <code>boolean</code>
  395 + */
  396 + public boolean isAssinarDocumento() {
  397 +
  398 + return isAssinarDocumento;
  399 + }
423 400  
  401 + /**
  402 + * Define o valor do atributo <code>isAssinarDocumento</code>.
  403 + *
  404 + * @param isAssinarDocumento
  405 + */
  406 + public void setAssinarDocumento(boolean isAssinarDocumento) {
  407 +
  408 + this.isAssinarDocumento = isAssinarDocumento;
  409 + }
424 410  
425 411 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/PessoaService.java
... ... @@ -303,7 +303,7 @@ public interface PessoaService extends GenericService&lt;Pessoa, Long&gt; {
303 303 /**
304 304 * Método responsável por obter permissão para assinatura de documento
305 305 * @author rogerio.cassimiro
306   - * @return {@link Boolean}
  306 + * @return {@link Pessoa}
307 307 */
308   - boolean getPermissaoAssinaturaDocumento();
  308 + Pessoa getPermissaoAssinaturaDocumento();
309 309 }
310 310 \ No newline at end of file
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/PessoaServiceImpl.java
... ... @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletRequest;
7 7  
8 8 import org.springframework.beans.factory.annotation.Autowired;
9 9 import org.springframework.beans.factory.annotation.Qualifier;
  10 +import org.springframework.security.core.context.SecurityContextHolder;
10 11 import org.springframework.stereotype.Service;
11 12 import org.springframework.validation.Validator;
12 13  
... ... @@ -45,6 +46,7 @@ import br.com.centralit.framework.exception.BusinessException;
45 46 import br.com.centralit.framework.exception.CodigoErro;
46 47 import br.com.centralit.framework.model.Dominio;
47 48 import br.com.centralit.framework.model.Modulo;
  49 +import br.com.centralit.framework.model.Usuario;
48 50 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
49 51 import br.com.centralit.framework.util.UtilColecao;
50 52 import br.com.centralit.framework.util.UtilObjeto;
... ... @@ -1260,12 +1262,20 @@ public class PessoaServiceImpl extends GenericServiceImpl&lt;Pessoa, Long&gt; implemen
1260 1262 /**
1261 1263 * Método responsável por obter permissão para assinatura de documento
1262 1264 * @author rogerio.cassimiro
1263   - * @return {@link Boolean}
  1265 + * @return {@link Pessoa}
1264 1266 */
1265 1267 @Override
1266   - public boolean getPermissaoAssinaturaDocumento() {
1267   - if(this.colaboradorService.getPermissaoAssinaturaDocumento())
1268   - return this.terceirizadoService.getPermissaoAssinaturaDocumento();
1269   - return Boolean.FALSE;
  1268 + public Pessoa getPermissaoAssinaturaDocumento() {
  1269 + Usuario usuario = (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  1270 + Pessoa pessoa = this.pessoaDao.buscaPessoaPorUsuarioId(usuario.getId());
  1271 + if(!UtilObjeto.isReferencia(pessoa)){
  1272 + throw new BusinessException("ECM.MSG.USUARIO_SEM_PESSOA", CodigoErro.REGRA_NEGOCIO.getValue(), "");
  1273 + }
  1274 + pessoa.setAssinarDocumento(Boolean.FALSE);
  1275 + if(this.colaboradorService.getPermissaoAssinaturaDocumento())
  1276 + pessoa.setAssinarDocumento(Boolean.TRUE);
  1277 + if(this.terceirizadoService.getPermissaoAssinaturaDocumento())
  1278 + pessoa.setAssinarDocumento(Boolean.TRUE);
  1279 + return pessoa;
1270 1280 }
1271 1281 }
... ...