From 620b3daf5a297de041da512b852beea585a7bd23 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 6 Sep 2024 10:37:39 +0200 Subject: [PATCH] Fix su importazione documenti Exchange --- .../ems_model/utility/UtilityQuery.java | 4 ++ .../ExchangeDocumentImportService.java | 40 +++++++++++-------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/ems-core/src/main/java/it/integry/ems_model/utility/UtilityQuery.java b/ems-core/src/main/java/it/integry/ems_model/utility/UtilityQuery.java index 5e73578dd6..0c54a9d37d 100644 --- a/ems-core/src/main/java/it/integry/ems_model/utility/UtilityQuery.java +++ b/ems-core/src/main/java/it/integry/ems_model/utility/UtilityQuery.java @@ -12,6 +12,8 @@ import java.math.BigDecimal; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -58,6 +60,8 @@ public class UtilityQuery { if (value instanceof Date) sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueDateToString((Date) value, CommonConstants.DATETIME_FORMAT_YMD))); + else if (value instanceof LocalDate || value instanceof LocalDateTime) + sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueToString(value))); else if (value instanceof Integer || value instanceof Long || value instanceof Float || value instanceof Double || value instanceof BigDecimal) sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueToString(value))); else { 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 288b33cbbe..8a5cde9f5b 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 @@ -82,23 +82,12 @@ public class ExchangeDocumentImportService { List allRigheData = exchangeImportDataManagerService .runSync(DtbDocr.class, exchangeImportedRigheData, exchangeUpdatedRigheData); - allTestateData.parallelStream().forEach(x -> ((DtbDoct) x).setUpdProgMaga(false)); + allTestateData.parallelStream().forEach(x -> { + ((DtbDoct) x).setUpdProgMaga(false); +// .setOperation(x.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : x.getOperation()); +// ((DtbDoct) x).getDtbDocr().parallelStream().forEach(y -> y.setOperation(y.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : y.getOperation())); - allTestateData.parallelStream() - .map(x -> (DtbDoct) x) - .forEach(x -> - x.setDtbDocr(allRigheData.stream() - .map(y -> (DtbDocr) y) - .filter(y -> - Objects.hash(x.getDataDoc(), x.getNumDoc(), x.getSerDoc(), x.getCodAnag(), x.getCodDtip()) == - Objects.hash(y.getDataDoc(), y.getNumDoc(), y.getSerDoc(), y.getCodAnag(), y.getCodDtip()) && - - (Objects.equals(x.getCodAnag(), y.getCodAnag()) && - Objects.equals(x.getCodDtip(), y.getCodDtip()) && - Objects.equals(x.getDataDoc(), y.getDataDoc()) && - Objects.equals(x.getNumDoc(), y.getNumDoc()) && - Objects.equals(x.getSerDoc(), y.getSerDoc()))) - .collect(Collectors.toList()))); + }); allRigheData.stream() .map(x -> (DtbDocr) x) @@ -118,12 +107,29 @@ public class ExchangeDocumentImportService { .setDataDoc(x.getDataDoc()) .setNumDoc(x.getNumDoc()) .setCodDtip(x.getCodDtip()) - .setCodAnag(x.getCodAnag()); + .setCodAnag(x.getCodAnag()) + .setUpdProgMaga(false); testata.setOperation(OperationType.UPDATE); allTestateData.add(testata); }); + allTestateData.parallelStream() + .map(x -> (DtbDoct) x) + .forEach(x -> + x.setDtbDocr(allRigheData.stream() + .map(y -> (DtbDocr) y) + .filter(y -> + Objects.hash(x.getDataDoc(), x.getNumDoc(), x.getSerDoc(), x.getCodAnag(), x.getCodDtip()) == + Objects.hash(y.getDataDoc(), y.getNumDoc(), y.getSerDoc(), y.getCodAnag(), y.getCodDtip()) && + + (Objects.equals(x.getCodAnag(), y.getCodAnag()) && + Objects.equals(x.getCodDtip(), y.getCodDtip()) && + Objects.equals(x.getDataDoc(), y.getDataDoc()) && + Objects.equals(x.getNumDoc(), y.getNumDoc()) && + Objects.equals(x.getSerDoc(), y.getSerDoc()))) + .collect(Collectors.toList()))); + List allData = allTestateData; final Exception[] firstExceptionToThrow = {null};