From 93d707961c4152a1f5028c512c287c8e4889c4f7 Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 3 May 2023 17:47:19 +0300 Subject: [PATCH 01/27] TradingClearingRegistryService in progress --- ...adingClearingRegistryValidationConfig.java | 130 +++++++++++++ .../config/validation/ValidationConfig.java | 2 + .../clearing/account/errors/AccountError.java | 3 +- .../TradingClearingRegistryService.java | 179 ++++++++++++++++++ .../TradingClearingRegistryController.java | 4 +- ...TradingClearingRegistryControllerTest.java | 4 +- .../registry/TradingClearingRegistry.java | 1 + .../TradingClearingRegistryPurpose.java | 20 ++ .../platform/messaging/domain/Consts.java | 2 +- 9 files changed, 339 insertions(+), 6 deletions(-) create mode 100644 clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java create mode 100644 clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java create mode 100644 platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryPurpose.java 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..4cfd24e05 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -0,0 +1,130 @@ +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.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; +import ru.spcex.clearing.account.errors.AccountError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +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.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.WorkflowStatus; +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_Account); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + 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 accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByID(moneyAccountId); + if (account == null) return AccountError.AccountNotFound; + return null; + }), + FieldRequiredRule.instance("depoAccountId", + TradingClearingRegistryNewRequest::getDepoAccountId, + AccountError.RequiredFieldEmpty, + false, + depoAccountId -> { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByID(depoAccountId); + if (account == null) return AccountError.AccountNotFound; + return null; + }), + DictionaryPresentRule.instance("status", + TradingClearingRegistryNewRequest::getStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false, + statusValue -> { + String statusCode = statusValue.getCode(); + if (WorkflowStatus.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_WorkflowStatusDictionary); + 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_WorkflowStatusDictionary, + WorkflowStatusDictionary.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", + CommonDeleteRequest::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 36cebc49d..e9d50af15 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 @@ -11,6 +11,7 @@ import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary; import ru.clearing.platform.dictionary.CurrencyCodeDictionary; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -39,6 +40,7 @@ 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_WorkflowStatusDictionary, WorkflowStatusDictionary.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..7a4b12852 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 @@ -12,7 +12,8 @@ public enum AccountError implements IErrorEnumId { CompanyNotFound(5013L), CompanyNotActive(5014L), InfoAccountAlreadyExist(5015L), - ClearingCategoryNotFound(5019L) + ClearingCategoryNotFound(5019L), + TradingClearingRegistryNotFound(5022L), ; private final Long id; 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..43a903066 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -0,0 +1,179 @@ +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.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +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.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.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.validation.IValidator; + +import java.time.Instant; +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 companyImdg; + + private final Function tradingClearingRegistryUpdateRequestValidator; + private final Function tradingClearingRegistryNewRequestValidator; + private final Function tradingClearingRegistryBlockRequestValidator; + + public TradingClearingRegistryService(Consumer kafkaQueue, + Producer kafkaProducer, + ImdgProvider imdgProvider, + ValidationHelper validationHelper, + UserRoleVerification userRoleVerification, + @Qualifier("tradingClearingRegistryNewRequest") + Function tradingClearingRegistryNewRequestValidator, + @Qualifier("tradingClearingRegistryUpdateRequest") + Function tradingClearingRegistryUpdateRequestValidator, + @Qualifier("tradingClearingRegistryBlockRequest") + Function tradingClearingRegistryBlockRequestValidator) { + super(kafkaQueue, kafkaProducer); + this.validationHelper = validationHelper; + this.userRoleVerification = userRoleVerification; + 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.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; + this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; + } + + @Override + public void afterPropertiesSet() throws Exception { + init(); + 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(CommonDeleteRequest.class) + .setConsumer(this::tradingClearingRegistryBlock) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); + } + + 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()); + tradingClearingRegistry.setStatus(WorkflowStatus.Active.getKey()); + + // todo tradingClearingRegistryType из соответствующего параметра очереди но в запросе он не фигурирует + // пока оставил вычисление аналогичное автоматическому добавлению ТКР + String tradingRegistryType; + if (req.getDepoAccountId() != null) { + DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()); + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + tradingRegistryType = clearingAccount.getClearingAccountType(); + } + 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 = company.getClearingCode() + registryPurpose.getKey() + registryPurpose; + 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; + + CommonDeleteRequest req = userRequest.getRequestPayload(); + TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); + + tradingClearingRegistry.setStatus(WorkflowStatus.Blocked.getKey()); + + tradingClearingRegistryImdg.update(tradingClearingRegistry); + + log.debug("successfully processed, id {}", tradingClearingRegistry.getId()); + return null; + } +} 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/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/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/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-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 9842d71ef..4a9861ffd 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 @@ -83,7 +83,7 @@ public interface Consts { String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-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_BLOCK = "trading-clearing-registry-block"; String DESTINATION_SDF08_NEW = "s-df-08-new"; String DESTINATION_SDF02_NEW = "s-df-02-new"; From 71203b08e78906e58ce7d55b7758e19c62da4295 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 09:51:10 +0300 Subject: [PATCH 02/27] http://jira.mfd.msk:8088/browse/CLS-271 fix statuses --- .../validation/AccountValidationConfig.java | 27 ++++--- .../BankAccountValidationConfig.java | 3 +- .../ClearingAccountValidationConfig.java | 6 +- .../DepoAccountValidationConfig.java | 4 +- ...adingClearingRegistryValidationConfig.java | 73 ++++++++++++++++++- .../config/validation/ValidationConfig.java | 4 +- .../account/service/AccountService.java | 4 +- .../account/service/BankAccountService.java | 6 +- .../service/ClearingAccountService.java | 12 +-- .../account/service/DepoAccountService.java | 4 +- .../service/InformationAccountService.java | 4 +- .../TradingClearingRegistryService.java | 13 ++++ .../account/service/AccountServiceTest.java | 21 ++++-- .../service/ClearingAccountServiceTest.java | 6 +- .../service/DepoAccountServiceTest.java | 2 +- .../InformationAccountServiceTest.java | 2 +- .../platform/messaging/domain/Consts.java | 1 + 17 files changed, 144 insertions(+), 48 deletions(-) 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..8f9cd76eb 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.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, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, accountType -> { @@ -164,7 +169,7 @@ public class AccountValidationConfig { 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..c4c350bb4 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 @@ -17,6 +17,7 @@ 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, 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 index 4cfd24e05..27e0c6581 100644 --- 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 @@ -5,6 +5,7 @@ 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.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -15,6 +16,7 @@ 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.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.validation.ImdgValidationContext; @@ -27,6 +29,71 @@ import java.util.function.Function; @Configuration public class TradingClearingRegistryValidationConfig { + @Bean("tradingClearingRegistryAutoNewRequest") + public Function tradingClearingRegistryAutoNewRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryAutoNewRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryAutoNewRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + 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 accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByID(moneyAccountId); + if (account == null) return AccountError.AccountNotFound; + return null; + }), + FieldRequiredRule.instance("depoAccountId", + TradingClearingRegistryNewRequest::getDepoAccountId, + AccountError.RequiredFieldEmpty, + false, + depoAccountId -> { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByID(depoAccountId); + if (account == null) return AccountError.AccountNotFound; + return null; + }), + DictionaryPresentRule.instance("status", + TradingClearingRegistryNewRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false, + statusValue -> { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Long moneyAccountId = tradingClearingRegistryAutoNewRequest.getMoneyAccountId(); + Long depoAccountId = tradingClearingRegistryAutoNewRequest.getDepoAccountId(); + Account moneyAccount = accountImdg.getSingleObjectByID(moneyAccountId); + Account depoAccount = depoAccountId != null ? accountImdg.getSingleObjectByID(depoAccountId) : null; + if ( + (depoAccount != null && (ServiceStatus.Active.equalsByKey(depoAccount.getStatus()) || ServiceStatus.Reopened.equalsByKey(depoAccount.getStatus()))) && + (ServiceStatus.Active.equalsByKey(moneyAccount.getStatus()) || ServiceStatus.Reopened.equalsByKey(moneyAccount.getStatus())) + ) { + + } + + String statusCode = statusValue.getCode(); + if (WorkflowStatus.Active.equalsByKey(statusCode)) return null; + return AccountError.WrongFieldValue; + }) + ); + }; + } + @Bean("tradingClearingRegistryNewRequest") public Function tradingClearingRegistryNewRequestValidator( Map> imdgForValidation @@ -66,14 +133,14 @@ public class TradingClearingRegistryValidationConfig { }), DictionaryPresentRule.instance("status", TradingClearingRegistryNewRequest::getStatus, - IMDGDistributedNames.Map_WorkflowStatusDictionary, - WorkflowStatusDictionary.class, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, false, statusValue -> { String statusCode = statusValue.getCode(); - if (WorkflowStatus.Active.equalsByKey(statusCode)) return null; + if (ServiceStatus.Active.equalsByKey(statusCode)) return null; return AccountError.WrongFieldValue; }) ); 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 43cbba292..fd41493df 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 @@ -12,7 +12,7 @@ import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.AccountTypeDictionary; import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary; import ru.clearing.platform.dictionary.CurrencyCodeDictionary; -import ru.clearing.platform.dictionary.WorkflowStatusDictionary; +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; @@ -41,7 +41,7 @@ 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_WorkflowStatusDictionary, WorkflowStatusDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class); return imdg; } 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..fdc36e84d 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 @@ -28,8 +28,8 @@ 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; @@ -173,7 +173,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { CommonDeleteRequest 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..de0fb0be8 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 @@ -20,8 +20,8 @@ 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; @@ -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); @@ -207,7 +207,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea 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(); 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..a4ceddaa6 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 @@ -20,8 +20,8 @@ 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.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; @@ -92,7 +92,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); @@ -137,7 +137,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, @@ -156,9 +156,9 @@ public class ClearingAccountService extends QueueConsumer implements Initializin } 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..719820108 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 @@ -16,8 +16,8 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewReq import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; 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; @@ -74,7 +74,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); 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..5bb94636b 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 @@ -19,8 +19,8 @@ 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.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; @@ -105,7 +105,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); 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 index 43a903066..cec060ea0 100644 --- 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 @@ -74,6 +74,9 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini @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); @@ -85,6 +88,16 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); } + public RequestInfoUpdate tradingClearingRegistryAutoNew(BaseRequest userRequest) { + log.debug("TradingClearingRegistryAutoNewRequest received"); + + + + Long id = null; + log.debug("successfully processed, id {}", id); + return null; + } + public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { log.debug("TradingClearingRegistryNewRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); 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..45509b2c8 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 @@ -156,7 +156,7 @@ class ClearingAccountServiceTest { 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 +182,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 +193,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..79dd222f8 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 @@ -155,7 +155,7 @@ class DepoAccountServiceTest { 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..54879a30b 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 @@ -144,7 +144,7 @@ class InformationAccountServiceTest { 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/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 c250e2a6e..d6b06bcf7 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 @@ -81,6 +81,7 @@ public interface Consts { String DESTINATION_CLIENT_CODE_UPDATE = "client-code-update"; String DESTINATION_CLIENT_CODE_DELETE = "client-code-delete"; + String DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW = "trading-clearing-registry-auto-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update"; String DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK = "trading-clearing-registry-block"; From 9d1a3784472a3ac0f7c94fdba53b72bdd1e126cb Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 10:45:01 +0300 Subject: [PATCH 03/27] http://jira.mfd.msk:8088/browse/CLS-271 TradingClearingRegistryService --- ...adingClearingRegistryValidationConfig.java | 76 ++--------------- .../TradingClearingRegistryService.java | 83 +++++++++++++------ .../platform/messaging/domain/Consts.java | 1 - 3 files changed, 62 insertions(+), 98 deletions(-) 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 index 27e0c6581..b32ebb6e5 100644 --- 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 @@ -6,7 +6,6 @@ import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.ServiceStatusDictionary; -import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; @@ -17,7 +16,6 @@ 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.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.validation.IValidator; @@ -29,70 +27,6 @@ import java.util.function.Function; @Configuration public class TradingClearingRegistryValidationConfig { - @Bean("tradingClearingRegistryAutoNewRequest") - public Function tradingClearingRegistryAutoNewRequestValidator( - Map> imdgForValidation - ) { - return tradingClearingRegistryAutoNewRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); - context.setValidatedObject(tradingClearingRegistryAutoNewRequest); - Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); - addImdg.accept(IMDGDistributedNames.Map_Company); - addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); - 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 accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByID(moneyAccountId); - if (account == null) return AccountError.AccountNotFound; - return null; - }), - FieldRequiredRule.instance("depoAccountId", - TradingClearingRegistryNewRequest::getDepoAccountId, - AccountError.RequiredFieldEmpty, - false, - depoAccountId -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByID(depoAccountId); - if (account == null) return AccountError.AccountNotFound; - return null; - }), - DictionaryPresentRule.instance("status", - TradingClearingRegistryNewRequest::getStatus, - IMDGDistributedNames.Map_ServiceStatusDictionary, - ServiceStatusDictionary.class, - AccountError.RequiredFieldEmpty, - AccountError.WrongFieldValue, - false, - statusValue -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Long moneyAccountId = tradingClearingRegistryAutoNewRequest.getMoneyAccountId(); - Long depoAccountId = tradingClearingRegistryAutoNewRequest.getDepoAccountId(); - Account moneyAccount = accountImdg.getSingleObjectByID(moneyAccountId); - Account depoAccount = depoAccountId != null ? accountImdg.getSingleObjectByID(depoAccountId) : null; - if ( - (depoAccount != null && (ServiceStatus.Active.equalsByKey(depoAccount.getStatus()) || ServiceStatus.Reopened.equalsByKey(depoAccount.getStatus()))) && - (ServiceStatus.Active.equalsByKey(moneyAccount.getStatus()) || ServiceStatus.Reopened.equalsByKey(moneyAccount.getStatus())) - ) { - - } - - String statusCode = statusValue.getCode(); - if (WorkflowStatus.Active.equalsByKey(statusCode)) return null; - return AccountError.WrongFieldValue; - }) - ); - }; - } @Bean("tradingClearingRegistryNewRequest") public Function tradingClearingRegistryNewRequestValidator( @@ -104,7 +38,7 @@ public class TradingClearingRegistryValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", TradingClearingRegistryNewRequest::getCompanyId, @@ -131,6 +65,8 @@ public class TradingClearingRegistryValidationConfig { if (account == null) return AccountError.AccountNotFound; return null; }), + // todo на будущее: нужна ли эта проверка, если при добавлении регистра статус заполняется автоматически + // на основе полей moneyAccountId и depoAccountId, то же касается TradingClearingRegistryNewRequest, нужно ли там поле status DictionaryPresentRule.instance("status", TradingClearingRegistryNewRequest::getStatus, IMDGDistributedNames.Map_ServiceStatusDictionary, @@ -155,7 +91,7 @@ public class TradingClearingRegistryValidationConfig { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(tradingClearingRegistryUpdateRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); - addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); return new ValidatorImpl<>(context, IdPresentRule.instance("id", @@ -166,8 +102,8 @@ public class TradingClearingRegistryValidationConfig { AccountError.TradingClearingRegistryNotFound), DictionaryPresentRule.instance("status", TradingClearingRegistryUpdateRequest::getStatus, - IMDGDistributedNames.Map_WorkflowStatusDictionary, - WorkflowStatusDictionary.class, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, false) 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 index cec060ea0..c4855b536 100644 --- 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 @@ -7,10 +7,12 @@ 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.company.Company; 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; @@ -19,15 +21,20 @@ import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingR 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.platform.messaging.service.Status; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; -import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.enumeration.EnumMessage; +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.List; import java.util.function.Function; @Service @@ -40,23 +47,27 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final Imdg tradingClearingRegistryImdg; private final Imdg depoAccountImdg; private final Imdg clearingAccountImdg; + private final Imdg accountImdg; private final Imdg companyImdg; private final Function tradingClearingRegistryUpdateRequestValidator; 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, @Qualifier("tradingClearingRegistryNewRequest") Function tradingClearingRegistryNewRequestValidator, @Qualifier("tradingClearingRegistryUpdateRequest") Function tradingClearingRegistryUpdateRequestValidator, @Qualifier("tradingClearingRegistryBlockRequest") - Function tradingClearingRegistryBlockRequestValidator) { + Function tradingClearingRegistryBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.validationHelper = validationHelper; this.userRoleVerification = userRoleVerification; @@ -67,16 +78,15 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.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); @@ -88,18 +98,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); } - public RequestInfoUpdate tradingClearingRegistryAutoNew(BaseRequest userRequest) { - log.debug("TradingClearingRegistryAutoNewRequest received"); - - - - Long id = null; - log.debug("successfully processed, id {}", id); - return null; - } - public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { - log.debug("TradingClearingRegistryNewRequest received"); + log.debug("TradingClearingRegistryAutoNewRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -114,18 +114,46 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini tradingClearingRegistry.setCompanyId(req.getCompanyId()); tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); tradingClearingRegistry.setDepoAaccountId(req.getDepoAccountId()); - tradingClearingRegistry.setStatus(WorkflowStatus.Active.getKey()); - // todo tradingClearingRegistryType из соответствующего параметра очереди но в запросе он не фигурирует - // пока оставил вычисление аналогичное автоматическому добавлению ТКР - String tradingRegistryType; - if (req.getDepoAccountId() != null) { - DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()); - tradingRegistryType = depoAccount.getDepoAccountType(); + DepoAccount depoAccount = req.getDepoAccountId() != null ? depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; + Account depoAccountMain = depoAccount != null ? accountImdg.getSingleObjectByID(depoAccount.getAccountId()) : null; + + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + Account clearingAccountMain = accountImdg.getSingleObjectByID(clearingAccount.getAccountId()); + + List activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); + String status = null; + if (depoAccountMain != null) { + if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(clearingAccountMain.getStatus())) + status = ServiceStatus.Active.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + status = ServiceStatus.Blocked.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + status = ServiceStatus.Suspended.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + status = ServiceStatus.Closed.getKey(); } else { - ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); - tradingRegistryType = clearingAccount.getClearingAccountType(); + if (activeStatuses.contains(clearingAccountMain.getStatus())) + status = ServiceStatus.Active.getKey(); + if (clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + status = ServiceStatus.Blocked.getKey(); + if (clearingAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + status = ServiceStatus.Suspended.getKey(); + if (clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + status = ServiceStatus.Closed.getKey(); } + if (status == null) { + String errMsg = messageResolver.resolve(new EnumMessage(AccountError.WrongFieldValue, req.getMoneyAccountId())); + return new RequestInfoUpdate() + .setStatus(Status.Error) + .setMessage(errMsg) + .setId(userRequest.getId()); + } + tradingClearingRegistry.setStatus(status); + + String tradingRegistryType; + if (depoAccount != null) tradingRegistryType = depoAccount.getDepoAccountType(); + else tradingRegistryType = clearingAccount.getClearingAccountType(); tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); TradingClearingRegistryPurpose registryPurpose; @@ -134,7 +162,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini tradingClearingRegistry.setTradingClearingRegistryPurpose(registryPurpose.getKey()); Company company = companyImdg.getSingleObjectByID(req.getCompanyId()); - String code = company.getClearingCode() + registryPurpose.getKey() + registryPurpose; + 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); @@ -182,7 +211,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini CommonDeleteRequest req = userRequest.getRequestPayload(); TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); - tradingClearingRegistry.setStatus(WorkflowStatus.Blocked.getKey()); + tradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); tradingClearingRegistryImdg.update(tradingClearingRegistry); 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 d6b06bcf7..c250e2a6e 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 @@ -81,7 +81,6 @@ public interface Consts { String DESTINATION_CLIENT_CODE_UPDATE = "client-code-update"; String DESTINATION_CLIENT_CODE_DELETE = "client-code-delete"; - String DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW = "trading-clearing-registry-auto-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update"; String DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK = "trading-clearing-registry-block"; From cdd6a0996fc12d1b88d41a1e5c9a9992b7825bab Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 5 May 2023 11:57:49 +0300 Subject: [PATCH 04/27] =?UTF-8?q?QueueConsumer=20=D1=83=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D1=88=D0=B8=D0=BB=20=D0=BB=D0=BE=D0=B3=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= =?UTF-8?q?.=20IMDGMessageResolver=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BD=D0=B0=D0=B4=D1=91=D0=B6=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=B8=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B0=D1=85=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BE=D0=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/services/IMDGMessageResolver.java | 17 +++++++++++------ .../messaging/service/QueueConsumer.java | 5 ++++- 2 files changed, 15 insertions(+), 7 deletions(-) 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/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); } From 1b98981c9f2977513af0682906f31d5774909ab7 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 5 May 2023 12:48:07 +0300 Subject: [PATCH 05/27] =?UTF-8?q?company-service=20http://jira.mfd.msk:808?= =?UTF-8?q?8/browse/CLS-259=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validation/ContactValidationConfig.java | 2 +- .../ProfileDocumentValidationConfig.java | 12 ++++- .../company/service/CompanyInfoService.java | 47 +++++++++++++++++-- .../service/ProfileDocumentService.java | 6 ++- .../service/CompanySymbolServiceTest.java | 9 ++++ 5 files changed, 66 insertions(+), 10 deletions(-) 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/service/CompanyInfoService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java index 7dd8ba584..0beb21c0a 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 @@ -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.relationHelper.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/ProfileDocumentService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java index 411cfd669..adf51b4ed 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 @@ -174,8 +174,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/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..98383d456 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,6 +12,7 @@ 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; @@ -92,6 +93,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); From 31950816619fb1cd6509733fad20e4b8f71ee283 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 13:59:43 +0300 Subject: [PATCH 06/27] http://jira.mfd.msk:8088/browse/CLS-271 TradingClearingRegistryServiceTest --- .../validation/AccountValidationConfig.java | 8 +- .../BankAccountValidationConfig.java | 8 +- ...adingClearingRegistryValidationConfig.java | 29 +- .../config/validation/ValidationConfig.java | 8 +- .../account/service/AccountService.java | 12 +- .../account/service/BankAccountService.java | 14 +- .../TradingClearingRegistryService.java | 19 +- .../TradingClearingRegistryServiceTest.java | 261 ++++++++++++++++++ 8 files changed, 313 insertions(+), 46 deletions(-) create mode 100644 clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java 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 8f9cd76eb..f1a5f0293 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 @@ -10,7 +10,7 @@ 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.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; @@ -153,17 +153,17 @@ 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, 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 c4c350bb4..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,7 +10,7 @@ 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; @@ -132,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/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java index b32ebb6e5..32fb2f34f 100644 --- 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 @@ -2,13 +2,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.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; 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.CommonDeleteRequest; +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; @@ -37,7 +38,8 @@ public class TradingClearingRegistryValidationConfig { context.setValidatedObject(tradingClearingRegistryNewRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); - addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_ClearingAccount); + addImdg.accept(IMDGDistributedNames.Map_DepoAccount); addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", @@ -50,9 +52,11 @@ public class TradingClearingRegistryValidationConfig { TradingClearingRegistryNewRequest::getMoneyAccountId, AccountError.RequiredFieldEmpty, moneyAccountId -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByID(moneyAccountId); - if (account == null) return AccountError.AccountNotFound; + Imdg clearingAccountImdg = context.obtainMap( + IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class + ); + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(moneyAccountId); + if (clearingAccount == null) return AccountError.AccountNotFound; return null; }), FieldRequiredRule.instance("depoAccountId", @@ -60,9 +64,10 @@ public class TradingClearingRegistryValidationConfig { AccountError.RequiredFieldEmpty, false, depoAccountId -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByID(depoAccountId); - if (account == null) return AccountError.AccountNotFound; + 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; }), // todo на будущее: нужна ли эта проверка, если при добавлении регистра статус заполняется автоматически @@ -112,17 +117,17 @@ public class TradingClearingRegistryValidationConfig { } @Bean("tradingClearingRegistryBlockRequest") - public Function tradingClearingRegistryBlockRequestValidator( + public Function tradingClearingRegistryBlockRequestValidator( Map> imdgForValidation ) { return tradingClearingRegistryBlockRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); + 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", - CommonDeleteRequest::getId, + CommonIdRequest::getId, IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class, AccountError.RequiredFieldEmpty, 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 fd41493df..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,12 +3,10 @@ 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; @@ -41,7 +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/service/AccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java index fdc36e84d..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,7 +21,7 @@ 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; @@ -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,7 +170,7 @@ 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(ServiceStatus.Blocked.getKey()); 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 de0fb0be8..bff14701c 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,7 +15,7 @@ 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; @@ -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(); @@ -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,7 +203,7 @@ 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()); 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 index c4855b536..aaafb6972 100644 --- 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 @@ -16,7 +16,7 @@ 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.CommonDeleteRequest; +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; @@ -52,7 +52,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final Function tradingClearingRegistryUpdateRequestValidator; private final Function tradingClearingRegistryNewRequestValidator; - private final Function tradingClearingRegistryBlockRequestValidator; + private final Function tradingClearingRegistryBlockRequestValidator; private final IMessageResolver messageResolver; @@ -67,7 +67,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini @Qualifier("tradingClearingRegistryUpdateRequest") Function tradingClearingRegistryUpdateRequestValidator, @Qualifier("tradingClearingRegistryBlockRequest") - Function tradingClearingRegistryBlockRequestValidator) { + Function tradingClearingRegistryBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.validationHelper = validationHelper; this.userRoleVerification = userRoleVerification; @@ -93,13 +93,13 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini callback(TradingClearingRegistryUpdateRequest.class) .setConsumer(this::tradingClearingRegistryUpdate) .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, callbacks::put); - callback(CommonDeleteRequest.class) + callback(CommonIdRequest.class) .setConsumer(this::tradingClearingRegistryBlock) .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); } public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { - log.debug("TradingClearingRegistryAutoNewRequest received"); + log.debug("TradingClearingRegistryNewRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -123,7 +123,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini List activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); String status = null; - if (depoAccountMain != null) { + if (depoAccountMain != null && depoAccountMain.getStatus() != null) { if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(clearingAccountMain.getStatus())) status = ServiceStatus.Active.getKey(); if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) @@ -132,7 +132,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini status = ServiceStatus.Suspended.getKey(); if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) status = ServiceStatus.Closed.getKey(); - } else { + } else if (clearingAccountMain.getStatus() != null) { if (activeStatuses.contains(clearingAccountMain.getStatus())) status = ServiceStatus.Active.getKey(); if (clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) @@ -200,7 +200,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini return null; } - public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest userRequest) { + public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest userRequest) { log.debug("TradingClearingRegistryBlockRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -208,10 +208,11 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryBlockRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - CommonDeleteRequest req = userRequest.getRequestPayload(); + CommonIdRequest req = userRequest.getRequestPayload(); TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); tradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); + tradingClearingRegistry.setUpdated(Instant.now()); tradingClearingRegistryImdg.update(tradingClearingRegistry); 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..7704cf73b --- /dev/null +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java @@ -0,0 +1,261 @@ +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.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.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 accountImdg; + private Long accountId; + + static boolean oneNewRequestDone = false; + + @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 + ); + 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); + + 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); + } + + @Test + void tradingClearingRegistryNew_moneyAccount() { + 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, + PARTITION + (oneNewRequestDone ? 1 : 0), + 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); + + oneNewRequestDone = true; + } + + @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, + PARTITION + (oneNewRequestDone ? 1 : 0), + 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); + + oneNewRequestDone = true; + } + + @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 = getJsonStringForUPDATE(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 From 5938786f842f37c56577c81e16ac6696992267c2 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 5 May 2023 14:30:08 +0300 Subject: [PATCH 07/27] =?UTF-8?q?backend-api=20=D0=BF=D0=BE=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=B2=20?= =?UTF-8?q?CompanyInfo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../queue/company/CompanyInfoController.java | 14 +- .../company/CompanyInfoBackendGetAll.java | 48 ++++ .../company/CompanyInfoBackendGetFields.java | 224 ++++++++++++++++++ 3 files changed, 277 insertions(+), 9 deletions(-) create mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyInfoBackendGetAll.java create mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyInfoBackendGetFields.java 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/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; + } +} From 2829e50e7e003e492e4473dcbd65639e7251cc07 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 5 May 2023 14:36:33 +0300 Subject: [PATCH 08/27] =?UTF-8?q?company-service=20http://jira.mfd.msk:808?= =?UTF-8?q?8/browse/CLS-284=20=20=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D0=BE=20(?= =?UTF-8?q?=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D1=82=D1=8C!)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../company/service/CompanyInfoService.java | 2 +- .../company/service/CompanyService.java | 26 ++++++------ ...lationHelper.java => RelationService.java} | 40 ++++++++++++++++++- .../service/CompanyInfoServiceTest.java | 2 +- .../company/service/CompanyServiceTest.java | 2 +- .../service/CompanySymbolServiceTest.java | 2 +- 6 files changed, 54 insertions(+), 20 deletions(-) rename clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/{RelationHelper.java => RelationService.java} (66%) 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 0beb21c0a..03d355d49 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 @@ -111,7 +111,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea transaction.beginTransaction(); boolean txOk = false; try { - companyService.relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); + 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()); 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..542916892 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 @@ -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/RelationHelper.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java similarity index 66% rename from clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationHelper.java rename to clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java index c68595767..ca0c4349f 100644 --- 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/RelationService.java @@ -1,17 +1,27 @@ 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.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.spcex.clearing.company.error.CompanyErrors; 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.ProfileDocumentNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUpdateRequest; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; 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.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.utils.error.ValidationException; @@ -20,15 +30,41 @@ import java.util.Collection; import java.util.Objects; @Service -public class RelationHelper { +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 AccountNotificationHelper accountNotification; @Autowired - public RelationHelper(AccountNotificationHelper accountNotification) { + public RelationService(Consumer kafkaQueue, + Producer kafkaProducer, + ImdgProvider imdgProvider, + + AccountNotificationHelper accountNotification) { + super(kafkaQueue, kafkaProducer); + this.imdgProvider = imdgProvider; this.accountNotification = accountNotification; + +// this.requestHelper = requestHelper.setLogger(log); + } + + @Override + public void afterPropertiesSet() { +// this.profileDocumentMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); +// this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); +//todo all CLS-284 +// callback(ProfileDocumentNewRequest.class) +// .setFunction(this::profileDocumentNew) +// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_NEW, callbacks::put); +// callback(ProfileDocumentUpdateRequest.class) +// .setFunction(this::profileDocumentUpdate) +// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_UPDATE, callbacks::put); +// callback(CommonDeleteRequest.class) +// .setFunction(this::profileDocumentDelete) +// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_DELETE, callbacks::put); +// init(); } protected void createNewRelation(ImdgTransaction transaction, Company company) { 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..b521fd7e4 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 @@ -50,7 +50,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv ValidationConfig.class, CompanySymbolService.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.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..f18f68a84 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 @@ -54,7 +54,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv ValidationConfig.class, CompanySymbolService.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.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 98383d456..39e77828d 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 @@ -50,7 +50,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv CompanyService.class, CompanyValidationConfig.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.class, KafkaTestConfig.class, ImdgTestConfig.class}) From f5e2886ad63bc47372944c56143ea07c5d2b2e1f Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 15:13:43 +0300 Subject: [PATCH 09/27] http://jira.mfd.msk:8088/browse/CLS-271 TradingClearingRegistryService, fix for informationAccount --- ...adingClearingRegistryValidationConfig.java | 10 ++- .../TradingClearingRegistryService.java | 17 ++++- .../TradingClearingRegistryServiceTest.java | 65 +++++++++++++++++-- 3 files changed, 82 insertions(+), 10 deletions(-) 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 index 32fb2f34f..28d06ed70 100644 --- 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 @@ -4,6 +4,7 @@ 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; @@ -40,6 +41,7 @@ public class TradingClearingRegistryValidationConfig { 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", @@ -56,7 +58,13 @@ public class TradingClearingRegistryValidationConfig { IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class ); ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(moneyAccountId); - if (clearingAccount == null) return AccountError.AccountNotFound; + 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", 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 index aaafb6972..9b092effa 100644 --- 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 @@ -10,6 +10,7 @@ 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.registry.TradingClearingRegistry; import ru.spcex.clearing.account.errors.AccountError; @@ -26,6 +27,7 @@ import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; 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.utils.enumeration.EnumMessage; @@ -47,6 +49,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final Imdg tradingClearingRegistryImdg; private final Imdg depoAccountImdg; private final Imdg clearingAccountImdg; + private final Imdg informationAccountImdg; private final Imdg accountImdg; private final Imdg companyImdg; @@ -77,6 +80,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini ); 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.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; @@ -118,8 +122,11 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini 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()); - Account clearingAccountMain = accountImdg.getSingleObjectByID(clearingAccount.getAccountId()); + if (clearingAccount == null) infoAccount = informationAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + Long clearingAccountId = clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); + Account clearingAccountMain = accountImdg.getSingleObjectByID(clearingAccountId); List activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); String status = null; @@ -152,8 +159,12 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini tradingClearingRegistry.setStatus(status); String tradingRegistryType; - if (depoAccount != null) tradingRegistryType = depoAccount.getDepoAccountType(); - else tradingRegistryType = clearingAccount.getClearingAccountType(); + if (depoAccount != null) { + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType(); + else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey(); + } tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); TradingClearingRegistryPurpose registryPurpose; 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 index 7704cf73b..4ac339059 100644 --- 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 @@ -15,6 +15,7 @@ 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; @@ -31,6 +32,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingR 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; @@ -76,10 +78,15 @@ class TradingClearingRegistryServiceTest { private Imdg depoAccountImdg; private Long depoAccountId; + private Imdg informationAccountImdg; + private Long infoAccountId; + private Imdg accountImdg; private Long accountId; - static boolean oneNewRequestDone = false; + private Long account2Id; + + static int newRequestCnt = 0; @PostConstruct private void init() { @@ -102,6 +109,9 @@ class TradingClearingRegistryServiceTest { 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()); @@ -117,6 +127,8 @@ class TradingClearingRegistryServiceTest { account.setStatus(ServiceStatus.Active.getKey()); accountId = accountImdg.insert(account); + account2Id = accountImdg.insert(account); + DepoAccount depoAccount = new DepoAccount(); depoAccount.setAccountId(accountId); depoAccount.setDepoAccountType("DAT"); @@ -126,10 +138,14 @@ class TradingClearingRegistryServiceTest { 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() { + void tradingClearingRegistryNew_moneyAccount_clearingAccount() { TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); tradingClearingRegistryNewRequest.setCompanyId(companyId); tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId); @@ -146,7 +162,7 @@ class TradingClearingRegistryServiceTest { addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, - PARTITION + (oneNewRequestDone ? 1 : 0), + newRequestCnt, 0, jsonString); @@ -161,9 +177,46 @@ class TradingClearingRegistryServiceTest { TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); tradingClearingRegistryImdg.delete(resultNew); - oneNewRequestDone = true; + 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(); @@ -184,7 +237,7 @@ class TradingClearingRegistryServiceTest { addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, - PARTITION + (oneNewRequestDone ? 1 : 0), + newRequestCnt, 0, jsonString); @@ -199,7 +252,7 @@ class TradingClearingRegistryServiceTest { TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); tradingClearingRegistryImdg.delete(resultNew); - oneNewRequestDone = true; + newRequestCnt++; } @Test From c5b80bd3c98c63c8592060232d4f273fd3565cf3 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Fri, 5 May 2023 15:21:22 +0300 Subject: [PATCH 10/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-276?= =?UTF-8?q?=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=B5=20=D0=B2=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/cud/utilities/STradesImportedRequest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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; + } } From 8238757ca81ce454e23249291ebd58f67fbc29dc Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 5 May 2023 15:33:46 +0300 Subject: [PATCH 11/27] =?UTF-8?q?meta=20http://jira.mfd.msk:8088/browse/CL?= =?UTF-8?q?S-293=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB=20DATA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend-api/src/main/resources/meta/data.xml | 4 ++-- .../db-scripts/src/main/resources/db/DATA.sql | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) 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..e6c737fd9 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -80,7 +80,7 @@ - + @@ -198,7 +198,7 @@ - + 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..63716ecd2 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql @@ -1,4 +1,4 @@ --- DB version: 3.5.0.20 +-- DB version: 3.5.0.21 -- DATA version: 3.5.0.4 /* Dictionaries */ @@ -160,7 +160,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; @@ -394,7 +394,7 @@ INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (12, 'CMBA', 'Формиро INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (14, 'GCMR', 'Формирование реестра участников клиринга') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (15, 'GBRR', 'Формирование реестра остатков денежных средств ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (15, 'GBRR', 'Формирование реестра остатков денежных средств') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (16, 'GORR', 'Формирование реестра распоряжений, направленных расчетной организации') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -414,9 +414,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; From 654943ec3652e8b611eea20bc2c7f38702c6da69 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 18:19:32 +0300 Subject: [PATCH 12/27] http://jira.mfd.msk:8088/browse/CLS-271 --- .../clearing/account/errors/AccountError.java | 3 + .../TradingClearingRegistryService.java | 185 ++++++++++++++++-- 2 files changed, 176 insertions(+), 12 deletions(-) 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 7a4b12852..dda968b42 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 @@ -12,6 +12,9 @@ public enum AccountError implements IErrorEnumId { CompanyNotFound(5013L), CompanyNotActive(5014L), InfoAccountAlreadyExist(5015L), + TradingClearingRegistryAlreadyExist(5016L), + DepoAccountNotFound(5017L), + MoneyAccountNotFound(5018L), ClearingCategoryNotFound(5019L), TradingClearingRegistryNotFound(5022L), ; 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 index 9b092effa..2bfd55cf3 100644 --- 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 @@ -12,6 +12,7 @@ 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; @@ -25,18 +26,23 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.util.security.UserRoleVerification; 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.EnumMessage; 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 @@ -52,6 +58,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final Imdg informationAccountImdg; private final Imdg accountImdg; private final Imdg companyImdg; + private final Imdg relationImdg; private final Function tradingClearingRegistryUpdateRequestValidator; private final Function tradingClearingRegistryNewRequestValidator; @@ -83,6 +90,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini 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; @@ -102,7 +110,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); } - public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { + public RequestInfoUpdate tradingClearingRegistryAutoNew(BaseRequest userRequest) { log.debug("TradingClearingRegistryNewRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -125,28 +133,128 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini InformationAccount infoAccount = null; ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); if (clearingAccount == null) infoAccount = informationAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); - Long clearingAccountId = clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); - Account clearingAccountMain = accountImdg.getSingleObjectByID(clearingAccountId); + Long accountId = clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); + Account accountMain = accountImdg.getSingleObjectByID(accountId); + + + // TODO: WELCOME TO HELL + // Проверка выглядит очень сложно и запутанно, потому что репортеры сами не до конца понимают, какая она должна быть. + // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и + // прочих методов сокращения кода + 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) { + String errMsg = messageResolver.resolve( + new EnumMessage(AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.getId()) + ); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) { + String errMsg = messageResolver.resolve(new EnumMessage(AccountError.DepoAccountNotFound, req.getCompanyId())); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + } 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) { + String errMsg = messageResolver.resolve( + new EnumMessage(AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.getId()) + ); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) { + String errMsg = messageResolver.resolve(new EnumMessage(AccountError.DepoAccountNotFound, req.getCompanyId())); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + } 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()) { + String errMsg = messageResolver.resolve( + new EnumMessage(AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.iterator().next().getId()) + ); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) { + String errMsg = messageResolver.resolve(new EnumMessage(AccountError.DepoAccountNotFound, req.getCompanyId())); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + } 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) { + String errMsg = messageResolver.resolve( + new EnumMessage(AccountError.MoneyAccountNotFound, req.getCompanyId()) + ); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + } + } 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(clearingAccountMain.getStatus())) + if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(accountMain.getStatus())) status = ServiceStatus.Active.getKey(); - if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.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()) || clearingAccountMain.getStatus().equals(ServiceStatus.Suspended.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()) || clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || accountMain.getStatus().equals(ServiceStatus.Closed.getKey())) status = ServiceStatus.Closed.getKey(); - } else if (clearingAccountMain.getStatus() != null) { - if (activeStatuses.contains(clearingAccountMain.getStatus())) + } else if (accountMain.getStatus() != null) { + if (activeStatuses.contains(accountMain.getStatus())) status = ServiceStatus.Active.getKey(); - if (clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + if (accountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) status = ServiceStatus.Blocked.getKey(); - if (clearingAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + if (accountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) status = ServiceStatus.Suspended.getKey(); - if (clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + if (accountMain.getStatus().equals(ServiceStatus.Closed.getKey())) status = ServiceStatus.Closed.getKey(); } if (status == null) { @@ -189,6 +297,59 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini 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); From 65c235c01c3f4941d0c0febde0b5e4b6f3c50c16 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 18:28:32 +0300 Subject: [PATCH 13/27] http://jira.mfd.msk:8088/browse/CLS-265 auto request for TCR new --- .../account/service/ClearingAccountService.java | 12 +++++++++++- .../clearing/account/service/DepoAccountService.java | 12 +++++++++++- .../account/service/InformationAccountService.java | 12 +++++++++++- .../service/TradingClearingRegistryService.java | 6 +++++- .../clearing/platform/messaging/domain/Consts.java | 1 + 5 files changed, 39 insertions(+), 4 deletions(-) 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 a4ceddaa6..8b6779baf 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,9 +16,11 @@ 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.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; @@ -38,6 +40,7 @@ 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; @@ -50,6 +53,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin @Autowired public ClearingAccountService(Consumer kafkaQueue, Producer kafkaResponseQueue, + KafkaSender kafkaSender, AccountService accountService, ValidationHelper validationHelper, ImdgProvider imdgProvider, @@ -59,6 +63,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin @Qualifier("clearingAccountUpdateRequestValidator") Function clearingAccountUpdateRequestValidator) { super(kafkaQueue, kafkaResponseQueue); + this.kafkaSender = kafkaSender; this.accountService = accountService; this.validationHelper = validationHelper; this.imdgProvider = imdgProvider; @@ -104,10 +109,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,6 +122,10 @@ 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 выяснить, что возвращать из метода в этой ситуации 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 719820108..f8199ba29 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,8 +13,10 @@ 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.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; @@ -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; @@ -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,6 +104,10 @@ 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 выяснить, что возвращать из метода в этой ситуации 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 5bb94636b..4b96243ae 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,9 +15,11 @@ 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.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; @@ -37,6 +39,7 @@ 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; @@ -48,6 +51,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali @Autowired public InformationAccountService(Consumer kafkaQueue, Producer kafkaResponseQueue, + KafkaSender kafkaSender, IMessageResolver messageResolver, ImdgProvider imdgProvider, ValidationHelper validationHelper, @@ -55,6 +59,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali @Qualifier("informationAccountNewRequestValidator") Function infoAccountNewRequestValidator) { super(kafkaQueue, kafkaResponseQueue); + this.kafkaSender = kafkaSender; this.messageResolver = messageResolver; this.imdgProvider = imdgProvider; this.validationHelper = validationHelper; @@ -117,10 +122,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,6 +136,10 @@ 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); 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 index 2bfd55cf3..5d03d16a6 100644 --- 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 @@ -99,6 +99,9 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini @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); @@ -140,7 +143,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini // TODO: WELCOME TO HELL // Проверка выглядит очень сложно и запутанно, потому что репортеры сами не до конца понимают, какая она должна быть. // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и - // прочих методов сокращения кода + // прочих методов сокращения кода. В дальнейшем, после тестирования и окончательного выяснения вида проверки, + // её стоит вынести на этап валидации запроса. 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())); 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 c250e2a6e..bdc985908 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 @@ -82,6 +82,7 @@ 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_BLOCK = "trading-clearing-registry-block"; From 8d893d74cab3f81b685ca18b03bfd077b5b98002 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 18:36:14 +0300 Subject: [PATCH 14/27] http://jira.mfd.msk:8088/browse/CLS-265 auto request for TCR new --- .../account/service/TradingClearingRegistryServiceTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 4ac339059..8dfb3495e 100644 --- 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 @@ -293,7 +293,7 @@ class TradingClearingRegistryServiceTest { CommonDeleteRequest tradingClearingRegistryDeleteRequest = new CommonDeleteRequest(); tradingClearingRegistryDeleteRequest.setId(registryId); - String jsonString = getJsonStringForUPDATE(tradingClearingRegistryDeleteRequest, 0); + String jsonString = getJsonStringForDELETE(tradingClearingRegistryDeleteRequest, 0); //ACT addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), From a37fea506195002d72a9cd049178ee4f91005aa7 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 5 May 2023 20:17:35 +0300 Subject: [PATCH 15/27] =?UTF-8?q?company-service=20http://jira.mfd.msk:808?= =?UTF-8?q?8/browse/CLS-284=20=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0?= =?UTF-8?q?=D0=BB=20=D0=BA=D1=80=D0=BE=D0=BC=D0=B5=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validation/RelationValidationConfig.java | 134 +++++++++++ .../config/validation/ValidationConfig.java | 2 + .../clearing/company/error/CompanyErrors.java | 1 + .../company/service/RelationService.java | 206 +++++++++++++++-- .../company/service/RelationServiceTest.java | 214 ++++++++++++++++++ .../platform/messaging/domain/Consts.java | 2 + .../cud/company/RelationNewRequest.java | 46 ++++ 7 files changed, 588 insertions(+), 17 deletions(-) create mode 100644 clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java create mode 100644 clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/RelationNewRequest.java 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..a7e4b232d 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,7 @@ public enum CompanyErrors implements IErrorEnumId { EditContactType(3021L), // Тип контакта компании %s не может быть изменен. TradingClearingRegistryNotFound(3022L), // ТКР с %s не найден AccountNotFound(3023L), // Счет %s не найден + RelationNotFound(3026L), // Запись о договорных отношениях не найдена ; private final Long id; 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 index ca0c4349f..882abff8c 100644 --- 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 @@ -6,28 +6,35 @@ 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.clearing.classes.statics.data.profile.ProfileDocument; import ru.spcex.clearing.company.error.CompanyErrors; +import ru.spcex.clearing.company.util.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.ProfileDocumentNewRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUpdateRequest; +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.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.Objects; +import java.util.function.Function; @Service public class RelationService extends QueueConsumer implements InitializingBean { @@ -35,38 +42,203 @@ public class RelationService extends QueueConsumer implements InitializingBean { 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.requestHelper = requestHelper.setLogger(log); + 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); -//todo all CLS-284 -// callback(ProfileDocumentNewRequest.class) -// .setFunction(this::profileDocumentNew) -// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_NEW, callbacks::put); -// callback(ProfileDocumentUpdateRequest.class) -// .setFunction(this::profileDocumentUpdate) -// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_UPDATE, callbacks::put); -// callback(CommonDeleteRequest.class) -// .setFunction(this::profileDocumentDelete) -// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_DELETE, callbacks::put); -// init(); + + 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()); + +// if (ClearingCategory.B.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.I.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) +// ) { +// /* +// relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=MKR, +// если запись создана и serviceStatus=CLOS, +// изменить запись в relation согласно описанию с тегом При возобнолвении +// , иначе вернуть ошибку (3024)"Договорные отношения %s в секции МКР уже созданы." +// */ +// } +// if (ClearingCategory.C.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.F.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) +// ) { +// /* +//проверить по relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=FOND, +//если запись создана и serviceStatus=CLOS, изменить запись в relation согласно описанию с тегом При возобнолвении, +// иначе вернуть ошибку (3025)"Договорные отношения %s на фондовой секции уже созданы." */ +// } + Relation relation = new Relation(); + relation.setId(idSequence.nextId()); + relation.setCreated(Instant.now()); + relation.setUpdated(relation.getCreated()); + + relation.setConsumerId(req.getCompanyId()); + relation.setSupplierId(SPVB_ID); // 1 СПВБ + if (req.getServiceStatus() != null) { + relation.setServiceStatus(req.getServiceStatus()); + } else { + log.warn("Request has no status. Set status from company[{}].status={}", company.getId(), company.getWorkflowStatus()); + relation.setServiceStatus(company.getWorkflowStatus()); + } + 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 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; + } + + + //Company company = companyMap.getSingleObjectByID(req.getCompanyId()); +// +// if (ClearingCategory.B.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.I.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) +// ) { +// /* +// relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=MKR, +// если запись создана и serviceStatus=CLOS, +// изменить запись в relation согласно описанию с тегом При возобнолвении +// , иначе вернуть ошибку (3024)"Договорные отношения %s в секции МКР уже созданы." +// */ +// } +// if (ClearingCategory.C.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.F.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) +// ) { +// /* +//проверить по relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=FOND, +//если запись создана и serviceStatus=CLOS, изменить запись в relation согласно описанию с тегом При возобнолвении, +// иначе вернуть ошибку (3025)"Договорные отношения %s на фондовой секции уже созданы." */ +// } + + Relation relation = relationMap.getSingleObjectByID(req.getId()); + relation.setUpdated(relation.getCreated()); + + if (req.getServiceStatus() != null) { + relation.setServiceStatus(req.getServiceStatus()); + } else { +// relation.setServiceStatus(company.getStatus()); + } + 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()); @@ -79,7 +251,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { 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); + Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); relationMap.insert(relation); } @@ -103,7 +275,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { } } - protected void onChangeWorkflowStatusOnlyRelationChange(ImdgTransaction transaction, Company company, String newStatus) throws ValidationException { + 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); 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/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 c00ea09a8..2d0f0cae6 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"; 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; + } +} From 3d56c0fc6376e8040b23b84631d58178dc783d86 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Tue, 9 May 2023 21:32:01 +0300 Subject: [PATCH 16/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-268?= =?UTF-8?q?=20=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BA=D1=83=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...erServiceImdgConfig.java => ImdgConfig.java} | 2 +- .../config/SchedulerServiceConfig.java | 17 +++++++++++++++++ .../clearing/scheduler/service/TaskManager.java | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) rename clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/{SchedulerServiceImdgConfig.java => ImdgConfig.java} (97%) create mode 100644 clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/SchedulerServiceConfig.java 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/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) { From 84870fb64f5a6dfa52f83998fdffe2cbd61c2960 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 12:16:41 +0300 Subject: [PATCH 17/27] =?UTF-8?q?company-service=20http://jira.mfd.msk:808?= =?UTF-8?q?8/browse/CLS-284=20=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0?= =?UTF-8?q?=D0=BB.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/company/error/CompanyErrors.java | 2 + .../company/service/RelationService.java | 126 +++++++++++------- 2 files changed, 78 insertions(+), 50 deletions(-) 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 a7e4b232d..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,8 @@ 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/RelationService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java index 882abff8c..ab47be9ad 100644 --- 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 @@ -21,6 +21,7 @@ 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; @@ -33,6 +34,7 @@ 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; @@ -115,38 +117,48 @@ public class RelationService extends QueueConsumer implements InitializingBean { Company company = companyMap.getSingleObjectByID(req.getCompanyId()); -// if (ClearingCategory.B.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.I.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) -// ) { -// /* -// relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=MKR, -// если запись создана и serviceStatus=CLOS, -// изменить запись в relation согласно описанию с тегом При возобнолвении -// , иначе вернуть ошибку (3024)"Договорные отношения %s в секции МКР уже созданы." -// */ -// } -// if (ClearingCategory.C.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.F.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) -// ) { -// /* -//проверить по relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=FOND, -//если запись создана и serviceStatus=CLOS, изменить запись в relation согласно описанию с тегом При возобнолвении, -// иначе вернуть ошибку (3025)"Договорные отношения %s на фондовой секции уже созданы." */ -// } - Relation relation = new Relation(); - relation.setId(idSequence.nextId()); - relation.setCreated(Instant.now()); - relation.setUpdated(relation.getCreated()); + 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 { - log.warn("Request has no status. Set status from company[{}].status={}", company.getId(), company.getWorkflowStatus()); - relation.setServiceStatus(company.getWorkflowStatus()); + 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()); @@ -158,6 +170,27 @@ public class RelationService extends QueueConsumer implements InitializingBean { 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(); @@ -171,37 +204,30 @@ public class RelationService extends QueueConsumer implements InitializingBean { } - //Company company = companyMap.getSingleObjectByID(req.getCompanyId()); -// -// if (ClearingCategory.B.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.I.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) -// ) { -// /* -// relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=MKR, -// если запись создана и serviceStatus=CLOS, -// изменить запись в relation согласно описанию с тегом При возобнолвении -// , иначе вернуть ошибку (3024)"Договорные отношения %s в секции МКР уже созданы." -// */ -// } -// if (ClearingCategory.C.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.F.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) -// ) { -// /* -//проверить по relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=FOND, -//если запись создана и serviceStatus=CLOS, изменить запись в relation согласно описанию с тегом При возобнолвении, -// иначе вернуть ошибку (3025)"Договорные отношения %s на фондовой секции уже созданы." */ -// } - 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 { -// relation.setServiceStatus(company.getStatus()); + 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); From a4d1a618cb1db406dbebfc4796af3c2cfa3dbd4f Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 12:17:20 +0300 Subject: [PATCH 18/27] =?UTF-8?q?RequestHelper=20=D1=82.=D0=BA.=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=8B=D1=87=D0=BD=D0=BE=20=D0=BE=D1=82=D0=B2=D0=B5=D1=82?= =?UTF-8?q?=20=D1=81=D1=80=D0=B0=D0=B7=D1=83=20=D0=B2=D0=BE=D0=B7=D0=B2?= =?UTF-8?q?=D1=80=D0=B0=D1=89=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20-=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B7=D0=B0=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D1=8C=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=D1=82=D0=B0=20=D0=B2=20=D0=BB=D0=BE=D0=B3=20?= =?UTF-8?q?info?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/ru/spcex/clearing/company/util/RequestHelper.java | 1 + 1 file changed, 1 insertion(+) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java index f134ec949..ac865b66a 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java @@ -74,6 +74,7 @@ public class RequestHelper { public RequestInfoUpdate makeErrorResponse(BaseRequest request, EnumMessage msg) { String errorMsg = msg == null? "" : messageResolver.resolve(msg); + log.info("{}", errorMsg); return new RequestInfoUpdate() .setId(request.getId()) .setStatus(Status.Error) From a60726241202bb6b65d2fe0a0f5336ba0831e1e7 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 12:27:17 +0300 Subject: [PATCH 19/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-284?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spcex/clearing/company/service/CompanyInfoServiceTest.java | 2 ++ .../ru/spcex/clearing/company/service/CompanyServiceTest.java | 3 ++- .../clearing/company/service/CompanySymbolServiceTest.java | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) 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 b521fd7e4..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; @@ -51,6 +52,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv CompanySymbolService.class, AccountNotificationHelper.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 f18f68a84..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, - RelationService.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 39e77828d..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 @@ -18,6 +18,7 @@ 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; @@ -50,7 +51,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv CompanyService.class, CompanyValidationConfig.class, AccountNotificationHelper.class, - RelationService.class, + RelationService.class, RelationValidationConfig.class, KafkaTestConfig.class, ImdgTestConfig.class}) From 70e73b68aebc537845c2174eefa6cedfe00fad1f Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 10 May 2023 13:23:38 +0300 Subject: [PATCH 20/27] fix after review --- .../account/config/validation/AccountValidationConfig.java | 2 +- .../validation/TradingClearingRegistryValidationConfig.java | 2 -- .../ru/spcex/clearing/account/service/BankAccountService.java | 1 - .../spcex/clearing/account/service/ClearingAccountService.java | 1 - .../ru/spcex/clearing/account/service/DepoAccountService.java | 1 - .../clearing/account/service/InformationAccountService.java | 1 - .../account/service/TradingClearingRegistryService.java | 3 ++- 7 files changed, 3 insertions(+), 8 deletions(-) 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 f1a5f0293..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 @@ -140,7 +140,7 @@ public class AccountValidationConfig { AccountError.WrongFieldValue), DictionaryPresentRule.instance("accountType", CorrespondentAccountUpdateRequest::getAccountType, - IMDGDistributedNames.Map_ServiceStatusDictionary, + IMDGDistributedNames.Map_AccountTypeDictionary, ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, 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 index 28d06ed70..f936a6925 100644 --- 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 @@ -78,8 +78,6 @@ public class TradingClearingRegistryValidationConfig { if (depoAccount == null) return AccountError.AccountNotFound; return null; }), - // todo на будущее: нужна ли эта проверка, если при добавлении регистра статус заполняется автоматически - // на основе полей moneyAccountId и depoAccountId, то же касается TradingClearingRegistryNewRequest, нужно ли там поле status DictionaryPresentRule.instance("status", TradingClearingRegistryNewRequest::getStatus, IMDGDistributedNames.Map_ServiceStatusDictionary, 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 bff14701c..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 @@ -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 8b6779baf..766b1f890 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 @@ -128,7 +128,6 @@ public class ClearingAccountService extends QueueConsumer implements Initializin 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); 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 f8199ba29..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 @@ -110,7 +110,6 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea 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 4b96243ae..175c058c4 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 @@ -144,7 +144,6 @@ public class InformationAccountService extends QueueConsumer implements Initiali 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 index 5d03d16a6..0b3c43303 100644 --- 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 @@ -140,7 +140,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini Account accountMain = accountImdg.getSingleObjectByID(accountId); - // TODO: WELCOME TO HELL + // TODO // Проверка выглядит очень сложно и запутанно, потому что репортеры сами не до конца понимают, какая она должна быть. // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и // прочих методов сокращения кода. В дальнейшем, после тестирования и окончательного выяснения вида проверки, @@ -154,6 +154,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini req.getCompanyId(), registry.getId()) ); + log.error("process failed: {}", errMsg); return new RequestInfoUpdate() .setMessage(errMsg) .setStatus(Status.Error) From 795075a4b6a8e1c6c6c333fc015bf7974a9e4413 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 13:33:54 +0300 Subject: [PATCH 21/27] =?UTF-8?q?RequestHelper=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D1=91=D1=81=20=D0=B2=20clearing-validation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/services}/RequestHelper.java | 19 +++++++++++++------ .../company/config/BeanConfiguration.java | 4 ++-- .../company/service/CompanyInfoService.java | 2 +- .../service/CompanyRoleSetService.java | 2 +- .../company/service/CompanyService.java | 2 +- .../company/service/CompanySymbolService.java | 2 +- .../service/ProfileDocumentService.java | 3 +-- .../company/service/RelationService.java | 2 +- 8 files changed, 21 insertions(+), 15 deletions(-) rename clearing-parent/{company-service/src/main/java/ru/spcex/clearing/company/util => clearing-validation/src/main/java/ru/spcex/clearing/util/services}/RequestHelper.java (84%) 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 ac865b66a..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,7 +81,7 @@ public class RequestHelper { public RequestInfoUpdate makeErrorResponse(BaseRequest request, EnumMessage msg) { String errorMsg = msg == null? "" : messageResolver.resolve(msg); - log.info("{}", errorMsg); + 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/service/CompanyInfoService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java index 03d355d49..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; 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 542916892..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; 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 adf51b4ed..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; 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 index ab47be9ad..d91417af6 100644 --- 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 @@ -11,7 +11,7 @@ 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.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; From 05e879112ac7a545859b25714741077ae8e93db7 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Wed, 10 May 2023 15:03:40 +0300 Subject: [PATCH 22/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-268?= =?UTF-8?q?=20=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/validation/ClearingCalendarValidationConfig.java | 2 ++ .../config/validation/PlannerTemplateValidationConfig.java | 6 +++++- .../config/validation/PlannerValidationConfig.java | 1 + .../scheduler/validation/rules/common/EnumPresentRule.java | 2 +- .../ru/spcex/clearing/scheduler/AbstractServiceTest.java | 4 ++-- .../clearing/scheduler/validation/EnumPresentRuleTest.java | 2 +- 6 files changed, 12 insertions(+), 5 deletions(-) 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..6f7684118 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,6 +57,7 @@ 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, @@ -90,6 +93,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..389e7ef97 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,6 +62,7 @@ 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, 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 From d023d289b0c3bce5920d941c005145ecdf19dfbf Mon Sep 17 00:00:00 2001 From: psemenkov Date: Wed, 10 May 2023 15:34:51 +0300 Subject: [PATCH 23/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-268?= =?UTF-8?q?=20=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/validation/PlannerTemplateValidationConfig.java | 1 + .../scheduler/config/validation/PlannerValidationConfig.java | 1 + 2 files changed, 2 insertions(+) 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 6f7684118..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 @@ -64,6 +64,7 @@ public class PlannerTemplateValidationConfig { 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/config/validation/PlannerValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java index 389e7ef97..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 @@ -69,6 +69,7 @@ public class PlannerValidationConfig { IMDGDistributedNames.Map_Security, Security.class, ValidationError.SecurityNotFound, + false, security -> WorkflowStatus.Active.equalsByKey(security.getWorkflowStatus()) ? null : ValidationError.SecurityNotActive) ); }; From d0d59ba582ad973055ec1d3e3882d0129f5a4764 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 18:41:55 +0300 Subject: [PATCH 24/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20DDL=20=D0=B8=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20meta=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/meta/data.xml | 157 +- .../src/main/resources/meta/meta.xml | 1384 +++++----- .../db-scripts/src/main/resources/db/DATA.sql | 280 +- .../db-scripts/src/main/resources/db/DDL.sql | 2325 +++++++---------- 4 files changed, 1970 insertions(+), 2176 deletions(-) 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 e6c737fd9..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 @@ + @@ -87,6 +88,7 @@ + @@ -168,6 +170,8 @@ + + @@ -198,7 +202,7 @@ - + @@ -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/db-scripts/src/main/resources/db/DATA.sql b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql index 63716ecd2..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.21 --- DATA version: 3.5.0.4 +-- 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; @@ -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; @@ -394,7 +402,7 @@ INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (12, 'CMBA', 'Формиро INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (14, 'GCMR', 'Формирование реестра участников клиринга') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (15, 'GBRR', 'Формирование реестра остатков денежных средств') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (15, 'GBRR', 'Формирование реестра остатков денежных средств ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (16, 'GORR', 'Формирование реестра распоряжений, направленных расчетной организации') 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 */ From d9fa17b0c74b0f8d3ecb7c1b8e77c673c4dcc5e8 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 18:48:16 +0300 Subject: [PATCH 25/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B7=D0=B0=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D1=83=D0=B4=D0=B0=D0=BB=D1=8F=D0=B5=D0=BC=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/AccountBalanceController.java | 40 -- .../LiabilitiesClaimsAssetController.java | 44 --- .../LiabilitiesClaimsMoneyController.java | 44 --- .../AdmittedDealRegisterController.java | 44 --- .../register/BalanceRegisterController.java | 44 --- .../ClearMemberRegisterController.java | 44 --- .../CoveredDealRegisterController.java | 44 --- .../register/DealRegisterController.java | 44 --- .../register/OrderRegisterController.java | 44 --- .../UncoveredDealRegisterController.java | 44 --- .../queue/utilities/CudKeyRateController.java | 83 ----- .../cud/utilities/KeyRateNewAction.java | 92 ----- .../cud/utilities/KeyRateUpdateAction.java | 92 ----- .../utilities/KeyRateBackendGetAll.java | 54 --- .../utilities/KeyRateBackendGetFields.java | 73 ---- .../queue/AbstractControllerTest.java | 14 - .../account/AccountBalanceControllerTest.java | 29 -- .../LiabilitiesClaimsAssetControllerTest.java | 53 --- .../LiabilitiesClaimsMoneyControllerTest.java | 42 --- .../AdmittedDealRegisterControllerTest.java | 45 --- .../BalanceRegisterControllerTest.java | 43 --- .../ClearMemberRegisterControllerTest.java | 54 --- .../CoveredDealRegisterControllerTest.java | 45 --- .../register/DealRegisterControllerTest.java | 50 --- .../register/OrderRegisterControllerTest.java | 38 -- .../UncoveredDealRegisterControllerTest.java | 46 --- .../utilities/CudKeyRateControllerTest.java | 95 ----- .../validation/Sdf16ValidationRuleTest.java | 2 +- .../liabilities/LiabilitiesClaimsAssets.java | 1 + .../liabilities/LiabilitiesClaimsMoney.java | 1 + .../statics/data/misc/BalanceRegister.java | 138 ------- .../data/misc/ClearMemberRegister.java | 236 ------------ .../classes/statics/data/misc/KeyRate.java | 1 + .../data/register/AdmittedDealRegister.java | 153 -------- .../register/ClearMemberRegisterChange.java | 41 --- .../data/register/CoveredDealRegister.java | 148 -------- .../statics/data/register/DealRegister.java | 190 ---------- .../statics/data/register/OrderRegister.java | 93 ----- .../data/register/UncoveredDealRegister.java | 157 -------- .../classes/statics/data/sdf/SDf16.java | 1 + .../classes/statics/data/sdf/SDf17.java | 1 + .../classes/statics/data/sdf/SDf18.java | 1 + .../LiabilitiesClaimsMoneyCreator.java | 1 + .../BalanceAccountTypeDictionary.java | 11 - .../dictionary/ChargeDirectionDictionary.java | 12 - .../dictionary/ChargeTypeDictionary.java | 11 - .../dictionary/ClearingStatusDictionary.java | 1 + .../AccountBalanceMapStore.java | 100 ----- .../LiabilitiesClaimsAssetsMapStore.java | 108 ------ .../LiabilitiesClaimsMoneyMapStore.java | 95 ----- .../BalanceAccountTypeDictionaryMapStore.java | 31 -- .../ChargeDirectionDictionaryMapStore.java | 31 -- .../ClearingStatusDictionaryMapStore.java | 31 -- .../object/AdmittedDealRegisterMapStore.java | 101 ------ .../imdg/object/BalanceRegisterMapStore.java | 98 ----- .../object/ClearMemberRegisterMapStore.java | 130 ------- .../object/CoveredDealRegisterMapStore.java | 101 ------ .../imdg/object/DealRegisterMapStore.java | 116 ------ .../clearing/imdg/object/KeyRateMapStore.java | 66 ---- .../imdg/object/OrderRegisterMapStore.java | 83 ----- .../clearing/imdg/object/SDf16MapStore.java | 75 ---- .../clearing/imdg/object/SDf17MapStore.java | 77 ---- .../clearing/imdg/object/SDf18MapStore.java | 67 ---- .../object/UncoveredDealRegisterMapStore.java | 104 ------ .../structure/RunnableMapNamesForTesting.java | 30 -- .../service/AdmittedDealRegisterService.java | 63 ---- .../service/BalanceRegisterService.java | 62 ---- .../ClearMemberRegisterChangeService.java | 51 --- .../service/ClearMemberRegisterService.java | 73 ---- .../service/CoveredDealRegisterService.java | 63 ---- .../service/OrderRegisterService.java | 56 --- .../service/UncoveredDealRegisterService.java | 63 ---- .../AdmittedDealRegisterServiceTest.java | 118 ------ .../service/BalanceRegisterServiceTest.java | 113 ------ .../ClearMemberRegisterChangeServiceTest.java | 90 ----- .../ClearMemberRegisterServiceTest.java | 135 ------- .../CoveredDealRegisterServiceTest.java | 116 ------ .../service/OrderRegisterServiceTest.java | 105 ------ .../UncoveredDealRegisterServiceTest.java | 118 ------ .../utility/service/KeyRateService.java | 1 + .../utility/service/KeyRateFactory.java | 1 + .../enumeration/BalanceAccountType.java | 1 + .../platform/enumeration/ClearingStatus.java | 1 + .../clearing/imdg/IMDGDistributedNames.java | 18 +- .../AdmittedDealRegisterNewRequest.java | 211 ----------- .../ClearMemberRegisterChangeNewRequest.java | 44 --- .../ClearMemberRegisterNewRequest.java | 343 ------------------ .../CoveredDealRegisterNewRequest.java | 225 ------------ .../cud/registry/OrderRegisterNewRequest.java | 155 -------- .../UncoveredDealRegisterNewRequest.java | 235 ------------ .../cud/utilities/KeyRateNewRequest.java | 2 +- .../cud/utilities/KeyRateUpdateRequest.java | 2 +- 92 files changed, 23 insertions(+), 6470 deletions(-) delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateNewAction.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateControllerTest.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/BalanceRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ClearMemberRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedDealRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ClearMemberRegisterChange.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredDealRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DealRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/OrderRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/UncoveredDealRegister.java delete mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceAccountTypeDictionary.java delete mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeDirectionDictionary.java delete mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeTypeDictionary.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountBalanceMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsAssetsMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsMoneyMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/BalanceAccountTypeDictionaryMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ChargeDirectionDictionaryMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ClearingStatusDictionaryMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AdmittedDealRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearMemberRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CoveredDealRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DealRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UncoveredDealRegisterMapStore.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/BalanceRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredDealRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/OrderRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/BalanceRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredDealRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/OrderRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterServiceTest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/AdmittedDealRegisterNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterChangeNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/CoveredDealRegisterNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/OrderRegisterNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/BalanceRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java deleted file mode 100644 index b40e95341..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java +++ /dev/null @@ -1,98 +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.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; - } - -} 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/OrderRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java deleted file mode 100644 index d8f63be13..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java +++ /dev/null @@ -1,83 +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.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; - } - -} 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..b7265aba4 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)); @@ -248,28 +239,15 @@ 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, - 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_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 +276,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 +295,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 +303,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/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterService.java deleted file mode 100644 index 61f5417e0..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterService.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.spcex.clearing.registry.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.stereotype.Service; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -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.registry.AdmittedDealRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class AdmittedDealRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg admittedDealRegisterMap; - - @Autowired - public AdmittedDealRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.admittedDealRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_AdmittedDealRegister, AdmittedDealRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(AdmittedDealRegisterNewRequest.class) - .setConsumer(this::admittedDealRegisterNew) - .forDestination(Consts.REGISTRY_ADMITTED_DEAL_REGISTER_NEW, callbacks::put); - init(); - } - - public void admittedDealRegisterNew(BaseRequest userRequest) { - AdmittedDealRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("AdmittedDealRegisterNewRequest received"); - AdmittedDealRegister register = new AdmittedDealRegister(); - register.setExecutionId(req.getExecutionId()); - register.setCompanyFullName(req.getCompanyFullName()); - register.setTradingDate(req.getTradingDate()); - register.setExchangeExecutionId(req.getExchangeExecutionId()); - register.setExchangeExecutionTime(req.getExchangeExecutionTime()); - register.setSecuritySymbol(req.getSecuritySymbol()); - register.setSecurityFullName(req.getSecurityFullName()); - register.setSellerFullName(req.getSellerFullName()); - register.setSellerClearingCode(req.getSellerClearingCode()); - register.setSellerAccount(req.getSellerAccount()); - register.setBuyerFullName(req.getBuyerFullName()); - register.setBuyerClearingCode(req.getBuyerClearingCode()); - register.setBuyerAccount(req.getBuyerAccount()); - register.setAmount(req.getAmount()); - register.setClearingDate(req.getClearingDate()); - admittedDealRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/BalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/BalanceRegisterService.java deleted file mode 100644 index 21c639fe6..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/BalanceRegisterService.java +++ /dev/null @@ -1,62 +0,0 @@ -package ru.spcex.clearing.registry.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.stereotype.Service; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -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.registry.BalanceRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - - -@Service -public class BalanceRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg balanceRegisterMap; - - @Autowired - public BalanceRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.balanceRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BalanceRegister, BalanceRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(BalanceRegisterNewRequest.class) - .setConsumer(this::balanceRegisterNew) - .forDestination(Consts.REGISTRY_BALANCE_REGISTER_NEW, callbacks::put); - init(); - } - - public void balanceRegisterNew(BaseRequest userRequest) { - BalanceRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("BalanceRegisterNewRequest received"); - BalanceRegister register = new BalanceRegister(); - register.setsDf01Date(req.getsDf01Date()); - register.setCurrencyCode(req.getCurrencyCode()); - register.setSetHouseName(req.getSetHouseName()); - register.setAccount(req.getAccount()); - register.setInfoAccount(req.getInfoAccount()); - register.setRemainderSum(req.getRemainderSum()); - register.setBlockedSum(req.getBlockedSum()); - register.setUnblockedSum(req.getUnblockedSum()); - register.setInn(req.getInn()); - register.setMarket(req.getMarket()); - register.setFullName(req.getFullName()); - register.setTypeRemains(req.getTypeRemains()); - register.setDocNumber(req.getDocNumber()); - register.setCompanyId(req.getCompanyId()); - balanceRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeService.java deleted file mode 100644 index 40bd281ef..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeService.java +++ /dev/null @@ -1,51 +0,0 @@ -package ru.spcex.clearing.registry.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.stereotype.Service; -import ru.clearing.classes.statics.data.register.ClearMemberRegisterChange; -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.registry.ClearMemberRegisterChangeNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class ClearMemberRegisterChangeService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg clearMemberRegisterChangeMap; - - @Autowired - public ClearMemberRegisterChangeService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.clearMemberRegisterChangeMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearMemberRegisterChange, ClearMemberRegisterChange.class); - } - - @Override - public void afterPropertiesSet() { - callback(ClearMemberRegisterChangeNewRequest.class) - .setConsumer(this::clearMemberRegisterChangeNew) - .forDestination(Consts.REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW, callbacks::put); - init(); - } - - public void clearMemberRegisterChangeNew(BaseRequest userRequest) { - ClearMemberRegisterChangeNewRequest req = userRequest.getRequestPayload(); - log.debug("ClearMemberRegisterChangeNewRequest received"); - ClearMemberRegisterChange register = new ClearMemberRegisterChange(); - register.setDate(req.getDate()); - register.setComment(req.getComment()); - register.setClearingCode(req.getClearingCode()); - clearMemberRegisterChangeMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterService.java deleted file mode 100644 index aeaab9ced..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterService.java +++ /dev/null @@ -1,73 +0,0 @@ -package ru.spcex.clearing.registry.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.stereotype.Service; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -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.registry.ClearMemberRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - - -@Service -public class ClearMemberRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg clearMemberRegisterMap; - - @Autowired - public ClearMemberRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.clearMemberRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearMemberRegister, ClearMemberRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(ClearMemberRegisterNewRequest.class) - .setConsumer(this::clearMemberRegisterNew) - .forDestination(Consts.REGISTRY_CLEAR_MEMBER_REGISTER_NEW, callbacks::put); - init(); - } - - public void clearMemberRegisterNew(BaseRequest userRequest) { - ClearMemberRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("ClearMemberRegisterNewRequest received"); - ClearMemberRegister register = new ClearMemberRegister(); - register.setTradingCode(req.getTradingCode()); - register.setClearingCode(req.getClearingCode()); - register.setFullName(req.getFullName()); - register.setShortName(req.getShortName()); - register.setCategoryList(req.getCategoryList()); - register.setCorporationSole(req.getCorporationSole()); - register.setAccount(req.getAccount()); - register.setBank(req.getBank()); - register.setBankName(req.getBankName()); - register.setInn(req.getInn()); - register.setBic(req.getBic()); - register.setOgrn(req.getOgrn()); - register.setCpp(req.getCpp()); - register.setOcpo(req.getOcpo()); - register.setContractNumber(req.getContractNumber()); - register.setContractDate(req.getContractDate()); - register.setRegistrationDate(req.getRegistrationDate()); - register.setSystemDate(req.getSystemDate()); - register.setAccessDate(req.getAccessDate()); - register.setSuspentionDate(req.getSuspentionDate()); - register.setReopeningDate(req.getReopeningDate()); - register.setCloseDate(req.getCloseDate()); - register.setExclusionDate(req.getExclusionDate()); - register.setAddress(req.getAddress()); - register.setEmail(req.getEmail()); - clearMemberRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredDealRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredDealRegisterService.java deleted file mode 100644 index 8b7c51dd3..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredDealRegisterService.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.spcex.clearing.registry.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.stereotype.Service; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -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.registry.CoveredDealRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class CoveredDealRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg coveredDealRegisterMap; - - @Autowired - public CoveredDealRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.coveredDealRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CoveredDealRegister, CoveredDealRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(CoveredDealRegisterNewRequest.class) - .setConsumer(this::coveredDealRegisterNew) - .forDestination(Consts.REGISTRY_COVERED_DEAL_REGISTER_NEW, callbacks::put); - init(); - } - - public void coveredDealRegisterNew(BaseRequest userRequest) { - CoveredDealRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("CoveredDealRegisterNewRequest received"); - CoveredDealRegister register = new CoveredDealRegister(); - register.setExecutionId(req.getExecutionId()); - register.setCompanyFullName(req.getCompanyFullName()); - register.setTradingDate(req.getTradingDate()); - register.setExchangeExecutionId(req.getExchangeExecutionId()); - register.setExchangeExecutionTime(req.getExchangeExecutionTime()); - register.setSecuritySymbol(req.getSecuritySymbol()); - register.setSecurityFullName(req.getSecurityFullName()); - register.setSellerFullName(req.getSellerFullName()); - register.setSellerClearingCode(req.getSellerClearingCode()); - register.setSellerAccount(req.getSellerAccount()); - register.setBuyerFullName(req.getBuyerFullName()); - register.setBuyerClearingCode(req.getBuyerClearingCode()); - register.setBuyerAccount(req.getBuyerAccount()); - register.setAmount(req.getAmount()); - register.setClearingDate(req.getClearingDate()); - coveredDealRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/OrderRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/OrderRegisterService.java deleted file mode 100644 index af076b9dc..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/OrderRegisterService.java +++ /dev/null @@ -1,56 +0,0 @@ -package ru.spcex.clearing.registry.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.stereotype.Service; -import ru.clearing.classes.statics.data.register.OrderRegister; -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.registry.OrderRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class OrderRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg orderRegisterMap; - - @Autowired - public OrderRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.orderRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_OrderRegister, OrderRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(OrderRegisterNewRequest.class) - .setConsumer(this::orderRegisterNew) - .forDestination(Consts.REGISTRY_ORDER_REGISTER_NEW, callbacks::put); - init(); - } - - public void orderRegisterNew(BaseRequest userRequest) { - OrderRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("OrderRegisterNewRequest received"); - OrderRegister register = new OrderRegister(); - register.setCreditLegAccount(req.getCreditLegAccount()); - register.setCreditLegAmount(req.getCreditLegAmount()); - register.setCreditLegCurrencyCode(req.getCreditLegCurrencyCode()); - register.setCreditLegDirection(req.getCreditLegDirection()); - register.setDebitLegAccount(req.getDebitLegAccount()); - register.setSender(req.getSender()); - register.setAddressee(req.getAddressee()); - register.setDocumentNumber(req.getDocumentNumber()); - register.setClearingDate(req.getClearingDate()); - orderRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java deleted file mode 100644 index f9b0d6580..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.spcex.clearing.registry.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.stereotype.Service; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -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.registry.UncoveredDealRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class UncoveredDealRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg uncoveredDealRegisterMap; - - @Autowired - public UncoveredDealRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.uncoveredDealRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_UncoveredDealRegister, UncoveredDealRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(UncoveredDealRegisterNewRequest.class) - .setConsumer(this::uncoveredDealRegisterNew) - .forDestination(Consts.REGISTRY_UNCOVERED_DEAL_REGISTER_NEW, callbacks::put); - init(); - } - - public void uncoveredDealRegisterNew(BaseRequest userRequest) { - UncoveredDealRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("UncoveredDealRegisterNewRequest received"); - UncoveredDealRegister register = new UncoveredDealRegister(); - register.setExecutionId(req.getExecutionId()); - register.setCompanyFullName(req.getCompanyFullName()); - register.setTradingDate(req.getTradingDate()); - register.setExchangeExecutionId(req.getExchangeExecutionId()); - register.setExchangeExecutionTime(req.getExchangeExecutionTime()); - register.setSecuritySymbol(req.getSecuritySymbol()); - register.setSecurityFullName(req.getSecurityFullName()); - register.setSellerFullName(req.getSellerFullName()); - register.setSellerClearingCode(req.getSellerClearingCode()); - register.setSellerAccount(req.getSellerAccount()); - register.setBuyerFullName(req.getBuyerFullName()); - register.setBuyerClearingCode(req.getBuyerClearingCode()); - register.setBuyerAccount(req.getBuyerAccount()); - register.setAmount(req.getAmount()); - register.setResultStatus(req.getResultStatus()); - register.setClearingDate(req.getClearingDate()); - uncoveredDealRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterServiceTest.java deleted file mode 100644 index acddc52d4..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterServiceTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package ru.spcex.clearing.registry.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.register.AdmittedDealRegister; -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.registry.AdmittedDealRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - AdmittedDealRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class AdmittedDealRegisterServiceTest { - - public static final MatcherFactory.Matcher ADMITTED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_ADMITTED_DEAL_REGISTER_NEW = Consts.REGISTRY_ADMITTED_DEAL_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - AdmittedDealRegisterService admittedDealRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg admittedDealRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.admittedDealRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_AdmittedDealRegister, AdmittedDealRegister.class); - } - - /** - * {@link AdmittedDealRegisterService#admittedDealRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link AdmittedDealRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link AdmittedDealRegisterNewRequest}:
- */ - @Test - void admittedDealRegisterNew() { - //ARRANGE - Long executionId = 1234L; - AdmittedDealRegisterNewRequest admittedDealRegisterNewRequest = new AdmittedDealRegisterNewRequest(); - admittedDealRegisterNewRequest.setExecutionId(executionId); - admittedDealRegisterNewRequest.setCompanyFullName("companyFullName"); - admittedDealRegisterNewRequest.setTradingDate(LocalDate.now()); - admittedDealRegisterNewRequest.setExchangeExecutionId(1L); - admittedDealRegisterNewRequest.setExchangeExecutionTime(Instant.now()); - admittedDealRegisterNewRequest.setSecuritySymbol("symbol"); - admittedDealRegisterNewRequest.setSecurityFullName("full name"); - admittedDealRegisterNewRequest.setSellerFullName("full name"); - admittedDealRegisterNewRequest.setSellerClearingCode("code"); - admittedDealRegisterNewRequest.setSellerAccount("1561658"); - admittedDealRegisterNewRequest.setBuyerFullName("full name"); - admittedDealRegisterNewRequest.setBuyerClearingCode("ClearingCode"); - admittedDealRegisterNewRequest.setBuyerAccount("65464643"); - admittedDealRegisterNewRequest.setAmount(new BigDecimal(12)); - admittedDealRegisterNewRequest.setClearingDate(LocalDate.now()); - - AdmittedDealRegister predictableAdmittedDealRegister = new AdmittedDealRegister(); - predictableAdmittedDealRegister.setExecutionId(admittedDealRegisterNewRequest.getExecutionId()); - predictableAdmittedDealRegister.setCompanyFullName(admittedDealRegisterNewRequest.getCompanyFullName()); - predictableAdmittedDealRegister.setTradingDate(admittedDealRegisterNewRequest.getTradingDate()); - predictableAdmittedDealRegister.setExchangeExecutionId(admittedDealRegisterNewRequest.getExchangeExecutionId()); - predictableAdmittedDealRegister.setExchangeExecutionTime(admittedDealRegisterNewRequest.getExchangeExecutionTime()); - predictableAdmittedDealRegister.setSecuritySymbol(admittedDealRegisterNewRequest.getSecuritySymbol()); - predictableAdmittedDealRegister.setSecurityFullName(admittedDealRegisterNewRequest.getSecurityFullName()); - predictableAdmittedDealRegister.setSellerFullName(admittedDealRegisterNewRequest.getSellerFullName()); - predictableAdmittedDealRegister.setSellerClearingCode(admittedDealRegisterNewRequest.getSellerClearingCode()); - predictableAdmittedDealRegister.setSellerAccount(admittedDealRegisterNewRequest.getSellerAccount()); - predictableAdmittedDealRegister.setBuyerFullName(admittedDealRegisterNewRequest.getBuyerFullName()); - predictableAdmittedDealRegister.setBuyerClearingCode(admittedDealRegisterNewRequest.getBuyerClearingCode()); - predictableAdmittedDealRegister.setBuyerAccount(admittedDealRegisterNewRequest.getBuyerAccount()); - predictableAdmittedDealRegister.setAmount(admittedDealRegisterNewRequest.getAmount()); - predictableAdmittedDealRegister.setClearingDate(admittedDealRegisterNewRequest.getClearingDate()); - - //ACT - String jsonString = getJsonStringForNew(admittedDealRegisterNewRequest, ID); - - addRecordToKafka((MockConsumer) admittedDealRegisterService.getConsumer(), TOPIC_REGISTRY_ADMITTED_DEAL_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - AdmittedDealRegister resultNew = admittedDealRegisterMap.getSingleObjectBySQL(String.format("executionId = %d", executionId)); - predictableAdmittedDealRegister.setId(resultNew.getId()); - ADMITTED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableAdmittedDealRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/BalanceRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/BalanceRegisterServiceTest.java deleted file mode 100644 index 4b5167e0d..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/BalanceRegisterServiceTest.java +++ /dev/null @@ -1,113 +0,0 @@ -package ru.spcex.clearing.registry.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.misc.BalanceRegister; -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.registry.BalanceRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - BalanceRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class BalanceRegisterServiceTest { - public static final MatcherFactory.Matcher ADMITTED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_BALANCE_REGISTER_NEW = Consts.REGISTRY_BALANCE_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - BalanceRegisterService balanceRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg balanceRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.balanceRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_BalanceRegister, BalanceRegister.class); - } - - /** - * {@link BalanceRegisterService#balanceRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link BalanceRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link BalanceRegisterNewRequest}:
- */ - @Test - void balanceRegisterNew() { - //ARRANGE - Long companyId = 1234L; - BalanceRegisterNewRequest balanceRegisterNewRequest = new BalanceRegisterNewRequest(); - balanceRegisterNewRequest.setsDf01Date(Instant.now()); - balanceRegisterNewRequest.setCurrencyCode("currencyCode"); - balanceRegisterNewRequest.setSetHouseName("houseName"); - balanceRegisterNewRequest.setAccount("121546854"); - balanceRegisterNewRequest.setInfoAccount("account"); - balanceRegisterNewRequest.setRemainderSum(new BigDecimal(76)); - balanceRegisterNewRequest.setBlockedSum(new BigDecimal(16)); - balanceRegisterNewRequest.setUnblockedSum(new BigDecimal(46)); - balanceRegisterNewRequest.setInn("inn"); - balanceRegisterNewRequest.setMarket(12L); - balanceRegisterNewRequest.setFullName("fullName"); - balanceRegisterNewRequest.setTypeRemains("typeRemains"); - balanceRegisterNewRequest.setDocNumber("docNumber"); - balanceRegisterNewRequest.setCompanyId(companyId); - - BalanceRegister predictableBalanceRegister = new BalanceRegister(); - predictableBalanceRegister.setsDf01Date(balanceRegisterNewRequest.getsDf01Date()); - predictableBalanceRegister.setCurrencyCode(balanceRegisterNewRequest.getCurrencyCode()); - predictableBalanceRegister.setSetHouseName(balanceRegisterNewRequest.getSetHouseName()); - predictableBalanceRegister.setAccount(balanceRegisterNewRequest.getAccount()); - predictableBalanceRegister.setInfoAccount(balanceRegisterNewRequest.getInfoAccount()); - predictableBalanceRegister.setRemainderSum(balanceRegisterNewRequest.getRemainderSum()); - predictableBalanceRegister.setBlockedSum(balanceRegisterNewRequest.getBlockedSum()); - predictableBalanceRegister.setUnblockedSum(balanceRegisterNewRequest.getUnblockedSum()); - predictableBalanceRegister.setInn(balanceRegisterNewRequest.getInn()); - predictableBalanceRegister.setMarket(balanceRegisterNewRequest.getMarket()); - predictableBalanceRegister.setFullName(balanceRegisterNewRequest.getFullName()); - predictableBalanceRegister.setTypeRemains(balanceRegisterNewRequest.getTypeRemains()); - predictableBalanceRegister.setDocNumber(balanceRegisterNewRequest.getDocNumber()); - predictableBalanceRegister.setCompanyId(balanceRegisterNewRequest.getCompanyId()); - //ACT - String jsonString = getJsonStringForNew(balanceRegisterNewRequest, ID); - - addRecordToKafka((MockConsumer) balanceRegisterService.getConsumer(), TOPIC_REGISTRY_BALANCE_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - BalanceRegister resultNew = balanceRegisterMap.getSingleObjectBySQL(String.format("companyId = %d", companyId)); - predictableBalanceRegister.setId(resultNew.getId()); - ADMITTED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableBalanceRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeServiceTest.java deleted file mode 100644 index 844ef4480..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeServiceTest.java +++ /dev/null @@ -1,90 +0,0 @@ -package ru.spcex.clearing.registry.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.register.ClearMemberRegisterChange; -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.registry.ClearMemberRegisterChangeNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.time.Instant; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - ClearMemberRegisterChangeService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class ClearMemberRegisterChangeServiceTest { - public static final MatcherFactory.Matcher CLEAR_MEMBER_REGISTER_CHANGE_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW = Consts.REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - ClearMemberRegisterChangeService clearMemberRegisterChangeService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg clearMemberRegisterChangeMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.clearMemberRegisterChangeMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ClearMemberRegisterChange, ClearMemberRegisterChange.class); - } - - /** - * {@link ClearMemberRegisterChangeService#clearMemberRegisterChangeNew(BaseRequest)}
- * Тест проверяет создание сущности {@link ClearMemberRegisterChange} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ClearMemberRegisterChangeNewRequest}:
- */ - @Test - void clearMemberRegisterChangeNew() { - //ARRANGE - String comment = "comment"; - ClearMemberRegisterChangeNewRequest clearMemberRegisterChangeNewRequest = new ClearMemberRegisterChangeNewRequest(); - clearMemberRegisterChangeNewRequest.setDate(Instant.now()); - clearMemberRegisterChangeNewRequest.setComment("comment"); - clearMemberRegisterChangeNewRequest.setClearingCode("clearingCode"); - - ClearMemberRegisterChange predictableClearMemberRegisterChange = new ClearMemberRegisterChange(); - predictableClearMemberRegisterChange.setDate(clearMemberRegisterChangeNewRequest.getDate()); - predictableClearMemberRegisterChange.setComment(clearMemberRegisterChangeNewRequest.getComment()); - predictableClearMemberRegisterChange.setClearingCode(clearMemberRegisterChangeNewRequest.getClearingCode()); - //ACT - String jsonString = getJsonStringForNew(clearMemberRegisterChangeNewRequest, ID); - - addRecordToKafka((MockConsumer) clearMemberRegisterChangeService.getConsumer(), TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - ClearMemberRegisterChange resultNew = clearMemberRegisterChangeMap.getSingleObjectBySQL(String.format("comment = %s", comment)); - predictableClearMemberRegisterChange.setId(resultNew.getId()); - CLEAR_MEMBER_REGISTER_CHANGE_MATCHER.assertMatch(resultNew, predictableClearMemberRegisterChange); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterServiceTest.java deleted file mode 100644 index 0cbabb914..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterServiceTest.java +++ /dev/null @@ -1,135 +0,0 @@ -package ru.spcex.clearing.registry.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.misc.ClearMemberRegister; -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.registry.ClearMemberRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - ClearMemberRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class ClearMemberRegisterServiceTest { - public static final MatcherFactory.Matcher CLEAR_MEMBER_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_NEW = Consts.REGISTRY_CLEAR_MEMBER_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - ClearMemberRegisterService clearMemberRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg clearMemberRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.clearMemberRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ClearMemberRegister, ClearMemberRegister.class); - } - - /** - * {@link ClearMemberRegisterService#clearMemberRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link ClearMemberRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ClearMemberRegisterNewRequest}:
- */ - @Test - void clearMemberRegisterNew() { - //ARRANGE - Long bank = 1234L; - ClearMemberRegisterNewRequest clearMemberRegisterNewRequest = new ClearMemberRegisterNewRequest(); - clearMemberRegisterNewRequest.setTradingCode("tradingCode"); - clearMemberRegisterNewRequest.setClearingCode("clearingCode"); - clearMemberRegisterNewRequest.setFullName("fullName"); - clearMemberRegisterNewRequest.setShortName("shortName"); - clearMemberRegisterNewRequest.setCategoryList("categoryList"); - clearMemberRegisterNewRequest.setCorporationSole("corporationSole"); - clearMemberRegisterNewRequest.setAccount("1246984698"); - clearMemberRegisterNewRequest.setBank(bank); - clearMemberRegisterNewRequest.setBankName("bankName"); - clearMemberRegisterNewRequest.setInn("inn"); - clearMemberRegisterNewRequest.setBic("bic"); - clearMemberRegisterNewRequest.setOgrn("ogrn"); - clearMemberRegisterNewRequest.setCpp("cpp"); - clearMemberRegisterNewRequest.setOcpo("ocpo"); - clearMemberRegisterNewRequest.setContractNumber("contractNumber"); - clearMemberRegisterNewRequest.setContractDate(LocalDate.now()); - clearMemberRegisterNewRequest.setRegistrationDate(LocalDate.now()); - clearMemberRegisterNewRequest.setSystemDate(LocalDate.now()); - clearMemberRegisterNewRequest.setAccessDate(Instant.now()); - clearMemberRegisterNewRequest.setSuspentionDate(Instant.now()); - clearMemberRegisterNewRequest.setReopeningDate(Instant.now()); - clearMemberRegisterNewRequest.setCloseDate(Instant.now()); - clearMemberRegisterNewRequest.setExclusionDate(Instant.now()); - clearMemberRegisterNewRequest.setAddress("address"); - clearMemberRegisterNewRequest.setEmail("email"); - - ClearMemberRegister predictableClearMemberRegister = new ClearMemberRegister(); - predictableClearMemberRegister.setTradingCode(clearMemberRegisterNewRequest.getTradingCode()); - predictableClearMemberRegister.setClearingCode(clearMemberRegisterNewRequest.getClearingCode()); - predictableClearMemberRegister.setFullName(clearMemberRegisterNewRequest.getFullName()); - predictableClearMemberRegister.setShortName(clearMemberRegisterNewRequest.getShortName()); - predictableClearMemberRegister.setCategoryList(clearMemberRegisterNewRequest.getCategoryList()); - predictableClearMemberRegister.setCorporationSole(clearMemberRegisterNewRequest.getCorporationSole()); - predictableClearMemberRegister.setAccount(clearMemberRegisterNewRequest.getAccount()); - predictableClearMemberRegister.setBank(clearMemberRegisterNewRequest.getBank()); - predictableClearMemberRegister.setBankName(clearMemberRegisterNewRequest.getBankName()); - predictableClearMemberRegister.setInn(clearMemberRegisterNewRequest.getInn()); - predictableClearMemberRegister.setBic(clearMemberRegisterNewRequest.getBic()); - predictableClearMemberRegister.setOgrn(clearMemberRegisterNewRequest.getOgrn()); - predictableClearMemberRegister.setCpp(clearMemberRegisterNewRequest.getCpp()); - predictableClearMemberRegister.setOcpo(clearMemberRegisterNewRequest.getOcpo()); - predictableClearMemberRegister.setContractNumber(clearMemberRegisterNewRequest.getContractNumber()); - predictableClearMemberRegister.setContractDate(clearMemberRegisterNewRequest.getContractDate()); - predictableClearMemberRegister.setRegistrationDate(clearMemberRegisterNewRequest.getRegistrationDate()); - predictableClearMemberRegister.setSystemDate(clearMemberRegisterNewRequest.getSystemDate()); - predictableClearMemberRegister.setAccessDate(clearMemberRegisterNewRequest.getAccessDate()); - predictableClearMemberRegister.setSuspentionDate(clearMemberRegisterNewRequest.getSuspentionDate()); - predictableClearMemberRegister.setReopeningDate(clearMemberRegisterNewRequest.getReopeningDate()); - predictableClearMemberRegister.setCloseDate(clearMemberRegisterNewRequest.getCloseDate()); - predictableClearMemberRegister.setExclusionDate(clearMemberRegisterNewRequest.getExclusionDate()); - predictableClearMemberRegister.setAddress(clearMemberRegisterNewRequest.getAddress()); - predictableClearMemberRegister.setEmail(clearMemberRegisterNewRequest.getEmail()); - //ACT - String jsonString = getJsonStringForNew(clearMemberRegisterNewRequest, ID); - - addRecordToKafka((MockConsumer) clearMemberRegisterService.getConsumer(), TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - ClearMemberRegister resultNew = clearMemberRegisterMap.getSingleObjectBySQL(String.format("bank = %d", bank)); - predictableClearMemberRegister.setId(resultNew.getId()); - CLEAR_MEMBER_REGISTER_MATCHER.assertMatch(resultNew, predictableClearMemberRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredDealRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredDealRegisterServiceTest.java deleted file mode 100644 index 921dfe0a3..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredDealRegisterServiceTest.java +++ /dev/null @@ -1,116 +0,0 @@ -package ru.spcex.clearing.registry.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.register.CoveredDealRegister; -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.registry.CoveredDealRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - CoveredDealRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class CoveredDealRegisterServiceTest { - public static final MatcherFactory.Matcher COVERED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_COVERED_DEAL_REGISTER_NEW = Consts.REGISTRY_COVERED_DEAL_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - CoveredDealRegisterService coveredDealRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg coveredDealRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.coveredDealRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_CoveredDealRegister, CoveredDealRegister.class); - } - - /** - * {@link CoveredDealRegisterService#coveredDealRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link CoveredDealRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CoveredDealRegisterNewRequest}:
- */ - @Test - void coveredDealRegisterNew() { - //ARRANGE - Long executionId = 1234L; - CoveredDealRegisterNewRequest coveredDealRegisterNewRequest = new CoveredDealRegisterNewRequest(); - coveredDealRegisterNewRequest.setExecutionId(executionId); - coveredDealRegisterNewRequest.setCompanyFullName("companyFullName"); - coveredDealRegisterNewRequest.setTradingDate(LocalDate.now()); - coveredDealRegisterNewRequest.setExchangeExecutionId(1212L); - coveredDealRegisterNewRequest.setExchangeExecutionTime(Instant.now()); - coveredDealRegisterNewRequest.setSecuritySymbol("securitySymbol"); - coveredDealRegisterNewRequest.setSecurityFullName("fullName"); - coveredDealRegisterNewRequest.setSellerFullName("sellerFullName"); - coveredDealRegisterNewRequest.setSellerClearingCode("sellerClearingCode"); - coveredDealRegisterNewRequest.setSellerAccount("sellerAccount"); - coveredDealRegisterNewRequest.setBuyerFullName("buyerFullName"); - coveredDealRegisterNewRequest.setBuyerClearingCode("buyerClearingCode"); - coveredDealRegisterNewRequest.setBuyerAccount("buyerAccount"); - coveredDealRegisterNewRequest.setAmount(new BigDecimal(412)); - coveredDealRegisterNewRequest.setClearingDate(LocalDate.now()); - - CoveredDealRegister predictableCoveredDealRegister = new CoveredDealRegister(); - predictableCoveredDealRegister.setExecutionId(coveredDealRegisterNewRequest.getExecutionId()); - predictableCoveredDealRegister.setCompanyFullName(coveredDealRegisterNewRequest.getCompanyFullName()); - predictableCoveredDealRegister.setTradingDate(coveredDealRegisterNewRequest.getTradingDate()); - predictableCoveredDealRegister.setExchangeExecutionId(coveredDealRegisterNewRequest.getExchangeExecutionId()); - predictableCoveredDealRegister.setExchangeExecutionTime(coveredDealRegisterNewRequest.getExchangeExecutionTime()); - predictableCoveredDealRegister.setSecuritySymbol(coveredDealRegisterNewRequest.getSecuritySymbol()); - predictableCoveredDealRegister.setSecurityFullName(coveredDealRegisterNewRequest.getSecurityFullName()); - predictableCoveredDealRegister.setSellerFullName(coveredDealRegisterNewRequest.getSellerFullName()); - predictableCoveredDealRegister.setSellerClearingCode(coveredDealRegisterNewRequest.getSellerClearingCode()); - predictableCoveredDealRegister.setSellerAccount(coveredDealRegisterNewRequest.getSellerAccount()); - predictableCoveredDealRegister.setBuyerFullName(coveredDealRegisterNewRequest.getBuyerFullName()); - predictableCoveredDealRegister.setBuyerClearingCode(coveredDealRegisterNewRequest.getBuyerClearingCode()); - predictableCoveredDealRegister.setBuyerAccount(coveredDealRegisterNewRequest.getBuyerAccount()); - predictableCoveredDealRegister.setAmount(coveredDealRegisterNewRequest.getAmount()); - predictableCoveredDealRegister.setClearingDate(coveredDealRegisterNewRequest.getClearingDate()); - //ACT - String jsonString = getJsonStringForNew(coveredDealRegisterNewRequest, ID); - - addRecordToKafka((MockConsumer) coveredDealRegisterService.getConsumer(), TOPIC_REGISTRY_COVERED_DEAL_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - CoveredDealRegister resultNew = coveredDealRegisterMap.getSingleObjectBySQL(String.format("executionId = %d", executionId)); - predictableCoveredDealRegister.setId(resultNew.getId()); - COVERED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableCoveredDealRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/OrderRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/OrderRegisterServiceTest.java deleted file mode 100644 index 6cd5a8472..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/OrderRegisterServiceTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package ru.spcex.clearing.registry.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.register.OrderRegister; -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.registry.OrderRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - OrderRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class OrderRegisterServiceTest { - public static final MatcherFactory.Matcher ORDER_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_ORDER_REGISTER_NEW = Consts.REGISTRY_ORDER_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - OrderRegisterService orderRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg orderRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.orderRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_OrderRegister, OrderRegister.class); - } - - /** - * {@link OrderRegisterService#orderRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link OrderRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link OrderRegisterNewRequest}:
- */ - @Test - void orderRegisterNew() { - //ARRANGE - Long creditLegDirection = 1234L; - OrderRegisterNewRequest req = new OrderRegisterNewRequest(); - req.setCreditLegAccount("creditLegAccount"); - req.setCreditLegAmount(new BigDecimal(0)); - req.setCreditLegCurrencyCode("creditLegCurrencyCode"); - req.setCreditLegDirection(creditLegDirection); - req.setDebitLegAccount(req.getDebitLegAccount()); - req.setSender(req.getSender()); - req.setAddressee(req.getAddressee()); - req.setDocumentNumber(req.getDocumentNumber()); - req.setClearingDate(req.getClearingDate()); - req.setClearingDate(LocalDate.now()); - - OrderRegister predictableOrderRegister = new OrderRegister(); - predictableOrderRegister.setCreditLegAccount(req.getCreditLegAccount()); - predictableOrderRegister.setCreditLegAmount(req.getCreditLegAmount()); - predictableOrderRegister.setCreditLegCurrencyCode(req.getCreditLegCurrencyCode()); - predictableOrderRegister.setCreditLegDirection(req.getCreditLegDirection()); - predictableOrderRegister.setDebitLegAccount(req.getDebitLegAccount()); - predictableOrderRegister.setSender(req.getSender()); - predictableOrderRegister.setAddressee(req.getAddressee()); - predictableOrderRegister.setDocumentNumber(req.getDocumentNumber()); - predictableOrderRegister.setClearingDate(req.getClearingDate()); - predictableOrderRegister.setClearingDate(req.getClearingDate()); - //ACT - String jsonString = getJsonStringForNew(req, ID); - - addRecordToKafka((MockConsumer) orderRegisterService.getConsumer(), TOPIC_REGISTRY_ORDER_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - OrderRegister resultNew = orderRegisterMap.getSingleObjectBySQL(String.format("creditLegDirection = %d", creditLegDirection)); - predictableOrderRegister.setId(resultNew.getId()); - ORDER_REGISTER_MATCHER.assertMatch(resultNew, predictableOrderRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterServiceTest.java deleted file mode 100644 index 26cc0f08d..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterServiceTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package ru.spcex.clearing.registry.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.register.UncoveredDealRegister; -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.registry.UncoveredDealRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - UncoveredDealRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class UncoveredDealRegisterServiceTest { - public static final MatcherFactory.Matcher UNCOVERED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_UNCOVERED_DEAL_REGISTER_NEW = Consts.REGISTRY_UNCOVERED_DEAL_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - UncoveredDealRegisterService uncoveredDealRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg uncoveredDealRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.uncoveredDealRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_UncoveredDealRegister, UncoveredDealRegister.class); - } - - /** - * {@link UncoveredDealRegisterService#uncoveredDealRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link UncoveredDealRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link UncoveredDealRegisterNewRequest}:
- */ - @Test - void uncoveredDealRegisterNew() { - //ARRANGE - Long executionId = 1234L; - UncoveredDealRegisterNewRequest req = new UncoveredDealRegisterNewRequest(); - req.setExecutionId(executionId); - req.setCompanyFullName("companyFullName"); - req.setTradingDate(LocalDate.now()); - req.setExchangeExecutionId(121L); - req.setExchangeExecutionTime(Instant.now()); - req.setSecuritySymbol("securitySymbol"); - req.setSecurityFullName("fullName"); - req.setSellerFullName("sellerFullName"); - req.setSellerClearingCode("sellerClearingCode"); - req.setSellerAccount("sellerAccount"); - req.setBuyerFullName("buyerFullName"); - req.setBuyerClearingCode("clearingCode"); - req.setBuyerAccount("buyerAccount"); - req.setAmount(new BigDecimal(21)); - req.setResultStatus("resultStatus"); - req.setClearingDate(LocalDate.now()); - - UncoveredDealRegister predictableUncoveredDealRegister = new UncoveredDealRegister(); - predictableUncoveredDealRegister.setExecutionId(req.getExecutionId()); - predictableUncoveredDealRegister.setCompanyFullName(req.getCompanyFullName()); - predictableUncoveredDealRegister.setTradingDate(req.getTradingDate()); - predictableUncoveredDealRegister.setExchangeExecutionId(req.getExchangeExecutionId()); - predictableUncoveredDealRegister.setExchangeExecutionTime(req.getExchangeExecutionTime()); - predictableUncoveredDealRegister.setSecuritySymbol(req.getSecuritySymbol()); - predictableUncoveredDealRegister.setSecurityFullName(req.getSecurityFullName()); - predictableUncoveredDealRegister.setSellerFullName(req.getSellerFullName()); - predictableUncoveredDealRegister.setSellerClearingCode(req.getSellerClearingCode()); - predictableUncoveredDealRegister.setSellerAccount(req.getSellerAccount()); - predictableUncoveredDealRegister.setBuyerFullName(req.getBuyerFullName()); - predictableUncoveredDealRegister.setBuyerClearingCode(req.getBuyerClearingCode()); - predictableUncoveredDealRegister.setBuyerAccount(req.getBuyerAccount()); - predictableUncoveredDealRegister.setAmount(req.getAmount()); - predictableUncoveredDealRegister.setResultStatus(req.getResultStatus()); - predictableUncoveredDealRegister.setClearingDate(req.getClearingDate()); - //ACT - String jsonString = getJsonStringForNew(req, ID); - - addRecordToKafka((MockConsumer) uncoveredDealRegisterService.getConsumer(), TOPIC_REGISTRY_UNCOVERED_DEAL_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - UncoveredDealRegister resultNew = uncoveredDealRegisterMap.getSingleObjectBySQL(String.format("executionId = %d", executionId)); - predictableUncoveredDealRegister.setId(resultNew.getId()); - UNCOVERED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableUncoveredDealRegister); - } -} \ 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-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 3ec5f5b9f..a37a64c4b 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"; @@ -50,11 +51,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,7 +75,7 @@ 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"; @@ -90,7 +94,6 @@ public final class IMDGDistributedNames { public static final String Map_StatementTypeDictionary = "Map_StatementTypeDictionary"; public static final String Map_TermTypeDictionary = "Map_TermTypeDictionary"; 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 +102,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,20 +111,14 @@ 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_AdmittedDealRegister = "Map_AdmittedDealRegister"; - 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_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/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/registry/ClearMemberRegisterChangeNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterChangeNewRequest.java deleted file mode 100644 index 9f9eee634..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterChangeNewRequest.java +++ /dev/null @@ -1,44 +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.serialize.InstantDateTimeSerializer; - -import java.time.Instant; - -public class ClearMemberRegisterChangeNewRequest { - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant date; - @JsonProperty - private String clearingCode; - @JsonProperty - private String comment; - - public Instant getDate() { - return date; - } - - public void setDate(Instant date) { - this.date = date; - } - - public String getClearingCode() { - return clearingCode; - } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; - } - - 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/ClearMemberRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterNewRequest.java deleted file mode 100644 index eed8c58bd..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterNewRequest.java +++ /dev/null @@ -1,343 +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.time.Instant; -import java.time.LocalDate; - -public class ClearMemberRegisterNewRequest { - - @JsonProperty - private String tradingCode; - - @JsonProperty - private String clearingCode; - - @JsonProperty - private String fullName; - - @JsonProperty - private String shortName; - - @JsonProperty - private String categoryList; - - @JsonProperty - private String corporationSole; - - @JsonProperty - private String account; - - @JsonProperty - private Long bank; - - @JsonProperty - private String bankName; - - @JsonProperty - private String inn; - - @JsonProperty - private String bic; - - @JsonProperty - private String ogrn; - - @JsonProperty - private String cpp; - - @JsonProperty - private String ocpo; - - @JsonProperty - private String contractNumber; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate contractDate; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate registrationDate; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate systemDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant accessDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant suspentionDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant reopeningDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant closeDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant exclusionDate; - - @JsonProperty - private String address; - - @JsonProperty - private String email; - - @JsonProperty - private Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant updatedAt; - - 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; - } - - 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; - } -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/CoveredDealRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/CoveredDealRegisterNewRequest.java deleted file mode 100644 index ec1d1908b..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/CoveredDealRegisterNewRequest.java +++ /dev/null @@ -1,225 +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 CoveredDealRegisterNewRequest { - - @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; //todo clarify is timestamp suitable for this request or not - - @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/registry/OrderRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/OrderRegisterNewRequest.java deleted file mode 100644 index 7eae019d3..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/OrderRegisterNewRequest.java +++ /dev/null @@ -1,155 +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 OrderRegisterNewRequest { - - @JsonProperty - private String creditLegAccount; - - @JsonProperty - private BigDecimal creditLegAmount; - - @JsonProperty - private String creditLegCurrencyCode; - - @JsonProperty - private Long creditLegDirection; - - @JsonProperty - private String debitLegAccount; - - @JsonProperty - private String sender; - - @JsonProperty - private String addressee; - - @JsonProperty - private String documentNumber; - - @JsonProperty - private Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant updatedAt; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - 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 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/registry/UncoveredDealRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java deleted file mode 100644 index bdd06a020..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java +++ /dev/null @@ -1,235 +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 UncoveredDealRegisterNewRequest { - - @JsonProperty - private Long executionId; - - @JsonProperty - private String companyFullName; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate tradingDate; - - @JsonProperty - private Long exchangeExecutionId; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant exchangeExecutionTime; - - @JsonProperty - private String securitySymbol; - - @JsonProperty - private String securityFullName; - - @JsonProperty - private String sellerFullName; - - @JsonProperty - private String sellerClearingCode; - - @JsonProperty - private String sellerAccount; - - @JsonProperty - private String buyerFullName; - - @JsonProperty - private String buyerClearingCode; - - @JsonProperty - private String buyerAccount; - - @JsonProperty - private BigDecimal amount; - - @JsonProperty - private String resultStatus; - - @JsonProperty - private Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant updatedAt; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - 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 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; From 61ed69c676d1cdffb019bfec26b46a9bdbf8aab8 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 19:21:30 +0300 Subject: [PATCH 26/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D1=81=D0=BB=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=80=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/AccountBalanceService.java | 1 + .../dictionary/EventTypeDictionary.java | 11 +++++++ .../dictionary/InOutSDfTypeDictionary.java | 11 +++++++ .../dictionary/MarketTypeDictionary.java | 11 +++++++ .../NotificationStatusDictionary.java | 11 +++++++ .../dictionary/ObjectTypeDictionary.java | 11 +++++++ .../TransactionStatusDictionary.java | 11 +++++++ .../EventTypeDictionaryMapStore.java | 31 +++++++++++++++++++ .../InOutSDfTypeDictionaryMapStore.java | 31 +++++++++++++++++++ .../MarketTypeDictionaryMapStore.java | 31 +++++++++++++++++++ .../NotificationStatusDictionaryMapStore.java | 31 +++++++++++++++++++ .../ObjectTypeDictionaryMapStore.java | 31 +++++++++++++++++++ .../TransactionStatusDictionaryMapStore.java | 31 +++++++++++++++++++ .../structure/RunnableMapNamesForTesting.java | 6 ++++ .../clearing/imdg/IMDGDistributedNames.java | 8 ++++- 15 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/EventTypeDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/InOutSDfTypeDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/MarketTypeDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NotificationStatusDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ObjectTypeDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/TransactionStatusDictionaryMapStore.java 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/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/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/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index b7265aba4..55c19946c 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 @@ -197,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)); @@ -220,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)); 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 a37a64c4b..ab6bcf7ad 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 @@ -19,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"; @@ -31,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"; @@ -43,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"; @@ -79,7 +82,9 @@ public final class IMDGDistributedNames { 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"; @@ -93,6 +98,7 @@ 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_TaskDictionary = "Map_TaskDictionary"; public static final String Map_TaskStatusDictionary = "Map_TaskStatusDictionary"; From c42733812123b4890f882c3b27480b4e3aff3f46 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 19:52:08 +0300 Subject: [PATCH 27/27] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../register/AdmittedLiabilitiesRegister.java | 92 ++++++++++ .../register/CoveredLiabilitiesRegister.java | 101 +++++++++++ .../data/register/DepoBalanceRegister.java | 60 +++++++ .../DepoPaymentInstructionRegister.java | 73 ++++++++ .../register/ExcludeLiabilitiesRegister.java | 124 ++++++++++++++ .../data/register/ExecutionRegister.java | 157 ++++++++++++++++++ .../data/register/LiabilitiesRegister.java | 123 ++++++++++++++ .../data/register/MoneyBalanceRegister.java | 97 +++++++++++ .../MoneyPaymentInstructionRegister.java | 74 +++++++++ .../AdmittedLiabilitiesRegisterMapStore.java | 75 +++++++++ .../CoveredLiabilitiesRegisterMapStore.java | 76 +++++++++ .../DepoBalanceRegisterMapStore.java | 67 ++++++++ ...epoPaymentInstructionRegisterMapStore.java | 71 ++++++++ .../ExcludeLiabilitiesRegisterMapStore.java | 84 ++++++++++ .../ExecutionRegisterMapStore.java | 91 ++++++++++ .../LiabilitiesRegisterMapStore.java | 84 ++++++++++ .../MoneyBalanceRegisterMapStore.java | 77 +++++++++ ...neyPaymentInstructionRegisterMapStore.java | 71 ++++++++ .../structure/RunnableMapNamesForTesting.java | 27 +++ .../clearing/imdg/IMDGDistributedNames.java | 9 + 20 files changed, 1633 insertions(+) create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AdmittedLiabilitiesRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CoveredLiabilitiesRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoBalanceRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoPaymentInstructionRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExcludeLiabilitiesRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java 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 new file mode 100644 index 000000000..067ad3e16 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java @@ -0,0 +1,92 @@ +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; + private String securityFullName; + private Long companyId; + private String clearingCode; + private String account; + private BigDecimal amount; + private LocalDate clearingDate; + + public String getCompanyFullName() { + return companyFullName; + } + public void setCompanyFullName(String value) { + this.companyFullName=value; + } + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + public void setSecuritySymbol(String value) { + this.securitySymbol=value; + } + + public String getSecurityFullName() { + return securityFullName; + } + public void setSecurityFullName(String value) { + this.securityFullName=value; + } + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public String getClearingCode() { + return clearingCode; + } + public void setClearingCode(String value) { + this.clearingCode=value; + } + + public String getAccount() { + return account; + } + public void setAccount(String value) { + this.account=value; + } + + public BigDecimal getAmount() { + return amount; + } + public void setAmount(BigDecimal value) { + this.amount=value; + } + + public LocalDate getClearingDate() { + return 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/CoveredLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java new file mode 100644 index 000000000..9fbddd902 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java @@ -0,0 +1,101 @@ +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; + private String securityFullName; + private Long companyId; + private String clearingCode; + private String account; + private BigDecimal amount; + private LocalDate clearingDate; + + public String getCompanyFullName() { + return companyFullName; + } + + public void setCompanyFullName(String value) { + this.companyFullName = value; + } + + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long value) { + this.sessionId = value; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + + public void setSecuritySymbol(String value) { + this.securitySymbol = value; + } + + public String getSecurityFullName() { + return securityFullName; + } + + public void setSecurityFullName(String value) { + this.securityFullName = value; + } + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long value) { + this.companyId = value; + } + + public String getClearingCode() { + return clearingCode; + } + + public void setClearingCode(String value) { + this.clearingCode = value; + } + + public String getAccount() { + return account; + } + + public void setAccount(String value) { + this.account = value; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal value) { + this.amount = value; + } + + public LocalDate getClearingDate() { + return 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/DepoBalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java new file mode 100644 index 000000000..4b2611694 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java @@ -0,0 +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.BigDecimal; +import java.time.Instant; + +/** + * Реестр остатков ценных бумаг + * + * 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 BigDecimal quantity; + private String securitySymbol; + + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public String getDepoCode() { + return depoCode; + } + public void setDepoCode(String value) { + this.depoCode=value; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantity(BigDecimal value) { + this.quantity=value; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + public void setSecuritySymbol(String value) { + this.securitySymbol=value; + } + +} \ 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 new file mode 100644 index 000000000..b67352c33 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java @@ -0,0 +1,73 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; + +import java.math.BigDecimal; + +/** + * Реестр распоряжений, направленных расчетному депозитарию + * + * DB table: DEPO_PAYMENT_INSTRUCTION_REGISTER + **/ +public class DepoPaymentInstructionRegister extends BusinessObject { + 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 sessionId; + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public String getTradingClearingRegistryType() { + return tradingClearingRegistryType; + } + public void setTradingClearingRegistryType(String value) { + this.tradingClearingRegistryType=value; + } + + public String getTradingClearingRegistry() { + return tradingClearingRegistry; + } + public void setTradingClearingRegistry(String value) { + this.tradingClearingRegistry=value; + } + + public String getCbCode() { + return cbCode; + } + public void setCbCode(String value) { + this.cbCode=value; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantity(BigDecimal value) { + this.quantity=value; + } + + public Long getDirection() { + return direction; + } + public void setDirection(Long value) { + this.direction=value; + } + + public Long getSessionId() { + return 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 new file mode 100644 index 000000000..2a8c8ef71 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java @@ -0,0 +1,124 @@ +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.LocalDate; + +/** + * Реестр обязательств, исключенных из клирингового пула + * + * DB table: EXCLUDE_LIABILITIES_REGISTER + **/ +public class ExcludeLiabilitiesRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long sessionId; + private LocalDate validFromDate; + private LocalDate validToDate; + private Long companyId; + private String companyFullName; + private String inn; + private String segment; + private String registryCode; + private String account; + private String registryStatus; + private String currency; + private BigDecimal sumLiabilities; + private LocalDate settlementDate; + + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public LocalDate getValidFromDate() { + return validFromDate; + } + public void setValidFromDate(LocalDate value) { + this.validFromDate=value; + } + + public LocalDate getValidToDate() { + return validToDate; + } + public void setValidToDate(LocalDate value) { + this.validToDate=value; + } + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public String getCompanyFullName() { + return companyFullName; + } + public void setCompanyFullName(String value) { + this.companyFullName=value; + } + + public String getInn() { + return inn; + } + public void setInn(String value) { + this.inn=value; + } + + public String getSegment() { + return segment; + } + public void setSegment(String value) { + this.segment=value; + } + + public String getRegistryCode() { + return registryCode; + } + public void setRegistryCode(String value) { + this.registryCode=value; + } + + public String getAccount() { + return account; + } + public void setAccount(String value) { + this.account=value; + } + + public String getRegistryStatus() { + return registryStatus; + } + public void setRegistryStatus(String value) { + this.registryStatus=value; + } + + public String getCurrency() { + return currency; + } + public void setCurrency(String value) { + this.currency=value; + } + + public BigDecimal getSumLiabilities() { + return sumLiabilities; + } + public void setSumLiabilities(BigDecimal value) { + this.sumLiabilities=value; + } + + public LocalDate getSettlementDate() { + return 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 new file mode 100644 index 000000000..3258f0eab --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java @@ -0,0 +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 static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private LocalDate tradingDate; + private Long exchangeExecutionId; + private Instant exchangeExecutionTime; + private Long securityId; + private Long sellerId; + private String sellerClearingCode; + private String sellerTradingClearingRegister; + private String sellerMoneyAccount; + private String sellerDepoAccount; + private Long buyerId; + private String buyerClearingCode; + private String buyerTradingClearingRegister; + private String buyerMoneyAccount; + private String buyerDepoAccount; + private BigDecimal amount; + private BigDecimal quantity; + private LocalDate clearingDate; + + public LocalDate getTradingDate() { + return tradingDate; + } + public void setTradingDate(LocalDate value) { + this.tradingDate=value; + } + + public Long getExchangeExecutionId() { + return exchangeExecutionId; + } + public void setExchangeExecutionId(Long value) { + this.exchangeExecutionId=value; + } + + public Instant getExchangeExecutionTime() { + return exchangeExecutionTime; + } + public void setExchangeExecutionTime(Instant value) { + this.exchangeExecutionTime=value; + } + + public Long getSecurityId() { + return securityId; + } + public void setSecurityId(Long value) { + this.securityId=value; + } + + public Long getSellerId() { + return sellerId; + } + public void setSellerId(Long value) { + this.sellerId=value; + } + + public String getSellerClearingCode() { + return sellerClearingCode; + } + public void setSellerClearingCode(String value) { + this.sellerClearingCode=value; + } + + public String getSellerTradingClearingRegister() { + return sellerTradingClearingRegister; + } + public void setSellerTradingClearingRegister(String value) { + this.sellerTradingClearingRegister=value; + } + + public String getSellerMoneyAccount() { + return sellerMoneyAccount; + } + public void setSellerMoneyAccount(String value) { + this.sellerMoneyAccount=value; + } + + public String getSellerDepoAccount() { + return sellerDepoAccount; + } + public void setSellerDepoAccount(String value) { + this.sellerDepoAccount=value; + } + + public Long getBuyerId() { + return buyerId; + } + public void setBuyerId(Long value) { + this.buyerId=value; + } + + public String getBuyerClearingCode() { + return buyerClearingCode; + } + public void setBuyerClearingCode(String value) { + this.buyerClearingCode=value; + } + + public String getBuyerTradingClearingRegister() { + return buyerTradingClearingRegister; + } + public void setBuyerTradingClearingRegister(String value) { + this.buyerTradingClearingRegister=value; + } + + public String getBuyerMoneyAccount() { + return buyerMoneyAccount; + } + public void setBuyerMoneyAccount(String value) { + this.buyerMoneyAccount=value; + } + + public String getBuyerDepoAccount() { + return buyerDepoAccount; + } + public void setBuyerDepoAccount(String value) { + this.buyerDepoAccount=value; + } + + public BigDecimal getAmount() { + return amount; + } + public void setAmount(BigDecimal value) { + this.amount=value; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantity(BigDecimal value) { + this.quantity=value; + } + + + public LocalDate getClearingDate() { + return 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 new file mode 100644 index 000000000..c3a7ef58d --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java @@ -0,0 +1,123 @@ +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.LocalDate; + +/** + * Реестр учета обязательств + * + * DB table: LIABILITIES_REGISTER + **/ +public class LiabilitiesRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long sessionId; + private LocalDate validFromDate; + private LocalDate validToDate; + private Long companyId; + private String companyFullName; + private String inn; + private String segment; + private String registryCode; + private String account; + private String registryStatus; + private String currency; + private BigDecimal sumLiabilities; + private LocalDate settlementDate; + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public LocalDate getValidFromDate() { + return validFromDate; + } + public void setValidFromDate(LocalDate value) { + this.validFromDate=value; + } + + public LocalDate getValidToDate() { + return validToDate; + } + public void setValidToDate(LocalDate value) { + this.validToDate=value; + } + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public String getCompanyFullName() { + return companyFullName; + } + public void setCompanyFullName(String value) { + this.companyFullName=value; + } + + public String getInn() { + return inn; + } + public void setInn(String value) { + this.inn=value; + } + + public String getSegment() { + return segment; + } + public void setSegment(String value) { + this.segment=value; + } + + public String getRegistryCode() { + return registryCode; + } + public void setRegistryCode(String value) { + this.registryCode=value; + } + + public String getAccount() { + return account; + } + public void setAccount(String value) { + this.account=value; + } + + public String getRegistryStatus() { + return registryStatus; + } + public void setRegistryStatus(String value) { + this.registryStatus=value; + } + + public String getCurrency() { + return currency; + } + public void setCurrency(String value) { + this.currency=value; + } + + public BigDecimal getSumLiabilities() { + return sumLiabilities; + } + public void setSumLiabilities(BigDecimal value) { + this.sumLiabilities=value; + } + + public LocalDate getSettlementDate() { + return 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 new file mode 100644 index 000000000..0a46a9e6b --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java @@ -0,0 +1,97 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; + +import java.math.BigDecimal; + +/** + * Реестр остатков денежных средств + * + * 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; + private BigDecimal remainderSum; + private BigDecimal blockedSum; + private BigDecimal unblockedSum; + private String inn; + private Long sessionId; + private String companyFullName; + private Long companyId; + + public String getSetHouseName() { + return setHouseName; + } + public void setSetHouseName(String value) { + this.setHouseName=value; + } + + public String getAccount() { + return account; + } + public void setAccount(String value) { + this.account=value; + } + + public String getInfoAccount() { + return infoAccount; + } + public void setInfoAccount(String value) { + this.infoAccount=value; + } + + public BigDecimal getRemainderSum() { + return remainderSum; + } + public void setRemainderSum(BigDecimal value) { + this.remainderSum=value; + } + + public BigDecimal getBlockedSum() { + return blockedSum; + } + public void setBlockedSum(BigDecimal value) { + this.blockedSum=value; + } + + public BigDecimal getUnblockedSum() { + return unblockedSum; + } + public void setUnblockedSum(BigDecimal value) { + this.unblockedSum=value; + } + + public String getInn() { + return inn; + } + public void setInn(String value) { + this.inn=value; + } + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public String getCompanyFullName() { + return companyFullName; + } + public void setCompanyFullName(String value) { + this.companyFullName=value; + } + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + +} \ 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 new file mode 100644 index 000000000..c9734d18e --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java @@ -0,0 +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.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 LocalDate clearingDate; + + public String getCreditLegAccount() { + return creditLegAccount; + } + public void setCreditLegAccount(String value) { + this.creditLegAccount=value; + } + + public BigDecimal getCreditLegAmount() { + return creditLegAmount; + } + public void setCreditLegAmount(BigDecimal value) { + this.creditLegAmount=value; + } + + public String getCreditLegCurrencyCode() { + return creditLegCurrencyCode; + } + public void setCreditLegCurrencyCode(String value) { + this.creditLegCurrencyCode=value; + } + + public String getDebitLegAccount() { + return debitLegAccount; + } + public void setDebitLegAccount(String value) { + this.debitLegAccount=value; + } + + public String getSender() { + return sender; + } + public void setSender(String value) { + this.sender=value; + } + + public String getAddressee() { + return addressee; + } + public void setAddressee(String value) { + this.addressee=value; + } + + public LocalDate getClearingDate() { + return clearingDate; + } + public void setClearingDate(LocalDate value) { + this.clearingDate=value; + } + +} \ 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/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/businessobject/MoneyBalanceRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java new file mode 100644 index 000000000..d770db1a8 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java @@ -0,0 +1,77 @@ +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/businessobject/MoneyPaymentInstructionRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java new file mode 100644 index 000000000..9f9b59ba9 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.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.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/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index 55c19946c..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 @@ -253,6 +253,33 @@ public class RunnableMapNamesForTesting { 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_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)}))); + 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_ExecutionDeposit, ExecutionDeposit.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), 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 ab6bcf7ad..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 @@ -125,6 +125,15 @@ public final class IMDGDistributedNames { public static final String Map_ExecutionDepositHistory = "Map_ExecutionDepositHistory"; public static final String Map_ReportRegister = "Map_ReportRegister"; public static final String Map_ContractRegister = "Map_ContractRegister"; + 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";