From 7fc8f95c20b0152863c007d7f4a9c2ede4b905fc Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Mon, 2 Sep 2024 17:02:58 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-726 --- .../importer/logic/data/tables/SDf20Table.java | 14 -------------- .../importer/logic/data/tables/SDf21Table.java | 17 ++++++++++++----- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/SDf20Table.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/SDf20Table.java index 559919806..7984b5c05 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/SDf20Table.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/SDf20Table.java @@ -1,8 +1,6 @@ package ru.spcex.clearing.swt.importer.logic.data.tables; import java.time.Instant; -import java.util.Collection; -import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.clearing.classes.statics.data.sdf.SDf20; @@ -42,16 +40,4 @@ public class SDf20Table extends AbstractTable implements WithTransactionN result.setNameCl(record.getValFor83DTag()[1]); return result; } - - @Override - public boolean checkOnExisting(SDf20 obj) { - if (map == null) { - bootMap(); - } - Collection sDf20s = map.getCollectionObjectsByFieldValues(Map.of("transactionNumber", obj.getTransactionNumber())); - if (!sDf20s.isEmpty()) { - log.warn("Skip insert by {}, sdf57.dbfId: {}", PREFIX, obj.getTransactionNumber()); - } - return sDf20s.isEmpty(); - } } \ No newline at end of file diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/SDf21Table.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/SDf21Table.java index 076868aa6..2e7bd1243 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/SDf21Table.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/SDf21Table.java @@ -1,14 +1,14 @@ package ru.spcex.clearing.swt.importer.logic.data.tables; import java.time.Instant; -import java.util.Collection; -import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.clearing.classes.statics.data.sdf.SDf21; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.swt.importer.logic.data.enums.ETable; import ru.spcex.clearing.swt.importer.readers.SWTRecord; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; public class SDf21Table extends AbstractTable implements WithTransactionNumber { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -48,10 +48,17 @@ public class SDf21Table extends AbstractTable implements WithTransactionN if (map == null) { bootMap(); } - Collection sDf21s = map.getCollectionObjectsByFieldValues(Map.of("transactionNumber", obj.getTransactionNumber())); - if (!sDf21s.isEmpty()) { + ImdgPredicateBuilder pb = map.predicateBuilder(); + ImdgPredicate sameTransactionNumberAndOperationCode = pb.and( + pb.equals("transactionNumber", obj.getTransactionNumber()), + pb.equals("operationCode", obj.getOperationCode()) + ); + SDf21 firstObjectBySQL = map.getFirstObjectByPredicate( + sameTransactionNumberAndOperationCode + ); + if (firstObjectBySQL != null) { log.warn("Skip insert by {}, sdf57.dbfId: {}", PREFIX, obj.getTransactionNumber()); } - return sDf21s.isEmpty(); + return firstObjectBySQL == null; } } \ No newline at end of file