diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java index a9fdf5cf6..74e8954f5 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java @@ -73,11 +73,8 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_Company); return new ValidatorImpl<>(context, Sdf01ValidationRule.CompanyPresent, - Sdf01ValidationRule.AccountPresent, - Sdf01ValidationRule.CurrencyCode, - Sdf01ValidationRule.CurrentDateOnly, - MarketIsUValidationRule.instance, - Sdf01ValidationRule.accountType); + SdfCommonValidationRule.AccountPresent, + MarketIsUValidationRule.instance); }; } @@ -116,5 +113,4 @@ public class ValidationConfig { } - } diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRule.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRule.java new file mode 100644 index 000000000..43cb3cd49 --- /dev/null +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRule.java @@ -0,0 +1,41 @@ +package ru.spcex.clearing.balance.validation; + +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.CompanySymbols; +import ru.clearing.classes.statics.data.sdf.SDf16; +import ru.spcex.clearing.balance.errors.BalanceError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.validation.IValidationRule; + +import java.util.Map; +import java.util.Optional; + +public enum Sdf16ValidationRule implements IValidationRule> { + CompanyPresent() { + @Override + public Optional validate(ImdgValidationContext context) { + SDf16 sdf16 = context.getValidatedObject(); + Imdg companySymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); + Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); + CompanySymbols companySymbols = companySymbolsImdg.getSingleObjectByFieldValues(Map.of("companySymbolValue", sdf16.getInn())); +// CompanySymbols companySymbols = companySymbolsImdg.getSingleObjectByFieldValues(Map.of("companySymbolValue", sdf16.getInn()));//search by bic + Company company = null; + if (companySymbols != null) { + company = companyImdg.getSingleObjectByID(companySymbols.getCompanyId()); + } + if (company == null) { + return of(BalanceError.CompanyNotFound); + } + context.storeObject(ValidationStored.Company, company); + return empty(); + } + }; + + @Override + public String ruleName() { + return "Sdf01ValidationRule." + name(); + } +} diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/SdfCommonValidationRule.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/SdfCommonValidationRule.java new file mode 100644 index 000000000..ec8090eda --- /dev/null +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/SdfCommonValidationRule.java @@ -0,0 +1,38 @@ +package ru.spcex.clearing.balance.validation; + +import ru.clearing.classes.statics.data.account.Account; +import ru.spcex.clearing.balance.errors.BalanceError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.platform.classes.base.interfaces.WithAccount; +import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.validation.IValidationRule; + +import java.time.format.DateTimeFormatter; +import java.util.Map; +import java.util.Optional; + +public enum SdfCommonValidationRule implements IValidationRule> { + AccountPresent() { + @Override + public Optional validate(ImdgValidationContext context) { + WithAccount withAccount = context.getValidatedObject(); + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByFieldValues(Map.of("account", withAccount.getAccount(), + "accountType", AccountType.Clrn.getKey())); + if (account == null) { + return of(BalanceError.AccountNotPresent); + } + context.storeObject(ValidationStored.Account, account); + return empty(); + } + }; + private final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy"); + + @Override + public String ruleName() { + return "Sdf01ValidationRule." + name(); + } +} diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java index adc7a0c6c..dce51b3db 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java @@ -45,6 +45,7 @@ public class SDf16 extends SpcexObjectBase implements WithAccount, WithMarket { this.sum = value; } + @Override public String getMarket() { return market; }