Aggiunta cache in servizi di completamento unt_mis e qta_cnf
This commit is contained in:
@@ -53,6 +53,21 @@ public class DbmsChangeTracker {
|
||||
}
|
||||
}
|
||||
|
||||
private void checkConnection() {
|
||||
try {
|
||||
if (integryConnection.isClosed())
|
||||
createConnection();
|
||||
} catch (SQLException e) {
|
||||
try {
|
||||
integryConnection.close();
|
||||
createConnection();
|
||||
} catch (SQLException ex) {
|
||||
logger.error("Unable to reestablish DB connection for Change Tracker", ex);
|
||||
throw new RuntimeException("Unable to reestablish DB connection for Change Tracker");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void enableTrackerInDbms() throws SQLException, DataConverterNotFoundException, InstantiationException, IllegalAccessException {
|
||||
final ChangeTrackingConfigDTO currentConfig = retrieveTrackerCurrentConfig();
|
||||
if (currentConfig != null) {
|
||||
@@ -112,6 +127,8 @@ public class DbmsChangeTracker {
|
||||
if (!trackerEnabled)
|
||||
return;
|
||||
|
||||
checkConnection();
|
||||
|
||||
final List<String> trackedTables = retrieveTrackedTables();
|
||||
|
||||
HashMap<Long, DetectedChangeDataDTO> changesByVersion = new HashMap<>();
|
||||
|
||||
@@ -8,10 +8,7 @@ import it.integry.ems.dbms_change_tracker.model.events.TableRecordUpdatedEvent;
|
||||
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.entity.MtbAart;
|
||||
import it.integry.ems_model.entity.StbGestSetup;
|
||||
import it.integry.ems_model.entity.StbGestSetupDepo;
|
||||
import it.integry.ems_model.entity.WtbGestSetupUser;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.exception.DataConverterNotFoundException;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -33,6 +30,8 @@ public class DbmsChangeTrackerComponent {
|
||||
|
||||
private final ArrayList<String> trackedTables = new ArrayList<String>() {{
|
||||
add(MtbAart.ENTITY);
|
||||
add(MtbAartBarCode.ENTITY);
|
||||
add(MtbUntMis.ENTITY);
|
||||
add(StbGestSetup.ENTITY);
|
||||
add(StbGestSetupDepo.ENTITY);
|
||||
add(WtbGestSetupUser.ENTITY);
|
||||
|
||||
@@ -13,10 +13,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EntityPropertyHolder;
|
||||
import it.integry.ems_model.entity.MtbAart;
|
||||
import it.integry.ems_model.entity.StbGestSetup;
|
||||
import it.integry.ems_model.entity.StbGestSetupDepo;
|
||||
import it.integry.ems_model.entity.WtbGestSetupUser;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.exception.DataConverterNotFoundException;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityQuery;
|
||||
@@ -34,6 +31,7 @@ import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Component
|
||||
public class EntityCacheComponent implements ApplicationListener {
|
||||
@@ -47,6 +45,8 @@ public class EntityCacheComponent implements ApplicationListener {
|
||||
|
||||
private final HashMap<String, Class<? extends EntityBase>> enabledEntities = new HashMap<String, Class<? extends EntityBase>>() {{
|
||||
put(MtbAart.ENTITY, MtbAart.class);
|
||||
put(MtbAartBarCode.ENTITY, MtbAartBarCode.class);
|
||||
put(MtbUntMis.ENTITY, MtbUntMis.class);
|
||||
put(StbGestSetup.ENTITY, StbGestSetup.class);
|
||||
put(StbGestSetupDepo.ENTITY, StbGestSetupDepo.class);
|
||||
put(WtbGestSetupUser.ENTITY, WtbGestSetupUser.class);
|
||||
@@ -61,7 +61,7 @@ public class EntityCacheComponent implements ApplicationListener {
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@PostContextConstruct
|
||||
public void init() throws Exception {
|
||||
private void init() throws Exception {
|
||||
if (UtilityDebug.isDebugExecution())
|
||||
return;
|
||||
|
||||
@@ -105,6 +105,11 @@ public class EntityCacheComponent implements ApplicationListener {
|
||||
}
|
||||
|
||||
public <T extends EntityBase> List<T> getCachedEntitiesList(IntegryCustomerDB customerDB, String tableName, Predicate<T> filterPredicate) {
|
||||
return getCachedEntitiesStream(customerDB, tableName, filterPredicate)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public <T extends EntityBase> Stream<T> getCachedEntitiesStream(IntegryCustomerDB customerDB, String tableName, Predicate<T> filterPredicate) {
|
||||
if (!isCacheEnabled(customerDB, tableName) && UtilityDebug.isDebugExecution()) {
|
||||
try {
|
||||
refreshCacheForEntity(customerDB, tableName);
|
||||
@@ -113,14 +118,12 @@ public class EntityCacheComponent implements ApplicationListener {
|
||||
}
|
||||
}
|
||||
|
||||
List<T> entities = entityCache.get(customerDB).get(tableName)
|
||||
return entityCache.get(customerDB).get(tableName)
|
||||
.values()
|
||||
.parallelStream()
|
||||
.map(x -> (T) x)
|
||||
.filter(filterPredicate)
|
||||
.map(x -> (T) x.clone())
|
||||
.collect(Collectors.toList());
|
||||
return entities;
|
||||
.map(x -> (T) x.clone());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package it.integry.ems.rules.completing;
|
||||
|
||||
import com.annimon.stream.ComparatorCompat;
|
||||
import com.annimon.stream.Optional;
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems._context.ApplicationContextProvider;
|
||||
import it.integry.ems.dynamic_cache.EntityCacheComponent;
|
||||
import it.integry.ems.json.ResponseJSONObjectMapper;
|
||||
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.annotation.ReloadRow;
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
@@ -296,7 +298,7 @@ public class CommonRules extends QueryRules {
|
||||
if (testata.getOperation() != OperationType.INSERT) {
|
||||
Integer maxIdRiga = 0;
|
||||
Optional<? extends EntityBase> maxRiga =
|
||||
Stream.of(rows)
|
||||
rows.stream()
|
||||
.filter(x -> x.getIdRigaEntity(x, rigaField) != null)
|
||||
.max(Comparator.comparingInt(o -> o.getIdRigaEntity(o, rigaField)));
|
||||
|
||||
@@ -369,7 +371,8 @@ public class CommonRules extends QueryRules {
|
||||
}
|
||||
|
||||
public static void completePosRigaEntity(Connection conn, DtbOrdt testata) throws Exception {
|
||||
List<DtbOrdr> rows = Stream.of(testata.getDtbOrdr()).filter(x -> x.getOperation() != OperationType.DELETE).toList();
|
||||
List<DtbOrdr> rows = Stream.of(testata.getDtbOrdr())
|
||||
.filter(x -> x.getOperation() != OperationType.DELETE).toList();
|
||||
if (!rows.isEmpty()) {
|
||||
if (testata.getExecuteRecalc()) {
|
||||
ComparatorCompat<DtbOrdr> c =
|
||||
@@ -668,32 +671,71 @@ public class CommonRules extends QueryRules {
|
||||
return execQuery(conn, sql);
|
||||
}
|
||||
|
||||
public static String completeCodBarre(Connection connection, String codMart)
|
||||
public static String completeCodBarre(IntegryCustomerDB customerDB, Connection connection, String codMart)
|
||||
throws SQLException {
|
||||
String sql = "SELECT mvw_barcode_det.cod_barre " + "FROM mvw_barcode_det "
|
||||
+ "WHERE mvw_barcode_det.cod_mart = '" + codMart + "'";
|
||||
List<HashMap<String, Object>> result = execQuery(connection, sql);
|
||||
|
||||
final EntityCacheComponent entityCacheComponent = ApplicationContextProvider.getApplicationContext().getBean(EntityCacheComponent.class);
|
||||
|
||||
|
||||
List<HashMap<String, Object>> result = new ArrayList<>();
|
||||
|
||||
entityCacheComponent.<MtbAart>getCachedEntitiesStream(customerDB, MtbAart.ENTITY,
|
||||
x -> x.getCodMart().equalsIgnoreCase(codMart) && !UtilityString.isNullOrEmpty(x.getBarCode()))
|
||||
.forEach(x -> result.add(new HashMap<String, Object>() {{
|
||||
put("cod_mart", x.getCodMart());
|
||||
put("cod_barre", x.getBarCode());
|
||||
put("cod_col", null);
|
||||
put("cod_tagl", null);
|
||||
put("qta_cnf", BigDecimal.ONE);
|
||||
}}));
|
||||
|
||||
entityCacheComponent.<MtbAart>getCachedEntitiesStream(customerDB, MtbAart.ENTITY,
|
||||
x -> x.getCodMart().equalsIgnoreCase(codMart) && !UtilityString.isNullOrEmpty(x.getCodBarreImb()))
|
||||
.forEach(x -> result.add(new HashMap<String, Object>() {{
|
||||
put("cod_mart", x.getCodMart());
|
||||
put("cod_barre", x.getCodBarreImb());
|
||||
put("cod_col", null);
|
||||
put("cod_tagl", null);
|
||||
put("qta_cnf", x.getQtaCnf());
|
||||
}}));
|
||||
|
||||
entityCacheComponent.<MtbAartBarCode>getCachedEntitiesStream(customerDB, MtbAartBarCode.ENTITY,
|
||||
x -> x.getCodMart().equalsIgnoreCase(codMart))
|
||||
.forEach(x -> result.add(new HashMap<String, Object>() {{
|
||||
put("cod_mart", x.getCodMart());
|
||||
put("cod_barre", x.getCodBarre());
|
||||
put("cod_col", null);
|
||||
put("cod_tagl", null);
|
||||
put("qta_cnf", x.getQtaCnf());
|
||||
}}));
|
||||
|
||||
|
||||
String barcode = null;
|
||||
|
||||
if (result != null && !result.isEmpty() && result.get(0).containsKey("cod_barre"))
|
||||
barcode = result.get(0).get("cod_barre").toString();
|
||||
if (!result.isEmpty())
|
||||
barcode = UtilityHashMap.getValueIfExists(result.get(0), "cod_barre");
|
||||
|
||||
return barcode;
|
||||
}
|
||||
|
||||
public static String completeCodBarreScontrini(Connection connection, String codMart)
|
||||
throws Exception {
|
||||
String sql = "SELECT TOP 1 mvw_barcode_det.cod_barre " + "FROM mvw_barcode_det "
|
||||
String sql = "SELECT TOP 1 mvw_barcode_det.cod_barre " +
|
||||
"FROM mvw_barcode_det "
|
||||
+ "WHERE mvw_barcode_det.cod_mart = '" + codMart + "' and len(mvw_barcode_det.cod_barre) <= 13";
|
||||
String barcode = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
return barcode;
|
||||
}
|
||||
|
||||
public static String completeFlagQtaCnfFissa(Connection connection, String codMart) throws Exception {
|
||||
String sql = "select flag_qta_cnf_fissa from mtb_aart WHERE cod_mart = '" + codMart + "'";
|
||||
String flagQtaCnfFissa = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
return flagQtaCnfFissa;
|
||||
public static String completeFlagQtaCnfFissa(Connection connection, IntegryCustomerDB customerDB, String codMart) {
|
||||
final EntityCacheComponent entityCacheComponent = ApplicationContextProvider.getApplicationContext().getBean(EntityCacheComponent.class);
|
||||
|
||||
final List<MtbAart> cachedMtbAarts = entityCacheComponent.getCachedEntitiesList(customerDB, MtbAart.ENTITY, x -> x.getCodMart().equals(codMart));
|
||||
|
||||
if (cachedMtbAarts == null || cachedMtbAarts.isEmpty())
|
||||
return null;
|
||||
|
||||
return cachedMtbAarts.get(0).getFlagQtaCnfFissa();
|
||||
}
|
||||
|
||||
public static String getApplicationName(Connection connection) throws Exception {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package it.integry.ems.rules.completing;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.ems._context.ApplicationContextProvider;
|
||||
import it.integry.ems.dynamic_cache.EntityCacheComponent;
|
||||
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||
import it.integry.ems.rules.completing.dto.DatiPartitaMagDTO;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.MtbColr;
|
||||
import it.integry.ems_model.entity.MtbCols;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.entity.MtbPartitaMag;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
|
||||
@@ -255,7 +255,7 @@ public class PackagesRules extends QueryRules {
|
||||
int cifreDec;
|
||||
if (UtilityString.isNullOrEmpty(flagQtaCnfFissa)) {
|
||||
throw new Exception(String.format("Articolo %s non trovato", mtbColr.getCodMart()));
|
||||
}else if (flagQtaCnfFissa.equalsIgnoreCase("S")) {
|
||||
} else if (flagQtaCnfFissa.equalsIgnoreCase("S")) {
|
||||
cifreDec = EmsRestConstants.cifreDecMax;
|
||||
} else {
|
||||
cifreDec = 0;
|
||||
@@ -331,23 +331,28 @@ public class PackagesRules extends QueryRules {
|
||||
return datiOrd;
|
||||
}
|
||||
|
||||
public static HashMap<String, Object> calcPeso(Connection conn, MtbColr entity) throws Exception {
|
||||
String sql = "select cifre_dec from mtb_unt_mis where flag_unita_kg = 'S'";
|
||||
BigDecimal cifreDec = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
|
||||
public static HashMap<String, Object> calcPeso(IntegryCustomerDB customerDB, Connection conn, MtbColr entity) throws Exception {
|
||||
|
||||
if ( cifreDec == null ) { cifreDec = BigDecimal.valueOf(5); }
|
||||
final EntityCacheComponent entityCacheComponent = ApplicationContextProvider.getApplicationContext().getBean(EntityCacheComponent.class);
|
||||
|
||||
sql =
|
||||
"SELECT mtb_aart.unt_mis, " +
|
||||
" mtb_aart.tara_kg, " +
|
||||
" mtb_aart.peso_kg, " +
|
||||
" case when mtb_aart.flag_peso_egalizzato = 1 THEN mtb_aart.qta_cnf ELSE 1 END * mtb_aart.peso_kg as 'peso_egalizzato', " +
|
||||
" mtb_unt_mis.flag_unita_kg, " +
|
||||
" mtb_aart.flag_peso_egalizzato " +
|
||||
" FROM mtb_aart INNER JOIN mtb_unt_mis ON mtb_aart.unt_mis = mtb_unt_mis.unt_mis " +
|
||||
" WHERE mtb_aart.cod_mart = " + UtilityDB.valueToString(entity.getCodMart());
|
||||
BigDecimal cifreDec = entityCacheComponent.<MtbUntMis>getCachedEntitiesStream(customerDB, MtbUntMis.ENTITY,
|
||||
x -> x.getFlagUnitaKg().equalsIgnoreCase("S"))
|
||||
.map(MtbUntMis::getCifreDec)
|
||||
.findFirst()
|
||||
.orElse(BigDecimal.valueOf(5));
|
||||
|
||||
HashMap<String, Object> anagArt = entityCacheComponent.<MtbAart>getCachedEntitiesStream(customerDB, MtbAart.ENTITY,
|
||||
x -> x.getCodMart().equalsIgnoreCase(entity.getCodMart()))
|
||||
.map(x -> new HashMap<String, Object>() {{
|
||||
put("unt_mis", x.getUntMis());
|
||||
put("tara_kg", x.getTaraKg());
|
||||
put("peso_kg", x.getPesoKg());
|
||||
put("flag_peso_egalizzato", x.getFlagPesoEgalizzato());
|
||||
put("peso_egalizzato", x.getFlagPesoEgalizzato() ? x.getQtaCnf().multiply(x.getPesoKg()) : null);
|
||||
}})
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
HashMap<String, Object> queryResults = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||
|
||||
MtbColr originalEntity = ((MtbColr) entity.getOriginalEntity());
|
||||
if (originalEntity != null && originalEntity.getPesoNettoKg() != null && originalEntity.getPesoLordoKg() != null) {
|
||||
@@ -359,12 +364,17 @@ public class PackagesRules extends QueryRules {
|
||||
}
|
||||
|
||||
BigDecimal pesoNetto = BigDecimal.ZERO, pesoLordo = BigDecimal.ZERO;
|
||||
if (queryResults != null) {
|
||||
BigDecimal taraKg = (BigDecimal) queryResults.get("tara_kg");
|
||||
BigDecimal pesoKg = (BigDecimal) queryResults.get("peso_kg");
|
||||
String flagUnitaKg = (String) queryResults.get("flag_unita_kg");
|
||||
BigDecimal pesoKGEgalizzato = (BigDecimal) queryResults.get("peso_egalizzato");
|
||||
Boolean pesoEgalizzato = (Boolean) queryResults.get("flag_peso_egalizzato");
|
||||
if (anagArt != null) {
|
||||
String flagUnitaKg = entityCacheComponent.<MtbUntMis>getCachedEntitiesStream(customerDB, MtbUntMis.ENTITY,
|
||||
x -> x.getUntMis().equalsIgnoreCase(String.valueOf(anagArt.get("unt_mis"))))
|
||||
.map(MtbUntMis::getFlagUnitaKg)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
BigDecimal taraKg = (BigDecimal) anagArt.get("tara_kg");
|
||||
BigDecimal pesoKg = (BigDecimal) anagArt.get("peso_kg");
|
||||
BigDecimal pesoKGEgalizzato = (BigDecimal) anagArt.get("peso_egalizzato");
|
||||
Boolean pesoEgalizzato = (Boolean) anagArt.get("flag_peso_egalizzato");
|
||||
|
||||
if ("S".equalsIgnoreCase(flagUnitaKg)) {
|
||||
pesoNetto = entity.getQtaCol();
|
||||
|
||||
@@ -46,39 +46,44 @@ public class MtbAartBarCode extends EntityBase {
|
||||
return codBarre;
|
||||
}
|
||||
|
||||
public void setCodBarre(String codBarre) {
|
||||
public MtbAartBarCode setCodBarre(String codBarre) {
|
||||
this.codBarre = codBarre;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public void setCodMart(String codMart) {
|
||||
public MtbAartBarCode setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaCnf() {
|
||||
return qtaCnf;
|
||||
}
|
||||
|
||||
public void setQtaCnf(BigDecimal qtaCnf) {
|
||||
public MtbAartBarCode setQtaCnf(BigDecimal qtaCnf) {
|
||||
this.qtaCnf = qtaCnf;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlagPrimario() {
|
||||
return flagPrimario;
|
||||
}
|
||||
|
||||
public void setFlagPrimario(String flagPrimario) {
|
||||
public MtbAartBarCode setFlagPrimario(String flagPrimario) {
|
||||
this.flagPrimario = flagPrimario;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTipoCodBarre() {
|
||||
return tipoCodBarre;
|
||||
}
|
||||
|
||||
public void setTipoCodBarre(String tipoCodBarre) {
|
||||
public MtbAartBarCode setTipoCodBarre(String tipoCodBarre) {
|
||||
this.tipoCodBarre = tipoCodBarre;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,12 +16,16 @@ import it.integry.ems_model.entity.MtbColt
|
||||
import it.integry.ems_model.entity.MtbColr
|
||||
import java.time.LocalDate
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||
import it.integry.ems.migration._base.IntegryCustomer
|
||||
|
||||
global Connection conn
|
||||
global String username
|
||||
global Boolean completeRulesEnabled
|
||||
global Boolean checkRulesEnabled
|
||||
global Boolean postRulesEnabled
|
||||
global IntegryCustomerDB customerDb
|
||||
global IntegryCustomer customer
|
||||
|
||||
//PACKAGES TESTATE
|
||||
rule "completeCodVlis"
|
||||
@@ -290,7 +294,7 @@ when
|
||||
eval(completeRulesEnabled)
|
||||
$row: MtbColr(flagQtaCnfFissa == null && codMart != null)
|
||||
then
|
||||
String flagQtaCnfFissa = CommonRules.completeFlagQtaCnfFissa(conn, $row.getCodMart());
|
||||
String flagQtaCnfFissa = CommonRules.completeFlagQtaCnfFissa(conn, customerDb, $row.getCodMart());
|
||||
modify ( $row ) { setFlagQtaCnfFissa(flagQtaCnfFissa) }
|
||||
end
|
||||
|
||||
@@ -300,7 +304,7 @@ when
|
||||
eval(completeRulesEnabled)
|
||||
$row: MtbColr(codBarre == null && codMart != null)
|
||||
then
|
||||
String codBarre = CommonRules.completeCodBarre(conn, $row.getCodMart());
|
||||
String codBarre = CommonRules.completeCodBarre(customerDb, conn, $row.getCodMart());
|
||||
modify ( $row ) { setCodBarre(codBarre) }
|
||||
end
|
||||
|
||||
@@ -351,7 +355,7 @@ when
|
||||
eval(completeRulesEnabled)
|
||||
$entity: MtbColr(qtaCol != null && numCnf != null && qtaCnf != null && operation != OperationType.DELETE)
|
||||
then
|
||||
HashMap<String, Object> dati = PackagesRules.calcPeso(conn, $entity);
|
||||
HashMap<String, Object> dati = PackagesRules.calcPeso(customerDb, conn, $entity);
|
||||
modify ( $entity ) {
|
||||
setPesoNettoKg(QueryRules.<BigDecimal>getMapData(dati, $entity.getPesoNettoKg(), "peso_netto")),
|
||||
setPesoLordoKg(QueryRules.<BigDecimal>getMapData(dati, $entity.getPesoLordoKg(), "peso_lordo"))
|
||||
|
||||
Reference in New Issue
Block a user