add sdf16 validator
This commit is contained in:
parent
15f42c96b8
commit
5422b93d34
4 changed files with 82 additions and 6 deletions
|
|
@ -73,11 +73,8 @@ public class ValidationConfig {
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Company);
|
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
Sdf01ValidationRule.CompanyPresent,
|
Sdf01ValidationRule.CompanyPresent,
|
||||||
Sdf01ValidationRule.AccountPresent,
|
SdfCommonValidationRule.AccountPresent,
|
||||||
Sdf01ValidationRule.CurrencyCode,
|
MarketIsUValidationRule.instance);
|
||||||
Sdf01ValidationRule.CurrentDateOnly,
|
|
||||||
MarketIsUValidationRule.instance,
|
|
||||||
Sdf01ValidationRule.accountType);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -116,5 +113,4 @@ public class ValidationConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -45,6 +45,7 @@ public class SDf16 extends SpcexObjectBase implements WithAccount, WithMarket {
|
||||||
this.sum = value;
|
this.sum = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getMarket() {
|
public String getMarket() {
|
||||||
return market;
|
return market;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue