From c01cc429a060912c9d010fb6c9d39fb384c3b663 Mon Sep 17 00:00:00 2001 From: ialbert Date: Fri, 11 Aug 2023 12:01:24 +0300 Subject: [PATCH] swt-importer SDF21 transactionNumber --- .../spcex/clearing/config/ValidationConfig.java | 3 +++ .../logic/data/tables/AbstractTable.java | 2 +- .../importer/logic/data/tables/SDf21Table.java | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java index efcab68b5..5b46c5471 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java @@ -17,6 +17,7 @@ import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.classes.statics.data.sdf.*; import ru.clearing.classes.statics.data.security.MoneyMarketSecurity; import ru.clearing.classes.statics.data.security.Security; +import ru.clearing.classes.statics.data.statement.Statement; import ru.clearing.platform.dictionary.SectionDictionary; import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -51,6 +52,7 @@ public class ValidationConfig { Imdg imdgTradingClearingRegistry; Imdg imdgSession; Imdg imdgSectionDictionary; + Imdg imdgStatement; ImdgProvider imdgProvider; public ValidationConfig(ImdgProvider imdgProvider) { @@ -67,6 +69,7 @@ public class ValidationConfig { this.imdgMoneyMarketSecurity = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class); this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class); this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class); + this.imdgStatement = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); this.imdgProvider = imdgProvider; } diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/AbstractTable.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/AbstractTable.java index 80cbf409f..e675ac155 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/AbstractTable.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/tables/AbstractTable.java @@ -41,7 +41,7 @@ public abstract class AbstractTable { map.insert(obj); } - private void bootMap() { + protected void bootMap() { map = (ImdgHazelcast) hazelcastService.getImdg(nameOfMap, clazz); } } 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 2d1c9f9aa..088193327 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,5 +1,7 @@ package ru.spcex.clearing.swt.importer.logic.data.tables; +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; @@ -8,6 +10,7 @@ import ru.spcex.clearing.swt.importer.readers.SWTRecord; import java.time.Instant; public class SDf21Table extends AbstractTable { + private final Logger log = LoggerFactory.getLogger(getClass()); private static final String PREFIX = ETable.S_DF_21.name(); private static final Class CLAZZ = SDf21.class; @@ -36,7 +39,20 @@ public class SDf21Table extends AbstractTable { result.setFileName(filename); result.setGenerationTime(Instant.now()); result.setGenerationId(fileId); + result.setTransactionNumber(record.getValFor23Tag()); return result; } + @Override + public void injectEntity(SDf21 obj) { + if (map == null) { + bootMap(); + } + SDf21 firstObjectBySQL = map.getFirstObjectBySQL("transactionNumber = '%s'".formatted(obj.getTransactionNumber())); + if (firstObjectBySQL != null) { + log.warn("Skip insert by {}, sdf21.transactionNumber: {}", PREFIX, obj.getTransactionNumber()); + } else { + map.insert(obj); + } + } } \ No newline at end of file