From 563e7f47c44083d5c2ad9de07e4ad965ddd58c5e Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 28 Jun 2023 19:01:12 +0300 Subject: [PATCH] =?UTF-8?q?account-service=20http://jira.mfd.msk:8088/brow?= =?UTF-8?q?se/CLS-361=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=203.5=20=D0=B4=D0=BB=D1=8F=20=D0=A2=D0=9A=D0=A0=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TradingClearingRegistryValidationConfig.java | 15 ++++++++++++++- .../config/validation/ValidationConfig.java | 2 ++ .../clearing/account/errors/AccountError.java | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java index 845a3bebc..ce1e4be16 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -7,6 +7,7 @@ import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.account.DepoAccount; import ru.clearing.classes.statics.data.account.InformationAccount; 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; @@ -19,6 +20,7 @@ import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.CompanySymbol; import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.validation.ImdgValidationContext; @@ -41,6 +43,7 @@ public class TradingClearingRegistryValidationConfig { context.setValidatedObject(tradingClearingRegistryNewRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_CompanySymbols); addImdg.accept(IMDGDistributedNames.Map_Account); addImdg.accept(IMDGDistributedNames.Map_ClearingAccount); addImdg.accept(IMDGDistributedNames.Map_DepoAccount); @@ -52,7 +55,17 @@ public class TradingClearingRegistryValidationConfig { IMDGDistributedNames.Map_Company, Company.class, AccountError.RequiredFieldEmpty, - AccountError.CompanyNotFound), + AccountError.CompanyNotFound, + true, + company -> { + Imdg companySymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); + CompanySymbols symbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( + "companyId", company.getId(), + "companySymbol", CompanySymbol.CLRC.getKey() + )); + if (symbol == null) return AccountError.ClearingCompanySymbolNotFound; + return null; + }), FieldRequiredRule.instance("moneyAccountId", TradingClearingRegistryNewRequest::getMoneyAccountId, AccountError.RequiredFieldEmpty, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java index 5f8c38044..1a542396e 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java @@ -6,6 +6,7 @@ import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.account.*; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; 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.*; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -28,6 +29,7 @@ public class ValidationConfig { BiConsumer> addImdg = (s, aClass) -> imdg.put(s, imdgProvider.getImdg(s, aClass)); addImdg.accept(IMDGDistributedNames.Map_Company, Company.class); + addImdg.accept(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); addImdg.accept(IMDGDistributedNames.Map_ClearingAccountTypeDictionary, ClearingAccountTypeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_Account, Account.class); 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 d0ce046ef..ab7cc4129 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 @@ -19,6 +19,7 @@ public enum AccountError implements IErrorEnumId { DepoAccountNotFound(5017L), MoneyAccountNotFound(5018L), ClearingCategoryNotFound(5019L), + ClearingCompanySymbolNotFound(5022L), // Для компании %s отсутствует клиринговый код». TradingClearingRegistryNotFound(3022L), ;