http://jira.mfd.msk:8088/browse/CLS-1058 bugfix TCR validation
This commit is contained in:
parent
eb1ac07a8f
commit
ad34dcea75
4 changed files with 30 additions and 30 deletions
|
|
@ -449,12 +449,7 @@ public class ExecutionCurrencyComponent extends ExecutionAbstractComponent {
|
||||||
valCash.eqtySecCash,
|
valCash.eqtySecCash,
|
||||||
valCash.currPairSecCash,
|
valCash.currPairSecCash,
|
||||||
valCash.digitCertSecCash),
|
valCash.digitCertSecCash),
|
||||||
new CompanyByTradingCodeCashingValidationRule<>(
|
CompanyByTradingCodeCashingValidationRule.stradeCmp(valCash.cmpCash),
|
||||||
STrades::getFirmId, valCash.cmpCash, ValidationStored.STradesCompany
|
|
||||||
),
|
|
||||||
new CompanyByTradingCodeCashingValidationRule<>(
|
|
||||||
STrades::getCpFirmId, valCash.cmpCash, ValidationStored.STradesCounterCompany
|
|
||||||
),
|
|
||||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||||
ImdgValidationContext::getValidatedObject,
|
ImdgValidationContext::getValidatedObject,
|
||||||
ValidationStored.STradesCompany,
|
ValidationStored.STradesCompany,
|
||||||
|
|
@ -464,6 +459,7 @@ public class ExecutionCurrencyComponent extends ExecutionAbstractComponent {
|
||||||
STrades::getClassCode,
|
STrades::getClassCode,
|
||||||
ClearingError.RequiredFieldEmpty, true),
|
ClearingError.RequiredFieldEmpty, true),
|
||||||
new CounterStradePresentValidationRule(sTrades),
|
new CounterStradePresentValidationRule(sTrades),
|
||||||
|
CompanyByTradingCodeCashingValidationRule.counterStradeCmp(valCash.cmpCash),
|
||||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||||
ctx -> ctx.getStoredObject(ValidationStored.STradesCounterTrade),
|
ctx -> ctx.getStoredObject(ValidationStored.STradesCounterTrade),
|
||||||
ValidationStored.STradesCounterCompany,
|
ValidationStored.STradesCounterCompany,
|
||||||
|
|
|
||||||
|
|
@ -382,17 +382,13 @@ public class ExecutionDepositComponent extends ExecutionAbstractComponent {
|
||||||
context.setLogPrefix(LogPrefixId.INSTANCE);
|
context.setLogPrefix(LogPrefixId.INSTANCE);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
new STradesSecurityPresentDepositValidationRule(valCash.mmsCash),
|
new STradesSecurityPresentDepositValidationRule(valCash.mmsCash),
|
||||||
new CompanyByTradingCodeCashingValidationRule<>(
|
CompanyByTradingCodeCashingValidationRule.stradeCmp(valCash.cmpCash),
|
||||||
STrades::getFirmId, valCash.cmpCash, ValidationStored.STradesCompany
|
|
||||||
),
|
|
||||||
new CompanyByTradingCodeCashingValidationRule<>(
|
|
||||||
STrades::getCpFirmId, valCash.cmpCash, ValidationStored.STradesCounterCompany
|
|
||||||
),
|
|
||||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||||
ImdgValidationContext::getValidatedObject,
|
ImdgValidationContext::getValidatedObject,
|
||||||
ValidationStored.STradesCompany,
|
ValidationStored.STradesCompany,
|
||||||
ValidationStored.STradesTradingClearingRegistry),
|
ValidationStored.STradesTradingClearingRegistry),
|
||||||
new CounterStradePresentValidationRule(sTrades),
|
new CounterStradePresentValidationRule(sTrades),
|
||||||
|
CompanyByTradingCodeCashingValidationRule.counterStradeCmp(valCash.cmpCash),
|
||||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||||
ctx -> ctx.getStoredObject(ValidationStored.STradesCounterTrade),
|
ctx -> ctx.getStoredObject(ValidationStored.STradesCounterTrade),
|
||||||
ValidationStored.STradesCounterCompany,
|
ValidationStored.STradesCounterCompany,
|
||||||
|
|
|
||||||
|
|
@ -468,18 +468,15 @@ public class ExecutionFondComponent extends ExecutionAbstractComponent {
|
||||||
valCash.eqtySecCash,
|
valCash.eqtySecCash,
|
||||||
valCash.currPairSecCash,
|
valCash.currPairSecCash,
|
||||||
valCash.digitCertSecCash),
|
valCash.digitCertSecCash),
|
||||||
new CompanyByTradingCodeCashingValidationRule<>(
|
CompanyByTradingCodeCashingValidationRule.stradeCmp(valCash.cmpCash),
|
||||||
STrades::getFirmId, valCash.cmpCash, ValidationStored.STradesCompany
|
|
||||||
),
|
|
||||||
new CompanyByTradingCodeCashingValidationRule<>(
|
|
||||||
STrades::getCpFirmId, valCash.cmpCash, ValidationStored.STradesCounterCompany
|
|
||||||
),
|
|
||||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||||
ImdgValidationContext::getValidatedObject,
|
ImdgValidationContext::getValidatedObject,
|
||||||
ValidationStored.STradesCompany,
|
ValidationStored.STradesCompany,
|
||||||
ValidationStored.STradesTradingClearingRegistry),
|
ValidationStored.STradesTradingClearingRegistry),
|
||||||
new STradesSecurityDGCTValidationRule(valCash.udrCash),
|
new STradesSecurityDGCTValidationRule(valCash.udrCash),
|
||||||
new CounterStradePresentValidationRule(sTrades));
|
new CounterStradePresentValidationRule(sTrades),
|
||||||
|
CompanyByTradingCodeCashingValidationRule.counterStradeCmp(valCash.cmpCash)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ExecFondCompCash extends CashCloser {
|
private static class ExecFondCompCash extends CashCloser {
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,10 @@ package ru.spcex.clearing.service.validation.strades;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
|
import ru.clearing.classes.statics.data.misc.STrades;
|
||||||
import ru.spcex.clearing.error.ClearingError;
|
import ru.spcex.clearing.error.ClearingError;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.service.validation.ValidationStored;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
@ -18,11 +20,28 @@ public class CompanyByTradingCodeCashingValidationRule<T>
|
||||||
implements IValidationRule<ImdgValidationContext<T>> {
|
implements IValidationRule<ImdgValidationContext<T>> {
|
||||||
|
|
||||||
private final CashV2ByString<Company> cmpCash;
|
private final CashV2ByString<Company> cmpCash;
|
||||||
private final Function<T, String> extractor;
|
private final Function<ImdgValidationContext<T>, String> extractor;
|
||||||
private final Enum<?> storedKey;
|
private final Enum<?> storedKey;
|
||||||
|
|
||||||
|
public static CompanyByTradingCodeCashingValidationRule<STrades>
|
||||||
|
stradeCmp(CashV2ByString<Company> cmpCash) {
|
||||||
|
return new CompanyByTradingCodeCashingValidationRule<>(
|
||||||
|
ctx -> ctx.getValidatedObject().getFirmId(), cmpCash, ValidationStored.STradesCompany
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public CompanyByTradingCodeCashingValidationRule(Function<T, String> extractor,
|
public static CompanyByTradingCodeCashingValidationRule<STrades>
|
||||||
|
counterStradeCmp(CashV2ByString<Company> cmpCash) {
|
||||||
|
return new CompanyByTradingCodeCashingValidationRule<>(
|
||||||
|
ctx -> {
|
||||||
|
STrades counterTrade = ctx.getStoredObject(ValidationStored.STradesCounterTrade);
|
||||||
|
return counterTrade.getFirmId();
|
||||||
|
}, cmpCash, ValidationStored.STradesCounterCompany
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public CompanyByTradingCodeCashingValidationRule(Function<ImdgValidationContext<T>, String> extractor,
|
||||||
CashV2ByString<Company> cmpCash,
|
CashV2ByString<Company> cmpCash,
|
||||||
Enum<?> storedKey) {
|
Enum<?> storedKey) {
|
||||||
this.cmpCash = cmpCash;
|
this.cmpCash = cmpCash;
|
||||||
|
|
@ -30,13 +49,6 @@ public class CompanyByTradingCodeCashingValidationRule<T>
|
||||||
this.storedKey = storedKey;
|
this.storedKey = storedKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompanyByTradingCodeCashingValidationRule(Function<T, String> extractor,
|
|
||||||
CashV2ByString<Company> cmpCash) {
|
|
||||||
this.cmpCash = cmpCash;
|
|
||||||
this.extractor = extractor;
|
|
||||||
this.storedKey = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String ruleName() {
|
public String ruleName() {
|
||||||
return "CompanyByTradingCodeCashingValidationRule";
|
return "CompanyByTradingCodeCashingValidationRule";
|
||||||
|
|
@ -44,8 +56,7 @@ public class CompanyByTradingCodeCashingValidationRule<T>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<EnumMessage> validate(ImdgValidationContext<T> context) {
|
public Optional<EnumMessage> validate(ImdgValidationContext<T> context) {
|
||||||
T validatedObject = context.getValidatedObject();
|
String tradingCode = extractor.apply(context);
|
||||||
String tradingCode = extractor.apply(validatedObject);
|
|
||||||
if (TextUtil.isEmpty(tradingCode)) {
|
if (TextUtil.isEmpty(tradingCode)) {
|
||||||
return of(ClearingError.CompanyNotFound, tradingCode);
|
return of(ClearingError.CompanyNotFound, tradingCode);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue