SDF21 проверка на существование инструмента, убрал дубликат sql в поиске
This commit is contained in:
parent
f39991a559
commit
817166005f
3 changed files with 28 additions and 3 deletions
|
|
@ -194,10 +194,14 @@ public class ValidationConfig {
|
||||||
context.setValidatedObject(sDf21);
|
context.setValidatedObject(sDf21);
|
||||||
context.addImdg(IMDGDistributedNames.Map_Account, imdgAccount);
|
context.addImdg(IMDGDistributedNames.Map_Account, imdgAccount);
|
||||||
context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany);
|
context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany);
|
||||||
|
context.addImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, imdgMoneyMarketSecurity);
|
||||||
|
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeSecurityImdg);
|
||||||
|
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equitySecurityImdg);
|
||||||
context.setLogPrefix(LogPrefixId.INSTANCE);
|
context.setLogPrefix(LogPrefixId.INSTANCE);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
Sdf21ValidationRule.CompanyPresent,
|
Sdf21ValidationRule.CompanyPresent,
|
||||||
Sdf21ValidationRule.AccountPresent
|
Sdf21ValidationRule.AccountPresent,
|
||||||
|
Sdf21ValidationRule.InstrumentPresent
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -397,9 +397,9 @@ public class Sdf21Executor extends AbstractExecutor<SDf21> {
|
||||||
String sql = RegistryCodeSqlBuilder.getInstance(p).build();
|
String sql = RegistryCodeSqlBuilder.getInstance(p).build();
|
||||||
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
|
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
|
||||||
ImdgPredicate rgstrPredicate = pb.and(pb.sql(sql),
|
ImdgPredicate rgstrPredicate = pb.and(pb.sql(sql),
|
||||||
pb.sql(sql),
|
|
||||||
pb.equals("companyId", companyId),
|
pb.equals("companyId", companyId),
|
||||||
pb.equals("accountId", accountId)
|
pb.equals("accountId", accountId),
|
||||||
|
pb.equals("securitySymbol", registry.getSecuritySymbol())
|
||||||
|
|
||||||
);
|
);
|
||||||
if (RegistryDesignation.D.equalsByKey(registry.getRegistryDesignation()) && !TextUtil.isEmpty(contract)) {
|
if (RegistryDesignation.D.equalsByKey(registry.getRegistryDesignation()) && !TextUtil.isEmpty(contract)) {
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,12 @@ package ru.spcex.clearing.service.validation;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf21;
|
import ru.clearing.classes.statics.data.sdf.SDf21;
|
||||||
|
import ru.clearing.classes.statics.data.security.Security;
|
||||||
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.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.AccountType;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.text.TextUtil;
|
import ru.spcex.platform.utils.text.TextUtil;
|
||||||
|
|
@ -54,6 +56,25 @@ public enum Sdf21ValidationRule implements IValidationRule<ImdgValidationContext
|
||||||
context.storeObject(ValidationStored.Sdf21Account, account.iterator().next());
|
context.storeObject(ValidationStored.Sdf21Account, account.iterator().next());
|
||||||
return empty();
|
return empty();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
InstrumentPresent() {
|
||||||
|
@Override
|
||||||
|
public Optional<EnumMessage> validate(ImdgValidationContext<SDf21> context) {
|
||||||
|
SDf21 sdf21 = context.getValidatedObject();
|
||||||
|
if (TextUtil.isEmpty(sdf21.getSecurityCode())) {
|
||||||
|
return of(ClearingError.SecurityNotFound, sdf21.getSecurityCode());
|
||||||
|
}
|
||||||
|
SecuritySelector<Security> secSel = new SecuritySelector<>(
|
||||||
|
context.obtainMap(IMDGDistributedNames.Map_FixedIncomeSecurity, Security.class),
|
||||||
|
context.obtainMap(IMDGDistributedNames.Map_MoneyMarketSecurity, Security.class),
|
||||||
|
context.obtainMap(IMDGDistributedNames.Map_EquitySecurity, Security.class)
|
||||||
|
);
|
||||||
|
Security security = secSel.selectSecurityBySymbol(sdf21.getSecurityCode());
|
||||||
|
if (security == null) {
|
||||||
|
return of(ClearingError.SecurityNotFound, sdf21.getSecurityCode());
|
||||||
|
}
|
||||||
|
return empty();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue