Finish Feature-revisione_ordiniWeb
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-10-20 17:18:26 +02:00
15 changed files with 1530 additions and 1811 deletions

View File

@@ -0,0 +1,23 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250827114912 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (isCustomerDb(IntegryCustomerDB.Ime_ImeTe) || isCustomerDb(IntegryCustomerDB.Materica_ImeBa)) {
updateSetupValue("W_PORDI_RC", "SETUP", "CHECK_DEP_TERZISTA", "S");
updateSetupValue("DTB_ORDT", "SETUP", "DISABLE_TRIGGER_ORDL", "S");
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,23 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250827151739 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement(
"exec dropPrimaryKey 'dtb_ord_log_import'",
"alter table dtb_ord_log_import add id bigint identity",
"alter table dtb_ord_log_import add constraint pk_dtb_ord_log_import primary key (id)");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -5,6 +5,7 @@ import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.base.EntityInterface;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*;
@@ -365,6 +366,7 @@ public class DocOrdRules extends QueryRules {
}
if (isOrdine) {
sql = "SELECT gtb_spes.descrizione, "
+ " CAST(0 AS NUMERIC(20, 5)) as qta, "
@@ -376,6 +378,7 @@ public class DocOrdRules extends QueryRules {
+ " gtb_divi "
+ " WHERE gtb_divi.cod_divi = " + UtilityDB.valueToString(codDivi) + " and "
+ " gtb_spes.cod_spes = " + UtilityDB.valueToString(codSpes);
} else {
sql = "SELECT gtb_spes.descrizione, "
+ " CAST(0 AS NUMERIC(20, 5)) as qta, "
@@ -417,6 +420,8 @@ public class DocOrdRules extends QueryRules {
} else if (columnName.equals("untMis")) {
columnValue = untMisServ;
}
} else if (spese instanceof DtbOrds && ((DtbOrds) spese).getValUnt() != null && columnName.equals("importo")) {
valueEntity = ((DtbOrds) spese).getValUnt().multiply(((DtbOrds) spese).getQta());
}
if (valueEntity == null) {
@@ -972,12 +977,12 @@ public class DocOrdRules extends QueryRules {
.setGeneraOrdLavDaProd(false);
dtbOrdtProd.setOperation(OperationType.NO_OP);
/*
/*
BigDecimal valUnt = new BigDecimal(0);
if (dtbOrdt.getQtaProd().compareTo(BigDecimal.ZERO) > 0) {
valUnt = dtbOrdt.getTotImponib().divide(dtbOrdt.getQtaProd(), 5, BigDecimal.ROUND_HALF_UP);
}*/
}
*/
DtbOrdr dtbOrdrProd =
new DtbOrdr().setRigaOrd(dtbOrdt.getRigaOrdRif());
if (dtbOrdt.getOperation() == OperationType.DELETE) {
@@ -993,7 +998,7 @@ public class DocOrdRules extends QueryRules {
.setRapConv(dtbOrdt.getRapConvProd())
.setQtaOrd(dtbOrdt.getQtaProd())
.setQtaEvasa(dtbOrdt.getQtaEvasaProd())
/*.setValUnt(valUnt)*/
//.setValUnt(valUnt)
.setSconto5(dtbOrdt.getSconto1())
.setSconto6(dtbOrdt.getSconto2())
.setSconto7(dtbOrdt.getSconto3())

View File

@@ -3,10 +3,12 @@ package it.integry.ems.rules.completing;
import it.integry.common.var.CommonConstants;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.base.EntityInterface;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.entity.common.DtbDocOrdT;
import it.integry.ems_model.entity.common.DtbOrdCommonR;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.ApplicationName;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
@@ -527,4 +529,47 @@ public class OrderRules extends QueryRules {
}
}
}
public static void completeImportoRigaOrdProd(Connection connection, DtbOrdt dtbOrdt) throws Exception {
SetupGest setup = new SetupGest();
boolean disableTriggerOrdl = setup.getSetupBoolean(connection, "DTB_ORDT", "SETUP", "DISABLE_TRIGGER_ORDL");
if (!disableTriggerOrdl) return;
String sql = Query.format(
"SELECT importo_riga FROM dtb_ordr WHERE gestione = %s AND data_ord = %s AND num_ord = %s AND riga_ord = %s ",
dtbOrdt.getGestioneRif(),
dtbOrdt.getDataOrdRif(),
dtbOrdt.getNumOrdRif(),
dtbOrdt.getRigaOrdRif()
);
BigDecimal importoRigaOrdP = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
BigDecimal importoSpese = dtbOrdt.getDtbOrds().stream().map(x-> x.getImporto()).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal valUnt = new BigDecimal(0);
if (dtbOrdt.getQtaProd().compareTo(BigDecimal.ZERO) > 0) {
valUnt = importoSpese.divide(dtbOrdt.getQtaProd().multiply(dtbOrdt.getRapConvProd()), 5, BigDecimal.ROUND_HALF_UP);
}
if (UtilityBigDecimal.equalsTo(importoSpese, importoRigaOrdP)) return;
DtbOrdt dtbOrdtProd =
new DtbOrdt()
.setGestione(dtbOrdt.getGestioneRif())
.setDataOrd(dtbOrdt.getDataOrdRif())
.setNumOrd(dtbOrdt.getNumOrdRif())
.setGeneraOrdLavDaProd(false);
dtbOrdtProd.setOperation(OperationType.NO_OP);
DtbOrdr dtbOrdrProd =
new DtbOrdr()
.setRigaOrd(dtbOrdt.getRigaOrdRif())
.setValUnt(valUnt)
.setImportoRiga(importoSpese);
dtbOrdrProd.setOperation(OperationType.UPDATE);
dtbOrdtProd.addDtbOrdr(dtbOrdrProd);
dtbOrdt.setDtbOrdtProd(dtbOrdtProd);
}
}

View File

@@ -1447,7 +1447,6 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
insertSqlTrace.append(")");
logger.trace("Query tracing: {}", insertSqlTrace);
long insertedRowCount = insertBulkPs.executeLargeUpdate();
if (insertedRowCount > 0 && containsIdentity) {
ResultSet rs = insertBulkPs.getGeneratedKeys();

View File

@@ -8,10 +8,7 @@ import it.integry.ems.rules.completing.OrderRules;
import it.integry.ems.rules.completing.dto.DatiPartitaMagDTO;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.business_logic.dto.ActivityCicloProdDTO;
import it.integry.ems_model.business_logic.dto.CommessaDTO;
import it.integry.ems_model.business_logic.dto.ExplodeDistDTO;
import it.integry.ems_model.business_logic.dto.OrdProdSetupDTO;
import it.integry.ems_model.business_logic.dto.*;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*;
@@ -220,7 +217,7 @@ public class GeneraOrdLav {
qtaProdDist = UtilityHashMap.getValueIfExists(datiDistinta, "qta_prod");
}
if ( row.getDistinta() != null && !row.getDistinta().isEmpty()) {
if (row.getDistinta() != null && !row.getDistinta().isEmpty()) {
datiDistinta.put("qta_prod", row.getQta());
datiDistinta.put("rap_conv_prod", row.getRapConv());
}
@@ -333,9 +330,16 @@ public class GeneraOrdLav {
.setColliPedana(row.getColliPedana())
.setCodTcolUl(row.getCodTcolUl())
.setCodTcolUi(row.getCodTcolUi())
.setFlagEvasoProd(flagEvasoProd!=null?flagEvasoProd.getValue().toString():null)
.setFlagEvasoProd(flagEvasoProd != null ? flagEvasoProd.getValue().toString() : null)
.setGeneraOrdLavDaProd(dtbOrdt.isGeneraOrdLavDaProd());
if (row.getFlagSospesoOrdl() !=null) {
ordT.setFlagSospeso(row.getFlagSospesoOrdl());
}
if (row.getRifOrdOrdl() !=null) {
ordT.setRifOrd(row.getRifOrdOrdl());
}
String flagAnnulla = "N";
if (row.getFlagEvaso() == FlagEvaso.ANNULLATO) {
flagAnnulla = "S";
@@ -869,7 +873,7 @@ public class GeneraOrdLav {
BigDecimal rapporto = qtaProd.divide(qtaProdDist, EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
List<ExplodeDistDTO> artDist = new ArrayList<>();
List<JtbDistMate> jtbDistMates;
List<DatiMaterialiDTO> jtbDistMates;
String sql;
Integer durataFasiPrec = 0;
if (((DtbOrdr) dtbOrdr).getDistinta() == null) {
@@ -889,7 +893,7 @@ public class GeneraOrdLav {
"WHERE is_foglia = 1\n" +
"ORDER BY item_id", codProd);
jtbDistMates = UtilityDB.executeSimpleQueryDTO(conn, sql, JtbDistMate.class);
jtbDistMates = UtilityDB.executeSimpleQueryDTO(conn, sql, DatiMaterialiDTO.class);
} else {
jtbDistMates = ((DtbOrdr) dtbOrdr).getDistinta();
@@ -904,13 +908,13 @@ public class GeneraOrdLav {
.setDataCons(dataConsDist)
);
} else {
for (JtbDistMate mp : jtbDistMates) {
Integer numFase = mp.getNumFase();
String codProdPri = mp.getCodProdPri();
String descrMate = mp.getDescrizione();
String descrEstesaMate = mp.getDescrizioneEstesa();
BigDecimal qtaMate = mp.getQtaStd();
String untMisMate = mp.getUntMisDist();
for (DatiMaterialiDTO mp : jtbDistMates) {
Integer numFase = mp.getJtbDistMate().getNumFase();
String codProdPri = mp.getJtbDistMate().getCodProdPri();
String descrMate = mp.getJtbDistMate().getDescrizione();
String descrEstesaMate = mp.getJtbDistMate().getDescrizioneEstesa();
BigDecimal qtaMate = mp.getJtbDistMate().getQtaStd();
String untMisMate = mp.getJtbDistMate().getUntMisDist();
BigDecimal qta = qtaMate.multiply(rapporto);
String flagUMDig =
@@ -922,24 +926,27 @@ public class GeneraOrdLav {
qta = qta.setScale(0, RoundingMode.CEILING);
}
if (mp.getCodMart() != null) {
existCodMart(conn, mp.getCodMart());
if (mp.getJtbDistMate().getCodMart() != null) {
existCodMart(conn, mp.getJtbDistMate().getCodMart());
}
if (descrMate == null) descrMate = UtilityString.left(descrEstesaMate, 40);
// Inserimento riga materiale nell'ordine di lavorazione
DtbOrdr ordR =
new DtbOrdr()
.setCodMart(mp.getCodMart())
.setCodMart(mp.getJtbDistMate().getCodMart())
.setCodJcom(ordT.getCodJcom())
.setDescrizione(descrMate)
.setDescrizioneEstesa(descrEstesaMate)
.setQtaOrd(qta)
.setUntOrd(untMisMate)
.setRapConv(mp.getRapConvDist())
.setNumFase(numFase);
.setRapConv(mp.getJtbDistMate().getRapConvDist())
.setNumFase(numFase)
.setValUnt(mp.getValUnt())
.setCodAlis(mp.getCodAlis())
.setCodArtFor(mp.getCodArtForn());
if (visNoteRigaDist) ordR.setNote(mp.getNote());
if (visNoteRigaDist) ordR.setNote(mp.getJtbDistMate().getNote());
// Calcolo data consegna materiali per fase di lavoro
@@ -966,15 +973,15 @@ public class GeneraOrdLav {
sql =
Query.format(
"SELECT cod_jfas FROM jtb_cicl WHERE cod_prod = %s",
mp.getCodProdPri());
mp.getJtbDistMate().getCodProdPri());
String codJfasSL = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
isSameLav = !UtilityString.equalsIgnoreCase(codJfasDist, codJfasSL);
if (!isSameLav) {
artDist.add(new ExplodeDistDTO().setCodProd(mp.getCodProdPri()).setRoot(false).setNumFase(numFase)
artDist.add(new ExplodeDistDTO().setCodProd(mp.getJtbDistMate().getCodProdPri()).setRoot(false).setNumFase(numFase)
.setQtaProd(qta)
.setUntMis(untMisMate)
.setCodJfasRow(codJfasSL)
.setRapConv(mp.getRapConvDist())
.setRapConv(mp.getJtbDistMate().getRapConvDist())
.setDataCons(ordR.getDataCons())
);
}
@@ -1475,8 +1482,8 @@ public class GeneraOrdLav {
List<DtbOrdSteps> dtbOrdSteps = UtilityDB.executeSimpleQueryDTO(conn, sql, DtbOrdSteps.class);
dtbOrdSteps.stream().forEach(x -> {
x.setDataIniz(x.getDataIniz()!=null?UtilityDate.dateAdd(x.getDataIniz(), ggDiff):null);
x.setDataFine(x.getDataFine() != null ?UtilityDate.dateAdd(x.getDataFine(), ggDiff):null);
x.setDataIniz(x.getDataIniz() != null ? UtilityDate.dateAdd(x.getDataIniz(), ggDiff) : null);
x.setDataFine(x.getDataFine() != null ? UtilityDate.dateAdd(x.getDataFine(), ggDiff) : null);
x.setOperation(OperationType.UPDATE);
});
@@ -1544,12 +1551,15 @@ public class GeneraOrdLav {
sql = UtilityDB.addwhereCond(sql, ordT.getPkWhereCond(), true);
List<DtbOrdSteps> dtbOrdSteps = UtilityDB.executeSimpleQueryDTO(conn, sql, DtbOrdSteps.class);
dtbOrdSteps.forEach(x -> {
x.setQtaProd(x.getQtaProd().multiply(moltiplicatore).setScale(2, RoundingMode.HALF_UP));
x.setOperation(OperationType.UPDATE);
});
if (dtbOrdSteps != null) {
ordT.setDtbOrdSteps(dtbOrdSteps);
dtbOrdSteps.forEach(x -> {
x.setQtaProd(x.getQtaProd().multiply(moltiplicatore).setScale(2, RoundingMode.HALF_UP));
x.setOperation(OperationType.UPDATE);
});
ordT.setDtbOrdSteps(dtbOrdSteps);
}
}
sql = "SELECT * FROM dtb_ords";
@@ -1626,7 +1636,7 @@ public class GeneraOrdLav {
private static HashMap<String, Object> checkOrdLav(Connection conn, boolean checkLockProd, String gestione, Date dataOrd, Integer numOrd, Integer rigaOrd) throws Exception {
// Controllo se l'ordine di lavorazione è stato avviato
String sql = "select distinct " +
" CAST(case when dtb_ordt.flag_evaso_prod = 'E' or dtb_ordt.flag_evaso_forzato = 'S' or ordSteps.prodAvviata <> 0 then 1 else 0 end as bit) as flag_lock, " +
" CAST(case when dtb_ordt.flag_evaso_prod = 'E' or dtb_ordt.flag_evaso_forzato = 'S' or iSnULL(ordSteps.prodAvviata,0) <> 0 then 1 else 0 end as bit) as flag_lock, " +
" dtb_ordt.data_ord, " +
" dtb_ordt.num_ord " +
"from (select gestione, data_ord, num_ord " +
@@ -1634,11 +1644,14 @@ public class GeneraOrdLav {
" where dtb_ordt.gestione_rif = " + UtilityDB.valueToString(gestione) + " AND " +
" dtb_ordt.data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
" dtb_ordt.num_ord_rif = " + UtilityDB.valueToString(numOrd) + " AND " +
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd) + ") ordlav, " +
" dtb_ordt left outer join dtb_ordr on dtb_ordr.gestione = dtb_ordt.gestione " +
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd) + ") ordlav " +
" INNER JOIN dtb_ordt on ordLav.gestione = dtb_ordt.gestione and \n" +
" ordLav.data_ord = dtb_ordt.data_ord and \n" +
" ordLav.num_ord = dtb_ordt.num_ord " +
" left outer join dtb_ordr on dtb_ordr.gestione = dtb_ordt.gestione " +
" AND dtb_ordr.data_ord = dtb_ordt.data_ord " +
" AND dtb_ordr.num_ord = dtb_ordt.num_ord," +
" ( select dtb_ordt.gestione, " +
" AND dtb_ordr.num_ord = dtb_ordt.num_ord " +
" LEFT OUTER JOIN ( select dtb_ordt.gestione, " +
" dtb_ordt.data_ord, " +
" dtb_ordt.num_ord, " +
" sum(case when id_step <> 0 then 1 else 0 end) as prodAvviata " +
@@ -1653,11 +1666,7 @@ public class GeneraOrdLav {
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd) + " " +
" group by dtb_ordt.gestione, " +
" dtb_ordt.data_ord, " +
" dtb_ordt.num_ord)ordSteps " +
"where ordLav.gestione = dtb_ordt.gestione and " +
" ordLav.data_ord = dtb_ordt.data_ord and " +
" ordLav.num_ord = dtb_ordt.num_ord and " +
" dtb_ordt.gestione = ordSteps.gestione and " +
" dtb_ordt.num_ord)ordSteps on dtb_ordt.gestione = ordSteps.gestione and " +
" dtb_ordt.data_ord = ordSteps.data_ord and " +
" dtb_ordt.num_ord = ordSteps.num_ord";
@@ -1669,20 +1678,21 @@ public class GeneraOrdLav {
if (flagLock && checkLockProd) {
throw new Exception("La produzione num. " + numOrdLav + " del " + (new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataOrdLav)) + " è stata già avviata, non è pertanto possibile apportare modifiche");
}
}
// Acquisizione fase da testa ordine di lavorazione
sql = " select cod_jfas, activity_id, cod_jflav from dtb_ordt "
+ "WHERE gestione_rif = " + UtilityDB.valueToString(gestione) + " AND "
+ " data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND "
+ " num_ord_rif = " + UtilityDB.valueToString(numOrd.toString()) + " AND "
+ " riga_ord_rif = " + UtilityDB.valueToString(rigaOrd.toString());
HashMap<String, Object> dati = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
if (UtilityHashMap.isPresent(dati)) {
String activityID = UtilityHashMap.getValueIfExists(datiOrdine, "activity_id");
datiOrdine.put("activity_id", activityID);
String codJflavLav = UtilityHashMap.getValueIfExists(datiOrdine, "cod_jflav");
datiOrdine.put("cod_jflav", codJflavLav);
// Acquisizione fase da testa ordine di lavorazione
sql = " select cod_jfas, activity_id, cod_jflav from dtb_ordt "
+ "WHERE gestione_rif = " + UtilityDB.valueToString(gestione) + " AND "
+ " data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND "
+ " num_ord_rif = " + UtilityDB.valueToString(numOrd.toString()) + " AND "
+ " riga_ord_rif = " + UtilityDB.valueToString(rigaOrd.toString());
HashMap<String, Object> dati = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
if (UtilityHashMap.isPresent(dati)) {
String activityID = UtilityHashMap.getValueIfExists(dati, "activity_id");
datiOrdine.put("activity_id", activityID);
String codJflavLav = UtilityHashMap.getValueIfExists(dati, "cod_jflav");
datiOrdine.put("cod_jflav", codJflavLav);
}
}
return datiOrdine;
}

View File

@@ -0,0 +1,51 @@
package it.integry.ems_model.business_logic.dto;
import it.integry.ems_model.annotation.SqlField;
import it.integry.ems_model.entity.JtbDistMate;
import java.math.BigDecimal;
public class DatiMaterialiDTO {
@SqlField
private JtbDistMate jtbDistMate;
private BigDecimal valUnt;
private String codAlis;
private String codArtForn;
public JtbDistMate getJtbDistMate() {
return jtbDistMate;
}
public DatiMaterialiDTO setJtbDistMate(JtbDistMate jtbDistMate) {
this.jtbDistMate = jtbDistMate;
return this;
}
public BigDecimal getValUnt() {
return valUnt;
}
public DatiMaterialiDTO setValUnt(BigDecimal valUnt) {
this.valUnt = valUnt;
return this;
}
public String getCodAlis() {
return codAlis;
}
public DatiMaterialiDTO setCodAlis(String codAlis) {
this.codAlis = codAlis;
return this;
}
public String getCodArtForn() {
return codArtForn;
}
public DatiMaterialiDTO setCodArtForn(String codArtForn) {
this.codArtForn = codArtForn;
return this;
}
}

View File

@@ -1,48 +1,55 @@
package it.integry.ems_model.entity;
import com.fasterxml.jackson.annotation.JsonTypeName;
import it.integry.ems_model.annotation.Master;
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 org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
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 java.util.Date;
import it.integry.ems_model.annotation.SqlField;
import java.math.BigDecimal;
import it.integry.ems_model.annotation.PK;
import it.integry.ems_model.annotation.Identity;
@Master
@PropertyReactive
@Table(DtbOrdLogImport.ENTITY)
@JsonTypeName(DtbOrdLogImport.ENTITY)
@Master()
@PropertyReactive()
@Table(value = DtbOrdLogImport.ENTITY)
@JsonTypeName(value = DtbOrdLogImport.ENTITY)
public class DtbOrdLogImport extends EntityBase {
private static final long serialVersionUID = 1L;
public final static String ENTITY = "dtb_ord_log_import";
private final static Long serialVersionUID = 1L;
private final static Logger logger = LogManager.getLogger();
public static final String ENTITY = "dtb_ord_log_import";
public DtbOrdLogImport() {
super(logger);
}
@PK
@SqlField(value = "data_import", nullable = false)
private LocalDateTime dataImport;
@PK
@SqlField(value = "id_riga", nullable = false)
@SqlField(value = "id_riga", nullable = false, defaultObjectValue = "0")
private Integer idRiga;
@SqlField(value = "gestione", maxLength = 1)
@SqlField(value = "gestione", maxLength = 1, nullable = true)
private String gestione;
@SqlField(value = "data_ord")
private LocalDateTime dataOrd;
@SqlField(value = "data_ord", nullable = true)
private LocalDate dataOrd;
@SqlField(value = "num_ord")
@SqlField(value = "num_ord", nullable = true)
private Integer numOrd;
@SqlField(value = "flag_tipo_ord", maxLength = 1)
@SqlField(value = "flag_tipo_ord", maxLength = 1, nullable = true)
private String flagTipoOrd;
@SqlField(value = "flag_tipo_log", maxLength = 1, nullable = false)
@@ -61,17 +68,18 @@ public class DtbOrdLogImport extends EntityBase {
private BigDecimal totQtaOrd;
@SqlField(value = "tot_qta_omg", nullable = false)
private BigDecimal totQuaOmg;
private BigDecimal totQtaOmg;
@SqlField(value = "tot_qta_resi", nullable = false)
private BigDecimal totQuaResi;
private BigDecimal totQtaResi;
@SqlField(value = "serie", maxLength = 5)
@SqlField(value = "serie", maxLength = 5, nullable = true)
private String serie;
public DtbOrdLogImport() {
super(logger);
}
@PK()
@Identity()
@SqlField(value = "id", nullable = false)
private Long id;
public LocalDateTime getDataImport() {
return dataImport;
@@ -100,11 +108,11 @@ public class DtbOrdLogImport extends EntityBase {
return this;
}
public LocalDateTime getDataOrd() {
public LocalDate getDataOrd() {
return dataOrd;
}
public DtbOrdLogImport setDataOrd(LocalDateTime dataOrd) {
public DtbOrdLogImport setDataOrd(LocalDate dataOrd) {
this.dataOrd = dataOrd;
return this;
}
@@ -172,21 +180,21 @@ public class DtbOrdLogImport extends EntityBase {
return this;
}
public BigDecimal getTotQuaOmg() {
return totQuaOmg;
public BigDecimal getTotQtaOmg() {
return totQtaOmg;
}
public DtbOrdLogImport setTotQuaOmg(BigDecimal totQuaOmg) {
this.totQuaOmg = totQuaOmg;
public DtbOrdLogImport setTotQtaOmg(BigDecimal totQtaOmg) {
this.totQtaOmg = totQtaOmg;
return this;
}
public BigDecimal getTotQuaResi() {
return totQuaResi;
public BigDecimal getTotQtaResi() {
return totQtaResi;
}
public DtbOrdLogImport setTotQuaResi(BigDecimal totQuaResi) {
this.totQuaResi = totQuaResi;
public DtbOrdLogImport setTotQtaResi(BigDecimal totQtaResi) {
this.totQtaResi = totQtaResi;
return this;
}
@@ -198,4 +206,13 @@ public class DtbOrdLogImport extends EntityBase {
this.serie = serie;
return this;
}
public Long getId() {
return id;
}
public DtbOrdLogImport setId(Long id) {
this.id = id;
return this;
}
}

View File

@@ -7,6 +7,7 @@ import it.integry.common.var.CommonConstants;
import it.integry.ems.rules.completing.dto.UntMisDTO;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.base.EquatableEntityInterface;
import it.integry.ems_model.business_logic.dto.DatiMaterialiDTO;
import it.integry.ems_model.entity._enum.FlagEvaso;
import it.integry.ems_model.entity.common.DtbDocOrdR;
import it.integry.ems_model.entity.common.DtbOrdCommonR;
@@ -347,6 +348,10 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
private String codJflav;
private String flagSospesoOrdl;
private String rifOrdOrdl;
private MtbAart mtbAart;
private UntMisDTO untMisDTO;
@@ -360,7 +365,7 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
@Priority(3)
private List<StbActivity> stbActivityList;
private List<JtbDistMate> distinta;
private List<DatiMaterialiDTO> distinta;
private HashMap<String, Object> datiListino;
@@ -1359,6 +1364,24 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
return this;
}
public String getFlagSospesoOrdl() {
return flagSospesoOrdl;
}
public DtbOrdr setFlagSospesoOrdl(String flagSospesoOrdl) {
this.flagSospesoOrdl = flagSospesoOrdl;
return this;
}
public String getRifOrdOrdl() {
return rifOrdOrdl;
}
public DtbOrdr setRifOrdOrdl(String rifOrdOrdl) {
this.rifOrdOrdl = rifOrdOrdl;
return this;
}
@Override
public MtbAart getMtbAart() {
return mtbAart;
@@ -1406,11 +1429,11 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
return this;
}
public List<JtbDistMate> getDistinta() {
public List<DatiMaterialiDTO> getDistinta() {
return distinta;
}
public DtbOrdr setDistinta(List<JtbDistMate> distinta) {
public DtbOrdr setDistinta(List<DatiMaterialiDTO> distinta) {
this.distinta = distinta;
return this;
}

View File

@@ -8,6 +8,7 @@ import it.integry.ems.rules.util.*
import it.integry.ems.rules.completing.*
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.utility.UtilityDB
import it.integry.ems_model.base.EntityInterface
global Connection conn
global String username
@@ -138,7 +139,7 @@ then
modify($entity){
setDtbOrdtProd(dtbOrdtProd)
}
end

View File

@@ -65,6 +65,9 @@ then
DocOrdCalTotaliRules.calcTotali(conn, $testata);
OrderRules.sospendiOrdine(conn, $testata);
}
if ($testata.getGestione().equalsIgnoreCase("L") && $testata.getGestioneRif() != null && $testata.getGestioneRif().equalsIgnoreCase("A") && $testata.getDtbOrds().size() > 0) {
OrderRules.completeImportoRigaOrdProd(conn, $testata);
}
end
rule "completeCalcTotaliDoc"

View File

@@ -0,0 +1,68 @@
package it.integry.ems.order.Import.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import it.integry.ems_model.annotation.EntityChild;
import it.integry.ems_model.annotation.SqlField;
import it.integry.ems_model.entity.WdtbOrdt;
public class ImporOrdiniWebDTO {
@SqlField
private WdtbOrdt wdtbOrdt;
@SqlField(value = "flag_td")
private String flagTd;
@SqlField(value = "cod_vlis_clie")
private String codVlisClie;
@SqlField(value = "cod_vlis_dest")
private String codVlisDest;
@SqlField(value = "new_clie")
private Boolean newClie;
public WdtbOrdt getWdtbOrdt() {
return wdtbOrdt;
}
public ImporOrdiniWebDTO setWdtbOrdt(WdtbOrdt wdtbOrdt) {
this.wdtbOrdt = wdtbOrdt;
return this;
}
public String getFlagTd() {
return flagTd==null?"N":flagTd;
}
public ImporOrdiniWebDTO setFlagTd(String flagTd) {
this.flagTd = flagTd;
return this;
}
public String getCodVlisClie() {
return codVlisClie;
}
public ImporOrdiniWebDTO setCodVlisClie(String codVlisClie) {
this.codVlisClie = codVlisClie;
return this;
}
public String getCodVlisDest() {
return codVlisDest;
}
public ImporOrdiniWebDTO setCodVlisDest(String codVlisDest) {
this.codVlisDest = codVlisDest;
return this;
}
public Boolean getNewClie() {
return newClie;
}
public ImporOrdiniWebDTO setNewClie(Boolean newClie) {
this.newClie = newClie;
return this;
}
}

View File

@@ -0,0 +1,31 @@
package it.integry.ems.order.Import.dto;
import it.integry.ems_model.annotation.SqlField;
import it.integry.ems_model.entity.WdtbOrdr;
import it.integry.ems_model.entity.WdtbOrdt;
public class ImportOrdiniWebRowDTO {
@SqlField
private WdtbOrdr wdtbOrdr;
@SqlField(value = "flag_stato_art")
private String flagStatoArt;
public WdtbOrdr getWdtbOrdr() {
return wdtbOrdr;
}
public ImportOrdiniWebRowDTO setWdtbOrdr(WdtbOrdr wdtbOrdr) {
this.wdtbOrdr = wdtbOrdr;
return this;
}
public String getFlagStatoArt() {
return flagStatoArt;
}
public ImportOrdiniWebRowDTO setFlagStatoArt(String flagStatoArt) {
this.flagStatoArt = flagStatoArt;
return this;
}
}

View File

@@ -43,6 +43,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.business_logic.dto.DatiMaterialiDTO;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*;
@@ -2398,9 +2399,10 @@ public class MesProductionServiceV2 {
jtbDistMate.setOperation(OperationType.INSERT);
DatiMaterialiDTO datiMaterialiDTO = new DatiMaterialiDTO().setJtbDistMate(jtbDistMate);
ordLav
.getDistinta()
.add(jtbDistMate);
.add(datiMaterialiDTO);
}
entityProcessor.processEntity(ordProd, true, multiDBTransactionManager);