diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java index c219ed4c1..05af1c9d3 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java @@ -6,10 +6,11 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.clearing.util.services.IMDGMessageResolver; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.clearing.util.services.IMDGMessageResolver; @Configuration public class BeanConfiguration { @@ -18,6 +19,12 @@ public class BeanConfiguration { return new IMDGMessageResolver(imdgProvider); } + @Bean + @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) + public RequestHelper requestHelper(IMessageResolver messageResolver) { + return new RequestHelper(messageResolver, AccountError.GeneralError); + } + @Bean @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) { diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java index cb654bc0e..ef68fd75a 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java @@ -5,18 +5,19 @@ import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.AccountTypeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; -import ru.spcex.clearing.validation.common.rules.EnumPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -45,6 +46,7 @@ public class AccountValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); addImdg.accept(IMDGDistributedNames.Map_AccountTypeDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", @@ -69,12 +71,15 @@ public class AccountValidationConfig { if (accounts.isEmpty()) return null; return AccountError.AccountAlreadyExist; }), - FieldRequiredRule.instance("status", + DictionaryPresentRule.instance("status", CorrespondentAccountNewRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, false, statusValue -> { - if (statusValue == null || AccountStatus.ACTIVE.equalsByKey(statusValue)) return null; + if (ServiceStatus.Active.equalsByKey(statusValue.getCode())) return null; return AccountError.WrongFieldValue; }), DictionaryPresentRule.instance("accountType", @@ -127,16 +132,16 @@ public class AccountValidationConfig { error = Objects.equals(company.getId(), correspondentAccountUpdateRequest.getCompanyId()) ? error : AccountError.WrongFieldValue; return error; }), - EnumPresentRule.instance("status", + DictionaryPresentRule.instance("status", CorrespondentAccountUpdateRequest::getStatus, - AccountStatus.values(), - false, - AccountError.WrongFieldValue, - AccountError.RequiredFieldEmpty), + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue), DictionaryPresentRule.instance("accountType", CorrespondentAccountUpdateRequest::getAccountType, IMDGDistributedNames.Map_AccountTypeDictionary, - AccountTypeDictionary.class, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, accountType -> { @@ -148,23 +153,23 @@ public class AccountValidationConfig { } @Bean("correspondentAccountBlockRequestValidator") - public Function correspondentAccountBlockRequestValidator( + public Function correspondentAccountBlockRequestValidator( Map> imdgForValidation ) { return correspondentAccountBlockRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); + ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(correspondentAccountBlockRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Account); return new ValidatorImpl<>(context, IdPresentRule.instance("id", - CommonDeleteRequest::getId, + CommonIdRequest::getId, IMDGDistributedNames.Map_Account, Account.class, AccountError.RequiredFieldEmpty, AccountError.AccountNotFound, account -> { - if (AccountStatus.ACTIVE.equalsByKey(account.getStatus())) return null; + if (WorkflowStatus.Active.equalsByKey(account.getStatus())) return null; return AccountError.AccountNotActive; }) ); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java index 1c2ca6ab6..3c6b00d6e 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java @@ -10,13 +10,14 @@ import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -62,7 +63,7 @@ public class BankAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Bank.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, @@ -131,18 +132,18 @@ public class BankAccountValidationConfig { } @Bean("bankAccountBlockRequestValidator") - public Function bankAccountBlockRequestValidator( + public Function bankAccountBlockRequestValidator( Map> imdgForValidation ) { return bankAccountBlockRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); + ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(bankAccountBlockRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_BankAccount); addImdg.accept(IMDGDistributedNames.Map_Account); return new ValidatorImpl<>(context, IdPresentRule.instance("id", - CommonDeleteRequest::getId, + CommonIdRequest::getId, IMDGDistributedNames.Map_BankAccount, BankAccount.class, AccountError.RequiredFieldEmpty, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java index cb3c2368e..9c9cb0ba6 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java @@ -13,8 +13,8 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -60,7 +60,7 @@ public class ClearingAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, @@ -102,7 +102,7 @@ public class ClearingAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java index 10277912b..c3bbca5ff 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java @@ -10,8 +10,8 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewReq import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -56,7 +56,7 @@ public class DepoAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java new file mode 100644 index 000000000..f936a6925 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -0,0 +1,144 @@ +package ru.spcex.clearing.account.config.validation; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.clearing.classes.statics.data.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; +import ru.spcex.clearing.account.errors.AccountError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; +import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; +import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; +import ru.spcex.clearing.validation.common.rules.IdPresentRule; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.validation.IValidator; +import ru.spcex.platform.utils.validation.ValidatorImpl; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; + +@Configuration +public class TradingClearingRegistryValidationConfig { + + @Bean("tradingClearingRegistryNewRequest") + public Function tradingClearingRegistryNewRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryNewRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryNewRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_ClearingAccount); + addImdg.accept(IMDGDistributedNames.Map_DepoAccount); + addImdg.accept(IMDGDistributedNames.Map_InformationAccount); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); + return new ValidatorImpl<>(context, + IdPresentRule.instance("companyId", + TradingClearingRegistryNewRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + AccountError.RequiredFieldEmpty, + AccountError.CompanyNotFound), + FieldRequiredRule.instance("moneyAccountId", + TradingClearingRegistryNewRequest::getMoneyAccountId, + AccountError.RequiredFieldEmpty, + moneyAccountId -> { + Imdg clearingAccountImdg = context.obtainMap( + IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class + ); + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(moneyAccountId); + if (clearingAccount == null) { + Imdg informationAccountImdg = context.obtainMap( + IMDGDistributedNames.Map_InformationAccount, InformationAccount.class + ); + InformationAccount infoAccount = informationAccountImdg.getSingleObjectByID(moneyAccountId); + if (infoAccount == null) return AccountError.AccountNotFound; + } + return null; + }), + FieldRequiredRule.instance("depoAccountId", + TradingClearingRegistryNewRequest::getDepoAccountId, + AccountError.RequiredFieldEmpty, + false, + depoAccountId -> { + if (depoAccountId == null) return null; + Imdg depoAccountImdg = context.obtainMap(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(depoAccountId); + if (depoAccount == null) return AccountError.AccountNotFound; + return null; + }), + DictionaryPresentRule.instance("status", + TradingClearingRegistryNewRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false, + statusValue -> { + String statusCode = statusValue.getCode(); + if (ServiceStatus.Active.equalsByKey(statusCode)) return null; + return AccountError.WrongFieldValue; + }) + ); + }; + } + + @Bean("tradingClearingRegistryUpdateRequest") + public Function tradingClearingRegistryUpdateRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryUpdateRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryUpdateRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + TradingClearingRegistryUpdateRequest::getId, + IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class, + AccountError.RequiredFieldEmpty, + AccountError.TradingClearingRegistryNotFound), + DictionaryPresentRule.instance("status", + TradingClearingRegistryUpdateRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false) + ); + }; + } + + @Bean("tradingClearingRegistryBlockRequest") + public Function tradingClearingRegistryBlockRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryBlockRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryBlockRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + CommonIdRequest::getId, + IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class, + AccountError.RequiredFieldEmpty, + AccountError.TradingClearingRegistryNotFound) + ); + }; + } +} diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java index d6189008f..6fedb6269 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java @@ -3,15 +3,14 @@ package ru.spcex.clearing.account.config.validation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import ru.clearing.classes.statics.data.account.Account; -import ru.clearing.classes.statics.data.account.BankAccount; -import ru.clearing.classes.statics.data.account.ClearingAccount; -import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.account.*; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.AccountTypeDictionary; import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary; import ru.clearing.platform.dictionary.CurrencyCodeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -40,6 +39,9 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_BankAccount, BankAccount.class); addImdg.accept(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + addImdg.accept(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); return imdg; } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java index 82789613d..f3c8f8362 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.account.errors; import ru.spcex.platform.utils.enumeration.IErrorEnumId; public enum AccountError implements IErrorEnumId { + GeneralError(5000L), UserVerifyDenial(5001L), RequiredFieldEmpty(5002L), WrongFieldValue(5004L), @@ -12,7 +13,11 @@ public enum AccountError implements IErrorEnumId { CompanyNotFound(5013L), CompanyNotActive(5014L), InfoAccountAlreadyExist(5015L), - ClearingCategoryNotFound(5019L) + TradingClearingRegistryAlreadyExist(5016L), + DepoAccountNotFound(5017L), + MoneyAccountNotFound(5018L), + ClearingCategoryNotFound(5019L), + TradingClearingRegistryNotFound(5022L), ; private final Long id; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java index 81df09673..ff1aeb8b7 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java @@ -21,15 +21,15 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdf0 import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; import ru.spcex.clearing.platform.messaging.domain.cud.balance.AccountSdfToStatementRequestPart; import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.ClearingCategory; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -57,7 +57,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { private final ValidationHelper validationHelper; private final Function accountNewRequestValidator; private final Function accountUpdateRequestValidator; - private final Function accountBlockRequestValidator; + private final Function accountBlockRequestValidator; @Autowired public AccountService(Consumer kafkaQueue, @@ -72,7 +72,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { @Qualifier("correspondentAccountUpdateRequestValidator") Function accountUpdateRequestValidator, @Qualifier("correspondentAccountBlockRequestValidator") - Function accountBlockRequestValidator) { + Function accountBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.accountMap = imdgProvider.getImdg( IMDGDistributedNames.Map_Account, Account.class @@ -103,7 +103,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { callback(CorrespondentAccountUpdateRequest.class) .setConsumer(this::correspondentAccountUpdate) .forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_UPDATE, callbacks::put); - callback(CommonDeleteRequest.class) + callback(CommonIdRequest.class) .setConsumer(this::correspondentAccountBlock) .forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_BLOCK, callbacks::put); init(); @@ -161,7 +161,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { return null; } - public RequestInfoUpdate correspondentAccountBlock(BaseRequest userRequest) { + public RequestInfoUpdate correspondentAccountBlock(BaseRequest userRequest) { log.debug("AccountBlockRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); @@ -170,10 +170,10 @@ public class AccountService extends QueueConsumer implements InitializingBean { requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, accountBlockRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - CommonDeleteRequest request = userRequest.getRequestPayload(); + CommonIdRequest request = userRequest.getRequestPayload(); Account account = accountMap.getSingleObjectByID(request.getId()); - account.setStatus(AccountStatus.BLOCKED.getKey()); + account.setStatus(ServiceStatus.Blocked.getKey()); account.setUpdated(Instant.now()); accountMap.update(account); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java index 1940cc5a9..1069939db 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java @@ -15,13 +15,13 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -44,7 +44,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea private final Function bankAccountNewRequestValidator; private final Function bankAccountUpdateRequestValidator; - private final Function bankAccountBlockRequestValidator; + private final Function bankAccountBlockRequestValidator; @Autowired public BankAccountService(Consumer kafkaQueue, @@ -58,7 +58,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea @Qualifier("bankAccountUpdateRequestValidator") Function bankAccountUpdateRequestValidator, @Qualifier("bankAccountBlockRequestValidator") - Function bankAccountBlockRequestValidator) { + Function bankAccountBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.bankAccountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BankAccount, BankAccount.class); this.accountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); @@ -79,7 +79,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea callback(BankAccountUpdateRequest.class) .setFunction(this::bankAccountUpdate) .forDestination(Consts.DESTINATION_BANK_ACCOUNT_UPDATE, callbacks::put); - callback(CommonDeleteRequest.class) + callback(CommonIdRequest.class) .setFunction(this::bankAccountBlock) .forDestination(Consts.DESTINATION_BANK_ACCOUNT_BLOCK, callbacks::put); init(); @@ -101,7 +101,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Bank.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -194,8 +194,8 @@ public class BankAccountService extends QueueConsumer implements InitializingBea return null; } - private RequestInfoUpdate bankAccountBlock(BaseRequest userRequest) { - CommonDeleteRequest req = userRequest.getRequestPayload(); + private RequestInfoUpdate bankAccountBlock(BaseRequest userRequest) { + CommonIdRequest req = userRequest.getRequestPayload(); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -203,11 +203,11 @@ public class BankAccountService extends QueueConsumer implements InitializingBea requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, bankAccountBlockRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - log.debug("CommonDeleteRequest received id = {}", req.getId()); + log.debug("CommonIdRequest received id = {}", req.getId()); BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId()); Account account = accountMap.getSingleObjectByID(bankAccount.getAccountId()); - account.setStatus(AccountStatus.BLOCKED.getKey()); + account.setStatus(ServiceStatus.Blocked.getKey()); account.setUpdated(Instant.now()); ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); @@ -224,7 +224,6 @@ public class BankAccountService extends QueueConsumer implements InitializingBea bankAccount.getId(), account.getId()); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed block, bank account id {}, new account id {}", bankAccount.getId(), account.getId()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java index 03f148353..c17f62e64 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java @@ -16,18 +16,19 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClearingAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClearingAccountUpdateRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; -import ru.spcex.clearing.platform.messaging.service.Status; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; -import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; @@ -38,33 +39,39 @@ import java.util.function.Function; @Service public class ClearingAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final AccountService accountService; private final ValidationHelper validationHelper; private final ImdgProvider imdgProvider; private final Imdg accountImdg; private final Imdg clearingAccountImdg; private final IMessageResolver messageResolver; + private final RequestHelper requestHelper; private final Function clearingAccountNewRequestValidator; private final Function clearingAccountUpdateRequestValidator; @Autowired public ClearingAccountService(Consumer kafkaQueue, Producer kafkaResponseQueue, + KafkaSender kafkaSender, AccountService accountService, ValidationHelper validationHelper, ImdgProvider imdgProvider, IMessageResolver messageResolver, + RequestHelper requestHelper, @Qualifier("clearingAccountNewRequestValidator") Function clearingAccountNewRequestValidator, @Qualifier("clearingAccountUpdateRequestValidator") Function clearingAccountUpdateRequestValidator) { super(kafkaQueue, kafkaResponseQueue); + this.kafkaSender = kafkaSender; this.accountService = accountService; this.validationHelper = validationHelper; this.imdgProvider = imdgProvider; this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); this.messageResolver = messageResolver; + this.requestHelper = requestHelper; this.clearingAccountNewRequestValidator = clearingAccountNewRequestValidator; this.clearingAccountUpdateRequestValidator = clearingAccountUpdateRequestValidator; } @@ -92,7 +99,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Clrn.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -104,10 +111,11 @@ public class ClearingAccountService extends QueueConsumer implements Initializin ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); boolean txOk = false; imdgTransaction.beginTransaction(); + ClearingAccount clearingAccount = null; try { accountId = accountImdg.insert(account); - ClearingAccount clearingAccount = new ClearingAccount(); + clearingAccount = new ClearingAccount(); clearingAccount.setCompanyId(req.getCompanyId()); clearingAccount.setAccountId(accountId); clearingAccount.setClearingAccountType(req.getClearingAccountType()); @@ -116,9 +124,12 @@ public class ClearingAccountService extends QueueConsumer implements Initializin } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setMoneyAccountId(accountId); + request.setCompanyId(clearingAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new clearing account id {}, account id {}", clearingAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new clearing account id {}, new account id {} (if id = -1 then insert is failed)", clearingAccountId, accountId); @@ -137,7 +148,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin ClearingAccountUpdateRequest req = userRequest.getRequestPayload(); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", req.getAccount()); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, @@ -147,18 +158,13 @@ public class ClearingAccountService extends QueueConsumer implements Initializin Long accountId = account.getId(); ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByFieldValues(Map.of("accountId", accountId)); - if (clearingAccount == null) { - String errMsg = messageResolver.resolve(new EnumMessage(AccountError.AccountNotFound, account.getAccount())); - return new RequestInfoUpdate() - .setId(userRequest.getId()) - .setStatus(Status.Error) - .setMessage(errMsg); - } + if (clearingAccount == null) + return requestHelper.makeErrorResponse(userRequest, AccountError.AccountNotFound, account.getAccount()); Integer statusValue = req.getStatus(); - if (statusValue == 0) account.setStatus(AccountStatus.BLOCKED.getKey()); - else if (statusValue == 1) account.setStatus(AccountStatus.ACTIVE.getKey()); - else if (statusValue == 2) account.setStatus(AccountStatus.CLOSE.getKey()); + if (statusValue == 0) account.setStatus(ServiceStatus.Blocked.getKey()); + else if (statusValue == 1) account.setStatus(ServiceStatus.Active.getKey()); + else if (statusValue == 2) account.setStatus(ServiceStatus.Closed.getKey()); account.setUpdated(Instant.now()); accountImdg.update(account); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java index 625e909f5..5495595c2 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java @@ -13,11 +13,13 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -30,6 +32,7 @@ import java.util.function.Function; public class DepoAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final ValidationHelper validationHelper; private final ImdgProvider imdgProvider; private final AccountService accountService; @@ -39,12 +42,14 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea public DepoAccountService(Consumer kafkaQueue, Producer kafkaProducer, + KafkaSender kafkaSender, ValidationHelper validationHelper, ImdgProvider imdgProvider, AccountService accountService, @Qualifier("depoAccountNewRequestValidator") Function depoAccountNewRequestValidator) { super(kafkaQueue, kafkaProducer); + this.kafkaSender = kafkaSender; this.validationHelper = validationHelper; this.imdgProvider = imdgProvider; this.accountService = accountService; @@ -74,7 +79,7 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Depo.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -86,10 +91,11 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); boolean txOk = false; imdgTransaction.beginTransaction(); + DepoAccount depoAccount = null; try { accountId = accountImdg.insert(account); - DepoAccount depoAccount = new DepoAccount(); + depoAccount = new DepoAccount(); depoAccount.setCompanyId(req.getCompanyId()); depoAccount.setAccountId(accountId); depoAccount.setDepoAccountType(req.getDepoAccountType()); @@ -98,9 +104,12 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setDepoAccountId(accountId); + request.setCompanyId(depoAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new depo account id {}, account id {}", depoAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new depo account id {}, new account id {} (if id = -1 then insert is failed)", depoAccountId, accountId); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java index 2c74b2086..2de5a7513 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java @@ -15,18 +15,19 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.InformationAccountNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; -import ru.spcex.clearing.platform.messaging.service.Status; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; -import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; @@ -37,10 +38,12 @@ import java.util.function.Function; @Service public class InformationAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final IMessageResolver messageResolver; private final ImdgProvider imdgProvider; private final ValidationHelper validationHelper; private final AccountService accountService; + private final RequestHelper requestHelper; private final Function infoAccountNewRequestValidator; private final Imdg informationAccountImdg; private final Imdg accountImdg; @@ -48,17 +51,21 @@ public class InformationAccountService extends QueueConsumer implements Initiali @Autowired public InformationAccountService(Consumer kafkaQueue, Producer kafkaResponseQueue, + KafkaSender kafkaSender, IMessageResolver messageResolver, ImdgProvider imdgProvider, ValidationHelper validationHelper, AccountService accountService, + RequestHelper requestHelper, @Qualifier("informationAccountNewRequestValidator") Function infoAccountNewRequestValidator) { super(kafkaQueue, kafkaResponseQueue); + this.kafkaSender = kafkaSender; this.messageResolver = messageResolver; this.imdgProvider = imdgProvider; this.validationHelper = validationHelper; this.accountService = accountService; + this.requestHelper = requestHelper; this.infoAccountNewRequestValidator = infoAccountNewRequestValidator; this.informationAccountImdg = imdgProvider.getImdg( IMDGDistributedNames.Map_InformationAccount, InformationAccount.class @@ -91,11 +98,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali ImdgPredicate andPredicate = accountPredicateBuilder.and(companyIdPredicate, accountTypePredicate); Collection accountsAnlt = accountImdg.getCollectionObjectsByPredicate(andPredicate); if (accountsAnlt.isEmpty()) { - String errMsg = messageResolver.resolve(new EnumMessage(AccountError.WrongFieldValue, "clearingAccountId")); - return new RequestInfoUpdate() - .setId(userRequest.getId()) - .setStatus(Status.Error) - .setMessage(errMsg); + return requestHelper.makeErrorResponse(userRequest, AccountError.WrongFieldValue, "clearingAccountId"); } else if (accountsAnlt.size() > 1) { log.warn("Account for companyId 1 and accountType=ANLT contains multiply elements, use first"); } @@ -105,7 +108,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali Account account = new Account(); account.setAccount(accountValue); account.setAccountType(AccountType.Info.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(userRequest.getRequestPayload().getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -117,10 +120,11 @@ public class InformationAccountService extends QueueConsumer implements Initiali boolean txOk = false; Long informationAccountId = -1L; Long accountId = -1L; + InformationAccount informationAccount = null; try { accountId = accountImdg.insert(account); - InformationAccount informationAccount = new InformationAccount(); + informationAccount = new InformationAccount(); informationAccount.setId(newId); informationAccount.setAccountId(accountId); informationAccount.setClearingAccountId(anltAccount.getId()); @@ -130,11 +134,14 @@ public class InformationAccountService extends QueueConsumer implements Initiali } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setMoneyAccountId(informationAccountId); + request.setCompanyId(informationAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new information account id {}, new account id {}", informationAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new information account id {}, new account id {} (if id = -1 then insert is failed)", informationAccountId, accountId); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java new file mode 100644 index 000000000..479db94a1 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -0,0 +1,359 @@ +package ru.spcex.clearing.account.service; + +import org.apache.kafka.clients.consumer.Consumer; +import org.apache.kafka.clients.producer.Producer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.spcex.clearing.account.errors.AccountError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; +import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.clearing.util.services.RequestHelper; +import ru.spcex.clearing.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.TradingClearingRegistryType; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import ru.spcex.platform.utils.enumeration.IMessageResolver; +import ru.spcex.platform.utils.validation.IValidator; + +import java.time.Instant; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +@Service +public class TradingClearingRegistryService extends QueueConsumer implements InitializingBean { + private final Logger log = LoggerFactory.getLogger(getClass()); + + private final ValidationHelper validationHelper; + private final UserRoleVerification userRoleVerification; + + private final Imdg tradingClearingRegistryImdg; + private final Imdg depoAccountImdg; + private final Imdg clearingAccountImdg; + private final Imdg informationAccountImdg; + private final Imdg accountImdg; + private final Imdg companyImdg; + private final Imdg relationImdg; + + private final Function tradingClearingRegistryUpdateRequestValidator; + private final RequestHelper requestHelper; + private final Function tradingClearingRegistryNewRequestValidator; + private final Function tradingClearingRegistryBlockRequestValidator; + + private final IMessageResolver messageResolver; + + public TradingClearingRegistryService(Consumer kafkaQueue, + Producer kafkaProducer, + ImdgProvider imdgProvider, + ValidationHelper validationHelper, + UserRoleVerification userRoleVerification, + IMessageResolver messageResolver, + RequestHelper requestHelper, + @Qualifier("tradingClearingRegistryNewRequest") + Function tradingClearingRegistryNewRequestValidator, + @Qualifier("tradingClearingRegistryUpdateRequest") + Function tradingClearingRegistryUpdateRequestValidator, + @Qualifier("tradingClearingRegistryBlockRequest") + Function tradingClearingRegistryBlockRequestValidator) { + super(kafkaQueue, kafkaProducer); + this.validationHelper = validationHelper; + this.userRoleVerification = userRoleVerification; + this.requestHelper = requestHelper; + this.tradingClearingRegistryNewRequestValidator = tradingClearingRegistryNewRequestValidator; + this.tradingClearingRegistryImdg = imdgProvider.getImdg( + IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class + ); + this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + this.informationAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class); + this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); + this.relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; + this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; + this.messageResolver = messageResolver; + } + + @Override + public void afterPropertiesSet() throws Exception { + init(); + callback(TradingClearingRegistryNewRequest.class) + .setConsumer(this::tradingClearingRegistryAutoNew) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, callbacks::put); + callback(TradingClearingRegistryNewRequest.class) + .setConsumer(this::tradingClearingRegistryNew) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, callbacks::put); + callback(TradingClearingRegistryUpdateRequest.class) + .setConsumer(this::tradingClearingRegistryUpdate) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, callbacks::put); + callback(CommonIdRequest.class) + .setConsumer(this::tradingClearingRegistryBlock) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); + } + + public RequestInfoUpdate tradingClearingRegistryAutoNew(BaseRequest userRequest) { + log.debug("TradingClearingRegistryNewRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryNewRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + TradingClearingRegistryNewRequest req = userRequest.getRequestPayload(); + + Long id = tradingClearingRegistryImdg.nextIDSequenceFor(); + TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry(); + tradingClearingRegistry.setId(id); + tradingClearingRegistry.setCompanyId(req.getCompanyId()); + tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); + tradingClearingRegistry.setDepoAaccountId(req.getDepoAccountId()); + + DepoAccount depoAccount = req.getDepoAccountId() != null ? depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; + Account depoAccountMain = depoAccount != null ? accountImdg.getSingleObjectByID(depoAccount.getAccountId()) : null; + + InformationAccount infoAccount = null; + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + if (clearingAccount == null) infoAccount = informationAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + Long accountId = clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); + Account accountMain = accountImdg.getSingleObjectByID(accountId); + + + // TODO + // Проверка выглядит очень сложно и запутанно, потому что репортеры сами не до конца понимают, какая она должна быть. + // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и + // прочих методов сокращения кода. В дальнейшем, после тестирования и окончательного выяснения вида проверки, + // её стоит вынести на этап валидации запроса. + Relation relation = relationImdg.getSingleObjectByFieldValues(Map.of("consumerId", req.getCompanyId())); + if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(relation.getService())) { + TradingClearingRegistry registry = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (registry != null) { + return requestHelper.makeErrorResponse(userRequest, + AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) + return requestHelper.makeErrorResponse(userRequest, AccountError.DepoAccountNotFound, req.getCompanyId()); + } else if (ru.spcex.platform.enumeration.Service.FOND.equalsByKey(relation.getService())) { + if (AccountType.Info.equalsByKey(accountMain.getStatus())) { + TradingClearingRegistry registry = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of( + "companyId", req.getCompanyId(), + "tradingClearingRegistryType", TradingClearingRegistryPurpose.M.getKey() + )); + if (registry != null) { + return requestHelper.makeErrorResponse(userRequest, + AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) + return requestHelper.makeErrorResponse(userRequest, AccountError.DepoAccountNotFound, req.getCompanyId()); + } else if (AccountType.Clrn.equalsByKey(accountMain.getStatus())) { + ImdgPredicateBuilder imdgPredicateBuilder = tradingClearingRegistryImdg.predicateBuilder(); + ImdgPredicate predicate = imdgPredicateBuilder.and( + imdgPredicateBuilder.equals("companyId", req.getCompanyId()), + imdgPredicateBuilder.or( + imdgPredicateBuilder.equals("tradingClearingRegistryPurpose", TradingClearingRegistryPurpose.M.getKey()), + imdgPredicateBuilder.equals("tradingClearingRegistryPurpose", TradingClearingRegistryPurpose.C.getKey()) + ) + ); + Collection registry = tradingClearingRegistryImdg.getCollectionObjectsByPredicate(predicate); + if (!registry.isEmpty()) { + return requestHelper.makeErrorResponse(userRequest, + AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.iterator().next().getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) { + return requestHelper.makeErrorResponse(userRequest, AccountError.DepoAccountNotFound, req.getCompanyId()); + } + } else if (AccountType.Depo.equalsByKey(accountMain.getStatus())) { + InformationAccount infoAccountForCheck = informationAccountImdg.getSingleObjectByFieldValues( + Map.of("companyId", req.getCompanyId()) + ); + ClearingAccount clearingAccountForCheck = clearingAccountImdg.getSingleObjectByFieldValues( + Map.of("companyId", req.getCompanyId()) + ); + if (infoAccountForCheck == null && clearingAccountForCheck == null) + return requestHelper.makeErrorResponse(userRequest, AccountError.MoneyAccountNotFound, req.getCompanyId()); + } + } + + List activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); + String status = null; + if (depoAccountMain != null && depoAccountMain.getStatus() != null) { + if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(accountMain.getStatus())) + status = ServiceStatus.Active.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || accountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + status = ServiceStatus.Blocked.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey()) || accountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + status = ServiceStatus.Suspended.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || accountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + status = ServiceStatus.Closed.getKey(); + } else if (accountMain.getStatus() != null) { + if (activeStatuses.contains(accountMain.getStatus())) + status = ServiceStatus.Active.getKey(); + if (accountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + status = ServiceStatus.Blocked.getKey(); + if (accountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + status = ServiceStatus.Suspended.getKey(); + if (accountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + status = ServiceStatus.Closed.getKey(); + } + if (status == null) + return requestHelper.makeErrorResponse(userRequest, AccountError.WrongFieldValue, req.getMoneyAccountId()); + tradingClearingRegistry.setStatus(status); + + String tradingRegistryType; + if (depoAccount != null) { + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType(); + else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey(); + } + tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); + + TradingClearingRegistryPurpose registryPurpose; + if (req.getDepoAccountId() != null) registryPurpose = TradingClearingRegistryPurpose.C; + else registryPurpose = TradingClearingRegistryPurpose.M; + tradingClearingRegistry.setTradingClearingRegistryPurpose(registryPurpose.getKey()); + + Company company = companyImdg.getSingleObjectByID(req.getCompanyId()); + String code = "%4s".formatted(company.getClearingCode()).replace(' ', '0'); + code += registryPurpose.getKey(); + if (registryPurpose == TradingClearingRegistryPurpose.C) code += tradingRegistryType + id; + else code += "AT" + id; + tradingClearingRegistry.setCode(code); + + Instant now = Instant.now(); + tradingClearingRegistry.setCreated(now); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.insert(tradingClearingRegistry); + + log.debug("successfully processed, id {}", id); + return null; + } + + public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { + log.debug("TradingClearingRegistryNewRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryNewRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + TradingClearingRegistryNewRequest req = userRequest.getRequestPayload(); + + Long id = tradingClearingRegistryImdg.nextIDSequenceFor(); + TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry(); + tradingClearingRegistry.setId(id); + tradingClearingRegistry.setCompanyId(req.getCompanyId()); + tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); + tradingClearingRegistry.setDepoAaccountId(req.getDepoAccountId()); + + DepoAccount depoAccount = req.getDepoAccountId() != null ? depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + + tradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String tradingRegistryType; + if (depoAccount != null) { + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType(); + else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey(); + } + tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); + + TradingClearingRegistryPurpose registryPurpose; + if (req.getDepoAccountId() != null) registryPurpose = TradingClearingRegistryPurpose.C; + else registryPurpose = TradingClearingRegistryPurpose.M; + tradingClearingRegistry.setTradingClearingRegistryPurpose(registryPurpose.getKey()); + + Company company = companyImdg.getSingleObjectByID(req.getCompanyId()); + String code = "%4s".formatted(company.getClearingCode()).replace(' ', '0'); + code += registryPurpose.getKey(); + if (registryPurpose == TradingClearingRegistryPurpose.C) code += tradingRegistryType + id; + else code += "AT" + id; + tradingClearingRegistry.setCode(code); + + Instant now = Instant.now(); + tradingClearingRegistry.setCreated(now); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.insert(tradingClearingRegistry); + + log.debug("successfully processed, id {}", id); + return null; + } + + public RequestInfoUpdate tradingClearingRegistryUpdate(BaseRequest userRequest) { + log.debug("TradingClearingRegistryUpdateRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryUpdateRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + TradingClearingRegistryUpdateRequest req = userRequest.getRequestPayload(); + TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); + + if (req.getStatus() != null) tradingClearingRegistry.setStatus(req.getStatus()); + + Instant now = Instant.now(); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.update(tradingClearingRegistry); + + log.debug("successfully processed, id {}", tradingClearingRegistry.getId()); + return null; + } + + public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest userRequest) { + log.debug("TradingClearingRegistryBlockRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryBlockRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + CommonIdRequest req = userRequest.getRequestPayload(); + TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); + + tradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); + tradingClearingRegistry.setUpdated(Instant.now()); + + tradingClearingRegistryImdg.update(tradingClearingRegistry); + + log.debug("successfully processed, id {}", tradingClearingRegistry.getId()); + return null; + } +} diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java index b2d53c3dc..e0e7383b0 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java @@ -19,6 +19,7 @@ import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.platform.dictionary.AccountTypeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.config.BeanConfiguration; import ru.spcex.clearing.account.config.HazelcastServiceTestConfiguration; import ru.spcex.clearing.account.config.KafkaConfigTest; @@ -87,6 +88,7 @@ class AccountServiceTest { private Imdg accountTypeDictionaryImdg; private Imdg clearingMemberCategoryImdg; private Imdg relationImdg; + private Imdg serviceStatusDictionaryImdg; @PostConstruct private void init() { @@ -106,6 +108,13 @@ class AccountServiceTest { relationImdg = hazelcastServiceTest.getImdg( IMDGDistributedNames.Map_Relation, Relation.class ); + serviceStatusDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class + ); + ServiceStatusDictionary serviceStatusDictionary = new ServiceStatusDictionary(); + serviceStatusDictionary.setCode(ServiceStatus.Active.getKey()); + serviceStatusDictionary.setName(ServiceStatus.Active.getKey()); + serviceStatusDictionaryImdg.insert(serviceStatusDictionary); Company company = new Company(); company.setId(companyId); @@ -137,13 +146,13 @@ class AccountServiceTest { correspondentAccountNewRequest.setAccount(uniqueAccount); correspondentAccountNewRequest.setAccountType(AccountType.Corr.getKey()); correspondentAccountNewRequest.setCompanyId(companyId); - correspondentAccountNewRequest.setStatus(AccountStatus.ACTIVE.getKey()); + correspondentAccountNewRequest.setStatus(ServiceStatus.Active.getKey()); Account predictableAccount = new Account(); predictableAccount.setAccount(uniqueAccount); predictableAccount.setAccountType(AccountType.Corr.getKey()); predictableAccount.setCompanyId(companyId); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); String jsonString = getJsonStringForNew(correspondentAccountNewRequest, 0L); @@ -169,14 +178,14 @@ class AccountServiceTest { Account existAccount = new Account(); existAccount.setAccount(account); existAccount.setAccountType(AccountType.Corr.getKey()); - existAccount.setStatus(AccountStatus.CLOSE.getKey()); + existAccount.setStatus(ServiceStatus.Closed.getKey()); existAccount.setCompanyId(companyId); Long accountId = accountImdg.insert(existAccount); CorrespondentAccountUpdateRequest correspondentAccountUpdateRequest = new CorrespondentAccountUpdateRequest(); correspondentAccountUpdateRequest.setAccount(account); correspondentAccountUpdateRequest.setAccountType(AccountType.Corr.getKey()); - correspondentAccountUpdateRequest.setStatus(AccountStatus.ACTIVE.getKey()); + correspondentAccountUpdateRequest.setStatus(ServiceStatus.Active.getKey()); correspondentAccountUpdateRequest.setCompanyId(companyId); correspondentAccountUpdateRequest.setId(accountId); @@ -204,7 +213,7 @@ class AccountServiceTest { Account existAccount = new Account(); existAccount.setAccount(account); existAccount.setAccountType(AccountType.Corr.getKey()); - existAccount.setStatus(AccountStatus.ACTIVE.getKey()); + existAccount.setStatus(ServiceStatus.Active.getKey()); existAccount.setCompanyId(companyId); Long accountId = accountImdg.insert(existAccount); @@ -224,7 +233,7 @@ class AccountServiceTest { waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); Account resultBlock = accountImdg.getSingleObjectByID(accountId); - existAccount.setStatus(AccountStatus.BLOCKED.getKey()); + existAccount.setStatus(ServiceStatus.Blocked.getKey()); existAccount.setUpdated(resultBlock.getUpdated()); ACCOUNT_MATCHER.assertMatch(existAccount, resultBlock); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java index da67ac384..6644c2c85 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java @@ -37,6 +37,8 @@ import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; import javax.annotation.PostConstruct; import java.util.Map; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; import static ru.spcex.clearing.account.utils.TestUtils.*; @@ -151,12 +153,13 @@ class ClearingAccountServiceTest { 0, jsonString); - waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + verify(producer, timeout(30_000L).times(2)) + .send(producerRecord.capture()); Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); predictableAccount.setAccountType(AccountType.Clrn.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); @@ -182,7 +185,7 @@ class ClearingAccountServiceTest { void clearingAccountUpdate() { Account existAccount = new Account(); existAccount.setAccount(ACCOUNT_VALUE); - existAccount.setStatus(AccountStatus.ACTIVE.getKey()); + existAccount.setStatus(ServiceStatus.Active.getKey()); existAccount.setAccountType(AccountType.Clrn.getKey()); Long accountId = accountImdg.insert(existAccount); @@ -193,7 +196,7 @@ class ClearingAccountServiceTest { Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); - predictableAccount.setStatus(AccountStatus.BLOCKED.getKey()); + predictableAccount.setStatus(ServiceStatus.Blocked.getKey()); predictableAccount.setAccountType(AccountType.Clrn.getKey()); clearingAccountImdg.insert(existClearingAccount); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java index 0d6ea0bcb..52276ea0c 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java @@ -36,8 +36,11 @@ import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; import javax.annotation.PostConstruct; import java.util.Map; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.account.utils.TestUtils.*; +import static ru.spcex.clearing.account.utils.TestUtils.addRecordToKafka; +import static ru.spcex.clearing.account.utils.TestUtils.getJsonStringForNew; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { @@ -150,12 +153,13 @@ class DepoAccountServiceTest { 0, jsonString); - waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + verify(producer, timeout(30_000L).times(2)) + .send(producerRecord.capture()); Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); predictableAccount.setAccountType(AccountType.Depo.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java index 176245ab5..d03708acc 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java @@ -35,8 +35,11 @@ import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; import javax.annotation.PostConstruct; import java.util.Map; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.account.utils.TestUtils.*; +import static ru.spcex.clearing.account.utils.TestUtils.addRecordToKafka; +import static ru.spcex.clearing.account.utils.TestUtils.getJsonStringForNew; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { @@ -140,11 +143,13 @@ class InformationAccountServiceTest { 0, jsonString); - waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + //waiting for kafka producer send message (finale event) + verify(producer, timeout(30_000L).times(2)) + .send(producerRecord.capture()); Account predictableAccount = new Account(); predictableAccount.setAccountType(AccountType.Info.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java new file mode 100644 index 000000000..8dfb3495e --- /dev/null +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java @@ -0,0 +1,314 @@ +package ru.spcex.clearing.account.service; + +import org.apache.kafka.clients.consumer.MockConsumer; +import org.apache.kafka.clients.producer.MockProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; +import ru.spcex.clearing.account.config.BeanConfiguration; +import ru.spcex.clearing.account.config.HazelcastServiceTestConfiguration; +import ru.spcex.clearing.account.config.KafkaConfigTest; +import ru.spcex.clearing.account.config.validation.TradingClearingRegistryValidationConfig; +import ru.spcex.clearing.account.config.validation.ValidationConfig; +import ru.spcex.clearing.account.utils.MatcherFactory; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.TradingClearingRegistryType; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; + +import javax.annotation.PostConstruct; + +import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.account.utils.TestUtils.*; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = { + BeanConfiguration.class, + ValidationConfig.class, + TradingClearingRegistryValidationConfig.class, + TradingClearingRegistryService.class, + HazelcastServiceTestConfiguration.class, + KafkaConfigTest.class}) +class TradingClearingRegistryServiceTest { + public static final MatcherFactory.Matcher TRADING_CLEARING_REGISTRY_MATCHER = usingIgnoringFieldsComparator(); + private static final int PARTITION = 0; + private static final String TOPIC_ACCOUNT_NEW = Consts.ACCOUNT_NEW_SDF01; + private static final String account = "123456789123"; + private static final Long companyId = 0L; + private static final Long relationId = 0L; + @Autowired + TradingClearingRegistryService tradingClearingRegistryService; + @Autowired + @Qualifier("hazelcastServiceTest") + private HazelcastService hazelcastServiceTest; + + @Captor + private ArgumentCaptor producerRecord; + @SpyBean + private MockProducer producer; + + private Imdg tradingClearingRegistryImdg; + private Imdg companyImdg; + private Imdg serviceStatusDictionaryImdg; + + private Imdg clearingAccountImdg; + private Long clearingAccountId; + + private Imdg depoAccountImdg; + private Long depoAccountId; + + private Imdg informationAccountImdg; + private Long infoAccountId; + + private Imdg accountImdg; + private Long accountId; + + private Long account2Id; + + static int newRequestCnt = 0; + + @PostConstruct + private void init() { + hazelcastServiceTest.waitAvailable(); + tradingClearingRegistryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class + ); + companyImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_Company, Company.class + ); + serviceStatusDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class + ); + accountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_Account, Account.class + ); + clearingAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class + ); + depoAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_DepoAccount, DepoAccount.class + ); + informationAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_InformationAccount, InformationAccount.class + ); + ServiceStatusDictionary serviceStatusDictionary = new ServiceStatusDictionary(); + serviceStatusDictionary.setCode(ServiceStatus.Active.getKey()); + serviceStatusDictionary.setName(ServiceStatus.Active.getKey()); + serviceStatusDictionaryImdg.insert(serviceStatusDictionary); + + Company company = new Company(); + company.setId(companyId); + company.setWorkflowStatus(WorkflowStatus.Active.getKey()); + company.setClearingCode("77"); + companyImdg.insert(company); + + Account account = new Account(); + account.setStatus(ServiceStatus.Active.getKey()); + accountId = accountImdg.insert(account); + + account2Id = accountImdg.insert(account); + + DepoAccount depoAccount = new DepoAccount(); + depoAccount.setAccountId(accountId); + depoAccount.setDepoAccountType("DAT"); + depoAccountId = depoAccountImdg.insert(depoAccount); + + ClearingAccount clearingAccount = new ClearingAccount(); + clearingAccount.setAccountId(accountId); + clearingAccount.setClearingAccountType("CAT"); + clearingAccountId = clearingAccountImdg.insert(clearingAccount); + + InformationAccount informationAccount = new InformationAccount(); + informationAccount.setAccountId(account2Id); + infoAccountId = informationAccountImdg.insert(informationAccount); + } + + @Test + void tradingClearingRegistryNew_moneyAccount_clearingAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077MAT"); + predictableTradingClearingRegistry.setMoneyAccountId(clearingAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType("CAT"); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.M.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + newRequestCnt, + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + newRequestCnt++; + } + + @Test + void tradingClearingRegistryNew_moneyAccount_informationAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(infoAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077MAT"); + predictableTradingClearingRegistry.setMoneyAccountId(infoAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType(TradingClearingRegistryType.Owner_A.getKey()); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.M.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + newRequestCnt, + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + newRequestCnt++; + } + + + @Test + void tradingClearingRegistryNew_depoAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId); + tradingClearingRegistryNewRequest.setDepoAccountId(depoAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077CDAT"); + predictableTradingClearingRegistry.setMoneyAccountId(clearingAccountId); + predictableTradingClearingRegistry.setDepoAaccountId(depoAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType("DAT"); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.C.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + newRequestCnt, + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + newRequestCnt++; + } + + @Test + void tradingClearingRegistryUpdate() { + TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry(); + existTradingClearingRegistry.setStatus(ServiceStatus.Closed.getKey()); + Long registryId = tradingClearingRegistryImdg.insert(existTradingClearingRegistry); + + TradingClearingRegistryUpdateRequest tradingClearingRegistryUpdateRequest = new TradingClearingRegistryUpdateRequest(); + tradingClearingRegistryUpdateRequest.setStatus(ServiceStatus.Active.getKey()); + tradingClearingRegistryUpdateRequest.setId(registryId); + + String jsonString = getJsonStringForUPDATE(tradingClearingRegistryUpdateRequest, 0); + + //ACT + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, + PARTITION, + 0, + jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId); + existTradingClearingRegistry.setUpdated(resultUpdating.getUpdated()); + existTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultUpdating, existTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultUpdating); + } + + @Test + void tradingClearingRegistryBlock() { + TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry(); + existTradingClearingRegistry.setStatus(ServiceStatus.Closed.getKey()); + Long registryId = tradingClearingRegistryImdg.insert(existTradingClearingRegistry); + + CommonDeleteRequest tradingClearingRegistryDeleteRequest = new CommonDeleteRequest(); + tradingClearingRegistryDeleteRequest.setId(registryId); + + String jsonString = getJsonStringForDELETE(tradingClearingRegistryDeleteRequest, 0); + + //ACT + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, + PARTITION, + 0, + jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId); + existTradingClearingRegistry.setUpdated(resultUpdating.getUpdated()); + existTradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultUpdating, existTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultUpdating); + } +} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java deleted file mode 100644 index cfc8b71a0..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java +++ /dev/null @@ -1,40 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.account; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Deprecated -@Controller -@RequestMapping("/account-balances") -public class AccountBalanceController { - private final IStateLoader stateLoader; - - @Autowired - public AccountBalanceController(IStateLoader stateLoader) { - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all account balances.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyInfoController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyInfoController.java index 6ac88b427..02ef05d01 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyInfoController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyInfoController.java @@ -14,6 +14,7 @@ import ru.spcex.clearing.backendapi.controller.request.cud.company.CompanyInfoUp import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; +import ru.spcex.clearing.backendapi.controller.response.entity.company.CompanyInfoBackendGetAll; import ru.spcex.clearing.backendapi.meta.GetResponseFactory; import ru.spcex.clearing.backendapi.service.IOperator; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -53,19 +54,14 @@ public class CompanyInfoController extends AbstractQueueController { } @ApiOperation(value = "get all CompanyInfo's.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CompanyInfoBackendGetAll.class)}) @RequestMapping(method = RequestMethod.GET) @ResponseBody - public CommonGetAllResponse getAll() { + public CompanyInfoBackendGetAll getAll() { Collection> all = new ArrayList<>(); Collection companies = companyImdg.getAllValues(); - for (Company company : companies) { - if (company.getProfile() != null && company.getProfile().getId() != null) { // пока возвращает "пустой" CompanyInfo если его нет для Company - all.add(responseFactory.responseFromObject(company.getProfile())); - } - } - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); + CompanyInfoBackendGetAll response = new CompanyInfoBackendGetAll(); + response.fromEntity(companies); return response; } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java deleted file mode 100644 index 625b82d90..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/liabilities-claims-assets") -public class LiabilitiesClaimsAssetController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public LiabilitiesClaimsAssetController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all LiabilitiesClaimsAssets.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_LiabilitiesClaimsAssets, - LiabilitiesClaimsAssets.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java deleted file mode 100644 index fc5cc1a72..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/liabilities-claims-money") -public class LiabilitiesClaimsMoneyController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public LiabilitiesClaimsMoneyController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all LiabilitiesClaimsMoney.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_LiabilitiesClaimsMoney, - LiabilitiesClaimsMoney.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java deleted file mode 100644 index ba837d2b3..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/admitted-deal-registers") -public class AdmittedDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public AdmittedDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all admitted deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_AdmittedDealRegister, - AdmittedDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java deleted file mode 100644 index a5216bdd3..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/balance-registers") -public class BalanceRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public BalanceRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all money balance registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_BalanceRegister, - BalanceRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java deleted file mode 100644 index 55a0f6fe9..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/clearmember-registers") -public class ClearMemberRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public ClearMemberRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all money ClearMemberRegisters.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_ClearMemberRegister, - ClearMemberRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java deleted file mode 100644 index d0c485e6d..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/covered-deal-registers") -public class CoveredDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public CoveredDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all covered deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_CoveredDealRegister, - CoveredDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java deleted file mode 100644 index e9ade9fa9..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.DealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/deal-registers") -public class DealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public DealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_DealRegister, - DealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java deleted file mode 100644 index cb07945b6..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/order-registers") -public class OrderRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public OrderRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all order registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_OrderRegister, - OrderRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java deleted file mode 100644 index 89be3464d..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/uncovered-deal-registers") -public class UncoveredDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public UncoveredDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all uncovered deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_UncoveredDealRegister, - UncoveredDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java index 0d984ff0f..50c5984ab 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java @@ -10,9 +10,9 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; +import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryUpdateAction; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; @@ -69,7 +69,7 @@ public class TradingClearingRegistryController extends AbstractQueueController { @PathVariable("id") Long id) throws ExecutionException, InterruptedException { CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - return processRequest(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_DELETE, deleteAction); + return processRequest(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, deleteAction); } @ApiOperation(value = "get TradingClearingRegistry by id.") diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java deleted file mode 100644 index 08b6fe8cc..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java +++ /dev/null @@ -1,83 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.utilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateNewAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateUpdateAction; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; -import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.Consts; - -import java.util.Collection; -import java.util.Map; -import java.util.concurrent.ExecutionException; - -@Controller -@RequestMapping("/utilities/key-rates") -public class CudKeyRateController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public CudKeyRateController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "create key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public CudResponse add( - @ApiParam(value = "Параметры команды в JSON формате.", required = true) - @RequestBody KeyRateNewAction keyRateNewAction) throws ExecutionException, InterruptedException { - return processRequest(Consts.DESTINATION_KEY_RATE_NEW, keyRateNewAction); - } - - @ApiOperation(value = "update key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public CudResponse update( - @ApiParam(value = "Идентификатор изменяемого объекта.", required = true, example = "1234") - @PathVariable("id") Long id, - @ApiParam(value = "Новые значения полей объекта.", required = true) - @RequestBody KeyRateUpdateAction keyRateUpdateAction) throws ExecutionException, InterruptedException { - keyRateUpdateAction.setId(id); - return processRequest(Consts.DESTINATION_KEY_RATE_UPDATE, keyRateUpdateAction); - } - - @ApiOperation(value = "delete key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) - @ResponseBody - public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234") - @PathVariable("id") Long id) throws ExecutionException, InterruptedException { - CommonDeleteAction deleteAction = new CommonDeleteAction(); - deleteAction.setId(id); - return processRequest(Consts.DESTINATION_KEY_RATE_DELETE, deleteAction); - } - - @ApiOperation(value = "get all KeyRate's.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_KeyRate, KeyRate.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateNewAction.java deleted file mode 100644 index 6e84101b9..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateNewAction.java +++ /dev/null @@ -1,92 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.request.cud.utilities; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import io.swagger.annotations.ApiModelProperty; -import ru.spcex.clearing.backendapi.domain.actions.IAction; -import ru.spcex.clearing.backendapi.errors.BackEndError; -import ru.spcex.clearing.platform.messaging.domain.ActionType; -import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateNewRequest; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.platform.utils.enumeration.EnumMessage; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -public class KeyRateNewAction implements IAction { - @ApiModelProperty(value = "Ключевая ставка ЦБ РФ", example = "12.5") - @JsonProperty - public BigDecimal rate; - @ApiModelProperty(value = "Дата начала действия ключевой ставки", example = "2022-01-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate startDate; - @ApiModelProperty(value = "Дата окончания действия ключевой ставки", example = "2022-04-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate endDate; - @ApiModelProperty(value = "Документ ЦБ", example = "Lorem ipsum") - @JsonProperty - public String document; - - @Override - public Collection validate() { - if (this.startDate == null) - return List.of(new EnumMessage(BackEndError.ValidationError, "startDate")); - else return Collections.emptyList(); - } - - @ApiModelProperty(hidden = true) - @Override - public ActionType getActionType() { - return ActionType.NEW; - } - - @Override - public KeyRateNewRequest toRequest() { - var req = new KeyRateNewRequest(); - req.setStartDate(this.getStartDate()); - req.setEndDate(this.getEndDate()); - req.setKeyRate(this.getRate()); - req.setDocument(this.getDocument()); - return req; - } - - public BigDecimal getRate() { - return rate; - } - - public void setRate(BigDecimal rate) { - this.rate = rate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java deleted file mode 100644 index 250506c75..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java +++ /dev/null @@ -1,92 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.request.cud.utilities; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import io.swagger.annotations.ApiModelProperty; -import ru.spcex.clearing.backendapi.domain.actions.IAction; -import ru.spcex.clearing.platform.messaging.domain.ActionType; -import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class KeyRateUpdateAction implements IAction { - @ApiModelProperty(hidden = true) - @JsonProperty - public Long id; - @ApiModelProperty(value = "Ключевая ставка ЦБ РФ", example = "12.5") - @JsonProperty - public BigDecimal rate; - @ApiModelProperty(value = "Дата начала действия ключевой ставки", example = "2022-01-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate startDate; - @ApiModelProperty(value = "Дата окончания действия ключевой ставки", example = "2022-04-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate endDate; - @ApiModelProperty(value = "Документ ЦБ", example = "Lorem ipsum") - @JsonProperty - public String document; - - @ApiModelProperty(hidden = true) - @Override - public ActionType getActionType() { - return ActionType.UPDATE; - } - - @Override - public KeyRateUpdateRequest toRequest() { - var req = new KeyRateUpdateRequest(); - req.setId(this.getId()); - req.setStartDate(this.getStartDate()); - req.setEndDate(this.getEndDate()); - req.setKeyRate(this.getRate()); - req.setDocument(this.getDocument()); - return req; - } - - public BigDecimal getRate() { - return rate; - } - - public void setRate(BigDecimal rate) { - this.rate = rate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyInfoBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyInfoBackendGetAll.java new file mode 100644 index 000000000..e134eb83a --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyInfoBackendGetAll.java @@ -0,0 +1,48 @@ +package ru.spcex.clearing.backendapi.controller.response.entity.company; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import ru.clearing.classes.statics.data.company.Company; +import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +@ApiModel(description = "Ответ при получении объектов CompanyInfos.") +public class CompanyInfoBackendGetAll extends BasicSpcexResponse { + + @JsonProperty + @ApiModelProperty(value = "Полезная нагрузка") + private CompanyInfoBackendPayload payload = new CompanyInfoBackendPayload(); + + private static class CompanyInfoBackendPayload { + private List items = new ArrayList<>(); + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + } + + public CompanyInfoBackendPayload getPayload() { + return payload; + } + + public void setPayload(CompanyInfoBackendPayload payload) { + this.payload = payload; + } + + public void fromEntity(Collection companys) { + var payload = this.getPayload(); + for (var company : companys) { + var singleItem = CompanyInfoBackendGetFields.fromEntity(company); + payload.getItems().add(singleItem); + } + } + +} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyInfoBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyInfoBackendGetFields.java new file mode 100644 index 000000000..4e039a019 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyInfoBackendGetFields.java @@ -0,0 +1,224 @@ +package ru.spcex.clearing.backendapi.controller.response.entity.company; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.profile.CompanyInfo; + +public class CompanyInfoBackendGetFields { + @JsonProperty + @ApiModelProperty(value = "Идентификатор записи") + private Long id; + @JsonProperty + @ApiModelProperty(value = "Идентификатор компании") + private Long companyId; + @JsonProperty + @ApiModelProperty(value = "Код единоличного исполнительного органа") + private String corporationSoleType; + @JsonProperty + @ApiModelProperty(value = "Код юрисдикции") + private String countryCode; + @JsonProperty + @ApiModelProperty(value = "Описание компании") + private String description; + @JsonProperty + @ApiModelProperty(value = "Код признака профессионального участника") + private String professionalSign; + @JsonProperty + @ApiModelProperty(value = "Код вида субъекта") + private String legalKind; + @JsonProperty + @ApiModelProperty(value = "Код типа организации") + private String organizationType; + @JsonProperty + @ApiModelProperty(value = "Код резиденции") + private String residence; + @JsonProperty + @ApiModelProperty(value = "Краткое наименование компании") + private String shortName; + @JsonProperty + @ApiModelProperty(value = "Полное наименование компании") + private String fullName; + @JsonProperty + @ApiModelProperty(value = "Краткое наименование компании на английском") + private String shortNameEng; + @JsonProperty + @ApiModelProperty(value = "Краткое наименование компании на английском") + private String fullNameEng; + @JsonProperty + @ApiModelProperty(value = "Код участника торгов") + private String tradingCode; + @JsonProperty + @ApiModelProperty(value = "Код участника клиринга") + private String clearingCode; + @JsonProperty + @ApiModelProperty(value = "Регистрационный код участника") + private String registrationCode; + @JsonProperty + @ApiModelProperty(value = "Наименование статуса") + private String workflowStatus; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long companyId) { + this.companyId = companyId; + } + + public String getCorporationSoleType() { + return corporationSoleType; + } + + public void setCorporationSoleType(String corporationSoleType) { + this.corporationSoleType = corporationSoleType; + } + + public String getCountryCode() { + return countryCode; + } + + public void setCountryCode(String countryCode) { + this.countryCode = countryCode; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getProfessionalSign() { + return professionalSign; + } + + public void setProfessionalSign(String professionalSign) { + this.professionalSign = professionalSign; + } + + public String getLegalKind() { + return legalKind; + } + + public void setLegalKind(String legalKind) { + this.legalKind = legalKind; + } + + public String getOrganizationType() { + return organizationType; + } + + public void setOrganizationType(String organizationType) { + this.organizationType = organizationType; + } + + public String getResidence() { + return residence; + } + + public void setResidence(String residence) { + this.residence = residence; + } + + public String getShortName() { + return shortName; + } + + public void setShortName(String shortName) { + this.shortName = shortName; + } + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public String getShortNameEng() { + return shortNameEng; + } + + public void setShortNameEng(String shortNameEng) { + this.shortNameEng = shortNameEng; + } + + public String getFullNameEng() { + return fullNameEng; + } + + public void setFullNameEng(String fullNameEng) { + this.fullNameEng = fullNameEng; + } + + public String getTradingCode() { + return tradingCode; + } + + public void setTradingCode(String tradingCode) { + this.tradingCode = tradingCode; + } + + public String getClearingCode() { + return clearingCode; + } + + public void setClearingCode(String clearingCode) { + this.clearingCode = clearingCode; + } + + public String getRegistrationCode() { + return registrationCode; + } + + public void setRegistrationCode(String registrationCode) { + this.registrationCode = registrationCode; + } + + public String getWorkflowStatus() { + return workflowStatus; + } + + public void setWorkflowStatus(String workflowStatus) { + this.workflowStatus = workflowStatus; + } + + public static CompanyInfoBackendGetFields fromEntity(Company company) { + if (company == null || company.getProfile() == null) { + return null; + } + CompanyInfo info = company.getProfile(); + CompanyInfoBackendGetFields fields = new CompanyInfoBackendGetFields(); + fields.setId(info.getId()); + fields.setCompanyId(info.getCompanyId()); + fields.setCorporationSoleType(info.getCorporationSoleType()); + fields.setCountryCode(info.getCountryCode()); + fields.setDescription(info.getDescription()); + fields.setProfessionalSign(info.getProfessionalSign()); + fields.setLegalKind(info.getLegalKind()); + fields.setOrganizationType(info.getOrganizationType()); + fields.setResidence(info.getResidence()); + fields.setShortNameEng(info.getShortNameEng()); + fields.setFullNameEng(info.getFullNameEng()); + + fields.setShortName(company.getShortName()); + fields.setFullName(company.getFullName()); + fields.setTradingCode(company.getTradingCode()); + fields.setClearingCode(company.getClearingCode()); + fields.setRegistrationCode(company.getRegistrationCode()); + fields.setWorkflowStatus(company.getWorkflowStatus()); + + return fields; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java deleted file mode 100644 index 0e777aa67..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.utilities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов KeyRate.") -public class KeyRateBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private KeyRateBackendPayload payload = new KeyRateBackendPayload(); - - private static class KeyRateBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public KeyRateBackendPayload getPayload() { - return payload; - } - - public void setPayload(KeyRateBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection keyRates) { - var payload = this.getPayload(); - for (var keyRate : keyRates) { - var singleItem = new KeyRateBackendGetFields(); - singleItem.setId(keyRate.getId()); - singleItem.setKeyRate(keyRate.getRate()); - singleItem.setStartDate(keyRate.getStartDate()); - singleItem.setEndDate(keyRate.getEndDate()); - singleItem.setDocument(keyRate.getDocument()); - singleItem.setWorkflowStatus(keyRate.getWorkflowStatus()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java deleted file mode 100644 index 0a26e33de..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java +++ /dev/null @@ -1,73 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.utilities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class KeyRateBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private BigDecimal keyRate; - @JsonSerialize(using = LocalDateSerializer.class) - @JsonProperty - private LocalDate startDate; - @JsonSerialize(using = LocalDateSerializer.class) - @JsonProperty - private LocalDate endDate; - @JsonProperty - private String document; - @JsonProperty - private String workflowStatus; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public BigDecimal getKeyRate() { - return keyRate; - } - - public void setKeyRate(BigDecimal keyRate) { - this.keyRate = keyRate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } - - public String getWorkflowStatus() { - return workflowStatus; - } - - public void setWorkflowStatus(String workflowStatus) { - this.workflowStatus = workflowStatus; - } -} diff --git a/clearing-parent/backend-api/src/main/resources/meta/data.xml b/clearing-parent/backend-api/src/main/resources/meta/data.xml index f3efd0b8d..a1bed7620 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -1,5 +1,5 @@ - + @@ -62,6 +62,7 @@ + @@ -80,13 +81,14 @@ - + + @@ -168,6 +170,8 @@ + + @@ -247,23 +251,8 @@ - - - - - - - - - - - - - - - - - + + @@ -272,25 +261,36 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -349,6 +349,7 @@ + @@ -368,9 +369,10 @@ - - - + + + + @@ -406,6 +408,10 @@ + + + + @@ -442,6 +448,10 @@ + + + + @@ -456,6 +466,79 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + + + \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index 5b67a2662..a8d7dc20a 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + @@ -233,36 +233,11 @@ - - - - - - - - - - - - - - - - - - - - - + - - - - - - + @@ -278,36 +253,21 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + @@ -318,7 +278,32 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -373,7 +358,7 @@ - + @@ -389,10 +374,10 @@ - + - + @@ -461,11 +446,19 @@ + + + + + - + + + + @@ -523,11 +516,19 @@ - + + + + + + - + + + + @@ -576,7 +577,7 @@ - + @@ -594,7 +595,7 @@ - + @@ -613,7 +614,7 @@ - + @@ -762,6 +763,7 @@
+ @@ -814,7 +816,7 @@ - + @@ -879,8 +881,8 @@ + - @@ -904,8 +906,8 @@ - - + + @@ -939,10 +941,10 @@ - - - - + + + + @@ -958,20 +960,20 @@ - + + - - + @@ -996,34 +998,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1287,7 +1261,7 @@ - + @@ -1323,448 +1297,231 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - -
- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - + - - - + + - - + + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - + - + - - - - - - - + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -1799,23 +1556,20 @@ - + - + - + - - - + - @@ -1823,51 +1577,26 @@ - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - + - @@ -1875,37 +1604,15 @@ - - - - - - - - - - - - - - - - - - - - - - - + - +
@@ -1914,154 +1621,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -2069,13 +1636,15 @@ - - + + + + @@ -2083,9 +1652,117 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2093,47 +1770,246 @@ - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2177,4 +2053,4 @@ - + \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java index 5a1b80c25..5e1163d1a 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java @@ -35,8 +35,6 @@ import ru.spcex.clearing.backendapi.controller.queue.execution.ExecutionFondCont import ru.spcex.clearing.backendapi.controller.queue.journal.InDocumentJournalController; import ru.spcex.clearing.backendapi.controller.queue.journal.ManagementJournalController; import ru.spcex.clearing.backendapi.controller.queue.journal.OutDocumentJournalController; -import ru.spcex.clearing.backendapi.controller.queue.liabilities.LiabilitiesClaimsAssetController; -import ru.spcex.clearing.backendapi.controller.queue.liabilities.LiabilitiesClaimsMoneyController; import ru.spcex.clearing.backendapi.controller.queue.misc.*; import ru.spcex.clearing.backendapi.controller.queue.payment.PaymentInstructionController; import ru.spcex.clearing.backendapi.controller.queue.register.*; @@ -45,7 +43,6 @@ import ru.spcex.clearing.backendapi.controller.queue.scheduler.*; import ru.spcex.clearing.backendapi.controller.queue.securities.*; import ru.spcex.clearing.backendapi.controller.queue.user.UserController; import ru.spcex.clearing.backendapi.controller.queue.user.UserRoleSessionController; -import ru.spcex.clearing.backendapi.controller.queue.utilities.CudKeyRateController; import ru.spcex.clearing.backendapi.controller.queue.utilities.StatementController; import ru.spcex.clearing.backendapi.controller.queue.utilities.UserSettingsController; import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; @@ -85,7 +82,6 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi @ContextConfiguration(classes = { //account - AccountBalanceController.class, AccountController.class, BankAccountController.class, ClearingAccountController.class, @@ -109,8 +105,6 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi ManagementJournalController.class, OutDocumentJournalController.class, //liabilities - LiabilitiesClaimsAssetController.class, - LiabilitiesClaimsMoneyController.class, //misc CurrencyController.class, ErrorTextController.class, @@ -121,15 +115,8 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi //payment PaymentInstructionController.class, //register - AdmittedDealRegisterController.class, - BalanceRegisterController.class, - ClearMemberRegisterController.class, ContractRegisterController.class, - CoveredDealRegisterController.class, - DealRegisterController.class, - OrderRegisterController.class, ReportRegisterController.class, - UncoveredDealRegisterController.class, //registry TradingClearingRegistryController.class, //scheduler @@ -150,7 +137,6 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi UserController.class, UserRoleSessionController.class, //utilities - CudKeyRateController.class, StatementController.class, UserSettingsController.class, //******* common configs ******* diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceControllerTest.java deleted file mode 100644 index 8c6155c85..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceControllerTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.account; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -@Deprecated -class AccountBalanceControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/account-balances/"; - - /** - * {@link AccountBalanceController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /account-balances/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - AccountBalance existBankAccount = new AccountBalance(); - existBankAccount.setAccountType("99"); - existBankAccount.setAccount("123456789123"); - existBankAccount.setId(currentId.get()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_AccountBalance, existBankAccount, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetControllerTest.java deleted file mode 100644 index 30d9f982f..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetControllerTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.LocalDate; - -class LiabilitiesClaimsAssetControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/liabilities-claims-assets/"; - - /** - * {@link LiabilitiesClaimsAssetController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /liabilities-claims-assets/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - LiabilitiesClaimsAssets liabilitiesClaimsAssets = new LiabilitiesClaimsAssets(); - liabilitiesClaimsAssets.setId(currentId.get()); - liabilitiesClaimsAssets.setCompanyId(currentId.get()); - liabilitiesClaimsAssets.setClearingDate(LocalDate.now()); - liabilitiesClaimsAssets.setAccountId(currentId.get()); - liabilitiesClaimsAssets.setAccountType("man"); - liabilitiesClaimsAssets.setAccount("res"); - liabilitiesClaimsAssets.setLiabilitiesQuantity(new BigDecimal(0)); - liabilitiesClaimsAssets.setClaimsQuantity(new BigDecimal(0)); - liabilitiesClaimsAssets.setCurrency("dos"); - liabilitiesClaimsAssets.setSettlementDate(LocalDate.now()); - liabilitiesClaimsAssets.setTradingDate(LocalDate.now()); - liabilitiesClaimsAssets.setRefundDate(LocalDate.now()); - liabilitiesClaimsAssets.setPrice(new BigDecimal(0)); - liabilitiesClaimsAssets.setSecurityId(currentId.get()); - liabilitiesClaimsAssets.setTradingCode("tra"); - liabilitiesClaimsAssets.setClearingCode("cle"); - liabilitiesClaimsAssets.setShortName("man"); - liabilitiesClaimsAssets.setContract("res"); - liabilitiesClaimsAssets.setComment("com"); - liabilitiesClaimsAssets.setFullName("send"); - liabilitiesClaimsAssets.setParentId(currentId.get()); - liabilitiesClaimsAssets.setLiabilitiesClaimsMoneyId(currentId.get()); - liabilitiesClaimsAssets.setClearingStatus(currentId.get()); - liabilitiesClaimsAssets.setPaymentId(currentId.get()); - liabilitiesClaimsAssets.setRefundPaymentId(currentId.get()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, liabilitiesClaimsAssets, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyControllerTest.java deleted file mode 100644 index 8dc6d40a1..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyControllerTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.LocalDate; - -class LiabilitiesClaimsMoneyControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/liabilities-claims-money/"; - - /** - * {@link LiabilitiesClaimsMoneyController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /liabilities-claims-money/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - LiabilitiesClaimsMoney liabilitiesClaimsMoney = new LiabilitiesClaimsMoney(); - liabilitiesClaimsMoney.setId(currentId.get()); - liabilitiesClaimsMoney.setCompanyId(currentId.get()); - liabilitiesClaimsMoney.setAccountId(currentId.get()); - liabilitiesClaimsMoney.setAccountType("acc"); - liabilitiesClaimsMoney.setAccount("acc"); - liabilitiesClaimsMoney.setLiabilitiesAmount(new BigDecimal(0)); - liabilitiesClaimsMoney.setClaimsAmount(new BigDecimal(0)); - liabilitiesClaimsMoney.setSettlementDate(LocalDate.now()); - liabilitiesClaimsMoney.setTradingDate(LocalDate.now()); - liabilitiesClaimsMoney.setCurrency("dos"); - liabilitiesClaimsMoney.setTradingCode("tra"); - liabilitiesClaimsMoney.setShortName("short"); - liabilitiesClaimsMoney.setFullName("full"); - liabilitiesClaimsMoney.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, liabilitiesClaimsMoney, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterControllerTest.java deleted file mode 100644 index 57b24b492..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterControllerTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -class AdmittedDealRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/admitted-deal-registers/"; - - /** - * {@link AdmittedDealRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /admitted-deal-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - AdmittedDealRegister admittedDealRegister = new AdmittedDealRegister(); - admittedDealRegister.setId(currentId.get()); - admittedDealRegister.setExecutionId(currentId.get()); - admittedDealRegister.setCompanyFullName("com"); - admittedDealRegister.setTradingDate(LocalDate.now()); - admittedDealRegister.setExchangeExecutionId(currentId.get()); - admittedDealRegister.setExchangeExecutionTime(Instant.now()); - admittedDealRegister.setSecuritySymbol("symb"); - admittedDealRegister.setSecurityFullName("name"); - admittedDealRegister.setSellerFullName("dos"); - admittedDealRegister.setSellerClearingCode("code"); - admittedDealRegister.setSellerAccount("acc"); - admittedDealRegister.setBuyerFullName("name"); - admittedDealRegister.setBuyerClearingCode("code"); - admittedDealRegister.setBuyerAccount("buy"); - admittedDealRegister.setAmount(new BigDecimal(0)); - admittedDealRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_AdmittedDealRegister, admittedDealRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterControllerTest.java deleted file mode 100644 index 2ede1a0b0..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterControllerTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; - -class BalanceRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/balance-registers/"; - - /** - * {@link BalanceRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /balance-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - BalanceRegister balanceRegister = new BalanceRegister(); - balanceRegister.setId(currentId.get()); - balanceRegister.setsDf01Date(Instant.now()); - balanceRegister.setCurrencyCode("com"); - balanceRegister.setSetHouseName("name"); - balanceRegister.setAccount("acc"); - balanceRegister.setInfoAccount("acc"); - balanceRegister.setRemainderSum(new BigDecimal(0)); - balanceRegister.setBlockedSum(new BigDecimal(0)); - balanceRegister.setUnblockedSum(new BigDecimal(0)); - balanceRegister.setInn("code"); - balanceRegister.setMarket(currentId.get()); - balanceRegister.setFullName("name"); - balanceRegister.setTypeRemains("code"); - balanceRegister.setDocNumber("buy"); - balanceRegister.setCompanyId(currentId.get()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_BalanceRegister, balanceRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterControllerTest.java deleted file mode 100644 index 3f0bcac4d..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterControllerTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.time.Instant; -import java.time.LocalDate; - -class ClearMemberRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/clearmember-registers/"; - - /** - * {@link ClearMemberRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /clearmember-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - ClearMemberRegister clearMemberRegister = new ClearMemberRegister(); - clearMemberRegister.setId(currentId.get()); - clearMemberRegister.setTradingCode("code"); - clearMemberRegister.setClearingCode("com"); - clearMemberRegister.setFullName("name"); - clearMemberRegister.setShortName("name"); - clearMemberRegister.setCategoryList("cat"); - clearMemberRegister.setCorporationSole("symb"); - clearMemberRegister.setAccount("name"); - clearMemberRegister.setBank(currentId.get()); - clearMemberRegister.setBankName("code"); - clearMemberRegister.setInn("acc"); - clearMemberRegister.setBic("name"); - clearMemberRegister.setOgrn("code"); - clearMemberRegister.setCpp("buy"); - clearMemberRegister.setOcpo("ocpo"); - clearMemberRegister.setContractNumber("cont"); - clearMemberRegister.setContractDate(LocalDate.now()); - clearMemberRegister.setRegistrationDate(LocalDate.now()); - clearMemberRegister.setSystemDate(LocalDate.now()); - clearMemberRegister.setAccessDate(Instant.now()); - clearMemberRegister.setSuspentionDate(Instant.now()); - clearMemberRegister.setReopeningDate(Instant.now()); - clearMemberRegister.setCloseDate(Instant.now()); - clearMemberRegister.setExclusionDate(Instant.now()); - clearMemberRegister.setAddress("code"); - clearMemberRegister.setEmail("acc"); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_ClearMemberRegister, clearMemberRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterControllerTest.java deleted file mode 100644 index fa1382f24..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterControllerTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -class CoveredDealRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/covered-deal-registers/"; - - /** - * {@link CoveredDealRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /covered-deal-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - CoveredDealRegister coveredDealRegister = new CoveredDealRegister(); - coveredDealRegister.setId(currentId.get()); - coveredDealRegister.setExecutionId(currentId.get()); - coveredDealRegister.setCompanyFullName("com"); - coveredDealRegister.setTradingDate(LocalDate.now()); - coveredDealRegister.setExchangeExecutionId(currentId.get()); - coveredDealRegister.setExchangeExecutionTime(Instant.now()); - coveredDealRegister.setSecuritySymbol("symb"); - coveredDealRegister.setSecurityFullName("name"); - coveredDealRegister.setSellerFullName("name"); - coveredDealRegister.setSellerClearingCode("code"); - coveredDealRegister.setSellerAccount("acc"); - coveredDealRegister.setBuyerFullName("name"); - coveredDealRegister.setBuyerClearingCode("code"); - coveredDealRegister.setBuyerAccount("buy"); - coveredDealRegister.setAmount(new BigDecimal(0)); - coveredDealRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_CoveredDealRegister, coveredDealRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterControllerTest.java deleted file mode 100644 index fd58907fd..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterControllerTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.DealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -class DealRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/deal-registers/"; - - /** - * {@link DealRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /deal-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - DealRegister dealRegister = new DealRegister(); - dealRegister.setId(currentId.get()); - dealRegister.setExecutionId(currentId.get()); - dealRegister.setExchangeExecutionId(currentId.get()); - dealRegister.setExchangeExecutionTime(Instant.now()); - dealRegister.setTradingDate(LocalDate.now()); - dealRegister.setAccount("cat"); - dealRegister.setMarket("symb"); - dealRegister.setPrice(new BigDecimal(0)); - dealRegister.setAmount(new BigDecimal(0)); - dealRegister.setSide("code"); - dealRegister.setSettlementCurrency("acc"); - dealRegister.setCompanyId(currentId.get()); - dealRegister.setFirstLegSettlementDate(LocalDate.now()); - dealRegister.setSecondLegSettlementDate(LocalDate.now()); - dealRegister.setSecurityFullName("ocpo"); - dealRegister.setSecuritySymbol("cont"); - dealRegister.setSecurityId(currentId.get()); - dealRegister.setCounterPartyId(currentId.get()); - dealRegister.setCoverageStatus("status"); - dealRegister.setSessionId(currentId.get()); - dealRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_DealRegister, dealRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterControllerTest.java deleted file mode 100644 index fdac282cf..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterControllerTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.LocalDate; - -class OrderRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/order-registers/"; - - /** - * {@link OrderRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /order-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - OrderRegister orderRegister = new OrderRegister(); - orderRegister.setId(currentId.get()); - orderRegister.setCreditLegAccount("code"); - orderRegister.setCreditLegAmount(new BigDecimal(0)); - orderRegister.setCreditLegCurrencyCode("name"); - orderRegister.setCreditLegDirection(currentId.get()); - orderRegister.setDebitLegAccount("cat"); - orderRegister.setSender("symb"); - orderRegister.setAddressee("name"); - orderRegister.setDocumentNumber("doc"); - orderRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_OrderRegister, orderRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterControllerTest.java deleted file mode 100644 index a59b38f85..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterControllerTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -class UncoveredDealRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/uncovered-deal-registers/"; - - /** - * {@link UncoveredDealRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /uncovered-deal-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - UncoveredDealRegister uncoveredDealRegister = new UncoveredDealRegister(); - uncoveredDealRegister.setId(currentId.get()); - uncoveredDealRegister.setExecutionId(currentId.get()); - uncoveredDealRegister.setCompanyFullName("code"); - uncoveredDealRegister.setTradingDate(LocalDate.now()); - uncoveredDealRegister.setExchangeExecutionId(currentId.get()); - uncoveredDealRegister.setExchangeExecutionTime(Instant.now()); - uncoveredDealRegister.setSecuritySymbol("sec"); - uncoveredDealRegister.setSecurityFullName("code"); - uncoveredDealRegister.setSellerFullName("code"); - uncoveredDealRegister.setSellerClearingCode("sell"); - uncoveredDealRegister.setSellerAccount("coment"); - uncoveredDealRegister.setBuyerFullName("cat"); - uncoveredDealRegister.setBuyerClearingCode("buyer"); - uncoveredDealRegister.setBuyerAccount("code"); - uncoveredDealRegister.setAmount(new BigDecimal(0)); - uncoveredDealRegister.setResultStatus("res"); - uncoveredDealRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_UncoveredDealRegister, uncoveredDealRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java index c45ddd2ed..be9151b6b 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java @@ -6,9 +6,9 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; +import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryUpdateAction; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.response.entity.registry.TradingClearingRegistryBackendGetById; import ru.spcex.clearing.backendapi.controller.response.entity.registry.TradingClearingRegistryBackendGetFields; import ru.spcex.clearing.backendapi.domain.actions.IAction; @@ -97,7 +97,7 @@ class TradingClearingRegistryControllerTest extends AbstractControllerTest { deleteAction.setId(id); //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); - checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_DELETE, deleteAction); + checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, deleteAction); } /** diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateControllerTest.java deleted file mode 100644 index 384198de5..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateControllerTest.java +++ /dev/null @@ -1,95 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.utilities; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateNewAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateUpdateAction; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.Consts; - -import java.math.BigDecimal; -import java.time.LocalDate; - -class CudKeyRateControllerTest extends AbstractControllerTest { - public static final String REST_URL = "/utilities/key-rates/"; - - /** - * {@link CudKeyRateController#add(KeyRateNewAction)}
- * Тест проверяет получение сущности {@link KeyRateNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link KeyRateNewAction}:
- */ - @Test - void add() throws Exception { - //ARRANGE - KeyRateNewAction keyRateUpdateAction = new KeyRateNewAction(); -// keyRateUpdateAction.setId(currentId.get()); - keyRateUpdateAction.setRate(new BigDecimal(0)); - keyRateUpdateAction.setStartDate(LocalDate.now()); - keyRateUpdateAction.setEndDate(LocalDate.now()); - keyRateUpdateAction.setDocument("name"); - - //ACT and ASSERT - checkAddingByRestApi(REST_URL, keyRateUpdateAction); - checkSendedMessegeFromKafka(Consts.DESTINATION_KEY_RATE_NEW, keyRateUpdateAction); - } - - /** - * {@link CudKeyRateController#update(Long, KeyRateUpdateAction)}
- * Тест проверяет получение сущности {@link KeyRateNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link KeyRateNewAction}:
- */ - @Test - void update() throws Exception { - //ARRANGE - long id = currentId.get(); - KeyRateUpdateAction keyRateUpdateAction = new KeyRateUpdateAction(); - keyRateUpdateAction.setId(id); - keyRateUpdateAction.setRate(new BigDecimal(0)); - keyRateUpdateAction.setStartDate(LocalDate.now()); - keyRateUpdateAction.setEndDate(LocalDate.now()); - keyRateUpdateAction.setDocument("name"); - - //ACT and ASSERT - checkUpdatingByRestApi(REST_URL, keyRateUpdateAction, id); - checkSendedMessegeFromKafka(Consts.DESTINATION_KEY_RATE_UPDATE, keyRateUpdateAction); - } - - /** - * {@link CudKeyRateController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /utilities/key-rates/{@link Long}: - 0L
- */ - @Test - void delete() throws Exception { - //ARRANGE - long id = currentId.getAndIncrement(); - CommonDeleteAction deleteAction = new CommonDeleteAction(); - deleteAction.setId(id); - //ACT and ASSERT - checkDeletingByRestApi(REST_URL, id); - checkSendedMessegeFromKafka(Consts.DESTINATION_KEY_RATE_DELETE, deleteAction); - } - - /** - * {@link CudKeyRateController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /utilities/key-rates/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - KeyRate keyRate = new KeyRate(); - keyRate.setId(currentId.get()); - keyRate.setRate(new BigDecimal(0)); - keyRate.setStartDate(LocalDate.now()); - keyRate.setEndDate(LocalDate.now()); - keyRate.setDocument("name"); - keyRate.setWorkflowStatus("name"); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_KeyRate, keyRate, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java index d10e23a02..42a0c440d 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java @@ -30,6 +30,7 @@ import java.util.function.Function; import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; +@Deprecated @Component public class AccountBalanceService { private final Logger log = LoggerFactory.getLogger(getClass()); diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java index bd833cfc1..03369599e 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java @@ -12,7 +12,7 @@ import java.math.BigDecimal; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; - +@Deprecated // sDf16 was deleted class Sdf16ValidationRuleTest { @Test diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsAssets.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsAssets.java index 767a94c1e..7afa5821b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsAssets.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsAssets.java @@ -6,6 +6,7 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; import java.time.LocalDate; +@Deprecated public class LiabilitiesClaimsAssets extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsMoney.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsMoney.java index 4f78f41c7..c4e41b0b5 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsMoney.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsMoney.java @@ -6,6 +6,7 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; import java.time.LocalDate; +@Deprecated public class LiabilitiesClaimsMoney extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; private Long companyId; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/BalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/BalanceRegister.java deleted file mode 100644 index 12ab161a0..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/BalanceRegister.java +++ /dev/null @@ -1,138 +0,0 @@ -package ru.clearing.classes.statics.data.misc; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; - -public class BalanceRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Instant sDf01Date; - private String currencyCode; - private String setHouseName; - private String account; - private String infoAccount; - private BigDecimal remainderSum; - private BigDecimal blockedSum; - private BigDecimal unblockedSum; - private String inn; - private Long market; - private String fullName; - private String typeRemains; - private String docNumber; - private Long companyId; - - public Instant getsDf01Date() { - return sDf01Date; - } - - public void setsDf01Date(Instant sDf01Date) { - this.sDf01Date = sDf01Date; - } - - public String getCurrencyCode() { - return currencyCode; - } - - public void setCurrencyCode(String currencyCode) { - this.currencyCode = currencyCode; - } - - public String getSetHouseName() { - return setHouseName; - } - - public void setSetHouseName(String setHouseName) { - this.setHouseName = setHouseName; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public String getInfoAccount() { - return infoAccount; - } - - public void setInfoAccount(String infoAccount) { - this.infoAccount = infoAccount; - } - - public BigDecimal getRemainderSum() { - return remainderSum; - } - - public void setRemainderSum(BigDecimal remainderSum) { - this.remainderSum = remainderSum; - } - - public BigDecimal getBlockedSum() { - return blockedSum; - } - - public void setBlockedSum(BigDecimal blockedSum) { - this.blockedSum = blockedSum; - } - - public BigDecimal getUnblockedSum() { - return unblockedSum; - } - - public void setUnblockedSum(BigDecimal unblockedSum) { - this.unblockedSum = unblockedSum; - } - - public String getInn() { - return inn; - } - - public void setInn(String inn) { - this.inn = inn; - } - - public Long getMarket() { - return market; - } - - public void setMarket(Long market) { - this.market = market; - } - - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - public String getTypeRemains() { - return typeRemains; - } - - public void setTypeRemains(String typeRemains) { - this.typeRemains = typeRemains; - } - - public String getDocNumber() { - return docNumber; - } - - public void setDocNumber(String docNumber) { - this.docNumber = docNumber; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ClearMemberRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ClearMemberRegister.java deleted file mode 100644 index d10488275..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ClearMemberRegister.java +++ /dev/null @@ -1,236 +0,0 @@ -package ru.clearing.classes.statics.data.misc; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.time.Instant; -import java.time.LocalDate; - -public class ClearMemberRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private String tradingCode; - private String clearingCode; - private String fullName; - private String shortName; - private String categoryList; - private String corporationSole; - private String account; - private Long bank; - private String bankName; - private String inn; - private String bic; - private String ogrn; - private String cpp; - private String ocpo; - private String contractNumber; - private LocalDate contractDate; - private LocalDate registrationDate; - private LocalDate systemDate; - private Instant accessDate; - private Instant suspentionDate; - private Instant reopeningDate; - private Instant closeDate; - private Instant exclusionDate; - private String address; - private String email; - - public String getTradingCode() { - return tradingCode; - } - - public void setTradingCode(String tradingCode) { - this.tradingCode = tradingCode; - } - - public String getClearingCode() { - return clearingCode; - } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; - } - - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - public String getShortName() { - return shortName; - } - - public void setShortName(String shortName) { - this.shortName = shortName; - } - - public String getCategoryList() { - return categoryList; - } - - public void setCategoryList(String categoryList) { - this.categoryList = categoryList; - } - - public String getCorporationSole() { - return corporationSole; - } - - public void setCorporationSole(String corporationSole) { - this.corporationSole = corporationSole; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public Long getBank() { - return bank; - } - - public void setBank(Long bank) { - this.bank = bank; - } - - public String getBankName() { - return bankName; - } - - public void setBankName(String bankName) { - this.bankName = bankName; - } - - public String getInn() { - return inn; - } - - public void setInn(String inn) { - this.inn = inn; - } - - public String getBic() { - return bic; - } - - public void setBic(String bic) { - this.bic = bic; - } - - public String getOgrn() { - return ogrn; - } - - public void setOgrn(String ogrn) { - this.ogrn = ogrn; - } - - public String getCpp() { - return cpp; - } - - public void setCpp(String cpp) { - this.cpp = cpp; - } - - public String getOcpo() { - return ocpo; - } - - public void setOcpo(String ocpo) { - this.ocpo = ocpo; - } - - public String getContractNumber() { - return contractNumber; - } - - public void setContractNumber(String contractNumber) { - this.contractNumber = contractNumber; - } - - public LocalDate getContractDate() { - return contractDate; - } - - public void setContractDate(LocalDate contractDate) { - this.contractDate = contractDate; - } - - public LocalDate getRegistrationDate() { - return registrationDate; - } - - public void setRegistrationDate(LocalDate registrationDate) { - this.registrationDate = registrationDate; - } - - public LocalDate getSystemDate() { - return systemDate; - } - - public void setSystemDate(LocalDate systemDate) { - this.systemDate = systemDate; - } - - public Instant getAccessDate() { - return accessDate; - } - - public void setAccessDate(Instant accessDate) { - this.accessDate = accessDate; - } - - public Instant getSuspentionDate() { - return suspentionDate; - } - - public void setSuspentionDate(Instant suspentionDate) { - this.suspentionDate = suspentionDate; - } - - public Instant getReopeningDate() { - return reopeningDate; - } - - public void setReopeningDate(Instant reopeningDate) { - this.reopeningDate = reopeningDate; - } - - public Instant getCloseDate() { - return closeDate; - } - - public void setCloseDate(Instant closeDate) { - this.closeDate = closeDate; - } - - public Instant getExclusionDate() { - return exclusionDate; - } - - public void setExclusionDate(Instant exclusionDate) { - this.exclusionDate = exclusionDate; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java index c61a198c1..97903530d 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java @@ -10,6 +10,7 @@ import java.time.LocalDate; *

* DB table: KEY_RATE **/ +@Deprecated public class KeyRate extends SpcexObjectBase { private BigDecimal rate; private LocalDate startDate; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedDealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedDealRegister.java deleted file mode 100644 index 099f66bd7..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedDealRegister.java +++ /dev/null @@ -1,153 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -/** - * Реестр сделок допущенных к клирингу - *

- * DB table: ADMITTED_DEAL_REGISTER - **/ -public class AdmittedDealRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Long executionId; - private String companyFullName; - private LocalDate tradingDate; - private Long exchangeExecutionId; - private Instant exchangeExecutionTime; - private String securitySymbol; - private String securityFullName; - private String sellerFullName; - private String sellerClearingCode; - private String sellerAccount; - private String buyerFullName; - private String buyerClearingCode; - private String buyerAccount; - private BigDecimal amount; - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java index f8979d606..38b37227b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java @@ -1,11 +1,21 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.Instant; +import java.time.LocalDate; +/** + * Реестр обязательств, допущенных к клирингу + * + * DB table: ADMITTED_LIABILITIES_REGISTER + **/ public class AdmittedLiabilitiesRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + private String companyFullName; private Long sessionId; private String securitySymbol; @@ -14,104 +24,69 @@ public class AdmittedLiabilitiesRegister extends BusinessObject { private String clearingCode; private String account; private BigDecimal amount; - private Long id; - private Instant createdAt; - private Instant updatedAt; - private Instant clearingDate; + private LocalDate clearingDate; public String getCompanyFullName() { return companyFullName; } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; + public void setCompanyFullName(String value) { + this.companyFullName=value; } public Long getSessionId() { return sessionId; } - - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; + public void setSessionId(Long value) { + this.sessionId=value; } public String getSecuritySymbol() { return securitySymbol; } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; + public void setSecuritySymbol(String value) { + this.securitySymbol=value; } public String getSecurityFullName() { return securityFullName; } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; + public void setSecurityFullName(String value) { + this.securityFullName=value; } public Long getCompanyId() { return companyId; } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; + public void setCompanyId(Long value) { + this.companyId=value; } public String getClearingCode() { return clearingCode; } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; + public void setClearingCode(String value) { + this.clearingCode=value; } public String getAccount() { return account; } - - public void setAccount(String account) { - this.account = account; + public void setAccount(String value) { + this.account=value; } public BigDecimal getAmount() { return amount; } - - public void setAmount(BigDecimal amount) { - this.amount = amount; + public void setAmount(BigDecimal value) { + this.amount=value; } - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public Instant getClearingDate() { + public LocalDate getClearingDate() { return clearingDate; } - - public void setClearingDate(Instant clearingDate) { - this.clearingDate = clearingDate; + public void setClearingDate(LocalDate value) { + this.clearingDate=value; } -} + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ClearMemberRegisterChange.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ClearMemberRegisterChange.java deleted file mode 100644 index b87973543..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ClearMemberRegisterChange.java +++ /dev/null @@ -1,41 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.spcex.platform.classes.base.SpcexObjectBase; - -import java.time.Instant; - -/** - * Журнал изменений информации участников клиринга - **/ -public class ClearMemberRegisterChange extends SpcexObjectBase { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Instant date; - private String comment; - private String clearingCode; - - public Instant getDate() { - return date; - } - - public void setDate(Instant date) { - this.date = date; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public String getClearingCode() { - return clearingCode; - } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; - } -} diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredDealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredDealRegister.java deleted file mode 100644 index 925eeab6a..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredDealRegister.java +++ /dev/null @@ -1,148 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class CoveredDealRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Long executionId; - private String companyFullName; - private LocalDate tradingDate; - private Long exchangeExecutionId; - private Instant exchangeExecutionTime; - private String securitySymbol; - private String securityFullName; - private String sellerFullName; - private String sellerClearingCode; - private String sellerAccount; - private String buyerFullName; - private String buyerClearingCode; - private String buyerAccount; - private BigDecimal amount; - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java index a5271f24a..19410c766 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java @@ -1,11 +1,21 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.Instant; +import java.time.LocalDate; +/** + * Реестр обязательств, прошедших процедуру контроля обеспечения + *

+ * DB table: COVERED_LIABILITIES_REGISTER + **/ public class CoveredLiabilitiesRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + private String companyFullName; private Long sessionId; private String securitySymbol; @@ -14,104 +24,78 @@ public class CoveredLiabilitiesRegister extends BusinessObject { private String clearingCode; private String account; private BigDecimal amount; - private Long id; - private Instant createdAt; - private Instant updatedAt; - private Instant clearingDate; + private LocalDate clearingDate; public String getCompanyFullName() { return companyFullName; } - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; + public void setCompanyFullName(String value) { + this.companyFullName = value; } public Long getSessionId() { return sessionId; } - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; + public void setSessionId(Long value) { + this.sessionId = value; } public String getSecuritySymbol() { return securitySymbol; } - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; + public void setSecuritySymbol(String value) { + this.securitySymbol = value; } public String getSecurityFullName() { return securityFullName; } - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; + public void setSecurityFullName(String value) { + this.securityFullName = value; } public Long getCompanyId() { return companyId; } - public void setCompanyId(Long companyId) { - this.companyId = companyId; + public void setCompanyId(Long value) { + this.companyId = value; } public String getClearingCode() { return clearingCode; } - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; + public void setClearingCode(String value) { + this.clearingCode = value; } public String getAccount() { return account; } - public void setAccount(String account) { - this.account = account; + public void setAccount(String value) { + this.account = value; } public BigDecimal getAmount() { return amount; } - public void setAmount(BigDecimal amount) { - this.amount = amount; + public void setAmount(BigDecimal value) { + this.amount = value; } - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public Instant getClearingDate() { + public LocalDate getClearingDate() { return clearingDate; } - public void setClearingDate(Instant clearingDate) { - this.clearingDate = clearingDate; + public void setClearingDate(LocalDate value) { + this.clearingDate = value; } -} + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DealRegister.java deleted file mode 100644 index d267160bf..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DealRegister.java +++ /dev/null @@ -1,190 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class DealRegister extends BusinessObject { - private Long executionId; - private Long exchangeExecutionId; - private Instant exchangeExecutionTime; - private LocalDate tradingDate; - private String account; - private String market; - private BigDecimal price; - private BigDecimal amount; - private String side; - private String settlementCurrency; - private Long companyId; - private LocalDate firstLegSettlementDate; - private LocalDate secondLegSettlementDate; - private String securityFullName; - private String securitySymbol; - private Long securityId; - private Long counterPartyId; - private String coverageStatus; - private Long sessionId; - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public String getMarket() { - return market; - } - - public void setMarket(String market) { - this.market = market; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public String getSide() { - return side; - } - - public void setSide(String side) { - this.side = side; - } - - public String getSettlementCurrency() { - return settlementCurrency; - } - - public void setSettlementCurrency(String settlementCurrency) { - this.settlementCurrency = settlementCurrency; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } - - public LocalDate getFirstLegSettlementDate() { - return firstLegSettlementDate; - } - - public void setFirstLegSettlementDate(LocalDate firstLegSettlementDate) { - this.firstLegSettlementDate = firstLegSettlementDate; - } - - public LocalDate getSecondLegSettlementDate() { - return secondLegSettlementDate; - } - - public void setSecondLegSettlementDate(LocalDate secondLegSettlementDate) { - this.secondLegSettlementDate = secondLegSettlementDate; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public Long getSecurityId() { - return securityId; - } - - public void setSecurityId(Long securityId) { - this.securityId = securityId; - } - - public Long getCounterPartyId() { - return counterPartyId; - } - - public void setCounterPartyId(Long counterPartyId) { - this.counterPartyId = counterPartyId; - } - - public String getCoverageStatus() { - return coverageStatus; - } - - public void setCoverageStatus(String coverageStatus) { - this.coverageStatus = coverageStatus; - } - - public Long getSessionId() { - return sessionId; - } - - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java index f63943f3e..8571a4cc5 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java @@ -1,81 +1,60 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; -import java.math.BigInteger; +import java.math.BigDecimal; import java.time.Instant; -public class DepoBalanceRegister extends BusinessObject { - private Long id; - private Instant createdAt; - private Instant updatedAt; - private String companyId; +/** + * Реестр остатков ценных бумаг + * + * DB table: DEPO_BALANCE_REGISTER + **/ +public class DepoBalanceRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long companyId; private Long sessionId; private String depoCode; - private String quantity; - private String securityCode; + private BigDecimal quantity; + private String securitySymbol; - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public String getCompanyId() { + public Long getCompanyId() { return companyId; } - - public void setCompanyId(String companyId) { - this.companyId = companyId; + public void setCompanyId(Long value) { + this.companyId=value; } public Long getSessionId() { return sessionId; } - - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; + public void setSessionId(Long value) { + this.sessionId=value; } public String getDepoCode() { return depoCode; } - - public void setDepoCode(String depoCode) { - this.depoCode = depoCode; + public void setDepoCode(String value) { + this.depoCode=value; } - public String getQuantity() { + public BigDecimal getQuantity() { return quantity; } - - public void setQuantity(String quantity) { - this.quantity = quantity; + public void setQuantity(BigDecimal value) { + this.quantity=value; } - public String getSecurityCode() { - return securityCode; + public String getSecuritySymbol() { + return securitySymbol; + } + public void setSecuritySymbol(String value) { + this.securitySymbol=value; } - public void setSecurityCode(String securityCode) { - this.securityCode = securityCode; - } -} +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java index 702abfc21..9b0b00a81 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java @@ -1,99 +1,73 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; -import java.time.Instant; +/** + * Реестр распоряжений, направленных расчетному депозитарию + * + * DB table: DEPO_PAYMENT_INSTRUCTION_REGISTER + **/ public class DepoPaymentInstructionRegister extends BusinessObject { - private Long id; - private Instant createdAt; - private Instant updatedAt; - private Long companyId; - private String tradingClearingRegistryType; - private String tradingClearingRegistry; - private String cbCode; + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long companyId; + private String tradingClearingRegistryType; + private String tradingClearingRegistry; + private String cbCode; private BigDecimal quantity; - private Long direction; + private Long direction; private Long sessionId; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - public Long getCompanyId() { return companyId; } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; + public void setCompanyId(Long value) { + this.companyId=value; } public String getTradingClearingRegistryType() { return tradingClearingRegistryType; } - - public void setTradingClearingRegistryType(String tradingClearingRegistryType) { - this.tradingClearingRegistryType = tradingClearingRegistryType; + public void setTradingClearingRegistryType(String value) { + this.tradingClearingRegistryType=value; } public String getTradingClearingRegistry() { return tradingClearingRegistry; } - - public void setTradingClearingRegistry(String tradingClearingRegistry) { - this.tradingClearingRegistry = tradingClearingRegistry; + public void setTradingClearingRegistry(String value) { + this.tradingClearingRegistry=value; } public String getCbCode() { return cbCode; } - - public void setCbCode(String cbCode) { - this.cbCode = cbCode; + public void setCbCode(String value) { + this.cbCode=value; } public BigDecimal getQuantity() { return quantity; } - - public void setQuantity(BigDecimal quantity) { - this.quantity = quantity; + public void setQuantity(BigDecimal value) { + this.quantity=value; } public Long getDirection() { return direction; } - - public void setDirection(Long direction) { - this.direction = direction; + public void setDirection(Long value) { + this.direction=value; } public Long getSessionId() { return sessionId; } - - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; + public void setSessionId(Long value) { + this.sessionId=value; } -} + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java index 55b4c491e..d0467dc5f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java @@ -1,17 +1,23 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; -import java.time.Instant; +import java.time.LocalDate; +/** + * Реестр обязательств, исключенных из клирингового пула + * + * DB table: EXCLUDE_LIABILITIES_REGISTER + **/ public class ExcludeLiabilitiesRegister extends BusinessObject { - private Long id; - private Instant createdAt; - private Instant updatedAt; + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + private Long sessionId; - private Instant validFromDate; - private Instant validToDate; + private LocalDate validFromDate; + private LocalDate validToDate; private Long companyId; private String companyFullName; private String inn; @@ -21,133 +27,98 @@ public class ExcludeLiabilitiesRegister extends BusinessObject { private String registryStatus; private String currency; private BigDecimal sumLiabilities; - private Instant settlementDate; + private LocalDate settlementDate; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } public Long getSessionId() { return sessionId; } - - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; + public void setSessionId(Long value) { + this.sessionId=value; } - public Instant getValidFromDate() { + public LocalDate getValidFromDate() { return validFromDate; } - - public void setValidFromDate(Instant validFromDate) { - this.validFromDate = validFromDate; + public void setValidFromDate(LocalDate value) { + this.validFromDate=value; } - public Instant getValidToDate() { + public LocalDate getValidToDate() { return validToDate; } - - public void setValidToDate(Instant validToDate) { - this.validToDate = validToDate; + public void setValidToDate(LocalDate value) { + this.validToDate=value; } public Long getCompanyId() { return companyId; } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; + public void setCompanyId(Long value) { + this.companyId=value; } public String getCompanyFullName() { return companyFullName; } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; + public void setCompanyFullName(String value) { + this.companyFullName=value; } public String getInn() { return inn; } - - public void setInn(String inn) { - this.inn = inn; + public void setInn(String value) { + this.inn=value; } public String getSegment() { return segment; } - - public void setSegment(String segment) { - this.segment = segment; + public void setSegment(String value) { + this.segment=value; } public String getRegistryCode() { return registryCode; } - - public void setRegistryCode(String registryCode) { - this.registryCode = registryCode; + public void setRegistryCode(String value) { + this.registryCode=value; } public String getAccount() { return account; } - - public void setAccount(String account) { - this.account = account; + public void setAccount(String value) { + this.account=value; } public String getRegistryStatus() { return registryStatus; } - - public void setRegistryStatus(String registryStatus) { - this.registryStatus = registryStatus; + public void setRegistryStatus(String value) { + this.registryStatus=value; } public String getCurrency() { return currency; } - - public void setCurrency(String currency) { - this.currency = currency; + public void setCurrency(String value) { + this.currency=value; } public BigDecimal getSumLiabilities() { return sumLiabilities; } - - public void setSumLiabilities(BigDecimal sumLiabilities) { - this.sumLiabilities = sumLiabilities; + public void setSumLiabilities(BigDecimal value) { + this.sumLiabilities=value; } - public Instant getSettlementDate() { + public LocalDate getSettlementDate() { return settlementDate; } - - public void setSettlementDate(Instant settlementDate) { - this.settlementDate = settlementDate; + public void setSettlementDate(LocalDate value) { + this.settlementDate=value; } -} + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java index 900a859d0..3258f0eab 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java @@ -1,189 +1,157 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.Instant; +import java.time.LocalDate; +/** + * Реестр сделок + * + * DB table: EXECUTION_REGISTER + **/ public class ExecutionRegister extends BusinessObject { - private Instant tradingDate; + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private LocalDate tradingDate; private Long exchangeExecutionId; private Instant exchangeExecutionTime; private Long securityId; - private Long seller; + private Long sellerId; private String sellerClearingCode; private String sellerTradingClearingRegister; private String sellerMoneyAccount; private String sellerDepoAccount; - private Long buyer; + private Long buyerId; private String buyerClearingCode; private String buyerTradingClearingRegister; private String buyerMoneyAccount; private String buyerDepoAccount; private BigDecimal amount; private BigDecimal quantity; - private Long id; - private Instant createdAt; - private Instant updatedAt; - private Instant clearingDate; + private LocalDate clearingDate; - public Instant getTradingDate() { + public LocalDate getTradingDate() { return tradingDate; } - - public void setTradingDate(Instant tradingDate) { - this.tradingDate = tradingDate; + public void setTradingDate(LocalDate value) { + this.tradingDate=value; } public Long getExchangeExecutionId() { return exchangeExecutionId; } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; + public void setExchangeExecutionId(Long value) { + this.exchangeExecutionId=value; } public Instant getExchangeExecutionTime() { return exchangeExecutionTime; } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; + public void setExchangeExecutionTime(Instant value) { + this.exchangeExecutionTime=value; } public Long getSecurityId() { return securityId; } - - public void setSecurityId(Long securityId) { - this.securityId = securityId; + public void setSecurityId(Long value) { + this.securityId=value; } - public Long getSeller() { - return seller; + public Long getSellerId() { + return sellerId; } - - public void setSeller(Long seller) { - this.seller = seller; + public void setSellerId(Long value) { + this.sellerId=value; } public String getSellerClearingCode() { return sellerClearingCode; } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; + public void setSellerClearingCode(String value) { + this.sellerClearingCode=value; } public String getSellerTradingClearingRegister() { return sellerTradingClearingRegister; } - - public void setSellerTradingClearingRegister(String sellerTradingClearingRegister) { - this.sellerTradingClearingRegister = sellerTradingClearingRegister; + public void setSellerTradingClearingRegister(String value) { + this.sellerTradingClearingRegister=value; } public String getSellerMoneyAccount() { return sellerMoneyAccount; } - - public void setSellerMoneyAccount(String sellerMoneyAccount) { - this.sellerMoneyAccount = sellerMoneyAccount; + public void setSellerMoneyAccount(String value) { + this.sellerMoneyAccount=value; } public String getSellerDepoAccount() { return sellerDepoAccount; } - - public void setSellerDepoAccount(String sellerDepoAccount) { - this.sellerDepoAccount = sellerDepoAccount; + public void setSellerDepoAccount(String value) { + this.sellerDepoAccount=value; } - public Long getBuyer() { - return buyer; + public Long getBuyerId() { + return buyerId; } - - public void setBuyer(Long buyer) { - this.buyer = buyer; + public void setBuyerId(Long value) { + this.buyerId=value; } public String getBuyerClearingCode() { return buyerClearingCode; } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; + public void setBuyerClearingCode(String value) { + this.buyerClearingCode=value; } public String getBuyerTradingClearingRegister() { return buyerTradingClearingRegister; } - - public void setBuyerTradingClearingRegister(String buyerTradingClearingRegister) { - this.buyerTradingClearingRegister = buyerTradingClearingRegister; + public void setBuyerTradingClearingRegister(String value) { + this.buyerTradingClearingRegister=value; } public String getBuyerMoneyAccount() { return buyerMoneyAccount; } - - public void setBuyerMoneyAccount(String buyerMoneyAccount) { - this.buyerMoneyAccount = buyerMoneyAccount; + public void setBuyerMoneyAccount(String value) { + this.buyerMoneyAccount=value; } public String getBuyerDepoAccount() { return buyerDepoAccount; } - - public void setBuyerDepoAccount(String buyerDepoAccount) { - this.buyerDepoAccount = buyerDepoAccount; + public void setBuyerDepoAccount(String value) { + this.buyerDepoAccount=value; } public BigDecimal getAmount() { return amount; } - - public void setAmount(BigDecimal amount) { - this.amount = amount; + public void setAmount(BigDecimal value) { + this.amount=value; } public BigDecimal getQuantity() { return quantity; } - - public void setQuantity(BigDecimal quantity) { - this.quantity = quantity; + public void setQuantity(BigDecimal value) { + this.quantity=value; } - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public Instant getClearingDate() { + public LocalDate getClearingDate() { return clearingDate; } - - public void setClearingDate(Instant clearingDate) { - this.clearingDate = clearingDate; + public void setClearingDate(LocalDate value) { + this.clearingDate=value; } -} + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java index 831645277..83b44a823 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java @@ -1,17 +1,23 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; -import java.time.Instant; +import java.time.LocalDate; +/** + * Реестр учета обязательств + * + * DB table: LIABILITIES_REGISTER + **/ public class LiabilitiesRegister extends BusinessObject { - private Long id; - private Instant createdAt; - private Instant updatedAt; + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + private Long sessionId; - private Instant validFromDate; - private Instant validToDate; + private LocalDate validFromDate; + private LocalDate validToDate; private Long companyId; private String companyFullName; private String inn; @@ -21,135 +27,97 @@ public class LiabilitiesRegister extends BusinessObject { private String registryStatus; private String currency; private BigDecimal sumLiabilities; - private Instant settlementDate; - - @Override - public Long getId() { - return id; - } - - @Override - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } + private LocalDate settlementDate; public Long getSessionId() { return sessionId; } - - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; + public void setSessionId(Long value) { + this.sessionId=value; } - public Instant getValidFromDate() { + public LocalDate getValidFromDate() { return validFromDate; } - - public void setValidFromDate(Instant validFromDate) { - this.validFromDate = validFromDate; + public void setValidFromDate(LocalDate value) { + this.validFromDate=value; } - public Instant getValidToDate() { + public LocalDate getValidToDate() { return validToDate; } - - public void setValidToDate(Instant validToDate) { - this.validToDate = validToDate; + public void setValidToDate(LocalDate value) { + this.validToDate=value; } public Long getCompanyId() { return companyId; } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; + public void setCompanyId(Long value) { + this.companyId=value; } public String getCompanyFullName() { return companyFullName; } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; + public void setCompanyFullName(String value) { + this.companyFullName=value; } public String getInn() { return inn; } - - public void setInn(String inn) { - this.inn = inn; + public void setInn(String value) { + this.inn=value; } public String getSegment() { return segment; } - - public void setSegment(String segment) { - this.segment = segment; + public void setSegment(String value) { + this.segment=value; } public String getRegistryCode() { return registryCode; } - - public void setRegistryCode(String registryCode) { - this.registryCode = registryCode; + public void setRegistryCode(String value) { + this.registryCode=value; } public String getAccount() { return account; } - - public void setAccount(String account) { - this.account = account; + public void setAccount(String value) { + this.account=value; } public String getRegistryStatus() { return registryStatus; } - - public void setRegistryStatus(String registryStatus) { - this.registryStatus = registryStatus; + public void setRegistryStatus(String value) { + this.registryStatus=value; } public String getCurrency() { return currency; } - - public void setCurrency(String currency) { - this.currency = currency; + public void setCurrency(String value) { + this.currency=value; } public BigDecimal getSumLiabilities() { return sumLiabilities; } - - public void setSumLiabilities(BigDecimal sumLiabilities) { - this.sumLiabilities = sumLiabilities; + public void setSumLiabilities(BigDecimal value) { + this.sumLiabilities=value; } - public Instant getSettlementDate() { + public LocalDate getSettlementDate() { return settlementDate; } - - public void setSettlementDate(Instant settlementDate) { - this.settlementDate = settlementDate; + public void setSettlementDate(LocalDate value) { + this.settlementDate=value; } -} + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java index 6fef585f6..90dd23ad5 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java @@ -1,11 +1,18 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; -import java.time.Instant; -public class MoneyBalanceRegister extends BusinessObject { +/** + * Реестр остатков денежных средств + * + * DB table: MONEY_BALANCE_REGISTER + **/ +public class MoneyBalanceRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + private String setHouseName; private String account; private String infoAccount; @@ -16,113 +23,75 @@ public class MoneyBalanceRegister extends BusinessObject { private Long sessionId; private String companyFullName; private Long companyId; - private Long id; - private Instant createdAt; - private Instant updatedAt; public String getSetHouseName() { return setHouseName; } - - public void setSetHouseName(String setHouseName) { - this.setHouseName = setHouseName; + public void setSetHouseName(String value) { + this.setHouseName=value; } public String getAccount() { return account; } - - public void setAccount(String account) { - this.account = account; + public void setAccount(String value) { + this.account=value; } public String getInfoAccount() { return infoAccount; } - - public void setInfoAccount(String infoAccount) { - this.infoAccount = infoAccount; + public void setInfoAccount(String value) { + this.infoAccount=value; } public BigDecimal getRemainderSum() { return remainderSum; } - - public void setRemainderSum(BigDecimal remainderSum) { - this.remainderSum = remainderSum; + public void setRemainderSum(BigDecimal value) { + this.remainderSum=value; } public BigDecimal getBlockedSum() { return blockedSum; } - - public void setBlockedSum(BigDecimal blockedSum) { - this.blockedSum = blockedSum; + public void setBlockedSum(BigDecimal value) { + this.blockedSum=value; } public BigDecimal getUnblockedSum() { return unblockedSum; } - - public void setUnblockedSum(BigDecimal unblockedSum) { - this.unblockedSum = unblockedSum; + public void setUnblockedSum(BigDecimal value) { + this.unblockedSum=value; } public String getInn() { return inn; } - - public void setInn(String inn) { - this.inn = inn; + public void setInn(String value) { + this.inn=value; } public Long getSessionId() { return sessionId; } - - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; + public void setSessionId(Long value) { + this.sessionId=value; } public String getCompanyFullName() { return companyFullName; } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; + public void setCompanyFullName(String value) { + this.companyFullName=value; } public Long getCompanyId() { return companyId; } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; + public void setCompanyId(Long value) { + this.companyId=value; } - @Override - public Long getId() { - return id; - } - - @Override - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } -} +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java index f1f8c6b1d..75b89ec18 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java @@ -1,99 +1,74 @@ package ru.clearing.classes.statics.data.register; +import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; -import java.time.Instant; +import java.time.LocalDate; +/** + * Реестр распоряжений, направленных расчетной организации + * + * DB table: MONEY_PAYMENT_INSTRUCTION_REGISTER + **/ public class MoneyPaymentInstructionRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + private String creditLegAccount; private BigDecimal creditLegAmount; private String creditLegCurrencyCode; private String debitLegAccount; private String sender; private String addressee; - private Long id; - private Instant createdAt; - private Instant updatedAt; - private Instant clearingDate; + private LocalDate clearingDate; public String getCreditLegAccount() { return creditLegAccount; } - - public void setCreditLegAccount(String creditLegAccount) { - this.creditLegAccount = creditLegAccount; + public void setCreditLegAccount(String value) { + this.creditLegAccount=value; } public BigDecimal getCreditLegAmount() { return creditLegAmount; } - - public void setCreditLegAmount(BigDecimal creditLegAmount) { - this.creditLegAmount = creditLegAmount; + public void setCreditLegAmount(BigDecimal value) { + this.creditLegAmount=value; } public String getCreditLegCurrencyCode() { return creditLegCurrencyCode; } - - public void setCreditLegCurrencyCode(String creditLegCurrencyCode) { - this.creditLegCurrencyCode = creditLegCurrencyCode; + public void setCreditLegCurrencyCode(String value) { + this.creditLegCurrencyCode=value; } public String getDebitLegAccount() { return debitLegAccount; } - - public void setDebitLegAccount(String debitLegAccount) { - this.debitLegAccount = debitLegAccount; + public void setDebitLegAccount(String value) { + this.debitLegAccount=value; } public String getSender() { return sender; } - - public void setSender(String sender) { - this.sender = sender; + public void setSender(String value) { + this.sender=value; } public String getAddressee() { return addressee; } - - public void setAddressee(String addressee) { - this.addressee = addressee; + public void setAddressee(String value) { + this.addressee=value; } - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public Instant getClearingDate() { + public LocalDate getClearingDate() { return clearingDate; } - - public void setClearingDate(Instant clearingDate) { - this.clearingDate = clearingDate; + public void setClearingDate(LocalDate value) { + this.clearingDate=value; } -} + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/OrderRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/OrderRegister.java deleted file mode 100644 index cf0986da9..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/OrderRegister.java +++ /dev/null @@ -1,93 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class OrderRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private String creditLegAccount; - private BigDecimal creditLegAmount; - private String creditLegCurrencyCode; - private Long creditLegDirection; - private String debitLegAccount; - private String sender; - private String addressee; - private String documentNumber; - private LocalDate clearingDate; - - public String getCreditLegAccount() { - return creditLegAccount; - } - - public void setCreditLegAccount(String creditLegAccount) { - this.creditLegAccount = creditLegAccount; - } - - public BigDecimal getCreditLegAmount() { - return creditLegAmount; - } - - public void setCreditLegAmount(BigDecimal creditLegAmount) { - this.creditLegAmount = creditLegAmount; - } - - public String getCreditLegCurrencyCode() { - return creditLegCurrencyCode; - } - - public void setCreditLegCurrencyCode(String creditLegCurrencyCode) { - this.creditLegCurrencyCode = creditLegCurrencyCode; - } - - public Long getCreditLegDirection() { - return creditLegDirection; - } - - public void setCreditLegDirection(Long creditLegDirection) { - this.creditLegDirection = creditLegDirection; - } - - public String getDebitLegAccount() { - return debitLegAccount; - } - - public void setDebitLegAccount(String debitLegAccount) { - this.debitLegAccount = debitLegAccount; - } - - public String getSender() { - return sender; - } - - public void setSender(String sender) { - this.sender = sender; - } - - public String getAddressee() { - return addressee; - } - - public void setAddressee(String addressee) { - this.addressee = addressee; - } - - public String getDocumentNumber() { - return documentNumber; - } - - public void setDocumentNumber(String documentNumber) { - this.documentNumber = documentNumber; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/UncoveredDealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/UncoveredDealRegister.java deleted file mode 100644 index 6319b1c4b..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/UncoveredDealRegister.java +++ /dev/null @@ -1,157 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class UncoveredDealRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Long executionId; - private String companyFullName; - private LocalDate tradingDate; - private Long exchangeExecutionId; - private Instant exchangeExecutionTime; - private String securitySymbol; - private String securityFullName; - private String sellerFullName; - private String sellerClearingCode; - private String sellerAccount; - private String buyerFullName; - private String buyerClearingCode; - private String buyerAccount; - private BigDecimal amount; - private String resultStatus; - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public String getResultStatus() { - return resultStatus; - } - - public void setResultStatus(String resultStatus) { - this.resultStatus = resultStatus; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java index 9fa9a6050..91bb3ca6f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java @@ -15,6 +15,7 @@ public class TradingClearingRegistry extends BusinessObject { private Long companyId; private String code; private Long moneyAccountId; + // todo fix typo private Long depoAaccountId; private String tradingClearingRegistryType; private String tradingClearingRegistryLevel; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java index 2072f0cb0..47a8dda6f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java @@ -14,6 +14,7 @@ import java.time.Instant; *

* DB table: S_DF16 **/ +@Deprecated public class SDf16 extends SpcexObjectBase implements WithAccount, WithMarket, WithSum { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java index 21aad630a..635cea099 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java @@ -12,6 +12,7 @@ import java.time.Instant; *

* DB table: S_DF17 **/ +@Deprecated public class SDf17 extends SpcexObjectBase implements WithAccount { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java index 73415e77a..371b64f6e 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java @@ -12,6 +12,7 @@ import java.time.Instant; *

* DB table: S_DF18 **/ +@Deprecated public class SDf18 extends SpcexObjectBase implements WithAccount { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java index ea549408f..9d7bd187c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java @@ -19,6 +19,7 @@ import java.util.Optional; import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; +@Deprecated // liabilitiesClaimsMoney даляется @Component public class LiabilitiesClaimsMoneyCreator { private final Logger log = LoggerFactory.getLogger(this.getClass()); diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java index 97dfbf8cf..3d64121d6 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java @@ -1,5 +1,6 @@ package ru.spcex.clearing.util.services; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.clearing.platform.dictionary.ErrorCodeDictionary; @@ -25,13 +26,17 @@ public class IMDGMessageResolver implements IMessageResolver { @Override public String resolve(EnumMessage errorMessage) { if (errorMessage == null) return "null"; - - ErrorCodeDictionary errorDictionary = errorCodeDictionaryIMDG.getSingleObjectByID(errorMessage.getSubject().getId()); - if (errorDictionary == null) { - log.warn("ERROR_CODE_DICTIONARY not found fo id={}", errorMessage.getSubject().getId()); + try { + ErrorCodeDictionary errorDictionary = errorCodeDictionaryIMDG.getSingleObjectByID(errorMessage.getSubject().getId()); + if (errorDictionary == null) { + log.warn("ERROR_CODE_DICTIONARY not found fo id={}", errorMessage.getSubject().getId()); + return String.format("(%d) args %s", errorMessage.getSubject().getId(), Arrays.toString(errorMessage.getArgs())); + } + String textTemplate = errorDictionary.getName(); + return String.format(textTemplate, errorMessage.getArgs()); + } catch (Exception errFormatting) { // MissingFormatArgumentException + log.warn("Error in message resolver for error {}: {}", errorMessage.getSubject(), ExceptionUtils.getStackTrace(errFormatting)); return String.format("(%d) args %s", errorMessage.getSubject().getId(), Arrays.toString(errorMessage.getArgs())); } - String textTemplate = errorDictionary.getName(); - return String.format(textTemplate, errorMessage.getArgs()); } } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java similarity index 84% rename from clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java rename to clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java index f134ec949..04decd8a7 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java @@ -1,8 +1,7 @@ -package ru.spcex.clearing.company.util; +package ru.spcex.clearing.util.services; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; @@ -22,21 +21,28 @@ import java.util.Objects; * callback(CompanyNewRequest.class) * .setFunction( request -> requestHelper.requestFunction(this::createCompany, request)) * .forDestination(Consts.DESTINATION_COMPANY_NEW, callbacks::put); + * + * return requestHelper.makeErrorResponse(CompanyError.GeneralError, ...) */ public class RequestHelper { protected Logger log = LoggerFactory.getLogger(getClass()); protected final IMessageResolver messageResolver; + protected final IErrorEnumId generalError; - public RequestHelper(IMessageResolver messageResolver) { + public RequestHelper(IMessageResolver messageResolver, IErrorEnumId generalError) { Objects.requireNonNull(messageResolver); this.messageResolver = messageResolver; + this.generalError = generalError; + Objects.requireNonNull(generalError, "Required generalError enum"); } - public RequestHelper(Logger log, IMessageResolver messageResolver) { + public RequestHelper(Logger log, IMessageResolver messageResolver, IErrorEnumId generalError) { Objects.requireNonNull(log); Objects.requireNonNull(messageResolver); this.log = log; this.messageResolver = messageResolver; + this.generalError = generalError; + Objects.requireNonNull(generalError, "Required generalError enum"); } /** @@ -58,13 +64,14 @@ public class RequestHelper { String message = expectedE.getEnumMsg() == null ? expectedE.getMessage() : messageResolver.resolve(expectedE.getEnumMsg()); + log.info("Response: {}", message); return new RequestInfoUpdate() .setId(userRequest.getId()) .setStatus(Status.Error) .setMessage(message); } catch (Exception unexpectedE) { log.error("Error at {}: {} ", command, ExceptionUtils.getStackTrace(unexpectedE)); - String message = messageResolver.resolve(new EnumMessage(CompanyErrors.GeneralError)); + String message = messageResolver.resolve(new EnumMessage(generalError)); return new RequestInfoUpdate() .setId(userRequest.getId()) .setStatus(Status.Error) @@ -74,6 +81,7 @@ public class RequestHelper { public RequestInfoUpdate makeErrorResponse(BaseRequest request, EnumMessage msg) { String errorMsg = msg == null? "" : messageResolver.resolve(msg); + log.info("Response: {}", errorMsg); return new RequestInfoUpdate() .setId(request.getId()) .setStatus(Status.Error) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java index d6248d708..fd44e1d0e 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java @@ -5,7 +5,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -22,7 +22,7 @@ public class BeanConfiguration { @Bean @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) public RequestHelper requestHelper(IMessageResolver messageResolver) { - return new RequestHelper(messageResolver); + return new RequestHelper(messageResolver, CompanyErrors.GeneralError); } @Bean diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ContactValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ContactValidationConfig.java index f92635d78..a69e7731c 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ContactValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ContactValidationConfig.java @@ -73,7 +73,7 @@ public class ContactValidationConfig { IMDGDistributedNames.Map_Contact, Contact.class, CompanyErrors.RequiredFieldEmpty, - CompanyErrors.CompanyNotFound, + CompanyErrors.ContactNotFound, contact -> { if (contactUpdateRequest.getContactType() == null) return null; if (!contactUpdateRequest.getContactType().equalsIgnoreCase(contact.getContactType())) { diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ProfileDocumentValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ProfileDocumentValidationConfig.java index 9fe82a927..5449f8f9e 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ProfileDocumentValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ProfileDocumentValidationConfig.java @@ -44,7 +44,7 @@ public class ProfileDocumentValidationConfig { Company.class, CompanyErrors.RequiredFieldEmpty, CompanyErrors.CompanyNotFound, - company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled), + company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled), DictionaryPresentRule.instance("documentType", ProfileDocumentNewRequest::getDocumentType, IMDGDistributedNames.Map_DocumentTypeDictionary, @@ -138,7 +138,15 @@ public class ProfileDocumentValidationConfig { IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class, CompanyErrors.RequiredFieldEmpty, - CompanyErrors.RecordNotFound) + CompanyErrors.RecordNotFound, + profileDoc -> { + Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); + Company company = companyImdg.getSingleObjectByID(profileDoc.getCompanyId()); + if (company == null) { + return CompanyErrors.CompanyNotFound; + } + return null; + }) ); }; } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java new file mode 100644 index 000000000..959f62491 --- /dev/null +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java @@ -0,0 +1,134 @@ +package ru.spcex.clearing.company.config.validation; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.clearing.platform.dictionary.ClearingCategoryDictionary; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; +import ru.spcex.clearing.company.error.CompanyErrors; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationUpdateRequest; +import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; +import ru.spcex.clearing.validation.common.rules.IdPresentRule; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.validation.IValidator; +import ru.spcex.platform.utils.validation.ValidatorImpl; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; + +@Configuration +public class RelationValidationConfig { + + @Bean("relationNewRequestValidation") + public Function relationNewRequestValidator( + Map> imdgForValidation + ) { + return relationNewRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(relationNewRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + return new ValidatorImpl<>(context, + IdPresentRule.instance("companyId", + RelationNewRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.CompanyNotFound), + DictionaryPresentRule.instance("documentType", + RelationNewRequest::getClearingMemberCategory, + IMDGDistributedNames.Map_ClearingCategoryDictionary, + ClearingCategoryDictionary.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.WrongFieldValue), + DictionaryPresentRule.instance("serviceStatus", + RelationNewRequest::getServiceStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.WrongFieldValue) + ); + }; + } + + @Bean("relationUpdateRequestValidation") + public Function relationUpdateRequestValidator( + Map> imdgForValidation + ) { + return relationUpdateRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(relationUpdateRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Relation); + addImdg.accept(IMDGDistributedNames.Map_Company); +// addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + RelationUpdateRequest::getId, + IMDGDistributedNames.Map_Relation, + Relation.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.RelationNotFound, + relation -> { + if (relation.getConsumerId() == null) return null; + Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); + Company company = companyImdg.getSingleObjectByID(relation.getConsumerId()); + if (company == null) { + return CompanyErrors.CompanyNotFound; + } else { + return null; + } + }), +// IdPresentRule.instance("companyId", +// RelationUpdateRequest::getCompanyId, +// IMDGDistributedNames.Map_Company, +// Company.class, +// CompanyErrors.RequiredFieldEmpty, +// CompanyErrors.CompanyNotFound), +// DictionaryPresentRule.instance("documentType", +// RelationUpdateRequest::getClearingMemberCategory, +// IMDGDistributedNames.Map_ClearingCategoryDictionary, +// ClearingCategoryDictionary.class, +// CompanyErrors.RequiredFieldEmpty, +// CompanyErrors.WrongFieldValue), + DictionaryPresentRule.instance("serviceStatus", + RelationUpdateRequest::getServiceStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.WrongFieldValue) + ); + }; + } + + @Bean("relationDeleteRequestValidation") + public Function relationDeleteRequestValidator( + Map> imdgForValidation + ) { + return relationDeleteRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(relationDeleteRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Relation); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + CommonDeleteRequest::getId, + IMDGDistributedNames.Map_Relation, + Relation.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.RelationNotFound + ) + ); + }; + } +} diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java index cd6671cf1..c586e2fd7 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java @@ -7,6 +7,7 @@ import ru.clearing.classes.statics.data.account.ClientCode; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; +import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.profile.Contact; import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; @@ -37,6 +38,7 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_DocumentTypeDictionary, DocumentTypeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_ContactTypeDictionary, ContactTypeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_Contact, Contact.class); + addImdg.accept(IMDGDistributedNames.Map_Relation, Relation.class); addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class); addImdg.accept(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java index 3979ab8b9..1c5b42c49 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java @@ -25,6 +25,9 @@ public enum CompanyErrors implements IErrorEnumId { EditContactType(3021L), // Тип контакта компании %s не может быть изменен. TradingClearingRegistryNotFound(3022L), // ТКР с %s не найден AccountNotFound(3023L), // Счет %s не найден + ClearingMemberCategoryOnMKRAlreadyExist(3024L), // Договорные отношения %s в секции МКР уже созданы. + ClearingMemberCategoryOnFONDAlreadyExist(3025L), // Договорные отношения %s на фондовой секции уже созданы. + RelationNotFound(3026L), // Запись о договорных отношениях не найдена ; private final Long id; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java index 7dd8ba584..c3199aca8 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.profile.CompanyInfo; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -22,14 +22,18 @@ import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.ImdgTransaction; +import ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; +import java.util.Objects; import java.util.function.Function; @Service public class CompanyInfoService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final ImdgProvider imdgProvider; private final Imdg companyMap; protected final CompanyService companyService; private final RequestHelper requestHelper; @@ -46,6 +50,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea Function companyInfoUpdateRequestValidator) { super(kafkaQueue, kafkaProducer); this.companyService = companyService; + this.imdgProvider = imdgProvider; this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); this.validationHelper = validationHelper; this.userRoleVerification = userRoleVerification; @@ -56,16 +61,16 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea @Override public void afterPropertiesSet() { callback(CompanyInfoUpdateRequest.class) - .setFunction(this::companyInfoUpdate) + .setFunction(request -> requestHelper.requestFunction(this::companyInfoUpdate, request)) .forDestination(Consts.DESTINATION_COMPANY_INFO_UPDATE, callbacks::put); callback(CompanyInfoUpdateRequest.class) - .setFunction(this::companyInfoUpdate) + .setFunction(request -> requestHelper.requestFunction(this::companyInfoUpdate, request)) .forDestination(Consts.DESTINATION_COMPANY_INFO_NEW, callbacks::put); // логика заполнения одинакова с companyInfoUpdate init(); } - public RequestInfoUpdate companyInfoUpdate(BaseRequest companyInfoReq) { + public RequestInfoUpdate companyInfoUpdate(BaseRequest companyInfoReq) throws ValidationException { CompanyInfoUpdateRequest req = companyInfoReq.getRequestPayload(); log.debug("{} received", req.getClass().getSimpleName()); { // Валидация, ValidationException @@ -81,6 +86,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea log.trace("Company {} not found", req.getId()); return requestHelper.makeErrorResponse(companyInfoReq, CompanyErrors.CompanyNotFound, companyInfoReq.getId()); } + company.setUpdated(Instant.now()); CompanyInfo companyInfo = company.getProfile(); companyInfo.setCorporationSoleType(req.getCorporationSoleType()); @@ -93,8 +99,39 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea companyInfo.setShortNameEng(req.getShortNameEng()); companyInfo.setFullNameEng(req.getFullNameEng()); - company.setUpdated(Instant.now()); - companyMap.update(company); + company.setShortName(req.getShortName()); + company.setFullName(req.getFullName()); + boolean simpleUpdate = true; + if (req.getWorkflowStatus() != null) { + String prevStatus = company.getWorkflowStatus(); + company.setWorkflowStatus(req.getWorkflowStatus()); + if (!Objects.equals(prevStatus, company.getWorkflowStatus())) { + simpleUpdate = false; + ImdgTransaction transaction = imdgProvider.newTransaction(); + transaction.beginTransaction(); + boolean txOk = false; + try { + companyService.relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); + Imdg txCompanyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class); + txCompanyMap.update(company); + log.trace("Company {} updated", company.getId()); + txOk = true; + } finally { + if (txOk) + transaction.commitTransaction(); + else + transaction.rollbackTransaction(); + } + } else { + log.trace("Status was not changed"); + } + } else { + log.trace("Null new WorkflowStatus"); + } + if (simpleUpdate) { + companyMap.update(company); + log.trace("Company {} updated", company.getId()); + } log.debug("successfully CompanyInfo processed, id {}", companyInfo.getId()); } return null; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java index 2af7a358c..ca4526b9b 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java @@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.CompanyRoleSet; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java index 3444b1243..f7182432d 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -29,13 +29,11 @@ import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.error.ClearingBaseException; import ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; -import java.util.Map; import java.util.Objects; import java.util.function.Function; @@ -56,7 +54,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { protected CompanySymbolService companySymbolService; protected AccountNotificationHelper accountNotification; - protected RelationHelper relationHelper; + protected RelationService relationService; @Autowired public CompanyService(Consumer kafkaQueue, Producer kafkaProducer, @@ -73,7 +71,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { CompanySymbolService companySymbolService, AccountNotificationHelper accountNotification, - RelationHelper relationHelper + RelationService relationService ) { super(kafkaQueue, kafkaProducer); this.imdgProvider = imdgProvider; @@ -89,7 +87,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { this.companySymbolService = companySymbolService; companySymbolService.setCompanyService(this); this.accountNotification = accountNotification; - this.relationHelper = relationHelper; + this.relationService = relationService; companyIMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); } @@ -145,9 +143,9 @@ public class CompanyService extends QueueConsumer implements InitializingBean { companyMap.insert(company); log.debug("company-new request processed, BaseRequest.id = {}, company.id={}", companyNewRequestBaseRequest.getId(), company.getId()); - relationHelper.createNewRelation(transaction, company); + relationService.createNewRelation(transaction, company); if (!(WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()))) { // Block - relationHelper.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus()); + relationService.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus()); } txOk = true; } finally { @@ -180,10 +178,10 @@ public class CompanyService extends QueueConsumer implements InitializingBean { log.trace("Company {} not found", updateRequest.getId()); return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyNotFound, updateRequest.getId()); } - if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { - log.trace("Company {} not active: {}", company.getId(), company.getWorkflowStatus()); - return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyDisabled, updateRequest.getId()); - } +// if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { +// log.trace("Company {} not active: {}", company.getId(), company.getWorkflowStatus()); +// return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyDisabled, updateRequest.getId()); +// } company.setUpdated(Instant.now()); company.setShortName(updateRequest.getShortName()); @@ -199,7 +197,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { if (updateRequest.getWorkflowStatus() != null) { company.setWorkflowStatus(updateRequest.getWorkflowStatus()); if (!Objects.equals(prevStatus, company.getWorkflowStatus())) { - relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); + relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); } else { log.trace("Status was not changed"); } @@ -286,7 +284,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { String prevStatus = company.getWorkflowStatus(); company.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); - relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); + relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); log.debug("Update company.id={}", company.getId()); companyMap.update(company); @@ -339,7 +337,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { company.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); - relationHelper.onChangeWorkflowStatusOnlyRelationChange(transaction, company, company.getWorkflowStatus()); + relationService.onChangeWorkflowStatusOnlyRelationChange(transaction, company, company.getWorkflowStatus()); log.debug("Update company.id={}", company.getId()); companyMap.update(company); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java index 85c0469f8..cf534c0ea 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java @@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java index 411cfd669..30eab291e 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java @@ -12,7 +12,7 @@ import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -21,7 +21,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentNe import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUpdateRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; -import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.DocumentTypes; @@ -174,8 +173,10 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin ProfileDocument profileDocument = profileDocumentMap.getSingleObjectByID(profileDocumentUpdateRequest.getId()); String prevDocType = profileDocument.getDocumentType(); - if (profileDocumentUpdateRequest.getCompanyId() != null) - profileDocument.setCompanyId(profileDocumentUpdateRequest.getCompanyId()); + if (profileDocumentUpdateRequest.getCompanyId() != null && !profileDocumentUpdateRequest.getCompanyId().equals(profileDocument.getCompanyId())) { + log.warn("profileDocumentUpdateRequest[{}] CompanyId {} not match", profileDocumentUpdateRequest.getId(), profileDocumentUpdateRequest.getCompanyId()); + return requestHelper.makeErrorResponse(profileDocumentUpdateRequestBaseRequest, CompanyErrors.WrongFieldValue, "companyId"); + } if (profileDocumentUpdateRequest.getDocumentType() != null) profileDocument.setDocumentType(profileDocumentUpdateRequest.getDocumentType()); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationHelper.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationHelper.java deleted file mode 100644 index c68595767..000000000 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationHelper.java +++ /dev/null @@ -1,97 +0,0 @@ -package ru.spcex.clearing.company.service; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.relation.Relation; -import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.platform.enumeration.ServiceProduct; -import ru.spcex.platform.enumeration.ServiceStatus; -import ru.spcex.platform.enumeration.WorkflowStatus; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgTransaction; -import ru.spcex.platform.utils.error.ValidationException; - -import java.time.Instant; -import java.util.Collection; -import java.util.Objects; - -@Service -public class RelationHelper { - protected static final Long SPVB_ID = 1L; // СПВБ - protected final Logger log = LoggerFactory.getLogger(getClass()); - - protected AccountNotificationHelper accountNotification; - - @Autowired - public RelationHelper(AccountNotificationHelper accountNotification) { - this.accountNotification = accountNotification; - } - - protected void createNewRelation(ImdgTransaction transaction, Company company) { - Relation relation = new Relation(); -// relation.setId(idSequence.nextId()); - relation.setCreated(Instant.now()); - relation.setUpdated(relation.getCreated()); - - relation.setConsumerId(company.getId()); - relation.setSupplierId(SPVB_ID); // 1 СПВБ - relation.setServiceStatus(WorkflowStatus.Active.getKey()); - relation.setService(ru.spcex.platform.enumeration.Service.MKR.getKey()); // MKR - relation.setServiceProduct(ServiceProduct.ZERO.getKey()); - log.debug("New Relation[{}] created.", relation.getId()); - Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); - relationMap.insert(relation); - } - - /** - * @param company - * @param oldStatus - * @param newStatus WorkflowStatus.Active - при возобналвении; WorkflowStatus.Blocked - при блокировки/расторжении - */ - public void onChangeWorkflowStatus(ImdgTransaction transaction, Company company, String oldStatus, String newStatus) throws ValidationException { - log.debug("Company id={} status changed from {} to {}", - company.getId(), oldStatus, company.getWorkflowStatus()); - onChangeWorkflowStatusOnlyRelationChange(transaction, company, newStatus); - - if (WorkflowStatus.Blocked.equalsByKey(newStatus)) { - // IV - сообщения на добавления документа расторжения договора - CompanyErrors hasError = accountNotification.accountTerminationNotification(company.getId()); - if (hasError != null) { - log.warn("Can not block company, cause error {}", hasError); - throw new ValidationException(hasError); - } - } - } - - protected void onChangeWorkflowStatusOnlyRelationChange(ImdgTransaction transaction, Company company, String newStatus) throws ValidationException { - assert Objects.equals(newStatus, company.getWorkflowStatus()); - String query = String.format("consumerId=%s", company.getId()); - Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); - Collection relations = relationMap.getCollectionObjectsBySQL(query); - log.trace("Selected {} Relation by query: {}", relations.size(), query); - Instant now = Instant.now(); - for (Relation relation : relations) { - boolean modified = false; - if (WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { - if (!ServiceStatus.Reopened.equalsByKey(relation.getServiceStatus())) { - relation.setServiceStatus(ServiceStatus.Reopened.getKey()); - modified = true; - } - } else if (WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus())) { - if (!ServiceStatus.Closed.equalsByKey(relation.getServiceStatus())) { - relation.setServiceStatus(ServiceStatus.Closed.getKey()); - modified = true; - } - } - if (modified) { - relation.setUpdated(now); - log.debug("Relation id={} updated", relation.getId()); - relationMap.update(relation); - } - } - } -} diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java new file mode 100644 index 000000000..d91417af6 --- /dev/null +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java @@ -0,0 +1,331 @@ +package ru.spcex.clearing.company.service; + +import org.apache.kafka.clients.consumer.Consumer; +import org.apache.kafka.clients.producer.Producer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.spcex.clearing.company.error.CompanyErrors; +import ru.spcex.clearing.util.services.RequestHelper; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.*; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; +import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.clearing.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.ClearingCategory; +import ru.spcex.platform.enumeration.ServiceProduct; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgId; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.ImdgTransaction; +import ru.spcex.platform.utils.error.ValidationException; +import ru.spcex.platform.utils.validation.IValidator; + +import java.time.Instant; +import java.util.Collection; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; + +@Service +public class RelationService extends QueueConsumer implements InitializingBean { + protected static final Long SPVB_ID = 1L; // СПВБ + protected final Logger log = LoggerFactory.getLogger(getClass()); + + protected ImdgProvider imdgProvider; + protected ImdgId idSequence; + protected Imdg relationMap; + protected Imdg companyMap; + protected AccountNotificationHelper accountNotification; + protected UserRoleVerification userRoleVerification; + protected RequestHelper requestHelper; + + protected ValidationHelper validationHelper; + private Function relationNewRequestValidator; + private Function relationUpdateRequestValidator; + private Function relationDeleteRequestValidator; + + @Autowired + public RelationService(Consumer kafkaQueue, + Producer kafkaProducer, + ImdgProvider imdgProvider, + RequestHelper requestHelper, + + UserRoleVerification userRoleVerification, + ValidationHelper validationHelper, + @Qualifier("relationNewRequestValidation") Function relationNewRequestValidator, + @Qualifier("relationUpdateRequestValidation") Function relationUpdateRequestValidator, + @Qualifier("relationDeleteRequestValidation") Function relationDeleteRequestValidator, + + AccountNotificationHelper accountNotification) { + super(kafkaQueue, kafkaProducer); + this.imdgProvider = imdgProvider; + this.idSequence = imdgProvider.getImdgIdGenerator(); + this.accountNotification = accountNotification; + this.userRoleVerification = userRoleVerification; + + this.validationHelper = validationHelper; + this.relationNewRequestValidator = relationNewRequestValidator; + this.relationUpdateRequestValidator = relationUpdateRequestValidator; + this.relationDeleteRequestValidator = relationDeleteRequestValidator; + + relationMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.requestHelper = requestHelper.setLogger(log); + } + + // --- external API --- + @Override + public void afterPropertiesSet() { +// this.profileDocumentMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); +// this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + + callback(RelationNewRequest.class) + .setFunction(this::relationNew) + .forDestination(Consts.DESTINATION_RELATION_NEW, callbacks::put); + callback(RelationUpdateRequest.class) + .setFunction(this::relationUpdate) + .forDestination(Consts.DESTINATION_RELATION_UPDATE, callbacks::put); + callback(CommonDeleteRequest.class) + .setFunction(this::relationDelete) + .forDestination(Consts.DESTINATION_RELATION_DELETE, callbacks::put); + init(); + } + + private synchronized RequestInfoUpdate relationNew(BaseRequest relationNewBaseRequest) { + RelationNewRequest req = relationNewBaseRequest.getRequestPayload(); + log.debug("relation-new request received, BaseRequest.id = {}", relationNewBaseRequest.getId()); + { // Валидация + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationNewBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(relationNewBaseRequest, relationNewRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + } + + + Company company = companyMap.getSingleObjectByID(req.getCompanyId()); + + Relation existRelation = searchRelation(req.getClearingMemberCategory(), req.getCompanyId()); + if (existRelation != null && !WorkflowStatus.Blocked.equalsByKey(existRelation.getServiceStatus())) { + CompanyErrors errorType; + if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(existRelation.getService())) { + errorType = CompanyErrors.ClearingMemberCategoryOnMKRAlreadyExist; + } else if (ru.spcex.platform.enumeration.Service.FOND.equalsByKey(existRelation.getService())) { + errorType = CompanyErrors.ClearingMemberCategoryOnFONDAlreadyExist; + } else { + log.warn("Unknown relation[{}] service={}", existRelation.getId(), existRelation.getService()); + errorType = CompanyErrors.GeneralError; + } + return requestHelper.makeErrorResponse(relationNewBaseRequest, errorType); + } + + Relation relation; + if (existRelation == null) { + relation = new Relation(); + relation.setId(idSequence.nextId()); + relation.setCreated(Instant.now()); + relation.setUpdated(relation.getCreated()); + } else { + log.info("Found exist relation id={}, it will be update.", existRelation.getId()); + relation = existRelation; + relation.setUpdated(Instant.now()); + } + + relation.setConsumerId(req.getCompanyId()); + relation.setSupplierId(SPVB_ID); // 1 СПВБ + if (req.getServiceStatus() != null) { + relation.setServiceStatus(req.getServiceStatus()); + } else { + if (existRelation != null) { + relation.setServiceStatus(ServiceStatus.Reopened.getKey()); + log.debug("Request has no status. Set status by resume: {}", relation.getServiceStatus()); + } else { + String toStatus = WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Active.getKey() : + WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Closed.getKey() : + null; + log.debug("Request has no status. Set status by company[{}].status={}. Relation[{}].serviceSStatus={}", + company.getId(), company.getWorkflowStatus(), toStatus); + relation.setServiceStatus(toStatus); + } + } + relation.setService(ru.spcex.platform.enumeration.Service.MKR.getKey()); // MKR + relation.setServiceProduct(ServiceProduct.ZERO.getKey()); + relation.setComment(req.getComment()); + + relationMap.insert(relation); + log.debug("New Relation[{}] created.", relation.getId()); + + return null; + } + + private Relation searchRelation(String clearingMemberCategory, Long consumerId) { + String svc; + if (ClearingCategory.B.equalsByKey(clearingMemberCategory) + || ClearingCategory.I.equalsByKey(clearingMemberCategory) + || ClearingCategory.V.equalsByKey(clearingMemberCategory) + ) { + svc = ru.spcex.platform.enumeration.Service.MKR.getKey(); + } else if (ClearingCategory.C.equalsByKey(clearingMemberCategory) + || ClearingCategory.F.equalsByKey(clearingMemberCategory) + ) { + svc = ru.spcex.platform.enumeration.Service.FOND.getKey(); + } else { + log.warn("Unexpected relation Relation={}", clearingMemberCategory); + return null; + } + Relation existRelation = relationMap.getSingleObjectByFieldValues(Map.of( + "consumerId", consumerId, + "service", svc + )); + return existRelation; + } + + private synchronized RequestInfoUpdate relationUpdate(BaseRequest relationUpdateBaseRequest) { + RelationUpdateRequest req = relationUpdateBaseRequest.getRequestPayload(); + log.debug("relation-update request received, BaseRequest.id = {}", relationUpdateBaseRequest.getId()); + { // Валидация + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationUpdateBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(relationUpdateBaseRequest, relationUpdateRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + } + + + Relation relation = relationMap.getSingleObjectByID(req.getId()); + relation.setUpdated(relation.getCreated()); + + if (req.getServiceStatus() != null) { + log.debug("To relation {} set serivceStatus=\"{}\" by user request.", relation.getId(), req.getServiceStatus()); + relation.setServiceStatus(req.getServiceStatus()); + } else { + if (relation.getConsumerId() == null) { + log.warn("Relation[{}]. consumerId was null", relation.getId()); + } + Company company = companyMap.getSingleObjectByID(relation.getConsumerId()); + String toStatus = WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Active.getKey() : + WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Closed.getKey() : + null; + if (ServiceStatus.Active.equalsByKey(toStatus) && ServiceStatus.Closed.equalsByKey(relation.getServiceStatus())) { + relation.setServiceStatus(ServiceStatus.Reopened.getKey()); + log.debug("Set status by resume: {}", relation.getServiceStatus()); + } else { + relation.setServiceStatus(toStatus); + log.debug("Request has no status. Set status by company[{}].status={}. Relation[{}].serviceSStatus={}", + company.getId(), company.getWorkflowStatus(), toStatus, relation.getServiceStatus()); + } + } + + relation.setComment(req.getComment()); + + relationMap.insert(relation); + log.debug("Update Relation[{}] created.", relation.getId()); + + return null; + } + + + private synchronized RequestInfoUpdate relationDelete(BaseRequest relationDeleteBaseRequest) { + CommonDeleteRequest req = relationDeleteBaseRequest.getRequestPayload(); + log.debug("relation-delete request received, BaseRequest.id = {}", relationDeleteBaseRequest.getId()); + { // Валидация + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationDeleteBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(relationDeleteBaseRequest, relationDeleteRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + } + + + Relation relation = relationMap.getSingleObjectByID(req.getId()); + if (WorkflowStatus.Blocked.equalsByKey(relation.getServiceStatus())) { + log.warn("Relation {} already blocked.", relation.getId()); + } else { + relation.setUpdated(relation.getCreated()); + relation.setServiceStatus(WorkflowStatus.Blocked.getKey()); + + relationMap.insert(relation); + log.debug("Relation[{}] block.", relation.getId()); + } + return null; + } + + + // --- internal API --- + + protected void createNewRelation(ImdgTransaction transaction, Company company) { + Relation relation = new Relation(); +// relation.setId(idSequence.nextId()); + relation.setCreated(Instant.now()); + relation.setUpdated(relation.getCreated()); + + relation.setConsumerId(company.getId()); + relation.setSupplierId(SPVB_ID); // 1 СПВБ + relation.setServiceStatus(WorkflowStatus.Active.getKey()); + relation.setService(ru.spcex.platform.enumeration.Service.MKR.getKey()); // MKR + relation.setServiceProduct(ServiceProduct.ZERO.getKey()); + log.debug("New Relation[{}] created.", relation.getId()); + Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + relationMap.insert(relation); + } + + /** + * @param company + * @param oldStatus + * @param newStatus WorkflowStatus.Active - при возобналвении; WorkflowStatus.Blocked - при блокировки/расторжении + */ + public void onChangeWorkflowStatus(ImdgTransaction transaction, Company company, String oldStatus, String newStatus) throws ValidationException { + log.debug("Company id={} status changed from {} to {}", + company.getId(), oldStatus, company.getWorkflowStatus()); + onChangeWorkflowStatusOnlyRelationChange(transaction, company, newStatus); + + if (WorkflowStatus.Blocked.equalsByKey(newStatus)) { + // IV - сообщения на добавления документа расторжения договора + CompanyErrors hasError = accountNotification.accountTerminationNotification(company.getId()); + if (hasError != null) { + log.warn("Can not block company, cause error {}", hasError); + throw new ValidationException(hasError); + } + } + } + + protected synchronized void onChangeWorkflowStatusOnlyRelationChange(ImdgTransaction transaction, Company company, String newStatus) throws ValidationException { + assert Objects.equals(newStatus, company.getWorkflowStatus()); + String query = String.format("consumerId=%s", company.getId()); + Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + Collection relations = relationMap.getCollectionObjectsBySQL(query); + log.trace("Selected {} Relation by query: {}", relations.size(), query); + Instant now = Instant.now(); + for (Relation relation : relations) { + boolean modified = false; + if (WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { + if (!ServiceStatus.Reopened.equalsByKey(relation.getServiceStatus())) { + relation.setServiceStatus(ServiceStatus.Reopened.getKey()); + modified = true; + } + } else if (WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus())) { + if (!ServiceStatus.Closed.equalsByKey(relation.getServiceStatus())) { + relation.setServiceStatus(ServiceStatus.Closed.getKey()); + modified = true; + } + } + if (modified) { + relation.setUpdated(now); + log.debug("Relation id={} updated", relation.getId()); + relationMap.update(relation); + } + } + } +} diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java index d823d4ab6..2735eff4c 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java @@ -18,6 +18,7 @@ import ru.clearing.platform.dictionary.*; import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig; import ru.spcex.clearing.company.config.validation.CompanyValidationConfig; +import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; @@ -50,7 +51,8 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv ValidationConfig.class, CompanySymbolService.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.class, + RelationValidationConfig.class, BeanConfiguration.class, KafkaTestConfig.class, diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java index b80446af5..e6ec57333 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java @@ -21,6 +21,7 @@ import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig; import ru.spcex.clearing.company.config.validation.CompanyValidationConfig; +import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -54,7 +55,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv ValidationConfig.class, CompanySymbolService.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.class, RelationValidationConfig.class, CompanySymbolService.class, CompanySymbolValidationConfig.class, diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java index e247fb26a..f9dee4531 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java @@ -12,11 +12,13 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; +import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.platform.dictionary.CompanySymbolDictionary; import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig; import ru.spcex.clearing.company.config.validation.CompanyValidationConfig; +import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; @@ -49,7 +51,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv CompanyService.class, CompanyValidationConfig.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.class, RelationValidationConfig.class, KafkaTestConfig.class, ImdgTestConfig.class}) @@ -92,6 +94,14 @@ class CompanySymbolServiceTest { cioSymbol.setName(CompanySymbol.CIO.getKey()); companySymbolDictionaryImdg.insert(cioSymbol); } + Imdg companyImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Company, Company.class); + { + Company company = new Company(); + company.setId(ID); + company.setShortName("TST"); + company.setWorkflowStatus("ACTV"); + companyImdg.insert(company); + } TestUtils.FutureRecordMetadata future = spy(TestUtils.FutureRecordMetadata.class); diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java new file mode 100644 index 000000000..8bebb24f7 --- /dev/null +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java @@ -0,0 +1,214 @@ +package ru.spcex.clearing.company.service; + +import org.apache.kafka.clients.consumer.MockConsumer; +import org.apache.kafka.clients.producer.MockProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.clearing.platform.dictionary.ClearingCategoryDictionary; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; +import ru.spcex.clearing.company.config.BeanConfiguration; +import ru.spcex.clearing.company.config.validation.RelationValidationConfig; +import ru.spcex.clearing.company.config.validation.ValidationConfig; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationUpdateRequest; +import ru.spcex.clearing.test.MatcherFactory; +import ru.spcex.clearing.test.TestUtils; +import ru.spcex.clearing.test.config.ImdgTestConfig; +import ru.spcex.clearing.test.config.KafkaTestConfig; +import ru.spcex.platform.enumeration.ClearingCategory; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import javax.annotation.PostConstruct; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; +import static ru.spcex.clearing.test.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.test.TestUtils.*; +import static ru.spcex.clearing.test.config.ImdgTestConfig.currentID; +import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = { + BeanConfiguration.class, + ValidationConfig.class, + RelationService.class, + AccountNotificationHelper.class, + RelationValidationConfig.class, + KafkaTestConfig.class, + ImdgTestConfig.class}) +class RelationServiceTest { + + public static final MatcherFactory.Matcher RELATION_MATCHER = usingIgnoringFieldsComparator("created", "updated"); + private static final int PARTITION = 0; + + private static final Long ID = currentID.getAndIncrement(); + @Autowired + RelationService relationService; + @Autowired + @Qualifier("hazelcastServiceTest") + private ImdgProvider hazelcastServiceTest; + private Imdg relationMap; + private Imdg companyMap; + + @Captor + private ArgumentCaptor producerRecord; + @SpyBean + private MockProducer mockProducer; + + private long COMPANY_ID; + + private final long RELATION_ID = ID; + + @PostConstruct + private void init() { + waitAvailableImdgProviderAndAddAdminWithDefaultId(); + this.relationMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + this.companyMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Company, Company.class); + + Company testCompany = new Company(); + testCompany.setWorkflowStatus(WorkflowStatus.Active.getKey()); + COMPANY_ID = companyMap.insert(testCompany); + + Imdg workflowStatusDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class + ); + WorkflowStatusDictionary workflowStatusDictionary = new WorkflowStatusDictionary(); + workflowStatusDictionary.setId(1L); + workflowStatusDictionary.setCode(WorkflowStatus.Active.getKey()); + workflowStatusDictionary.setName("active"); + workflowStatusDictionaryImdg.insert(workflowStatusDictionary); + workflowStatusDictionary = new WorkflowStatusDictionary(); + workflowStatusDictionary.setId(2L); + workflowStatusDictionary.setCode(WorkflowStatus.Blocked.getKey()); + workflowStatusDictionary.setName("not active"); + workflowStatusDictionaryImdg.insert(workflowStatusDictionary); + + Imdg clearingCategoryDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ClearingCategoryDictionary, + ClearingCategoryDictionary.class + ); + ClearingCategoryDictionary clearingCategoryDictionary = new ClearingCategoryDictionary(); + clearingCategoryDictionary.setId(1L); + clearingCategoryDictionary.setCode(ClearingCategory.I.getKey()); + clearingCategoryDictionary.setName("I"); + clearingCategoryDictionaryImdg.insert(clearingCategoryDictionary); + + TestUtils.FutureRecordMetadata future = spy(TestUtils.FutureRecordMetadata.class); + doReturn(future).when(mockProducer).send(producerRecord.capture()); + } + + + @Test + void newRelation() { + //ARRANGE + RelationNewRequest relationNewRequest = new RelationNewRequest(); + relationNewRequest.setCompanyId(COMPANY_ID); + relationNewRequest.setServiceStatus("ACTV"); + relationNewRequest.setClearingMemberCategory("I"); + relationNewRequest.setComment(null); + + Relation predictableRelation = new Relation(); + predictableRelation.setId(RELATION_ID); + predictableRelation.setConsumerId(relationNewRequest.companyId); + predictableRelation.setService("MKR"); + predictableRelation.setServiceProduct("ZERO"); + predictableRelation.setSupplierId(1L); + predictableRelation.setServiceStatus("ACTV"); + + //ACT + String jsonString = getJsonStringForNew(relationNewRequest, ID); + + addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_NEW, PARTITION, 0, jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); + Relation resultNew = relationMap.getSingleObjectBySQL("serviceStatus=ACTV"); // String.format("supplierId = %d", COMPANY_ID)); + predictableRelation.setId(resultNew.getId()); + RELATION_MATCHER.assertMatch(resultNew, predictableRelation); + } + + @Test + void updateRelation() { + //ARRANGE + Relation existsRelation = new Relation(); + existsRelation.setId(ID); + existsRelation.setConsumerId(COMPANY_ID); + existsRelation.setSupplierId(1L); + existsRelation.setComment("Test ONE"); + existsRelation.setServiceStatus("ACTV"); + existsRelation.setServiceProduct("PROD"); + existsRelation.setService("MKR"); + relationMap.insert(existsRelation); + + Relation predictableRelation = new Relation(); + predictableRelation.setId(ID); + predictableRelation.setConsumerId(COMPANY_ID); + predictableRelation.setSupplierId(1L); + predictableRelation.setComment("Another Me - ONE"); + predictableRelation.setServiceStatus("ACTV"); + predictableRelation.setServiceProduct("PROD"); + predictableRelation.setService("MKR"); + + RelationUpdateRequest relationUpdateRequest = new RelationUpdateRequest(); + relationUpdateRequest.setId(RELATION_ID); + relationUpdateRequest.setComment("Another Me - ONE"); + relationUpdateRequest.setServiceStatus("ACTV"); + + //ACT + String jsonString = getJsonStringForUpdate(relationUpdateRequest, ID); + + addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_UPDATE, PARTITION, 0, jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); + Relation resultUpdate = relationMap.getSingleObjectBySQL(String.format("id = %d", RELATION_ID)); +// predictableProfileDocument.setId(resultUpdate.getId()); + RELATION_MATCHER.assertMatch(resultUpdate, predictableRelation); + } + + + @Test + void deleteProfileDocument() { + //ARRANGE + Relation existsRelation = new Relation(); + existsRelation.setId(ID); + existsRelation.setConsumerId(COMPANY_ID); + existsRelation.setSupplierId(1L); + existsRelation.setComment("Test ONE"); + existsRelation.setServiceStatus("ACTV"); + existsRelation.setServiceProduct("PROD"); + existsRelation.setService("MKR"); + relationMap.insert(existsRelation); + + CommonDeleteRequest profileDocumentDeleteRequest = new CommonDeleteRequest(); + profileDocumentDeleteRequest.setId(RELATION_ID); + + //ACT + String jsonString = getJsonStringForUpdate(profileDocumentDeleteRequest, ID); + + addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_DELETE, PARTITION, 0, jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); + Relation resultUpdate = relationMap.getSingleObjectByID(RELATION_ID); +// Assertions.assertNull(resultUpdate); + assertEquals(WorkflowStatus.Blocked.getKey(), resultUpdate.getServiceStatus()); + } +} \ No newline at end of file diff --git a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql index 20a64eaaa..c7beb399e 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql @@ -1,5 +1,5 @@ --- DB version: 3.5.0.20 --- DATA version: 3.5.0.4 +-- DB version: 3.5.0.21 +-- DATA version: 3.5.0.5 /* Dictionaries */ INSERT INTO ALLOWED_DICTIONARY(ID, CODE, NAME) values (1, 'ALWD', 'Разрешено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -124,6 +124,8 @@ INSERT INTO DOCUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (22, 'LICС', 'До INSERT INTO DOCUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (23, 'LICF', 'Документ о лицензии форекс-дилера') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO DOCUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (24, 'LICM', 'Документ о лицензии на управление инвестиционными фондами, паевыми инвестиционными фондами, негосударственными пенсионными фондами') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (1, 'OCVD', 'Общероссийский классификатор видов экономической деятельности', 'ОКВЭД') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (2, 'INN', 'Индивидуальный налоговый номер', 'ИНН') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; @@ -160,7 +162,7 @@ INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (17, 'RG INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (18, 'UUID', 'Идентификатор во внешней системе', 'Внешний идентификатор') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; -INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (19, 'RDPZ', 'Требуется получение документа о подтверждении открытия депозитного счета', 'Подтверждение депозитного счета') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; +INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (19, 'LICM', 'Лицензия на управление инвестиционными фондами, паевыми инвестиционными фондами, негосударственными пенсионными фондами', 'Лицензия на управление фондами') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (1, 'RPRT', 'Отчетная организация') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -174,6 +176,8 @@ INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (5, 'DEPS', 'Депо INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (6, 'CLRM', 'Участник клиринга') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (7, 'ODEP', 'Участник расчетов по открытым депозитным счетам на секции МКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO CURRENCY_CODE_DICTIONARY(ID, CODE, NAME) values (643, 'RUB', 'Российский рубль') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO INSTRUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'RATE', 'Инструмент Денежного рынка') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -334,6 +338,10 @@ INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'LIQU', 'Ли INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (7, 'POOL', 'В клиринге') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (8, 'NACK', 'Не допущено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (9, 'NACC', 'Не допущено у контрагента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO BALANCE_DIMENSION_DICTIONARY(ID, CODE, NAME) values (1, 'PICS', 'Штуки') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO BALANCE_DIMENSION_DICTIONARY(ID, CODE, NAME) values (2, 'LOTS', 'Лоты') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -414,9 +422,9 @@ INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (36, 'SPRC', 'Запуск п INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (37, 'SPOC', 'Запуск постклиринга') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (38, 'LIMM', 'Выгрузка в торговую систему остатков секции МКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (38, 'LIMM', 'Выгрузка в торговую систему остатков по деньгам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (39, 'LIMF', 'Выгрузка в торговую систему остатков Фондовой секции') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (39, 'LIMS', 'Выгрузка в торговую систему остатков по бумагам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (40, 'LIQU', 'Ликвидационная сессия по обязательтсвам участника') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -488,39 +496,9 @@ INSERT INTO SIDE_DICTIONARY(ID, CODE, NAME) values (2, 'SELL', 'Продажа') INSERT INTO MARKET_CODE_DICTIONARY(ID, CODE, NAME) values (1, 'BMIC', 'СПВБ: ОФЗ-ИН - Аукцион БР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO COURIER_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STHS', 'ЭДО с Расчетной Организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO MARKET_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'PRMR', 'Первичное размещение') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'STLD', 'Рассчитан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'SENT', 'Отправлен в ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'OK', 'Обработан ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'FAIL', 'Ошибка ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'CHER', 'Ошибка КС') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'NSNT', 'Не отправлен в ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CHARGE_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'PRCT', 'Процент') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CHARGE_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'GET', 'Получить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CHARGE_DIRECTION_DICTIONARY(ID, CODE, NAME) values (2, 'PAY', 'Заплатить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'OK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'FAIL', 'Не успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'MNG', 'Не учитывать') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'PROC', 'К клирингу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO BALANCE_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'ACNT', 'Остатки по счетам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'IN', 'Зачисление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (2, 'OUT', 'Списание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO MARKET_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'SCND', 'Вторичные торги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO STATEMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'FULL', 'Установка суммы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -538,33 +516,33 @@ INSERT INTO OPERATION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'EXEC', 'Ис INSERT INTO OPERATION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'CNCL', 'Отменена') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CRPA', 'Корпоративное событие, связанное с допуском') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'DFLT', 'Отсутствие возврата по платежу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'NOTC', 'Генерация уведомления') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'SETL', 'Взаимодействие с расчетной организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'CRT', 'Создано') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (1, 'ACC', 'Доступ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (2, 'NOND', 'Не поставка') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (3, 'DEL', 'Удалена') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'NACK', 'Неуспешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'ACK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (1, '0102', 'Входящий ДФ-01/Исходящий ДФ-02') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (2, '1617', 'Входящий ДФ-16/Исходящий ДФ-17') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (2, '0607', 'Входящий ДФ-06/Исходящий ДФ-07') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (3, '0910', 'Входящий ДФ-09/Исходящий ДФ-10') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (3, '0809', 'Входящий ДФ-08/Исходящий ДФ-09') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO OBJECT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STMT', 'STATEMENT') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (4, '1011', 'Входящий ДФ-10/Исходящий ДФ-11') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (5, '57', 'Входящий ДФ-57') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'IN', 'Зачисление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (2, 'OUT', 'Списание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'STLD', 'Рассчитан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'SENT', 'Отправлен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'OK', 'Обработан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'FAIL', 'Ошибка внешней системы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'CHER', 'Ошибка КС') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'NSNT', 'Не отправлен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO OBJECT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STMT', 'statement') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO OBJECT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'VFRS', 'verificationResult') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -576,6 +554,28 @@ INSERT INTO NOTIFICATION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'ACPT', ' INSERT INTO NOTIFICATION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'READ', 'Прочтено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CRPA', 'Корпоративное событие, связанное с допуском') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'DFLT', 'Отсутствие возврата по платежу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'NOTC', 'Генерация уведомления') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'SETL', 'Взаимодействие с расчетной организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (1, 'ACC', 'Доступ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (2, 'NOND', 'Не поставка') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (3, 'DEL', 'Удалена') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'CRT', 'Создано') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO COURIER_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STHS', 'ЭДО с Расчетной Организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'NACK', 'Неуспешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'ACK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO EVENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CRET', 'Создание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO EVENT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'UPDT', 'Обновление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -680,6 +680,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3025, 'CMPN', 'Дог INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3026, 'CMPN', 'Запись о договорных отношениях не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3027, 'CMPN', 'Код клиента %s не найден.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (4000, 'RPRT', 'Общая ошибка модуля report-serivce.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5000, 'ACNT', 'Общая ошибка модуля account-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -708,11 +710,13 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5014, 'ACNT', 'Ком INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5015, 'ACNT', 'Для компании %s уже создан информационный счет %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5016, 'ACNT', 'Для Компании %s уже создан ТКР %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5016, 'ACNT', 'Для компании %s уже создан ТКР %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5017, 'ACNT', 'Для Компании %s отсутствует счет ДЕПО.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5017, 'ACNT', 'Для компании %s отсутствует счет ДЕПО.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5018, 'ACNT', 'Для Компании %s отсутствует денежный счет.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5018, 'ACNT', 'Для компании %s отсутствует денежный счет.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5019, 'ACNT', 'Для компании %s отсутствует категория %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5200, 'BLNC', 'Общая ошибка модуля balance-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -780,6 +784,14 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5418, 'CLRN', 'Тор INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5419, 'CLRN', 'Торгово-клиринговый регистр %s неактивен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5420, 'CLRN', 'Доступ к клирингу на «%s» не найден для компании %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5421, 'CLRN', 'Доступ к клирингу на «%s» неактивен для компании %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5422, 'CLRN', 'Необеспеченность обязательств у компании %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5423, 'CLRN', 'Новые сделки отсутствуют.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5600, 'DBFI', 'Общая ошибка модуля dbf-importer.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5800, 'DBFE', 'Общая ошибка модуля dbf-exporter.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -830,6 +842,10 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (9004, 'BAPI', 'Не м INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (9005, 'BAPI', 'Не найдено ресурс %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (10000, 'TRDI', 'Общая ошибка модуля trade-importer.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (10001, 'TRDI', 'Сделка с номером в ТС = %s некорректна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + /* Business objects */ INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (1, 'АО Санкт-Петербургская Валютная Биржа', 'СПВБ', '', '', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS; @@ -850,4 +866,146 @@ INSERT INTO ACCOUNT(ID, COMPANY_ID, ACCOUNT, ACCOUNT_TYPE, STATUS, PROCESSING_SI INSERT INTO ACCOUNT(ID, COMPANY_ID, ACCOUNT, ACCOUNT_TYPE, STATUS, PROCESSING_SIGN) values (2, 1, '30414810600000007000', 'ANLT', 'ACTV', 'ALWD') ON CONFLICT (ID) DO UPDATE SET COMPANY_ID = EXCLUDED.COMPANY_ID, ACCOUNT = EXCLUDED.ACCOUNT, ACCOUNT_TYPE = EXCLUDED.ACCOUNT_TYPE, STATUS = EXCLUDED.STATUS, PROCESSING_SIGN = EXCLUDED.PROCESSING_SIGN; -INSERT INTO MARKET(ID, CODE, NAME, SECTION) values (1, 'MKRS', 'Денежный рынок МКР', 'MKR') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SECTION = EXCLUDED.SECTION; +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (1, 'SCND', 'FOND', 'RUB', 'UESC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (2, 'SCND', 'FOND', 'RUB', 'NESC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (3, 'SCND', 'FOND', 'RUB', 'DESC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (4, 'PRMR', 'FOND', 'RUB', 'AESC', 'Размещение: акции (аукцион по цене)', 1, 'Размещение: акции (аукцион по цене): Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (5, 'PRMR', 'FOND', 'RUB', 'WESC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (6, 'SCND', 'FOND', 'RUB', 'UEPC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (7, 'SCND', 'FOND', 'RUB', 'NEPC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (8, 'SCND', 'FOND', 'RUB', 'DEPC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (9, 'PRMR', 'FOND', 'RUB', 'AEPC', 'Размещение: акции (аукцион по цене)', 1, 'Размещение: акции (аукцион по цене): Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (10, 'PRMR', 'FOND', 'RUB', 'WEPC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (11, 'PRMR', 'FOND', 'RUB', 'ABVC', 'Размещение: Аукцион по цене', 1, 'Размещение: Аукцион по цене: Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (12, 'PRMR', 'FOND', 'RUB', 'KBVC', 'Размещение: Аукцион по ставке', 1, 'Размещение: Аукцион по ставке: Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (13, 'SCND', 'FOND', 'RUB', 'UBVC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (14, 'SCND', 'FOND', 'RUB', 'NBVC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (15, 'SCND', 'FOND', 'RUB', 'DBVC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (16, 'PRMR', 'FOND', 'RUB', 'WBVC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (17, 'PRMR', 'FOND', 'RUB', 'ABFC', 'Размещение: Аукцион по цене', 1, 'Размещение: Аукцион по цене: Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (18, 'PRMR', 'FOND', 'RUB', 'KBFC', 'Размещение: Аукцион по ставке', 1, 'Размещение: Аукцион по ставке: Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (19, 'SCND', 'FOND', 'RUB', 'UBFC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (20, 'SCND', 'FOND', 'RUB', 'NBFC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (21, 'SCND', 'FOND', 'RUB', 'DBFC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (22, 'PRMR', 'FOND', 'RUB', 'WBFC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (23, 'PRMR', 'FOND', 'RUB', 'ABIC', 'Размещение: Аукцион по цене', 1, 'Размещение: Аукцион по цене: Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (24, 'PRMR', 'FOND', 'RUB', 'KBIC', 'Размещение: Аукцион по ставке', 1, 'Размещение: Аукцион по ставке: Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (25, 'SCND', 'FOND', 'RUB', 'UBIC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (26, 'SCND', 'FOND', 'RUB', 'NBIC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (27, 'SCND', 'FOND', 'RUB', 'DBIC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (28, 'PRMR', 'FOND', 'RUB', 'WBIC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (29, 'PRMR', 'FOND', 'RUB', 'ABMC', 'Размещение: Аукцион по цене', 1, 'Размещение: Аукцион по цене: Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (30, 'PRMR', 'FOND', 'RUB', 'KBMC', 'Размещение: Аукцион по ставке', 1, 'Размещение: Аукцион по ставке: Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (31, 'SCND', 'FOND', 'RUB', 'UBMC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (32, 'SCND', 'FOND', 'RUB', 'NBMC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (33, 'SCND', 'FOND', 'RUB', 'DBMC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (34, 'PRMR', 'FOND', 'RUB', 'WBMC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (35, 'PRMR', 'FOND', 'RUB', 'BKVC', 'Размещение: Аукцион БР', 1, 'Размещение: Аукцион БР: Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (36, 'PRMR', 'FOND', 'RUB', 'SKVC', 'Доразмещение: Адресные заявки БР', 1, 'Доразмещение: Адресные заявки БР: Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (37, 'SCND', 'FOND', 'RUB', 'UKVC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (38, 'SCND', 'FOND', 'RUB', 'NKVC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (39, 'SCND', 'FOND', 'RUB', 'DKVC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (45, 'PRMR', 'FOND', 'RUB', 'ABEC', 'Размещение: Аукцион СПВБ', 1, 'Размещение: Аукцион СПВБ: Биржевые облигации') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (46, 'SCND', 'FOND', 'RUB', 'UBEC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Биржевые облигации') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (47, 'SCND', 'FOND', 'RUB', 'NBEC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Биржевые облигации') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (48, 'SCND', 'FOND', 'RUB', 'DBEC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Биржевые облигации') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (49, 'PRMR', 'MKR', 'RUB', 'XMDT', 'Размещение: депозитный аукцион', 1, 'Размещение: депозитный аукцион: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (51, 'PRMR', 'MKR', 'RUB', 'XMDS', 'Размещение: депозитный аукцион', 1, 'Размещение: депозитный аукцион: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (52, 'PRMR', 'MKR', 'RUB', 'XMDD', 'Размещение: депозитный аукцион', 1, 'Размещение: депозитный аукцион: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (54, 'PRMR', 'MKR', 'RUB', 'XMTT', 'Размещение: депозитные торги', 1, 'Размещение: депозитные торги: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (55, 'PRMR', 'MKR', 'RUB', 'YMRT', 'Доразмещение: аукцион по ставке депозита', 1, 'Доразмещение: аукцион по ставке депозита: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (56, 'PRMR', 'MKR', 'RUB', 'YMRT', 'Доразмещение: депозитные торги', 1, 'Доразмещение: депозитные торги: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (58, 'PRMR', 'MKR', 'RUB', 'YMTT', 'Доразмещение: депозитные торги', 1, 'Доразмещение: депозитные торги: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (59, 'PRMR', 'MKR', 'RUB', 'XMXD', 'Размещение: отбор заявок', 1, 'Размещение: отбор заявок: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (60, 'PRMR', 'MKR', 'RUB', 'XMXX', 'Размещение: отбор заявок', 1, 'Размещение: отбор заявок: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (61, 'PRMR', 'FOND', 'RUB', 'BMVC', 'ОФЗПК-Размещение: Аукцион БР', 1, 'ОФЗПК-Размещение: Аукцион БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (62, 'PRMR', 'FOND', 'RUB', 'SMVC', 'ОФЗПК-Доразмещение: Адресные заявки БР', 1, 'ОФЗПК-Доразмещение: Адресные заявки БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (63, 'SCND', 'FOND', 'RUB', 'UMVC', 'ОФЗПК-Режим непрерывных торгов', 1, 'ОФЗПК-Режим непрерывных торгов: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (64, 'SCND', 'FOND', 'RUB', 'DMVC', 'ОФЗПК-Дискретный аукцион', 1, 'ОФЗПК-Дискретный аукцион: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (65, 'SCND', 'FOND', 'RUB', 'MMVC', 'ОФЗПК-Торги в режиме выкупа', 1, 'ОФЗПК-Торги в режиме выкупа: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (66, 'PRMR', 'FOND', 'RUB', 'BMFC', 'ОФЗПД-Размещение: Аукцион БР', 1, 'ОФЗПД-Размещение: Аукцион БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (67, 'PRMR', 'FOND', 'RUB', 'SMFC', 'ОФЗПД- Доразмещение: Адресные заявки БР', 1, 'ОФЗПД- Доразмещение: Адресные заявки БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (68, 'SCND', 'FOND', 'RUB', 'UMFC', 'ОФЗПД-Режим непрерывных торгов', 1, 'ОФЗПД-Режим непрерывных торгов: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (69, 'SCND', 'FOND', 'RUB', 'DMFC', 'ОФЗПД-Дискретный аукцион', 1, 'ОФЗПД-Дискретный аукцион: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (70, 'SCND', 'FOND', 'RUB', 'MMFC', 'ОФЗПД-Торги в режиме выкупа', 1, 'ОФЗПД-Торги в режиме выкупа: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (71, 'PRMR', 'FOND', 'RUB', 'BMMC', 'ОФЗАД-Размещение: Аукцион БР', 1, 'ОФЗАД-Размещение: Аукцион БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (72, 'PRMR', 'FOND', 'RUB', 'SMMC', 'ОФЗАД-Доразмещение: Адресные заявки БР', 1, 'ОФЗАД-Доразмещение: Адресные заявки БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (73, 'SCND', 'FOND', 'RUB', 'UMMC', 'ОФЗАД-Режим непрерывных торгов', 1, 'ОФЗАД-Режим непрерывных торгов: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (74, 'SCND', 'FOND', 'RUB', 'DMMC', 'ОФЗАД-Дискретный аукцион', 1, 'ОФЗАД-Дискретный аукцион: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (75, 'SCND', 'FOND', 'RUB', 'MMMC', 'ОФЗАД-Торги в режиме выкупа', 1, 'ОФЗАД-Торги в режиме выкупа: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (76, 'PRMR', 'FOND', 'RUB', 'BMIC', 'ОФЗИН-Размещение: Аукцион БР', 1, 'ОФЗИН-Размещение: Аукцион БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (77, 'PRMR', 'FOND', 'RUB', 'SMIC', 'ОФЗИН-Доразмещение: Адресные заявки БР', 1, 'ОФЗИН-Доразмещение: Адресные заявки БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (78, 'SCND', 'FOND', 'RUB', 'UMIC', 'ОФЗИН-Режим непрерывных торгов', 1, 'ОФЗИН-Режим непрерывных торгов: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (79, 'SCND', 'FOND', 'RUB', 'DMIC', 'ОФЗИН-Дискретный аукцион', 1, 'ОФЗИН-Дискретный аукцион: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (80, 'SCND', 'FOND', 'RUB', 'MMIC', 'ОФЗИН-Торги в режиме выкупа', 1, 'ОФЗИН-Торги в режиме выкупа: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; diff --git a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql index 5cd0196ff..8f8c77c62 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -1,4 +1,4 @@ --- DB version: 3.5.0.20 +-- DB version: 3.5.0.21 /* Dictionaries */ -- allowed - Справочник признаков допустимости использования объектов @@ -498,71 +498,16 @@ COMMENT ON COLUMN MARKET_CODE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN MARKET_CODE_DICTIONARY.NAME IS 'Значение'; --- chargeDirection - Направление начисления комиссии -DROP TABLE IF EXISTS CHARGE_DIRECTION_DICTIONARY; -CREATE TABLE CHARGE_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE CHARGE_DIRECTION_DICTIONARY IS 'Направление начисления комиссии'; +-- marketType - Справочник типов торгов +DROP TABLE IF EXISTS MARKET_TYPE_DICTIONARY; +CREATE TABLE MARKET_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); +COMMENT ON TABLE MARKET_TYPE_DICTIONARY IS 'Справочник типов торгов'; -COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.ID IS 'Идентификатор'; +COMMENT ON COLUMN MARKET_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.CODE IS 'Код'; +COMMENT ON COLUMN MARKET_TYPE_DICTIONARY.CODE IS 'Код'; -COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.NAME IS 'Направление комиссии'; - --- chargeType - Справочник типов комиссий -DROP TABLE IF EXISTS CHARGE_TYPE_DICTIONARY; -CREATE TABLE CHARGE_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE CHARGE_TYPE_DICTIONARY IS 'Справочник типов комиссий'; - -COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.NAME IS 'Тип комиссии'; - --- courierType - Способ доставки документа -DROP TABLE IF EXISTS COURIER_TYPE_DICTIONARY; -CREATE TABLE COURIER_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE COURIER_TYPE_DICTIONARY IS 'Способ доставки документа'; - -COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.NAME IS 'Способ доставки'; - --- transactionStatus - Справочник статусов транзакций -DROP TABLE IF EXISTS TRANSACTION_STATUS_DICTIONARY; -CREATE TABLE TRANSACTION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE TRANSACTION_STATUS_DICTIONARY IS 'Справочник статусов транзакций'; - -COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.NAME IS 'Статус транзакции'; - --- clearingStatus - Справочник результатов клиринга -DROP TABLE IF EXISTS CLEARING_STATUS_DICTIONARY; -CREATE TABLE CLEARING_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE CLEARING_STATUS_DICTIONARY IS 'Справочник результатов клиринга'; - -COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.NAME IS 'Наименование'; - --- inOutDirection - Справочник значений направления денежного потока -DROP TABLE IF EXISTS IN_OUT_DIRECTION_DICTIONARY; -CREATE TABLE IN_OUT_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE IN_OUT_DIRECTION_DICTIONARY IS 'Справочник значений направления денежного потока'; - -COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.NAME IS 'Значение'; +COMMENT ON COLUMN MARKET_TYPE_DICTIONARY.NAME IS 'Наименование'; -- statementType - Справочник типов поступлений/списаний от ПРЦ DROP TABLE IF EXISTS STATEMENT_TYPE_DICTIONARY; @@ -597,61 +542,6 @@ COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.NAME IS 'Значение'; --- balanceAccountType - Справочник типов лимитов -DROP TABLE IF EXISTS BALANCE_ACCOUNT_TYPE_DICTIONARY; -CREATE TABLE BALANCE_ACCOUNT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE BALANCE_ACCOUNT_TYPE_DICTIONARY IS 'Справочник типов лимитов'; - -COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.NAME IS 'Тип лимитов'; - --- resultStatus - Статус обработки -DROP TABLE IF EXISTS RESULT_STATUS_DICTIONARY; -CREATE TABLE RESULT_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE RESULT_STATUS_DICTIONARY IS 'Статус обработки'; - -COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.NAME IS 'Статус обработки'; - --- managementJournalStatus - Справочник статусов журнала мониторинга и контроля -DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_STATUS_DICTIONARY; -CREATE TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY IS 'Справочник статусов журнала мониторинга и контроля'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.NAME IS 'Статус сообщения'; - --- managementJournalType - Справочник типов записей в журнале мониторинга и контроля -DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_TYPE_DICTIONARY; -CREATE TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY IS 'Справочник типов записей в журнале мониторинга и контроля'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.NAME IS 'Тип записи'; - --- managementJournalPurpose - Справочник целей записей в журнале мониторинга и контроля -DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY; -CREATE TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY IS 'Справочник целей записей в журнале мониторинга и контроля'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.NAME IS 'Тип записи'; - -- inOutSDfType - Справочник типов входящих и исходящих записей DROP TABLE IF EXISTS IN_OUT_S_DF_TYPE_DICTIONARY; CREATE TABLE IN_OUT_S_DF_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); @@ -663,6 +553,28 @@ COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.NAME IS 'Тип записи'; +-- inOutDirection - Справочник значений направлений денежного потока +DROP TABLE IF EXISTS IN_OUT_DIRECTION_DICTIONARY; +CREATE TABLE IN_OUT_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); +COMMENT ON TABLE IN_OUT_DIRECTION_DICTIONARY IS 'Справочник значений направлений денежного потока'; + +COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.NAME IS 'Значение'; + +-- transactionStatus - Справочник статусов транзакций +DROP TABLE IF EXISTS TRANSACTION_STATUS_DICTIONARY; +CREATE TABLE TRANSACTION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE TRANSACTION_STATUS_DICTIONARY IS 'Справочник статусов транзакций'; + +COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.NAME IS 'Статус транзакции'; + -- objectType - Справочник типов объектов DROP TABLE IF EXISTS OBJECT_TYPE_DICTIONARY; CREATE TABLE OBJECT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); @@ -685,10 +597,65 @@ COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.NAME IS 'Наименование'; --- eventType - Типы изменений записей +-- managementJournalType - Справочник типов записей в журнале мониторинга и контроля +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_TYPE_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY IS 'Справочник типов записей в журнале мониторинга и контроля'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.NAME IS 'Тип записи'; + +-- managementJournalPurpose - Справочник целей записей в журнале мониторинга и контроля +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY IS 'Справочник целей записей в журнале мониторинга и контроля'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.NAME IS 'Тип записи'; + +-- managementJournalStatus - Справочник статусов журнала мониторинга и контроля +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_STATUS_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY IS 'Справочник статусов журнала мониторинга и контроля'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.NAME IS 'Статус сообщения'; + +-- courierType - Справочник способов доставки документа +DROP TABLE IF EXISTS COURIER_TYPE_DICTIONARY; +CREATE TABLE COURIER_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE COURIER_TYPE_DICTIONARY IS 'Справочник способов доставки документа'; + +COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.NAME IS 'Способ доставки'; + +-- resultStatus - Справочник статусов обработки +DROP TABLE IF EXISTS RESULT_STATUS_DICTIONARY; +CREATE TABLE RESULT_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); +COMMENT ON TABLE RESULT_STATUS_DICTIONARY IS 'Справочник статусов обработки'; + +COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.NAME IS 'Статус обработки'; + +-- eventType - Справочник типов изменений записей DROP TABLE IF EXISTS EVENT_TYPE_DICTIONARY; CREATE TABLE EVENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE EVENT_TYPE_DICTIONARY IS 'Типы изменений записей'; +COMMENT ON TABLE EVENT_TYPE_DICTIONARY IS 'Справочник типов изменений записей'; COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -802,7 +769,7 @@ COMMENT ON COLUMN USER_CONNECT.CONNECTION_STATE IS 'Код статуса сое COMMENT ON COLUMN USER_CONNECT.CLEARING_DATE IS 'Дата'; -COMMENT ON COLUMN USER_CONNECT.ERROR_CODE_ID IS 'Код ошибки (linked to errorCode)'; +COMMENT ON COLUMN USER_CONNECT.ERROR_CODE_ID IS 'Идентификатор кода ошибки (linked to errorCode)'; COMMENT ON COLUMN USER_CONNECT.ERROR_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; @@ -836,7 +803,7 @@ COMMENT ON COLUMN USER_CONNECT_HISTORY.CONNECTION_STATE IS 'Код статус COMMENT ON COLUMN USER_CONNECT_HISTORY.CLEARING_DATE IS 'Дата'; -COMMENT ON COLUMN USER_CONNECT_HISTORY.ERROR_CODE_ID IS 'Код ошибки (linked to errorCode)'; +COMMENT ON COLUMN USER_CONNECT_HISTORY.ERROR_CODE_ID IS 'Идентификатор кода ошибки (linked to errorCode)'; COMMENT ON COLUMN USER_CONNECT_HISTORY.ERROR_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; @@ -1451,7 +1418,7 @@ COMMENT ON COLUMN LISTING_HISTORY.UPDATED_AT IS 'Дата-время измен -- market - Торговые секции DROP TABLE IF EXISTS MARKET; -CREATE TABLE MARKET(DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(4), SETTLEMENT_CURRENCY varchar(4), SECTION varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE MARKET(DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(4), SETTLEMENT_CURRENCY varchar(4), SECTION varchar(4), MARKET_TYPE varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE MARKET IS 'Торговые секции'; COMMENT ON COLUMN MARKET.DESCRIPTION IS 'Описание'; @@ -1466,6 +1433,8 @@ COMMENT ON COLUMN MARKET.SETTLEMENT_CURRENCY IS 'Код валюты расче COMMENT ON COLUMN MARKET.SECTION IS 'Код секции (linked to section)'; +COMMENT ON COLUMN MARKET.MARKET_TYPE IS 'Тип торгов на рынке (linked to marketType)'; + COMMENT ON COLUMN MARKET.ID IS 'Идентификатор записи'; COMMENT ON COLUMN MARKET.CREATED_AT IS 'Дата-время создания записи'; @@ -1475,7 +1444,7 @@ COMMENT ON COLUMN MARKET.UPDATED_AT IS 'Дата-время изменения -- History log of market - Торговые секции DROP TABLE IF EXISTS MARKET_HISTORY; -CREATE TABLE MARKET_HISTORY(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(4), SETTLEMENT_CURRENCY varchar(4), SECTION varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE MARKET_HISTORY(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(4), SETTLEMENT_CURRENCY varchar(4), SECTION varchar(4), MARKET_TYPE varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE MARKET_HISTORY IS 'История изменений таблицы market'; COMMENT ON COLUMN MARKET_HISTORY.MARKET_ID IS 'Идентификатор записи в таблице MARKET'; COMMENT ON COLUMN MARKET_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1494,6 +1463,8 @@ COMMENT ON COLUMN MARKET_HISTORY.SETTLEMENT_CURRENCY IS 'Код валюты р COMMENT ON COLUMN MARKET_HISTORY.SECTION IS 'Код секции (linked to section)'; +COMMENT ON COLUMN MARKET_HISTORY.MARKET_TYPE IS 'Тип торгов на рынке (linked to marketType)'; + COMMENT ON COLUMN MARKET_HISTORY.ID IS 'Идентификатор записи'; COMMENT ON COLUMN MARKET_HISTORY.CREATED_AT IS 'Дата-время создания записи'; @@ -1572,7 +1543,7 @@ COMMENT ON COLUMN CLIENT_CODE_HISTORY.UPDATED_AT IS 'Дата-время изм -- tradingClearingRegistry - Торгово-клиринговый регистр DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY; -CREATE TABLE TRADING_CLEARING_REGISTRY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), MONEY_ACCOUNT_ID bigint, DEPO_AACCOUNT_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(4), TRADING_CLEARING_REGISTRY_LEVEL varchar(4), TRADING_CLEARING_REGISTRY_PURPOSE varchar(4), STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE TRADING_CLEARING_REGISTRY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), MONEY_ACCOUNT_ID bigint, DEPO_ACCOUNT_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(4), TRADING_CLEARING_REGISTRY_LEVEL varchar(4), TRADING_CLEARING_REGISTRY_PURPOSE varchar(4), STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.ID IS 'Идентификатор записи'; @@ -1583,7 +1554,7 @@ COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.CODE IS 'Код торгово-кл COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.MONEY_ACCOUNT_ID IS 'Идентификатор денежного счета (linked to account)'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.DEPO_AACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; +COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.DEPO_ACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.TRADING_CLEARING_REGISTRY_TYPE IS 'Код торгово-клирингового регистра (linked to tradingClearingRegistryType)'; @@ -1600,7 +1571,7 @@ COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.UPDATED_AT IS 'Дата-время -- History log of tradingClearingRegistry - Торгово-клиринговый регистр DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY_HISTORY; -CREATE TABLE TRADING_CLEARING_REGISTRY_HISTORY(TRADING_CLEARING_REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), MONEY_ACCOUNT_ID bigint, DEPO_AACCOUNT_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(4), TRADING_CLEARING_REGISTRY_LEVEL varchar(4), TRADING_CLEARING_REGISTRY_PURPOSE varchar(4), STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE TRADING_CLEARING_REGISTRY_HISTORY(TRADING_CLEARING_REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), MONEY_ACCOUNT_ID bigint, DEPO_ACCOUNT_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(4), TRADING_CLEARING_REGISTRY_LEVEL varchar(4), TRADING_CLEARING_REGISTRY_PURPOSE varchar(4), STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE TRADING_CLEARING_REGISTRY_HISTORY IS 'История изменений таблицы tradingClearingRegistry'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор записи в таблице TRADING_CLEARING_REGISTRY'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1615,7 +1586,7 @@ COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.CODE IS 'Код торгов COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.MONEY_ACCOUNT_ID IS 'Идентификатор денежного счета (linked to account)'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.DEPO_AACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; +COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.DEPO_ACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY_TYPE IS 'Код торгово-клирингового регистра (linked to tradingClearingRegistryType)'; @@ -1631,7 +1602,7 @@ COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.UPDATED_AT IS 'Дата-вр -- registry - Регистр активов, обязательств и требований УК DROP TABLE IF EXISTS REGISTRY; -CREATE TABLE REGISTRY(COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_ID bigint, BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE REGISTRY(COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_ID bigint, BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, SESSION_TYPE varchar(4), PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE REGISTRY IS 'Регистр активов, обязательств и требований УК'; COMMENT ON COLUMN REGISTRY.COMPANY_ID IS 'Идентификатор участника (linked to company)'; @@ -1716,9 +1687,9 @@ COMMENT ON COLUMN REGISTRY.GROUP_ID IS 'Идентификатор группы COMMENT ON COLUMN REGISTRY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN REGISTRY.PAYMENT_ID IS 'Идентификатор платежа'; +COMMENT ON COLUMN REGISTRY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; -COMMENT ON COLUMN REGISTRY.REFUND_PAYMENT_ID IS 'Идентификатор обратного платежа'; +COMMENT ON COLUMN REGISTRY.PAYMENT_ID IS 'Идентификатор платежа'; COMMENT ON COLUMN REGISTRY.ID IS 'Идентификатор записи'; @@ -1729,7 +1700,7 @@ COMMENT ON COLUMN REGISTRY.UPDATED_AT IS 'Дата и время изменен -- History log of registry - Регистр активов, обязательств и требований УК DROP TABLE IF EXISTS REGISTRY_HISTORY; -CREATE TABLE REGISTRY_HISTORY(REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_ID bigint, BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE REGISTRY_HISTORY(REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_ID bigint, BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, SESSION_TYPE varchar(4), PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE REGISTRY_HISTORY IS 'История изменений таблицы registry'; COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_ID IS 'Идентификатор записи в таблице REGISTRY'; COMMENT ON COLUMN REGISTRY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1818,9 +1789,9 @@ COMMENT ON COLUMN REGISTRY_HISTORY.GROUP_ID IS 'Идентификатор гр COMMENT ON COLUMN REGISTRY_HISTORY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN REGISTRY_HISTORY.PAYMENT_ID IS 'Идентификатор платежа'; +COMMENT ON COLUMN REGISTRY_HISTORY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; -COMMENT ON COLUMN REGISTRY_HISTORY.REFUND_PAYMENT_ID IS 'Идентификатор обратного платежа'; +COMMENT ON COLUMN REGISTRY_HISTORY.PAYMENT_ID IS 'Идентификатор платежа'; COMMENT ON COLUMN REGISTRY_HISTORY.ID IS 'Идентификатор записи'; @@ -2098,65 +2069,6 @@ COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.COMPANY_ID IS 'Идентификат COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.ID IS 'Идентификатор записи'; --- sDf51 - ДФ-51 Запрос остатков по всем счетам -DROP TABLE IF EXISTS S_DF51; -CREATE TABLE S_DF51(ID bigint PRIMARY KEY, NUMBER varchar(10), DATETIME varchar(13), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF51 IS 'ДФ-51 Запрос остатков по всем счетам'; - -COMMENT ON COLUMN S_DF51.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF51.NUMBER IS 'Номер запроса остатков по счетам'; - -COMMENT ON COLUMN S_DF51.DATETIME IS 'Дата и время сообщения'; - -COMMENT ON COLUMN S_DF51.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF51.GENERATION_ID IS 'Идентификатор взаимодействия'; - --- sDf52 - ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие) -DROP TABLE IF EXISTS S_DF52; -CREATE TABLE S_DF52(ID bigint PRIMARY KEY, ACCOUNT varchar(25), ACC_NAME varchar(30), DEAL varchar(4), DATE varchar, STATUS bigint, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF52 IS 'ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; - -COMMENT ON COLUMN S_DF52.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF52.ACCOUNT IS 'Код счета участника клиринга'; - -COMMENT ON COLUMN S_DF52.ACC_NAME IS 'Наименование участника клиринга'; - -COMMENT ON COLUMN S_DF52.DEAL IS 'Биржевой код участника клиринга'; - -COMMENT ON COLUMN S_DF52.DATE IS 'Дата изменения состояния счета'; - -COMMENT ON COLUMN S_DF52.STATUS IS 'Статус счета'; - -COMMENT ON COLUMN S_DF52.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF52.GENERATION_TIME IS 'Дата и время обработки файла'; - -COMMENT ON COLUMN S_DF52.GENERATION_ID IS 'Идентификатор взаимодействия'; - --- sDf53 - ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) -DROP TABLE IF EXISTS S_DF53; -CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); -COMMENT ON TABLE S_DF53 IS 'ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; - -COMMENT ON COLUMN S_DF53.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF53.ACCOUNT IS 'Код счета участника клиринга'; - -COMMENT ON COLUMN S_DF53.DEAL IS 'Биржевой код участника клиринга'; - -COMMENT ON COLUMN S_DF53.STATUS IS 'Статус счета'; - -COMMENT ON COLUMN S_DF53.RESULT IS 'Код завершения операции'; - -COMMENT ON COLUMN S_DF53.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF53.GENERATION_ID IS 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_DF53.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; - -- plannerTemplate - Шаблон расписания операционного дня DROP TABLE IF EXISTS PLANNER_TEMPLATE; CREATE TABLE PLANNER_TEMPLATE(TASK varchar(4), TASK_TIME time, TASK_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); @@ -2465,7 +2377,7 @@ COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_ID IS 'Идентификат COMMENT ON COLUMN EXECUTION_DEPOSIT.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.SESSION_ID IS 'Сессия (linked to session)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; COMMENT ON COLUMN EXECUTION_DEPOSIT.ID IS 'Идентификатор записи'; @@ -2535,7 +2447,7 @@ COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COUNTER_PARTY_ID IS 'Идентиф COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SESSION_ID IS 'Сессия (linked to session)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.ID IS 'Идентификатор записи'; @@ -2608,7 +2520,7 @@ COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_EXECUTION_MICROSECONDS IS 'Микро COMMENT ON COLUMN EXECUTION_FOND.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_FOND.SESSION_ID IS 'Идентификатор сессии (linked to session)'; +COMMENT ON COLUMN EXECUTION_FOND.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -- History log of executionFond - Сделки на Фондовой секции @@ -2678,708 +2590,349 @@ COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_EXECUTION_MICROSECONDS IS 'М COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SESSION_ID IS 'Идентификатор сессии (linked to session)'; +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; --- clearmemberRegister - Реестр участников клиринга -DROP TABLE IF EXISTS CLEARMEMBER_REGISTER; -CREATE TABLE CLEARMEMBER_REGISTER(TRADING_CODE varchar(255), CLEARING_CODE varchar(255), FULL_NAME varchar(255), SHORT_NAME varchar(255), CATEGORY_LIST varchar(4), CORPORATION_SOLE varchar(4), ACCOUNT varchar(50), BANK bigint, BANK_NAME varchar(255), INN varchar(255), BIC varchar(255), OGRN varchar(255), CPP varchar(255), OCPO varchar(255), CONTRACT_NUMBER varchar(255), CONTRACT_DATE date, REGISTRATION_DATE date, SYSTEM_DATE date, ACCESS_DATE timestamp, SUSPENTION_DATE timestamp, REOPENING_DATE timestamp, CLOSE_DATE timestamp, EXCLUSION_DATE timestamp, ADDRESS varchar(255), EMAIL varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CLEARMEMBER_REGISTER IS 'Реестр участников клиринга'; +-- depoBalanceRegister - Реестр остатков ценных бумаг +DROP TABLE IF EXISTS DEPO_BALANCE_REGISTER; +CREATE TABLE DEPO_BALANCE_REGISTER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint, SESSION_ID bigint, DEPO_CODE varchar(50), QUANTITY numeric(72,2), SECURITY_SYMBOL varchar(255)); +COMMENT ON TABLE DEPO_BALANCE_REGISTER IS 'Реестр остатков ценных бумаг'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.TRADING_CODE IS 'Код участника торгов'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CLEARING_CODE IS 'Код участника клиринга'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.FULL_NAME IS 'Полное наименование участника клиринга'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.SHORT_NAME IS 'Краткое наименование участника клиринга'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CATEGORY_LIST IS 'Категория участника клиринга (linked to clearingCategory)'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CORPORATION_SOLE IS 'Единоличный исполнительный орган (linked to corporationSoleType)'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.DEPO_CODE IS 'Код раздела субсчета/счета депо'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.ACCOUNT IS 'Счета'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.QUANTITY IS 'Количество'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.BANK IS 'Наименование банка (linked to bankAccount)'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.SECURITY_SYMBOL IS 'Код ценной бумаги'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.BANK_NAME IS 'Наименование банка'; +-- moneyBalanceRegister - Реестр остатков денежных средств +DROP TABLE IF EXISTS MONEY_BALANCE_REGISTER; +CREATE TABLE MONEY_BALANCE_REGISTER(SET_HOUSE_NAME varchar(255), ACCOUNT varchar(50), INFO_ACCOUNT varchar(50), REMAINDER_SUM numeric(72,18), BLOCKED_SUM numeric(72,18), UNBLOCKED_SUM numeric(72,18), INN varchar(255), SESSION_ID bigint, COMPANY_FULL_NAME varchar(255), COMPANY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE MONEY_BALANCE_REGISTER IS 'Реестр остатков денежных средств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.SET_HOUSE_NAME IS 'Наименование РО'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.BIC IS 'Банковский идентификационный код (БИК)'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.ACCOUNT IS 'Номер торгового/клирингового счета'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.OGRN IS 'Основной государственный регистрационный номер'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.INFO_ACCOUNT IS 'Номер счета внутреннего учета СПВБ'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CPP IS 'Код причины постановки (КПП)'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.REMAINDER_SUM IS 'Остаток денежных средств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.OCPO IS 'Код в Общероссийском классификаторе предприятий'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.BLOCKED_SUM IS 'Сумма блокированных денежных средств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CONTRACT_NUMBER IS 'Номер договора'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.UNBLOCKED_SUM IS 'Сумма свободных денежных средств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CONTRACT_DATE IS 'Дата выдачи'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.REGISTRATION_DATE IS 'Дата регистрации'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.SYSTEM_DATE IS 'Системная дата'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.ACCESS_DATE IS 'Дата допуска к КО'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.SUSPENTION_DATE IS 'Дата приостановления'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.REOPENING_DATE IS 'Дата возобновления'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CLOSE_DATE IS 'Дата прекращения'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.EXCLUSION_DATE IS 'Дата исключения из реестра'; +-- admittedLiabilitiesRegister - Реестр обязательств, допущенных к клирингу +DROP TABLE IF EXISTS ADMITTED_LIABILITIES_REGISTER; +CREATE TABLE ADMITTED_LIABILITIES_REGISTER(COMPANY_FULL_NAME varchar(255), SESSION_ID bigint, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), COMPANY_ID bigint, CLEARING_CODE varchar(255), ACCOUNT varchar(50), AMOUNT numeric(72,18), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE ADMITTED_LIABILITIES_REGISTER IS 'Реестр обязательств, допущенных к клирингу'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.ADDRESS IS 'Адрес местонахождения'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.EMAIL IS 'Электронная почта'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SECURITY_FULL_NAME IS 'Полное наименование инструмента'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; --- clearmemberRegisterChange - Журнал изменений информации участников клиринга -DROP TABLE IF EXISTS CLEARMEMBER_REGISTER_CHANGE; -CREATE TABLE CLEARMEMBER_REGISTER_CHANGE(DATE timestamp, CLEARING_CODE varchar(255), COMMENT varchar(255)); -COMMENT ON TABLE CLEARMEMBER_REGISTER_CHANGE IS 'Журнал изменений информации участников клиринга'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CLEARING_CODE IS 'Код участника клиринга'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER_CHANGE.DATE IS 'Дата и время изменения записи'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.ACCOUNT IS 'Счет компании'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER_CHANGE.CLEARING_CODE IS 'Код участника клиринга'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.AMOUNT IS 'Сумма обязательств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER_CHANGE.COMMENT IS 'Комментарий'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; --- keyRate - Ключевая ставка ЦБ -DROP TABLE IF EXISTS KEY_RATE; -CREATE TABLE KEY_RATE(RATE numeric(72,18), START_DATE date, END_DATE date, DOCUMENT varchar(255), WORKFLOW_STATUS varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE KEY_RATE IS 'Ключевая ставка ЦБ'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN KEY_RATE.RATE IS 'Ключевая ставка ЦБ'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN KEY_RATE.START_DATE IS 'Дата начала действия ключевой ставки'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -COMMENT ON COLUMN KEY_RATE.END_DATE IS 'Дата окончания действия ключевой ставки'; +-- coveredLiabilitiesRegister - Реестр обязательств, прошедших процедуру контроля обеспечения +DROP TABLE IF EXISTS COVERED_LIABILITIES_REGISTER; +CREATE TABLE COVERED_LIABILITIES_REGISTER(COMPANY_FULL_NAME varchar(255), SESSION_ID bigint, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), COMPANY_ID bigint, CLEARING_CODE varchar(255), ACCOUNT varchar(50), AMOUNT numeric(72,18), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE COVERED_LIABILITIES_REGISTER IS 'Реестр обязательств, прошедших процедуру контроля обеспечения'; -COMMENT ON COLUMN KEY_RATE.DOCUMENT IS 'Документ ЦБ, регламентирующий установку величины ключевой ставки'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN KEY_RATE.WORKFLOW_STATUS IS 'Статус (linked to workflowStatus)'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN KEY_RATE.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; --- balanceRegister - Реестр остатков денежных средств -DROP TABLE IF EXISTS BALANCE_REGISTER; -CREATE TABLE BALANCE_REGISTER(S_DF01_DATE timestamp, CURRENCY_CODE varchar(4), SET_HOUSE_NAME varchar(255), ACCOUNT varchar(50), INFO_ACCOUNT varchar(50), REMAINDER_SUM numeric(72,18), BLOCKED_SUM numeric(72,18), UNBLOCKED_SUM numeric(72,18), INN varchar(255), MARKET bigint, FULL_NAME varchar(255), TYPE_REMAINS varchar(4), DOC_NUMBER varchar(255), COMPANY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE BALANCE_REGISTER IS 'Реестр остатков денежных средств'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SECURITY_FULL_NAME IS 'Полное наименование инструмента'; -COMMENT ON COLUMN BALANCE_REGISTER.S_DF01_DATE IS 'Дата создания записи в S_DF01'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN BALANCE_REGISTER.CURRENCY_CODE IS 'Код валюты (linked to currencyCode)'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CLEARING_CODE IS 'Код участника клиринга'; -COMMENT ON COLUMN BALANCE_REGISTER.SET_HOUSE_NAME IS 'Наименование РО'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.ACCOUNT IS 'Счет компании'; -COMMENT ON COLUMN BALANCE_REGISTER.ACCOUNT IS 'Номер торгового/клирингового счета'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.AMOUNT IS 'Сумма обязательств'; -COMMENT ON COLUMN BALANCE_REGISTER.INFO_ACCOUNT IS 'Номер счета внутреннего учета СПВБ'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN BALANCE_REGISTER.REMAINDER_SUM IS 'Остаток денежных средст'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN BALANCE_REGISTER.BLOCKED_SUM IS 'Сумма блокированных денежных средств'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN BALANCE_REGISTER.UNBLOCKED_SUM IS 'Сумма свободных денежных средств'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -COMMENT ON COLUMN BALANCE_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; +-- moneyPaymentInstructionRegister - Реестр распоряжений, направленных расчетной организации +DROP TABLE IF EXISTS MONEY_PAYMENT_INSTRUCTION_REGISTER; +CREATE TABLE MONEY_PAYMENT_INSTRUCTION_REGISTER(CREDIT_LEG_ACCOUNT varchar, CREDIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_CURRENCY_CODE varchar(4), DEBIT_LEG_ACCOUNT varchar, SENDER varchar(255), ADDRESSEE varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE MONEY_PAYMENT_INSTRUCTION_REGISTER IS 'Реестр распоряжений, направленных расчетной организации'; -COMMENT ON COLUMN BALANCE_REGISTER.MARKET IS 'Сегмент рынка (linked to market)'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_ACCOUNT IS 'Счет отправителя'; -COMMENT ON COLUMN BALANCE_REGISTER.FULL_NAME IS 'Наименование Участника Клиринга'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_AMOUNT IS 'Сумма отправителя'; -COMMENT ON COLUMN BALANCE_REGISTER.TYPE_REMAINS IS 'Тип остатка'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; -COMMENT ON COLUMN BALANCE_REGISTER.DOC_NUMBER IS 'Номер документа'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.DEBIT_LEG_ACCOUNT IS 'Счет получателя'; -COMMENT ON COLUMN BALANCE_REGISTER.COMPANY_ID IS 'Компания (linked to company)'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.SENDER IS 'Отправитель'; -COMMENT ON COLUMN BALANCE_REGISTER.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.ADDRESSEE IS 'Получатель'; -COMMENT ON COLUMN BALANCE_REGISTER.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN BALANCE_REGISTER.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; --- managementJournal - Журнал мониторинга и контроля -DROP TABLE IF EXISTS MANAGEMENT_JOURNAL; -CREATE TABLE MANAGEMENT_JOURNAL(COMPANY_ID bigint, USER_ID bigint, MANAGEMENT_JOURNAL_TYPE varchar(4), MANAGEMENT_JOURNAL_PURPOSE varchar(4), MANAGEMENT_JOURNAL_STATUS varchar(4), TEXT varchar(4096), CHANGE_ACCESS_SIGN varchar(4), CHANGE_DATA_SIGN varchar(4), EVENT_DATE timestamp, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE MANAGEMENT_JOURNAL IS 'Журнал мониторинга и контроля'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.COMPANY_ID IS 'Участник (linked to company)'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CLEARING_DATE IS 'Дата расчета'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.USER_ID IS 'Автор сообщения (linked to userCls)'; +-- depoPaymentInstructionRegister - Реестр распоряжений, направленных расчетному депозитарию +DROP TABLE IF EXISTS DEPO_PAYMENT_INSTRUCTION_REGISTER; +CREATE TABLE DEPO_PAYMENT_INSTRUCTION_REGISTER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(255), TRADING_CLEARING_REGISTRY varchar(50), CB_CODE varchar(50), QUANTITY numeric(72,2), DIRECTION bigint, SESSION_ID bigint); +COMMENT ON TABLE DEPO_PAYMENT_INSTRUCTION_REGISTER IS 'Реестр распоряжений, направленных расчетному депозитарию'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_TYPE IS 'Тип мониторинга (linked to managementJournalType)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_PURPOSE IS 'Цель мониторинга (linked to managementJournalPurpose)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_STATUS IS 'Статус (linked to managementJournalStatus)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.TEXT IS 'Сообщение'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_ACCESS_SIGN IS 'Признак изменения доступа (linked to allowed)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.TRADING_CLEARING_REGISTRY_TYPE IS 'Тип торгово-клирингового регистра'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_DATA_SIGN IS 'Признак изменения данных (linked to allowed)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.EVENT_DATE IS 'Дата события ЕГРЮЛ'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.CB_CODE IS 'Код ЦБ'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.QUANTITY IS 'Количество'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.DIRECTION IS 'Направление (linked to inOutDirection)'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; --- inDocumentJournal - Журнал входящих документов -DROP TABLE IF EXISTS IN_DOCUMENT_JOURNAL; -CREATE TABLE IN_DOCUMENT_JOURNAL(REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), SENDER varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE varchar(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), COMMENT varchar(255), RECEIPT_DATE date, RESULT_STATUS varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE IN_DOCUMENT_JOURNAL IS 'Журнал входящих документов'; +-- excludeLiabilitiesRegister - Реестр обязательств, исключенных из клирингового пула +DROP TABLE IF EXISTS EXCLUDE_LIABILITIES_REGISTER; +CREATE TABLE EXCLUDE_LIABILITIES_REGISTER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SESSION_ID bigint, VALID_FROM_DATE date, VALID_TO_DATE date, COMPANY_ID bigint, COMPANY_FULL_NAME varchar(255), INN varchar(255), SEGMENT varchar(10), REGISTRY_CODE varchar(4), ACCOUNT varchar(50), REGISTRY_STATUS varchar(4), CURRENCY varchar(4), SUM_LIABILITIES numeric(72,18), SETTLEMENT_DATE date); +COMMENT ON TABLE EXCLUDE_LIABILITIES_REGISTER IS 'Реестр обязательств, исключенных из клирингового пула'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.SENDER IS 'Полное наименование отправителя'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.VALID_FROM_DATE IS 'Дата начала cессии'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.VALID_TO_DATE IS 'Дата окончания cессии'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код Участника Клиринга'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Способ отправки (linked to courierType)'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SEGMENT IS 'Сегмент'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.REGISTRY_CODE IS 'Код регистра (linked to tradingClearingRegistryType)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COMMENT IS 'Комментарий'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.ACCOUNT IS 'Наименование счета'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RECEIPT_DATE IS 'Дата получения оригинала'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.REGISTRY_STATUS IS 'Код статуса'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Статус загрузки документа (linked to resultStatus)'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.CURRENCY IS 'Код валюты отправителя (linked to currency)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SUM_LIABILITIES IS 'Сумма обязательств'; --- outDocumentJournal - Журнал исходящих документов -DROP TABLE IF EXISTS OUT_DOCUMENT_JOURNAL; -CREATE TABLE OUT_DOCUMENT_JOURNAL(REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), ADDRESSEE varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE varchar(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), POST_DATE date, RESULT_STATUS varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE OUT_DOCUMENT_JOURNAL IS 'Журнал исходящих документов'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SETTLEMENT_DATE IS 'Дата расчета'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; +-- liabilitiesRegister - Реестр учета обязательств +DROP TABLE IF EXISTS LIABILITIES_REGISTER; +CREATE TABLE LIABILITIES_REGISTER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SESSION_ID bigint, VALID_FROM_DATE date, VALID_TO_DATE date, COMPANY_ID bigint, COMPANY_FULL_NAME varchar(255), INN varchar(255), SEGMENT varchar(10), REGISTRY_CODE varchar(4), ACCOUNT varchar(50), REGISTRY_STATUS varchar(4), CURRENCY varchar(4), SUM_LIABILITIES numeric(72,18), SETTLEMENT_DATE date); +COMMENT ON TABLE LIABILITIES_REGISTER IS 'Реестр учета обязательств'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; +COMMENT ON COLUMN LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; +COMMENT ON COLUMN LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; +COMMENT ON COLUMN LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ADDRESSEE IS 'Полное наименование получателя'; +COMMENT ON COLUMN LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; +COMMENT ON COLUMN LIABILITIES_REGISTER.VALID_FROM_DATE IS 'Дата начала cессии'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код Участника Клиринга'; +COMMENT ON COLUMN LIABILITIES_REGISTER.VALID_TO_DATE IS 'Дата окончания cессии'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Способ отправки (linked to courierType)'; +COMMENT ON COLUMN LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; +COMMENT ON COLUMN LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; +COMMENT ON COLUMN LIABILITIES_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; +COMMENT ON COLUMN LIABILITIES_REGISTER.SEGMENT IS 'Сегмент'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.POST_DATE IS 'Дата почтового отправления'; +COMMENT ON COLUMN LIABILITIES_REGISTER.REGISTRY_CODE IS 'Код регистра (linked to tradingClearingRegistryType)'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Статус выгрузки документа (linked to resultStatus)'; +COMMENT ON COLUMN LIABILITIES_REGISTER.ACCOUNT IS 'Наименование счета'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN LIABILITIES_REGISTER.REGISTRY_STATUS IS 'Код статуса'; --- dealRegister - Реестр сделок -DROP TABLE IF EXISTS DEAL_REGISTER; -CREATE TABLE DEAL_REGISTER(EXECUTION_ID bigint, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, ACCOUNT varchar(50), MARKET varchar(4), PRICE numeric(72,18), AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, COUNTER_PARTY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE DEAL_REGISTER IS 'Реестр сделок'; +COMMENT ON COLUMN LIABILITIES_REGISTER.CURRENCY IS 'Код валюты отправителя (linked to currency)'; -COMMENT ON COLUMN DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; +COMMENT ON COLUMN LIABILITIES_REGISTER.SUM_LIABILITIES IS 'Сумма обязательств'; -COMMENT ON COLUMN DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; +COMMENT ON COLUMN LIABILITIES_REGISTER.SETTLEMENT_DATE IS 'Дата расчета'; -COMMENT ON COLUMN DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; +-- executionRegister - Реестр сделок +DROP TABLE IF EXISTS EXECUTION_REGISTER; +CREATE TABLE EXECUTION_REGISTER(TRADING_DATE date, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, SECURITY_ID bigint, SELLER_ID bigint, SELLER_CLEARING_CODE varchar(255), SELLER_TRADING_CLEARING_REGISTER varchar(255), SELLER_MONEY_ACCOUNT varchar(50), SELLER_DEPO_ACCOUNT varchar(50), BUYER_ID bigint, BUYER_CLEARING_CODE varchar(255), BUYER_TRADING_CLEARING_REGISTER varchar(255), BUYER_MONEY_ACCOUNT varchar(50), BUYER_DEPO_ACCOUNT varchar(50), AMOUNT numeric(72,2), QUANTITY numeric(72,2), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE EXECUTION_REGISTER IS 'Реестр сделок'; -COMMENT ON COLUMN DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; +COMMENT ON COLUMN EXECUTION_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; -COMMENT ON COLUMN DEAL_REGISTER.ACCOUNT IS 'Торговый счет'; +COMMENT ON COLUMN EXECUTION_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; -COMMENT ON COLUMN DEAL_REGISTER.MARKET IS 'Секция финансового инструмента (linked to market)'; +COMMENT ON COLUMN EXECUTION_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; -COMMENT ON COLUMN DEAL_REGISTER.PRICE IS 'Ставка по депозиту'; +COMMENT ON COLUMN EXECUTION_REGISTER.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; -COMMENT ON COLUMN DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_ID IS 'Идентификатор компании-продавца (linked to company)'; -COMMENT ON COLUMN DEAL_REGISTER.SIDE IS 'Направление сделки (linked to moneyFlowSide)'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_CLEARING_CODE IS 'Клиринговый код продавца'; -COMMENT ON COLUMN DEAL_REGISTER.SETTLEMENT_CURRENCY IS 'Валюта расчетов по инструменту (linked to currencyCode)'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_TRADING_CLEARING_REGISTER IS 'Торгово-клиринговый регистр продавца'; -COMMENT ON COLUMN DEAL_REGISTER.COMPANY_ID IS 'Название компании (linked to company)'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_MONEY_ACCOUNT IS 'Денежный счет продавца'; -COMMENT ON COLUMN DEAL_REGISTER.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_DEPO_ACCOUNT IS 'Депо счет продавца'; -COMMENT ON COLUMN DEAL_REGISTER.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_ID IS 'Идентификатор компании-покупателя (linked to company)'; -COMMENT ON COLUMN DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_CLEARING_CODE IS 'Клиринговый код покупателя'; -COMMENT ON COLUMN DEAL_REGISTER.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_TRADING_CLEARING_REGISTER IS 'Торгово-клиринговый регистр покупателя'; -COMMENT ON COLUMN DEAL_REGISTER.SECURITY_ID IS 'Финансовый инструмент (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_MONEY_ACCOUNT IS 'Денежный счет покупателя'; -COMMENT ON COLUMN DEAL_REGISTER.COUNTER_PARTY_ID IS 'Имя компании-партнера, с которым заключена сделка (linked to company)'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_DEPO_ACCOUNT IS 'Депо счет покупателя'; -COMMENT ON COLUMN DEAL_REGISTER.COVERAGE_STATUS IS 'Cтатус достаточности обеспечения (linked to allowed)'; +COMMENT ON COLUMN EXECUTION_REGISTER.AMOUNT IS 'Сумма сделки'; -COMMENT ON COLUMN DEAL_REGISTER.SESSION_ID IS 'Наименование сессии (linked to moneyMarketSession)'; +COMMENT ON COLUMN EXECUTION_REGISTER.QUANTITY IS 'Количество ценных бумаг'; -COMMENT ON COLUMN DEAL_REGISTER.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN EXECUTION_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; +COMMENT ON COLUMN EXECUTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; +COMMENT ON COLUMN EXECUTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- admittedDealRegister - Реестр сделок, допущенных к клирингу -DROP TABLE IF EXISTS ADMITTED_DEAL_REGISTER; -CREATE TABLE ADMITTED_DEAL_REGISTER(EXECUTION_ID bigint, COMPANY_FULL_NAME varchar(255), TRADING_DATE date, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar(50), BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar(50), AMOUNT numeric(72,2), ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE ADMITTED_DEAL_REGISTER IS 'Реестр сделок, допущенных к клирингу'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- coveredDealRegister - Реестр сделок, прошедших процедуру контроля обеспечения -DROP TABLE IF EXISTS COVERED_DEAL_REGISTER; -CREATE TABLE COVERED_DEAL_REGISTER(EXECUTION_ID bigint, COMPANY_FULL_NAME varchar(255), TRADING_DATE date, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar(50), BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar(50), AMOUNT numeric(72,2), ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE COVERED_DEAL_REGISTER IS 'Реестр сделок, прошедших процедуру контроля обеспечения'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- uncoveredDealRegister - Реестр сделок, не прошедших процедуру контроля обеспечения -DROP TABLE IF EXISTS UNCOVERED_DEAL_REGISTER; -CREATE TABLE UNCOVERED_DEAL_REGISTER(EXECUTION_ID bigint, COMPANY_FULL_NAME varchar(255), TRADING_DATE date, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar(50), BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar(50), AMOUNT numeric(72,2), RESULT_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE UNCOVERED_DEAL_REGISTER IS 'Реестр сделок, не прошедших процедуру контроля обеспечения'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.RESULT_STATUS IS 'Результат клиринга (linked to resultStatus)'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- reportRegister - Реестр отправленных отчетов -DROP TABLE IF EXISTS REPORT_REGISTER; -CREATE TABLE REPORT_REGISTER(COMPANY_FULL_NAME varchar(255), CLEARING_CODE varchar(255), SESSION_ID bigint, COMMENT varchar(255), NAME varchar(255), QUANTITY bigint, ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE REPORT_REGISTER IS 'Реестр отправленных отчетов'; - -COMMENT ON COLUMN REPORT_REGISTER.COMPANY_FULL_NAME IS 'Наименование участника'; - -COMMENT ON COLUMN REPORT_REGISTER.CLEARING_CODE IS 'Код клиринга'; - -COMMENT ON COLUMN REPORT_REGISTER.SESSION_ID IS 'Сессия (linked to moneyMarketSession)'; - -COMMENT ON COLUMN REPORT_REGISTER.COMMENT IS 'Комментарий'; - -COMMENT ON COLUMN REPORT_REGISTER.NAME IS 'Наименование'; - -COMMENT ON COLUMN REPORT_REGISTER.QUANTITY IS 'Количество записей'; - -COMMENT ON COLUMN REPORT_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REPORT_REGISTER.CREATED_AT IS 'Время регистрации'; - -COMMENT ON COLUMN REPORT_REGISTER.UPDATED_AT IS 'Время изменения'; - -COMMENT ON COLUMN REPORT_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- contractRegister - Журнал регистрации договоров -DROP TABLE IF EXISTS CONTRACT_REGISTER; -CREATE TABLE CONTRACT_REGISTER(NAME varchar(255), NUMBER varchar(255), ISSUE_DATE date, COMPANY_FULL_NAME bigint, COMPANY_ID bigint, DOCUMENT_TYPE varchar(4), ISSUE_PLACE varchar(255), ISSUER varchar(255), ISSUER_CODE varchar(255), PLACE varchar(255), VALID_FROM_DATE date, VALID_TO_DATE date, CLOSE_DATE date, COMMENT varchar(255), ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time); -COMMENT ON TABLE CONTRACT_REGISTER IS 'Журнал регистрации договоров'; - -COMMENT ON COLUMN CONTRACT_REGISTER.NAME IS 'Наименование документа'; - -COMMENT ON COLUMN CONTRACT_REGISTER.NUMBER IS 'Номер документа'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_DATE IS 'Дата составления'; - -COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_FULL_NAME IS 'Наименование лица'; - -COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_ID IS 'Наименование Компании (linked to company)'; - -COMMENT ON COLUMN CONTRACT_REGISTER.DOCUMENT_TYPE IS 'Наименование типа документа (linked to documentType)'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_PLACE IS 'Место выдачи'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER IS 'Кем выдан'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER_CODE IS 'Код выдавшего органа'; - -COMMENT ON COLUMN CONTRACT_REGISTER.PLACE IS 'Место'; - -COMMENT ON COLUMN CONTRACT_REGISTER.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN CONTRACT_REGISTER.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN CONTRACT_REGISTER.CLOSE_DATE IS 'Дата расторжения'; - -COMMENT ON COLUMN CONTRACT_REGISTER.COMMENT IS 'Место'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CONTRACT_REGISTER.CREATED_AT IS 'Дата и время регистрации документа'; - -COMMENT ON COLUMN CONTRACT_REGISTER.UPDATED_AT IS 'Время изменения сделки'; - --- orderRegister - Реестр распоряжений, направленных расчетной организации -DROP TABLE IF EXISTS ORDER_REGISTER; -CREATE TABLE ORDER_REGISTER(CREDIT_LEG_ACCOUNT varchar, CREDIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_CURRENCY_CODE varchar(4), CREDIT_LEG_DIRECTION bigint, DEBIT_LEG_ACCOUNT varchar, SENDER varchar(255), ADDRESSEE varchar(255), DOCUMENT_NUMBER varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); -COMMENT ON TABLE ORDER_REGISTER IS 'Реестр распоряжений, направленных расчетной организации'; - -COMMENT ON COLUMN ORDER_REGISTER.CREDIT_LEG_ACCOUNT IS 'Счет отправителя'; - -COMMENT ON COLUMN ORDER_REGISTER.CREDIT_LEG_AMOUNT IS 'Сумма отправителя'; - -COMMENT ON COLUMN ORDER_REGISTER.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; - -COMMENT ON COLUMN ORDER_REGISTER.CREDIT_LEG_DIRECTION IS 'Направление отправителя (linked to inOutDirection)'; - -COMMENT ON COLUMN ORDER_REGISTER.DEBIT_LEG_ACCOUNT IS 'Счет получателя'; - -COMMENT ON COLUMN ORDER_REGISTER.SENDER IS 'Отправитель'; - -COMMENT ON COLUMN ORDER_REGISTER.ADDRESSEE IS 'Получатель'; - -COMMENT ON COLUMN ORDER_REGISTER.DOCUMENT_NUMBER IS 'Номер документа в сторонней системе'; - -COMMENT ON COLUMN ORDER_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ORDER_REGISTER.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN ORDER_REGISTER.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN ORDER_REGISTER.CLEARING_DATE IS 'Дата расчета'; - --- liabilitiesClaimsMoney - Требования и обязательства денежных средств -DROP TABLE IF EXISTS LIABILITIES_CLAIMS_MONEY; -CREATE TABLE LIABILITIES_CLAIMS_MONEY(COMPANY_ID bigint, SHORT_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), ACCOUNT_TYPE varchar(4), CURRENCY varchar(4), LIABILITIES_AMOUNT numeric(72,2), CLAIMS_AMOUNT numeric(72,2), SETTLEMENT_DATE date, TRADING_DATE date, TRADING_CODE varchar(255), FULL_NAME varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); -COMMENT ON TABLE LIABILITIES_CLAIMS_MONEY IS 'Требования и обязательства денежных средств'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.COMPANY_ID IS 'Наименование участника (linked to company)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SHORT_NAME IS 'Короткое наименование Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_ID IS 'Наименование счета (linked to account)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT IS 'Наименование счета'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_TYPE IS 'Тип счета (linked to accountType)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.LIABILITIES_AMOUNT IS 'Регистр «Обязательства по денежным средствам, сформированные по результатам собственных сделок Участника клиринга», исключая проценты'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLAIMS_AMOUNT IS 'Сумма требований, исключая проценты'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SETTLEMENT_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_DATE IS 'Дата торгов'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_CODE IS 'Торговый код Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.FULL_NAME IS 'Полное наименование Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLEARING_DATE IS 'Дата клиринга'; - --- liabilitiesClaimsAssets - Требования и обязательства финансовых активов -DROP TABLE IF EXISTS LIABILITIES_CLAIMS_ASSETS; -CREATE TABLE LIABILITIES_CLAIMS_ASSETS(COMPANY_ID bigint, SHORT_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), ACCOUNT_TYPE varchar(4), CURRENCY varchar(4), SETTLEMENT_DATE date, LIABILITIES_QUANTITY numeric(72,18), CLAIMS_QUANTITY numeric(72,18), CONTRACT varchar(255), SECURITY_ID bigint, TRADING_DATE date, REFUND_DATE date, PRICE numeric(72,18), TRADING_CODE varchar(255), CLEARING_CODE varchar(255), COMMENT varchar(255), FULL_NAME varchar(255), PARENT_ID bigint, LIABILITIES_CLAIMS_MONEY_ID bigint, CLEARING_STATUS bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); -COMMENT ON TABLE LIABILITIES_CLAIMS_ASSETS IS 'Требования и обязательства финансовых активов'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.COMPANY_ID IS 'Наименование участника (linked to company)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SHORT_NAME IS 'Короткое наименование Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT_ID IS 'Наименование счета (linked to account)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT IS 'Наименование счета'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT_TYPE IS 'Тип счета (linked to accountType)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SETTLEMENT_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_QUANTITY IS 'Сумма обязательств'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLAIMS_QUANTITY IS 'Сумма требований'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CONTRACT IS 'Номер договора'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SECURITY_ID IS 'Инструмент (linked to moneyMarketSecurity)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_DATE IS 'Дата торгов'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_DATE IS 'Дата возврата'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PRICE IS 'Ставка по депозиту'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_CODE IS 'Торговый код Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_CODE IS 'Клиринговый код Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.COMMENT IS 'Комментарий'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.FULL_NAME IS 'Полное наименование Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PARENT_ID IS 'Запись основного договора без разделения'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_CLAIMS_MONEY_ID IS 'Регистры денежных средств (linked to liabilitiesClaimsMoney)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_STATUS IS 'Статус клиринга (linked to clearingStatus)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PAYMENT_ID IS 'Платеж'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_PAYMENT_ID IS 'Обратный платежа'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_DATE IS 'Дата клиринга'; +COMMENT ON COLUMN EXECUTION_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -- statement - Денежные средства от расчетной организации DROP TABLE IF EXISTS STATEMENT; -CREATE TABLE STATEMENT(ADDRESSEE_ID bigint, SENDER_ID bigint, STATEMENT_TYPE varchar(4), COMMENT varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), IN_OUT_DIRECTION varchar(4), SETTLEMENT_DATE date, AMOUNT numeric(72,2), CASH_MOVEMENT_CURRENCY_CODE varchar(4), OPERATION_STATUS varchar(4), ERROR_CODE varchar(4), ERROR_TEXT varchar(4), IN_S_DF_ID bigint, OUT_S_DF_ID bigint, IN_OUT_S_DF_TYPE varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +CREATE TABLE STATEMENT(ADDRESSEE_ID bigint, SENDER_ID bigint, STATEMENT_TYPE varchar(4), SECURITY_ID bigint, CONTRACT varchar(255), COMMENT varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), IN_OUT_DIRECTION varchar(4), SETTLEMENT_DATE date, AMOUNT numeric(72,2), OPERATION_STATUS varchar(4), ERROR_CODE_ID bigint, ERROR_TEXT_ID bigint, IN_S_DF_ID bigint, OUT_S_DF_ID bigint, IN_OUT_S_DF_TYPE varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); COMMENT ON TABLE STATEMENT IS 'Денежные средства от расчетной организации'; -COMMENT ON COLUMN STATEMENT.ADDRESSEE_ID IS 'Наименование участника получателя (linked to company)'; +COMMENT ON COLUMN STATEMENT.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; -COMMENT ON COLUMN STATEMENT.SENDER_ID IS 'Наименование участника отправителя (linked to company)'; +COMMENT ON COLUMN STATEMENT.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; -COMMENT ON COLUMN STATEMENT.STATEMENT_TYPE IS 'Тип поступления средств (linked to statementType)'; +COMMENT ON COLUMN STATEMENT.STATEMENT_TYPE IS 'Код типа поступления средств (linked to statementType)'; + +COMMENT ON COLUMN STATEMENT.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; + +COMMENT ON COLUMN STATEMENT.CONTRACT IS 'Продукт'; COMMENT ON COLUMN STATEMENT.COMMENT IS 'Комментарий'; -COMMENT ON COLUMN STATEMENT.ACCOUNT_ID IS 'Наименование счета (linked to account)'; +COMMENT ON COLUMN STATEMENT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; COMMENT ON COLUMN STATEMENT.ACCOUNT IS 'Наименование счета'; -COMMENT ON COLUMN STATEMENT.IN_OUT_DIRECTION IS 'Направление (linked to inOutDirection)'; +COMMENT ON COLUMN STATEMENT.IN_OUT_DIRECTION IS 'Код направления (linked to inOutDirection)'; COMMENT ON COLUMN STATEMENT.SETTLEMENT_DATE IS 'Дата расчетов'; COMMENT ON COLUMN STATEMENT.AMOUNT IS 'Объем'; -COMMENT ON COLUMN STATEMENT.CASH_MOVEMENT_CURRENCY_CODE IS 'Код валюты (linked to currency)'; +COMMENT ON COLUMN STATEMENT.OPERATION_STATUS IS 'Код статуса обработки (linked to operationStatus)'; -COMMENT ON COLUMN STATEMENT.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; +COMMENT ON COLUMN STATEMENT.ERROR_CODE_ID IS 'Идентификатор кода ошибки (linked to errorCode)'; -COMMENT ON COLUMN STATEMENT.ERROR_CODE IS 'Код ошибки (linked to errorCode)'; +COMMENT ON COLUMN STATEMENT.ERROR_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; -COMMENT ON COLUMN STATEMENT.ERROR_TEXT IS 'Полный текст ошибки (linked to errorText)'; +COMMENT ON COLUMN STATEMENT.IN_S_DF_ID IS 'Идентификатор записи, инициировавшая изменения этой таблицы'; -COMMENT ON COLUMN STATEMENT.IN_S_DF_ID IS 'Запись, инициировавшая изменения этой таблицы'; +COMMENT ON COLUMN STATEMENT.OUT_S_DF_ID IS 'Идентификатор записи, сформированная в результате изменения этой таблицы'; -COMMENT ON COLUMN STATEMENT.OUT_S_DF_ID IS 'Запись, сформированная в результате изменения этой таблицы'; - -COMMENT ON COLUMN STATEMENT.IN_OUT_S_DF_TYPE IS 'Типы входящей и исходящей записей (linked to inOutSDfType)'; +COMMENT ON COLUMN STATEMENT.IN_OUT_S_DF_TYPE IS 'Код типа входящей и исходящей записей (linked to inOutSDfType)'; COMMENT ON COLUMN STATEMENT.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN STATEMENT.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN STATEMENT.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN STATEMENT.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN STATEMENT.UPDATED_AT IS 'Дата-время изменения записи'; COMMENT ON COLUMN STATEMENT.CLEARING_DATE IS 'Дата расчета'; --- tradeSettlement - Проводки на базе сделок торговой системы -DROP TABLE IF EXISTS TRADE_SETTLEMENT; -CREATE TABLE TRADE_SETTLEMENT(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, AMOUNT numeric(72,2), CURRENCY_CODE varchar(4), IN_OUT_DIRECTION bigint, ACCOUNT_ID bigint, ACCOUNT varchar(50), OPERATION_STATUS varchar(4)); -COMMENT ON TABLE TRADE_SETTLEMENT IS 'Проводки на базе сделок торговой системы'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.CLEARING_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.AMOUNT IS 'Объем'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.CURRENCY_CODE IS 'Код валюты (linked to currency)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.IN_OUT_DIRECTION IS 'Направление (linked to inOutDirection)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.ACCOUNT IS 'Счет'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; - --- operation - Проводки -DROP TABLE IF EXISTS OPERATION; -CREATE TABLE OPERATION(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, OPERATION_TYPE_ID bigint, OPERATION_STATUS varchar(4)); -COMMENT ON TABLE OPERATION IS 'Проводки'; - -COMMENT ON COLUMN OPERATION.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN OPERATION.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - -COMMENT ON COLUMN OPERATION.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - -COMMENT ON COLUMN OPERATION.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN OPERATION.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN OPERATION.CLEARING_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN OPERATION.OPERATION_TYPE_ID IS 'Тип проводки (linked to operationType)'; - -COMMENT ON COLUMN OPERATION.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; - -- paymentInstruction - Платежные поручения DROP TABLE IF EXISTS PAYMENT_INSTRUCTION; -CREATE TABLE PAYMENT_INSTRUCTION(SENDER_ID bigint, ADDRESSEE_ID bigint, ADRESSEE_BIC varchar(255), PAYEE_BANK_NAME varchar(255), PAYEE_BIC varchar(255), ADDRESSEE_BANK_NAME varchar(255), PAYMENT_DATE timestamp, PAYMENT_PURPOSE varchar(255), SETTLEMENT_DATE date, CREDIT_LEG_AMOUNT numeric(72,18), DEBIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_ACCOUNT_ID bigint, CREDIT_CS_ACCOUNT varchar(255), CREDIT_LEG_ACCOUNT varchar(50), DEBIT_LEG_ACCOUNT_ID bigint, DEBIT_CS_ACCOUNT varchar(255), DEBIT_LEG_ACCOUNT varchar(50), CREDIT_LEG_DIRECTION bigint, DEBIT_LEG_DIRECTION bigint, CREDIT_LEG_CURRENCY_CODE varchar(4), DEBIT_LEG_CURRENCY_CODE varchar(4), TRANSACTION_STATUS varchar(4), DOCUMENT_NUMBER varchar(255), ID bigint PRIMARY KEY, UPDATED_AT timestamp, CREATED_AT timestamp, CLEARING_DATE date); +CREATE TABLE PAYMENT_INSTRUCTION(SENDER_ID bigint, ADDRESSEE_ID bigint, PAYEE_BIC varchar(255), ADRESSEE_BIC varchar(255), PAYEE_BANK_NAME varchar(255), ADDRESSEE_BANK_NAME varchar(255), PAYMENT_DATE timestamp, PAYMENT_PURPOSE varchar(255), SETTLEMENT_DATE date, CREDIT_LEG_AMOUNT numeric(72,18), DEBIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_ACCOUNT_ID bigint, CREDIT_CS_ACCOUNT varchar(255), CREDIT_LEG_ACCOUNT varchar(50), DEBIT_LEG_ACCOUNT_ID bigint, DEBIT_CS_ACCOUNT varchar(255), DEBIT_LEG_ACCOUNT varchar(50), CREDIT_LEG_DIRECTION varchar(4), DEBIT_LEG_DIRECTION varchar(4), CREDIT_LEG_CURRENCY_CODE varchar(4), DEBIT_LEG_CURRENCY_CODE varchar(4), CREDIT_LEG_SECURITY_ID bigint, DEBIT_LEG_SECURITY_ID bigint, TRANSACTION_STATUS varchar(4), DOCUMENT_NUMBER varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_ID bigint); COMMENT ON TABLE PAYMENT_INSTRUCTION IS 'Платежные поручения'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.SENDER_ID IS 'Наименование участника отправителя (linked to company)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADDRESSEE_ID IS 'Наименование участника получателя (linked to company)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; + +COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYEE_BIC IS 'Банковский идентификационный код (БИК) отправителя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADRESSEE_BIC IS 'Банковский идентификационный код (БИК) получателя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYEE_BANK_NAME IS 'Наименование банка отправителя'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYEE_BIC IS 'Банковский идентификационный код (БИК) отправителя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADDRESSEE_BANK_NAME IS 'Наименование банка получателя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYMENT_DATE IS 'Дата и время платежа'; @@ -3392,224 +2945,128 @@ COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_AMOUNT IS 'Сумма отпр COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_AMOUNT IS 'Сумма получателя'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_ACCOUNT_ID IS 'Наименование счета отправителя (linked to account)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_ACCOUNT_ID IS 'Идентификатор счета отправителя (linked to account)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_CS_ACCOUNT IS 'Корреспондентский счет отправителя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_ACCOUNT IS 'Счет отправителя'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT_ID IS 'Наименование счета получателя (linked to account)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT_ID IS 'Идентификатор счета получателя (linked to account)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_CS_ACCOUNT IS 'Корреспондентский счет получателя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT IS 'Счет получателя'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_DIRECTION IS 'Направление отправителя (linked to inOutDirection)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_DIRECTION IS 'Код направления отправителя (linked to inOutDirection)'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_DIRECTION IS 'Направление получателя (linked to inOutDirection)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_DIRECTION IS 'Код направления получателя (linked to inOutDirection)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_CURRENCY_CODE IS 'Код валюты получателя (linked to currency)'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.TRANSACTION_STATUS IS 'Cтатус транзакции (linked to transactionStatus)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_SECURITY_ID IS 'Идентификатор инструмента отправителя (linked to security)'; + +COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_SECURITY_ID IS 'Идентификатор инструмента получателя (linked to security)'; + +COMMENT ON COLUMN PAYMENT_INSTRUCTION.TRANSACTION_STATUS IS 'Код статуса транзакции (linked to transactionStatus)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DOCUMENT_NUMBER IS 'Номер документа в сторонней системе'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.UPDATED_AT IS 'Дата-время изменения записи'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.CLEARING_DATE IS 'Дата расчета'; --- marketData - Итоги торгов -DROP TABLE IF EXISTS MARKET_DATA; -CREATE TABLE MARKET_DATA(ID bigint PRIMARY KEY, SECURITIES_DEPOSIT_ID bigint, COMPANY_NAME varchar(255), MARKET varchar(4), COUNTER_PARTY_NUM bigint, TRADES_NUM bigint, AMOUNT numeric(72,2), OPEN_PRICE numeric(72,18), MAX_PRICE numeric(72,18), MIN_PRICE numeric(72,18), CLOSE_PRICE numeric(72,18), AVG_PRICE numeric(72,18), DURATION bigint, CREATED_AT time, UPDATED_AT time, TRADING_DATE date); -COMMENT ON TABLE MARKET_DATA IS 'Итоги торгов'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN MARKET_DATA.ID IS 'Идентификатор записи'; +-- notification - Сообщения +DROP TABLE IF EXISTS NOTIFICATION; +CREATE TABLE NOTIFICATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4)); +COMMENT ON TABLE NOTIFICATION IS 'Сообщения'; -COMMENT ON COLUMN MARKET_DATA.SECURITIES_DEPOSIT_ID IS 'Биржевой код инструмента (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN NOTIFICATION.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN MARKET_DATA.COMPANY_NAME IS 'Инициатор торгов'; +COMMENT ON COLUMN NOTIFICATION.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN MARKET_DATA.MARKET IS 'Секция (linked to market)'; +COMMENT ON COLUMN NOTIFICATION.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN MARKET_DATA.COUNTER_PARTY_NUM IS 'Количество участников, заключивших сделки'; +COMMENT ON COLUMN NOTIFICATION.CLEARING_DATE IS 'Дата'; -COMMENT ON COLUMN MARKET_DATA.TRADES_NUM IS 'Количество сделок'; +COMMENT ON COLUMN NOTIFICATION.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; -COMMENT ON COLUMN MARKET_DATA.AMOUNT IS 'Объем сделок, руб'; +COMMENT ON COLUMN NOTIFICATION.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; -COMMENT ON COLUMN MARKET_DATA.OPEN_PRICE IS 'Откр.'; +COMMENT ON COLUMN NOTIFICATION.OBJECT_TYPE IS 'Код типа объекта (linked to objectType)'; -COMMENT ON COLUMN MARKET_DATA.MAX_PRICE IS 'Макс.'; +COMMENT ON COLUMN NOTIFICATION.OBJECT_ID IS 'Идентификатор объекта'; -COMMENT ON COLUMN MARKET_DATA.MIN_PRICE IS 'Мин.'; +COMMENT ON COLUMN NOTIFICATION.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)'; -COMMENT ON COLUMN MARKET_DATA.CLOSE_PRICE IS 'Закр.'; -COMMENT ON COLUMN MARKET_DATA.AVG_PRICE IS 'Ср.взв.'; +-- History log of notification - Сообщения +DROP TABLE IF EXISTS NOTIFICATION_HISTORY; +CREATE TABLE NOTIFICATION_HISTORY(NOTIFICATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4)); +COMMENT ON TABLE NOTIFICATION_HISTORY IS 'История изменений таблицы notification'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_ID IS 'Идентификатор записи в таблице NOTIFICATION'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TYPE IS 'Тип изменения'; -COMMENT ON COLUMN MARKET_DATA.DURATION IS 'Срок, дней'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN MARKET_DATA.CREATED_AT IS 'Время регистрации сделки'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN MARKET_DATA.UPDATED_AT IS 'Время изменения сделки'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN MARKET_DATA.TRADING_DATE IS 'Дата торгов'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.CLEARING_DATE IS 'Дата'; --- chargeTariff - Тарифы комиссий -DROP TABLE IF EXISTS CHARGE_TARIFF; -CREATE TABLE CHARGE_TARIFF(ID bigint PRIMARY KEY, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CHARGE_TARIFF IS 'Тарифы комиссий'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; -COMMENT ON COLUMN CHARGE_TARIFF.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; -COMMENT ON COLUMN CHARGE_TARIFF.MARKET IS 'Секция (linked to market)'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_TYPE IS 'Код типа объекта (linked to objectType)'; -COMMENT ON COLUMN CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_ID IS 'Идентификатор объекта'; -COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)'; -COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; +-- verificationResult - Результаты сверки +DROP TABLE IF EXISTS VERIFICATION_RESULT; +CREATE TABLE VERIFICATION_RESULT(CLEARING_CODE varchar(255), ACCOUNT_ID bigint, IN_SUM numeric(72,2), OUT_INT_SUM numeric(72,2), OUT_EXT_SUM numeric(72,2), DIFF_SUM numeric(72,2), GENERATION_ID bigint, GENERATION_STATUS varchar(4), RESULT_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE VERIFICATION_RESULT IS 'Результаты сверки'; -COMMENT ON COLUMN CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; +COMMENT ON COLUMN VERIFICATION_RESULT.CLEARING_CODE IS 'Код участника клиринга'; -COMMENT ON COLUMN CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; +COMMENT ON COLUMN VERIFICATION_RESULT.ACCOUNT_ID IS 'Идентификатор счета УК, по которому проводится сверка'; -COMMENT ON COLUMN CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; +COMMENT ON COLUMN VERIFICATION_RESULT.IN_SUM IS 'Входящая сумма остатков'; -COMMENT ON COLUMN CHARGE_TARIFF.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN VERIFICATION_RESULT.OUT_INT_SUM IS 'Исходящая сумма остатков, полученная в КС'; -COMMENT ON COLUMN CHARGE_TARIFF.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN VERIFICATION_RESULT.OUT_EXT_SUM IS 'Исходящая сумма остатков из отчета ПРЦ'; +COMMENT ON COLUMN VERIFICATION_RESULT.DIFF_SUM IS 'Сумма расхождений'; --- History log of chargeTariff - Тарифы комиссий -DROP TABLE IF EXISTS CHARGE_TARIFF_HISTORY; -CREATE TABLE CHARGE_TARIFF_HISTORY(CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CHARGE_TARIFF_HISTORY IS 'История изменений таблицы chargeTariff'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице CHARGE_TARIFF'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.EVENT_TYPE IS 'Тип изменения'; +COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_STATUS IS 'Код общего статуса сверки (linked to resultStatus)'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.MARKET IS 'Секция (linked to market)'; +COMMENT ON COLUMN VERIFICATION_RESULT.RESULT_STATUS IS 'Код статуса сверки (linked to resultStatus)'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; +COMMENT ON COLUMN VERIFICATION_RESULT.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; +COMMENT ON COLUMN VERIFICATION_RESULT.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CHARGE_RATE IS 'Ставка комиссионного сбора'; +COMMENT ON COLUMN VERIFICATION_RESULT.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CREATED_AT IS 'Создано'; - -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.UPDATED_AT IS 'Изменено'; - --- individualChargeTariff - Индивидуальные тарифы комиссий для Участника -DROP TABLE IF EXISTS INDIVIDUAL_CHARGE_TARIFF; -CREATE TABLE INDIVIDUAL_CHARGE_TARIFF(ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF IS 'Индивидуальные тарифы комиссий для Участника'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.COMPANY_ID IS 'Участник (linked to company)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.MARKET IS 'Секция (linked to market)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CREATED_AT IS 'Создано'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.UPDATED_AT IS 'Изменено'; - - --- History log of individualChargeTariff - Индивидуальные тарифы комиссий для Участника -DROP TABLE IF EXISTS INDIVIDUAL_CHARGE_TARIFF_HISTORY; -CREATE TABLE INDIVIDUAL_CHARGE_TARIFF_HISTORY(INDIVIDUAL_CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF_HISTORY IS 'История изменений таблицы individualChargeTariff'; -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.INDIVIDUAL_CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице INDIVIDUAL_CHARGE_TARIFF'; -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.COMPANY_ID IS 'Участник (linked to company)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.MARKET IS 'Секция (linked to market)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CHARGE_RATE IS 'Ставка комиссионного сбора'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CREATED_AT IS 'Создано'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.UPDATED_AT IS 'Изменено'; - --- companyTariff - Тарифы комиссий в разрезе Участника -DROP TABLE IF EXISTS COMPANY_TARIFF; -CREATE TABLE COMPANY_TARIFF(ID bigint PRIMARY KEY, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), FULL_NAME varchar(255), CONTRACT varchar(255), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint); -COMMENT ON TABLE COMPANY_TARIFF IS 'Тарифы комиссий в разрезе Участника'; - -COMMENT ON COLUMN COMPANY_TARIFF.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COMPANY_TARIFF.MARKET IS 'Секция (linked to market)'; - -COMMENT ON COLUMN COMPANY_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - -COMMENT ON COLUMN COMPANY_TARIFF.FULL_NAME IS 'Полное наименование Участника (linked to company)'; - -COMMENT ON COLUMN COMPANY_TARIFF.CONTRACT IS 'Номер договора'; - -COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - -COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; - -COMMENT ON COLUMN COMPANY_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - -COMMENT ON COLUMN COMPANY_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN COMPANY_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN COMPANY_TARIFF.CREATED_AT IS 'Создано'; - -COMMENT ON COLUMN COMPANY_TARIFF.UPDATED_AT IS 'Изменено'; - -COMMENT ON COLUMN COMPANY_TARIFF.COMPANY_ID IS 'Участник (linked to company)'; - --- sDf01 - ДФ-01 Информация о денежных средствах, находящихся на торговых банковских счетах Участников клиринга +-- sDf01 - ДФ-01 Информации о денежных средствах, находящихся на торговых банковских счетах участников клиринга DROP TABLE IF EXISTS S_DF01; CREATE TABLE S_DF01(ID bigint PRIMARY KEY, CURR_CODE varchar(12), ACCOUNT varchar(35), REMAINDER varchar(22), DEAL varchar(10), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(30), ACC_TYPE varchar(2), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF01 IS 'ДФ-01 Информация о денежных средствах, находящихся на торговых банковских счетах Участников клиринга'; +COMMENT ON TABLE S_DF01 IS 'ДФ-01 Информации о денежных средствах, находящихся на торговых банковских счетах участников клиринга'; COMMENT ON COLUMN S_DF01.ID IS 'Идентификатор записи'; @@ -3645,7 +3102,7 @@ COMMENT ON COLUMN S_DF01.GENERATION_ID IS 'Идентификатор взаим -- sDf02 - ДФ-02 Уведомление об исполнении операции загрузки денежных средств или уведомление об ошибке DROP TABLE IF EXISTS S_DF02; -CREATE TABLE S_DF02(ID bigint PRIMARY KEY, CURR_CODE varchar(12), ACCOUNT varchar(35), REMAINDER varchar(22), DEAL varchar(10), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(30), ACC_TYPE varchar(2), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF01_ID bigint); +CREATE TABLE S_DF02(ID bigint PRIMARY KEY, CURR_CODE varchar(12), ACCOUNT varchar(35), REMAINDER varchar(22), DEAL varchar(10), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(30), ACC_TYPE varchar(2), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); COMMENT ON TABLE S_DF02 IS 'ДФ-02 Уведомление об исполнении операции загрузки денежных средств или уведомление об ошибке'; COMMENT ON COLUMN S_DF02.ID IS 'Идентификатор записи'; @@ -3680,12 +3137,12 @@ COMMENT ON COLUMN S_DF02.GENERATION_TIME IS 'Дата и время создан COMMENT ON COLUMN S_DF02.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF02.IN_S_DF01_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; +COMMENT ON COLUMN S_DF02.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; --- sDf03 - ДФ-03 Сводное платежное поручение +-- sDf03 - ДФ-03 Реестр платежных поручений DROP TABLE IF EXISTS S_DF03; -CREATE TABLE S_DF03(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), IMP_RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, PAYMENT_INSTRUCTION_ID bigint); -COMMENT ON TABLE S_DF03 IS 'ДФ-03 Сводное платежное поручение'; +CREATE TABLE S_DF03(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SPECIF_1 varchar(255), IMP_RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, PAYMENT_INSTRUCTION_ID bigint); +COMMENT ON TABLE S_DF03 IS 'ДФ-03 Реестр платежных поручений'; COMMENT ON COLUMN S_DF03.ID IS 'Идентификатор записи'; @@ -3695,11 +3152,7 @@ COMMENT ON COLUMN S_DF03.DOC_TYPE IS 'Тип документа'; COMMENT ON COLUMN S_DF03.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; -COMMENT ON COLUMN S_DF03.DOCNMPREV IS 'Ссылка на предшестввующий документ'; - -COMMENT ON COLUMN S_DF03.PRIORITY IS 'Приоритет скорости отправления сообщения'; - -COMMENT ON COLUMN S_DF03.SBANKCODE IS 'Код банка-плательщика'; +COMMENT ON COLUMN S_DF03.DOCNMPREV IS 'Ссылка на предшествующий документ'; COMMENT ON COLUMN S_DF03.C_ACC_DEB IS 'Счет по дебету'; @@ -3713,8 +3166,6 @@ COMMENT ON COLUMN S_DF03.SBANKNAM4 IS ''; COMMENT ON COLUMN S_DF03.SBANKNAM5 IS ''; -COMMENT ON COLUMN S_DF03.RBANKCODE IS 'Код банка-получателя'; - COMMENT ON COLUMN S_DF03.C_ACC_CRED IS 'Счет по кредиту'; COMMENT ON COLUMN S_DF03.RBANKNAM1 IS 'Наименование банка-получателя'; @@ -3729,56 +3180,12 @@ COMMENT ON COLUMN S_DF03.RBANKNAM5 IS ''; COMMENT ON COLUMN S_DF03.PAY_DATE IS 'Платеж-дата'; -COMMENT ON COLUMN S_DF03.EXT_DATE IS 'Дата по выписке'; - COMMENT ON COLUMN S_DF03.PAY_VAL IS 'Валюта платежа'; COMMENT ON COLUMN S_DF03.SUM_DEB IS 'Сумма дебет '; -COMMENT ON COLUMN S_DF03.SCLIENTN1 IS 'Наименование клиента-плательщика'; - -COMMENT ON COLUMN S_DF03.SCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF03.SCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF03.SCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF03.SC_CODE IS 'Код клиента-плательщика'; - -COMMENT ON COLUMN S_DF03.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF03.RCLIENTN1 IS 'Наименование клиента-получателя'; - -COMMENT ON COLUMN S_DF03.RCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF03.RCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF03.RCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF03.ACC_KR_1 IS 'Счет кредит'; - -COMMENT ON COLUMN S_DF03.ACC_KR_2 IS ''; - -COMMENT ON COLUMN S_DF03.SP_CODE IS 'Код назначения платежа'; - COMMENT ON COLUMN S_DF03.SPECIF_1 IS 'Назначение платежа'; -COMMENT ON COLUMN S_DF03.SPECIF_2 IS ''; - -COMMENT ON COLUMN S_DF03.SPECIF_3 IS ''; - -COMMENT ON COLUMN S_DF03.SPECIF_4 IS ''; - -COMMENT ON COLUMN S_DF03.SPECIF_5 IS ''; - -COMMENT ON COLUMN S_DF03.SPECIF_6 IS ''; - -COMMENT ON COLUMN S_DF03.SEND_TYPE IS 'Тип отправления плат. поручения'; - -COMMENT ON COLUMN S_DF03.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - -COMMENT ON COLUMN S_DF03.DOC_RESULT IS ''; - COMMENT ON COLUMN S_DF03.IMP_RESULT IS 'Результат приема'; COMMENT ON COLUMN S_DF03.GENERATION_TIME IS 'Дата и время создания записи'; @@ -3787,10 +3194,10 @@ COMMENT ON COLUMN S_DF03.GENERATION_ID IS 'Идентификатор взаим COMMENT ON COLUMN S_DF03.PAYMENT_INSTRUCTION_ID IS 'Идентификатор соответствующей записи из таблицы-источника (linked to paymentInstruction)'; --- sDf04 - ДФ-04 Подтверждение переводов из Расчетной организации для СПВБ +-- sDf04 - ДФ-04 Подтверждение проведения расчетов DROP TABLE IF EXISTS S_DF04; -CREATE TABLE S_DF04(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), IMP_RESULT varchar(3), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF04 IS 'ДФ-04 Подтверждение переводов из Расчетной организации для СПВБ'; +CREATE TABLE S_DF04(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SPECIF_1 varchar(255), IMP_RESULT varchar(3), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF04 IS 'ДФ-04 Подтверждение проведения расчетов'; COMMENT ON COLUMN S_DF04.ID IS 'Идентификатор записи'; @@ -3800,11 +3207,7 @@ COMMENT ON COLUMN S_DF04.DOC_TYPE IS 'Тип документа'; COMMENT ON COLUMN S_DF04.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; -COMMENT ON COLUMN S_DF04.DOCNMPREV IS 'Ссылка на предшестввующий документ'; - -COMMENT ON COLUMN S_DF04.PRIORITY IS 'Приоритет скорости отправления сообщения'; - -COMMENT ON COLUMN S_DF04.SBANKCODE IS 'Код банка-плательщика'; +COMMENT ON COLUMN S_DF04.DOCNMPREV IS 'Ссылка на предшествующий документ'; COMMENT ON COLUMN S_DF04.C_ACC_DEB IS 'Счет по дебету'; @@ -3818,8 +3221,6 @@ COMMENT ON COLUMN S_DF04.SBANKNAM4 IS ''; COMMENT ON COLUMN S_DF04.SBANKNAM5 IS ''; -COMMENT ON COLUMN S_DF04.RBANKCODE IS 'Код банка-получателя'; - COMMENT ON COLUMN S_DF04.C_ACC_CRED IS 'Счет по кредиту'; COMMENT ON COLUMN S_DF04.RBANKNAM1 IS 'Наименование банка-получателя'; @@ -3834,56 +3235,12 @@ COMMENT ON COLUMN S_DF04.RBANKNAM5 IS ''; COMMENT ON COLUMN S_DF04.PAY_DATE IS 'Платеж-дата'; -COMMENT ON COLUMN S_DF04.EXT_DATE IS 'Дата по выписке'; - COMMENT ON COLUMN S_DF04.PAY_VAL IS 'Валюта платежа'; COMMENT ON COLUMN S_DF04.SUM_DEB IS 'Сумма дебет '; -COMMENT ON COLUMN S_DF04.SCLIENTN1 IS 'Наименование клиента-плательщика'; - -COMMENT ON COLUMN S_DF04.SCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF04.SCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF04.SCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF04.SC_CODE IS 'Код клиента-плательщика'; - -COMMENT ON COLUMN S_DF04.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF04.RCLIENTN1 IS 'Наименование клиента-получателя'; - -COMMENT ON COLUMN S_DF04.RCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF04.RCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF04.RCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF04.ACC_KR_1 IS 'Счет кредит'; - -COMMENT ON COLUMN S_DF04.ACC_KR_2 IS ''; - -COMMENT ON COLUMN S_DF04.SP_CODE IS 'Код назначения платежа'; - COMMENT ON COLUMN S_DF04.SPECIF_1 IS 'Назначение платежа'; -COMMENT ON COLUMN S_DF04.SPECIF_2 IS ''; - -COMMENT ON COLUMN S_DF04.SPECIF_3 IS ''; - -COMMENT ON COLUMN S_DF04.SPECIF_4 IS ''; - -COMMENT ON COLUMN S_DF04.SPECIF_5 IS ''; - -COMMENT ON COLUMN S_DF04.SPECIF_6 IS ''; - -COMMENT ON COLUMN S_DF04.SEND_TYPE IS 'Тип отправления плат. поручения'; - -COMMENT ON COLUMN S_DF04.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - -COMMENT ON COLUMN S_DF04.DOC_RESULT IS ''; - COMMENT ON COLUMN S_DF04.IMP_RESULT IS 'Результат приема'; COMMENT ON COLUMN S_DF04.FILE_NAME IS 'Наименование входящего файла'; @@ -3892,10 +3249,10 @@ COMMENT ON COLUMN S_DF04.GENERATION_TIME IS 'Дата и время обрабо COMMENT ON COLUMN S_DF04.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf05 - ДФ-05 Уведомление о завершении расчетов в ПРЦ +-- sDf05 - ДФ-05 Уведомление о завершении расчетов DROP TABLE IF EXISTS S_DF05; CREATE TABLE S_DF05(ID bigint PRIMARY KEY, TP numeric(72,18), DT date, TM time, PR varchar(1), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF05 IS 'ДФ-05 Уведомление о завершении расчетов в ПРЦ'; +COMMENT ON TABLE S_DF05 IS 'ДФ-05 Уведомление о завершении расчетов'; COMMENT ON COLUMN S_DF05.ID IS 'Идентификатор записи'; @@ -3911,487 +3268,807 @@ COMMENT ON COLUMN S_DF05.GENERATION_TIME IS 'Дата и время создан COMMENT ON COLUMN S_DF05.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf08 - ДФ-08 Запрос остатков по всем счетам +-- sDf06 - ДФ-06 Запрос на зачисление/списание денежных средств +DROP TABLE IF EXISTS S_DF06; +CREATE TABLE S_DF06(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), DEAL varchar(10), CLIENT_N varchar(35), INN numeric(72,18), BIC numeric(72,18), SPEC varchar(255), NUMBER numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF06 IS 'ДФ-06 Запрос на зачисление/списание денежных средств'; + +COMMENT ON COLUMN S_DF06.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF06.ACCOUNT IS 'Номер счета участника торгов'; + +COMMENT ON COLUMN S_DF06.SUM IS 'Сумма платежного документа (операции)'; + +COMMENT ON COLUMN S_DF06.MARKET IS 'Код сегмента рынка'; + +COMMENT ON COLUMN S_DF06.TYPE IS 'Код типа платежного документа (операции)'; + +COMMENT ON COLUMN S_DF06.DEAL IS 'Биржевой код участника клиринга'; + +COMMENT ON COLUMN S_DF06.CLIENT_N IS 'Наименование клиента - плательщика'; + +COMMENT ON COLUMN S_DF06.INN IS 'ИНН'; + +COMMENT ON COLUMN S_DF06.BIC IS 'БИК'; + +COMMENT ON COLUMN S_DF06.SPEC IS 'Назначение'; + +COMMENT ON COLUMN S_DF06.NUMBER IS 'Номер платежного документа (операции)'; + +COMMENT ON COLUMN S_DF06.FILE_NAME IS 'Наименование входящего файла'; + +COMMENT ON COLUMN S_DF06.GENERATION_TIME IS 'Дата и время обработки файла'; + +COMMENT ON COLUMN S_DF06.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- sDf07 - ДФ-07 Ответ на запрос по зачислению/списанию денежных средств +DROP TABLE IF EXISTS S_DF07; +CREATE TABLE S_DF07(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), DEAL varchar(10), CLIENT_N varchar(35), INN numeric(72,18), BIC numeric(72,18), SPEC varchar(255), NUMBER numeric(72,18), RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); +COMMENT ON TABLE S_DF07 IS 'ДФ-07 Ответ на запрос по зачислению/списанию денежных средств'; + +COMMENT ON COLUMN S_DF07.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF07.ACCOUNT IS 'Номер счета участника торгов'; + +COMMENT ON COLUMN S_DF07.SUM IS 'Сумма платежного документа (операции)'; + +COMMENT ON COLUMN S_DF07.MARKET IS 'Код сегмента рынка'; + +COMMENT ON COLUMN S_DF07.TYPE IS 'Код типа платежного документа (операции)'; + +COMMENT ON COLUMN S_DF07.DEAL IS 'Биржевой код участника клиринга'; + +COMMENT ON COLUMN S_DF07.CLIENT_N IS 'Наименование клиента - плательщика'; + +COMMENT ON COLUMN S_DF07.INN IS 'ИНН'; + +COMMENT ON COLUMN S_DF07.BIC IS 'БИК'; + +COMMENT ON COLUMN S_DF07.SPEC IS 'Назначение'; + +COMMENT ON COLUMN S_DF07.NUMBER IS 'Номер платежного документа (операции)'; + +COMMENT ON COLUMN S_DF07.RESULT IS 'Код завершения операции'; + +COMMENT ON COLUMN S_DF07.GENERATION_TIME IS 'Дата и время создания записи'; + +COMMENT ON COLUMN S_DF07.GENERATION_ID IS 'Идентификатор взаимодействия'; + +COMMENT ON COLUMN S_DF07.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; + +-- sDf08 - ДФ-08 Загрузка счетов с остатками DROP TABLE IF EXISTS S_DF08; -CREATE TABLE S_DF08(ID bigint PRIMARY KEY, NUMBER varchar(10), DATETIME varchar(13), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF08 IS 'ДФ-08 Запрос остатков по всем счетам'; +CREATE TABLE S_DF08(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, DEPO_CODE varchar, QUANTITY varchar, SECURITY_CODE varchar, CLIENT_NAME varchar, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF08 IS 'ДФ-08 Загрузка счетов с остатками'; COMMENT ON COLUMN S_DF08.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF08.NUMBER IS 'Номер запроса остатков по счетам'; +COMMENT ON COLUMN S_DF08.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF08.DATETIME IS 'Дата и время сообщения'; +COMMENT ON COLUMN S_DF08.DEPO_CODE IS 'Код раздела субсчета/счета депо'; + +COMMENT ON COLUMN S_DF08.QUANTITY IS 'Количество'; + +COMMENT ON COLUMN S_DF08.SECURITY_CODE IS 'Код ценной бумаги'; + +COMMENT ON COLUMN S_DF08.CLIENT_NAME IS 'Наименование клиента'; + +COMMENT ON COLUMN S_DF08.FILE_NAME IS 'Наименование входящего файла'; COMMENT ON COLUMN S_DF08.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF08.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf09 - ДФ-09 Уведомление о поступлении средств на клиринговый счет +-- sDf09 - ДФ-09 Ответ на загрузку счетов с остатками DROP TABLE IF EXISTS S_DF09; -CREATE TABLE S_DF09(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), NUMBER numeric(72,18), INN numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF09 IS 'ДФ-09 Уведомление о поступлении средств на клиринговый счет'; +CREATE TABLE S_DF09(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, DEPO_CODE varchar, QUANTITY varchar, SECURITY_CODE varchar, CLIENT_NAME varchar, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF09 IS 'ДФ-09 Ответ на загрузку счетов с остатками'; COMMENT ON COLUMN S_DF09.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF09.ACCOUNT IS 'Номер счета участника торгов'; +COMMENT ON COLUMN S_DF09.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF09.SUM IS 'Сумма платежного документа (операции)'; +COMMENT ON COLUMN S_DF09.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; -COMMENT ON COLUMN S_DF09.MARKET IS 'Код сегмента рынка'; +COMMENT ON COLUMN S_DF09.DEPO_CODE IS 'Код раздела субсчета/счета депо'; -COMMENT ON COLUMN S_DF09.TYPE IS 'Код типа платежного документа (операции)'; +COMMENT ON COLUMN S_DF09.QUANTITY IS 'Количество'; -COMMENT ON COLUMN S_DF09.NUMBER IS 'Номер платежного документа (операции)'; +COMMENT ON COLUMN S_DF09.SECURITY_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN S_DF09.INN IS 'ИНН'; +COMMENT ON COLUMN S_DF09.CLIENT_NAME IS 'Наименование клиента'; -COMMENT ON COLUMN S_DF09.FILE_NAME IS 'Наименование входящего файла'; +COMMENT ON COLUMN S_DF09.RESULT IS 'Результат операции'; -COMMENT ON COLUMN S_DF09.GENERATION_TIME IS 'Дата и время обработки файла'; +COMMENT ON COLUMN S_DF09.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF09.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf10 - ДФ-10 Подтверждение о загрузке по поступлению на клиринговый счет +-- sDf10 - ДФ-10 Запрос на зачисление/списание ценных бумаг DROP TABLE IF EXISTS S_DF10; -CREATE TABLE S_DF10(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), NUMBER numeric(72,18), INN numeric(72,18), RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF09_ID bigint); -COMMENT ON TABLE S_DF10 IS 'ДФ-10 Подтверждение о загрузке по поступлению на клиринговый счет'; +CREATE TABLE S_DF10(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, DEPO_CODE varchar, QUANTITY varchar, SECURITY_CODE varchar, CLIENT_NAME varchar, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF10 IS 'ДФ-10 Запрос на зачисление/списание ценных бумаг'; COMMENT ON COLUMN S_DF10.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF10.ACCOUNT IS 'Номер счета участника торгов'; +COMMENT ON COLUMN S_DF10.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF10.SUM IS 'Сумма платежного документа (операции)'; +COMMENT ON COLUMN S_DF10.DEPO_CODE IS 'Код раздела субсчета/счета депо'; -COMMENT ON COLUMN S_DF10.MARKET IS 'Код сегмента рынка'; +COMMENT ON COLUMN S_DF10.QUANTITY IS 'Количество'; -COMMENT ON COLUMN S_DF10.TYPE IS 'Код типа платежного документа (операции)'; +COMMENT ON COLUMN S_DF10.SECURITY_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN S_DF10.NUMBER IS 'Номер платежного документа (операции)'; +COMMENT ON COLUMN S_DF10.CLIENT_NAME IS 'Наименование клиента'; -COMMENT ON COLUMN S_DF10.INN IS 'ИНН'; - -COMMENT ON COLUMN S_DF10.RESULT IS 'Результат приема'; +COMMENT ON COLUMN S_DF10.FILE_NAME IS 'Наименование входящего файла'; COMMENT ON COLUMN S_DF10.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF10.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF10.IN_S_DF09_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; - --- sDf11 - ДФ-11 Из КС в ПРЦ Платежное распоряжение на перевод средств с ТБС Участника на КС Инициатора +-- sDf11 - ДФ-11 Ответ на Запрос на зачисление/списание ценных бумаг DROP TABLE IF EXISTS S_DF11; -CREATE TABLE S_DF11(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), GENERATION_TIME timestamp, GENERATION_ID bigint, PAYMENT_INSTRUCTION_ID bigint); -COMMENT ON TABLE S_DF11 IS 'ДФ-11 Из КС в ПРЦ Платежное распоряжение на перевод средств с ТБС Участника на КС Инициатора'; +CREATE TABLE S_DF11(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, DEPO_CODE varchar, QUANTITY varchar, SECURITY_CODE varchar, CLIENT_NAME varchar, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF11 IS 'ДФ-11 Ответ на Запрос на зачисление/списание ценных бумаг'; COMMENT ON COLUMN S_DF11.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF11.SEG_TYPE IS 'Код инициатора в КС'; +COMMENT ON COLUMN S_DF11.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF11.DOC_TYPE IS 'Тип документа'; +COMMENT ON COLUMN S_DF11.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; -COMMENT ON COLUMN S_DF11.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; +COMMENT ON COLUMN S_DF11.DEPO_CODE IS 'Код раздела субсчета/счета депо'; -COMMENT ON COLUMN S_DF11.DOCNMPREV IS 'Ссылка на предшестввующий документ'; +COMMENT ON COLUMN S_DF11.QUANTITY IS 'Количество'; -COMMENT ON COLUMN S_DF11.PRIORITY IS 'Приоритет скорости отправления сообщения'; +COMMENT ON COLUMN S_DF11.SECURITY_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN S_DF11.SBANKCODE IS 'Код банка-плательщика'; +COMMENT ON COLUMN S_DF11.CLIENT_NAME IS 'Наименование клиента'; -COMMENT ON COLUMN S_DF11.C_ACC_DEB IS 'Счет по дебету'; - -COMMENT ON COLUMN S_DF11.SBANKNAM1 IS 'Наименование банка-плательщика'; - -COMMENT ON COLUMN S_DF11.SBANKNAM2 IS ''; - -COMMENT ON COLUMN S_DF11.SBANKNAM3 IS ''; - -COMMENT ON COLUMN S_DF11.SBANKNAM4 IS ''; - -COMMENT ON COLUMN S_DF11.SBANKNAM5 IS ''; - -COMMENT ON COLUMN S_DF11.RBANKCODE IS 'Код банка-получателя'; - -COMMENT ON COLUMN S_DF11.C_ACC_CRED IS 'Счет по кредиту'; - -COMMENT ON COLUMN S_DF11.RBANKNAM1 IS 'Наименование банка-получателя'; - -COMMENT ON COLUMN S_DF11.RBANKNAM2 IS ''; - -COMMENT ON COLUMN S_DF11.RBANKNAM3 IS ''; - -COMMENT ON COLUMN S_DF11.RBANKNAM4 IS ''; - -COMMENT ON COLUMN S_DF11.RBANKNAM5 IS ''; - -COMMENT ON COLUMN S_DF11.PAY_DATE IS 'Платеж-дата'; - -COMMENT ON COLUMN S_DF11.EXT_DATE IS 'Дата по выписке'; - -COMMENT ON COLUMN S_DF11.PAY_VAL IS 'Валюта платежа'; - -COMMENT ON COLUMN S_DF11.SUM_DEB IS 'Сумма дебет '; - -COMMENT ON COLUMN S_DF11.SCLIENTN1 IS 'Наименование клиента-плательщика'; - -COMMENT ON COLUMN S_DF11.SCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF11.SCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF11.SCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF11.SC_CODE IS 'Код клиента-плательщика'; - -COMMENT ON COLUMN S_DF11.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF11.RCLIENTN1 IS 'Наименование клиента-получателя'; - -COMMENT ON COLUMN S_DF11.RCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF11.RCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF11.RCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF11.ACC_KR_1 IS 'Счет кредит'; - -COMMENT ON COLUMN S_DF11.ACC_KR_2 IS ''; - -COMMENT ON COLUMN S_DF11.SP_CODE IS 'Код назначения платежа'; - -COMMENT ON COLUMN S_DF11.SPECIF_1 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF11.SPECIF_2 IS ''; - -COMMENT ON COLUMN S_DF11.SPECIF_3 IS ''; - -COMMENT ON COLUMN S_DF11.SPECIF_4 IS ''; - -COMMENT ON COLUMN S_DF11.SPECIF_5 IS ''; - -COMMENT ON COLUMN S_DF11.SPECIF_6 IS ''; - -COMMENT ON COLUMN S_DF11.SEND_TYPE IS 'Тип отправления плат. поручения'; - -COMMENT ON COLUMN S_DF11.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - -COMMENT ON COLUMN S_DF11.DOC_RESULT IS ''; +COMMENT ON COLUMN S_DF11.RESULT IS 'Результат операции'; COMMENT ON COLUMN S_DF11.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF11.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF11.PAYMENT_INSTRUCTION_ID IS 'Идентификатор соответствующей записи из таблицы-источника (linked to paymentInstruction)'; - --- sDf12 - ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК +-- sDf12 - ДФ-12 Распоряжение на проведение операций по итогам клиринга DROP TABLE IF EXISTS S_DF12; -CREATE TABLE S_DF12(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF12 IS 'ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК'; +CREATE TABLE S_DF12(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, QUANTITY varchar, SECURITY_CODE varchar, DEPO_CODE_SENDER varchar, DEPO_CODE_ADRESSEE varchar, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF12 IS 'ДФ-12 Распоряжение на проведение операций по итогам клиринга'; COMMENT ON COLUMN S_DF12.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF12.ACCOUNT IS 'Код счета участника клиринга'; +COMMENT ON COLUMN S_DF12.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF12.DEAL IS 'Биржевой код участника клиринга'; +COMMENT ON COLUMN S_DF12.QUANTITY IS 'Количество ценных бумаг'; -COMMENT ON COLUMN S_DF12.STATUS IS 'Статус счета'; +COMMENT ON COLUMN S_DF12.SECURITY_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN S_DF12.FILE_NAME IS 'Наименование входящего файла'; +COMMENT ON COLUMN S_DF12.DEPO_CODE_SENDER IS 'Депо счет списания'; -COMMENT ON COLUMN S_DF12.GENERATION_TIME IS 'Дата и время обработки файла'; +COMMENT ON COLUMN S_DF12.DEPO_CODE_ADRESSEE IS 'Депо счет зачисления'; + +COMMENT ON COLUMN S_DF12.RESULT IS 'Результат операции'; + +COMMENT ON COLUMN S_DF12.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF12.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf13 - ДФ-13 Вывод свободных средств для инициаторов категории В с клирингового счета 30414/7 - платежное поручение АО СПВБ на вывод средств из РО +-- sDf13 - ДФ-13 Уведомление о статусе исполнения или мотивированный отказ DROP TABLE IF EXISTS S_DF13; -CREATE TABLE S_DF13(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), OP_TYPE varchar(2), OP_ORDER varchar(1), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF13 IS 'ДФ-13 Вывод свободных средств для инициаторов категории В с клирингового счета 30414/7 - платежное поручение АО СПВБ на вывод средств из РО'; +CREATE TABLE S_DF13(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, RESULT numeric(72,18), TEXT_ERROR varchar, FILE_NAME varchar, GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF13 IS 'ДФ-13 Уведомление о статусе исполнения или мотивированный отказ'; COMMENT ON COLUMN S_DF13.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF13.SEG_TYPE IS 'Код инициатора в КС'; +COMMENT ON COLUMN S_DF13.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF13.DOC_TYPE IS 'Тип документа'; +COMMENT ON COLUMN S_DF13.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; -COMMENT ON COLUMN S_DF13.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; +COMMENT ON COLUMN S_DF13.RESULT IS 'Результат операции'; -COMMENT ON COLUMN S_DF13.DOCNMPREV IS 'Ссылка на предшестввующий документ'; +COMMENT ON COLUMN S_DF13.TEXT_ERROR IS 'Описание ошибки'; -COMMENT ON COLUMN S_DF13.PRIORITY IS 'Приоритет скорости отправления сообщения'; - -COMMENT ON COLUMN S_DF13.SBANKCODE IS 'Код банка-плательщика'; - -COMMENT ON COLUMN S_DF13.C_ACC_DEB IS 'Кор счет банка - плательщика в системе - акт.'; - -COMMENT ON COLUMN S_DF13.SBANKNAM1 IS 'Наименование банка-плательщика'; - -COMMENT ON COLUMN S_DF13.SBANKNAM2 IS ''; - -COMMENT ON COLUMN S_DF13.SBANKNAM3 IS ''; - -COMMENT ON COLUMN S_DF13.SBANKNAM4 IS ''; - -COMMENT ON COLUMN S_DF13.SBANKNAM5 IS ''; - -COMMENT ON COLUMN S_DF13.RBANKCODE IS 'Код банка-получателя'; - -COMMENT ON COLUMN S_DF13.C_ACC_CRED IS 'Кор счет банка - получателя в системе - акт. '; - -COMMENT ON COLUMN S_DF13.RBANKNAM1 IS 'Наименование банка-получателя'; - -COMMENT ON COLUMN S_DF13.OP_TYPE IS 'Вид операции'; - -COMMENT ON COLUMN S_DF13.OP_ORDER IS 'Очередность платежа'; - -COMMENT ON COLUMN S_DF13.RBANKNAM4 IS ''; - -COMMENT ON COLUMN S_DF13.RBANKNAM5 IS ''; - -COMMENT ON COLUMN S_DF13.PAY_DATE IS 'Платеж-дата'; - -COMMENT ON COLUMN S_DF13.EXT_DATE IS 'Дата по выписке'; - -COMMENT ON COLUMN S_DF13.PAY_VAL IS 'Валюта платежа'; - -COMMENT ON COLUMN S_DF13.SUM_DEB IS 'Сумма дебет '; - -COMMENT ON COLUMN S_DF13.SCLIENTN1 IS 'Наименование клиента-плательщика'; - -COMMENT ON COLUMN S_DF13.INN_DEB IS 'ИНН клиента-плательщика'; - -COMMENT ON COLUMN S_DF13.KPP_DEB IS 'КПП клиента-плательщика'; - -COMMENT ON COLUMN S_DF13.SCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF13.SC_CODE IS 'Код клиента-плательщика'; - -COMMENT ON COLUMN S_DF13.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF13.RCLIENTN1 IS 'Наименование клиента-получателя'; - -COMMENT ON COLUMN S_DF13.INN_CRED IS 'ИНН клиента-получателя'; - -COMMENT ON COLUMN S_DF13.KPP_CRED IS 'КПП клиента-получателя'; - -COMMENT ON COLUMN S_DF13.RCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF13.ACC_KR_1 IS 'Счет получателя'; - -COMMENT ON COLUMN S_DF13.ACC_KR_2 IS ''; - -COMMENT ON COLUMN S_DF13.SP_CODE IS 'Код назначения платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_1 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_2 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_3 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_4 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_5 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_6 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SEND_TYPE IS 'Вид платежа'; - -COMMENT ON COLUMN S_DF13.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - -COMMENT ON COLUMN S_DF13.DOC_RESULT IS ''; +COMMENT ON COLUMN S_DF13.FILE_NAME IS 'Наименование входящего файла'; COMMENT ON COLUMN S_DF13.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF13.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf16 - ДФ-16 Формат запроса по возврату депозита или дозачисление/списание денежных средств -DROP TABLE IF EXISTS S_DF16; -CREATE TABLE S_DF16(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), INN numeric(72,18), BIC numeric(72,18), SPEC varchar(255), NUMBER numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF16 IS 'ДФ-16 Формат запроса по возврату депозита или дозачисление/списание денежных средств'; +-- sDf14 - ДФ-14 Уведомление о завершении расчетов +DROP TABLE IF EXISTS S_DF14; +CREATE TABLE S_DF14(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF14 IS 'ДФ-14 Уведомление о завершении расчетов'; -COMMENT ON COLUMN S_DF16.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF14.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF16.ACCOUNT IS 'Номер счета участника торгов'; +COMMENT ON COLUMN S_DF14.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF16.SUM IS 'Сумма платежного документа (операции)'; +COMMENT ON COLUMN S_DF14.RESULT IS 'Результат операции'; -COMMENT ON COLUMN S_DF16.MARKET IS 'Код сегмента рынка'; +COMMENT ON COLUMN S_DF14.GENERATION_TIME IS 'Дата и время создания записи'; -COMMENT ON COLUMN S_DF16.TYPE IS 'Код типа платежного документа (операции)'; +COMMENT ON COLUMN S_DF14.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF16.INN IS 'ИНН'; +-- sDf20 - ДФ-20 Отчет об исполнении поручения на зачисление/списание ценных бумаг +DROP TABLE IF EXISTS S_DF20; +CREATE TABLE S_DF20(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, SECURITY varchar, OPEN_BALANCE varchar, DEPO_CODE_CL varchar, QUANTITY varchar, OPERATION_CODE varchar, DEPO_CODE_CORR varchar, OPERATION_DATE varchar, CLOSE_BALANCE varchar, FILE_NAME varchar, GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF20 IS 'ДФ-20 Отчет об исполнении поручения на зачисление/списание ценных бумаг'; -COMMENT ON COLUMN S_DF16.BIC IS 'БИК'; +COMMENT ON COLUMN S_DF20.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF16.SPEC IS 'Назначение'; +COMMENT ON COLUMN S_DF20.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF16.NUMBER IS 'Номер платежного документа (операции)'; +COMMENT ON COLUMN S_DF20.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; -COMMENT ON COLUMN S_DF16.FILE_NAME IS 'Наименование входящего файла'; +COMMENT ON COLUMN S_DF20.SECURITY IS 'Ценная бумага'; -COMMENT ON COLUMN S_DF16.GENERATION_TIME IS 'Дата и время обработки файла'; +COMMENT ON COLUMN S_DF20.OPEN_BALANCE IS 'Входящий остаток'; -COMMENT ON COLUMN S_DF16.GENERATION_ID IS 'Идентификатор взаимодействия'; +COMMENT ON COLUMN S_DF20.DEPO_CODE_CL IS 'Код раздела тех.счета/счета депо/ и наименование клиента'; --- sDf17 - ДФ-17 Формат ответа на запрос по возврату депозита или дозачисление/списание денежных средств -DROP TABLE IF EXISTS S_DF17; -CREATE TABLE S_DF17(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), INN numeric(72,18), BIC numeric(72,18), SPEC varchar(255), NUMBER numeric(72,18), RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF16_ID bigint); -COMMENT ON TABLE S_DF17 IS 'ДФ-17 Формат ответа на запрос по возврату депозита или дозачисление/списание денежных средств'; +COMMENT ON COLUMN S_DF20.QUANTITY IS 'Количество ценных бумаг'; -COMMENT ON COLUMN S_DF17.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF20.OPERATION_CODE IS 'Код операции'; -COMMENT ON COLUMN S_DF17.ACCOUNT IS 'Номер счета участника торгов'; +COMMENT ON COLUMN S_DF20.DEPO_CODE_CORR IS 'Код раздела субсчета/счета депо корреспондента'; -COMMENT ON COLUMN S_DF17.SUM IS 'Сумма платежного документа (операции)'; +COMMENT ON COLUMN S_DF20.OPERATION_DATE IS 'Дата операции'; -COMMENT ON COLUMN S_DF17.MARKET IS 'Код сегмента рынка'; +COMMENT ON COLUMN S_DF20.CLOSE_BALANCE IS 'Исходящий остаток'; -COMMENT ON COLUMN S_DF17.TYPE IS 'Код типа платежного документа (операции)'; +COMMENT ON COLUMN S_DF20.FILE_NAME IS 'Наименование входящего файла'; -COMMENT ON COLUMN S_DF17.INN IS 'ИНН'; +COMMENT ON COLUMN S_DF20.GENERATION_TIME IS 'Дата и время создания записи'; -COMMENT ON COLUMN S_DF17.BIC IS 'БИК'; +COMMENT ON COLUMN S_DF20.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF17.SPEC IS 'Назначение'; +-- sDf51 - ДФ-51 Запрос остатков по всем счетам +DROP TABLE IF EXISTS S_DF51; +CREATE TABLE S_DF51(ID bigint PRIMARY KEY, NUMBER varchar(10), DATETIME varchar(13), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF51 IS 'ДФ-51 Запрос остатков по всем счетам'; -COMMENT ON COLUMN S_DF17.NUMBER IS 'Номер платежного документа (операции)'; +COMMENT ON COLUMN S_DF51.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF17.RESULT IS 'Код завершения операции'; +COMMENT ON COLUMN S_DF51.NUMBER IS 'Номер запроса остатков по счетам'; -COMMENT ON COLUMN S_DF17.GENERATION_TIME IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF51.DATETIME IS 'Дата и время сообщения'; -COMMENT ON COLUMN S_DF17.GENERATION_ID IS 'Идентификатор взаимодействия'; +COMMENT ON COLUMN S_DF51.GENERATION_TIME IS 'Дата и время создания записи'; -COMMENT ON COLUMN S_DF17.IN_S_DF16_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; +COMMENT ON COLUMN S_DF51.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf18 - ДФ-18 Из КС в ПРЦ Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие) -DROP TABLE IF EXISTS S_DF18; -CREATE TABLE S_DF18(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF12_ID bigint); -COMMENT ON TABLE S_DF18 IS 'ДФ-18 Из КС в ПРЦ Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие)'; +-- sDf52 - ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие) +DROP TABLE IF EXISTS S_DF52; +CREATE TABLE S_DF52(ID bigint PRIMARY KEY, ACCOUNT varchar(25), ACC_NAME varchar(30), DEAL varchar(4), DATE varchar, STATUS bigint, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF52 IS 'ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; -COMMENT ON COLUMN S_DF18.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF52.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF18.ACCOUNT IS 'Код счета участника клиринга'; +COMMENT ON COLUMN S_DF52.ACCOUNT IS 'Код счета участника клиринга'; -COMMENT ON COLUMN S_DF18.DEAL IS 'Биржевой код участника клиринга'; +COMMENT ON COLUMN S_DF52.ACC_NAME IS 'Наименование участника клиринга'; -COMMENT ON COLUMN S_DF18.STATUS IS 'Статус счета'; +COMMENT ON COLUMN S_DF52.DEAL IS 'Биржевой код участника клиринга'; -COMMENT ON COLUMN S_DF18.RESULT IS 'Код завершения операции'; +COMMENT ON COLUMN S_DF52.DATE IS 'Дата изменения состояния счета'; -COMMENT ON COLUMN S_DF18.GENERATION_TIME IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF52.STATUS IS 'Статус счета'; -COMMENT ON COLUMN S_DF18.GENERATION_ID IS 'Идентификатор взаимодействия'; +COMMENT ON COLUMN S_DF52.FILE_NAME IS 'Наименование входящего файла'; -COMMENT ON COLUMN S_DF18.IN_S_DF12_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; +COMMENT ON COLUMN S_DF52.GENERATION_TIME IS 'Дата и время обработки файла'; --- notification - Сообщения -DROP TABLE IF EXISTS NOTIFICATION; -CREATE TABLE NOTIFICATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID timestamp, NOTIFICATION_STATUS varchar(4)); -COMMENT ON TABLE NOTIFICATION IS 'Сообщения'; +COMMENT ON COLUMN S_DF52.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN NOTIFICATION.ID IS 'Идентификатор записи'; +-- sDf53 - ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) +DROP TABLE IF EXISTS S_DF53; +CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); +COMMENT ON TABLE S_DF53 IS 'ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; -COMMENT ON COLUMN NOTIFICATION.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF53.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN NOTIFICATION.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN S_DF53.ACCOUNT IS 'Код счета участника клиринга'; -COMMENT ON COLUMN NOTIFICATION.CLEARING_DATE IS 'Дата'; +COMMENT ON COLUMN S_DF53.DEAL IS 'Биржевой код участника клиринга'; -COMMENT ON COLUMN NOTIFICATION.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; +COMMENT ON COLUMN S_DF53.STATUS IS 'Статус счета'; -COMMENT ON COLUMN NOTIFICATION.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; +COMMENT ON COLUMN S_DF53.RESULT IS 'Код завершения операции'; -COMMENT ON COLUMN NOTIFICATION.OBJECT_TYPE IS 'Тип объекта (linked to objectType)'; +COMMENT ON COLUMN S_DF53.GENERATION_TIME IS 'Дата и время создания записи'; -COMMENT ON COLUMN NOTIFICATION.OBJECT_ID IS 'Идентификатор объекта'; +COMMENT ON COLUMN S_DF53.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN NOTIFICATION.NOTIFICATION_STATUS IS 'Статус сообщения (linked to notificationStatus)'; +COMMENT ON COLUMN S_DF53.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; +-- sDf54 - ДФ-54 Вывод свободных средств для инициаторов категории В с клирингового счета 30414 +DROP TABLE IF EXISTS S_DF54; +CREATE TABLE S_DF54(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), OP_TYPE varchar(2), OP_ORDER varchar(1), PAY_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), ACC_KR_1 varchar(35), SPECIF_1 varchar(255), SEND_TYPE varchar(10), DOC_RESULT varchar(2), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF54 IS 'ДФ-54 Вывод свободных средств для инициаторов категории В с клирингового счета 30414'; --- History log of notification - Сообщения -DROP TABLE IF EXISTS NOTIFICATION_HISTORY; -CREATE TABLE NOTIFICATION_HISTORY(NOTIFICATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID timestamp, NOTIFICATION_STATUS varchar(4)); -COMMENT ON TABLE NOTIFICATION_HISTORY IS 'История изменений таблицы notification'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_ID IS 'Идентификатор записи в таблице NOTIFICATION'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TYPE IS 'Тип изменения'; +COMMENT ON COLUMN S_DF54.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF54.SEG_TYPE IS 'Код инициатора в КС'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF54.DOC_TYPE IS 'Тип документа'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN S_DF54.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.CLEARING_DATE IS 'Дата'; +COMMENT ON COLUMN S_DF54.DOCNMPREV IS 'Ссылка на предшествующий документ'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; +COMMENT ON COLUMN S_DF54.SBANKCODE IS 'Код банка-плательщика'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; +COMMENT ON COLUMN S_DF54.C_ACC_DEB IS 'Кор счет банка-плательщика в системе - акт.'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_TYPE IS 'Тип объекта (linked to objectType)'; +COMMENT ON COLUMN S_DF54.SBANKNAM1 IS 'Наименование банка-плательщика'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_ID IS 'Идентификатор объекта'; +COMMENT ON COLUMN S_DF54.SBANKNAM2 IS ''; -COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_STATUS IS 'Статус сообщения (linked to notificationStatus)'; +COMMENT ON COLUMN S_DF54.SBANKNAM3 IS ''; --- verificationResult - Результаты сверки -DROP TABLE IF EXISTS VERIFICATION_RESULT; -CREATE TABLE VERIFICATION_RESULT(CLEARING_CODE varchar(255), ACCOUNT_ID bigint, IN_SUM numeric(72,2), OUT_INT_SUM numeric(72,2), OUT_EXT_SUM numeric(72,2), DIFF_SUM numeric(72,2), GENERATION_ID bigint, GENERATION_STATUS varchar(4), RESULT_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE VERIFICATION_RESULT IS 'Результаты сверки'; +COMMENT ON COLUMN S_DF54.SBANKNAM4 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.CLEARING_CODE IS 'Код участника клиринга'; +COMMENT ON COLUMN S_DF54.SBANKNAM5 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.ACCOUNT_ID IS 'Счет УК, по которому проводится сверка'; +COMMENT ON COLUMN S_DF54.RBANKCODE IS 'Код банка-получателя'; -COMMENT ON COLUMN VERIFICATION_RESULT.IN_SUM IS 'Входящая сумма остатков'; +COMMENT ON COLUMN S_DF54.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт. '; -COMMENT ON COLUMN VERIFICATION_RESULT.OUT_INT_SUM IS 'Исходящая сумма остатков, полученная в КС'; +COMMENT ON COLUMN S_DF54.RBANKNAM1 IS 'Наименование банка-получателя'; -COMMENT ON COLUMN VERIFICATION_RESULT.OUT_EXT_SUM IS 'Исходящая сумма остатков из отчета ПРЦ'; +COMMENT ON COLUMN S_DF54.RBANKNAM2 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.DIFF_SUM IS 'Сумма расхождений'; +COMMENT ON COLUMN S_DF54.RBANKNAM3 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_ID IS 'Идентификатор взаимодействия'; +COMMENT ON COLUMN S_DF54.RBANKNAM4 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_STATUS IS 'Общий статус сверки (linked to resultStatus)'; +COMMENT ON COLUMN S_DF54.RBANKNAM5 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.RESULT_STATUS IS 'Статус сверки (linked to resultStatus)'; +COMMENT ON COLUMN S_DF54.OP_TYPE IS 'Вид операции'; -COMMENT ON COLUMN VERIFICATION_RESULT.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF54.OP_ORDER IS 'Очередность платежа'; -COMMENT ON COLUMN VERIFICATION_RESULT.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF54.PAY_DATE IS 'Платеж-дата'; -COMMENT ON COLUMN VERIFICATION_RESULT.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN S_DF54.PAY_VAL IS 'Валюта платежа'; --- moneyMarketSession - Сессия денежного рынка -DROP TABLE IF EXISTS MONEY_MARKET_SESSION; -CREATE TABLE MONEY_MARKET_SESSION(ID bigint PRIMARY KEY, COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint); -COMMENT ON TABLE MONEY_MARKET_SESSION IS 'Сессия денежного рынка'; +COMMENT ON COLUMN S_DF54.SUM_DEB IS 'Сумма дебет'; -COMMENT ON COLUMN MONEY_MARKET_SESSION.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF54.SCLIENTN1 IS 'Наименование клиента-плательщика'; -COMMENT ON COLUMN MONEY_MARKET_SESSION.COMPANY_ID IS 'Наименование инициатора торгов (linked to company)'; +COMMENT ON COLUMN S_DF54.SCLIENTN2 IS ''; -COMMENT ON COLUMN MONEY_MARKET_SESSION.SECURITY_ID IS 'Наименование инструмента (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN S_DF54.SCLIENTN3 IS ''; -COMMENT ON COLUMN MONEY_MARKET_SESSION.USER_ID IS 'Наименование пользователя (linked to userCls)'; +COMMENT ON COLUMN S_DF54.SCLIENTN4 IS ''; +COMMENT ON COLUMN S_DF54.INN_DEB IS 'ИНН клиента-плательщика'; --- History log of moneyMarketSession - Сессия денежного рынка -DROP TABLE IF EXISTS MONEY_MARKET_SESSION_HISTORY; -CREATE TABLE MONEY_MARKET_SESSION_HISTORY(MONEY_MARKET_SESSION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint); -COMMENT ON TABLE MONEY_MARKET_SESSION_HISTORY IS 'История изменений таблицы moneyMarketSession'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.MONEY_MARKET_SESSION_ID IS 'Идентификатор записи в таблице MONEY_MARKET_SESSION'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.EVENT_TYPE IS 'Тип изменения'; +COMMENT ON COLUMN S_DF54.KPP_DEB IS 'КПП клиента-плательщика'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF54.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.COMPANY_ID IS 'Наименование инициатора торгов (linked to company)'; +COMMENT ON COLUMN S_DF54.RCLIENTN1 IS 'Наименование клиента-получателя'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.SECURITY_ID IS 'Наименование инструмента (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN S_DF54.RCLIENTN2 IS ''; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.USER_ID IS 'Наименование пользователя (linked to userCls)'; +COMMENT ON COLUMN S_DF54.RCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF54.RCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF54.INN_CRED IS 'ИНН клиента-получателя'; + +COMMENT ON COLUMN S_DF54.KPP_CRED IS 'КПП клиента-получателя'; + +COMMENT ON COLUMN S_DF54.ACC_KR_1 IS 'Счет получателя'; + +COMMENT ON COLUMN S_DF54.SPECIF_1 IS 'Назначение платежа'; + +COMMENT ON COLUMN S_DF54.SEND_TYPE IS 'Вид платежа'; + +COMMENT ON COLUMN S_DF54.DOC_RESULT IS ''; + +COMMENT ON COLUMN S_DF54.GENERATION_TIME IS 'Дата и время создания записи'; + +COMMENT ON COLUMN S_DF54.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- sDf55 - ДФ-55 Квитанция об обработке ДФ-54 +DROP TABLE IF EXISTS S_DF55; +CREATE TABLE S_DF55(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), OP_TYPE varchar(2), OP_ORDER varchar(1), PAY_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), ACC_KR_1 varchar(35), SPECIF_1 varchar(255), SEND_TYPE varchar(10), DOC_RESULT varchar(2), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF55 IS 'ДФ-55 Квитанция об обработке ДФ-54'; + +COMMENT ON COLUMN S_DF55.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF55.SEG_TYPE IS 'Код инициатора в КС'; + +COMMENT ON COLUMN S_DF55.DOC_TYPE IS 'Тип документа'; + +COMMENT ON COLUMN S_DF55.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; + +COMMENT ON COLUMN S_DF55.DOCNMPREV IS 'Ссылка на предшествующий документ'; + +COMMENT ON COLUMN S_DF55.SBANKCODE IS 'Код банка-плательщика'; + +COMMENT ON COLUMN S_DF55.C_ACC_DEB IS 'Кор счет банка-плательщика в системе - акт.'; + +COMMENT ON COLUMN S_DF55.SBANKNAM1 IS 'Наименование банка-плательщика'; + +COMMENT ON COLUMN S_DF55.SBANKNAM2 IS ''; + +COMMENT ON COLUMN S_DF55.SBANKNAM3 IS ''; + +COMMENT ON COLUMN S_DF55.SBANKNAM4 IS ''; + +COMMENT ON COLUMN S_DF55.SBANKNAM5 IS ''; + +COMMENT ON COLUMN S_DF55.RBANKCODE IS 'Код банка-получателя'; + +COMMENT ON COLUMN S_DF55.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт. '; + +COMMENT ON COLUMN S_DF55.RBANKNAM1 IS 'Наименование банка-получателя'; + +COMMENT ON COLUMN S_DF55.RBANKNAM2 IS ''; + +COMMENT ON COLUMN S_DF55.RBANKNAM3 IS ''; + +COMMENT ON COLUMN S_DF55.RBANKNAM4 IS ''; + +COMMENT ON COLUMN S_DF55.RBANKNAM5 IS ''; + +COMMENT ON COLUMN S_DF55.OP_TYPE IS 'Вид операции'; + +COMMENT ON COLUMN S_DF55.OP_ORDER IS 'Очередность платежа'; + +COMMENT ON COLUMN S_DF55.PAY_DATE IS 'Платеж-дата'; + +COMMENT ON COLUMN S_DF55.PAY_VAL IS 'Валюта платежа'; + +COMMENT ON COLUMN S_DF55.SUM_DEB IS 'Сумма дебет'; + +COMMENT ON COLUMN S_DF55.SCLIENTN1 IS 'Наименование клиента-плательщика'; + +COMMENT ON COLUMN S_DF55.SCLIENTN2 IS ''; + +COMMENT ON COLUMN S_DF55.SCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF55.SCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF55.INN_DEB IS 'ИНН клиента-плательщика'; + +COMMENT ON COLUMN S_DF55.KPP_DEB IS 'КПП клиента-плательщика'; + +COMMENT ON COLUMN S_DF55.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; + +COMMENT ON COLUMN S_DF55.RCLIENTN1 IS 'Наименование клиента-получателя'; + +COMMENT ON COLUMN S_DF55.RCLIENTN2 IS ''; + +COMMENT ON COLUMN S_DF55.RCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF55.RCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF55.INN_CRED IS 'ИНН клиента-получателя'; + +COMMENT ON COLUMN S_DF55.KPP_CRED IS 'КПП клиента-получателя'; + +COMMENT ON COLUMN S_DF55.ACC_KR_1 IS 'Счет получателя'; + +COMMENT ON COLUMN S_DF55.SPECIF_1 IS 'Назначение платежа'; + +COMMENT ON COLUMN S_DF55.SEND_TYPE IS 'Вид платежа'; + +COMMENT ON COLUMN S_DF55.DOC_RESULT IS ''; + +COMMENT ON COLUMN S_DF55.FILE_NAME IS 'Наименование входящего файла'; + +COMMENT ON COLUMN S_DF55.GENERATION_TIME IS 'Дата и время обработки файла'; + +COMMENT ON COLUMN S_DF55.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- sDf56 - ДФ-56 Запрос транзакций за период +DROP TABLE IF EXISTS S_DF56; +CREATE TABLE S_DF56(ID bigint PRIMARY KEY, NUMBER varchar(10), START_DATETIME varchar(13), END_DATETIME varchar(13), ACCOUNT varchar(25), DEAL varchar(4), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF56 IS 'ДФ-56 Запрос транзакций за период'; + +COMMENT ON COLUMN S_DF56.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF56.NUMBER IS 'Номер запроса'; + +COMMENT ON COLUMN S_DF56.START_DATETIME IS 'Дата и время для фильтрации транзакций с большим или равным указанным параметром'; + +COMMENT ON COLUMN S_DF56.END_DATETIME IS 'Дата и время для фильтрации транзакций с меньшим указанным параметром'; + +COMMENT ON COLUMN S_DF56.ACCOUNT IS 'Код счета участника клиринга для фильтрации транзакций по значению'; + +COMMENT ON COLUMN S_DF56.DEAL IS 'Биржевой код участника клиринга для фильтрации транзакций по значению'; + +COMMENT ON COLUMN S_DF56.GENERATION_TIME IS 'Дата и время создания записи'; + +COMMENT ON COLUMN S_DF56.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- sDf57 - ДФ-57 Список транзакций о списании/зачислении за период по всем счетам (ТБС и КС) +DROP TABLE IF EXISTS S_DF57; +CREATE TABLE S_DF57(ID bigint PRIMARY KEY, DBF_ID bigint, DEAL_DEB varchar(4), DEAL_CRED varchar, SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(35), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), OP_TYPE varchar(2), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), ACC_KR varchar(35), SPECIF varchar(255), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF57 IS 'ДФ-57 Список транзакций о списании/зачислении за период по всем счетам (ТБС и КС)'; + +COMMENT ON COLUMN S_DF57.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF57.DBF_ID IS 'Уникальный идентификатор платежного документа (транзакции)'; + +COMMENT ON COLUMN S_DF57.DEAL_DEB IS 'Биржевой код участника клиринга (плательщик)'; + +COMMENT ON COLUMN S_DF57.DEAL_CRED IS 'Биржевой код участника клиринга (получатель)'; + +COMMENT ON COLUMN S_DF57.SBANKCODE IS 'Код банка-плательщика'; + +COMMENT ON COLUMN S_DF57.C_ACC_DEB IS 'Кор счет банка-плательщика в системе - акт.'; + +COMMENT ON COLUMN S_DF57.SBANKNAM1 IS 'Наименование банка-плательщика'; + +COMMENT ON COLUMN S_DF57.SBANKNAM2 IS ''; + +COMMENT ON COLUMN S_DF57.SBANKNAM3 IS ''; + +COMMENT ON COLUMN S_DF57.SBANKNAM4 IS ''; + +COMMENT ON COLUMN S_DF57.SBANKNAM5 IS ''; + +COMMENT ON COLUMN S_DF57.RBANKCODE IS 'Код банка-получателя'; + +COMMENT ON COLUMN S_DF57.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт.'; + +COMMENT ON COLUMN S_DF57.RBANKNAM1 IS 'Наименование банка-получателя'; + +COMMENT ON COLUMN S_DF57.RBANKNAM2 IS ''; + +COMMENT ON COLUMN S_DF57.RBANKNAM3 IS ''; + +COMMENT ON COLUMN S_DF57.RBANKNAM4 IS ''; + +COMMENT ON COLUMN S_DF57.RBANKNAM5 IS ''; + +COMMENT ON COLUMN S_DF57.OP_TYPE IS 'Вид операции'; + +COMMENT ON COLUMN S_DF57.PAY_DATE IS 'Платеж-дата'; + +COMMENT ON COLUMN S_DF57.EXT_DATE IS 'Дата по выписке'; + +COMMENT ON COLUMN S_DF57.PAY_VAL IS 'Валюта платежа'; + +COMMENT ON COLUMN S_DF57.SUM_DEB IS 'Сумма дебет'; + +COMMENT ON COLUMN S_DF57.SCLIENTN1 IS 'Наименование клиента-плательщика'; + +COMMENT ON COLUMN S_DF57.SCLIENTN2 IS ''; + +COMMENT ON COLUMN S_DF57.SCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF57.SCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF57.INN_DEB IS 'ИНН клиента-плательщика'; + +COMMENT ON COLUMN S_DF57.KPP_DEB IS 'КПП клиента-плательщика'; + +COMMENT ON COLUMN S_DF57.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; + +COMMENT ON COLUMN S_DF57.RCLIENTN1 IS 'Наименование клиента-получателя'; + +COMMENT ON COLUMN S_DF57.RCLIENTN2 IS ''; + +COMMENT ON COLUMN S_DF57.RCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF57.RCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF57.INN_CRED IS 'ИНН клиента-получателя'; + +COMMENT ON COLUMN S_DF57.KPP_CRED IS 'КПП клиента-получателя'; + +COMMENT ON COLUMN S_DF57.ACC_KR IS 'Счет получателя'; + +COMMENT ON COLUMN S_DF57.SPECIF IS 'Назначение платежа'; + +COMMENT ON COLUMN S_DF57.FILE_NAME IS 'Наименование входящего файла'; + +COMMENT ON COLUMN S_DF57.GENERATION_TIME IS 'Дата и время создания записи'; + +COMMENT ON COLUMN S_DF57.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- managementJournal - Журнал мониторинга и контроля +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL; +CREATE TABLE MANAGEMENT_JOURNAL(COMPANY_ID bigint, USER_ID bigint, MANAGEMENT_JOURNAL_TYPE varchar(4), MANAGEMENT_JOURNAL_PURPOSE varchar(4), MANAGEMENT_JOURNAL_STATUS varchar(4), TEXT varchar(4096), CHANGE_ACCESS_SIGN varchar(4), CHANGE_DATA_SIGN varchar(4), EVENT_DATE timestamp, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE MANAGEMENT_JOURNAL IS 'Журнал мониторинга и контроля'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.COMPANY_ID IS 'Идентификатор компании (linked to company)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_TYPE IS 'Код типа мониторинга (linked to managementJournalType)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_PURPOSE IS 'Код цели мониторинга (linked to managementJournalPurpose)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_STATUS IS 'Код статуса (linked to managementJournalStatus)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.TEXT IS 'Текст сообщения'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_ACCESS_SIGN IS 'Код признака изменения доступа (linked to allowed)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_DATA_SIGN IS 'Код признака изменения данных (linked to allowed)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.EVENT_DATE IS 'Дата события ЕГРЮЛ'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.UPDATED_AT IS 'Дата-время изменения записи'; + +-- inDocumentJournal - Журнал входящих документов +DROP TABLE IF EXISTS IN_DOCUMENT_JOURNAL; +CREATE TABLE IN_DOCUMENT_JOURNAL(REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), SENDER varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE varchar(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), COMMENT varchar(255), RECEIPT_DATE date, RESULT_STATUS varchar(4), ID bigint PRIMARY KEY); +COMMENT ON TABLE IN_DOCUMENT_JOURNAL IS 'Журнал входящих документов'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.SENDER IS 'Полное наименование отправителя'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код участника клиринга'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Код способа отправки (linked to courierType)'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COMMENT IS 'Комментарий'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RECEIPT_DATE IS 'Дата получения оригинала'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Код статуса загрузки документа (linked to resultStatus)'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; + +-- outDocumentJournal - Журнал исходящих документов +DROP TABLE IF EXISTS OUT_DOCUMENT_JOURNAL; +CREATE TABLE OUT_DOCUMENT_JOURNAL(REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), ADDRESSEE varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE varchar(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), POST_DATE date, RESULT_STATUS varchar(4), ID bigint PRIMARY KEY); +COMMENT ON TABLE OUT_DOCUMENT_JOURNAL IS 'Журнал исходящих документов'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ADDRESSEE IS 'Полное наименование получателя'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код участника клиринга'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Код способа отправки (linked to courierType)'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.POST_DATE IS 'Дата почтового отправления'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Код статуса загрузки документа (linked to resultStatus)'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; + +-- reportRegister - Реестр отправленных отчетов +DROP TABLE IF EXISTS REPORT_REGISTER; +CREATE TABLE REPORT_REGISTER(COMPANY_FULL_NAME varchar(255), CLEARING_CODE varchar(255), SESSION_ID bigint, COMMENT varchar(255), NAME varchar(255), QUANTITY bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE REPORT_REGISTER IS 'Реестр отправленных отчетов'; + +COMMENT ON COLUMN REPORT_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; + +COMMENT ON COLUMN REPORT_REGISTER.CLEARING_CODE IS 'Код клиринга'; + +COMMENT ON COLUMN REPORT_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; + +COMMENT ON COLUMN REPORT_REGISTER.COMMENT IS 'Комментарий'; + +COMMENT ON COLUMN REPORT_REGISTER.NAME IS 'Наименование'; + +COMMENT ON COLUMN REPORT_REGISTER.QUANTITY IS 'Количество записей'; + +COMMENT ON COLUMN REPORT_REGISTER.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN REPORT_REGISTER.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN REPORT_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN REPORT_REGISTER.CLEARING_DATE IS 'Дата'; + +-- contractRegister - Журнал регистрации договоров +DROP TABLE IF EXISTS CONTRACT_REGISTER; +CREATE TABLE CONTRACT_REGISTER(NAME varchar(255), NUMBER varchar(255), ISSUE_DATE date, COMPANY_FULL_NAME varchar(255), COMPANY_ID bigint, DOCUMENT_TYPE varchar(4), ISSUE_PLACE varchar(255), ISSUER varchar(255), ISSUER_CODE varchar(255), PLACE varchar(255), VALID_FROM_DATE date, VALID_TO_DATE date, CLOSE_DATE date, COMMENT varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE CONTRACT_REGISTER IS 'Журнал регистрации договоров'; + +COMMENT ON COLUMN CONTRACT_REGISTER.NAME IS 'Наименование документа'; + +COMMENT ON COLUMN CONTRACT_REGISTER.NUMBER IS 'Номер документа'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_DATE IS 'Дата составления'; + +COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; + +COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_ID IS 'Наименование компании (linked to company)'; + +COMMENT ON COLUMN CONTRACT_REGISTER.DOCUMENT_TYPE IS 'Код типа документа (linked to documentType)'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_PLACE IS 'Место выдачи'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER IS 'Кем выдан'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER_CODE IS 'Код выдавшего органа'; + +COMMENT ON COLUMN CONTRACT_REGISTER.PLACE IS 'Место'; + +COMMENT ON COLUMN CONTRACT_REGISTER.VALID_FROM_DATE IS 'Дата начала срока действия'; + +COMMENT ON COLUMN CONTRACT_REGISTER.VALID_TO_DATE IS 'Дата окончания срока действия'; + +COMMENT ON COLUMN CONTRACT_REGISTER.CLOSE_DATE IS 'Дата расторжения'; + +COMMENT ON COLUMN CONTRACT_REGISTER.COMMENT IS 'Место'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN CONTRACT_REGISTER.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN CONTRACT_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; + +-- operation - Проводки +DROP TABLE IF EXISTS OPERATION; +CREATE TABLE OPERATION(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, OPERATION_TYPE_ID bigint, OPERATION_STATUS varchar(4)); +COMMENT ON TABLE OPERATION IS 'Проводки'; + +COMMENT ON COLUMN OPERATION.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN OPERATION.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; + +COMMENT ON COLUMN OPERATION.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; + +COMMENT ON COLUMN OPERATION.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN OPERATION.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN OPERATION.CLEARING_DATE IS 'Дата'; + +COMMENT ON COLUMN OPERATION.OPERATION_TYPE_ID IS 'Тип проводки (linked to operationType)'; + +COMMENT ON COLUMN OPERATION.OPERATION_STATUS IS 'Код статуса обработки (linked to operationStatus)'; + +-- marketDataLiquidation - Статичная ценовая информация для ликвидации активов +DROP TABLE IF EXISTS MARKET_DATA_LIQUIDATION; +CREATE TABLE MARKET_DATA_LIQUIDATION(ID bigint PRIMARY KEY, SECURITY_ID bigint, PRICE numeric(72,18), CLEARING_DATE date); +COMMENT ON TABLE MARKET_DATA_LIQUIDATION IS 'Статичная ценовая информация для ликвидации активов'; + +COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; + +COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.PRICE IS 'Цена за 1 штуку ликвидационного актива'; + +COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.CLEARING_DATE IS 'Дата'; /* views */ diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceAccountTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceAccountTypeDictionary.java deleted file mode 100644 index 12705e856..000000000 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceAccountTypeDictionary.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.clearing.platform.dictionary; - -/** - * Справочник типов лимитов - * - * Dictionary DB table: BALANCE_ACCOUNT_TYPE_DICTIONARY - **/ -public class BalanceAccountTypeDictionary extends AbstractDictionary { - private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; - -} diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeDirectionDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeDirectionDictionary.java deleted file mode 100644 index 917285857..000000000 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeDirectionDictionary.java +++ /dev/null @@ -1,12 +0,0 @@ -package ru.clearing.platform.dictionary; - - -/** - * Направление начисления комиссии - * - * Dictionary DB table: CHARGE_DIRECTION_DICTIONARY - **/ -public class ChargeDirectionDictionary extends AbstractDictionary { - private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; - -} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeTypeDictionary.java deleted file mode 100644 index 6354dfd6a..000000000 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeTypeDictionary.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.clearing.platform.dictionary; - -/** - * Справочник типов комиссий - * - * Dictionary DB table: CHARGE_TYPE_DICTIONARY - **/ -public class ChargeTypeDictionary extends AbstractDictionary { - private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; - -} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java index 391edcc78..e7060078f 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java @@ -5,6 +5,7 @@ package ru.clearing.platform.dictionary; * * Dictionary DB table: CLEARING_STATUS_DICTIONARY **/ +@Deprecated public class ClearingStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java new file mode 100644 index 000000000..8a7dd4138 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов изменений записей + * + * Dictionary DB table: EVENT_TYPE_DICTIONARY + **/ +public class EventTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java new file mode 100644 index 000000000..4223a6a26 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов входящих и исходящих записей + *

+ * Dictionary DB table: IN_OUT_S_DF_TYPE_DICTIONARY + **/ +public class InOutSDfTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java new file mode 100644 index 000000000..82b7b83f5 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов торгов + *

+ * Dictionary DB table: MARKET_TYPE_DICTIONARY + **/ +public class MarketTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java new file mode 100644 index 000000000..bd9bc2b04 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник статусов сообщений + * + * Dictionary DB table: NOTIFICATION_STATUS_DICTIONARY + **/ +public class NotificationStatusDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java new file mode 100644 index 000000000..771901575 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов объектов + * + * Dictionary DB table: OBJECT_TYPE_DICTIONARY + **/ +public class ObjectTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java new file mode 100644 index 000000000..6228f8057 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник статусов транзакций + *

+ * Dictionary DB table: TRANSACTION_STATUS_DICTIONARY + **/ +public class TransactionStatusDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountBalanceMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountBalanceMapStore.java deleted file mode 100644 index ee9bac243..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountBalanceMapStore.java +++ /dev/null @@ -1,100 +0,0 @@ -package ru.spcex.clearing.imdg.businessobject; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Deprecated -//@Component -public class AccountBalanceMapStore extends TemplateMapStore { - - public AccountBalanceMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_AccountBalance; - } - - @Override - public String getTableName() { - return "ACCOUNT_BALANCE"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "COMPANY_ID", "CREATED_AT", "UPDATED_AT", "ACCOUNT_ID", "ACCOUNT_TYPE", - "ACCOUNT", "OPEN_BALANCE_AMOUNT", "START_BALANCE_AMOUNT", "CLOSE_BALANCE_AMOUNT", - "TRADE_BALANCE_AMOUNT", "FREE_BALANCE_AMOUNT", "CHANGE_BALANCE_AMOUNT", - "CREDIT_AMOUNT", "DEBIT_AMOUNT", "BALANCE_AMOUNT", "BALANCE_ACCOUNT_TYPE", - "CLEARING_DATE", "CURRENCY_CODE", "TRADING_CODE", "SHORT_NAME", "FULL_NAME" - }; - } - - @Override - public AccountBalance objectReader(ResultSet resultSet) throws SQLException { - AccountBalance object = new AccountBalance(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); - object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setOpenBalanceAmount(resultSet.getObject("OPEN_BALANCE_AMOUNT", BigDecimal.class)); - object.setStartBalanceAmount(resultSet.getObject("START_BALANCE_AMOUNT", BigDecimal.class)); - object.setCloseBalanceAmount(resultSet.getObject("CLOSE_BALANCE_AMOUNT", BigDecimal.class)); - object.setTradeBalanceAmount(resultSet.getObject("TRADE_BALANCE_AMOUNT", BigDecimal.class)); - object.setFreeBalanceAmount(resultSet.getObject("FREE_BALANCE_AMOUNT", BigDecimal.class)); - object.setChangeBalanceAmount(resultSet.getObject("CHANGE_BALANCE_AMOUNT", BigDecimal.class)); - object.setCreditAmount(resultSet.getObject("CREDIT_AMOUNT", BigDecimal.class)); - object.setDebitAmount(resultSet.getObject("DEBIT_AMOUNT", BigDecimal.class)); - object.setBalanceAmount(resultSet.getObject("BALANCE_AMOUNT", BigDecimal.class)); - object.setBalanceAccountType(resultSet.getObject("BALANCE_ACCOUNT_TYPE", String.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - object.setCurrencyCode(resultSet.getObject("CURRENCY_CODE", String.class)); - object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class)); - object.setShortName(resultSet.getObject("SHORT_NAME", String.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - return object; - } - - @Override - public Object[] objectToField(AccountBalance object) { - Object[] args = new Object[]{ - object.getId(), - object.getCompanyId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getAccountId(), - object.getAccountType(), - object.getAccount(), - object.getOpenBalanceAmount(), - object.getStartBalanceAmount(), - object.getCloseBalanceAmount(), - object.getTradeBalanceAmount(), - object.getFreeBalanceAmount(), - object.getChangeBalanceAmount(), - object.getCreditAmount(), - object.getDebitAmount(), - object.getBalanceAmount(), - object.getBalanceAccountType(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - object.getCurrencyCode(), - object.getTradingCode(), - object.getShortName(), - object.getFullName() - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AdmittedLiabilitiesRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AdmittedLiabilitiesRegisterMapStore.java new file mode 100644 index 000000000..341c7cabe --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AdmittedLiabilitiesRegisterMapStore.java @@ -0,0 +1,75 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.AdmittedLiabilitiesRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class AdmittedLiabilitiesRegisterMapStore extends TemplateMapStore { + + public AdmittedLiabilitiesRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_AdmittedLiabilitiesRegister; + } + + @Override + public String getTableName() { + return "ADMITTED_LIABILITIES_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "COMPANY_FULL_NAME", "SESSION_ID", "SECURITY_SYMBOL", "SECURITY_FULL_NAME", "COMPANY_ID", "CLEARING_CODE", "ACCOUNT", "AMOUNT", "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" + }; + } + + @Override + public AdmittedLiabilitiesRegister objectReader(ResultSet resultSet) throws SQLException { + AdmittedLiabilitiesRegister object = new AdmittedLiabilitiesRegister(); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); + object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(AdmittedLiabilitiesRegister object) { + Object[] args = new Object[]{ + object.getCompanyFullName(), + object.getSessionId(), + object.getSecuritySymbol(), + object.getSecurityFullName(), + object.getCompanyId(), + object.getClearingCode(), + object.getAccount(), + object.getAmount(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CoveredLiabilitiesRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CoveredLiabilitiesRegisterMapStore.java new file mode 100644 index 000000000..85f1d7956 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CoveredLiabilitiesRegisterMapStore.java @@ -0,0 +1,76 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.CoveredLiabilitiesRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class CoveredLiabilitiesRegisterMapStore extends TemplateMapStore { + + public CoveredLiabilitiesRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_CoveredLiabilitiesRegister; + } + + @Override + public String getTableName() { + return "COVERED_LIABILITIES_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "COMPANY_FULL_NAME", "SESSION_ID", "SECURITY_SYMBOL", "SECURITY_FULL_NAME", "COMPANY_ID", "CLEARING_CODE", "ACCOUNT", "AMOUNT", "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" + }; + } + + @Override + public CoveredLiabilitiesRegister objectReader(ResultSet resultSet) throws SQLException { + CoveredLiabilitiesRegister object = new CoveredLiabilitiesRegister(); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); + object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(CoveredLiabilitiesRegister object) { + Object[] args = new Object[]{ + object.getCompanyFullName(), + object.getSessionId(), + object.getSecuritySymbol(), + object.getSecurityFullName(), + object.getCompanyId(), + object.getClearingCode(), + object.getAccount(), + object.getAmount(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoBalanceRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoBalanceRegisterMapStore.java new file mode 100644 index 000000000..409bd3b7e --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoBalanceRegisterMapStore.java @@ -0,0 +1,67 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.register.DepoBalanceRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class DepoBalanceRegisterMapStore extends TemplateMapStore { + + public DepoBalanceRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_DepoBalanceRegister; + } + + @Override + public String getTableName() { + return "DEPO_BALANCE_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "COMPANY_ID", "SESSION_ID", "DEPO_CODE", "QUANTITY", "SECURITY_SYMBOL" + }; + } + + @Override + public DepoBalanceRegister objectReader(ResultSet resultSet) throws SQLException { + DepoBalanceRegister object = new DepoBalanceRegister(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setDepoCode(resultSet.getObject("DEPO_CODE", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", BigDecimal.class)); + object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); + return object; + } + + @Override + public Object[] objectToField(DepoBalanceRegister object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getCompanyId(), + object.getSessionId(), + object.getDepoCode(), + object.getQuantity(), + object.getSecuritySymbol() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoPaymentInstructionRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoPaymentInstructionRegisterMapStore.java new file mode 100644 index 000000000..fd1795e76 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoPaymentInstructionRegisterMapStore.java @@ -0,0 +1,71 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.DepoPaymentInstructionRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class DepoPaymentInstructionRegisterMapStore extends TemplateMapStore { + + public DepoPaymentInstructionRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_DepoPaymentInstructionRegister; + } + + @Override + public String getTableName() { + return "DEPO_PAYMENT_INSTRUCTION_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "COMPANY_ID", "TRADING_CLEARING_REGISTRY_TYPE", "TRADING_CLEARING_REGISTRY", "CB_CODE", "QUANTITY", "DIRECTION", "SESSION_ID" + }; + } + + @Override + public DepoPaymentInstructionRegister objectReader(ResultSet resultSet) throws SQLException { + DepoPaymentInstructionRegister object = new DepoPaymentInstructionRegister(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setTradingClearingRegistryType(resultSet.getObject("TRADING_CLEARING_REGISTRY_TYPE", String.class)); + object.setTradingClearingRegistry(resultSet.getObject("TRADING_CLEARING_REGISTRY", String.class)); + object.setCbCode(resultSet.getObject("CB_CODE", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", BigDecimal.class)); + object.setDirection(resultSet.getObject("DIRECTION", Long.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(DepoPaymentInstructionRegister object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getCompanyId(), + object.getTradingClearingRegistryType(), + object.getTradingClearingRegistry(), + object.getCbCode(), + object.getQuantity(), + object.getDirection(), + object.getSessionId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExcludeLiabilitiesRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExcludeLiabilitiesRegisterMapStore.java new file mode 100644 index 000000000..01046555b --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExcludeLiabilitiesRegisterMapStore.java @@ -0,0 +1,84 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.register.ExcludeLiabilitiesRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class ExcludeLiabilitiesRegisterMapStore extends TemplateMapStore { + + public ExcludeLiabilitiesRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ExcludeLiabilitiesRegister; + } + + @Override + public String getTableName() { + return "EXCLUDE_LIABILITIES_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "SESSION_ID", "VALID_FROM_DATE", "VALID_TO_DATE", "COMPANY_ID", "COMPANY_FULL_NAME", "INN", "SEGMENT", "REGISTRY_CODE", "ACCOUNT", "REGISTRY_STATUS", "CURRENCY", "SUM_LIABILITIES", "SETTLEMENT_DATE" + }; + } + + @Override + public ExcludeLiabilitiesRegister objectReader(ResultSet resultSet) throws SQLException { + ExcludeLiabilitiesRegister object = new ExcludeLiabilitiesRegister(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setValidFromDate(getLocalDateFromSqlDate(resultSet, "VALID_FROM_DATE")); + object.setValidToDate(getLocalDateFromSqlDate(resultSet, "VALID_TO_DATE")); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setInn(resultSet.getObject("INN", String.class)); + object.setSegment(resultSet.getObject("SEGMENT", String.class)); + object.setRegistryCode(resultSet.getObject("REGISTRY_CODE", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setRegistryStatus(resultSet.getObject("REGISTRY_STATUS", String.class)); + object.setCurrency(resultSet.getObject("CURRENCY", String.class)); + object.setSumLiabilities(resultSet.getObject("SUM_LIABILITIES", BigDecimal.class)); + object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); + return object; + } + + @Override + public Object[] objectToField(ExcludeLiabilitiesRegister object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getSessionId(), + TimeUtil.toDateFromLocalDate(object.getValidFromDate()), + TimeUtil.toDateFromLocalDate(object.getValidToDate()), + object.getCompanyId(), + object.getCompanyFullName(), + object.getInn(), + object.getSegment(), + object.getRegistryCode(), + object.getAccount(), + object.getRegistryStatus(), + object.getCurrency(), + object.getSumLiabilities(), + TimeUtil.toDateFromLocalDate(object.getSettlementDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionRegisterMapStore.java new file mode 100644 index 000000000..1407f4dd2 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionRegisterMapStore.java @@ -0,0 +1,91 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.ExecutionRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class ExecutionRegisterMapStore extends TemplateMapStore { + + public ExecutionRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ExecutionRegister; + } + + @Override + public String getTableName() { + return "EXECUTION_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "TRADING_DATE", "EXCHANGE_EXECUTION_ID", "EXCHANGE_EXECUTION_TIME", "SECURITY_ID", "SELLER_ID", "SELLER_CLEARING_CODE", "SELLER_TRADING_CLEARING_REGISTER", "SELLER_MONEY_ACCOUNT", "SELLER_DEPO_ACCOUNT", "BUYER_ID", "BUYER_CLEARING_CODE", "BUYER_TRADING_CLEARING_REGISTER", "BUYER_MONEY_ACCOUNT", "BUYER_DEPO_ACCOUNT", "AMOUNT", "QUANTITY", "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" + }; + } + + @Override + public ExecutionRegister objectReader(ResultSet resultSet) throws SQLException { + ExecutionRegister object = new ExecutionRegister(); + object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); + object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); + object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); + object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); + object.setSellerId(resultSet.getObject("SELLER_ID", Long.class)); + object.setSellerClearingCode(resultSet.getObject("SELLER_CLEARING_CODE", String.class)); + object.setSellerTradingClearingRegister(resultSet.getObject("SELLER_TRADING_CLEARING_REGISTER", String.class)); + object.setSellerMoneyAccount(resultSet.getObject("SELLER_MONEY_ACCOUNT", String.class)); + object.setSellerDepoAccount(resultSet.getObject("SELLER_DEPO_ACCOUNT", String.class)); + object.setBuyerId(resultSet.getObject("BUYER_ID", Long.class)); + object.setBuyerClearingCode(resultSet.getObject("BUYER_CLEARING_CODE", String.class)); + object.setBuyerTradingClearingRegister(resultSet.getObject("BUYER_TRADING_CLEARING_REGISTER", String.class)); + object.setBuyerMoneyAccount(resultSet.getObject("BUYER_MONEY_ACCOUNT", String.class)); + object.setBuyerDepoAccount(resultSet.getObject("BUYER_DEPO_ACCOUNT", String.class)); + object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); + object.setQuantity(resultSet.getObject("QUANTITY", BigDecimal.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(ExecutionRegister object) { + Object[] args = new Object[]{ + TimeUtil.toDateFromLocalDate(object.getTradingDate()), + object.getExchangeExecutionId(), + TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), + object.getSecurityId(), + object.getSellerId(), + object.getSellerClearingCode(), + object.getSellerTradingClearingRegister(), + object.getSellerMoneyAccount(), + object.getSellerDepoAccount(), + object.getBuyerId(), + object.getBuyerClearingCode(), + object.getBuyerTradingClearingRegister(), + object.getBuyerMoneyAccount(), + object.getBuyerDepoAccount(), + object.getAmount(), + object.getQuantity(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsAssetsMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsAssetsMapStore.java deleted file mode 100644 index c9b1fc27f..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsAssetsMapStore.java +++ /dev/null @@ -1,108 +0,0 @@ -package ru.spcex.clearing.imdg.businessobject; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class LiabilitiesClaimsAssetsMapStore extends TemplateMapStore { - - public LiabilitiesClaimsAssetsMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_LiabilitiesClaimsAssets; - } - - @Override - public String getTableName() { - return "LIABILITIES_CLAIMS_ASSETS"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "COMPANY_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "ACCOUNT_ID", "ACCOUNT_TYPE", "ACCOUNT", - "LIABILITIES_QUANTITY", "CLAIMS_QUANTITY", "CURRENCY", "SETTLEMENT_DATE", "TRADING_DATE", "REFUND_DATE", - "PRICE", "SECURITY_ID", "TRADING_CODE", "CLEARING_CODE", "SHORT_NAME", "CONTRACT", "COMMENT", "FULL_NAME", - "PARENT_ID", "LIABILITIES_CLAIMS_MONEY_ID", "CLEARING_STATUS", "PAYMENT_ID", "REFUND_PAYMENT_ID" - }; - } - - @Override - public LiabilitiesClaimsAssets objectReader(ResultSet resultSet) throws SQLException { - LiabilitiesClaimsAssets object = new LiabilitiesClaimsAssets(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); - object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setLiabilitiesQuantity(resultSet.getObject("LIABILITIES_QUANTITY", BigDecimal.class)); - object.setClaimsQuantity(resultSet.getObject("CLAIMS_QUANTITY", BigDecimal.class)); - object.setCurrency(resultSet.getObject("CURRENCY", String.class)); - object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setRefundDate(getLocalDateFromSqlDate(resultSet, "REFUND_DATE")); - object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); - object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); - object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class)); - object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class)); - object.setShortName(resultSet.getObject("SHORT_NAME", String.class)); - object.setContract(resultSet.getObject("CONTRACT", String.class)); - object.setComment(resultSet.getObject("COMMENT", String.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - object.setParentId(resultSet.getObject("PARENT_ID", Long.class)); - object.setLiabilitiesClaimsMoneyId(resultSet.getObject("LIABILITIES_CLAIMS_MONEY_ID", Long.class)); - object.setClearingStatus(resultSet.getObject("CLEARING_STATUS", Long.class)); - object.setPaymentId(resultSet.getObject("PAYMENT_ID", Long.class)); - object.setRefundPaymentId(resultSet.getObject("REFUND_PAYMENT_ID", Long.class)); - return object; - } - - @Override - public Object[] objectToField(LiabilitiesClaimsAssets object) { - Object[] args = new Object[]{ - object.getId(), - object.getCompanyId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - object.getAccountId(), - object.getAccountType(), - object.getAccount(), - object.getLiabilitiesQuantity(), - object.getClaimsQuantity(), - object.getCurrency(), - TimeUtil.toDateFromLocalDate(object.getSettlementDate()), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - TimeUtil.toDateFromLocalDate(object.getRefundDate()), - object.getPrice(), - object.getSecurityId(), - object.getTradingCode(), - object.getClearingCode(), - object.getShortName(), - object.getContract(), - object.getComment(), - object.getFullName(), - object.getParentId(), - object.getLiabilitiesClaimsMoneyId(), - object.getClearingStatus(), - object.getPaymentId(), - object.getRefundPaymentId() - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsMoneyMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsMoneyMapStore.java deleted file mode 100644 index c28121186..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsMoneyMapStore.java +++ /dev/null @@ -1,95 +0,0 @@ -package ru.spcex.clearing.imdg.businessobject; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class LiabilitiesClaimsMoneyMapStore extends TemplateMapStore { - - public LiabilitiesClaimsMoneyMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_LiabilitiesClaimsMoney; - } - - @Override - public String getTableName() { - return "LIABILITIES_CLAIMS_MONEY"; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "company_id", - "account_id", - "account_type", - "account", - "liabilities_amount", - "claims_amount", - "settlement_date", - "trading_date", - "currency", - "trading_code", - "short_name", - "full_name", - "clearing_date", - }; - } - - @Override - public LiabilitiesClaimsMoney objectReader(ResultSet resultSet) throws SQLException { - LiabilitiesClaimsMoney object = new LiabilitiesClaimsMoney(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); - object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setLiabilitiesAmount(resultSet.getObject("LIABILITIES_AMOUNT", BigDecimal.class)); - object.setClaimsAmount(resultSet.getObject("CLAIMS_AMOUNT", BigDecimal.class)); - object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setCurrency(resultSet.getObject("CURRENCY", String.class)); - object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class)); - object.setShortName(resultSet.getObject("SHORT_NAME", String.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - public Object[] objectToField(LiabilitiesClaimsMoney object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getCompanyId(), - object.getAccountId(), - object.getAccountType(), - object.getAccount(), - object.getLiabilitiesAmount(), - object.getClaimsAmount(), - TimeUtil.toDateFromLocalDate(object.getSettlementDate()), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getCurrency(), - object.getTradingCode(), - object.getShortName(), - object.getFullName(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesRegisterMapStore.java new file mode 100644 index 000000000..dbc7e7917 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesRegisterMapStore.java @@ -0,0 +1,84 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.register.LiabilitiesRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class LiabilitiesRegisterMapStore extends TemplateMapStore { + + public LiabilitiesRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_LiabilitiesRegister; + } + + @Override + public String getTableName() { + return "LIABILITIES_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "SESSION_ID", "VALID_FROM_DATE", "VALID_TO_DATE", "COMPANY_ID", "COMPANY_FULL_NAME", "INN", "SEGMENT", "REGISTRY_CODE", "ACCOUNT", "REGISTRY_STATUS", "CURRENCY", "SUM_LIABILITIES", "SETTLEMENT_DATE" + }; + } + + @Override + public LiabilitiesRegister objectReader(ResultSet resultSet) throws SQLException { + LiabilitiesRegister object = new LiabilitiesRegister(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setValidFromDate(getLocalDateFromSqlDate(resultSet, "VALID_FROM_DATE")); + object.setValidToDate(getLocalDateFromSqlDate(resultSet, "VALID_TO_DATE")); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setInn(resultSet.getObject("INN", String.class)); + object.setSegment(resultSet.getObject("SEGMENT", String.class)); + object.setRegistryCode(resultSet.getObject("REGISTRY_CODE", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setRegistryStatus(resultSet.getObject("REGISTRY_STATUS", String.class)); + object.setCurrency(resultSet.getObject("CURRENCY", String.class)); + object.setSumLiabilities(resultSet.getObject("SUM_LIABILITIES", BigDecimal.class)); + object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); + return object; + } + + @Override + public Object[] objectToField(LiabilitiesRegister object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getSessionId(), + TimeUtil.toDateFromLocalDate(object.getValidFromDate()), + TimeUtil.toDateFromLocalDate(object.getValidToDate()), + object.getCompanyId(), + object.getCompanyFullName(), + object.getInn(), + object.getSegment(), + object.getRegistryCode(), + object.getAccount(), + object.getRegistryStatus(), + object.getCurrency(), + object.getSumLiabilities(), + TimeUtil.toDateFromLocalDate(object.getSettlementDate()) + }; + return args; + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java similarity index 51% rename from clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java rename to clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java index b40e95341..d770db1a8 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java @@ -1,98 +1,77 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class BalanceRegisterMapStore extends TemplateMapStore { - - public BalanceRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "BALANCE_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_BalanceRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "S_DF01_DATE", - "CURRENCY_CODE", - "SET_HOUSE_NAME", - "ACCOUNT", - "INFO_ACCOUNT", - "REMAINDER_SUM", - "BLOCKED_SUM", - "UNBLOCKED_SUM", - "INN", - "MARKET", - "FULL_NAME", - "TYPE_REMAINS", - "DOC_NUMBER", - "COMPANY_ID" - }; - } - - @Override - protected BalanceRegister objectReader(ResultSet resultSet) throws SQLException { - BalanceRegister object = new BalanceRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setsDf01Date(getInstantFromTimestamp(resultSet, "S_DF01_DATE")); - object.setCurrencyCode(resultSet.getObject("CURRENCY_CODE", String.class)); - object.setSetHouseName(resultSet.getObject("SET_HOUSE_NAME", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setInfoAccount(resultSet.getObject("INFO_ACCOUNT", String.class)); - object.setRemainderSum(resultSet.getObject("REMAINDER_SUM", BigDecimal.class)); - object.setBlockedSum(resultSet.getObject("BLOCKED_SUM", BigDecimal.class)); - object.setUnblockedSum(resultSet.getObject("UNBLOCKED_SUM", BigDecimal.class)); - object.setInn(resultSet.getObject("INN", String.class)); - object.setMarket(resultSet.getObject("MARKET", Long.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - object.setTypeRemains(resultSet.getObject("TYPE_REMAINS", String.class)); - object.setDocNumber(resultSet.getObject("DOC_NUMBER", String.class)); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - return object; - } - - @Override - protected Object[] objectToField(BalanceRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - TimeUtil.toDateFromInstant(object.getsDf01Date()), - object.getCurrencyCode(), - object.getSetHouseName(), - object.getAccount(), - object.getInfoAccount(), - object.getRemainderSum(), - object.getBlockedSum(), - object.getUnblockedSum(), - object.getInn(), - object.getMarket(), - object.getFullName(), - object.getTypeRemains(), - object.getDocNumber(), - object.getCompanyId() - }; - return args; - } - -} +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.register.MoneyBalanceRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class MoneyBalanceRegisterMapStore extends TemplateMapStore { + + public MoneyBalanceRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_MoneyBalanceRegister; + } + + @Override + public String getTableName() { + return "MONEY_BALANCE_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "SET_HOUSE_NAME", "ACCOUNT", "INFO_ACCOUNT", "REMAINDER_SUM", "BLOCKED_SUM", "UNBLOCKED_SUM", "INN", "SESSION_ID", "COMPANY_FULL_NAME", "COMPANY_ID", "ID", "CREATED_AT", "UPDATED_AT" + }; + } + + @Override + public MoneyBalanceRegister objectReader(ResultSet resultSet) throws SQLException { + MoneyBalanceRegister object = new MoneyBalanceRegister(); + object.setSetHouseName(resultSet.getObject("SET_HOUSE_NAME", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setInfoAccount(resultSet.getObject("INFO_ACCOUNT", String.class)); + object.setRemainderSum(resultSet.getObject("REMAINDER_SUM", BigDecimal.class)); + object.setBlockedSum(resultSet.getObject("BLOCKED_SUM", BigDecimal.class)); + object.setUnblockedSum(resultSet.getObject("UNBLOCKED_SUM", BigDecimal.class)); + object.setInn(resultSet.getObject("INN", String.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + return object; + } + + @Override + public Object[] objectToField(MoneyBalanceRegister object) { + Object[] args = new Object[]{ + object.getSetHouseName(), + object.getAccount(), + object.getInfoAccount(), + object.getRemainderSum(), + object.getBlockedSum(), + object.getUnblockedSum(), + object.getInn(), + object.getSessionId(), + object.getCompanyFullName(), + object.getCompanyId(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java similarity index 62% rename from clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java rename to clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java index d8f63be13..9f9b59ba9 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java @@ -1,83 +1,71 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class OrderRegisterMapStore extends TemplateMapStore { - - public OrderRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "ORDER_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_OrderRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "CREDIT_LEG_ACCOUNT", - "CREDIT_LEG_AMOUNT", - "CREDIT_LEG_CURRENCY_CODE", - "CREDIT_LEG_DIRECTION", - "DEBIT_LEG_ACCOUNT", - "SENDER", - "ADDRESSEE", - "DOCUMENT_NUMBER", - "CLEARING_DATE", - }; - } - - @Override - protected OrderRegister objectReader(ResultSet resultSet) throws SQLException { - OrderRegister object = new OrderRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setCreditLegAccount(resultSet.getObject("CREDIT_LEG_ACCOUNT", String.class)); - object.setCreditLegAmount(resultSet.getObject("CREDIT_LEG_AMOUNT", BigDecimal.class)); - object.setCreditLegCurrencyCode(resultSet.getObject("CREDIT_LEG_CURRENCY_CODE", String.class)); - object.setCreditLegDirection(resultSet.getObject("CREDIT_LEG_DIRECTION", Long.class)); - object.setDebitLegAccount(resultSet.getObject("DEBIT_LEG_ACCOUNT", String.class)); - object.setSender(resultSet.getObject("SENDER", String.class)); - object.setAddressee(resultSet.getObject("ADDRESSEE", String.class)); - object.setDocumentNumber(resultSet.getObject("DOCUMENT_NUMBER", String.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(OrderRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getCreditLegAccount(), - object.getCreditLegAmount(), - object.getCreditLegCurrencyCode(), - object.getCreditLegDirection(), - object.getDebitLegAccount(), - object.getSender(), - object.getAddressee(), - object.getDocumentNumber(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.MoneyPaymentInstructionRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class MoneyPaymentInstructionRegisterMapStore extends TemplateMapStore { + + public MoneyPaymentInstructionRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_MoneyPaymentInstructionRegister; + } + + @Override + public String getTableName() { + return "MONEY_PAYMENT_INSTRUCTION_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "CREDIT_LEG_ACCOUNT", "CREDIT_LEG_AMOUNT", "CREDIT_LEG_CURRENCY_CODE", "DEBIT_LEG_ACCOUNT", "SENDER", "ADDRESSEE", "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" + }; + } + + @Override + public MoneyPaymentInstructionRegister objectReader(ResultSet resultSet) throws SQLException { + MoneyPaymentInstructionRegister object = new MoneyPaymentInstructionRegister(); + object.setCreditLegAccount(resultSet.getObject("CREDIT_LEG_ACCOUNT", String.class)); + object.setCreditLegAmount(resultSet.getObject("CREDIT_LEG_AMOUNT", BigDecimal.class)); + object.setCreditLegCurrencyCode(resultSet.getObject("CREDIT_LEG_CURRENCY_CODE", String.class)); + object.setDebitLegAccount(resultSet.getObject("DEBIT_LEG_ACCOUNT", String.class)); + object.setSender(resultSet.getObject("SENDER", String.class)); + object.setAddressee(resultSet.getObject("ADDRESSEE", String.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(MoneyPaymentInstructionRegister object) { + Object[] args = new Object[]{ + object.getCreditLegAccount(), + object.getCreditLegAmount(), + object.getCreditLegCurrencyCode(), + object.getDebitLegAccount(), + object.getSender(), + object.getAddressee(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/BalanceAccountTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/BalanceAccountTypeDictionaryMapStore.java deleted file mode 100644 index c775a4fd4..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/BalanceAccountTypeDictionaryMapStore.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.spcex.clearing.imdg.dictionary; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.platform.dictionary.BalanceAccountTypeDictionary; -import ru.spcex.clearing.imdg.base.DictionaryTMapStore; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -@Component -public class BalanceAccountTypeDictionaryMapStore extends DictionaryTMapStore { - - public BalanceAccountTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_BalanceAccountTypeDictionary; - } - - @Override - public String getTableName() { - return "BALANCE_ACCOUNT_TYPE_DICTIONARY"; - } - - @Override - public BalanceAccountTypeDictionary getDictionaryObject() { - return new BalanceAccountTypeDictionary(); - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ChargeDirectionDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ChargeDirectionDictionaryMapStore.java deleted file mode 100644 index 2889f9d78..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ChargeDirectionDictionaryMapStore.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.spcex.clearing.imdg.dictionary; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.platform.dictionary.ChargeDirectionDictionary; -import ru.spcex.clearing.imdg.base.DictionaryTMapStore; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -@Component -public class ChargeDirectionDictionaryMapStore extends DictionaryTMapStore { - - public ChargeDirectionDictionaryMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_ChargeDirectionDictionary; - } - - @Override - public String getTableName() { - return "CHARGE_DIRECTION_DICTIONARY"; - } - - @Override - public ChargeDirectionDictionary getDictionaryObject() { - return new ChargeDirectionDictionary(); - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ClearingStatusDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ClearingStatusDictionaryMapStore.java deleted file mode 100644 index f84a2e0a2..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ClearingStatusDictionaryMapStore.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.spcex.clearing.imdg.dictionary; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.platform.dictionary.ClearingStatusDictionary; -import ru.spcex.clearing.imdg.base.DictionaryTMapStore; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -@Component -public class ClearingStatusDictionaryMapStore extends DictionaryTMapStore { - - public ClearingStatusDictionaryMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_ClearingStatusDictionary; - } - - @Override - public String getTableName() { - return "CLEARING_STATUS_DICTIONARY"; - } - - @Override - public ClearingStatusDictionary getDictionaryObject() { - return new ClearingStatusDictionary(); - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/EventTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/EventTypeDictionaryMapStore.java new file mode 100644 index 000000000..2cacd8244 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/EventTypeDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.EventTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class EventTypeDictionaryMapStore extends DictionaryTMapStore { + + public EventTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_EventTypeDictionary; + } + + @Override + public String getTableName() { + return "EVENT_TYPE_DICTIONARY"; + } + + @Override + public EventTypeDictionary getDictionaryObject() { + return new EventTypeDictionary(); + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/InOutSDfTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/InOutSDfTypeDictionaryMapStore.java new file mode 100644 index 000000000..1ff0b3e7f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/InOutSDfTypeDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.InOutSDfTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class InOutSDfTypeDictionaryMapStore extends DictionaryTMapStore { + + public InOutSDfTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_InOutSDfTypeDictionary; + } + + @Override + public String getTableName() { + return "IN_OUT_S_DF_TYPE_DICTIONARY"; + } + + @Override + public InOutSDfTypeDictionary getDictionaryObject() { + return new InOutSDfTypeDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/MarketTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/MarketTypeDictionaryMapStore.java new file mode 100644 index 000000000..7342926ee --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/MarketTypeDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.MarketTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class MarketTypeDictionaryMapStore extends DictionaryTMapStore { + + public MarketTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_MarketTypeDictionary; + } + + @Override + public String getTableName() { + return "MARKET_TYPE_DICTIONARY"; + } + + @Override + public MarketTypeDictionary getDictionaryObject() { + return new MarketTypeDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NotificationStatusDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NotificationStatusDictionaryMapStore.java new file mode 100644 index 000000000..1eb7495d7 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NotificationStatusDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.NotificationStatusDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class NotificationStatusDictionaryMapStore extends DictionaryTMapStore { + + public NotificationStatusDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_NotificationStatusDictionary; + } + + @Override + public String getTableName() { + return "NOTIFICATION_STATUS_DICTIONARY"; + } + + @Override + public NotificationStatusDictionary getDictionaryObject() { + return new NotificationStatusDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ObjectTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ObjectTypeDictionaryMapStore.java new file mode 100644 index 000000000..456ea628f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ObjectTypeDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.ObjectTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class ObjectTypeDictionaryMapStore extends DictionaryTMapStore { + + public ObjectTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ObjectTypeDictionary; + } + + @Override + public String getTableName() { + return "OBJECT_TYPE_DICTIONARY"; + } + + @Override + public ObjectTypeDictionary getDictionaryObject() { + return new ObjectTypeDictionary(); + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/TransactionStatusDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/TransactionStatusDictionaryMapStore.java new file mode 100644 index 000000000..59ed1c8ed --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/TransactionStatusDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.TransactionStatusDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class TransactionStatusDictionaryMapStore extends DictionaryTMapStore { + + public TransactionStatusDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_TransactionStatusDictionary; + } + + @Override + public String getTableName() { + return "TRANSACTION_STATUS_DICTIONARY"; + } + + @Override + public TransactionStatusDictionary getDictionaryObject() { + return new TransactionStatusDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AdmittedDealRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AdmittedDealRegisterMapStore.java deleted file mode 100644 index 6b3e65d55..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AdmittedDealRegisterMapStore.java +++ /dev/null @@ -1,101 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class AdmittedDealRegisterMapStore extends TemplateMapStore { - - public AdmittedDealRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "ADMITTED_DEAL_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_AdmittedDealRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXECUTION_ID", - "COMPANY_FULL_NAME", - "TRADING_DATE", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "SECURITY_SYMBOL", - "SECURITY_FULL_NAME", - "SELLER_FULL_NAME", - "SELLER_CLEARING_CODE", - "SELLER_ACCOUNT", - "BUYER_FULL_NAME", - "BUYER_CLEARING_CODE", - "BUYER_ACCOUNT", - "AMOUNT", - "CLEARING_DATE", - }; - } - - @Override - protected AdmittedDealRegister objectReader(ResultSet resultSet) throws SQLException { - AdmittedDealRegister object = new AdmittedDealRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setExecutionId(resultSet.getObject("EXECUTION_ID", Long.class)); - object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); - object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); - object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); - object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); - object.setSellerFullName(resultSet.getObject("SELLER_FULL_NAME", String.class)); - object.setSellerClearingCode(resultSet.getObject("SELLER_CLEARING_CODE", String.class)); - object.setSellerAccount(resultSet.getObject("SELLER_ACCOUNT", String.class)); - object.setBuyerFullName(resultSet.getObject("BUYER_FULL_NAME", String.class)); - object.setBuyerClearingCode(resultSet.getObject("BUYER_CLEARING_CODE", String.class)); - object.setBuyerAccount(resultSet.getObject("BUYER_ACCOUNT", String.class)); - object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(AdmittedDealRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getExecutionId(), - object.getCompanyFullName(), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getExchangeExecutionId(), - TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), - object.getSecuritySymbol(), - object.getSecurityFullName(), - object.getSellerFullName(), - object.getSellerClearingCode(), - object.getSellerAccount(), - object.getBuyerFullName(), - object.getBuyerClearingCode(), - object.getBuyerAccount(), - object.getAmount(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearMemberRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearMemberRegisterMapStore.java deleted file mode 100644 index df29c7f8a..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearMemberRegisterMapStore.java +++ /dev/null @@ -1,130 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class ClearMemberRegisterMapStore extends TemplateMapStore { - - public ClearMemberRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "CLEARMEMBER_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_ClearMemberRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "TRADING_CODE", - "CLEARING_CODE", - "FULL_NAME", - "SHORT_NAME", - "CATEGORY_LIST", - "CORPORATION_SOLE", - "ACCOUNT", - "BANK", - "BANK_NAME", - "INN", - "BIC", - "OGRN", - "CPP", - "OCPO", - "CONTRACT_NUMBER", - "CONTRACT_DATE", - "REGISTRATION_DATE", - "SYSTEM_DATE", - "ACCESS_DATE", - "SUSPENTION_DATE", - "REOPENING_DATE", - "CLOSE_DATE", - "EXCLUSION_DATE", - "ADDRESS", - "EMAIL", - }; - } - - @Override - protected ClearMemberRegister objectReader(ResultSet resultSet) throws SQLException { - ClearMemberRegister object = new ClearMemberRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class)); - object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - object.setShortName(resultSet.getObject("SHORT_NAME", String.class)); - object.setCategoryList(resultSet.getObject("CATEGORY_LIST", String.class)); - object.setCorporationSole(resultSet.getObject("CORPORATION_SOLE", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setBank(resultSet.getObject("BANK", Long.class)); - object.setBankName(resultSet.getObject("BANK_NAME", String.class)); - object.setInn(resultSet.getObject("INN", String.class)); - object.setBic(resultSet.getObject("BIC", String.class)); - object.setOgrn(resultSet.getObject("OGRN", String.class)); - object.setCpp(resultSet.getObject("CPP", String.class)); - object.setOcpo(resultSet.getObject("OCPO", String.class)); - object.setContractNumber(resultSet.getObject("CONTRACT_NUMBER", String.class)); - object.setContractDate(getLocalDateFromSqlDate(resultSet, "CONTRACT_DATE")); - object.setRegistrationDate(getLocalDateFromSqlDate(resultSet, "REGISTRATION_DATE")); - object.setSystemDate(getLocalDateFromSqlDate(resultSet, "SYSTEM_DATE")); - object.setAccessDate(getInstantFromTimestamp(resultSet, "ACCESS_DATE")); - object.setSuspentionDate(getInstantFromTimestamp(resultSet, "SUSPENTION_DATE")); - object.setReopeningDate(getInstantFromTimestamp(resultSet, "REOPENING_DATE")); - object.setCloseDate(getInstantFromTimestamp(resultSet, "CLOSE_DATE")); - object.setExclusionDate(getInstantFromTimestamp(resultSet, "EXCLUSION_DATE")); - object.setAddress(resultSet.getObject("ADDRESS", String.class)); - object.setEmail(resultSet.getObject("EMAIL", String.class)); - return object; - } - - @Override - protected Object[] objectToField(ClearMemberRegister clearMemberRegister) { - Object[] args = new Object[]{ - clearMemberRegister.getId(), - TimeUtil.toDateFromInstant(clearMemberRegister.getCreated()), - TimeUtil.toDateFromInstant(clearMemberRegister.getUpdated()), - clearMemberRegister.getTradingCode(), - clearMemberRegister.getClearingCode(), - clearMemberRegister.getFullName(), - clearMemberRegister.getShortName(), - clearMemberRegister.getCategoryList(), - clearMemberRegister.getCorporationSole(), - clearMemberRegister.getAccount(), - clearMemberRegister.getBank(), - clearMemberRegister.getBankName(), - clearMemberRegister.getInn(), - clearMemberRegister.getBic(), - clearMemberRegister.getOgrn(), - clearMemberRegister.getCpp(), - clearMemberRegister.getOcpo(), - clearMemberRegister.getContractNumber(), - TimeUtil.toDateFromLocalDate(clearMemberRegister.getContractDate()), - TimeUtil.toDateFromLocalDate(clearMemberRegister.getRegistrationDate()), - TimeUtil.toDateFromLocalDate(clearMemberRegister.getSystemDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getAccessDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getSuspentionDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getReopeningDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getCloseDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getExclusionDate()), - clearMemberRegister.getAddress(), - clearMemberRegister.getEmail() - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CoveredDealRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CoveredDealRegisterMapStore.java deleted file mode 100644 index 7ffb2875d..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CoveredDealRegisterMapStore.java +++ /dev/null @@ -1,101 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class CoveredDealRegisterMapStore extends TemplateMapStore { - - public CoveredDealRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "COVERED_DEAL_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_CoveredDealRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXECUTION_ID", - "COMPANY_FULL_NAME", - "TRADING_DATE", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "SECURITY_SYMBOL", - "SECURITY_FULL_NAME", - "SELLER_FULL_NAME", - "SELLER_CLEARING_CODE", - "SELLER_ACCOUNT", - "BUYER_FULL_NAME", - "BUYER_CLEARING_CODE", - "BUYER_ACCOUNT", - "AMOUNT", - "CLEARING_DATE", - }; - } - - @Override - protected CoveredDealRegister objectReader(ResultSet resultSet) throws SQLException { - CoveredDealRegister object = new CoveredDealRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setExecutionId(resultSet.getObject("EXECUTION_ID", Long.class)); - object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); - object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); - object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); - object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); - object.setSellerFullName(resultSet.getObject("SELLER_FULL_NAME", String.class)); - object.setSellerClearingCode(resultSet.getObject("SELLER_CLEARING_CODE", String.class)); - object.setSellerAccount(resultSet.getObject("SELLER_ACCOUNT", String.class)); - object.setBuyerFullName(resultSet.getObject("BUYER_FULL_NAME", String.class)); - object.setBuyerClearingCode(resultSet.getObject("BUYER_CLEARING_CODE", String.class)); - object.setBuyerAccount(resultSet.getObject("BUYER_ACCOUNT", String.class)); - object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(CoveredDealRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getExecutionId(), - object.getCompanyFullName(), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getExchangeExecutionId(), - TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), - object.getSecuritySymbol(), - object.getSecurityFullName(), - object.getSellerFullName(), - object.getSellerClearingCode(), - object.getSellerAccount(), - object.getBuyerFullName(), - object.getBuyerClearingCode(), - object.getBuyerAccount(), - object.getAmount(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DealRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DealRegisterMapStore.java deleted file mode 100644 index 04c001815..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DealRegisterMapStore.java +++ /dev/null @@ -1,116 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.DealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class DealRegisterMapStore extends TemplateMapStore { - - public DealRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "DEAL_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_DealRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXECUTION_ID", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "TRADING_DATE", - "ACCOUNT", - "MARKET", - "PRICE", - "AMOUNT", - "SIDE", - "SETTLEMENT_CURRENCY", - "COMPANY_ID", - "FIRST_LEG_SETTLEMENT_DATE", - "SECOND_LEG_SETTLEMENT_DATE", - "SECURITY_FULL_NAME", - "SECURITY_SYMBOL", - "SECURITY_ID", - "COUNTER_PARTY_ID", - "COVERAGE_STATUS", - "SESSION_ID", - "CLEARING_DATE", - }; - } - - @Override - protected DealRegister objectReader(ResultSet resultSet) throws SQLException { - DealRegister object = new DealRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setExecutionId(resultSet.getObject("EXECUTION_ID", Long.class)); - object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); - object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setMarket(resultSet.getObject("MARKET", String.class)); - object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); - object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setSide(resultSet.getObject("SIDE", String.class)); - object.setSettlementCurrency(resultSet.getObject("SETTLEMENT_CURRENCY", String.class)); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - object.setFirstLegSettlementDate(getLocalDateFromSqlDate(resultSet, "FIRST_LEG_SETTLEMENT_DATE")); - object.setSecondLegSettlementDate(getLocalDateFromSqlDate(resultSet, "SECOND_LEG_SETTLEMENT_DATE")); - object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); - object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); - object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); - object.setCounterPartyId(resultSet.getObject("COUNTER_PARTY_ID", Long.class)); - object.setCoverageStatus(resultSet.getObject("COVERAGE_STATUS", String.class)); - object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(DealRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getExecutionId(), - object.getExchangeExecutionId(), - TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getAccount(), - object.getMarket(), - object.getPrice(), - object.getAmount(), - object.getSide(), - object.getSettlementCurrency(), - object.getCompanyId(), - TimeUtil.toDateFromLocalDate(object.getFirstLegSettlementDate()), - TimeUtil.toDateFromLocalDate(object.getSecondLegSettlementDate()), - object.getSecurityFullName(), - object.getSecuritySymbol(), - object.getSecurityId(), - object.getCounterPartyId(), - object.getCoverageStatus(), - object.getSessionId(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java deleted file mode 100644 index cfc36bb45..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java +++ /dev/null @@ -1,66 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class KeyRateMapStore extends TemplateMapStore { - - public KeyRateMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "KEY_RATE"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_KeyRate; - } - - @Override - public String[] getIndexingField() { - return new String[]{"startDate", "endDate"}; - } - - @Override - public String[] getFields() { - return new String[]{"id", "rate", "start_date", "end_date", "document", "workflow_status"}; - } - - @Override - protected KeyRate objectReader(ResultSet resultSet) throws SQLException { - KeyRate keyRate = new KeyRate(); - keyRate.setId(resultSet.getObject("ID", Long.class)); - keyRate.setRate(resultSet.getObject("RATE", BigDecimal.class)); - keyRate.setStartDate(getLocalDateFromSqlDate(resultSet, "START_DATE")); - keyRate.setEndDate(getLocalDateFromSqlDate(resultSet, "END_DATE")); - keyRate.setDocument(resultSet.getObject("DOCUMENT", String.class)); - keyRate.setWorkflowStatus(resultSet.getObject("WORKFLOW_STATUS", String.class)); - return keyRate; - } - - @Override - protected Object[] objectToField(KeyRate partnerList) { - Object[] args = new Object[]{ - partnerList.getId(), - partnerList.getRate(), - TimeUtil.toDateFromLocalDate(partnerList.getStartDate()), - TimeUtil.toDateFromLocalDate(partnerList.getEndDate()), - partnerList.getDocument(), - partnerList.getWorkflowStatus() - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java deleted file mode 100644 index ca6190d50..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java +++ /dev/null @@ -1,75 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.sdf.SDf16; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class SDf16MapStore extends TemplateMapStore { - - public SDf16MapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_SDf16; - } - - @Override - public String getTableName() { - return "S_DF16"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "ACCOUNT", "SUM", "MARKET", "TYPE", "INN", "BIC", "SPEC", "NUMBER", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" - }; - } - - @Override - public SDf16 objectReader(ResultSet resultSet) throws SQLException { - SDf16 object = new SDf16(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setSum(resultSet.getObject("SUM", BigDecimal.class)); - object.setMarket(resultSet.getObject("MARKET", String.class)); - object.setType(resultSet.getObject("TYPE", String.class)); - object.setInn(resultSet.getObject("INN", BigDecimal.class)); - object.setBic(resultSet.getObject("BIC", BigDecimal.class)); - object.setSpec(resultSet.getObject("SPEC", String.class)); - object.setNumber(resultSet.getObject("NUMBER", BigDecimal.class)); - object.setFileName(resultSet.getObject("FILE_NAME", String.class)); - object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); - object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - return object; - } - - @Override - public Object[] objectToField(SDf16 object) { - Object[] args = new Object[]{ - object.getId(), - object.getAccount(), - object.getSum(), - object.getMarket(), - object.getType(), - object.getInn(), - object.getBic(), - object.getSpec(), - object.getNumber(), - object.getFileName(), - TimeUtil.toDateFromInstant(object.getGenerationTime()), - object.getGenerationId() - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java deleted file mode 100644 index 0feedea18..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java +++ /dev/null @@ -1,77 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.sdf.SDf17; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class SDf17MapStore extends TemplateMapStore { - - public SDf17MapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_SDf17; - } - - @Override - public String getTableName() { - return "S_DF17"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "ACCOUNT", "SUM", "MARKET", "TYPE", "INN", "BIC", "SPEC", "NUMBER", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF16_ID" - }; - } - - @Override - public SDf17 objectReader(ResultSet resultSet) throws SQLException { - SDf17 object = new SDf17(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setSum(resultSet.getObject("SUM", BigDecimal.class)); - object.setMarket(resultSet.getObject("MARKET", String.class)); - object.setType(resultSet.getObject("TYPE", String.class)); - object.setInn(resultSet.getObject("INN", BigDecimal.class)); - object.setBic(resultSet.getObject("BIC", BigDecimal.class)); - object.setSpec(resultSet.getObject("SPEC", String.class)); - object.setNumber(resultSet.getObject("NUMBER", BigDecimal.class)); - object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); - object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); - object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - object.setInSDf16Id(resultSet.getObject("IN_S_DF16_ID", Long.class)); - return object; - } - - @Override - public Object[] objectToField(SDf17 object) { - Object[] args = new Object[]{ - object.getId(), - object.getAccount(), - object.getSum(), - object.getMarket(), - object.getType(), - object.getInn(), - object.getBic(), - object.getSpec(), - object.getNumber(), - object.getResult(), - TimeUtil.toDateFromInstant(object.getGenerationTime()), - object.getGenerationId(), - object.getInSDf16Id() - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java deleted file mode 100644 index 7a785dc1c..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java +++ /dev/null @@ -1,67 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.sdf.SDf18; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class SDf18MapStore extends TemplateMapStore { - - public SDf18MapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_SDf18; - } - - @Override - public String getTableName() { - return "S_DF18"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "ACCOUNT", "DEAL", "STATUS", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF12_ID" - }; - } - - @Override - public SDf18 objectReader(ResultSet resultSet) throws SQLException { - SDf18 object = new SDf18(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setDeal(resultSet.getObject("DEAL", String.class)); - object.setStatus(resultSet.getObject("STATUS", Long.class)); - object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); - object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); - object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - object.setInSDf12Id(resultSet.getObject("IN_S_DF12_ID", Long.class)); - return object; - } - - @Override - public Object[] objectToField(SDf18 object) { - Object[] args = new Object[]{ - object.getId(), - object.getAccount(), - object.getDeal(), - object.getStatus(), - object.getResult(), - TimeUtil.toDateFromInstant(object.getGenerationTime()), - object.getGenerationId(), - object.getInSDf12Id() - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UncoveredDealRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UncoveredDealRegisterMapStore.java deleted file mode 100644 index c4df8b816..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UncoveredDealRegisterMapStore.java +++ /dev/null @@ -1,104 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class UncoveredDealRegisterMapStore extends TemplateMapStore { - - public UncoveredDealRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "UNCOVERED_DEAL_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_UncoveredDealRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXECUTION_ID", - "COMPANY_FULL_NAME", - "TRADING_DATE", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "SECURITY_SYMBOL", - "SECURITY_FULL_NAME", - "SELLER_FULL_NAME", - "SELLER_CLEARING_CODE", - "SELLER_ACCOUNT", - "BUYER_FULL_NAME", - "BUYER_CLEARING_CODE", - "BUYER_ACCOUNT", - "AMOUNT", - "RESULT_STATUS", - "CLEARING_DATE", - }; - } - - @Override - protected UncoveredDealRegister objectReader(ResultSet resultSet) throws SQLException { - UncoveredDealRegister object = new UncoveredDealRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setExecutionId(resultSet.getObject("EXECUTION_ID", Long.class)); - object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); - object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); - object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); - object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); - object.setSellerFullName(resultSet.getObject("SELLER_FULL_NAME", String.class)); - object.setSellerClearingCode(resultSet.getObject("SELLER_CLEARING_CODE", String.class)); - object.setSellerAccount(resultSet.getObject("SELLER_ACCOUNT", String.class)); - object.setBuyerFullName(resultSet.getObject("BUYER_FULL_NAME", String.class)); - object.setBuyerClearingCode(resultSet.getObject("BUYER_CLEARING_CODE", String.class)); - object.setBuyerAccount(resultSet.getObject("BUYER_ACCOUNT", String.class)); - object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setResultStatus(resultSet.getObject("RESULT_STATUS", String.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(UncoveredDealRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getExecutionId(), - object.getCompanyFullName(), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getExchangeExecutionId(), - TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), - object.getSecuritySymbol(), - object.getSecurityFullName(), - object.getSellerFullName(), - object.getSellerClearingCode(), - object.getSellerAccount(), - object.getBuyerFullName(), - object.getBuyerClearingCode(), - object.getBuyerAccount(), - object.getAmount(), - object.getResultStatus(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index 61480d59f..7a261636b 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java @@ -13,8 +13,6 @@ import ru.clearing.classes.statics.data.instrument.issue.*; import ru.clearing.classes.statics.data.journal.InDocumentJournal; import ru.clearing.classes.statics.data.journal.ManagementJournal; import ru.clearing.classes.statics.data.journal.OutDocumentJournal; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; import ru.clearing.classes.statics.data.messages.ErrorText; import ru.clearing.classes.statics.data.misc.*; import ru.clearing.classes.statics.data.payment.PaymentInstruction; @@ -148,10 +146,6 @@ public class RunnableMapNamesForTesting { new SettingOperation("setQuantity", new Object[]{new BigDecimal("852.64")}), new SettingOperation("setSettlementAmount", new Object[]{new BigDecimal("853.64")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Launcher, Launcher.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, LiabilitiesClaimsMoney.class, - new SettingOperation("setClaimsAmount", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("04.92")}), - new SettingOperation("setLiabilitiesAmount", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("06.26")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Listing, Listing.class, new SettingOperation("setLotSize", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("21.11")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ManagementJournal, ManagementJournal.class)); @@ -191,10 +185,7 @@ public class RunnableMapNamesForTesting { //dictionary checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_AccountTypeDictionary, AccountTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_AllowedDictionary, AllowedDictionary.class)); - checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_BalanceAccountTypeDictionary, BalanceAccountTypeDictionary.class)); - checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ChargeDirectionDictionary, ChargeDirectionDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingCategoryDictionary, ClearingCategoryDictionary.class)); - checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingStatusDictionary, ClearingStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_CompanyRoleDictionary, CompanyRoleDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_CompanySymbolDictionary, CompanySymbolDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ConnectionStateDictionary, ConnectionStateDictionary.class)); @@ -206,17 +197,22 @@ public class RunnableMapNamesForTesting { checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_DayStatusDictionary, DayStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_DocumentTypeDictionary, DocumentTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ErrorCodeDictionary, ErrorCodeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_EventTypeDictionary, EventTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_InOutSDfTypeDictionary, InOutSDfTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, InstrumentTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_LegalKindDictionary, LegalKindDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ManagementJournalPurposeDictionary, ManagementJournalPurposeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ManagementJournalStatusDictionary, ManagementJournalStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ManagementJournalTypeDictionary, ManagementJournalTypeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_MarketTypeDictionary, MarketTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_MoneyFlowSideDictionary, MoneyFlowSideDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_MarketCodeDictionary, MarketCodeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_NotificationStatusDictionary, NotificationStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_OperationStatusDictionary, OperationStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_OperationTypeDictionary, OperationTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_OrganizationTypeDictionary, OrganizationTypeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ObjectTypeDictionary, ObjectTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ParentDictionary, ParentDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ResultStatusDictionary, ResultStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_SessionStatusDictionary, SessionStatusDictionary.class)); @@ -229,6 +225,7 @@ public class RunnableMapNamesForTesting { checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_TaskDictionary, TaskDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_TaskStatusDictionary, TaskStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_TermTypeDictionary, TermTypeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_TransactionStatusDictionary, TransactionStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_UserRoleDictionary, UserRoleDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_SectionDictionary, SectionDictionary.class)); @@ -248,28 +245,42 @@ public class RunnableMapNamesForTesting { checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingAccountTypeDictionary, ClearingAccountTypeDictionary.class)); //object - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_AdmittedDealRegister, AdmittedDealRegister.class, - new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_BankAccount, BankAccount.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ClearMemberRegister, ClearMemberRegister.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Contact, Contact.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ContractRegister, ContractRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CoveredDealRegister, CoveredDealRegister.class, + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_AdmittedLiabilitiesRegister, AdmittedLiabilitiesRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CoveredLiabilitiesRegister, CoveredLiabilitiesRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DepoBalanceRegister, DepoBalanceRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DepoPaymentInstructionRegister, DepoPaymentInstructionRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExcludeLiabilitiesRegister, ExcludeLiabilitiesRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExecutionRegister, ExecutionRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_LiabilitiesRegister, LiabilitiesRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MoneyBalanceRegister, MoneyBalanceRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MoneyPaymentInstructionRegister, MoneyPaymentInstructionRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Currency, Currency.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DealRegister, DealRegister.class, - new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), @@ -298,7 +309,6 @@ public class RunnableMapNamesForTesting { //new SettingOperation("setNominalValue", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("25.25")}) )); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Notification, Notification.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_OrderRegister, OrderRegister.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_OutDocumentJournal, OutDocumentJournal.class, new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("28.28")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class)); @@ -318,9 +328,6 @@ public class RunnableMapNamesForTesting { checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf11, SDf11.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf12, SDf12.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf13, SDf13.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf16, SDf16.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf17, SDf17.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf18, SDf18.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Session, Session.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_STrades, STrades.class, new SettingOperation("setQty", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}), @@ -329,10 +336,6 @@ public class RunnableMapNamesForTesting { new SettingOperation("setQty", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(18)}), new SettingOperation("setValue", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(18)}) )); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UncoveredDealRegister, UncoveredDealRegister.class, - new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UserRoleSession, UserRoleSession.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UserSettings, UserSettings.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_VerificationResult, VerificationResult.class, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/SchedulerServiceImdgConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ImdgConfig.java similarity index 97% rename from clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/SchedulerServiceImdgConfig.java rename to clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ImdgConfig.java index f9d5da568..69fea82d7 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/SchedulerServiceImdgConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ImdgConfig.java @@ -10,7 +10,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; @Configuration -public class SchedulerServiceImdgConfig { +public class ImdgConfig { private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) { ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor(); if (maxPoolSz > 2) { diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/SchedulerServiceConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/SchedulerServiceConfig.java new file mode 100644 index 000000000..4e9c619c0 --- /dev/null +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/SchedulerServiceConfig.java @@ -0,0 +1,17 @@ +package ru.spcex.clearing.scheduler.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.TaskScheduler; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; + +@Configuration +public class SchedulerServiceConfig { + @Bean(name = "taskScheduler") + public TaskScheduler taskScheduler() { + ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); + threadPoolTaskScheduler.setPoolSize(5); + threadPoolTaskScheduler.setThreadNamePrefix("ThreadPoolTaskScheduler"); + return threadPoolTaskScheduler; + } +} diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ClearingCalendarValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ClearingCalendarValidationConfig.java index 3d7327714..237040622 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ClearingCalendarValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ClearingCalendarValidationConfig.java @@ -43,6 +43,7 @@ public class ClearingCalendarValidationConfig { IMDGDistributedNames.Map_Company, Company.class, ValidationError.CompanyNotFound, + false, company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : ValidationError.CompanyNotActive), DictionaryPresentRule.instance("dayStatus", ClearingCalendarNewRequest::getDayStatus, @@ -74,6 +75,7 @@ public class ClearingCalendarValidationConfig { IMDGDistributedNames.Map_Company, Company.class, ValidationError.CompanyNotFound, + false, company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : ValidationError.CompanyNotActive), DictionaryPresentRule.instance("dayStatus", ClearingCalendarUpdateRequest::getDayStatus, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java index e0390eab6..77adaefcc 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java @@ -45,7 +45,9 @@ public class PlannerTemplateValidationConfig { IMDGDistributedNames.Map_TaskDictionary, TaskDictionary.class), TimeNotBeforeRule.instance("taskTime", - PlannerTemplateNewRequest::getTaskTime), + PlannerTemplateNewRequest::getTaskTime, + true, + false), DictionaryPresentRule.instance("taskStatus", PlannerTemplateNewRequest::getTaskStatus, IMDGDistributedNames.Map_TaskStatusDictionary, @@ -55,12 +57,14 @@ public class PlannerTemplateValidationConfig { IMDGDistributedNames.Map_Company, Company.class, ValidationError.CompanyNotFound, + false, company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : ValidationError.CompanyNotActive), IdPresentRule.instance("securityId", PlannerTemplateNewRequest::getSecurityId, IMDGDistributedNames.Map_Security, Security.class, ValidationError.SecurityNotFound, + false, security -> WorkflowStatus.Active.equalsByKey(security.getWorkflowStatus()) ? null : ValidationError.SecurityNotActive) ); }; @@ -90,6 +94,7 @@ public class PlannerTemplateValidationConfig { false), TimeNotBeforeRule.instance("taskTime", PlannerTemplateUpdateRequest::getTaskTime, + false, false), DictionaryPresentRule.instance("taskStatus", PlannerTemplateUpdateRequest::getTaskStatus, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java index c60e0d628..fa6e186af 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java @@ -62,12 +62,14 @@ public class PlannerValidationConfig { IMDGDistributedNames.Map_Company, Company.class, ValidationError.CompanyNotFound, + false, company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : ValidationError.CompanyNotActive), IdPresentRule.instance("securityId", PlannerNewRequest::getSecurityId, IMDGDistributedNames.Map_Security, Security.class, ValidationError.SecurityNotFound, + false, security -> WorkflowStatus.Active.equalsByKey(security.getWorkflowStatus()) ? null : ValidationError.SecurityNotActive) ); }; diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java index 9aed3335e..2f0719507 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java @@ -48,7 +48,7 @@ public class TaskManager implements InitializingBean, AutoCloseable { private final ExecutorService outputExecutor; @Autowired - TaskManager(TaskScheduler taskScheduler, + TaskManager(@Qualifier("taskScheduler") TaskScheduler taskScheduler, ImdgProvider imdgProvider, LauncherSender launcherSender, @Qualifier("plannerQueue") BlockingQueue> plannerQueue) { diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java index a8ab3cd4f..39e53a19a 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java @@ -55,6 +55,6 @@ public record EnumPresentRule(String fieldName, for (E enumValue : enumValues) { if (enumValue.getKey().equals(enumCode)) return empty(); } - return of(ValidationError.WrongEnumValue, fieldName); + return of(ValidationError.WrongDictionaryValue, fieldName); } } diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java index c2a6b2173..51e4f577f 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java @@ -19,7 +19,7 @@ import ru.clearing.platform.dictionary.TaskStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.scheduler.config.ErrorResolverConfig; import ru.spcex.clearing.scheduler.config.PlannerQueueConfig; -import ru.spcex.clearing.scheduler.config.SchedulerTestConfig; +import ru.spcex.clearing.scheduler.config.SchedulerServiceConfig; import ru.spcex.clearing.scheduler.config.validation.ClearingCalendarValidationConfig; import ru.spcex.clearing.scheduler.config.validation.PlannerTemplateValidationConfig; import ru.spcex.clearing.scheduler.config.validation.PlannerValidationConfig; @@ -60,7 +60,7 @@ import static ru.spcex.platform.enumeration.Market.mkrs; LauncherService.class, ErrorResolverConfig.class, PlannerQueueConfig.class, - SchedulerTestConfig.class, + SchedulerServiceConfig.class, ImdgTestConfig.class, KafkaTestConfig.class}) public abstract class AbstractServiceTest { diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/validation/EnumPresentRuleTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/validation/EnumPresentRuleTest.java index 5d039d6aa..cfc803a26 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/validation/EnumPresentRuleTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/validation/EnumPresentRuleTest.java @@ -85,7 +85,7 @@ class EnumPresentRuleTest extends AbstractServiceTest { setter.accept(record, "BAD_VALUE"); enumMessages = strictValidator.validateAll(); assertEquals(1, enumMessages.size()); - assertEquals(ValidationError.WrongEnumValue, enumMessages.iterator().next().getSubject()); + assertEquals(ValidationError.WrongDictionaryValue, enumMessages.iterator().next().getSubject()); } } \ No newline at end of file diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java index b1fcc4ec7..528c77777 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java @@ -19,6 +19,7 @@ import ru.spcex.platform.enumeration.Status; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +@Deprecated // KeyRate was deleted @Service public class KeyRateService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); diff --git a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateFactory.java b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateFactory.java index f94d01e38..7dd532dc8 100644 --- a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateFactory.java +++ b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateFactory.java @@ -8,6 +8,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateUpdateRe import java.math.BigDecimal; import java.time.LocalDate; +@Deprecated class KeyRateFactory { LocalDate startDate = LocalDate.ofEpochDay(0); LocalDate endDate = LocalDate.ofEpochDay(0); diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java index 1e6577dd3..e4e2085f3 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java @@ -2,6 +2,7 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; +@Deprecated // Словарь balanceAccountTypeDictionary удалён public enum BalanceAccountType implements IEnumKey { Active("ACTV"), Blocked("BLKD"); diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java index 8bd22f9ff..82526ebaa 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java @@ -2,6 +2,7 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; +@Deprecated // словарь ClearingStatusDictionary удалён public enum ClearingStatus implements IEnumKey { OK("OK"), FAIL("FAIL"), diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryPurpose.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryPurpose.java new file mode 100644 index 000000000..724d5519d --- /dev/null +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryPurpose.java @@ -0,0 +1,20 @@ +package ru.spcex.platform.enumeration; + +import ru.spcex.platform.utils.enumeration.IEnumKey; + +public enum TradingClearingRegistryPurpose implements IEnumKey { + M("M"), + C("C"), + ; + + private final String key; + + TradingClearingRegistryPurpose(String key) { + this.key = key; + } + + @Override + public String getKey() { + return key; + } +} diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index 4e132c480..2d027ab6c 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -11,6 +11,7 @@ public final class IMDGDistributedNames { public static final String Map_Contact = "Map_Contact"; public static final String Map_ProfileDocument = "Map_ProfileDocument"; public static final String Map_Account = "Map_Account"; + @Deprecated public static final String Map_AccountBalance = "Map_AccountBalance"; public static final String Map_AccountHistory = "Map_AccountHistory"; public static final String Map_AccountBalanceHistory = "Map_AccountBalanceHistory"; @@ -18,6 +19,7 @@ public final class IMDGDistributedNames { public static final String Map_ClearingAccount = "Map_ClearingAccount"; public static final String Map_ClearingAccountHistory = "Map_ClearingAccountHistory"; public static final String Map_ManagementJournal = "Map_ManagementJournal"; + public static final String Map_NotificationStatusDictionary = "Map_NotificationStatusDictionary"; public static final String Map_Listing = "Map_Listing"; public static final String Map_Market = "Map_Market"; public static final String Map_BankAccount = "Map_BankAccount"; @@ -30,7 +32,8 @@ public final class IMDGDistributedNames { public static final String Map_RelationHistory = "Map_RelationHistory"; public static final String Map_ErrorText = "Map_ErrorText"; public static final String Map_Statement = "Map_Statement"; - public static final String Map_MarketAccess = "Map_MarketAccess"; + public static final String Map_MarketAccess = "Map_MarketAccess"; // todo unused? + public static final String Map_MarketTypeDictionary = "Map_MarketTypeDictionary"; public static final String Map_UserConnect = "Map_UserConnect"; public static final String Map_UserConnectHistory = "Map_UserConnectHistory"; public static final String Map_User = "Map_User"; @@ -42,6 +45,7 @@ public final class IMDGDistributedNames { public static final String Map_PlannerTemplate = "Map_PlannerTemplate"; public static final String Map_InDocumentJournal = "Map_InDocumentJournal"; public static final String Map_OutDocumentJournal = "Map_OutDocumentJournal"; + public static final String Map_ObjectTypeDictionary = "Map_ObjectTypeDictionary"; public static final String Map_SDf01 = "Map_SDf01"; public static final String Map_SDf02 = "Map_SDf02"; public static final String Map_SDf03 = "Map_SDf03"; @@ -50,11 +54,14 @@ public final class IMDGDistributedNames { public static final String Map_SDf10 = "Map_SDf10"; public static final String Map_SDf11 = "Map_SDf11"; public static final String Map_SDf13 = "Map_SDf13"; + @Deprecated public static final String Map_SDf17 = "Map_SDf17"; + @Deprecated public static final String Map_SDf16 = "Map_SDf16"; public static final String Map_SDf08 = "Map_SDf08"; public static final String Map_SDf09 = "Map_SDf09"; public static final String Map_SDf12 = "Map_SDf12"; + @Deprecated public static final String Map_SDf18 = "Map_SDf18"; public static final String Map_SDf51 = "Map_sDf51"; public static final String Map_SDf52 = "Map_sDf52"; @@ -71,11 +78,13 @@ public final class IMDGDistributedNames { public static final String Map_OrganizationTypeDictionary = "Map_OrganizationTypeDictionary"; public static final String Map_WorkflowStatusDictionary = "Map_WorkflowStatusDictionary"; public static final String Map_AccountTypeDictionary = "Map_AccountTypeDictionary"; - public static final String Map_BalanceAccountTypeDictionary = "Map_BalanceAccountTypeDictionary"; + @Deprecated public static final String Map_ClearingStatusDictionary = "Map_ClearingStatusDictionary"; public static final String Map_CurrencyCodeDictionary = "Map_CurrencyCodeDictionary"; public static final String Map_ErrorCodeDictionary = "Map_ErrorCodeDictionary"; + public static final String Map_EventTypeDictionary = "Map_EventTypeDictionary"; public static final String Map_InOutDirectionDictionary = "Map_InOutDirectionDictionary"; + public static final String Map_InOutSDfTypeDictionary = "Map_InOutSDfTypeDictionary"; public static final String Map_InstrumentTypeDictionary = "Map_InstrumentTypeDictionary"; public static final String Map_ManagementJournalPurposeDictionary = "Map_ManagementJournalPurposeDictionary"; public static final String Map_ManagementJournalStatusDictionary = "Map_ManagementJournalStatusDictionary"; @@ -89,8 +98,8 @@ public final class IMDGDistributedNames { public static final String Map_ServiceStatusDictionary = "Map_ServiceStatusDictionary"; public static final String Map_StatementTypeDictionary = "Map_StatementTypeDictionary"; public static final String Map_TermTypeDictionary = "Map_TermTypeDictionary"; + public static final String Map_TransactionStatusDictionary = "Map_TransactionStatusDictionary"; public static final String Map_CourierTypeDictionary = "Map_CourierTypeDictionary"; - public static final String Map_ChargeDirectionDictionary = "Map_ChargeDirectionDictionary"; public static final String Map_TaskDictionary = "Map_TaskDictionary"; public static final String Map_TaskStatusDictionary = "Map_TaskStatusDictionary"; public static final String Map_DayStatusDictionary = "Map_DayStatusDictionary"; @@ -99,6 +108,7 @@ public final class IMDGDistributedNames { public static final String Map_UserRoleDictionary = "Map_UserRoleDictionary"; public static final String Map_UserSettings = "Map_UserSettings"; public static final String Map_UserRoleSession = "Map_UserRoleSession"; + @Deprecated public static final String Map_KeyRate = "Map_KeyRate"; public static final String Map_MoneyMarketSecurity = "Map_MoneyMarketSecurity"; public static final String Map_Currency = "Map_Currency"; @@ -107,28 +117,23 @@ public final class IMDGDistributedNames { public static final String Map_Session = "Map_Session"; public static final String Map_SessionHistory = "Map_SessionHistory"; public static final String Map_Notification = "Map_Notification"; + @Deprecated public static final String Map_LiabilitiesClaimsAssets = "Map_LiabilitiesClaimsAssets"; + @Deprecated public static final String Map_LiabilitiesClaimsMoney = "Map_LiabilitiesClaimsMoney"; - public static final String Map_ClearMemberRegister = "Map_ClearMemberRegister"; - public static final String Map_ClearMemberRegisterChange = "Map_ClearMemberRegisterChange"; - public static final String Map_BalanceRegister = "Map_BalanceRegister"; public static final String Map_ExecutionDeposit = "Map_ExecutionDeposit"; public static final String Map_ExecutionDepositHistory = "Map_ExecutionDepositHistory"; - public static final String Map_DealRegister = "Map_DealRegister"; - public static final String Map_DepoBalanceRegister = "Map_DepoBalanceRegister"; - public static final String Map_MoneyBalanceRegister = "Map_MoneyBalanceRegister"; - public static final String Map_AdmittedLiabilitiesRegister = "Map_AdmittedLiabilitiesRegister"; - public static final String Map_CoveredLiabilitiesRegister = "Map_CoveredLiabilitiesRegister"; - public static final String Map_MoneyPaymentInstructionRegister = "Map_MoneyPaymentInstructionRegister"; - public static final String Map_DepoPaymentInstructionRegister = "Map_DepoPaymentInstructionRegister"; - public static final String Map_ExcludeLiabilitiesRegister = "Map_ExcludeLiabilitiesRegister"; - public static final String Map_LiabilitiesRegister = "Map_LiabilitiesRegister"; - public static final String Map_ExecutionRegister = "Map_ExecutionRegister"; - public static final String Map_CoveredDealRegister = "Map_CoveredDealRegister"; - public static final String Map_UncoveredDealRegister = "Map_UncoveredDealRegister"; public static final String Map_ReportRegister = "Map_ReportRegister"; public static final String Map_ContractRegister = "Map_ContractRegister"; - public static final String Map_OrderRegister = "Map_OrderRegister"; + public static final String Map_AdmittedLiabilitiesRegister = "Map_AdmittedLiabilitiesRegister"; + public static final String Map_CoveredLiabilitiesRegister = "Map_CoveredLiabilitiesRegister"; + public static final String Map_DepoBalanceRegister = "Map_DepoBalanceRegister"; + public static final String Map_DepoPaymentInstructionRegister = "Map_DepoPaymentInstructionRegister"; + public static final String Map_ExcludeLiabilitiesRegister = "Map_ExcludeLiabilitiesRegister"; + public static final String Map_ExecutionRegister = "Map_ExecutionRegister"; + public static final String Map_LiabilitiesRegister = "Map_LiabilitiesRegister"; + public static final String Map_MoneyBalanceRegister = "Map_MoneyBalanceRegister"; + public static final String Map_MoneyPaymentInstructionRegister = "Map_MoneyPaymentInstructionRegister"; public static final String Map_VerificationResult = "Map_VerificationResult"; public static final String Map_STrades = "Map_STrades"; public static final String Map_SectionDictionary = "Map_SectionDictionary"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index 21f577f7f..10f1934e1 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -72,7 +72,9 @@ public interface Consts { @Deprecated String ACCOUNT_NEW_SDF01 = "account-new-sdf01"; + String DESTINATION_RELATION_NEW = "relation-new"; String DESTINATION_RELATION_UPDATE = "relation-update"; + String DESTINATION_RELATION_DELETE = "relation-delete"; String DESTINATION_PROFILE_DOCUMENT_NEW = "profile-document-new"; String DESTINATION_PROFILE_DOCUMENT_UPDATE = "profile-document-update"; String DESTINATION_PROFILE_DOCUMENT_DELETE = "profile-document-delete"; @@ -83,9 +85,10 @@ public interface Consts { String DESTINATION_CLIENT_CODE_DELETE = "client-code-delete"; String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; + String DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW = "trading-clearing-registry-auto-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update"; - String DESTINATION_TRADING_CLEARING_REGISTRY_DELETE = "trading-clearing-registry-delete"; // String DESTINATION_TRADING_CLEARING_REGISTRY_REPLY = "trading-clearing-registry"; + String DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK = "trading-clearing-registry-block"; String DESTINATION_SDF08_NEW = "s-df-08-new"; String DESTINATION_SDF02_NEW = "s-df-02-new"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/RelationNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/RelationNewRequest.java new file mode 100644 index 000000000..9e630303a --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/RelationNewRequest.java @@ -0,0 +1,46 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.company; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class RelationNewRequest { + @JsonProperty + public Long companyId; + @JsonProperty + private String serviceStatus; + @JsonProperty + private String clearingMemberCategory; + @JsonProperty + private String comment; + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long companyId) { + this.companyId = companyId; + } + + public String getServiceStatus() { + return serviceStatus; + } + + public void setServiceStatus(String serviceStatus) { + this.serviceStatus = serviceStatus; + } + + public String getClearingMemberCategory() { + return clearingMemberCategory; + } + + public void setClearingMemberCategory(String clearingMemberCategory) { + this.clearingMemberCategory = clearingMemberCategory; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/AdmittedDealRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/AdmittedDealRegisterNewRequest.java deleted file mode 100644 index 41870f415..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/AdmittedDealRegisterNewRequest.java +++ /dev/null @@ -1,211 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.registry; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class AdmittedDealRegisterNewRequest { - @JsonProperty - public Long executionId; - @JsonProperty - public String companyFullName; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate tradingDate; - @JsonProperty - public Long exchangeExecutionId; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant exchangeExecutionTime; - @JsonProperty - public String securitySymbol; - @JsonProperty - public String securityFullName; - @JsonProperty - public String sellerFullName; - @JsonProperty - public String sellerClearingCode; - @JsonProperty - public String sellerAccount; - @JsonProperty - public String buyerFullName; - @JsonProperty - public String buyerClearingCode; - @JsonProperty - public String buyerAccount; - @JsonProperty - public BigDecimal amount; - @JsonProperty - public Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant updatedAt; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateNewRequest.java index 5bf616b23..fe89f75c2 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateNewRequest.java @@ -8,7 +8,7 @@ import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSeria import java.math.BigDecimal; import java.time.LocalDate; - +@Deprecated public class KeyRateNewRequest { @JsonProperty public BigDecimal keyRate; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateUpdateRequest.java index 7534f9078..04ad1413d 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateUpdateRequest.java @@ -8,7 +8,7 @@ import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSeria import java.math.BigDecimal; import java.time.LocalDate; - +@Deprecated public class KeyRateUpdateRequest { @JsonProperty public Long id; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/STradesImportedRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/STradesImportedRequest.java index 348527aae..30383c910 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/STradesImportedRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/STradesImportedRequest.java @@ -1,4 +1,16 @@ package ru.spcex.clearing.platform.messaging.domain.cud.utilities; +import com.fasterxml.jackson.annotation.JsonProperty; + public class STradesImportedRequest { + @JsonProperty + private Long tradeNum; + + public Long getTradeNum() { + return tradeNum; + } + + public void setTradeNum(Long tradeNum) { + this.tradeNum = tradeNum; + } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java index 3f7afe713..380250d37 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java @@ -83,9 +83,11 @@ public class QueueConsumer implements AutoCloseable { Object o = null; int lastErrors = 0; while (!closed.get()) { + String lastTopic = null; try { ConsumerRecords records = consumer.poll(Duration.of(10, ChronoUnit.SECONDS)); for (ConsumerRecord next : records) { + lastTopic = next.topic(); ConsumerSpecificClass callback = callbacks.get(next.topic()); Class clazz = callback.getClazz(); JavaType payloadType = json.getTypeFactory().constructParametricType(BaseRequest.class, clazz); @@ -99,7 +101,8 @@ public class QueueConsumer implements AutoCloseable { } lastErrors = 0; } catch (Throwable e) { - log.error(ExceptionUtils.getStackTrace(e)); + log.error("Listener {} last topic \"{}\", error: {}", + QueueConsumer.this.getClass().getName(), lastTopic, ExceptionUtils.getStackTrace(e)); if (producer != null && o != null) { sendErrorResponse((BaseRequest) o); }