ialbert 2025-05-28 18:07:46 +03:00
parent 040e0e359d
commit bc02fa7dea
2 changed files with 14 additions and 12 deletions

View file

@ -259,6 +259,9 @@ public class ValidationConfig {
context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany); context.addImdg(IMDGDistributedNames.Map_Company, imdgCompany);
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equitySecurityImdg); context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equitySecurityImdg);
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeSecurityImdg); context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeSecurityImdg);
context.addImdg(IMDGDistributedNames.Map_DigitalCertificateSecurity, digitalCertificateSecurityImdg);
context.addImdg(IMDGDistributedNames.Map_CurrencyPairSecurity, currencyPairSecurityImdg);
context.addImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, imdgMoneyMarketSecurity);
context.setLogPrefix(LogPrefixId.INSTANCE); context.setLogPrefix(LogPrefixId.INSTANCE);
return new ValidatorImpl<>(context, return new ValidatorImpl<>(context,
Sdf08NewValidationRule.AccountPresent, Sdf08NewValidationRule.InstrumentPresent Sdf08NewValidationRule.AccountPresent, Sdf08NewValidationRule.InstrumentPresent

View file

@ -1,23 +1,21 @@
package ru.spcex.clearing.service.validation; package ru.spcex.clearing.service.validation;
import java.util.Map;
import java.util.Optional;
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.instrument.issue.EquitySecurity;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
import ru.clearing.classes.statics.data.sdf.SDf08; import ru.clearing.classes.statics.data.sdf.SDf08;
import ru.clearing.classes.statics.data.security.Security; import ru.clearing.classes.statics.data.security.Security;
import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.error.ClearingError;
import ru.spcex.clearing.error.ClearingErrorInternal; import ru.spcex.clearing.error.ClearingErrorInternal;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
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;
import ru.spcex.platform.utils.validation.IValidationRule; import ru.spcex.platform.utils.validation.IValidationRule;
import java.util.Map;
import java.util.Optional;
public enum Sdf08NewValidationRule implements IValidationRule<ImdgValidationContext<SDf08>> { public enum Sdf08NewValidationRule implements IValidationRule<ImdgValidationContext<SDf08>> {
@Deprecated // unused, см. тз по поиску компаний "III - Изменение statement по sDf08" 1. @Deprecated // unused, см. тз по поиску компаний "III - Изменение statement по sDf08" 1.
CompanyPresent() { CompanyPresent() {
@ -55,13 +53,14 @@ public enum Sdf08NewValidationRule implements IValidationRule<ImdgValidationCont
@Override @Override
public Optional<EnumMessage> validate(ImdgValidationContext<SDf08> context) { public Optional<EnumMessage> validate(ImdgValidationContext<SDf08> context) {
SDf08 sdf08 = context.getValidatedObject(); SDf08 sdf08 = context.getValidatedObject();
Imdg<FixedIncomeSecurity> fxIncmSecImdg = context.obtainMap(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class); SecuritySelector<Security> slctr = new SecuritySelector<>(
Imdg<EquitySecurity> equityImdg = context.obtainMap(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class); context.obtainMap(IMDGDistributedNames.Map_FixedIncomeSecurity, Security.class),
context.obtainMap(IMDGDistributedNames.Map_MoneyMarketSecurity, Security.class),
Security security = fxIncmSecImdg.getFirstObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode())); context.obtainMap(IMDGDistributedNames.Map_EquitySecurity, Security.class),
if (security == null) { context.obtainMap(IMDGDistributedNames.Map_CurrencyPairSecurity, Security.class),
security = equityImdg.getFirstObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode())); context.obtainMap(IMDGDistributedNames.Map_DigitalCertificateSecurity, Security.class)
} );
Security security = slctr.selectSecurityBySymbol(sdf08.getSecurityCode());
if (security == null) { if (security == null) {
return of(ClearingError.SecurityNotFound, sdf08.getSecurityCode()); return of(ClearingError.SecurityNotFound, sdf08.getSecurityCode());
} }