diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127114735.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127114735.java new file mode 100644 index 0000000000..7af816e14e --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251127114735.java @@ -0,0 +1,90 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.IntegryCustomer; +import it.integry.ems.migration._base.MigrationModelInterface; +import it.integry.ems_model.utility.dto.IndexTableDTO; +import it.integry.ems_model.utility.dto.PkTableDTO; + +import java.util.Arrays; + +public class Migration_20251127114735 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + executeStatement( + "exec DropForeignKey 'mtb_aart', 'mtb_marchio_linea'", + "exec DropForeignKey 'mtb_aart', 'mtb_marchio_slinea'", + "exec DropForeignKey 'mtb_aart', 'mtb_marchio_sslinea'", + "exec DropForeignKey 'mtb_marchio_sslinea', 'mtb_marchio_slinea'", + "exec DropForeignKey 'mtb_marchio_slinea', 'mtb_marchio_linea'", + "exec DropForeignKey 'mtb_marchio_linea', 'mtb_aart_marchio'", + "exec DropPrimaryKey 'mtb_marchio_linea'", + "exec DropPrimaryKey 'mtb_marchio_slinea'", + "exec DropPrimaryKey 'mtb_marchio_sslinea'", + "alter table mtb_marchio_linea drop column id_marchio", + "alter table mtb_marchio_slinea drop column cod_linea", + "alter table mtb_marchio_sslinea drop column cod_slinea", + "exec sp_rename 'mtb_marchio_linea', 'mtb_aart_linea'", + "exec sp_rename 'mtb_marchio_slinea', 'mtb_aart_slinea'", + "exec sp_rename 'mtb_marchio_sslinea', 'mtb_aart_sslinea'" + ); + + PkTableDTO pkTableDTO = new PkTableDTO() + .setTableName("mtb_aart_linea") + .setColumns(Arrays.asList( + new PkTableDTO.Column("cod_linea") + )); + createPrimaryKey(pkTableDTO); + + pkTableDTO = new PkTableDTO() + .setTableName("mtb_aart_slinea") + .setColumns(Arrays.asList( + new PkTableDTO.Column("cod_slinea") + )); + createPrimaryKey(pkTableDTO); + + + pkTableDTO = new PkTableDTO() + .setTableName("mtb_aart_sslinea") + .setColumns(Arrays.asList( + new PkTableDTO.Column("cod_sslinea") + )); + createPrimaryKey(pkTableDTO); + + executeStatement( + "ALTER TABLE mtb_aart ADD CONSTRAINT fk_mtb_aart_mtb_aart_linea " + + "FOREIGN KEY (cod_linea) REFERENCES mtb_aart_linea(cod_linea);", + "ALTER TABLE mtb_aart ADD CONSTRAINT fk_mtb_aart_mtb_aart_slinea " + + "FOREIGN KEY (cod_slinea) REFERENCES mtb_aart_slinea(cod_slinea);", + "ALTER TABLE mtb_aart ADD CONSTRAINT fk_mtb_aart_mtb_aart_sslinea " + + "FOREIGN KEY (cod_sslinea) REFERENCES mtb_aart_sslinea(cod_sslinea);"); + + dropIndex("mtb_aart_marchio", "marchio"); + + + executeStatement( + "insert into mtb_aart_marchio\n" + + "select distinct marchio\n" + + "from mtb_aart\n" + + "where marchio is not null\n" + + "except\n" + + "select marchio\n" + + "from mtb_aart_marchio", + "exec DropForeignKey 'mtb_aart', 'mtb_aart_marchio' ", + "alter table mtb_aart drop column id_marchio ", + "exec DropPrimaryKey 'mtb_aart_marchio' ", + "alter table mtb_aart_marchio drop column id ", + "alter table mtb_aart_marchio add constraint pk_mtb_aart_marchio primary key (marchio) ", + "ALTER TABLE mtb_aart ADD CONSTRAINT fk_mtb_aart_mtb_aart_marchio FOREIGN KEY (marchio) REFERENCES mtb_aart_marchio(marchio) "); + + + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/CommonRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/CommonRules.java index 964fd1e7e3..a830b63e4b 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/CommonRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/CommonRules.java @@ -1044,7 +1044,7 @@ public class CommonRules extends QueryRules { Boolean existMarchio = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); MtbAartMarchio mtbAartMarchio = null; - if (existMarchio) { + if (!existMarchio) { mtbAartMarchio = new MtbAartMarchio(); mtbAartMarchio.setMarchio(entity.getMarchio()); mtbAartMarchio.setOperation(OperationType.INSERT); diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAart.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAart.java index c4bd781576..156339bb8a 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAart.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAart.java @@ -310,9 +310,6 @@ public class MtbAart extends EntityBase implements EquatableEntityInterface mtbMarchioLinea = new ArrayList<>(); - - @EntityChild - private List mtbMarchioSlinea = new ArrayList<>(); - - @EntityChild - private List mtbMarchioSslinea; - - { - mtbMarchioSslinea = new ArrayList<>(); - } - + public MtbAartMarchio() { super(logger); } - - public Long getId() { - return id; - } - - public MtbAartMarchio setId(Long id) { - this.id = id; - return this; - } - + public String getMarchio() { return marchio; } @@ -68,43 +41,6 @@ public class MtbAartMarchio extends EntityBase implements EquatableEntityInterfa return this; } - public List getMtbMarchioLinea() { - return mtbMarchioLinea; - } - - public MtbAartMarchio setMtbMarchioLinea(List mtbMarchioLinea) { - this.mtbMarchioLinea = mtbMarchioLinea; - return this; - } - - public List getMtbMarchioSlinea() { - return mtbMarchioSlinea; - } - - public MtbAartMarchio setMtbMarchioSlinea(List mtbMarchioSlinea) { - this.mtbMarchioSlinea = mtbMarchioSlinea; - return this; - } - - public List getMtbMarchioSslinea() { - return mtbMarchioSslinea; - } - - public MtbAartMarchio setMtbMarchioSslinea(List mtbMarchioSslinea) { - this.mtbMarchioSslinea = mtbMarchioSslinea; - return this; - } - - @Override - protected void deleteChilds() throws Exception { - MtbMarchioSslinea mtbMarchioSslinea = new MtbMarchioSslinea(); - mtbMarchioSslinea.deleteAllEntities(connection, this); - MtbMarchioSlinea mtbMarchioSlinea = new MtbMarchioSlinea(); - mtbMarchioSlinea.deleteAllEntities(connection, this); - MtbMarchioLinea mtbMarchioLinea = new MtbMarchioLinea(); - mtbMarchioLinea.deleteAllEntities(connection, this); - } - @Override public boolean equalsKey(MtbAartMarchio other) { if (this == other) @@ -113,12 +49,12 @@ public class MtbAartMarchio extends EntityBase implements EquatableEntityInterfa if(hashCodeKey() != other.hashCodeKey()) return false; - return Objects.equals(getId(), other.getId()); + return Objects.equals(getMarchio(), other.getMarchio()); } @Override public int hashCodeKey() { - return Objects.hashCode(getId()); + return Objects.hashCode(getMarchio()); } @Override @@ -126,11 +62,11 @@ public class MtbAartMarchio extends EntityBase implements EquatableEntityInterfa if (this == o) return true; if (!(o instanceof MtbAartMarchio)) return false; MtbAartMarchio mtbAartMarchio = (MtbAartMarchio) o; - return Objects.equals(getId(), mtbAartMarchio.getId()) && Objects.equals(getMarchio(), mtbAartMarchio.getMarchio()); + return Objects.equals(getMarchio(), mtbAartMarchio.getMarchio()) && Objects.equals(getMarchio(), mtbAartMarchio.getMarchio()); } @Override public int hashCode() { - return Objects.hash(getId(), getMarchio()); + return Objects.hash(getMarchio(), getMarchio()); } } diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSlinea.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSlinea.java new file mode 100644 index 0000000000..f6e6ba5870 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems_model/entity/MtbAartSlinea.java @@ -0,0 +1,55 @@ +package it.integry.ems_model.entity; + +import org.apache.logging.log4j.LogManager; +import java.util.List; +import java.util.ArrayList; +import it.integry.ems_model.base.EntityBase; +import it.integry.ems_model.annotation.Master; +import org.kie.api.definition.type.PropertyReactive; +import it.integry.ems_model.annotation.Table; +import com.fasterxml.jackson.annotation.JsonTypeName; +import org.apache.logging.log4j.Logger; +import it.integry.ems_model.annotation.PK; +import it.integry.ems_model.annotation.SqlField; + +@Master() +@PropertyReactive() +@Table(value = MtbAartSlinea.ENTITY) +@JsonTypeName(value = MtbAartSlinea.ENTITY) +public class MtbAartSlinea extends EntityBase { + + public final static String ENTITY = "mtb_aart_slinea"; + + private final static Long serialVersionUID = 1L; + + private final static Logger logger = LogManager.getLogger(); + + public MtbAartSlinea() { + super(logger); + } + + @PK() + @SqlField(value = "cod_slinea", maxLength = 6, nullable = false) + private String codSlinea; + + @SqlField(value = "descrizione", maxLength = 255, nullable = false) + private String descrizione; + + public String getCodSlinea() { + return codSlinea; + } + + public MtbAartSlinea setCodSlinea(String codSlinea) { + this.codSlinea = codSlinea; + return this; + } + + public String getDescrizione() { + return descrizione; + } + + public MtbAartSlinea setDescrizione(String descrizione) { + this.descrizione = descrizione; + return this; + } +} diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioLinea.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioLinea.java deleted file mode 100644 index 1ef849c31f..0000000000 --- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioLinea.java +++ /dev/null @@ -1,129 +0,0 @@ -package it.integry.ems_model.entity; - -import com.fasterxml.jackson.annotation.JsonTypeName; -import it.integry.ems_model.annotation.*; -import it.integry.ems_model.base.EntityBase; -import it.integry.ems_model.base.EquatableEntityInterface; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.kie.api.definition.type.PropertyReactive; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - - -@PropertyReactive() -@Table(value = MtbMarchioLinea.ENTITY) -@JsonTypeName(value = MtbMarchioLinea.ENTITY) -public class MtbMarchioLinea extends EntityBase implements EquatableEntityInterface { - - - public final static String ENTITY = "mtb_marchio_linea"; - - private final static Long serialVersionUID = 1L; - - private final static Logger logger = LogManager.getLogger(); - - public MtbMarchioLinea() { - super(logger); - } - - @SqlField(value = "id_marchio", nullable = false) - @FK(tableName = MtbAartMarchio.ENTITY, columnName = "id") - private Long idMarchio; - - @PK() - @SqlField(value = "cod_linea", maxLength = 6, nullable = false) - private String codLinea; - - @SqlField(value = "descrizione", maxLength = 255, nullable = false) - private String descrizione; - - @EntityChild() - private List mtbMarchioSlinea = new ArrayList<>(); - - @EntityChild() - private List mtbMarchioSslinea = new ArrayList<>(); - - public Long getIdMarchio() { - return idMarchio; - } - - public MtbMarchioLinea setIdMarchio(Long idMarchio) { - this.idMarchio = idMarchio; - return this; - } - - public String getCodLinea() { - return codLinea; - } - - public MtbMarchioLinea setCodLinea(String codLinea) { - this.codLinea = codLinea; - return this; - } - - public String getDescrizione() { - return descrizione; - } - - public MtbMarchioLinea setDescrizione(String descrizione) { - this.descrizione = descrizione; - return this; - } - - public List getMtbMarchioSlinea() { - return mtbMarchioSlinea; - } - - public MtbMarchioLinea setMtbMarchioSlinea(List mtbMarchioSlinea) { - this.mtbMarchioSlinea = mtbMarchioSlinea; - return this; - } - - public List getMtbMarchioSslinea() { - return mtbMarchioSslinea; - } - - public MtbMarchioLinea setMtbMarchioSslinea(List mtbMarchioSslinea) { - this.mtbMarchioSslinea = mtbMarchioSslinea; - return this; - } - - protected void deleteChilds() throws Exception { - MtbMarchioSslinea mtbMarchioSslinea = new MtbMarchioSslinea(); - mtbMarchioSslinea.deleteAllEntities(connection, this); - MtbMarchioSlinea mtbMarchioSlinea = new MtbMarchioSlinea(); - mtbMarchioSlinea.deleteAllEntities(connection, this); - } - - @Override - public boolean equalsKey(MtbMarchioLinea other) { - if (this == other) - return true; - - if(hashCodeKey() != other.hashCodeKey()) - return false; - - return Objects.equals(getIdMarchio(), other.getIdMarchio()) && Objects.equals(getCodLinea(), other.getCodLinea()); - } - - @Override - public int hashCodeKey() { - return Objects.hash(getIdMarchio(), getCodLinea()); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof MtbMarchioLinea)) return false; - MtbMarchioLinea mtbMarchioLinea = (MtbMarchioLinea) o; - return Objects.equals(getIdMarchio(), mtbMarchioLinea.getIdMarchio()) && Objects.equals(getCodLinea(), mtbMarchioLinea.getCodLinea()) && Objects.equals(getDescrizione(), mtbMarchioLinea.getDescrizione()); - } - - @Override - public int hashCode() { - return Objects.hash(getIdMarchio(), getCodLinea(), getDescrizione()); - } -} diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioSlinea.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioSlinea.java deleted file mode 100644 index 5ace139708..0000000000 --- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioSlinea.java +++ /dev/null @@ -1,117 +0,0 @@ -package it.integry.ems_model.entity; - -import com.fasterxml.jackson.annotation.JsonTypeName; -import it.integry.ems_model.annotation.*; -import it.integry.ems_model.base.EntityBase; -import it.integry.ems_model.base.EquatableEntityInterface; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.kie.api.definition.type.PropertyReactive; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -@PropertyReactive() -@Table(value = MtbMarchioSlinea.ENTITY) -@JsonTypeName(value = MtbMarchioSlinea.ENTITY) -public class MtbMarchioSlinea extends EntityBase implements EquatableEntityInterface { - - public final static String ENTITY = "mtb_marchio_slinea"; - - private final static Long serialVersionUID = 1L; - - private final static Logger logger = LogManager.getLogger(); - - public MtbMarchioSlinea() { - super(logger); - } - - @SqlField(value = "cod_linea", maxLength = 6, nullable = false) - @FK(tableName = MtbMarchioLinea.ENTITY, columnName = "cod_linea") - private String codLinea; - - @PK() - @SqlField(value = "cod_slinea", maxLength = 6, nullable = false) - private String codSlinea; - - @SqlField(value = "descrizione", maxLength = 255, nullable = false) - private String descrizione; - - @EntityChild - private List mtbMarchioSslinea; - - { - mtbMarchioSslinea = new ArrayList<>(); - } - - public String getCodLinea() { - return codLinea; - } - - public MtbMarchioSlinea setCodLinea(String codLinea) { - this.codLinea = codLinea; - return this; - } - - public String getCodSlinea() { - return codSlinea; - } - - public MtbMarchioSlinea setCodSlinea(String codSlinea) { - this.codSlinea = codSlinea; - return this; - } - - public String getDescrizione() { - return descrizione; - } - - public MtbMarchioSlinea setDescrizione(String descrizione) { - this.descrizione = descrizione; - return this; - } - - public List getMtbMarchioSslinea() { - return mtbMarchioSslinea; - } - - public MtbMarchioSlinea setMtbMarchioSslinea(List mtbMarchioSslinea) { - this.mtbMarchioSslinea = mtbMarchioSslinea; - return this; - } - - protected void deleteChilds() throws Exception { - MtbMarchioSslinea mtbMarchioSslinea = new MtbMarchioSslinea(); - mtbMarchioSslinea.deleteAllEntities(connection, this); - } - - @Override - public boolean equalsKey(MtbMarchioSlinea other) { - if (this == other) - return true; - - if(hashCodeKey() != other.hashCodeKey()) - return false; - - return Objects.equals(getCodLinea(), other.getCodLinea()) && Objects.equals(getCodSlinea(), other.getCodSlinea()); - } - - @Override - public int hashCodeKey() { - return Objects.hash(getCodLinea(), getCodSlinea()); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof MtbMarchioSlinea)) return false; - MtbMarchioSlinea mtbMarchioSlinea = (MtbMarchioSlinea) o; - return Objects.equals(getCodLinea(), mtbMarchioSlinea.getCodLinea()) && Objects.equals(getCodSlinea(), mtbMarchioSlinea.getCodSlinea()) && Objects.equals(getDescrizione(), mtbMarchioSlinea.getDescrizione()); - } - - @Override - public int hashCode() { - return Objects.hash(getCodLinea(), getCodSlinea(), getDescrizione()); - } -} diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioSslinea.java b/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioSslinea.java deleted file mode 100644 index 0f80574132..0000000000 --- a/ems-core/src/main/java/it/integry/ems_model/entity/MtbMarchioSslinea.java +++ /dev/null @@ -1,97 +0,0 @@ -package it.integry.ems_model.entity; - -import com.fasterxml.jackson.annotation.JsonTypeName; -import it.integry.ems_model.annotation.FK; -import it.integry.ems_model.annotation.PK; -import it.integry.ems_model.annotation.SqlField; -import it.integry.ems_model.annotation.Table; -import it.integry.ems_model.base.EntityBase; -import it.integry.ems_model.base.EquatableEntityInterface; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.kie.api.definition.type.PropertyReactive; - -import java.util.Objects; - -@PropertyReactive() -@Table(value = MtbMarchioSslinea.ENTITY) -@JsonTypeName(value = MtbMarchioSslinea.ENTITY) -public class MtbMarchioSslinea extends EntityBase implements EquatableEntityInterface { - - public final static String ENTITY = "mtb_marchio_sslinea"; - - private final static Long serialVersionUID = 1L; - - private final static Logger logger = LogManager.getLogger(); - - public MtbMarchioSslinea() { - super(logger); - } - - @SqlField(value = "cod_slinea", maxLength = 6, nullable = false) - @FK(tableName = MtbMarchioSlinea.ENTITY, columnName = "cod_slinea") - private String codSlinea; - - @PK() - @SqlField(value = "cod_sslinea", maxLength = 6, nullable = false) - private String codSslinea; - - @SqlField(value = "descrizione", maxLength = 255, nullable = false) - private String descrizione; - - public String getCodSlinea() { - return codSlinea; - } - - public MtbMarchioSslinea setCodSlinea(String codSlinea) { - this.codSlinea = codSlinea; - return this; - } - - public String getCodSslinea() { - return codSslinea; - } - - public MtbMarchioSslinea setCodSslinea(String codSslinea) { - this.codSslinea = codSslinea; - return this; - } - - public String getDescrizione() { - return descrizione; - } - - public MtbMarchioSslinea setDescrizione(String descrizione) { - this.descrizione = descrizione; - return this; - } - - @Override - public boolean equalsKey(MtbMarchioSslinea other) { - if (this == other) - return true; - - if(hashCodeKey() != other.hashCodeKey()) - return false; - - return Objects.equals(getCodSlinea(), other.getCodSlinea()) && Objects.equals(getCodSslinea(), other.getCodSslinea()); - } - - @Override - public int hashCodeKey() { - return Objects.hash(getCodSlinea(), getCodSslinea()); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof MtbMarchioSslinea)) return false; - MtbMarchioSslinea mtbMarchioSslinea = (MtbMarchioSslinea) o; - return Objects.equals(getCodSlinea(), mtbMarchioSslinea.getCodSlinea()) && Objects.equals(getCodSslinea(), mtbMarchioSslinea.getCodSslinea()) && Objects.equals(getDescrizione(), mtbMarchioSslinea.getDescrizione()); - } - - @Override - public int hashCode() { - return Objects.hash(getCodSlinea(), getCodSslinea(), getDescrizione()); - } -} diff --git a/ems-core/src/main/resources/rules/commons.drl b/ems-core/src/main/resources/rules/commons.drl index e1ca02f9b2..8e2792b571 100644 --- a/ems-core/src/main/resources/rules/commons.drl +++ b/ems-core/src/main/resources/rules/commons.drl @@ -127,19 +127,6 @@ then } end -rule "completeIdMarchio" -no-loop -when - eval(completeRulesEnabled) - $entity : MtbAart(marchio != null && idMarchio == null && operation != OperationType.DELETE) -then - String sql = "SELECT id FROM mtb_aart_marchio WHERE marchio = '" + $entity.getMarchio() + "'"; - Long idMarchio = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); - modify($entity) { - setIdMarchio(idMarchio) - } -end - rule "completeInsEqui" no-loop when