From e1fbcf0170e004a6d7af6927a6a87beff6167344 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 10 Dec 2025 12:37:45 +0100 Subject: [PATCH] Fix build JDK11 --- .../ems_model/entity/_enum/FlagEvaso.java | 2 +- .../ems_model/entity/key/DtbDoctKey.java | 38 ++++++++++++++ .../ems_model/entity/key/MtbColtKey.java | 35 +++++++++++++ .../service/ExchangeColliImportService.java | 18 +++---- .../ExchangeDocumentImportService.java | 51 +++++++++---------- .../service/ExchangeOrdiniImportService.java | 18 +++---- 6 files changed, 113 insertions(+), 49 deletions(-) create mode 100644 ems-core/src/main/java/it/integry/ems_model/entity/key/DtbDoctKey.java create mode 100644 ems-core/src/main/java/it/integry/ems_model/entity/key/MtbColtKey.java diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/_enum/FlagEvaso.java b/ems-core/src/main/java/it/integry/ems_model/entity/_enum/FlagEvaso.java index 256646ec78..5623ba3ad7 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/_enum/FlagEvaso.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/_enum/FlagEvaso.java @@ -16,7 +16,7 @@ public enum FlagEvaso implements IBaseEnum { if (value instanceof Character) castValue = (Character) value; - else if (value instanceof String) + else if (value instanceof String && !((String) value).isEmpty()) castValue = ((String) value).charAt(0); for (FlagEvaso b : FlagEvaso.values()) { diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/key/DtbDoctKey.java b/ems-core/src/main/java/it/integry/ems_model/entity/key/DtbDoctKey.java new file mode 100644 index 0000000000..dfe93e5371 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems_model/entity/key/DtbDoctKey.java @@ -0,0 +1,38 @@ +package it.integry.ems_model.entity.key; + +import java.util.Date; +import java.util.Objects; + +public class DtbDoctKey { + + private final String codAnag; + private final String codDtip; + private final Date dataDoc; + private final Integer numDoc; + private final String serDoc; + + public DtbDoctKey(String codAnag, String codDtip, Date dataDoc, Integer numDoc, String serDoc) { + this.codAnag = codAnag; + this.codDtip = codDtip; + this.dataDoc = dataDoc; + this.numDoc = numDoc; + this.serDoc = serDoc; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DtbDoctKey that = (DtbDoctKey) o; + return Objects.equals(codAnag, that.codAnag) && + Objects.equals(codDtip, that.codDtip) && + Objects.equals(dataDoc, that.dataDoc) && + Objects.equals(numDoc, that.numDoc) && + Objects.equals(serDoc, that.serDoc); + } + + @Override + public int hashCode() { + return Objects.hash(codAnag, codDtip, dataDoc, numDoc, serDoc); + } +} diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/key/MtbColtKey.java b/ems-core/src/main/java/it/integry/ems_model/entity/key/MtbColtKey.java new file mode 100644 index 0000000000..c56150445b --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems_model/entity/key/MtbColtKey.java @@ -0,0 +1,35 @@ +package it.integry.ems_model.entity.key; + +import java.time.LocalDate; +import java.util.Objects; + +public class MtbColtKey { + + private final String gestione; + private final String serCollo; + private final LocalDate dataCollo; + private final Integer numCollo; + + public MtbColtKey(String gestione, String serCollo, LocalDate dataCollo, Integer numCollo) { + this.gestione = gestione; + this.serCollo = serCollo; + this.dataCollo = dataCollo; + this.numCollo = numCollo; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MtbColtKey that = (MtbColtKey) o; + return Objects.equals(dataCollo, that.dataCollo) && + Objects.equals(gestione, that.gestione) && + Objects.equals(numCollo, that.numCollo) && + Objects.equals(serCollo, that.serCollo); + } + + @Override + public int hashCode() { + return Objects.hash(dataCollo, gestione, numCollo, serCollo); + } +} diff --git a/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeColliImportService.java b/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeColliImportService.java index 92bbfe8b4a..8d67d35d29 100644 --- a/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeColliImportService.java +++ b/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeColliImportService.java @@ -13,6 +13,7 @@ import it.integry.ems_model.config.EmsRestConstants; import it.integry.ems_model.entity.DtbDoct; import it.integry.ems_model.entity.MtbColr; import it.integry.ems_model.entity.MtbColt; +import it.integry.ems_model.entity.key.MtbColtKey; import it.integry.ems_model.exception.EntityException; import it.integry.ems_model.service.SetupGest; import it.integry.ems_model.types.OperationType; @@ -27,10 +28,7 @@ import org.springframework.stereotype.Service; import java.sql.Date; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -265,17 +263,15 @@ public class ExchangeColliImportService { final List mtbColrLav = exchangeImportDataManagerService.retrieveDataFromExchange(connection, MtbColr.class, mtbColrLavTableName, Query.format("data_collo BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported); + Map> mapRighe = mtbColrLav.stream() + .collect(Collectors.groupingBy(x -> new MtbColtKey(x.getGestione(), x.getSerCollo(), x.getDataCollo(), x.getNumCollo()))); + mtbColtLav .parallelStream() .forEach(x -> { - x.setMtbColr(mtbColrLav.parallelStream() - .filter(y -> Objects.hash(x.getGestione(), x.getNumCollo(), x.getDataCollo(), x.getSerCollo()) == - Objects.hash(y.getGestione(), y.getNumCollo(), y.getDataCollo(), y.getSerCollo()) && - - (Objects.equals(x.getGestione(), y.getGestione()) && Objects.equals(x.getDataCollo(), y.getDataCollo()) && - Objects.equals(x.getNumCollo(), y.getNumCollo()) && Objects.equals(x.getSerCollo(), y.getSerCollo()))) - .collect(Collectors.toList())); + MtbColtKey key = new MtbColtKey(x.getGestione(), x.getSerCollo(), x.getDataCollo(), x.getNumCollo()); + x.setMtbColr(mapRighe.getOrDefault(key, Collections.emptyList())); }); return mtbColtLav; diff --git a/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeDocumentImportService.java b/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeDocumentImportService.java index 72a2a82c10..ac1cff679c 100644 --- a/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeDocumentImportService.java +++ b/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeDocumentImportService.java @@ -9,6 +9,7 @@ import it.integry.ems.system.exchange.service.structure.ExchangeImportSchemaMana import it.integry.ems_model.base.EquatableEntityInterface; import it.integry.ems_model.entity.DtbDocr; import it.integry.ems_model.entity.DtbDoct; +import it.integry.ems_model.entity.key.DtbDoctKey; import it.integry.ems_model.exception.EntityException; import it.integry.ems_model.exception.MergeEntityDBToObjectException; import it.integry.ems_model.types.OperationType; @@ -21,10 +22,7 @@ import org.springframework.stereotype.Service; import java.sql.Date; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -205,19 +203,29 @@ public class ExchangeDocumentImportService { final List righe = exchangeImportDataManagerService.retrieveDataFromExchange(connection, DtbDocr.class, righeTableName, Query.format("data_doc BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported); + Set testateKeys = testate.stream() + .map(testata -> new DtbDoctKey( + testata.getCodAnag(), + testata.getCodDtip(), + testata.getDataDoc(), + testata.getNumDoc(), + testata.getSerDoc())) + .collect(Collectors.toSet()); + + Map> mapRighe = righe.stream() + .collect(Collectors.groupingBy(x -> new DtbDoctKey(x.getCodAnag(), x.getCodDtip(), x.getDataDoc(), x.getNumDoc(), x.getSerDoc()))); final List orphanTestateToAdd = righe.parallelStream() - .filter(riga -> - testate.parallelStream() - .noneMatch(testata -> - Objects.hash(riga.getDataDoc(), riga.getNumDoc(), riga.getSerDoc(), riga.getCodAnag(), riga.getCodDtip()) == - Objects.hash(testata.getDataDoc(), testata.getNumDoc(), testata.getSerDoc(), testata.getCodAnag(), testata.getCodDtip()) && - - (Objects.equals(riga.getCodAnag(), testata.getCodAnag()) && - Objects.equals(riga.getCodDtip(), testata.getCodDtip()) && - Objects.equals(riga.getDataDoc(), testata.getDataDoc()) && - Objects.equals(riga.getNumDoc(), testata.getNumDoc()) && - Objects.equals(riga.getSerDoc(), testata.getSerDoc())))) + .filter(riga -> { + DtbDoctKey key = new DtbDoctKey( + riga.getCodAnag(), + riga.getCodDtip(), + riga.getDataDoc(), + riga.getNumDoc(), + riga.getSerDoc() + ); + return !testateKeys.contains(key); + }) .map(riga -> { DtbDoct testata = new DtbDoct() .setSerDoc(riga.getSerDoc()) @@ -241,17 +249,8 @@ public class ExchangeDocumentImportService { testata.setUsername(EXCHANGE_USER); //testata.setUpdProgMaga(false); - testata.setDtbDocr(righe.parallelStream() - .filter(riga -> - Objects.hash(testata.getDataDoc(), testata.getNumDoc(), testata.getSerDoc(), testata.getCodAnag(), testata.getCodDtip()) == - Objects.hash(riga.getDataDoc(), riga.getNumDoc(), riga.getSerDoc(), riga.getCodAnag(), riga.getCodDtip()) && - - (Objects.equals(testata.getCodAnag(), riga.getCodAnag()) && - Objects.equals(testata.getCodDtip(), riga.getCodDtip()) && - Objects.equals(testata.getDataDoc(), riga.getDataDoc()) && - Objects.equals(testata.getNumDoc(), riga.getNumDoc()) && - Objects.equals(testata.getSerDoc(), riga.getSerDoc()))) - .collect(Collectors.toList())); + DtbDoctKey key = new DtbDoctKey(testata.getCodAnag(), testata.getCodDtip(), testata.getDataDoc(), testata.getNumDoc(), testata.getSerDoc()); + testata.setDtbDocr(mapRighe.getOrDefault(key, Collections.emptyList())); }); diff --git a/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeOrdiniImportService.java b/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeOrdiniImportService.java index a48556e299..2e0f0ca014 100644 --- a/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeOrdiniImportService.java +++ b/ems-engine/src/main/java/it/integry/ems/system/exchange/service/ExchangeOrdiniImportService.java @@ -14,6 +14,7 @@ import it.integry.ems_model.base.EquatableEntityInterface; import it.integry.ems_model.entity.DtbOrdSteps; import it.integry.ems_model.entity.DtbOrdr; import it.integry.ems_model.entity.DtbOrdt; +import it.integry.ems_model.entity.key.DtbOrdtKey; import it.integry.ems_model.types.OperationType; import it.integry.ems_model.utility.Query; import it.integry.ems_model.utility.UtilityDB; @@ -26,10 +27,7 @@ import org.springframework.stereotype.Service; import java.sql.Date; import java.time.LocalDate; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -216,17 +214,15 @@ public class ExchangeOrdiniImportService { }) .collect(Collectors.toList()); + Map> mapRighe = dtbOrdrLav.stream() + .collect(Collectors.groupingBy(x -> new DtbOrdtKey(x.getGestione(), x.getDataOrd(), x.getNumOrd()))); + dtbOrdtLav .forEach(x -> { x.setGeneraOrdLavDaProd(false); - x.setDtbOrdr(dtbOrdrLav.stream() - .filter(y -> - Objects.hash(x.getDataOrd(), x.getGestione(), x.getNumOrd()) == - Objects.hash(y.getDataOrd(), y.getGestione(), y.getNumOrd()) && - (Objects.equals(x.getDataOrd(), y.getDataOrd()) && Objects.equals(x.getNumOrd(), y.getNumOrd()) && - Objects.equals(x.getGestione(), y.getGestione()))) - .collect(Collectors.toList())); + DtbOrdtKey key = new DtbOrdtKey(x.getGestione(), x.getDataOrd(), x.getNumOrd()); + x.setDtbOrdr(mapRighe.getOrDefault(key, Collections.emptyList())); }); return dtbOrdtLav;