This commit is contained in:
parent
619b7d8767
commit
afc6983537
2 changed files with 61 additions and 8 deletions
|
|
@ -1,5 +1,8 @@
|
||||||
package ru.spcex.clearing.config;
|
package ru.spcex.clearing.config;
|
||||||
|
|
||||||
|
import java.util.function.BiFunction;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
|
|
@ -17,7 +20,15 @@ import ru.clearing.classes.statics.data.misc.Session;
|
||||||
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
import ru.clearing.classes.statics.data.sdf.*;
|
import ru.clearing.classes.statics.data.sdf.SDf01;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf06;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf08;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf10;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf20;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf21;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf54;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf55;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf57;
|
||||||
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
||||||
import ru.clearing.classes.statics.data.security.Security;
|
import ru.clearing.classes.statics.data.security.Security;
|
||||||
import ru.clearing.classes.statics.data.statement.Statement;
|
import ru.clearing.classes.statics.data.statement.Statement;
|
||||||
|
|
@ -27,8 +38,34 @@ import ru.spcex.clearing.error.ClearingError;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.payment.PIClearingOutbondActionNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.payment.PIClearingOutbondActionNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.*;
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.IdentificationFundsRequest;
|
||||||
import ru.spcex.clearing.service.validation.*;
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryChangeRefundDateRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryChangeStatusExtractRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryReturnDepositRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistrySplitDepositActionRequest;
|
||||||
|
import ru.spcex.clearing.service.validation.ClrngValidationStored;
|
||||||
|
import ru.spcex.clearing.service.validation.CompanyByTradingCodeValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.ExecutionDepositValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.IdentificationFundsValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.MarketIsUValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.PaymentOutboundValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.RefundDateValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.RegistryStep3ValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.ReturnDepositValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.STradesValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf01NewValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf01ValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf06NewValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf08NewValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf10ValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf20ValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf21ValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf55ValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.Sdf57ValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.SecurityBySecurityCodeValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.SessionTerminationValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.SplitDepositRequestValidationRule;
|
||||||
|
import ru.spcex.clearing.service.validation.StatusExtractValidationRule;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
||||||
|
|
@ -44,10 +81,6 @@ import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||||
|
|
||||||
import java.util.function.BiFunction;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class ValidationConfig {
|
public class ValidationConfig {
|
||||||
|
|
||||||
|
|
@ -58,6 +91,7 @@ public class ValidationConfig {
|
||||||
|
|
||||||
Imdg<CompanySymbols> imdgCompanySymbols;
|
Imdg<CompanySymbols> imdgCompanySymbols;
|
||||||
Imdg<Registry> imdgRegistry;
|
Imdg<Registry> imdgRegistry;
|
||||||
|
Imdg<SDf20> imdgSdf20;
|
||||||
Imdg<Account> imdgAccount;
|
Imdg<Account> imdgAccount;
|
||||||
Imdg<DepoAccount> imdgDepoAccount;
|
Imdg<DepoAccount> imdgDepoAccount;
|
||||||
Imdg<AccountBalance> imdgAccountBalance;
|
Imdg<AccountBalance> imdgAccountBalance;
|
||||||
|
|
@ -79,6 +113,7 @@ public class ValidationConfig {
|
||||||
this.imdgCompany = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
this.imdgCompany = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
this.imdgCompanySymbols = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
this.imdgCompanySymbols = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
this.imdgRegistry = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
this.imdgRegistry = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||||
|
this.imdgSdf20 = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf20, SDf20.class);
|
||||||
this.imdgAccount = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
this.imdgAccount = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||||
this.imdgAccountBalance = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);
|
this.imdgAccountBalance = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);
|
||||||
this.imdgSecurity = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class);
|
this.imdgSecurity = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class);
|
||||||
|
|
@ -227,12 +262,14 @@ public class ValidationConfig {
|
||||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeSecurityImdg);
|
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeSecurityImdg);
|
||||||
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equitySecurityImdg);
|
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equitySecurityImdg);
|
||||||
context.addImdg(IMDGDistributedNames.Map_Registry, imdgRegistry);
|
context.addImdg(IMDGDistributedNames.Map_Registry, imdgRegistry);
|
||||||
|
context.addImdg(IMDGDistributedNames.Map_SDf20, imdgSdf20);
|
||||||
context.setLogPrefix(LogPrefixId.INSTANCE);
|
context.setLogPrefix(LogPrefixId.INSTANCE);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
CompanyByTradingCodeValidationRule.instance(SDf21::getDepoCodeCl),
|
CompanyByTradingCodeValidationRule.instance(SDf21::getDepoCodeCl),
|
||||||
Sdf21ValidationRule.AccountPresent,
|
Sdf21ValidationRule.AccountPresent,
|
||||||
SecurityBySecurityCodeValidationRule.instance(SDf21::getSecurityCode),
|
SecurityBySecurityCodeValidationRule.instance(SDf21::getSecurityCode),
|
||||||
Sdf21ValidationRule.TransactionNumberProcessed
|
Sdf21ValidationRule.TransactionNumberProcessed,
|
||||||
|
Sdf21ValidationRule.TransactionNumberForSdf20
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf20;
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf21;
|
import ru.clearing.classes.statics.data.sdf.SDf21;
|
||||||
import ru.spcex.clearing.error.ClearingError;
|
import ru.spcex.clearing.error.ClearingError;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
@ -64,6 +65,21 @@ public enum Sdf21ValidationRule implements IValidationRule<ImdgValidationContext
|
||||||
}
|
}
|
||||||
return empty();
|
return empty();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
TransactionNumberForSdf20() {
|
||||||
|
@Override
|
||||||
|
public Optional<EnumMessage> validate(ImdgValidationContext<SDf21> context) {
|
||||||
|
SDf21 validatedObject = context.getValidatedObject();
|
||||||
|
Imdg<SDf20> sDf20Imdg = context.obtainMap(IMDGDistributedNames.Map_SDf20, SDf20.class);
|
||||||
|
SDf20 sdf20 = sDf20Imdg.getFirstObjectByPredicate(sDf20Imdg
|
||||||
|
.predicateBuilder()
|
||||||
|
.equals("transactionNumber", validatedObject.getTransactionNumber())
|
||||||
|
);
|
||||||
|
if (sdf20 != null) {
|
||||||
|
return of(ClearingError.SuchRecordAlreadyExists);
|
||||||
|
}
|
||||||
|
return empty();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
private final static Logger log = LoggerFactory.getLogger(Sdf21ValidationRule.class);
|
private final static Logger log = LoggerFactory.getLogger(Sdf21ValidationRule.class);
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue