From c8f1610eba533135bdc58f1ddaa7ba6990cfa941 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Fri, 22 May 2026 09:58:27 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-1023 --- .../validation/ClientCodeValidationConfig.java | 5 +++-- .../GatewayClientCodeValidationRule.java | 17 +++-------------- .../GatewayEksClientCodeValidationRule.java | 18 +++++++++++++++--- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClientCodeValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClientCodeValidationConfig.java index f7385a0db..3ff22bb3e 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClientCodeValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClientCodeValidationConfig.java @@ -13,6 +13,7 @@ import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.account.validation.BackendClientCodeValidationRule; import ru.spcex.clearing.account.validation.GatewayClientCodeValidationRule; +import ru.spcex.clearing.account.validation.GatewayEksClientCodeValidationRule; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeUpdateRequest; @@ -196,9 +197,9 @@ public class ClientCodeValidationConfig { addImdg.accept(IMDGDistributedNames.Map_DepoAccount); return new ValidatorImpl<>(context, FieldRequiredRule.instance("client_code", TkrAccount::getClientCode, AccountError.RequiredFieldEmpty), - GatewayClientCodeValidationRule.CompanyPresent, + GatewayEksClientCodeValidationRule.CompanyPresent, // GatewayClientCodeValidationRule.AllAccountsPresent, - GatewayClientCodeValidationRule.DepoAccountsPresent + GatewayEksClientCodeValidationRule.DepoAccountsPresent // GatewayClientCodeValidationRule.TcrIsNotPresent, // GatewayClientCodeValidationRule.TcrListIsNotPresent ); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayClientCodeValidationRule.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayClientCodeValidationRule.java index b680a7eac..a87115f75 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayClientCodeValidationRule.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayClientCodeValidationRule.java @@ -7,8 +7,6 @@ import java.util.Map; import java.util.Optional; import org.springframework.util.StringUtils; import ru.clearing.classes.statics.data.account.Account; -import ru.clearing.classes.statics.data.account.AccountSymbols; -import ru.clearing.classes.statics.data.account.DepoAccount; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistryList; @@ -98,18 +96,9 @@ public enum GatewayClientCodeValidationRule implements IValidationRule accountSymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class); - ImdgPredicateBuilder predicateBuilder = accountSymbolsImdg.predicateBuilder(); - AccountSymbols accountSymbols = accountSymbolsImdg.getSingleObjectByPredicate( - predicateBuilder.equals("accountSymbolValue", depoAccountVal) - ); - - if (accountSymbols == null) { - return of(AccountError.DepoAccountNotFound, "depo_account"); - } - Imdg imdg = context.obtainMap(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); - DepoAccount depoAccount = imdg.getFirstObjectByPredicate( - predicateBuilder.equals("accountId", accountSymbols.getAccountId()) + Imdg imdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account depoAccount = imdg.getFirstObjectByFieldValues( + Map.of("account", depoAccountVal) ); if (depoAccount == null) { context.storeObject(ClientCodeStoreObjects.DEPO_ACCOUNT, Optional.empty()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayEksClientCodeValidationRule.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayEksClientCodeValidationRule.java index 9e6a85bc0..ee88998fb 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayEksClientCodeValidationRule.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayEksClientCodeValidationRule.java @@ -8,6 +8,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.account.AccountSymbols; +import ru.clearing.classes.statics.data.account.DepoAccount; import ru.clearing.classes.statics.data.company.Company; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -15,6 +17,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.TkrAccount; import ru.spcex.clearing.platform.messaging.domain.cud.gateway.MoneyAccountMsgRequest; import ru.spcex.platform.enumeration.CurrencyCode; import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.validation.IValidationRule; @@ -75,9 +78,18 @@ public enum GatewayEksClientCodeValidationRule implements IValidationRule imdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account depoAccount = imdg.getFirstObjectByFieldValues( - Map.of("account", depoAccountVal) + Imdg accountSymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class); + ImdgPredicateBuilder predicateBuilder = accountSymbolsImdg.predicateBuilder(); + AccountSymbols accountSymbols = accountSymbolsImdg.getSingleObjectByPredicate( + predicateBuilder.equals("accountSymbolValue", depoAccountVal) + ); + + if (accountSymbols == null) { + return of(AccountError.DepoAccountNotFound, "depo_account"); + } + Imdg imdg = context.obtainMap(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + DepoAccount depoAccount = imdg.getFirstObjectByPredicate( + predicateBuilder.equals("accountId", accountSymbols.getAccountId()) ); if (depoAccount == null) { context.storeObject(ClientCodeStoreObjects.DEPO_ACCOUNT, Optional.empty());