add sdf16 validator

This commit is contained in:
etreshenkov 2022-11-01 17:29:18 +03:00
parent 15f42c96b8
commit 5422b93d34
4 changed files with 82 additions and 6 deletions

View file

@ -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 {
}
}

View file

@ -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<ImdgValidationContext<SDf16>> {
CompanyPresent() {
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<SDf16> context) {
SDf16 sdf16 = context.getValidatedObject();
Imdg<CompanySymbols> companySymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
Imdg<Company> 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();
}
}

View file

@ -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<ImdgValidationContext<WithAccount>> {
AccountPresent() {
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<WithAccount> context) {
WithAccount withAccount = context.getValidatedObject();
Imdg<Account> 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();
}
}

View file

@ -45,6 +45,7 @@ public class SDf16 extends SpcexObjectBase implements WithAccount, WithMarket {
this.sum = value;
}
@Override
public String getMarket() {
return market;
}