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 4c8db44a6..2117e59f8 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 @@ -1,5 +1,6 @@ package ru.spcex.clearing.account.config.validation; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -13,8 +14,10 @@ import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.ClientCode; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; +import ru.spcex.clearing.account.validation.ClientCodeStoreObjects; 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; @@ -27,6 +30,7 @@ import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.CompanySymbol; import ru.spcex.platform.enumeration.CurrencyCode; +import ru.spcex.platform.enumeration.Status; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; @@ -50,45 +54,149 @@ public class ClientCodeValidationConfig { addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); return new ValidatorImpl<>(context, - FieldRequiredRule.instance("companyId", ClientCodeNewRequest::getCompanyId, AccountError.RequiredFieldEmpty), - IdPresentRule.instance("companyId", - ClientCodeNewRequest::getCompanyId, - IMDGDistributedNames.Map_Company, - Company.class, - AccountError.RequiredFieldEmpty, - AccountError.CompanyNotFound), + FieldRequiredRule.instance("companyId", ClientCodeNewRequest::getCompanyId, AccountError.RequiredFieldEmpty), + IdPresentRule.instance("companyId", + ClientCodeNewRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + AccountError.RequiredFieldEmpty, + AccountError.CompanyNotFound), - IdPresentRule.instance("moneyAccountId", - ClientCodeNewRequest::getMoneyAccountId, - IMDGDistributedNames.Map_Account, - Account.class, - AccountError.RequiredFieldEmpty, - AccountError.AccountNotFound, - false, - acc -> Objects.equals(context.getValidatedObject().getCompanyId(), acc.getCompanyId()) - ? null : AccountError.AccountNotFound - ), - IdPresentRule.instance("depoAccountId", - ClientCodeNewRequest::getDepoAccountId, - IMDGDistributedNames.Map_Account, - Account.class, - AccountError.RequiredFieldEmpty, - AccountError.AccountNotFound, - false, - acc -> Objects.equals(context.getValidatedObject().getCompanyId(), acc.getCompanyId()) - ? null : AccountError.AccountNotFound - ), - new ExistAllCurrencyAccountId<>("currencyAccountList", - ClientCodeNewRequest::getCurrencyAccountList - ), + IdPresentRule.instance("moneyAccountId", + ClientCodeNewRequest::getMoneyAccountId, + IMDGDistributedNames.Map_Account, + Account.class, + AccountError.RequiredFieldEmpty, + AccountError.AccountNotFound, + false, + acc -> Objects.equals(context.getValidatedObject().getCompanyId(), acc.getCompanyId()) + ? null : AccountError.AccountNotFound + ), + IdPresentRule.instance("depoAccountId", + ClientCodeNewRequest::getDepoAccountId, + IMDGDistributedNames.Map_Account, + Account.class, + AccountError.RequiredFieldEmpty, + AccountError.AccountNotFound, + false, + acc -> Objects.equals(context.getValidatedObject().getCompanyId(), acc.getCompanyId()) + ? null : AccountError.AccountNotFound + ), + new ExistAllCurrencyAccountId<>("currencyAccountList", + ClientCodeNewRequest::getCurrencyAccountList + ), - DictionaryPresentRule.instance("stauts", - ClientCodeNewRequest::getStatus, - IMDGDistributedNames.Map_ServiceStatusDictionary, - ServiceStatusDictionary.class, - AccountError.RequiredFieldEmpty, - AccountError.DictionaryNotFound, - false) + DictionaryPresentRule.instance("stauts", + ClientCodeNewRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.DictionaryNotFound, + false) + ); + }; + } + + @Bean("clientCodeUpdateRequestValidator") + public Function clientCodeUpdateRequestValidator(Map> imdgForValidation) { + return clientCodeUpdateRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(clientCodeUpdateRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_ClientCode); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); + return new ValidatorImpl>(context, + IdPresentRule.instance("id", + ClientCodeUpdateRequest::getId, + IMDGDistributedNames.Map_ClientCode, + ClientCode.class, + AccountError.RequiredFieldEmpty, + AccountError.RecordNotFound + ), + + FieldRequiredRule.instance("companyId", ClientCodeUpdateRequest::getCompanyId, AccountError.RequiredFieldEmpty), + IdPresentRule.instance("companyId", + ClientCodeUpdateRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + AccountError.RequiredFieldEmpty, + AccountError.CompanyNotFound), + + IdPresentRule.instance("moneyAccountId", + ClientCodeUpdateRequest::getMoneyAccountId, + IMDGDistributedNames.Map_Account, + Account.class, + AccountError.RequiredFieldEmpty, + AccountError.AccountNotFound, + true, + acc -> Objects.equals(context.getValidatedObject().getCompanyId(), acc.getCompanyId()) + ? null : AccountError.AccountNotFound + ), + IdPresentRule.instance("depoAccountId", + ClientCodeUpdateRequest::getDepoAccountId, + IMDGDistributedNames.Map_Account, + Account.class, + AccountError.RequiredFieldEmpty, + AccountError.AccountNotFound, + false, + acc -> Objects.equals(context.getValidatedObject().getCompanyId(), acc.getCompanyId()) + ? null : AccountError.AccountNotFound + ), + new ExistAllCurrencyAccountId<>("currencyAccountList", + ClientCodeUpdateRequest::getCurrencyAccountList + ), + + DictionaryPresentRule.instance("stauts", + ClientCodeUpdateRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.DictionaryNotFound, + false) + ); + }; + } + + @Bean("clientCodeDeleteRequestValidator") + public Function clientCodeDeleteRequestValidator(Map> imdgForValidation) { + return companyDeleteRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(companyDeleteRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_ClientCode); + return new ValidatorImpl<>(context, +// FieldRequiredRule.instance("id", CommonDeleteRequest::getId, CompanyErrors.RequiredFieldEmpty), + IdPresentRule.instance("id", + CommonDeleteRequest::getId, + IMDGDistributedNames.Map_ClientCode, + ClientCode.class, + AccountError.RequiredFieldEmpty, + AccountError.RecordNotFound) + ); + }; + } + + @Bean("tkrAccountsGatewayValidator") + public Function tkrAccountsGatewayValidator(Map> imdgForValidation) { + return tkrGatewayRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tkrGatewayRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_CompanySymbols); + addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); + return new ValidatorImpl<>(context, + new ExistCompanyByUuid<>("companySymbolValue", + TkrAccount::getCompanyId), + new ExistAccountByValue<>("account", + TkrAccount::getMoneyAccounts), + new ExistDepoAccountByValue<>("depo_account", + TkrAccount::getDepoAccount), + new ExistTcrByCode<>("tcr_code", + TkrAccount::getTkrCode) ); }; } @@ -110,7 +218,7 @@ public class ClientCodeValidationConfig { return empty(); // необязательное поле } Imdg imdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - for (Long id:ids) { + for (Long id : ids) { if (id == null) { // null значения в массиве не ожидаются return of(AccountError.RequiredFieldEmpty, fieldName); } @@ -128,6 +236,43 @@ public class ClientCodeValidationConfig { } } + public static class ExistTcrByCode implements IValidationRule> { + String fieldName; + Function codeGetter; + + public ExistTcrByCode(String fieldName, Function codeGetter) { + this.fieldName = fieldName; + this.codeGetter = codeGetter; + } + + @Override + public Optional validate(ImdgValidationContext context) { + R validatedObject = context.getValidatedObject(); + String tcrCode = codeGetter.apply(validatedObject); + if (!StringUtils.hasText(tcrCode)) { + return of(AccountError.RequiredFieldEmpty, fieldName); + } + Imdg imdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class); + + TradingClearingRegistry tcr = imdg.getFirstObjectByFieldValues( + Map.of( + "code", tcrCode, + "status", Status.Active.getKey() + ) + ); + if (tcr != null) { + return of(AccountError.TCR_ALREADY_EXIST_GTW, fieldName); + } + return Optional.empty(); + } + + @Override + public String ruleName() { + return getClass().getSimpleName() + "{" + fieldName + "}"; + } + } + public static class ExistCompanyByUuid implements IValidationRule> { String fieldName; Function symbolCodeGetter; @@ -151,9 +296,17 @@ public class ClientCodeValidationConfig { "companySymbolValue", symbolCodeValue ) ); - if (companySymbols == null) { // null значения в массиве не ожидаются + if (companySymbols == null) { return of(AccountError.COMPANY_NOT_FOUND_GTW, fieldName); } + + Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); + Company company = companyImdg.getSingleObjectByID(companySymbols.getCompanyId()); + if (company == null) { + return of(AccountError.COMPANY_NOT_FOUND_GTW, fieldName); + } + + context.storeObject(ClientCodeStoreObjects.COMPANY, company); return Optional.empty(); } @@ -179,7 +332,12 @@ public class ClientCodeValidationConfig { if (accountList == null || accountList.isEmpty()) { return of(AccountError.RequiredFieldEmpty, fieldName); } + List currencies = accountList.stream().map(MoneyAccountMsgRequest::getCurrCode).toList(); + if (!currencies.contains(CurrencyCode.RUB.getKey())) { + return of(AccountError.RequiredFieldEmpty, fieldName); + } Imdg imdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Map accountByCurrency = new HashMap<>(); for (MoneyAccountMsgRequest moneyAccountMsg : accountList) { ImdgPredicateBuilder predicateBuilder = imdg.predicateBuilder(); ImdgPredicate currencyPredicate; @@ -198,7 +356,9 @@ public class ClientCodeValidationConfig { if (account == null) { return of(AccountError.ACCOUNT_NOT_FOUND_GTW, moneyAccountMsg.getAccount(), fieldName); } + accountByCurrency.put(account.getCurrency(), account); } + context.storeObject(ClientCodeStoreObjects.MAPPED_TO_CURRENCY_ACCOUNTS, accountByCurrency); return Optional.empty(); } @@ -208,103 +368,40 @@ public class ClientCodeValidationConfig { } } - @Bean("clientCodeUpdateRequestValidator") - public Function clientCodeUpdateRequestValidator(Map> imdgForValidation) { - return clientCodeUpdateRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); - context.setValidatedObject(clientCodeUpdateRequest); - Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); - addImdg.accept(IMDGDistributedNames.Map_ClientCode); - addImdg.accept(IMDGDistributedNames.Map_Company); - addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); - addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); - return new ValidatorImpl>(context, - IdPresentRule.instance("id", - ClientCodeUpdateRequest::getId, - IMDGDistributedNames.Map_ClientCode, - ClientCode.class, - AccountError.RequiredFieldEmpty, - AccountError.RecordNotFound - ), + public static class ExistDepoAccountByValue implements IValidationRule> { + String fieldName; + Function depoAccountGetter; - FieldRequiredRule.instance("companyId", ClientCodeUpdateRequest::getCompanyId, AccountError.RequiredFieldEmpty), - IdPresentRule.instance("companyId", - ClientCodeUpdateRequest::getCompanyId, - IMDGDistributedNames.Map_Company, - Company.class, - AccountError.RequiredFieldEmpty, - AccountError.CompanyNotFound), + public ExistDepoAccountByValue(String fieldName, Function accountsListValueGetter) { + this.fieldName = fieldName; + this.depoAccountGetter = depoAccountGetter; + } - IdPresentRule.instance("moneyAccountId", - ClientCodeUpdateRequest::getMoneyAccountId, - IMDGDistributedNames.Map_Account, - Account.class, - AccountError.RequiredFieldEmpty, - AccountError.AccountNotFound, - true, - acc -> Objects.equals(context.getValidatedObject().getCompanyId(), acc.getCompanyId()) - ? null : AccountError.AccountNotFound - ), - IdPresentRule.instance("depoAccountId", - ClientCodeUpdateRequest::getDepoAccountId, - IMDGDistributedNames.Map_Account, - Account.class, - AccountError.RequiredFieldEmpty, - AccountError.AccountNotFound, - false, - acc -> Objects.equals(context.getValidatedObject().getCompanyId(), acc.getCompanyId()) - ? null : AccountError.AccountNotFound - ), - new ExistAllCurrencyAccountId<>("currencyAccountList", - ClientCodeUpdateRequest::getCurrencyAccountList - ), + @Override + public Optional validate(ImdgValidationContext context) { + R validatedObject = context.getValidatedObject(); + String depoAccountVal = depoAccountGetter.apply(validatedObject); + if (!StringUtils.hasText(depoAccountVal)) { + context.storeObject(ClientCodeStoreObjects.DEPO_ACCOUNT,Optional.empty()); + return empty(); + } - DictionaryPresentRule.instance("stauts", - ClientCodeUpdateRequest::getStatus, - IMDGDistributedNames.Map_ServiceStatusDictionary, - ServiceStatusDictionary.class, - AccountError.RequiredFieldEmpty, - AccountError.DictionaryNotFound, - false) + 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()); + return of(AccountError.DEPO_ACCOUNT_NOT_FOUND_GTW, fieldName); + } - @Bean("clientCodeDeleteRequestValidator") - public Function clientCodeDeleteRequestValidator(Map> imdgForValidation) { - return companyDeleteRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); - context.setValidatedObject(companyDeleteRequest); - Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); - addImdg.accept(IMDGDistributedNames.Map_ClientCode); - return new ValidatorImpl<>(context, -// FieldRequiredRule.instance("id", CommonDeleteRequest::getId, CompanyErrors.RequiredFieldEmpty), - IdPresentRule.instance("id", - CommonDeleteRequest::getId, - IMDGDistributedNames.Map_ClientCode, - ClientCode.class, - AccountError.RequiredFieldEmpty, - AccountError.RecordNotFound) - ); - }; - } + context.storeObject(ClientCodeStoreObjects.DEPO_ACCOUNT, depoAccount); + return Optional.empty(); + } - @Bean("tkrAccountsGatewayValidator") - public Function tkrAccountsGatewayValidator(Map> imdgForValidation) { - return tkrGatewayRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); - context.setValidatedObject(tkrGatewayRequest); - Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); - addImdg.accept(IMDGDistributedNames.Map_CompanySymbols); - addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); - return new ValidatorImpl<>(context, - new ExistCompanyByUuid<>("companySymbolValue", - TkrAccount::getCompanyId), - new ExistAccountByValue<>("account", - TkrAccount::getMoneyAccounts) - ); - }; + @Override + public String ruleName() { + return getClass().getSimpleName() + "{" + fieldName + "}"; + } } } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java index 61169108c..034b52630 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java @@ -29,6 +29,8 @@ public enum AccountError implements IErrorEnumId { TCR_NOT_FOUND_GTW(5028L), ACCOUNT_NOT_FOUND_GTW(5029L), COMPANY_NOT_FOUND_GTW(5030L), + TCR_ALREADY_EXIST_GTW(5031L), + DEPO_ACCOUNT_NOT_FOUND_GTW(5032L), TradingClearingRegistryNotFound(3022L), CurrencyNotFound(1016L), ; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/facade/TradingClearingRegistryFacade.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/facade/TradingClearingRegistryFacade.java index 335e4ea12..6fc946f8e 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/facade/TradingClearingRegistryFacade.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/facade/TradingClearingRegistryFacade.java @@ -30,28 +30,24 @@ public class TradingClearingRegistryFacade { private final Logger log = LoggerFactory.getLogger(getClass()); private final ImdgProvider imdgProvider; private final KafkaSender kafkaSender; + private final Imdg tradingClearingRegistryImdg; + private final Imdg depoAccountImdg; + private final Imdg clearingAccountImdg; + private final Imdg companyImdg; public TradingClearingRegistryFacade(ImdgProvider imdgProvider, KafkaSender kafkaSender) { this.imdgProvider = imdgProvider; + this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class); + this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); this.kafkaSender = kafkaSender; } public TradingClearingRegistry createTradingClearingRegistry(TradingClearingRegistryNewRequest request, IValidator validator) { - Imdg tradingClearingRegistryImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class - ); - Imdg depoAccountImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_DepoAccount, DepoAccount.class - ); - Imdg clearingAccountImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class - ); - Imdg companyImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_Company, Company.class - ); - Long id = tradingClearingRegistryImdg.nextIDSequenceFor(); TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry(); tradingClearingRegistry.setId(id); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/facade/TradingClearingRegistryListFacade.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/facade/TradingClearingRegistryListFacade.java index c12afcab2..a6bf31300 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/facade/TradingClearingRegistryListFacade.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/facade/TradingClearingRegistryListFacade.java @@ -24,10 +24,18 @@ public class TradingClearingRegistryListFacade { private final Logger log = LoggerFactory.getLogger(getClass()); private final ImdgProvider imdgProvider; private final KafkaSender kafkaSender; + private final Imdg tradingClearingRegistryImdg; + private final Imdg tradingClearingRegistryListImdg; + private final Imdg accountImdg; public TradingClearingRegistryListFacade(ImdgProvider imdgProvider, KafkaSender kafkaSender) { this.imdgProvider = imdgProvider; + this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class); + this.tradingClearingRegistryListImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistryList, + TradingClearingRegistryList.class); + this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.kafkaSender = kafkaSender; } @@ -36,20 +44,10 @@ public class TradingClearingRegistryListFacade { Account account; } + public List createTradingClearingRegistryList(TradingClearingRegistryListNewRequest request, Stored stored) { - Imdg tradingClearingRegistryImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class - ); - Imdg tradingClearingRegistryListImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_TradingClearingRegistryList, TradingClearingRegistryList.class - ); - Imdg accountImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_Account, Account.class - ); - TradingClearingRegistry tcr = tradingClearingRegistryImdg.getSingleObjectByID(request.getTradingClearingRegistryId()); - Instant now = Instant.now(); List newIds = new ArrayList<>(); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/listeners/ClientCodeMessageListener.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/listeners/ClientCodeMessageListener.java index bf862330d..56e68d2c9 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/listeners/ClientCodeMessageListener.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/v2/listeners/ClientCodeMessageListener.java @@ -114,7 +114,7 @@ public class ClientCodeMessageListener extends QueueConsumer implements Initiali Company company = validator.getStored(ClientCodeStoreObjects.COMPANY); Optional depoAccount = validator.getStored(ClientCodeStoreObjects.DEPO_ACCOUNT); Long depoAccountId = depoAccount.map(Account::getId).orElse(null); - Map accountByCurrency = validator.getStored(ClientCodeStoreObjects.MAPPED_TO_CURRENCY_ACCOUNTS); + Map accountByCurrency = validator.getStored(ClientCodeStoreObjects.MAPPED_TO_CURRENCY_ACCOUNTS); clientCodeNewRequest.setCompanyId(company.getId()); clientCodeNewRequest.setCode(tkrAccount.getClientCode()); @@ -124,7 +124,7 @@ public class ClientCodeMessageListener extends QueueConsumer implements Initiali List foreignCurrencyList = accountByCurrency.entrySet() .stream() - .filter(currencyCodeAccountEntry -> CurrencyCode.RUB != currencyCodeAccountEntry.getKey()) + .filter(currencyCodeAccountEntry -> !CurrencyCode.RUB.equalsByKey(currencyCodeAccountEntry.getKey())) .map(currencyCodeAccountEntry -> currencyCodeAccountEntry.getValue().getId()) .toList(); clientCodeNewRequest.setCurrencyAccountList(foreignCurrencyList);