From 4d4ec0575c211ecb298dc13f6d26d87c7fa5c47e Mon Sep 17 00:00:00 2001 From: geovane.filho Date: Thu, 28 Apr 2016 14:40:56 -0300 Subject: [PATCH] Redmine #4679 Refatoração em entrada almoxarifado para retirar da herança de entrada --- cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java | 411 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoDocumento.java | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoObservacao.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java | 12 ++++++------ cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java | 2 +- 5 files changed, 562 insertions(+), 8 deletions(-) create mode 100644 cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoDocumento.java create mode 100644 cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoObservacao.java diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java index 2f02bc7..7122a39 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java @@ -1,21 +1,39 @@ package br.com.centralit.api.model; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Calendar; import java.util.Collection; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; import org.hibernate.envers.AuditJoinTable; import org.hibernate.envers.Audited; +import org.hibernate.envers.NotAudited; import br.com.centralit.api.framework.json.ViewsAdmMateriais; +import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; +import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer; +import br.com.centralit.framework.json.MoneyDeserializer; +import br.com.centralit.framework.json.Views; import br.com.centralit.framework.model.Dominio; +import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; +import br.com.centralit.framework.util.UtilObjeto; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonView; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; /** *

@@ -51,10 +69,95 @@ import com.fasterxml.jackson.annotation.JsonView; */ @Audited @Entity -public class EntradaAlmoxarifado extends Entrada { +@JsonIgnoreProperties({ "$checked", "$selected" }) +public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implements Cloneable { /** Atributo serialVersionUID. */ private static final long serialVersionUID = 6267732497145774401L; + + /** Atributo id. */ + @Id +// @SequenceGenerator(name = "entrada_id_seq", sequenceName = "entrada_id_seq") +// @GeneratedValue(strategy = GenerationType.AUTO, generator = "entrada_id_seq") + @GeneratedValue(strategy = GenerationType.AUTO) + @JsonView({ Views.GenericView.class }) + private Long id; + + /** Atributo dataReferencia. */ + @Column(name = "dataReferencia", nullable = false, updatable = false) + @Temporal(TemporalType.TIMESTAMP) + @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) + @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) + @JsonView({ Views.EntradaListView.class }) + private Calendar dataReferencia; + + /** Atributo dataContabil. */ + @Column(name = "dataContabil", nullable = true) + @Temporal(TemporalType.TIMESTAMP) + @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) + @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) + @JsonView({ Views.EntradaListView.class, Views.BemPatrimonialEditView.class, Views.BemPatrimonialListView.class, Views.BemPatrimonialAutoCompleteView.class, Views.GenericView.class }) + private Calendar dataContabil; + + /** Atributo dataRecebimento. */ + @Column(name = "dataRecebimento", nullable = true) + @Temporal(TemporalType.TIMESTAMP) + @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) + @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) + @JsonView({ Views.EntradaListView.class, Views.BemPatrimonialEditView.class }) + private Calendar dataRecebimento; + + /** Atributo codigo. */ + @Column(length = 30) + @GeneratedValue(strategy = GenerationType.AUTO) + @JsonView({ Views.EntradaAutoCompleteView.class }) + private String codigo; + + /** Atributo valorTotalNota. */ + @Column(precision = 20, scale = 2) + @JsonDeserialize(using = MoneyDeserializer.class) + @JsonView({ Views.EntradaListView.class }) + private BigDecimal valorTotalNota; + + /** Atributo dominioTipoEntrada. */ + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ Views.EntradaAutoCompleteView.class }) + private Dominio dominioTipoEntrada; + + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ Views.EntradaListView.class }) + private Dominio dominioTipoRecebimento; + + /** Atributo fornecedor. */ + @NotAudited + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ Views.EntradaListView.class }) + private Parceiro fornecedor; + + /** Atributo observacoes. */ + @NotAudited + @OneToMany(fetch = FetchType.LAZY, mappedBy = "entrada", cascade = CascadeType.ALL, orphanRemoval = true) + @JsonView({ Views.EntradaEditView.class }) + private Collection observacoes; + + /** Atributo documentos. */ + @OneToMany(fetch = FetchType.LAZY, mappedBy = "entrada", cascade = CascadeType.ALL, orphanRemoval = true) + @JsonView({ Views.EntradaEditView.class }) + private Collection documentos; + + /** Atributo codigo. */ + @Column(length = 30) + private String codigoAsi; + + /** Atributo entrada concluida. */ + @Column(name = "isentradaconcluida") + @JsonView({ Views.EntradaListView.class }) + private Boolean isEntradaConcluida; + + /** Atributo entrada contabilizada. */ + @Column(name = "iscontabilizada") + @JsonView({ Views.EntradaListView.class }) + private Boolean isContabilizada; /** Atributo estruturaOrganizacional. */ @ManyToOne(fetch = FetchType.LAZY, optional = false) @@ -80,6 +183,312 @@ public class EntradaAlmoxarifado extends Entrada { private EstruturaOrganizacional unidadeRequisitante; /** + * Retorna o valor do atributo id + * + * @return Long + */ + public Long getId() { + + return id; + } + + /** + * Define o valor do atributo id. + * + * @param id + */ + public void setId(Long id) { + + this.id = id; + } + + /** + * Retorna o valor do atributo observacoes + * + * @return Collection + */ + public Collection getObservacoes() { + + if (!UtilObjeto.isReferencia(observacoes)) { + + this.observacoes = new ArrayList(); + } + + return observacoes; + } + + /** + * Define o valor do atributo observacoes. + * + * @param observacoes + */ + public void setObservacoes(Collection observacoes) { + + this.observacoes = observacoes; + } + + /** + * Retorna o valor do atributo documentos + * + * @return Collection + */ + public Collection getDocumentos() { + + if (!UtilObjeto.isReferencia(documentos)) { + + this.documentos = new ArrayList(); + } + + return documentos; + } + + /** + * Define o valor do atributo documentos. + * + * @param documentos + */ + public void setDocumentos(Collection documentos) { + + this.documentos = documentos; + } + + /** + * Retorna o valor do atributo dataContabil + * + * @return Calendar + */ + public Calendar getDataContabil() { + + return dataContabil; + } + + /** + * Define o valor do atributo dataContabil. + * + * @param dataContabil + */ + public void setDataContabil(Calendar dataContabil) { + + this.dataContabil = dataContabil; + } + + /** + * Retorna o valor do atributo dataRecebimento + * + * @return Calendar + */ + public Calendar getDataRecebimento() { + + return dataRecebimento; + } + + /** + * Define o valor do atributo dataRecebimento. + * + * @param dataRecebimento + */ + public void setDataRecebimento(Calendar dataRecebimento) { + + this.dataRecebimento = dataRecebimento; + } + + /** + * Retorna o valor do atributo codigo + * + * @return String + */ + public String getCodigo() { + + return codigo; + } + + /** + * Define o valor do atributo codigo. + * + * @param codigo + */ + public void setCodigo(String codigo) { + + this.codigo = codigo; + } + + /** + * Retorna o valor do atributo valorTotalNota + * + * @return BigDecimal + */ + public BigDecimal getValorTotalNota() { + + return valorTotalNota; + } + + /** + * Define o valor do atributo valorTotalNota. + * + * @param valorTotalNota + */ + public void setValorTotalNota(BigDecimal valorTotalNota) { + + this.valorTotalNota = valorTotalNota; + } + + /** + * Retorna o valor do atributo dominioTipoEntrada + * + * @return Dominio + */ + public Dominio getDominioTipoEntrada() { + + return dominioTipoEntrada; + } + + /** + * Define o valor do atributo dominioTipoEntrada. + * + * @param dominioTipoEntrada + */ + public void setDominioTipoEntrada(Dominio dominioTipoEntrada) { + + this.dominioTipoEntrada = dominioTipoEntrada; + } + + /** + * Retorna o valor do atributo fornecedor + * + * @return Parceiro + */ + public Parceiro getFornecedor() { + + return fornecedor; + } + + /** + * Define o valor do atributo fornecedor. + * + * @param fornecedor + */ + public void setFornecedor(Parceiro fornecedor) { + + this.fornecedor = fornecedor; + } + + /** + * Retorna o valor do atributo dominioTipoRecebimento + * + * @return Dominio + */ + public Dominio getDominioTipoRecebimento() { + + return dominioTipoRecebimento; + } + + /** + * Define o valor do atributo dominioTipoRecebimento. + * + * @param dominioTipoRecebimento + */ + public void setDominioTipoRecebimento(Dominio dominioTipoRecebimento) { + + this.dominioTipoRecebimento = dominioTipoRecebimento; + } + + /** + * Retorna o valor do atributo dataReferencia + * + * @return Calendar + */ + public Calendar getDataReferencia() { + + return dataReferencia; + } + + /** + * Retorna o valor do atributo codigoAsi + * + * @return String + */ + public String getCodigoAsi() { + + return codigoAsi; + } + + /** + * Define o valor do atributo codigoAsi. + * + * @param codigoAsi + */ + public void setCodigoAsi(String codigoAsi) { + + this.codigoAsi = codigoAsi; + } + + /** + * Define o valor do atributo dataReferencia. + * + * @param dataReferencia + */ + public void setDataReferencia(Calendar dataReferencia) { + + this.dataReferencia = dataReferencia; + } + + /** + * Define o valor do atributo isEntradaConcluida. + * + * @param isEntradaConcluida + */ + public void setIsEntradaConcluida(Boolean isEntradaConcluida) { + + this.isEntradaConcluida = isEntradaConcluida; + } + + /** + * Retorna o valor do atributo isEntradaConcluida + * + * @return IsEntradaConcluida + */ + public Boolean getIsEntradaConcluida() { + + return isEntradaConcluida; + } + + /** + * Define o valor do atributo isContabilizada. + * + * @param isContabilizada + */ + public void setIsContabilizada(Boolean isContabilizada) { + + this.isContabilizada = isContabilizada; + } + + /** + * Retorna o valor do atributo isContabilizada + * + * @return IsContabilizada + */ + public Boolean getIsContabilizada() { + + return isContabilizada; + } + + /** + * {@inheritDoc} + */ + @Override + public EntradaAlmoxarifado clone() { + + try { + + return (EntradaAlmoxarifado) super.clone(); + + } catch (CloneNotSupportedException ex) { + + return this; + } + } + + /** * Retorna o valor do atributo almoxarifado * * @return EstruturaOrganizacional diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoDocumento.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoDocumento.java new file mode 100644 index 0000000..8501c6e --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoDocumento.java @@ -0,0 +1,87 @@ +package br.com.centralit.api.model; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.ManyToOne; + +import org.hibernate.envers.Audited; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +/** + * + *

+ * + *

Company: Central IT - Governança Corporativa -

+ * + *

Title:

+ * + *

Description:

+ * + *

Iniciativa(s): NUMERO_INICIATIVA

+ * + *

Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO

+ * + * @since 27/04/2016 - 17:31:20 + * + * @version 1.0.0 + * + * @author geovane.filho + * + */ +@Audited +@Entity +@JsonIgnoreProperties({ "uploadsDocumento", "$uuid", "$checked", "$index", "size", "name", "$error" }) +public class EntradaAlmoxarifadoDocumento extends Documento { + + /** Atributo serialVersionUID. */ + private static final long serialVersionUID = 4810063162923776584L; + + /** Atributo entrada. */ + @ManyToOne(fetch = FetchType.LAZY, optional = true) + private EntradaAlmoxarifado entrada; + + @ManyToOne(fetch = FetchType.LAZY, optional = true) + private EntradaAlmoxarifado entradaInativo; + + /** + * Retorna o valor do atributo entrada + * + * @return Entrada + */ + public EntradaAlmoxarifado getEntrada() { + + return entrada; + } + + /** + * Define o valor do atributo entrada. + * + * @param entrada + */ + public void setEntrada(EntradaAlmoxarifado entrada) { + + this.entrada = entrada; + } + + /** + * Retorna o valor do atributo entradaInativo + * + * @return Entrada + */ + public EntradaAlmoxarifado getEntradaInativo() { + + return entradaInativo; + } + + /** + * Define o valor do atributo entradaInativo. + * + * @param entradaInativo + */ + public void setEntradaInativo(EntradaAlmoxarifado entradaInativo) { + + this.entradaInativo = entradaInativo; + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoObservacao.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoObservacao.java new file mode 100644 index 0000000..45f00c6 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoObservacao.java @@ -0,0 +1,58 @@ +package br.com.centralit.api.model; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.ManyToOne; + +/** + * + *

+ * + *

Company: Central IT - Governança Corporativa -

+ * + *

Title:

+ * + *

Description:

+ * + *

Iniciativa(s): NUMERO_INICIATIVA

+ * + *

Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO

+ * + * @since 27/04/2016 - 17:31:26 + * + * @version 1.0.0 + * + * @author geovane.filho + * + */ +@Entity +public class EntradaAlmoxarifadoObservacao extends Observacao { + + /** Atributo serialVersionUID. */ + private static final long serialVersionUID = 78579413846779181L; + + /** Atributo entrada. */ + @ManyToOne(fetch = FetchType.LAZY, optional = false) + private EntradaAlmoxarifado entrada; + + /** + * Retorna o valor do atributo entrada + * + * @return Entrada + */ + public EntradaAlmoxarifado getEntrada() { + + return entrada; + } + + /** + * Define o valor do atributo entrada. + * + * @param entrada + */ + public void setEntrada(EntradaAlmoxarifado entrada) { + + this.entrada = entrada; + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java index 5472712..4be7e4f 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java @@ -12,9 +12,9 @@ import org.springframework.validation.Validator; import br.com.centralit.api.dao.EntradaAlmoxarifadoDao; import br.com.centralit.api.model.BemAlmoxarifadoCaracteristica; import br.com.centralit.api.model.EntradaAlmoxarifado; +import br.com.centralit.api.model.EntradaAlmoxarifadoDocumento; import br.com.centralit.api.model.EntradaAlmoxarifadoItem; -import br.com.centralit.api.model.EntradaDocumento; -import br.com.centralit.api.model.EntradaObservacao; +import br.com.centralit.api.model.EntradaAlmoxarifadoObservacao; import br.com.centralit.api.model.Fornecedor; import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; import br.com.centralit.api.service.ContaContabilMovimentoService; @@ -198,7 +198,7 @@ public class EntradaAlmoxarifadoServiceImpl extends GenericServiceImpl listaValoresDocumento = new HashMap(); if(!UtilColecao.isVazio(entradaAlmoxarifado.getDocumentos())){ - for (EntradaDocumento documento : entradaAlmoxarifado.getDocumentos()) { + for (EntradaAlmoxarifadoDocumento documento : entradaAlmoxarifado.getDocumentos()) { if(documento.getDominioTipoDocumento().getChave().equalsIgnoreCase(Dominio.TIPO_DOCUMENTO)){ if(documento.getDominioTipoDocumento().getCodigo().longValue() == Dominio.CODIGO_DOCUMENTO_EMPENHO){ listaValoresDocumento.put("empenho", documento.getNumero()); diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java index 04dae7a..51aa389 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java @@ -156,7 +156,7 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl