From bc02fa7dea321721754cea02a22b5dfa3e85676c Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 28 May 2025 18:07:46 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-859 --- .../clearing/config/ValidationConfig.java | 3 +++ .../validation/Sdf08NewValidationRule.java | 23 +++++++++---------- 2 files changed, 14 insertions(+), 12 deletions(-) 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 7c8961025..049b76667 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 @@ -259,6 +259,9 @@ public class ValidationConfig { context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany); context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equitySecurityImdg); context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeSecurityImdg); + context.addImdg(IMDGDistributedNames.Map_DigitalCertificateSecurity, digitalCertificateSecurityImdg); + context.addImdg(IMDGDistributedNames.Map_CurrencyPairSecurity, currencyPairSecurityImdg); + context.addImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, imdgMoneyMarketSecurity); context.setLogPrefix(LogPrefixId.INSTANCE); return new ValidatorImpl<>(context, Sdf08NewValidationRule.AccountPresent, Sdf08NewValidationRule.InstrumentPresent diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf08NewValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf08NewValidationRule.java index a9124eb4b..542cae193 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf08NewValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf08NewValidationRule.java @@ -1,23 +1,21 @@ package ru.spcex.clearing.service.validation; +import java.util.Map; +import java.util.Optional; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity; -import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity; import ru.clearing.classes.statics.data.sdf.SDf08; import ru.clearing.classes.statics.data.security.Security; import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.error.ClearingErrorInternal; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector; import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.text.TextUtil; import ru.spcex.platform.utils.validation.IValidationRule; -import java.util.Map; -import java.util.Optional; - public enum Sdf08NewValidationRule implements IValidationRule> { @Deprecated // unused, см. тз по поиску компаний "III - Изменение statement по sDf08" 1. CompanyPresent() { @@ -55,13 +53,14 @@ public enum Sdf08NewValidationRule implements IValidationRule validate(ImdgValidationContext context) { SDf08 sdf08 = context.getValidatedObject(); - Imdg fxIncmSecImdg = context.obtainMap(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class); - Imdg equityImdg = context.obtainMap(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class); - - Security security = fxIncmSecImdg.getFirstObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode())); - if (security == null) { - security = equityImdg.getFirstObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode())); - } + SecuritySelector slctr = new SecuritySelector<>( + context.obtainMap(IMDGDistributedNames.Map_FixedIncomeSecurity, Security.class), + context.obtainMap(IMDGDistributedNames.Map_MoneyMarketSecurity, Security.class), + context.obtainMap(IMDGDistributedNames.Map_EquitySecurity, Security.class), + context.obtainMap(IMDGDistributedNames.Map_CurrencyPairSecurity, Security.class), + context.obtainMap(IMDGDistributedNames.Map_DigitalCertificateSecurity, Security.class) + ); + Security security = slctr.selectSecurityBySymbol(sdf08.getSecurityCode()); if (security == null) { return of(ClearingError.SecurityNotFound, sdf08.getSecurityCode()); }