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 088193327..cb8038b50 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 @@ -6,6 +6,8 @@ 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; import java.time.Instant; @@ -48,7 +50,14 @@ public class SDf21Table extends AbstractTable { if (map == null) { bootMap(); } - SDf21 firstObjectBySQL = map.getFirstObjectBySQL("transactionNumber = '%s'".formatted(obj.getTransactionNumber())); + 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 {}, sdf21.transactionNumber: {}", PREFIX, obj.getTransactionNumber()); } else {