Merge branch 'master' into develop

This commit is contained in:
2024-10-09 13:16:18 +02:00
2 changed files with 62 additions and 50 deletions

View File

@@ -196,7 +196,7 @@ public class ExchangeDocumentImportService {
mtbColrLavTableName, Query.format("data_doc BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported); mtbColrLavTableName, Query.format("data_doc BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
righe.parallelStream() final List<DtbDoct> orphanTestateToAdd = righe.parallelStream()
.filter(riga -> .filter(riga ->
testate.parallelStream() testate.parallelStream()
.noneMatch(testata -> .noneMatch(testata ->
@@ -208,7 +208,7 @@ public class ExchangeDocumentImportService {
Objects.equals(riga.getDataDoc(), testata.getDataDoc()) && Objects.equals(riga.getDataDoc(), testata.getDataDoc()) &&
Objects.equals(riga.getNumDoc(), testata.getNumDoc()) && Objects.equals(riga.getNumDoc(), testata.getNumDoc()) &&
Objects.equals(riga.getSerDoc(), testata.getSerDoc())))) Objects.equals(riga.getSerDoc(), testata.getSerDoc()))))
.forEach(riga -> { .map(riga -> {
DtbDoct testata = new DtbDoct() DtbDoct testata = new DtbDoct()
.setSerDoc(riga.getSerDoc()) .setSerDoc(riga.getSerDoc())
.setDataDoc(riga.getDataDoc()) .setDataDoc(riga.getDataDoc())
@@ -217,9 +217,12 @@ public class ExchangeDocumentImportService {
.setCodAnag(riga.getCodAnag()); .setCodAnag(riga.getCodAnag());
testata.setOperation(OperationType.UPDATE); testata.setOperation(OperationType.UPDATE);
testate.add(testata); return testata;
}); })
.filter(testataOrphan -> testate.stream().noneMatch(testataOrphan::equalsKey))
.collect(Collectors.toList());
testate.addAll(orphanTestateToAdd);
testate.parallelStream() testate.parallelStream()

View File

@@ -8,10 +8,10 @@ import it.integry.ems.system.exchange.service.structure.ExchangeImportDataManage
import it.integry.ems.system.exchange.service.structure.ExchangeImportSchemaManagerService; import it.integry.ems.system.exchange.service.structure.ExchangeImportSchemaManagerService;
import it.integry.ems_model.base.EquatableEntityInterface; import it.integry.ems_model.base.EquatableEntityInterface;
import it.integry.ems_model.entity.MtbPartitaMag; import it.integry.ems_model.entity.MtbPartitaMag;
import it.integry.ems_model.exception.EntityException;
import it.integry.ems_model.exception.MergeEntityDBToObjectException; import it.integry.ems_model.exception.MergeEntityDBToObjectException;
import it.integry.ems_model.types.OperationType; import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB; import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityLocalDate;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -52,16 +52,18 @@ public class ExchangePartiteMagazzinoImportService {
final List<MtbPartitaMag> exchangeImportedData = retrievePartite( final List<MtbPartitaMag> exchangeImportedData = retrievePartite(
exchangeMultiDb.getPrimaryConnection(), exchangeMultiDb.getPrimaryConnection(),
LocalDate.of(2022, 1, 1), null,
UtilityLocalDate.getNow(), null,
true, false); true, false);
final List<MtbPartitaMag> exchangeUpdatedData = retrievePartite( final List<MtbPartitaMag> exchangeUpdatedData = retrievePartite(
exchangeMultiDb.getPrimaryConnection(), exchangeMultiDb.getPrimaryConnection(),
LocalDate.of(2022, 1, 1), null,
UtilityLocalDate.getNow(), null,
false, useTempTable); false, useTempTable);
exchangeMultiDb.commitAll();
List<EquatableEntityInterface> allData = exchangeImportDataManagerService List<EquatableEntityInterface> allData = exchangeImportDataManagerService
.runSync(MtbPartitaMag.class, exchangeImportedData, exchangeUpdatedData); .runSync(MtbPartitaMag.class, exchangeImportedData, exchangeUpdatedData);
@@ -87,6 +89,13 @@ public class ExchangePartiteMagazzinoImportService {
} catch (MergeEntityDBToObjectException mergeEntityDBToObjectException) { } catch (MergeEntityDBToObjectException mergeEntityDBToObjectException) {
//ignore error if is DELETE //ignore error if is DELETE
if (dataToSave.getOperation() != OperationType.DELETE) throw mergeEntityDBToObjectException; if (dataToSave.getOperation() != OperationType.DELETE) throw mergeEntityDBToObjectException;
} catch (EntityException e) {
//ignore error if is DELETE & foreign key error and rollback
if (e.getSqlErrorCode() == 547 && dataToSave.getOperation() == OperationType.DELETE) {
internalMultiDb.rollbackAll();
exchangeMultiDb.rollbackAll();
continue;
} else throw e;
} }
singleUpdateImported(exchangeMultiDb.getPrimaryConnection(), (MtbPartitaMag) dataToSave, useTempTable); singleUpdateImported(exchangeMultiDb.getPrimaryConnection(), (MtbPartitaMag) dataToSave, useTempTable);