From 616df8d5e5812da9623f754b03642b46eb6e4070 Mon Sep 17 00:00:00 2001 From: ialbert Date: Sat, 27 May 2023 18:35:27 +0300 Subject: [PATCH] ValidationConfig clearing-service fix --- .../clearing/config/ValidationConfig.java | 86 +++++++++---------- 1 file changed, 39 insertions(+), 47 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 4ad5956a6..3f46dca2e 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 @@ -8,14 +8,15 @@ import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.execution.ExecutionDeposit; import ru.clearing.classes.statics.data.misc.STrades; +import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.classes.statics.data.sdf.SDf01; import ru.clearing.classes.statics.data.sdf.SDf57; import ru.clearing.classes.statics.data.security.Security; +import ru.clearing.platform.dictionary.SectionDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.service.validation.*; -import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.ClearingCategory; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -23,48 +24,42 @@ import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.validation.IValidator; import ru.spcex.platform.utils.validation.ValidatorImpl; -import java.util.HashMap; -import java.util.Map; -import java.util.function.BiConsumer; import java.util.function.BiFunction; -import java.util.function.Consumer; import java.util.function.Function; @Configuration public class ValidationConfig { - private final Map> imdgs; - private final BiConsumer, String> addImdg = (context, s) - -> context.addImdg(s, getImdg(s)); + + Imdg imdgRelation; + Imdg imdgCompany; + Imdg imdgAccount; + Imdg imdgAccountBalance; + Imdg imdgSecurity; + Imdg imdgTradingClearingRegistry; + Imdg imdgSession; + Imdg imdgSectionDictionary; public ValidationConfig(ImdgProvider imdgProvider) { - this.imdgs = new HashMap<>(); - BiConsumer> addImdg = (s, aClass) -> imdgs.put(s, imdgProvider.getImdg(s, aClass)); - addImdg.accept(IMDGDistributedNames.Map_Relation, Relation.class); - addImdg.accept(IMDGDistributedNames.Map_Company, Company.class); - addImdg.accept(IMDGDistributedNames.Map_Account, Account.class); - addImdg.accept(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); - addImdg.accept(IMDGDistributedNames.Map_Security, Security.class); - addImdg.accept(IMDGDistributedNames.Map_Company, Company.class); - addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); - } - - /** - * чтобы во всех валидаторах был один экземпляр Imdg - */ - private Imdg getImdg(String key) { - return imdgs.get(key); + this.imdgRelation = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + this.imdgCompany = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.imdgAccount = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); + this.imdgAccountBalance = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); + this.imdgSecurity = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class); + this.imdgTradingClearingRegistry = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); + this.imdgSession = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.imdgSectionDictionary = imdgProvider.getImdg(IMDGDistributedNames.Map_SectionDictionary, SectionDictionary.class); } @Bean("executionDepositValidator") - public BiFunction executionDepositValidator() { + public BiFunction executionDepositValidator(ImdgProvider imdgProvider) { return (category, execDeposit) -> { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(execDeposit); context.storeObject(ClrngValidationStored.categoryPredefined, category); - addImdg.accept(context, IMDGDistributedNames.Map_Relation); - addImdg.accept(context, IMDGDistributedNames.Map_Company); - addImdg.accept(context, IMDGDistributedNames.Map_Account); - addImdg.accept(context, IMDGDistributedNames.Map_AccountBalance); + context.addImdg(IMDGDistributedNames.Map_Relation, imdgRelation); + context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany); + context.addImdg(IMDGDistributedNames.Map_Account, imdgAccount); + context.addImdg(IMDGDistributedNames.Map_AccountBalance, imdgAccountBalance); return new ValidatorImpl<>(context, ExecutionDepositValidationRule.ClearingIsAllowed, ExecutionDepositValidationRule.AccountIsNotBlocked, @@ -78,9 +73,9 @@ public class ValidationConfig { return sTrades -> { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(sTrades); - addImdg.accept(context, IMDGDistributedNames.Map_Security); - addImdg.accept(context, IMDGDistributedNames.Map_Company); - addImdg.accept(context, IMDGDistributedNames.Map_TradingClearingRegistry); + context.addImdg(IMDGDistributedNames.Map_Security, imdgSecurity); + context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany); + context.addImdg(IMDGDistributedNames.Map_TradingClearingRegistry, imdgTradingClearingRegistry); return new ValidatorImpl<>(context, STradesValidationRule.SecurityPresent, STradesValidationRule.CompanyPresent, @@ -94,12 +89,12 @@ public class ValidationConfig { return rgs -> { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(rgs); - addImdg.accept(context, IMDGDistributedNames.Map_Relation); - addImdg.accept(context, IMDGDistributedNames.Map_Session); - addImdg.accept(context, IMDGDistributedNames.Map_SectionDictionary); - addImdg.accept(context, IMDGDistributedNames.Map_Account); - addImdg.accept(context, IMDGDistributedNames.Map_Company); - addImdg.accept(context, IMDGDistributedNames.Map_TradingClearingRegistry); + context.addImdg(IMDGDistributedNames.Map_Relation, imdgRelation); + context.addImdg(IMDGDistributedNames.Map_Session, imdgSession); + context.addImdg(IMDGDistributedNames.Map_SectionDictionary, imdgSectionDictionary); + context.addImdg(IMDGDistributedNames.Map_Account, imdgAccount); + context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany); + context.addImdg(IMDGDistributedNames.Map_TradingClearingRegistry, imdgTradingClearingRegistry); return new ValidatorImpl<>(context, RegistryStep3ValidationRule.ClearingAvailable, RegistryStep3ValidationRule.AccountActive, @@ -112,9 +107,8 @@ public class ValidationConfig { return sDf01 -> { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(sDf01); - Consumer addImdg = (s) -> context.addImdg(s, getImdg(s)); - addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_Company); + context.addImdg(IMDGDistributedNames.Map_Account, imdgAccount); + context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany); return new ValidatorImpl<>(context, Sdf01ValidationRule.CompanyPresent, Sdf01ValidationRule.AccountPresent, @@ -130,9 +124,8 @@ public class ValidationConfig { return sDf57 -> { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(sDf57); - Consumer addImdg = (s) -> context.addImdg(s, getImdg(s)); - addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_Company); + context.addImdg(IMDGDistributedNames.Map_Account, imdgAccount); + context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany); return new ValidatorImpl<>(context, Sdf57ValidationRule.CompanyDebOrCredPresent, Sdf57ValidationRule.AccountDebOrCredPresent, @@ -146,9 +139,8 @@ public class ValidationConfig { return sDf01 -> { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(sDf01); - Consumer addImdg = (s) -> context.addImdg(s, getImdg(s)); - addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_Company); + context.addImdg(IMDGDistributedNames.Map_Account, imdgAccount); + context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany); return new ValidatorImpl<>(context, Sdf01NewValidationRule.CompanyPresent, Sdf01NewValidationRule.AccountType,