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.currPairSecCash,
|
||||
valCash.digitCertSecCash),
|
||||
new CompanyByTradingCodeCashingValidationRule<>(
|
||||
STrades::getFirmId, valCash.cmpCash, ValidationStored.STradesCompany
|
||||
),
|
||||
new CompanyByTradingCodeCashingValidationRule<>(
|
||||
STrades::getCpFirmId, valCash.cmpCash, ValidationStored.STradesCounterCompany
|
||||
),
|
||||
CompanyByTradingCodeCashingValidationRule.stradeCmp(valCash.cmpCash),
|
||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||
ImdgValidationContext::getValidatedObject,
|
||||
ValidationStored.STradesCompany,
|
||||
|
|
@ -464,6 +459,7 @@ public class ExecutionCurrencyComponent extends ExecutionAbstractComponent {
|
|||
STrades::getClassCode,
|
||||
ClearingError.RequiredFieldEmpty, true),
|
||||
new CounterStradePresentValidationRule(sTrades),
|
||||
CompanyByTradingCodeCashingValidationRule.counterStradeCmp(valCash.cmpCash),
|
||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||
ctx -> ctx.getStoredObject(ValidationStored.STradesCounterTrade),
|
||||
ValidationStored.STradesCounterCompany,
|
||||
|
|
|
|||
|
|
@ -382,17 +382,13 @@ public class ExecutionDepositComponent extends ExecutionAbstractComponent {
|
|||
context.setLogPrefix(LogPrefixId.INSTANCE);
|
||||
return new ValidatorImpl<>(context,
|
||||
new STradesSecurityPresentDepositValidationRule(valCash.mmsCash),
|
||||
new CompanyByTradingCodeCashingValidationRule<>(
|
||||
STrades::getFirmId, valCash.cmpCash, ValidationStored.STradesCompany
|
||||
),
|
||||
new CompanyByTradingCodeCashingValidationRule<>(
|
||||
STrades::getCpFirmId, valCash.cmpCash, ValidationStored.STradesCounterCompany
|
||||
),
|
||||
CompanyByTradingCodeCashingValidationRule.stradeCmp(valCash.cmpCash),
|
||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||
ImdgValidationContext::getValidatedObject,
|
||||
ValidationStored.STradesCompany,
|
||||
ValidationStored.STradesTradingClearingRegistry),
|
||||
new CounterStradePresentValidationRule(sTrades),
|
||||
CompanyByTradingCodeCashingValidationRule.counterStradeCmp(valCash.cmpCash),
|
||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||
ctx -> ctx.getStoredObject(ValidationStored.STradesCounterTrade),
|
||||
ValidationStored.STradesCounterCompany,
|
||||
|
|
|
|||
|
|
@ -468,18 +468,15 @@ public class ExecutionFondComponent extends ExecutionAbstractComponent {
|
|||
valCash.eqtySecCash,
|
||||
valCash.currPairSecCash,
|
||||
valCash.digitCertSecCash),
|
||||
new CompanyByTradingCodeCashingValidationRule<>(
|
||||
STrades::getFirmId, valCash.cmpCash, ValidationStored.STradesCompany
|
||||
),
|
||||
new CompanyByTradingCodeCashingValidationRule<>(
|
||||
STrades::getCpFirmId, valCash.cmpCash, ValidationStored.STradesCounterCompany
|
||||
),
|
||||
CompanyByTradingCodeCashingValidationRule.stradeCmp(valCash.cmpCash),
|
||||
new TcrByCodeAndCmpIsActiveCashingValidationRuleV2(valCash.tcrCash,
|
||||
ImdgValidationContext::getValidatedObject,
|
||||
ValidationStored.STradesCompany,
|
||||
ValidationStored.STradesTradingClearingRegistry),
|
||||
new STradesSecurityDGCTValidationRule(valCash.udrCash),
|
||||
new CounterStradePresentValidationRule(sTrades));
|
||||
new CounterStradePresentValidationRule(sTrades),
|
||||
CompanyByTradingCodeCashingValidationRule.counterStradeCmp(valCash.cmpCash)
|
||||
);
|
||||
}
|
||||
|
||||
private static class ExecFondCompCash extends CashCloser {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ package ru.spcex.clearing.service.validation.strades;
|
|||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
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.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.service.validation.ValidationStored;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
|
|
@ -18,11 +20,28 @@ public class CompanyByTradingCodeCashingValidationRule<T>
|
|||
implements IValidationRule<ImdgValidationContext<T>> {
|
||||
|
||||
private final CashV2ByString<Company> cmpCash;
|
||||
private final Function<T, String> extractor;
|
||||
private final Function<ImdgValidationContext<T>, String> extractor;
|
||||
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,
|
||||
Enum<?> storedKey) {
|
||||
this.cmpCash = cmpCash;
|
||||
|
|
@ -30,13 +49,6 @@ public class CompanyByTradingCodeCashingValidationRule<T>
|
|||
this.storedKey = storedKey;
|
||||
}
|
||||
|
||||
public CompanyByTradingCodeCashingValidationRule(Function<T, String> extractor,
|
||||
CashV2ByString<Company> cmpCash) {
|
||||
this.cmpCash = cmpCash;
|
||||
this.extractor = extractor;
|
||||
this.storedKey = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String ruleName() {
|
||||
return "CompanyByTradingCodeCashingValidationRule";
|
||||
|
|
@ -44,8 +56,7 @@ public class CompanyByTradingCodeCashingValidationRule<T>
|
|||
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<T> context) {
|
||||
T validatedObject = context.getValidatedObject();
|
||||
String tradingCode = extractor.apply(validatedObject);
|
||||
String tradingCode = extractor.apply(context);
|
||||
if (TextUtil.isEmpty(tradingCode)) {
|
||||
return of(ClearingError.CompanyNotFound, tradingCode);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue