From 51811cee42c7fcf6f873dcd708a94d7cf28eb3a6 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 15:33:48 +0300 Subject: [PATCH 01/25] http://jira.mfd.msk:8088/browse/CLS-757 --- .../db-scripts/src/main/resources/db/DICTIONARIES.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql index f119fe43b..252caa4bd 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql @@ -485,6 +485,7 @@ INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (30, 'CBRR', 'Загрузк INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (31, 'MTCR', 'Формирование файлов с МТКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (32, 'LIMC', 'Выгрузка в Торговую систему остатков по валюте (отправка lim)') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (33, 'GREC', 'Формирование отчетности ЦК') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO TASK_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'ACTV', 'Активна') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; From 2efb93702d3ebb6db8e9a2fabe5e6dc4940ad4b1 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 16:10:03 +0300 Subject: [PATCH 02/25] http://jira.mfd.msk:8088/browse/CLS-760 --- .../config/element/BackendApiSettings.java | 10 +++++ .../queue/misc/JsConfigController.java | 37 +++++++++++++++++++ .../{misc => securities}/RatesController.java | 2 +- .../RiskParameterController.java | 2 +- .../security/element/JsConfigSettings.java | 24 ++++++++++++ .../src/main/resources/application.properties | 3 ++ 6 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/JsConfigController.java rename clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/{misc => securities}/RatesController.java (98%) rename clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/{misc => securities}/RiskParameterController.java (98%) create mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/element/JsConfigSettings.java diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/element/BackendApiSettings.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/element/BackendApiSettings.java index 9b51e8890..42e5ad29d 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/element/BackendApiSettings.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/element/BackendApiSettings.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.backendapi.config.element; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; +import ru.spcex.clearing.backendapi.security.element.JsConfigSettings; import ru.spcex.clearing.backendapi.security.element.SecuritySettings; import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings; import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; @@ -17,6 +18,7 @@ public class BackendApiSettings { private KafkaProducerSettings kafkaProducer; private KafkaConsumerSettings kafkaConsumer; private SecuritySettings security; + private JsConfigSettings jsConfig; private String exampleSetting; public HazelcastClientParams getHazelcast() { @@ -59,6 +61,14 @@ public class BackendApiSettings { this.security = security; } + public JsConfigSettings getJsConfig() { + return jsConfig; + } + + public void setJsConfig(JsConfigSettings jsConfig) { + this.jsConfig = jsConfig; + } + public HazelcastClientParams getHazelcastSearch() { return hazelcastSearch; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/JsConfigController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/JsConfigController.java new file mode 100644 index 000000000..75eff18d7 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/JsConfigController.java @@ -0,0 +1,37 @@ +package ru.spcex.clearing.backendapi.controller.queue.misc; + +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import java.util.HashMap; +import java.util.Map; +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.spcex.clearing.backendapi.config.element.BackendApiSettings; +import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; +import ru.spcex.clearing.backendapi.security.element.JsConfigSettings; + +@Controller +@RequestMapping("/js-config") +public class JsConfigController { + private final BackendApiSettings backendApiSettings; + + public JsConfigController(BackendApiSettings backendApiSettings) { + this.backendApiSettings = backendApiSettings; + } + + @ApiOperation(value = "get js config.") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) + @RequestMapping(method = RequestMethod.GET) + @ResponseBody + public Map getJsConfig() { + Map result = new HashMap<>(); + + result.put(JsConfigSettings.SERVER_TITLE_PARAM_NAME, backendApiSettings.getJsConfig().getServerTitle()); + result.put(JsConfigSettings.IS_CENTRAL_COUNTER_PARTY_PARAM_NAME, backendApiSettings.getJsConfig().getCentralCounterParty()); + + return result; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/RatesController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/RatesController.java similarity index 98% rename from clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/RatesController.java rename to clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/RatesController.java index cd290f764..43ec6d568 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/RatesController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/RatesController.java @@ -1,4 +1,4 @@ -package ru.spcex.clearing.backendapi.controller.queue.misc; +package ru.spcex.clearing.backendapi.controller.queue.securities; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/RiskParameterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/RiskParameterController.java similarity index 98% rename from clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/RiskParameterController.java rename to clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/RiskParameterController.java index 5df741a9d..afcc0e994 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/RiskParameterController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/RiskParameterController.java @@ -1,4 +1,4 @@ -package ru.spcex.clearing.backendapi.controller.queue.misc; +package ru.spcex.clearing.backendapi.controller.queue.securities; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/element/JsConfigSettings.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/element/JsConfigSettings.java new file mode 100644 index 000000000..0fa975f37 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/element/JsConfigSettings.java @@ -0,0 +1,24 @@ +package ru.spcex.clearing.backendapi.security.element; + +public class JsConfigSettings { + public final static String SERVER_TITLE_PARAM_NAME = "serverTitle"; + public final static String IS_CENTRAL_COUNTER_PARTY_PARAM_NAME = "isCentralCounterparty"; + private String serverTitle; + private Boolean isCentralCounterParty; + + public String getServerTitle() { + return serverTitle; + } + + public void setServerTitle(String serverTitle) { + this.serverTitle = serverTitle; + } + + public Boolean getCentralCounterParty() { + return isCentralCounterParty; + } + + public void setCentralCounterParty(Boolean centralCounterParty) { + isCentralCounterParty = centralCounterParty; + } +} diff --git a/clearing-parent/backend-api/src/main/resources/application.properties b/clearing-parent/backend-api/src/main/resources/application.properties index 24016512d..fc8ba383d 100644 --- a/clearing-parent/backend-api/src/main/resources/application.properties +++ b/clearing-parent/backend-api/src/main/resources/application.properties @@ -26,6 +26,9 @@ backend-api.kafka-consumer.auto-offset-reset=latest backend-api.kafka-consumer.linger-ms=1 backend-api.kafka-consumer.buffer-memory=33554432 backend-api.security.authorization-disabled=false + +backend-api.js-config.server-title=?????? 183 +backend-api.js-config.is-central-counter-party=true #access logs, sample #server.tomcat.accesslog.directory=logs #server.tomcat.accesslog.enabled=true From 24824f55c27a8cafc335ecdefe74cdae67c3075f Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 16:29:42 +0300 Subject: [PATCH 03/25] http://jira.mfd.msk:8088/browse/CLS-756 --- .../config/settings/AccountServiceSettings.java | 10 ++++++++++ .../account/config/settings/elem/AppSettings.java | 13 +++++++++++++ .../service/TradingClearingRegistryService.java | 7 +++++-- .../src/main/resources/application.properties | 4 +++- 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/elem/AppSettings.java diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/AccountServiceSettings.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/AccountServiceSettings.java index 1848ace41..ff1cde091 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/AccountServiceSettings.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/AccountServiceSettings.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.account.config.settings; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; +import ru.spcex.clearing.account.config.settings.elem.AppSettings; import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings; import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; @@ -14,6 +15,7 @@ public class AccountServiceSettings { private HazelcastClientParams hazelcast; private KafkaConsumerSettings kafkaConsumer; private KafkaProducerSettings kafkaProducer; + private AppSettings app; public HazelcastClientParams getHazelcast() { return hazelcast; @@ -38,4 +40,12 @@ public class AccountServiceSettings { public void setKafkaProducer(KafkaProducerSettings kafkaProducer) { this.kafkaProducer = kafkaProducer; } + + public AppSettings getApp() { + return app; + } + + public void setApp(AppSettings app) { + this.app = app; + } } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/elem/AppSettings.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/elem/AppSettings.java new file mode 100644 index 000000000..399cba941 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/elem/AppSettings.java @@ -0,0 +1,13 @@ +package ru.spcex.clearing.account.config.settings.elem; + +public class AppSettings { + private String registryUnit = "T"; + + public String getRegistryUnit() { + return registryUnit; + } + + public void setRegistryUnit(String registryUnit) { + this.registryUnit = registryUnit; + } +} 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 236093a02..ab24a91f1 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 @@ -27,6 +27,7 @@ import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistryList; +import ru.spcex.clearing.account.config.settings.AccountServiceSettings; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; @@ -93,6 +94,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final IMessageResolver messageResolver; private final Producer kafkaProducer; private final KafkaSender kafkaSender; + private final AccountServiceSettings accountServiceSettings; public TradingClearingRegistryService(Consumer kafkaQueue, Producer kafkaProducer, @@ -107,7 +109,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini @Qualifier("tradingClearingRegistryUpdateRequest") Function tradingClearingRegistryUpdateRequestValidator, @Qualifier("tradingClearingRegistryBlockRequest") - Function tradingClearingRegistryBlockRequestValidator) { + Function tradingClearingRegistryBlockRequestValidator, AccountServiceSettings accountServiceSettings) { super(kafkaQueue, kafkaProducer); this.kafkaProducer = kafkaProducer; this.kafkaSender = kafkaSender; @@ -131,6 +133,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; this.messageResolver = messageResolver; + this.accountServiceSettings = accountServiceSettings; } @Override @@ -444,7 +447,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini code = "%4s".formatted(code).replace(' ', '0'); // code += registryPurpose.getKey(); // C / M / ... code += "C";//пока ставим всегда С, возможно придется откатить - String trType = tradingRegistryType + "T"; // 2 символа + String trType = tradingRegistryType + accountServiceSettings.getApp().getRegistryUnit(); // 2 символа code += trType; String sId = "%5s".formatted(id).replace(' ', '0'); if (sId.length() > 5) diff --git a/clearing-parent/account-service/src/main/resources/application.properties b/clearing-parent/account-service/src/main/resources/application.properties index b778da132..3592d4db7 100644 --- a/clearing-parent/account-service/src/main/resources/application.properties +++ b/clearing-parent/account-service/src/main/resources/application.properties @@ -16,4 +16,6 @@ account-service.kafka-producer.acks=all account-service.kafka-producer.retries=0 account-service.kafka-producer.batch-size=16384 account-service.kafka-producer.linger-ms=1 -account-service.kafka-producer.buffer-memory=33554432 \ No newline at end of file +account-service.kafka-producer.buffer-memory=33554432 + +account-service.app.registry-unit=L \ No newline at end of file From 05ca97688a2a296f1d22049d8d4d64dcf9a63344 Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 2 Oct 2024 16:39:34 +0300 Subject: [PATCH 04/25] http://jira.mfd.msk:8088/browse/CLS-767 --- .../builders/bean/KSRepLccNettoReport.java | 111 +++++++ .../builders/bean/KSRepLccTradesReport.java | 181 +++++++++++ .../ks/KSRepLccNettoReportBuilder.java | 126 ++++++++ .../ks/KSRepLccTradesReportBuilder.java | 281 ++++++++++++++++++ .../reports/config/ReportBuildersConfig.java | 31 +- .../config/validation/ValidationConfig.java | 31 +- .../reports/services/ReportService.java | 30 +- .../services/ReportServiceTest_KS.java | 276 +++++++++++++++++ .../ks/KS_REP_LCC_NETTO_expected.csv | 19 ++ .../ks/KS_REP_LCC_TRADES_expected.csv | 3 + .../enumeration/ReportBuilderType.java | 2 + .../platform/enumeration/ReportKeys.java | 2 + 12 files changed, 1079 insertions(+), 14 deletions(-) create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccNettoReport.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccTradesReport.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccNettoReportBuilder.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccTradesReportBuilder.java create mode 100644 clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv create mode 100644 clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_TRADES_expected.csv diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccNettoReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccNettoReport.java new file mode 100644 index 000000000..f04e5c7d1 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccNettoReport.java @@ -0,0 +1,111 @@ +package ru.spcex.clearing.reports.builders.bean; + +import java.math.BigDecimal; +import java.time.LocalDate; +import com.opencsv.bean.CsvBindByName; +import com.opencsv.bean.CsvBindByPosition; +import com.opencsv.bean.CsvDate; +import com.opencsv.bean.CsvNumber; + +public class KSRepLccNettoReport { + @CsvBindByName(column = "FIRM_ID") + @CsvBindByPosition(position = 0) + private String firmId; + + @CsvBindByName(column = "TKR") + @CsvBindByPosition(position = 1) + private String tkr; + + @CsvBindByName(column = "CURRENCYID") + @CsvBindByPosition(position = 2) + private String currencyId; + + @CsvBindByName(column = "DATE") + @CsvBindByPosition(position = 3) + @CsvDate(value = "yyyy-MM-dd") + private LocalDate date; + + @CsvBindByName(column = "NETTO_SUM") + @CsvBindByPosition(position = 4) + @CsvNumber(value = "#0", writeFormat = "#0") + private BigDecimal nettoSum; + + @CsvBindByName(column = "DATA_TYPE") + @CsvBindByPosition(position = 5) + private String dataType; + + @CsvBindByName(column = "DEBIT") + @CsvBindByPosition(position = 6) + @CsvNumber(value = "#0.00", writeFormat = "#0.00") + private BigDecimal debit; + + @CsvBindByName(column = "NETTO_SUM") + @CsvBindByPosition(position = 7) + @CsvNumber(value = "#0.00", writeFormat = "#0.00") + private BigDecimal credit; + + + public String getFirmId() { + return firmId; + } + + public void setFirmId(String firmId) { + this.firmId = firmId; + } + + public String getTkr() { + return tkr; + } + + public void setTkr(String tkr) { + this.tkr = tkr; + } + + public String getCurrencyId() { + return currencyId; + } + + public void setCurrencyId(String currencyId) { + this.currencyId = currencyId; + } + + public LocalDate getDate() { + return date; + } + + public void setDate(LocalDate date) { + this.date = date; + } + + public BigDecimal getNettoSum() { + return nettoSum; + } + + public void setNettoSum(BigDecimal nettoSum) { + this.nettoSum = nettoSum; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public BigDecimal getDebit() { + return debit; + } + + public void setDebit(BigDecimal debit) { + this.debit = debit; + } + + public BigDecimal getCredit() { + return credit; + } + + public void setCredit(BigDecimal credit) { + this.credit = credit; + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccTradesReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccTradesReport.java new file mode 100644 index 000000000..9d731537f --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccTradesReport.java @@ -0,0 +1,181 @@ +package ru.spcex.clearing.reports.builders.bean; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import com.opencsv.bean.CsvBindByName; +import com.opencsv.bean.CsvBindByPosition; +import com.opencsv.bean.CsvDate; + +public class KSRepLccTradesReport { + @CsvBindByName(column = "SESSION_ID") + @CsvBindByPosition(position = 0) + private Long sessionId; + + @CsvBindByName(column = "SESSION_DATE") + @CsvBindByPosition(position = 1) + @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") + private LocalDateTime sessionDate; + + @CsvBindByName(column = "TRADE_NUM") + @CsvBindByPosition(position = 2) + private Long tradeNum; + + @CsvBindByName(column = "SECCODE") + @CsvBindByPosition(position = 3) + private String secCode; + + @CsvBindByName(column = "FIRM_ID") + @CsvBindByPosition(position = 4) + private String firmId; + + @CsvBindByName(column = "TKR") + @CsvBindByPosition(position = 5) + private String tkr; + + @CsvBindByName(column = "ACCOUNT") + @CsvBindByPosition(position = 6) + private String account; + + @CsvBindByName(column = "CLASS_CODE") + @CsvBindByPosition(position = 7) + private String classCode; + + @CsvBindByName(column = "TRADE_DATE") + @CsvBindByPosition(position = 8) + @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") + private LocalDateTime tradeDate; + + @CsvBindByName(column = "TRADE_GROUP") + @CsvBindByPosition(position = 9) + private String tradeGroup; + + @CsvBindByName(column = "BUY_SELL") + @CsvBindByPosition(position = 10) + private String buySell; + + @CsvBindByName(column = "LOT_CURRENCY") + @CsvBindByPosition(position = 11) + private String lotCurrency; + + @CsvBindByName(column = "CO_CURRENCY") + @CsvBindByPosition(position = 12) + private String coCurrency; + + @CsvBindByName(column = "SETTLEDATE") + @CsvBindByPosition(position = 13) + @CsvDate(value = "yyyy-MM-dd") + private LocalDate settleDate; + + + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } + + public LocalDateTime getSessionDate() { + return sessionDate; + } + + public void setSessionDate(LocalDateTime sessionDate) { + this.sessionDate = sessionDate; + } + + public Long getTradeNum() { + return tradeNum; + } + + public void setTradeNum(Long tradeNum) { + this.tradeNum = tradeNum; + } + + public String getSecCode() { + return secCode; + } + + public void setSecCode(String secCode) { + this.secCode = secCode; + } + + public String getFirmId() { + return firmId; + } + + public void setFirmId(String firmId) { + this.firmId = firmId; + } + + public String getTkr() { + return tkr; + } + + public void setTkr(String tkr) { + this.tkr = tkr; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getClassCode() { + return classCode; + } + + public void setClassCode(String classCode) { + this.classCode = classCode; + } + + public LocalDateTime getTradeDate() { + return tradeDate; + } + + public void setTradeDate(LocalDateTime tradeDate) { + this.tradeDate = tradeDate; + } + + public String getTradeGroup() { + return tradeGroup; + } + + public void setTradeGroup(String tradeGroup) { + this.tradeGroup = tradeGroup; + } + + public String getBuySell() { + return buySell; + } + + public void setBuySell(String buySell) { + this.buySell = buySell; + } + + public String getLotCurrency() { + return lotCurrency; + } + + public void setLotCurrency(String lotCurrency) { + this.lotCurrency = lotCurrency; + } + + public String getCoCurrency() { + return coCurrency; + } + + public void setCoCurrency(String coCurrency) { + this.coCurrency = coCurrency; + } + + public LocalDate getSettleDate() { + return settleDate; + } + + public void setSettleDate(LocalDate settleDate) { + this.settleDate = settleDate; + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccNettoReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccNettoReportBuilder.java new file mode 100644 index 000000000..78f3e0e28 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccNettoReportBuilder.java @@ -0,0 +1,126 @@ +package ru.spcex.clearing.reports.builders.ks; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.registry.Registry; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.reports.builders.CSVReportBuilder; +import ru.spcex.clearing.reports.builders.EmptyParams; +import ru.spcex.clearing.reports.builders.bean.KSRepLccNettoReport; +import ru.spcex.platform.enumeration.RegistryDesignation; +import ru.spcex.platform.enumeration.RegistryStatus; +import ru.spcex.platform.enumeration.RegistryTradingParams; +import ru.spcex.platform.enumeration.ReportBuilderType; +import ru.spcex.platform.enumeration.ReportKeys; +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.imdg.api.predicate.specific.RegistryCodeSqlBuilder; +import ru.spcex.platform.utils.enumeration.IEnumKey; + +@Component +public class KSRepLccNettoReportBuilder extends CSVReportBuilder { + private final Imdg registryImdg; + + private List rows = null; + + public KSRepLccNettoReportBuilder(ImdgProvider imdgProvider) { + registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); + } + + @Override + protected List getRows() { + return rows; + } + + @Override + public ReportBuilderType getReportType() { + return ReportBuilderType.KS_REP_LCC_NETTO; + } + + @Override + public ReportKeys getReportKey() { + return ReportKeys.KS_REP_LCC_NETTO_REPORT; + } + + @Override + public Class getParamsClass() { + return EmptyParams.class; + } + + @Override + public Class getReportClass() { + return KSRepLccNettoReport.class; + } + + @Override + protected void collect(EmptyParams params) { + rows = new ArrayList<>(); + LocalDate now = LocalDate.now(); + ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); + ImdgPredicate registryPredicate = RegistryCodeSqlBuilder.getInstance( + RegistryTradingParams.AM_T, RegistryTradingParams.OM_T, RegistryTradingParams.TM_T + ).buildPredicate(pb); + Collection registries = registryImdg.getCollectionObjectsByPredicate( + pb.and( + registryPredicate, + pb.equals("settlementDate", now) + ) + ); + for (Registry registry : registries) { + for (DataTypes dataType : DataTypes.values()) { + KSRepLccNettoReport ksRepLccNettoReport = new KSRepLccNettoReport(); + ksRepLccNettoReport.setFirmId(registry.getTradingCode()); + ksRepLccNettoReport.setTkr(registry.getTradingClearingRegistry()); + ksRepLccNettoReport.setCurrencyId(registry.getSecuritySymbol()); + ksRepLccNettoReport.setDate(now); + RegistryStatus status = IEnumKey.getEnumByKey(RegistryStatus.class, registry.getRegistryStatus()); + RegistryDesignation designation = IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()); + BigDecimal debit = BigDecimal.ZERO; + BigDecimal credit = BigDecimal.ZERO; + if (dataType == DataTypes.FX_OBLIG) { + if (status == RegistryStatus.PROC || status == RegistryStatus.MNG) { + if (designation == RegistryDesignation.O) + debit = registry.getBalance() != null ? registry.getBalance() : BigDecimal.ZERO; + if (designation == RegistryDesignation.T) + credit = registry.getBalance() != null ? registry.getBalance() : BigDecimal.ZERO; + } + } else if (dataType == DataTypes.PR_NETTOSUM) { + if (status == RegistryStatus.CLRD) { + if (designation == RegistryDesignation.O) + debit = registry.getBalance() != null ? registry.getBalance() : BigDecimal.ZERO; + if (designation == RegistryDesignation.T) + credit = registry.getBalance() != null ? registry.getBalance() : BigDecimal.ZERO; + } + } else if (dataType == DataTypes.FX_DEBT) { + if (designation == RegistryDesignation.A) { + if (registry.getBalance() != null && registry.getBalance().compareTo(BigDecimal.ZERO) < 0) + debit = registry.getBalance(); + } + } + ksRepLccNettoReport.setDataType(dataType.value); + ksRepLccNettoReport.setDebit(debit); + ksRepLccNettoReport.setCredit(credit); + ksRepLccNettoReport.setNettoSum(credit.subtract(debit)); + rows.add(ksRepLccNettoReport); + } + } + } + + private enum DataTypes { + FX_OBLIG("FX_OBLIG"), + PR_NETTOSUM("PR_NETTOSUM"), + FX_DEBT("FX_DEBT") + ; + private final String value; + + DataTypes(String value) { + this.value = value; + } + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccTradesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccTradesReportBuilder.java new file mode 100644 index 000000000..550dc2688 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccTradesReportBuilder.java @@ -0,0 +1,281 @@ +package ru.spcex.clearing.reports.builders.ks; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.execution.ExecutionCurrency; +import ru.clearing.classes.statics.data.misc.Session; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.classes.statics.data.security.CurrencyPairSecurity; +import ru.clearing.platform.dictionary.CurrencyPairDictionary; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.reports.builders.CSVReportBuilder; +import ru.spcex.clearing.reports.builders.EmptyParams; +import ru.spcex.clearing.reports.builders.bean.KSRepLccTradesReport; +import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ReportBuilderType; +import ru.spcex.platform.enumeration.ReportKeys; +import ru.spcex.platform.enumeration.Side; +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.IEnumKey; + +@Component +public class KSRepLccTradesReportBuilder extends CSVReportBuilder { + private final Imdg sessionImdg; + private final Imdg companyImdg; + private final Imdg accountImdg; + private final Imdg executionCurrencyImdg; + private final Imdg currencyPairDictionaryImdg; + private final Imdg currencyPairSecurityImdg; + private final Imdg tradingClearingRegistryImdg; + + private List rows = null; + + public KSRepLccTradesReportBuilder(ImdgProvider imdgProvider) { + sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); + executionCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class); + currencyPairDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairDictionary, CurrencyPairDictionary.class); + currencyPairSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairSecurity, CurrencyPairSecurity.class); + tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); + } + + @Override + protected List getRows() { + return rows; + } + + @Override + public ReportBuilderType getReportType() { + return ReportBuilderType.KS_REP_LCC_TRADES; + } + + @Override + public ReportKeys getReportKey() { + return ReportKeys.KS_REP_LCC_TRADES_REPORT; + } + + @Override + public Class getParamsClass() { + return EmptyParams.class; + } + + @Override + public Class getReportClass() { + return KSRepLccTradesReport.class; + } + + @Override + protected void collect(EmptyParams params) { + + LocalDate now = LocalDate.now(); + ImdgPredicateBuilder pb = executionCurrencyImdg.predicateBuilder(); + Collection executions = executionCurrencyImdg.getCollectionObjectsByPredicate( + pb.or( + pb.equals("tradingDate", now), + pb.equals("settlementDate", now) + ) + ); + + rows = new ArrayList<>(executions.size()); + for (ExecutionCurrency execution : executions) { + try { + KSRepLccTradesReport ksRepLccTradesReport = new KSRepLccTradesReport(); + + if (execution.getPartyTradingClearingRegistryId() == null) { + log.warn("For execution id = {} field trading_clearing_registry is empty, skipped", execution.getId()); + continue; + } + TradingClearingRegistry tkr = tradingClearingRegistryImdg.getSingleObjectByID(execution.getTradingClearingRegistryId()); + if (tkr == null) { + log.warn( + "For execution id = {} not found trading clearing registry for " + + "execution.trading_clearing_registry_id = {}, execution was skipped", + execution.getId(), + execution.getTradingClearingRegistryId() + ); + continue; + } + if (tkr.getCode() != null) { + ksRepLccTradesReport.setTkr(tkr.getCode()); + } else { + log.warn( + "trading_clearing_registry.code is empty for execution id {} (execution.trading_clearing_registry_id = {}), skipped", + execution.getId(), + execution.getPartyTradingClearingRegistryId() + ); + } + + if (execution.getSessionId() != null) { + Session session = sessionImdg.getSingleObjectByID(execution.getSessionId()); + ksRepLccTradesReport.setSessionId(execution.getSessionId()); + if (session != null && session.getCreated() != null) { + ksRepLccTradesReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), getReportZoneId())); + } else { + log.warn( + "Can't find session (or session.updated_at is empty) for execution.session_id = {}, execution id = {} skipped", + execution.getSessionId(), + execution.getId() + ); + continue; + } + } else { + log.warn("For execution id = {} session_id is empty, skipped", execution.getId()); + continue; + } + + if (execution.getExchangeExecutionId() == null) { + log.warn("For execution id = {} exchange_execution_id is empty, skipped", execution.getId()); + continue; + } + ksRepLccTradesReport.setTradeNum(execution.getExchangeExecutionId()); + + if (execution.getSecuritySymbol() == null) { + log.warn("For execution id = {} security_symbol is empty, skipped", execution.getId()); + continue; + } + ksRepLccTradesReport.setSecCode(execution.getSecuritySymbol()); + + if (execution.getCompanyId() != null) { + Company company = companyImdg.getSingleObjectByID(execution.getCompanyId()); + if (company != null) { + ksRepLccTradesReport.setFirmId(company.getTradingCode()); + } else { + log.warn( + "Can't find company for execution.company_id = {}, execution id = {}, skipped", + execution.getCompanyId(), + execution.getId() + ); + continue; + } + } else { + log.warn("For execution id = {} company_id is empty, skipped", execution.getId()); + continue; + } + + Account account = accountImdg.getSingleObjectByID(tkr.getMoneyAccountId()); + if (account != null) { + AccountType accountType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); + if (accountType == AccountType.Info) { + pb = accountImdg.predicateBuilder(); + ImdgPredicate finalPredicate = pb.and( + pb.equals("accountType", AccountType.Anlt.getKey()), + pb.equals("companyId", 5L) + ); + if (execution.getSecuritySymbol() != null) + finalPredicate = pb.and(finalPredicate, pb.equals("currency", execution.getSecuritySymbol())); + account = accountImdg.getFirstObjectByPredicate(finalPredicate); + } + if (account != null) { + ksRepLccTradesReport.setAccount(account.getAccount()); + } else { + log.warn( + "For trading_clearing_registry.money_account_id = {} account with company_id = 5 not found, skipped", + tkr.getMoneyAccountId() + ); + continue; + } + } else { + log.warn( + "For trading_clearing_registry.money_account_id = {} account not found, execution id = {}, skipped", + tkr.getMoneyAccountId(), + execution.getId() + ); + continue; + } + + if (execution.getMarket() == null) { + log.warn("For execution id = {} market is empty, skipped", execution.getId()); + continue; + } + ksRepLccTradesReport.setClassCode(execution.getMarket()); + + if (execution.getExchangeExecutionTime() != null) { + ksRepLccTradesReport.setTradeDate( + LocalDateTime.ofInstant(execution.getExchangeExecutionTime(), getReportZoneId()) + ); + } else { + log.warn("For execution id = {} field exchange_execution_time is empty, skipped", execution.getId()); + continue; + } + + ksRepLccTradesReport.setTradeGroup("T"); + + if (Arrays.asList(Side.SELL.getKey(), "S", "SELL").contains(execution.getSide())) { + ksRepLccTradesReport.setBuySell("S"); + } else if (Arrays.asList(Side.BUY.getKey(), "B", "BUY").contains(execution.getSide())) { + ksRepLccTradesReport.setBuySell("B"); + } else { + log.warn( + "For execution id = {} unknown execution.side ({}) value, skipped", + execution.getId(), + execution.getSide() + ); + continue; + } + + if (execution.getSecurityId() != null) { + pb = currencyPairDictionaryImdg.predicateBuilder(); + CurrencyPairSecurity currencyPairSecurity = currencyPairSecurityImdg.getFirstObjectByPredicate( + pb.equals("securityId", execution.getSecurityId()) + ); + if (currencyPairSecurity != null) { + if (currencyPairSecurity.getCurrencyPairId() != null) { + CurrencyPairDictionary currencyPairDictionary = currencyPairDictionaryImdg.getSingleObjectByID( + currencyPairSecurity.getCurrencyPairId() + ); + if (currencyPairDictionary != null) { + ksRepLccTradesReport.setLotCurrency(currencyPairDictionary.getBaseCurrency()); + ksRepLccTradesReport.setCoCurrency(currencyPairDictionary.getQuoteCurrency()); + } else { + log.warn( + "For currency_pair_id = {} not found currency_pair_dictionary, execution id = {}, skipped", + currencyPairSecurity.getCurrencyPairId(), + execution.getId() + ); + continue; + } + } else { + log.warn( + "For currency pair security (id = {}) empty field currency_pair_id, execution id = {}, skipped", + currencyPairSecurity.getId(), + execution.getId() + ); + continue; + } + } else { + log.warn( + "For execution.security_id = {} (execution.id = {}) currency_pair_security not found, skipped", + execution.getSecurityId(), + execution.getId() + ); + continue; + } + } else { + log.warn("For execution id = {} field security_id is empty, skipped", execution.getId()); + continue; + } + + if (execution.getSettlementDate() == null) { + log.warn("For execution id = {} empty settlement_date, skipped", execution.getId()); + continue; + } + ksRepLccTradesReport.setSettleDate(execution.getSettlementDate()); + + rows.add(ksRepLccTradesReport); + } catch (Exception e) { + log.error("Can't create report row for execution (id = %d), skipped".formatted(execution.getId()), e); + } + } + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java index 0de9211c2..3f25b7cac 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java @@ -1,19 +1,32 @@ package ru.spcex.clearing.reports.config; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import ru.spcex.clearing.reports.builders.CSVReportBuilder; import ru.spcex.clearing.reports.builders.EmptyParams; import ru.spcex.clearing.reports.builders.SessionIdParam; -import ru.spcex.clearing.reports.builders.bp.*; -import ru.spcex.clearing.reports.builders.ks.*; +import ru.spcex.clearing.reports.builders.bp.ExecutedDealReportBuilder_INFTYPE_1; +import ru.spcex.clearing.reports.builders.bp.ExecutedDealReportBuilder_INFTYPE_2; +import ru.spcex.clearing.reports.builders.bp.ExecutedDealReportBuilder_INFTYPE_3; +import ru.spcex.clearing.reports.builders.bp.ExecutedDealReportBuilder_INFTYPE_4; +import ru.spcex.clearing.reports.builders.bp.UnfulfilledDealReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSCommissionTradesReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepCashNettoReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepCashRegisterSumsReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepCashRegistersReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepDepoNettoReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepDepoRegisterQuantitiesReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepDepoRegistersReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepLccNettoReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepLccTradesReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSRepTradesReportBuilder; +import ru.spcex.clearing.reports.builders.ks.KSSessionListReportBuilder; import ru.spcex.platform.enumeration.ReportBuilderType; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - @Configuration @ComponentScan(basePackages = "ru.spcex.clearing.reports.builders") public class ReportBuildersConfig { @@ -25,7 +38,9 @@ public class ReportBuildersConfig { KSRepDepoRegisterQuantitiesReportBuilder ksRepDepoRegisterQuantitiesReportBuilder, KSRepTradesReportBuilder ksRepTradesReportBuilder, KSSessionListReportBuilder ksSessionListReportBuilder, - KSCommissionTradesReportBuilder ksCommissionTradesReportBuilder + KSCommissionTradesReportBuilder ksCommissionTradesReportBuilder, + KSRepLccTradesReportBuilder ksRepLccTradesReportBuilder, + KSRepLccNettoReportBuilder ksRepLccNettoReportBuilder ) { Map>> resultMap = new HashMap<>(); resultMap.put(ReportBuilderType.KS_REP_CASH_REGISTERS, List.of(ksRepCashRegistersReportBuilder)); @@ -35,6 +50,8 @@ public class ReportBuildersConfig { resultMap.put(ReportBuilderType.KS_REP_TRADES, List.of(ksRepTradesReportBuilder)); resultMap.put(ReportBuilderType.KS_SESSION_LIST, List.of(ksSessionListReportBuilder)); resultMap.put(ReportBuilderType.KS_COMMISSION_TRADES, List.of(ksCommissionTradesReportBuilder)); + resultMap.put(ReportBuilderType.KS_REP_LCC_TRADES, List.of(ksRepLccTradesReportBuilder)); + resultMap.put(ReportBuilderType.KS_REP_LCC_NETTO, List.of(ksRepLccNettoReportBuilder)); return resultMap; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java index 3e0ca4b97..c9bf01d64 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java @@ -1,6 +1,10 @@ package ru.spcex.clearing.reports.config.validation; +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiConsumer; +import java.util.function.Function; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.company.Company; @@ -22,11 +26,6 @@ import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; import ru.spcex.platform.utils.validation.ValidatorImpl; -import java.util.HashMap; -import java.util.Map; -import java.util.function.BiConsumer; -import java.util.function.Function; - @Configuration public class ValidationConfig { @@ -63,7 +62,9 @@ public class ValidationConfig { ReportBuilderType.KS_REP_TRADES, ReportBuilderType.KS_REP_FIRM_DETAILS, ReportBuilderType.KS_SESSION_LIST, - ReportBuilderType.KS_COMMISSION_TRADES + ReportBuilderType.KS_COMMISSION_TRADES, + ReportBuilderType.KS_REP_LCC_TRADES, + ReportBuilderType.KS_REP_LCC_NETTO, }, ReportError.WrongFieldValue, ReportError.RequiredFieldEmpty) @@ -154,6 +155,24 @@ public class ValidationConfig { }; } + // todo оставил бин валидатора на будущее, если в дальнейшем придется проверять запрос. в текущей версии, по факту, + // запрос не проверяется: в случае если sessionId не указан отчеты не строятся + @Bean("reportRequestGRECValidator") + public Function reportRequestGRECValidator( + Map> imdgForValidation + ) { + return launcherCommandRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(launcherCommandRequest); + return new ValidatorImpl<>(context, + FieldRequiredRule.instance( + "sessionId", + LauncherCommandRequest::getSessionId, + ReportError.RequiredFieldEmpty, + false) + ); + }; + } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java index 4f3ef4bb6..770d15dc1 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java @@ -24,7 +24,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.gateway.SendReportRequest import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequest; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.QueueConsumerV2; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; @@ -55,12 +54,14 @@ public class ReportService extends QueueConsumerV2 implements InitializingBean { private final Function reportRequestGREPValidator; private final Function reportRequestGRETValidator; private final Function reportRequestGREFValidator; + private final Function reportRequestGRECValidator; private final Map>> reportBuildersWithoutParams; private final Map>> reportBuildersWithSessionIdParam; private final Map>> reportBuildersForGREP; private final Map>> reportBuildersForGREF; private final Map>> reportBuildersForGRET; + private final Map>> reportBuildersForGREC; private final Imdg sessionImdg; @@ -85,6 +86,8 @@ public class ReportService extends QueueConsumerV2 implements InitializingBean { Map>> reportBuildersForGREF, @Qualifier("reportBuildersForGRET") Map>> reportBuildersForGRET, + @Qualifier("reportBuildersForGRET") + Map>> reportBuildersForGREC, @Qualifier("reportRequestValidator") Function reportRequestValidator, @@ -97,6 +100,8 @@ public class ReportService extends QueueConsumerV2 implements InitializingBean { Function reportRequestGRETValidator, @Qualifier("reportRequestGREFValidator") Function reportRequestGREFValidator, + @Qualifier("reportRequestGREFValidator") + Function reportRequestGRECValidator, ImdgProvider imdgProvider, SFTPReportsConfig.ReportsGateway reportsSftpGateway @@ -111,9 +116,11 @@ public class ReportService extends QueueConsumerV2 implements InitializingBean { this.reportRequestGREPValidator = reportRequestGREPValidator; this.reportRequestGRETValidator = reportRequestGRETValidator; this.reportRequestGREFValidator = reportRequestGREFValidator; + this.reportRequestGRECValidator = reportRequestGRECValidator; this.reportBuildersForGREP = reportBuildersForGREP; this.reportBuildersForGREF = reportBuildersForGREF; this.reportBuildersForGRET = reportBuildersForGRET; + this.reportBuildersForGREC = reportBuildersForGREC; this.reportsSftpGateway = reportsSftpGateway; this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.outFolder = new File(reportsServiceSettings.getReportsStore().getLocalTempDir()); @@ -144,6 +151,9 @@ public class ReportService extends QueueConsumerV2 implements InitializingBean { callback(LauncherCommandRequest.class) .setFunction(this::createReportForGREF) .forDestination(Task.createDealsReport_GREF.topic(), callbacks::put); + callback(LauncherCommandRequest.class) + .setFunction(this::createReportForGREC) + .forDestination(Task.createReport_GREC.topic(), callbacks::put); init(); } @@ -314,6 +324,24 @@ public class ReportService extends QueueConsumerV2 implements InitializingBean { return null; } + public RequestInfoUpdate createReportForGREC(BaseRequest userRequest) { + log.debug("GREC task received"); + + try { + RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, reportRequestGRECValidator); + if (requestInfoUpdate != null) return null; + logUnknownProperties(userRequest); + + Map outFiles = createReportsForTask(List.of(), reportBuildersForGREC.values()); + + sendReportsToGateway(List.of(), outFiles, ReportType.REPORT_KS_FINAL.getKey()); + sendFilesToSftp(outFiles.keySet()); + } catch (Exception e) { + log.error("Unexpected exception", e); + } + return null; + } + private Map createReportsForTask(List sessionIds, Collection>> buildersForTask) { Map outFiles = new HashMap<>(); int cntErrors = 0; diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java index b3c41b6c6..215edfdc2 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java @@ -46,6 +46,7 @@ import ru.clearing.classes.statics.data.account.AccountSymbols; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; +import ru.clearing.classes.statics.data.execution.ExecutionCurrency; import ru.clearing.classes.statics.data.execution.ExecutionDeposit; import ru.clearing.classes.statics.data.execution.ExecutionFond; import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity; @@ -55,7 +56,9 @@ import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.classes.statics.data.security.CurrencyPairSecurity; import ru.clearing.classes.statics.data.statement.Statement; +import ru.clearing.platform.dictionary.CurrencyPairDictionary; import ru.clearing.platform.dictionary.RegistryCodeDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -116,6 +119,7 @@ public class ReportServiceTest_KS { private Imdg registryCodeDictionaryImdg; private Imdg executionDepositImdg; private Imdg executionFondImdg; + private Imdg executionCurrencyImdg; private Imdg sessionImdg; private Imdg companySymbolsImdg; private Imdg profileDocumentImdg; @@ -124,6 +128,8 @@ public class ReportServiceTest_KS { private Imdg sTradesImdg; private Imdg accountSymbolsImdg; private Imdg clearingMemberCategoryImdg; + private Imdg currencyPairSecurityImdg; + private Imdg currencyPairDictionaryImdg; private Long COMPANY_ID; @Autowired @@ -1275,6 +1281,273 @@ public class ReportServiceTest_KS { sessionImdg.delete(session); } + @Test + @Order(12) + public void createReportTest_KSRepLccNettoReport() throws IOException, CsvValidationException { + clearTestDir(); + + Long SESSION_ID_1 = 32121L; + Long SESSION_ID_2 = 32125L; + Long CURRENCY_PAIR_ID_1 = 7896L; + Long CURRENCY_PAIR_ID_2 = 7821L; + Long SECURITY_ID_1 = 56465L; + Long SECURITY_ID_2 = 5645L; + Long COMPANY_ID_1 = 3215L; + Long COMPANY_ID_2 = 3216L; + Long TKR_ID_1 = 578439L; + Long TKR_ID_2 = 57842L; + Long MONEY_ACCOUNT_ID_1 = 321312L; + Long MONEY_ACCOUNT_ID_2 = 321311L; + + ReportRequest reportRequest = new ReportRequest(); + reportRequest.setReportId(ReportBuilderType.KS_REP_LCC_TRADES.getKey()); + + TradingClearingRegistry tkr_1 = new TradingClearingRegistry(); + tkr_1.setId(TKR_ID_1); + tkr_1.setCode("TKR_CODE_1"); + tkr_1.setMoneyAccountId(MONEY_ACCOUNT_ID_1); + tradingClearingRegistryImdg.insert(tkr_1); + + TradingClearingRegistry tkr_2 = new TradingClearingRegistry(); + tkr_2.setId(TKR_ID_2); + tkr_2.setCode("TKR_CODE_2"); + tkr_2.setMoneyAccountId(MONEY_ACCOUNT_ID_2); + tradingClearingRegistryImdg.insert(tkr_2); + + Session session_1 = new Session(); + session_1.setId(SESSION_ID_1); + session_1.setCreated(Instant.now()); + + Session session_2 = new Session(); + session_2.setId(SESSION_ID_2); + session_2.setCreated(Instant.now()); + + sessionImdg.insert(session_1); + sessionImdg.insert(session_2); + + Account account_11 = new Account(); + account_11.setId(MONEY_ACCOUNT_ID_1); + account_11.setAccountType("INFO"); + + Account account_1 = new Account(); + account_1.setCurrency("RUR"); + account_1.setCompanyId(5L); + account_1.setAccountType("ANLT"); + account_1.setAccount("ACCOUNT_1"); + + Account account_2 = new Account(); + account_2.setId(MONEY_ACCOUNT_ID_2); + account_2.setAccountType("CLRN"); + account_2.setAccount("ACCOUNT_2"); + + accountImdg.insert(account_1); + accountImdg.insert(account_11); + accountImdg.insert(account_2); + + Company company_1 = new Company(); + company_1.setId(COMPANY_ID_1); + company_1.setTradingCode("TRADING_CODE_1"); + + Company company_2 = new Company(); + company_2.setId(COMPANY_ID_2); + company_2.setTradingCode("TRADING_CODE_2"); + + companyImdg.insert(company_1); + companyImdg.insert(company_2); + + CurrencyPairSecurity currencyPairSecurity_1 = new CurrencyPairSecurity(); + currencyPairSecurity_1.setSecurityId(SECURITY_ID_1); + currencyPairSecurity_1.setCurrencyPairId(CURRENCY_PAIR_ID_1); + + CurrencyPairSecurity currencyPairSecurity_2 = new CurrencyPairSecurity(); + currencyPairSecurity_2.setSecurityId(SECURITY_ID_2); + currencyPairSecurity_2.setCurrencyPairId(CURRENCY_PAIR_ID_2); + + currencyPairSecurityImdg.insert(currencyPairSecurity_1); + currencyPairSecurityImdg.insert(currencyPairSecurity_2); + + CurrencyPairDictionary currencyPairDictionary_1 = new CurrencyPairDictionary(); + currencyPairDictionary_1.setId(CURRENCY_PAIR_ID_1); + currencyPairDictionary_1.setBaseCurrency("BASE_CURRENCY_1"); + currencyPairDictionary_1.setQuoteCurrency("QUOTE_CURRENCY_1"); + + CurrencyPairDictionary currencyPairDictionary_2 = new CurrencyPairDictionary(); + currencyPairDictionary_2.setId(CURRENCY_PAIR_ID_2); + currencyPairDictionary_2.setBaseCurrency("BASE_CURRENCY_2"); + currencyPairDictionary_2.setQuoteCurrency("QUOTE_CURRENCY_2"); + + currencyPairDictionaryImdg.insert(currencyPairDictionary_1); + currencyPairDictionaryImdg.insert(currencyPairDictionary_2); + + + ExecutionCurrency executionCurrency_1 = new ExecutionCurrency(); + executionCurrency_1.setSessionId(session_1.getId()); + executionCurrency_1.setSettlementDate(LocalDate.now()); + executionCurrency_1.setTradingDate(LocalDate.now()); + executionCurrency_1.setSessionId(SESSION_ID_1); + executionCurrency_1.setExchangeExecutionId(321L); + executionCurrency_1.setSecuritySymbol("RUR"); + executionCurrency_1.setTradingClearingRegistryId(TKR_ID_1); + executionCurrency_1.setMarket("MARKET_1"); + executionCurrency_1.setExchangeExecutionTime(Instant.now()); + executionCurrency_1.setSide("SELL"); + executionCurrency_1.setSecurityId(SECURITY_ID_1); + executionCurrency_1.setCompanyId(COMPANY_ID_1); + + ExecutionCurrency executionCurrency_2 = new ExecutionCurrency(); + executionCurrency_2.setSessionId(session_2.getId()); + executionCurrency_2.setSettlementDate(LocalDate.now()); + executionCurrency_2.setSessionId(SESSION_ID_2); + executionCurrency_2.setExchangeExecutionId(123L); + executionCurrency_2.setSecuritySymbol("EUR"); + executionCurrency_2.setTradingClearingRegistryId(TKR_ID_2); + executionCurrency_2.setMarket("MARKET_2"); + executionCurrency_2.setExchangeExecutionTime(Instant.now()); + executionCurrency_2.setSide("BUY"); + executionCurrency_2.setSecurityId(SECURITY_ID_2); + executionCurrency_2.setCompanyId(COMPANY_ID_2); + + executionCurrencyImdg.insert(executionCurrency_1); + executionCurrencyImdg.insert(executionCurrency_2); + + String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); + + TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), + Consts.CREATE_REPORT, + reportRequestCnt++, + 0, + jsonString); + + TestUtils.waitingSendAndCheckRecord(0L, producer); + + File outFile = outFolder.listFiles()[0]; + File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_REP_LCC_TRADES_expected.csv").getFile()); + compareCSVFiles(expectedFile, outFile, Arrays.asList("SESSION_DATE", "TRADE_DATE", "SETTLE_DATE")); + + accountImdg.delete(account_11); + accountImdg.delete(account_1); + accountImdg.delete(account_2); + companyImdg.delete(company_1); + companyImdg.delete(company_2); + tradingClearingRegistryImdg.delete(tkr_1); + tradingClearingRegistryImdg.delete(tkr_2); + sessionImdg.delete(session_1); + executionCurrencyImdg.delete(executionCurrency_1); + executionCurrencyImdg.delete(executionCurrency_2); + currencyPairSecurityImdg.delete(currencyPairSecurity_1); + currencyPairSecurityImdg.delete(currencyPairSecurity_2); + currencyPairDictionaryImdg.delete(currencyPairDictionary_1); + currencyPairDictionaryImdg.delete(currencyPairDictionary_2); + } + + @Test + @Order(13) + public void createReportTest_KSRepLccTradesReport() throws IOException, CsvValidationException { + clearTestDir(); + + ReportRequest reportRequest = new ReportRequest(); + reportRequest.setReportId(ReportBuilderType.KS_REP_LCC_NETTO.getKey()); + + Registry registry_AMT_1 = new Registry(); + registry_AMT_1.setTradingCode("AMT_1_TRADING_CODE"); + registry_AMT_1.setTradingClearingRegistry("TKR_AMT_1"); + registry_AMT_1.setSecuritySymbol("SEC_SYMBOL_AMT_1"); + registry_AMT_1.setSettlementDate(LocalDate.now()); + registry_AMT_1.setRegistryCode("AM_T"); + registry_AMT_1.setRegistryDesignation(RegistryDesignation.A.getKey()); + registry_AMT_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + registry_AMT_1.setRegistryUnit(RegistryUnit.T.getKey()); + registry_AMT_1.setBalance(BigDecimal.TEN); + + Registry registry_AMT_2 = new Registry(); + registry_AMT_2.setTradingCode("AMT_2_TRADING_CODE"); + registry_AMT_2.setTradingClearingRegistry("TKR_AMT_2"); + registry_AMT_2.setSecuritySymbol("SEC_SYMBOL_AMT_2"); + registry_AMT_2.setSettlementDate(LocalDate.now()); + registry_AMT_2.setRegistryCode("AM_T"); + registry_AMT_2.setRegistryDesignation(RegistryDesignation.A.getKey()); + registry_AMT_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + registry_AMT_2.setRegistryUnit(RegistryUnit.T.getKey()); + registry_AMT_1.setBalance(BigDecimal.TEN.negate()); + + Registry registry_OMT_1 = new Registry(); + registry_OMT_1.setTradingCode("OMT_1_TRADING_CODE"); + registry_OMT_1.setTradingClearingRegistry("TKR_OMT_1"); + registry_OMT_1.setSecuritySymbol("SEC_SYMBOL_OMT_1"); + registry_OMT_1.setSettlementDate(LocalDate.now()); + registry_OMT_1.setRegistryCode("OM_T"); + registry_OMT_1.setRegistryDesignation(RegistryDesignation.O.getKey()); + registry_OMT_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + registry_OMT_1.setRegistryUnit(RegistryUnit.T.getKey()); + registry_OMT_1.setRegistryStatus(RegistryStatus.PROC.getKey()); + registry_OMT_1.setBalance(BigDecimal.valueOf(321321)); + + Registry registry_OMT_2 = new Registry(); + registry_OMT_2.setTradingCode("OMT_2_TRADING_CODE"); + registry_OMT_2.setTradingClearingRegistry("TKR_OMT_2"); + registry_OMT_2.setSecuritySymbol("SEC_SYMBOL_OMT_2"); + registry_OMT_2.setSettlementDate(LocalDate.now()); + registry_OMT_2.setRegistryCode("OM_T"); + registry_OMT_2.setRegistryDesignation(RegistryDesignation.O.getKey()); + registry_OMT_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + registry_OMT_2.setRegistryUnit(RegistryUnit.T.getKey()); + registry_OMT_2.setRegistryStatus(RegistryStatus.CLRD.getKey()); + registry_OMT_2.setBalance(BigDecimal.valueOf(547893)); + + Registry registry_TMT_1 = new Registry(); + registry_TMT_1.setTradingCode("TMT_1_TRADING_CODE"); + registry_TMT_1.setTradingClearingRegistry("TKR_TMT_1"); + registry_TMT_1.setSecuritySymbol("SEC_SYMBOL_TMT_1"); + registry_TMT_1.setSettlementDate(LocalDate.now()); + registry_TMT_1.setRegistryCode("TM_T"); + registry_TMT_1.setRegistryDesignation(RegistryDesignation.T.getKey()); + registry_TMT_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + registry_TMT_1.setRegistryUnit(RegistryUnit.T.getKey()); + registry_TMT_1.setRegistryStatus(RegistryStatus.MNG.getKey()); + registry_TMT_1.setBalance(BigDecimal.valueOf(5783949)); + + Registry registry_TMT_2 = new Registry(); + registry_TMT_2.setTradingCode("TMT_2_TRADING_CODE"); + registry_TMT_2.setTradingClearingRegistry("TKR_TMT_2"); + registry_TMT_2.setSecuritySymbol("SEC_SYMBOL_TMT_2"); + registry_TMT_2.setSettlementDate(LocalDate.now()); + registry_TMT_2.setRegistryCode("TM_T"); + registry_TMT_2.setRegistryDesignation(RegistryDesignation.T.getKey()); + registry_TMT_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + registry_TMT_2.setRegistryUnit(RegistryUnit.T.getKey()); + registry_TMT_2.setRegistryStatus(RegistryStatus.CLRD.getKey()); + registry_TMT_2.setBalance(BigDecimal.valueOf(434213)); + + registryImdg.insert(registry_AMT_1); + registryImdg.insert(registry_AMT_2); + registryImdg.insert(registry_TMT_1); + registryImdg.insert(registry_TMT_2); + registryImdg.insert(registry_OMT_1); + registryImdg.insert(registry_OMT_2); + + + String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); + + TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), + Consts.CREATE_REPORT, + reportRequestCnt++, + 0, + jsonString); + + TestUtils.waitingSendAndCheckRecord(0L, producer); + + File outFile = outFolder.listFiles()[0]; + File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv").getFile()); + compareCSVFiles(expectedFile, outFile, Arrays.asList("DATE")); + + registryImdg.delete(registry_AMT_1); + registryImdg.delete(registry_TMT_1); + registryImdg.delete(registry_OMT_1); + registryImdg.delete(registry_AMT_2); + registryImdg.delete(registry_TMT_2); + registryImdg.delete(registry_OMT_2); + } + private void compareCSVFiles(File expectedFile, File actualFile, List columnsForSkip) throws IOException, CsvValidationException { if (columnsForSkip == null) columnsForSkip = Collections.emptyList(); @@ -1373,6 +1646,7 @@ public class ReportServiceTest_KS { executionDepositImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class); executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); + executionCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class); sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); @@ -1384,6 +1658,8 @@ public class ReportServiceTest_KS { sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class); accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); + currencyPairSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairSecurity, CurrencyPairSecurity.class); + currencyPairDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairDictionary, CurrencyPairDictionary.class); } private void clearTestDir() throws IOException { diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv new file mode 100644 index 000000000..9be9a2e70 --- /dev/null +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv @@ -0,0 +1,19 @@ +"FIRM_ID","TKR","CURRENCYID","DATE","NETTO_SUM","DATA_TYPE","DEBIT","NETTO_SUM" +"AMT_1_TRADING_CODE","TKR_AMT_1","SEC_SYMBOL_AMT_1","2024-10-02","0","FX_OBLIG","0.00","0.00" +"AMT_1_TRADING_CODE","TKR_AMT_1","SEC_SYMBOL_AMT_1","2024-10-02","0","PR_NETTOSUM","0.00","0.00" +"AMT_1_TRADING_CODE","TKR_AMT_1","SEC_SYMBOL_AMT_1","2024-10-02","10","FX_DEBT","-10.00","0.00" +"TMT_2_TRADING_CODE","TKR_TMT_2","SEC_SYMBOL_TMT_2","2024-10-02","0","FX_OBLIG","0.00","0.00" +"TMT_2_TRADING_CODE","TKR_TMT_2","SEC_SYMBOL_TMT_2","2024-10-02","434213","PR_NETTOSUM","0.00","434213.00" +"TMT_2_TRADING_CODE","TKR_TMT_2","SEC_SYMBOL_TMT_2","2024-10-02","0","FX_DEBT","0.00","0.00" +"TMT_1_TRADING_CODE","TKR_TMT_1","SEC_SYMBOL_TMT_1","2024-10-02","5783949","FX_OBLIG","0.00","5783949.00" +"TMT_1_TRADING_CODE","TKR_TMT_1","SEC_SYMBOL_TMT_1","2024-10-02","0","PR_NETTOSUM","0.00","0.00" +"TMT_1_TRADING_CODE","TKR_TMT_1","SEC_SYMBOL_TMT_1","2024-10-02","0","FX_DEBT","0.00","0.00" +"OMT_1_TRADING_CODE","TKR_OMT_1","SEC_SYMBOL_OMT_1","2024-10-02","-321321","FX_OBLIG","321321.00","0.00" +"OMT_1_TRADING_CODE","TKR_OMT_1","SEC_SYMBOL_OMT_1","2024-10-02","0","PR_NETTOSUM","0.00","0.00" +"OMT_1_TRADING_CODE","TKR_OMT_1","SEC_SYMBOL_OMT_1","2024-10-02","0","FX_DEBT","0.00","0.00" +"AMT_2_TRADING_CODE","TKR_AMT_2","SEC_SYMBOL_AMT_2","2024-10-02","0","FX_OBLIG","0.00","0.00" +"AMT_2_TRADING_CODE","TKR_AMT_2","SEC_SYMBOL_AMT_2","2024-10-02","0","PR_NETTOSUM","0.00","0.00" +"AMT_2_TRADING_CODE","TKR_AMT_2","SEC_SYMBOL_AMT_2","2024-10-02","0","FX_DEBT","0.00","0.00" +"OMT_2_TRADING_CODE","TKR_OMT_2","SEC_SYMBOL_OMT_2","2024-10-02","0","FX_OBLIG","0.00","0.00" +"OMT_2_TRADING_CODE","TKR_OMT_2","SEC_SYMBOL_OMT_2","2024-10-02","-547893","PR_NETTOSUM","547893.00","0.00" +"OMT_2_TRADING_CODE","TKR_OMT_2","SEC_SYMBOL_OMT_2","2024-10-02","0","FX_DEBT","0.00","0.00" diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_TRADES_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_TRADES_expected.csv new file mode 100644 index 000000000..dfee178bb --- /dev/null +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_TRADES_expected.csv @@ -0,0 +1,3 @@ +"SESSION_ID","SESSION_DATE","TRADE_NUM","SECCODE","FIRM_ID","TKR","ACCOUNT","CLASS_CODE","TRADE_DATE","TRADE_GROUP","BUY_SELL","LOT_CURRENCY","CO_CURRENCY","SETTLEDATE" +"32121","02.10.2024T15:54:33","321","RUR","TRADING_CODE_1","TKR_CODE_1","ACCOUNT_1","MARKET_1","02.10.2024T15:54:33","T","S","BASE_CURRENCY_1","QUOTE_CURRENCY_1","2024-10-02" +"32125","02.10.2024T15:54:33","123","EUR","TRADING_CODE_2","TKR_CODE_2","ACCOUNT_2","MARKET_2","02.10.2024T15:54:33","T","B","BASE_CURRENCY_2","QUOTE_CURRENCY_2","2024-10-02" diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java index dee144f70..180ab1c01 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java @@ -19,6 +19,8 @@ public enum ReportBuilderType implements IEnumKey { KS_REP_FIRM_DETAILS("ks_rep_firm_details"), KS_SESSION_LIST("ks_session_list"), KS_COMMISSION_TRADES("ks_commission_trades"), + KS_REP_LCC_TRADES("ks_rep_lcc_trades"), + KS_REP_LCC_NETTO("ks_rep_lcc_netto") ; private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportKeys.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportKeys.java index 93d2bdd0c..81eede910 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportKeys.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportKeys.java @@ -18,6 +18,8 @@ public enum ReportKeys implements IEnumKey { KS_REP_FIRM_DETAILS("KS_REP_FIRM_DETAILS"), KS_SESSION_LIST("KS_SESSION_LIST"), KS_COMMISSION_TRADES("KS_COMMISSION_TRADES"), + KS_REP_LCC_TRADES_REPORT("KS_REP_LCC_TRADES_REPORT"), + KS_REP_LCC_NETTO_REPORT("KS_REP_LCC_NETTO_REPORT") ; private final String key; From fd87786d8500885dc230359b857f0df244dfcf6f Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 2 Oct 2024 17:00:17 +0300 Subject: [PATCH 05/25] http://jira.mfd.msk:8088/browse/CLS-767 --- .../clearing/reports/config/ReportBuildersConfig.java | 11 +++++++++++ .../clearing/reports/services/ReportService.java | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java index 3f25b7cac..8dce3dfeb 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java @@ -151,4 +151,15 @@ public class ReportBuildersConfig { return resultMap; } + @Bean("reportBuildersForGREC") + public Map>> reportBuildersForGRET( + KSRepLccTradesReportBuilder ksRepLccTradesReportBuilder, + KSRepLccNettoReportBuilder ksRepLccNettoReportBuilder + ) { + Map>> resultMap = new HashMap<>(); + resultMap.put(ReportBuilderType.KS_REP_LCC_TRADES, List.of(ksRepLccTradesReportBuilder)); + resultMap.put(ReportBuilderType.KS_REP_LCC_NETTO, List.of(ksRepLccNettoReportBuilder)); + return resultMap; + } + } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java index 770d15dc1..2f410520d 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java @@ -86,7 +86,7 @@ public class ReportService extends QueueConsumerV2 implements InitializingBean { Map>> reportBuildersForGREF, @Qualifier("reportBuildersForGRET") Map>> reportBuildersForGRET, - @Qualifier("reportBuildersForGRET") + @Qualifier("reportBuildersForGREC") Map>> reportBuildersForGREC, @Qualifier("reportRequestValidator") From 78e38d0e0adf84080347f155c1a6b1960b410c8b Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 17:32:54 +0300 Subject: [PATCH 06/25] fix naming for riskParameter/rates --- .../src/main/resources/meta/meta.json | 70 +++++++++---------- .../src/main/resources/meta/meta.xml | 32 ++++----- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.json b/clearing-parent/backend-api/src/main/resources/meta/meta.json index 4907b2b37..dae31ebfc 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.json +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.json @@ -1,6 +1,6 @@ { - "version": "3.15.206.106", + "version": "3.15.206.107", "enums": { @@ -10557,14 +10557,6 @@ {"code": "id", "type": 1,"name": "Идентификатор записи","shortname": "ID","searchable": true,"sortable": true,"visible": true } - , - {"code": "value", - "name": "Ставка","shortname": "Ставка","type": 10 - } - , - {"code": "settlementType", - "name": "Код расчета","shortname": "Код расчета","type": 2,"length": 4 - } , {"code": "currencyPair", "name": "Код валютной пары","shortname": "Код валютной пары","type": 2,"length": 12 @@ -10573,9 +10565,17 @@ {"code": "currencyPairId", "name": "Идентификатор валютной пары","shortname": "Валютная пара","type": 1 } + , + {"code": "settlementType", + "name": "Код расчета","shortname": "Код расчета","type": 2,"length": 4 + } + , + {"code": "value", + "name": "Ставка","shortname": "Ставка","type": 10 + } , {"code": "workflowStatus", - "name": "Статус","shortname": "Секция","type": 2,"length": 4 + "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" } ] ,"actions":[ @@ -10588,20 +10588,20 @@ "class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterNewAction", "fields": [ + {"code": "currencyPairId", + "name": "Идентификатор валютной пары","shortname": "Валютная пара","type": 1,"link": "currencyPair","linkCode": "code" + } + , + {"code": "settlementType", + "name": "Код расчёта","shortname": "Код расчёта","type": 2,"length": 4 + } + , {"code": "value", "name": "Ставка","shortname": "Ставка","type": 10 } - , - {"code": "settlementType", - "name": "Дата, на которую расчетный курс","shortname": "Дата","type": 6 - } - , - {"code": "currencyPairId", - "name": "Идентификатор валюты","shortname": "Валюта","type": 1 - } , {"code": "status", - "name": "Статус","shortname": "Секция","type": 2,"length": 4 + "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" } ] } @@ -10624,7 +10624,7 @@ } , {"code": "status", - "name": "Статус","shortname": "Секция","type": 2,"length": 4 + "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" } ] } @@ -10646,24 +10646,24 @@ "type": 1,"name": "Идентификатор записи","shortname": "ID","searchable": true,"sortable": true,"visible": true } , - {"code": "value", - "name": "Расчетный курс","shortname": "Расчетный курс","type": 10 - } - , - {"code": "valueDate", - "name": "Дата, на которую расчетный курс","shortname": "Дата","type": 6 + {"code": "currencyId", + "name": "Идентификатор валюты","shortname": "Валюта","type": 1 } , {"code": "currency", "name": "Код валюты","shortname": "Код валюты","type": 2,"length": 4 } , - {"code": "currencyId", - "name": "Идентификатор валюты","shortname": "Валюта","type": 1 + {"code": "valueDate", + "name": "Дата, на которую расчетный курс","shortname": "Дата","type": 6 + } + , + {"code": "value", + "name": "Расчетный курс","shortname": "Расчетный курс","type": 10 } , {"code": "workflowStatus", - "name": "Статус","shortname": "Секция","type": 2,"length": 4 + "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" } ] ,"actions":[ @@ -10676,20 +10676,20 @@ "class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesNewAction", "fields": [ - {"code": "value", - "name": "Расчетный курс","shortname": "Расчетный курс","type": 10 + {"code": "currencyId", + "name": "Идентификатор валюты","shortname": "Валюта","type": 1,"link": "currency" } , {"code": "valueDate", "name": "Дата, на которую расчетный курс","shortname": "Дата","type": 6 } , - {"code": "currencyId", - "name": "Идентификатор валюты","shortname": "Валюта","type": 1 + {"code": "value", + "name": "Расчетный курс","shortname": "Расчетный курс","type": 10 } , {"code": "status", - "name": "Статус","shortname": "Секция","type": 2,"length": 4 + "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" } ] } @@ -10712,7 +10712,7 @@ } , {"code": "status", - "name": "Статус","shortname": "Секция","type": 2,"length": 4 + "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" } ] } 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 c14645ef5..3f790b40b 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 @@ - + @@ -2444,43 +2444,43 @@ - - - + + + + + - - - + - + - - - - + + + + - + - - + + - + From 2615cc79e48383442c0f9ac6b64c9e941a952058 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 17:40:26 +0300 Subject: [PATCH 07/25] fix naming for riskParameter/rates --- .../backend-api/src/main/resources/meta/meta.json | 6 +++--- .../backend-api/src/main/resources/meta/meta.xml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.json b/clearing-parent/backend-api/src/main/resources/meta/meta.json index dae31ebfc..d7de1f4b1 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.json +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.json @@ -1,6 +1,6 @@ { - "version": "3.15.206.107", + "version": "3.15.206.108", "enums": { @@ -10593,7 +10593,7 @@ } , {"code": "settlementType", - "name": "Код расчёта","shortname": "Код расчёта","type": 2,"length": 4 + "name": "Код расчёта","shortname": "Код расчёта","type": 12,"link": "currencySettlementType","linkCode": "code" } , {"code": "value", @@ -10677,7 +10677,7 @@ "fields": [ {"code": "currencyId", - "name": "Идентификатор валюты","shortname": "Валюта","type": 1,"link": "currency" + "name": "Идентификатор валюты","shortname": "Валюта","type": 1,"link": "currency","linkCode": "code" } , {"code": "valueDate", 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 3f790b40b..d77bcee9f 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 @@ - + @@ -2452,7 +2452,7 @@ - + @@ -2472,7 +2472,7 @@ - + From 454bb99dfa636f580fc38116b824909dcb9994a8 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 18:14:33 +0300 Subject: [PATCH 08/25] fix naming for riskParameter/rates --- .../controller/request/cud/securities/RatesNewAction.java | 6 ++++++ .../backend-api/src/main/resources/meta/meta.json | 6 +++--- .../backend-api/src/main/resources/meta/meta.xml | 6 +++--- .../messaging/domain/cud/security/RatesNewRequest.java | 6 ++++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/RatesNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/RatesNewAction.java index 8b71e4175..76cd987f2 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/RatesNewAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/RatesNewAction.java @@ -1,12 +1,16 @@ package ru.spcex.clearing.backendapi.controller.request.cud.securities; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.annotations.ApiModelProperty; import java.math.BigDecimal; import java.time.LocalDate; import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.cud.security.RatesNewRequest; +import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; +import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; public class RatesNewAction implements IAction { @@ -14,6 +18,8 @@ public class RatesNewAction implements IAction { @JsonProperty private BigDecimal value; @ApiModelProperty(value = "Дата.", example = "1234") + @JsonSerialize(using = LocalDateSerializer.class) + @JsonDeserialize(using = LocalDateDeserializer.class) @JsonProperty private LocalDate valueDate; @ApiModelProperty(value = "Валюта.", example = "1234") diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.json b/clearing-parent/backend-api/src/main/resources/meta/meta.json index d7de1f4b1..3a23e8f41 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.json +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.json @@ -1,6 +1,6 @@ { - "version": "3.15.206.108", + "version": "3.15.206.110", "enums": { @@ -10589,7 +10589,7 @@ "fields": [ {"code": "currencyPairId", - "name": "Идентификатор валютной пары","shortname": "Валютная пара","type": 1,"link": "currencyPair","linkCode": "code" + "name": "Идентификатор валютной пары","shortname": "Валютная пара","type": 1,"link": "currencyPair","linkCode": "code","linkKeyCode": "id" } , {"code": "settlementType", @@ -10677,7 +10677,7 @@ "fields": [ {"code": "currencyId", - "name": "Идентификатор валюты","shortname": "Валюта","type": 1,"link": "currency","linkCode": "code" + "name": "Идентификатор валюты","shortname": "Валюта","type": 1,"link": "currencyCode","linkCode": "code","linkKeyCode": "id" } , {"code": "valueDate", 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 d77bcee9f..819a1d27b 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 @@ - + @@ -2451,7 +2451,7 @@ - + @@ -2472,7 +2472,7 @@ - + diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesNewRequest.java index bb125c38c..665088823 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesNewRequest.java @@ -1,13 +1,19 @@ package ru.spcex.clearing.platform.messaging.domain.cud.security; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.math.BigDecimal; import java.time.LocalDate; +import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; +import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; public class RatesNewRequest { @JsonProperty private BigDecimal value; + @JsonSerialize(using = LocalDateSerializer.class) + @JsonDeserialize(using = LocalDateDeserializer.class) @JsonProperty private LocalDate valueDate; @JsonProperty From f26826bb4e5e43efa7be192507a926c252049df9 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 18:35:52 +0300 Subject: [PATCH 09/25] http://jira.mfd.msk:8088/browse/CLS-764 --- .../spcex/clearing/securities/config/ValidationConfig.java | 4 ++++ .../securities/config/validation/RatesValidationConfig.java | 4 ++-- .../clearing/securities/service/facade/RatesFacade.java | 5 +++++ .../securities/service/facade/RiskParameterFacade.java | 5 +++++ .../securities/validation/rule/RatesValidationRule.java | 2 +- 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ValidationConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ValidationConfig.java index 4d1263bc2..aea9bb26a 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ValidationConfig.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ValidationConfig.java @@ -4,6 +4,8 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; +import ru.clearing.classes.statics.data.security.Rates; +import ru.clearing.classes.statics.data.security.RiskParameter; import ru.clearing.platform.dictionary.CountryCodeDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.securities.errors.SecuritiesError; @@ -29,6 +31,8 @@ public class ValidationConfig { BiConsumer> addImdg = (s, aClass) -> imdg.put(s, imdgProvider.getImdg(s, aClass)); addImdg.accept(IMDGDistributedNames.Map_FixedIncomeCashFlow, CountryCodeDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_Rates, Rates.class); + addImdg.accept(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class); return imdg; } diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java index d99dd8fad..e7ab2dbe8 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java @@ -30,9 +30,9 @@ public class RatesValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Rates); return new ValidatorImpl<>(context, - FieldRequiredRule.instance("currencyPairUd", RatesNewRequest::getCurrencyId, SecuritiesError.RequiredFieldIsEmpty), + FieldRequiredRule.instance("currencyPairId", RatesNewRequest::getCurrencyId, SecuritiesError.RequiredFieldIsEmpty), FieldRequiredRule.instance("value", RatesNewRequest::getValue, SecuritiesError.RequiredFieldIsEmpty), - FieldRequiredRule.instance("settlementType", RatesNewRequest::getValueDate, SecuritiesError.RequiredFieldIsEmpty), + FieldRequiredRule.instance("valueDate", RatesNewRequest::getValueDate, SecuritiesError.RequiredFieldIsEmpty), RatesValidationRule.CHECK_ON_EXIST ); }; diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RatesFacade.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RatesFacade.java index 4b7aa39f9..963d50754 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RatesFacade.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RatesFacade.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.security.Rates; +import ru.clearing.platform.dictionary.CurrencyCodeDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.security.RatesNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.security.RatesUpdateRequest; @@ -19,11 +20,13 @@ public class RatesFacade implements IClearingFacade { private final ImdgId idGenerator; private final ImdgProvider imdgProvider; private final Imdg ratesImdg; + private final Imdg currencyCodeDictionaryImdg; public RatesFacade(ImdgProvider imdgProvider) { this.idGenerator = imdgProvider.getImdgIdGenerator(); this.imdgProvider = imdgProvider; this.ratesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Rates, Rates.class); + this.currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); } /** @@ -33,7 +36,9 @@ public class RatesFacade implements IClearingFacade { log.trace("Start process creating new rates"); Rates rates = new Rates(); + CurrencyCodeDictionary currencyCodeDictionary = currencyCodeDictionaryImdg.getSingleObjectByID(request.getCurrencyId()); rates.setCurrencyId(request.getCurrencyId()); + rates.setCurrency(currencyCodeDictionary.getCode()); rates.setValue(request.getValue()); rates.setValueDate(request.getValueDate()); rates.setWorkflowStatus(request.getStatus()); diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java index 847a24c31..8a57a6df9 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.security.RiskParameter; +import ru.clearing.platform.dictionary.CurrencyPairDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterUpdateRequest; @@ -19,11 +20,13 @@ public class RiskParameterFacade implements IClearingFacade { private final ImdgId idGenerator; private final ImdgProvider imdgProvider; private final Imdg riskParameterImdg; + private final Imdg currencyPairDictionaryImdg; public RiskParameterFacade(ImdgProvider imdgProvider) { this.idGenerator = imdgProvider.getImdgIdGenerator(); this.imdgProvider = imdgProvider; this.riskParameterImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class); + this.currencyPairDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairDictionary, CurrencyPairDictionary.class); } /** @@ -33,7 +36,9 @@ public class RiskParameterFacade implements IClearingFacade { log.trace("Start process creating new risk_parameter"); RiskParameter riskParameter = new RiskParameter(); + CurrencyPairDictionary currencyPairDictionary = currencyPairDictionaryImdg.getSingleObjectByID(request.getCurrencyPairId()); riskParameter.setCurrencyPairId(request.getCurrencyPairId()); + riskParameter.setCurrencyPair(currencyPairDictionary.getCode()); riskParameter.setSettlementType(request.getSettlementType()); riskParameter.setValue(request.getValue()); riskParameter.setWorkflowStatus(request.getStatus()); diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java index 6c69dc9ad..1a8725e00 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java @@ -22,7 +22,7 @@ public enum RatesValidationRule implements IValidationRule Date: Wed, 2 Oct 2024 18:46:16 +0300 Subject: [PATCH 10/25] http://jira.mfd.msk:8088/browse/CLS-770 --- .../account/service/AccountService.java | 27 +++++++++++++++++-- .../service/InformationAccountService.java | 25 +++++++++-------- 2 files changed, 39 insertions(+), 13 deletions(-) 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 669159287..9cce75860 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 @@ -4,6 +4,7 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; import java.util.function.Function; +import org.apache.commons.lang3.StringUtils; import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.producer.Producer; import org.slf4j.Logger; @@ -42,6 +43,8 @@ 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.imdg.api.predicate.ImdgPredicate; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.validation.Stored; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; @@ -145,9 +148,29 @@ public class AccountService extends QueueConsumer implements InitializingBean { account.setCompanyId(req.getCompanyId()); account.setAccount(req.getAccount()); if (AccountType.Info.equalsByKey(req.getAccountType())) { - Long infoSequenceId = informationAccountService.accountNextId(currencyCode, currencyCodeId); + Account anltAccount; + { + ImdgPredicateBuilder pb = accountMap.predicateBuilder(); + ImdgPredicate andPredicate = pb.and( + pb.equals("accountType", AccountType.Anlt.getKey()), + pb.equals("currency", currency) + ); + Collection accountsAnlt = accountMap.getCollectionObjectsByPredicate(andPredicate); + if (accountsAnlt.isEmpty()) { + log.warn("Account with {} not exist.", andPredicate); + } else if (accountsAnlt.size() > 1) { + log.warn("Account for companyId 1 and accountType=ANLT contains multiply elements, use first"); + } + anltAccount = accountsAnlt.iterator().next(); + } - String accountValue = informationAccountService.generateInfoAccount(currencyCodeId, infoSequenceId); + String specialAnltAccId = "7000"; + if (anltAccount != null && StringUtils.isNotEmpty(anltAccount.getAccount()) && anltAccount.getAccount().length() >= 4) { + specialAnltAccId = anltAccount.getAccount().substring(anltAccount.getAccount().length() - 4); + } + + Long infoSequenceId = informationAccountService.accountNextId(currencyCode, currencyCodeId); + String accountValue = informationAccountService.generateInfoAccount(currencyCodeId, infoSequenceId, specialAnltAccId); log.trace("New info-account SequenceId={} account={}", infoSequenceId, accountValue); account.setAccount(accountValue); } 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 1a98c6b2c..7ea1a5215 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 @@ -119,9 +119,6 @@ public class InformationAccountService extends QueueConsumer implements Initiali String currency = req.getCurrency() == null ? CurrencyCode.RUB.getKey() : req.getCurrency(); //userRequest.getRequestPayload().getCurrency(); Long newId = informationAccountImdg.nextIDSequenceFor(); - Long infoSequenceId = accountNextId(currency, 810L); - String accountValue = generateInfoAccount(810L, infoSequenceId); - log.trace("New info-account id={}, sequenceId={}, account={}", newId, infoSequenceId, accountValue); ImdgPredicateBuilder accountPredicateBuilder = accountImdg.predicateBuilder(); ImdgPredicate companyIdPredicate = accountPredicateBuilder.equals("companyId", 1L); @@ -215,15 +212,11 @@ public class InformationAccountService extends QueueConsumer implements Initiali String currency = userRequest.getRequestPayload().getCurrency(); if (currency == null) currency = CurrencyCode.RUB.getKey(); - Long newId = informationAccountImdg.nextIDSequenceFor(); - Long infoSequenceId = accountNextId(currency, 810L); // требуется последовательность n+1 - String accountValue = generateInfoAccount(810L, infoSequenceId); - log.trace("New info-account id={}, sequenceId={}, account={}", newId, infoSequenceId, accountValue); Long anltAccountId = null; + Account anltAccount; { ImdgPredicate andPredicate = pb.and( - pb.equals("companyId", 1L), pb.equals("accountType", AccountType.Anlt.getKey()), pb.equals("currency", currency) ); @@ -234,10 +227,20 @@ public class InformationAccountService extends QueueConsumer implements Initiali } else if (accountsAnlt.size() > 1) { log.warn("Account for companyId 1 and accountType=ANLT contains multiply elements, use first"); } - Account anltAccount = accountsAnlt.iterator().next(); + anltAccount = accountsAnlt.iterator().next(); anltAccountId = anltAccount.getId(); } + + String specialAnltAccId = "7000"; + if (anltAccount != null && StringUtils.isNotEmpty(anltAccount.getAccount()) && anltAccount.getAccount().length() >= 4) { + specialAnltAccId = anltAccount.getAccount().substring(anltAccount.getAccount().length() - 4); + } + Long newId = informationAccountImdg.nextIDSequenceFor(); + Long infoSequenceId = accountNextId(currency, 810L); // требуется последовательность n+1 + String accountValue = generateInfoAccount(810L, infoSequenceId, specialAnltAccId); + log.trace("New info-account id={}, sequenceId={}, account={}", newId, infoSequenceId, accountValue); + Instant now = Instant.now(); Account account = new Account(); account.setAccount(accountValue); @@ -301,8 +304,8 @@ public class InformationAccountService extends QueueConsumer implements Initiali kafkaSender.sendRequestToQueue(Consts.CREATE_NOTIFICATION_NCMP, request); } - public String generateInfoAccount(Long currencyCodeId, Long id) { - return "%d%03d%08d%d".formatted(39911, currencyCodeId, id, 7000); + public String generateInfoAccount(Long currencyCodeId, Long id, String specialAnltAccId) { + return "%d%03d%08d%s".formatted(39911, currencyCodeId, id, specialAnltAccId); } public synchronized Long accountNextId(String currency) { From 345feb19b8077b4d872faf6b54fb00d8a11e61bb Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 19:29:57 +0300 Subject: [PATCH 11/25] http://jira.mfd.msk:8088/browse/CLS-770 --- .../java/ru/spcex/clearing/account/service/AccountService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 9cce75860..5bf66bbee 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 @@ -153,7 +153,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { ImdgPredicateBuilder pb = accountMap.predicateBuilder(); ImdgPredicate andPredicate = pb.and( pb.equals("accountType", AccountType.Anlt.getKey()), - pb.equals("currency", currency) + pb.equals("currency", currency.getCurrencyCode()) ); Collection accountsAnlt = accountMap.getCollectionObjectsByPredicate(andPredicate); if (accountsAnlt.isEmpty()) { From a849d5d026533785bd931b517819b9a24ba8ba05 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 3 Oct 2024 14:04:39 +0300 Subject: [PATCH 12/25] http://jira.mfd.msk:8088/browse/CLS-770 --- .../account/service/TradingClearingRegistryService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 ab24a91f1..4e5ac27b8 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 @@ -447,7 +447,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini code = "%4s".formatted(code).replace(' ', '0'); // code += registryPurpose.getKey(); // C / M / ... code += "C";//пока ставим всегда С, возможно придется откатить - String trType = tradingRegistryType + accountServiceSettings.getApp().getRegistryUnit(); // 2 символа + String registryUnit = accountServiceSettings.getApp() != null ? accountServiceSettings.getApp().getRegistryUnit() : "T"; + String trType = tradingRegistryType + registryUnit; // 2 символа code += trType; String sId = "%5s".formatted(id).replace(' ', '0'); if (sId.length() > 5) From be90d018d142ab4b36a5b8c20359f4ed261f8aae Mon Sep 17 00:00:00 2001 From: akulikov Date: Thu, 3 Oct 2024 15:50:47 +0300 Subject: [PATCH 13/25] http://jira.mfd.msk:8088/browse/CLS-765 --- .../services/CurrencyExporterService.java | 98 ++++++++++++++---- .../services/MoneyExporterService.java | 99 +++++++++++++++---- .../src/main/resources/application.properties | 4 +- .../lim/exporter/AbstractServiceTest.java | 37 +++++-- .../services/MoneyExporterServiceTest.java | 59 ++++++++--- 5 files changed, 241 insertions(+), 56 deletions(-) diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java index e7361cfda..e911cf33e 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java @@ -1,31 +1,35 @@ package ru.spcex.clearing.lim.exporter.services; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.function.BiFunction; +import java.util.function.Function; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.registry.Registry; import ru.spcex.clearing.lim.exporter.config.LimFormat; import ru.spcex.clearing.lim.exporter.config.SFTPConfig; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.platform.enumeration.RegistryStatus; +import static ru.spcex.platform.enumeration.RegistryTradingParams.*; import ru.spcex.platform.enumeration.Section; 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.imdg.api.predicate.specific.RegistryCodeSqlBuilder; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.function.Function; - -import static ru.spcex.platform.enumeration.RegistryTradingParams.*; - @Service public class CurrencyExporterService extends AbstractExporterService { private final Logger log = LoggerFactory.getLogger(getClass()); + @Value("${export-lim.include-ck}") + private Boolean includeCK; + public CurrencyExporterService(SFTPConfig.LimGateway gateway, KafkaSender kafkaSender, ImdgProvider imdgProvider) { @@ -56,23 +60,79 @@ public class CurrencyExporterService extends AbstractExporterService { pb.equals("tradingClearingRegistry", registry.getTradingClearingRegistry()), pb.equals("securityId", registry.getSecurityId()) ); + BiFunction prdctOM_T = (registry, date) -> pb.and( + pb.sql(RegistryCodeSqlBuilder.getInstance(OM_T).build()), + pb.in("registryStatus", RegistryStatus.PROC.getKey(), RegistryStatus.MNG.getKey()), + pb.equals("tradingClearingRegistry", registry.getTradingClearingRegistry()), + pb.equals("securityId", registry.getSecurityId()), + pb.equals("settlementDate", date) + ); + BiFunction prdctTM_T = (registry, date) -> pb.and( + pb.sql(RegistryCodeSqlBuilder.getInstance(TM_T).build()), + pb.in("registryStatus", RegistryStatus.PROC.getKey(), RegistryStatus.MNG.getKey()), + pb.equals("tradingClearingRegistry", registry.getTradingClearingRegistry()), + pb.equals("securityId", registry.getSecurityId()), + pb.equals("settlementDate", date) + ); for (Registry registry : registriesA) { if (checkNotBlocked(registry)) { - BigDecimal sumPositive = BigDecimal.ZERO; + BigDecimal dmtSumElement = BigDecimal.ZERO; + BigDecimal omtSumElementToday = BigDecimal.ZERO; + BigDecimal tmtSumElementToday = BigDecimal.ZERO; + BigDecimal omtSumElementTomorrow = BigDecimal.ZERO; + BigDecimal tmtSumElementTomorrow = BigDecimal.ZERO; if (registry.getTradingClearingRegistry() != null && registry.getSecurityId() != null) { - ImdgPredicate query = prdctDM_T.apply(registry); - Collection regsDMT = registryImdg.getCollectionObjectsByPredicate(query); - log.trace("Found {} DM_T registries for registry AM_F {}", regsDMT.size(), query); - sumPositive = sumPositive.add(sum(regsDMT)); + ImdgPredicate queryDM_T = prdctDM_T.apply(registry); + Collection regsDMT = registryImdg.getCollectionObjectsByPredicate(queryDM_T); + log.trace("Found {} DM_T registries for registry AM_F {}", regsDMT.size(), queryDM_T); + dmtSumElement = dmtSumElement.add(sum(regsDMT)).negate(); + + if (includeCK) { + ImdgPredicate queryOM_T_today = prdctOM_T.apply(registry, LocalDate.now()); + Collection regsOMT_today = registryImdg.getCollectionObjectsByPredicate(queryOM_T_today); + log.trace("Found {} OM_T today registries for registry AM_F {}", regsOMT_today.size(), queryOM_T_today); + omtSumElementToday = omtSumElementToday.add(sum(regsOMT_today)).negate(); + + ImdgPredicate queryTM_T_today = prdctTM_T.apply(registry, LocalDate.now()); + Collection regsTMT_today = registryImdg.getCollectionObjectsByPredicate(queryTM_T_today); + log.trace("Found {} TM_T today registries for registry AM_F {}", regsTMT_today.size(), queryTM_T_today); + tmtSumElementToday = tmtSumElementToday.add(sum(regsTMT_today)); + + ImdgPredicate queryOM_T_tomorrow = prdctOM_T.apply(registry, LocalDate.now().plusDays(1)); + Collection regsOMT_tomorrow = registryImdg.getCollectionObjectsByPredicate(queryOM_T_tomorrow); + log.trace("Found {} OM_T tomorrow registries for registry AM_F {}", regsOMT_tomorrow.size(), queryOM_T_tomorrow); + omtSumElementTomorrow = omtSumElementTomorrow.add(sum(regsOMT_tomorrow)).negate(); + + ImdgPredicate queryTM_T_tomorrow = prdctTM_T.apply(registry, LocalDate.now().plusDays(1)); + Collection regsTMT_tomorrow = registryImdg.getCollectionObjectsByPredicate(queryTM_T_tomorrow); + log.trace("Found {} TM_T tomorrow registries for registry AM_F {}", regsTMT_tomorrow.size(), queryTM_T_tomorrow); + tmtSumElementTomorrow = tmtSumElementTomorrow.add(sum(regsTMT_tomorrow)); + } } - limFileRows.add(getRow(registry, sumPositive)); + limFileRows.add( + getRow(registry, + 0, + dmtSumElement, + omtSumElementToday, + tmtSumElementToday) + ); + limFileRows.add( + getRow(registry, + 1, + dmtSumElement, + omtSumElementToday, + tmtSumElementToday, + omtSumElementTomorrow, + tmtSumElementTomorrow) + ); } } log.debug("Successfully completed the formation of rows: {} for export currency(money)", limFileRows.size()); return limFileRows; } - public String getRow(Registry registryA, BigDecimal sumPositive) { + public String getRow(Registry registryA, int limitKind, BigDecimal ... sumElements) { + assert limitKind == 0 || limitKind == 1; StringBuilder row = new StringBuilder(); row.append("MONEY: FIRM_ID = "); @@ -87,12 +147,16 @@ public class CurrencyExporterService extends AbstractExporterService { row.append(registryA.getTradingClearingRegistry()); row.append("; OPEN_BALANCE = "); - BigDecimal balance = registryA.getBalance() != null ? registryA.getBalance().subtract(sumPositive) : BigDecimal.ZERO; + BigDecimal balance = registryA.getBalance() != null ? registryA.getBalance() : BigDecimal.ZERO; + for (BigDecimal sumElement : sumElements) { + if (sumElement == null) continue; + balance = balance.add(sumElement); + } row.append(LimFormat.toStringD2(balance)); row.append("; OPEN_LIMIT = 0.00"); - row.append("; LIMIT_KIND = 0;"); + row.append("; LIMIT_KIND = %d;".formatted(limitKind)); return row.toString(); } } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index 48fb4934b..b021cb556 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -1,32 +1,35 @@ package ru.spcex.clearing.lim.exporter.services; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.function.BiFunction; +import java.util.function.Function; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.registry.Registry; import ru.spcex.clearing.lim.exporter.config.LimFormat; import ru.spcex.clearing.lim.exporter.config.SFTPConfig; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.platform.enumeration.RegistryStatus; +import static ru.spcex.platform.enumeration.RegistryTradingParams.*; import ru.spcex.platform.enumeration.Section; 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.imdg.api.predicate.specific.RegistryCodeSqlBuilder; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.function.Function; - -import static ru.spcex.platform.enumeration.RegistryTradingParams.AM_F; -import static ru.spcex.platform.enumeration.RegistryTradingParams.DM_T; - @Service public class MoneyExporterService extends AbstractExporterService { private final Logger log = LoggerFactory.getLogger(getClass()); + @Value("${export-lim.include-ck}") + private Boolean includeCK; + public MoneyExporterService(SFTPConfig.LimGateway gateway, KafkaSender kafkaSender, ImdgProvider imdgProvider) { @@ -57,23 +60,79 @@ public class MoneyExporterService extends AbstractExporterService { pb.equals("tradingClearingRegistry", registry.getTradingClearingRegistry()), pb.equals("securityId", registry.getSecurityId()) ); + BiFunction prdctOM_T = (registry, date) -> pb.and( + pb.sql(RegistryCodeSqlBuilder.getInstance(OM_T).build()), + pb.in("registryStatus", RegistryStatus.PROC.getKey(), RegistryStatus.MNG.getKey()), + pb.equals("tradingClearingRegistry", registry.getTradingClearingRegistry()), + pb.equals("securityId", registry.getSecurityId()), + pb.equals("settlementDate", date) + ); + BiFunction prdctTM_T = (registry, date) -> pb.and( + pb.sql(RegistryCodeSqlBuilder.getInstance(TM_T).build()), + pb.in("registryStatus", RegistryStatus.PROC.getKey(), RegistryStatus.MNG.getKey()), + pb.equals("tradingClearingRegistry", registry.getTradingClearingRegistry()), + pb.equals("securityId", registry.getSecurityId()), + pb.equals("settlementDate", date) + ); for (Registry registry : registriesA) { if (checkNotBlocked(registry)) { - BigDecimal sumPositive = BigDecimal.ZERO; + BigDecimal dmtSumElement = BigDecimal.ZERO; + BigDecimal omtSumElementToday = BigDecimal.ZERO; + BigDecimal tmtSumElementToday = BigDecimal.ZERO; + BigDecimal omtSumElementTomorrow = BigDecimal.ZERO; + BigDecimal tmtSumElementTomorrow = BigDecimal.ZERO; if (registry.getTradingClearingRegistry() != null && registry.getSecurityId() != null) { - ImdgPredicate query = prdctDM_T.apply(registry); - Collection regsDMT = registryImdg.getCollectionObjectsByPredicate(query); - log.trace("Found {} DM_T registries for registry AM_F {}", regsDMT.size(), query); - sumPositive = sumPositive.add(sum(regsDMT)); + ImdgPredicate dmtQuery = prdctDM_T.apply(registry); + Collection regsDMT = registryImdg.getCollectionObjectsByPredicate(dmtQuery); + log.trace("Found {} DM_T registries for registry AM_F {}", regsDMT.size(), dmtQuery); + dmtSumElement = dmtSumElement.add(sum(regsDMT)).negate(); + + if (includeCK) { + ImdgPredicate queryOM_T_today = prdctOM_T.apply(registry, LocalDate.now()); + Collection regsOMT_today = registryImdg.getCollectionObjectsByPredicate(queryOM_T_today); + log.trace("Found {} OM_T today registries for registry AM_F {}", regsOMT_today.size(), queryOM_T_today); + omtSumElementToday = omtSumElementToday.add(sum(regsOMT_today)).negate(); + + ImdgPredicate queryTM_T_today = prdctTM_T.apply(registry, LocalDate.now()); + Collection regsTMT_today = registryImdg.getCollectionObjectsByPredicate(queryTM_T_today); + log.trace("Found {} TM_T today registries for registry AM_F {}", regsTMT_today.size(), queryTM_T_today); + tmtSumElementToday = tmtSumElementToday.add(sum(regsTMT_today)); + + ImdgPredicate queryOM_T_tomorrow = prdctOM_T.apply(registry, LocalDate.now().plusDays(1)); + Collection regsOMT_tomorrow = registryImdg.getCollectionObjectsByPredicate(queryOM_T_tomorrow); + log.trace("Found {} OM_T tomorrow registries for registry AM_F {}", regsOMT_tomorrow.size(), queryOM_T_tomorrow); + omtSumElementTomorrow = omtSumElementTomorrow.add(sum(regsOMT_tomorrow)).negate(); + + ImdgPredicate queryTM_T_tomorrow = prdctTM_T.apply(registry, LocalDate.now().plusDays(1)); + Collection regsTMT_tomorrow = registryImdg.getCollectionObjectsByPredicate(queryTM_T_tomorrow); + log.trace("Found {} TM_T tomorrow registries for registry AM_F {}", regsTMT_tomorrow.size(), queryTM_T_tomorrow); + tmtSumElementTomorrow = tmtSumElementTomorrow.add(sum(regsTMT_tomorrow)); + } } - limFileRows.add(getRow(registry, sumPositive)); + limFileRows.add( + getRow(registry, + 0, + dmtSumElement, + omtSumElementToday, + tmtSumElementToday) + ); + limFileRows.add( + getRow(registry, + 1, + dmtSumElement, + omtSumElementToday, + tmtSumElementToday, + omtSumElementTomorrow, + tmtSumElementTomorrow) + ); } } log.debug("Successfully completed the formation of rows: {} for export money", limFileRows.size()); return limFileRows; } - public String getRow(Registry registryA, BigDecimal sumPositive) { + public String getRow(Registry registryA, int limitKind, BigDecimal ... sumElements) { + assert limitKind == 0 || limitKind == 1; StringBuilder row = new StringBuilder(); row.append("MONEY: FIRM_ID = "); @@ -88,12 +147,16 @@ public class MoneyExporterService extends AbstractExporterService { row.append(registryA.getTradingClearingRegistry()); row.append("; OPEN_BALANCE = "); - BigDecimal balance = registryA.getBalance() != null ? registryA.getBalance().subtract(sumPositive) : BigDecimal.ZERO; + BigDecimal balance = registryA.getBalance() != null ? registryA.getBalance() : BigDecimal.ZERO; + for (BigDecimal sumElement : sumElements) { + if (sumElement == null) continue; + balance = balance.add(sumElement); + } row.append(LimFormat.toStringD2(balance)); row.append("; OPEN_LIMIT = 0.00"); - row.append("; LIMIT_KIND = 0;"); + row.append("; LIMIT_KIND = %d;".formatted(limitKind)); return row.toString(); } } diff --git a/clearing-parent/lim-exporter/src/main/resources/application.properties b/clearing-parent/lim-exporter/src/main/resources/application.properties index 2c595a4ac..80cc1312f 100644 --- a/clearing-parent/lim-exporter/src/main/resources/application.properties +++ b/clearing-parent/lim-exporter/src/main/resources/application.properties @@ -26,4 +26,6 @@ export-lim-service.kafka-producer.acks=all export-lim-service.kafka-producer.retries=0 export-lim-service.kafka-producer.batch-size=16384 export-lim-service.kafka-producer.linger-ms=1 -export-lim-service.kafka-producer.buffer-memory=33554432 \ No newline at end of file +export-lim-service.kafka-producer.buffer-memory=33554432 + +export-lim.include-ck=true \ No newline at end of file diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/AbstractServiceTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/AbstractServiceTest.java index 2552a3dbe..6a506b448 100644 --- a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/AbstractServiceTest.java +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/AbstractServiceTest.java @@ -1,5 +1,8 @@ package ru.spcex.clearing.lim.exporter; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; import org.apache.kafka.clients.producer.Producer; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; @@ -12,6 +15,8 @@ import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.test.config.ImdgTestConfig; +import static ru.spcex.clearing.test.config.ImdgTestConfig.currentID; +import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId; import ru.spcex.clearing.test.config.KafkaTestConfig; import ru.spcex.platform.enumeration.RegistryDesignation; import ru.spcex.platform.enumeration.RegistryStatus; @@ -19,12 +24,6 @@ import ru.spcex.platform.enumeration.RegistryUnit; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; -import java.math.BigDecimal; -import java.time.LocalDate; - -import static ru.spcex.clearing.test.config.ImdgTestConfig.currentID; -import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId; - @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { ImdgTestConfig.class, @@ -93,6 +92,32 @@ public abstract class AbstractServiceTest { return registry; } + protected Registry getRegistry(String tradingClearingRegistry, + Long securityId, + String registryDesignation, + String registryInstrumentType, + String registryUnit, + LocalDate settlementDate, + BigDecimal balance) { + Registry registry = new Registry(); + registry.setTradingCode("1A12323"); + registry.setBalance(balance); + registry.setTradingClearingRegistry(tradingClearingRegistry); + registry.setRegistryDesignation(registryDesignation); + registry.setRegistryInstrumentType(registryInstrumentType); + registry.setRegistryUnit(registryUnit); + registry.setClearingCode(clearingCode(registry)); + registry.setClearingDate(currentDate); + registry.setSettlementDate(currentDate); + registry.setSecuritySymbol("RUB"); + registry.setSecurityId(securityId); + registry.setTradingClearingRegistryId(securityId); + registry.setCompanyId(securityId); + registry.setRegistryStatus(RegistryStatus.PROC.getKey()); + registry.setSettlementDate(Objects.requireNonNullElseGet(settlementDate, LocalDate::now)); + return registry; + } + protected Registry getRegistryNegativeD(String tradingClearingRegistry, Long securityId, String registryInstrumentType, String registryUnit) { Registry registry = getRegistryD(tradingClearingRegistry, securityId, registryInstrumentType, registryUnit); registry.setBalance(registry.getBalance().negate()); diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java index 85986c05f..fbf7dd270 100644 --- a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java @@ -1,21 +1,21 @@ package ru.spcex.clearing.lim.exporter.services; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Collection; +import javax.annotation.PostConstruct; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.lim.exporter.AbstractServiceTest; +import static ru.spcex.clearing.test.TestUtils.clearAllInImdg; +import ru.spcex.platform.enumeration.RegistryDesignation; import ru.spcex.platform.enumeration.RegistryInstrumentType; import ru.spcex.platform.enumeration.RegistryUnit; import ru.spcex.platform.enumeration.ServiceStatus; -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.util.Collection; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static ru.spcex.clearing.test.TestUtils.clearAllInImdg; - class MoneyExporterServiceTest extends AbstractServiceTest { @PostConstruct public void init() { @@ -33,14 +33,34 @@ class MoneyExporterServiceTest extends AbstractServiceTest { Registry registryD = getRegistryD(tcrFirst, securityIdFirst, RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey()); registryImdg.insert(registryA); registryImdg.insert(registryD); - registryD = getRegistryNegativeD(tcrFirst, securityIdFirst, RegistryInstrumentType.M.getKey(), RegistryUnit.I.getKey()); - registryImdg.insert(registryD); + Registry registryD_negate = getRegistryNegativeD(tcrFirst, securityIdFirst, RegistryInstrumentType.M.getKey(), RegistryUnit.I.getKey()); + registryImdg.insert(registryD_negate); registryA = getRegistryA(tcrSecond, securityIdSecond, RegistryInstrumentType.M.getKey()); registryD = getRegistryD(tcrSecond, securityIdSecond, RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey()); registryImdg.insert(registryA); registryImdg.insert(registryD); - registryD = getRegistryNegativeD(tcrFirst, securityIdFirst, RegistryInstrumentType.M.getKey(), RegistryUnit.I.getKey()); - registryImdg.insert(registryD); + registryD_negate = getRegistryNegativeD(tcrFirst, securityIdFirst, RegistryInstrumentType.M.getKey(), RegistryUnit.I.getKey()); + registryImdg.insert(registryD_negate); + + Registry registryO_1 = getRegistry(tcrFirst, securityIdFirst, RegistryDesignation.O.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), LocalDate.now(), BigDecimal.valueOf(5)); + Registry registryO_2 = getRegistry(tcrFirst, securityIdFirst, RegistryDesignation.O.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), LocalDate.now().plusDays(1), BigDecimal.valueOf(10)); + registryImdg.insert(registryO_1); + registryImdg.insert(registryO_2); + + Registry registryT_1 = getRegistry(tcrFirst, securityIdFirst, RegistryDesignation.T.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), LocalDate.now(), BigDecimal.valueOf(5)); + Registry registryT_2 = getRegistry(tcrFirst, securityIdFirst, RegistryDesignation.T.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), LocalDate.now().plusDays(1), BigDecimal.valueOf(10)); + registryImdg.insert(registryT_1); + registryImdg.insert(registryT_2); + + registryO_1 = getRegistry(tcrSecond, securityIdSecond, RegistryDesignation.O.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), LocalDate.now(), BigDecimal.valueOf(5)); + registryO_2 = getRegistry(tcrSecond, securityIdSecond, RegistryDesignation.O.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), LocalDate.now().plusDays(1), BigDecimal.valueOf(10)); + registryImdg.insert(registryO_1); + registryImdg.insert(registryO_2); + + registryT_1 = getRegistry(tcrSecond, securityIdSecond, RegistryDesignation.T.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), LocalDate.now(), BigDecimal.valueOf(5)); + registryT_2 = getRegistry(tcrSecond, securityIdSecond, RegistryDesignation.T.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), LocalDate.now().plusDays(1), BigDecimal.valueOf(10)); + registryImdg.insert(registryT_1); + registryImdg.insert(registryT_2); MoneyExporterService moneyExporterService = new MoneyExporterService(null, kafkaSender, imdgProvider); @@ -55,7 +75,18 @@ class MoneyExporterServiceTest extends AbstractServiceTest { tradingClearingRegistryImdg.insert(tradingClearingRegistry); limFileRows = moneyExporterService.getLimFileRows(); - assertEquals(2, limFileRows.size()); - assertTrue(limFileRows.contains(moneyExporterService.getRow(registryA, new BigDecimal("5.00")))); + assertEquals(4, limFileRows.size()); + assertTrue(limFileRows.contains(moneyExporterService.getRow(registryA, + 0, + registryD.getBalance().negate(), + registryO_1.getBalance().negate(), + registryT_1.getBalance()))); + assertTrue(limFileRows.contains(moneyExporterService.getRow(registryA, + 1, + registryD.getBalance().negate(), + registryO_1.getBalance().negate(), + registryT_1.getBalance(), + registryO_2.getBalance().negate(), + registryT_2.getBalance()))); } } \ No newline at end of file From 9976273567dd4413bc35998b16b27752785e2c15 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 3 Oct 2024 15:53:30 +0300 Subject: [PATCH 14/25] http://jira.mfd.msk:8088/browse/CLS-772 --- .../backend-api/src/main/resources/meta/meta.json | 13 ++++++++++++- .../backend-api/src/main/resources/meta/meta.xml | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.json b/clearing-parent/backend-api/src/main/resources/meta/meta.json index 3a23e8f41..a23252e06 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.json +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.json @@ -1,6 +1,6 @@ { - "version": "3.15.206.110", + "version": "3.15.206.111", "enums": { @@ -6217,6 +6217,17 @@ "fields": [] } , + {"method":"post", + + "destination": "GREC", + + "group": "Формирование отчетности", + + "name": "Формирование отчетности ЦК", + + "fields": [] + } + , {"method":"post", "destination": "FDFF", 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 819a1d27b..80a5fb0a3 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 @@ - + @@ -1443,6 +1443,8 @@ + + From 70a0316d191549e5a4375b6886adf61305a6fdd3 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 3 Oct 2024 16:42:07 +0300 Subject: [PATCH 15/25] http://jira.mfd.msk:8088/browse/CLS-768 --- .../gatewayapi/config/GatewayApiSettings.java | 9 +++++++++ .../outbound/request/OutboundRequest.java | 12 ++++++++++++ .../gatewayapi/enums/ClearingSystems.java | 15 +++++++++++++++ .../gatewayapi/service/GatewayService.java | 5 +++++ .../src/main/resources/application.properties | 2 ++ 5 files changed, 43 insertions(+) create mode 100644 clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/enums/ClearingSystems.java diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/GatewayApiSettings.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/GatewayApiSettings.java index c3aebf62c..04c9c7e3a 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/GatewayApiSettings.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/config/GatewayApiSettings.java @@ -16,6 +16,7 @@ public class GatewayApiSettings { private KafkaConsumerSettings kafkaConsumer; private InboundServerSettings inboundServer; private InboundExternalServerSettings inboundExternalServer; + private String clearingSystem; public HazelcastClientParams getHazelcast() { return hazelcast; @@ -56,4 +57,12 @@ public class GatewayApiSettings { public void setInboundExternalServer(InboundExternalServerSettings inboundExternalServer) { this.inboundExternalServer = inboundExternalServer; } + + public String getClearingSystem() { + return clearingSystem; + } + + public void setClearingSystem(String clearingSystem) { + this.clearingSystem = clearingSystem; + } } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/request/OutboundRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/request/OutboundRequest.java index f32281507..20357dfc7 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/request/OutboundRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/request/OutboundRequest.java @@ -48,6 +48,10 @@ public class OutboundRequest { ) private String section = ""; + @JsonProperty("clearing_system") + @ApiModelProperty(value = "Клиринговая система", example = "SPVB/LCC") + private String clearingSystem; + // todo Пока так, чтобы отсылал null, в дальнейшем тип надо заменить на используемый в запросе. Возможно с помощью параметризации @JsonProperty("content") @ApiModelProperty( @@ -88,6 +92,14 @@ public class OutboundRequest { this.section = section; } + public String getClearingSystem() { + return clearingSystem; + } + + public void setClearingSystem(String clearingSystem) { + this.clearingSystem = clearingSystem; + } + public Map getContent() { return content; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/enums/ClearingSystems.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/enums/ClearingSystems.java new file mode 100644 index 000000000..b837f256d --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/enums/ClearingSystems.java @@ -0,0 +1,15 @@ +package ru.spcex.clearing.gatewayapi.enums; + +public enum ClearingSystems { + SPVB("SPVB"), + LCC("LCC"); + + private final String name; + ClearingSystems(final String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java index 516347aa8..968b692f7 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java @@ -62,6 +62,7 @@ public class GatewayService extends QueueConsumer implements InitializingBean { private final RestTemplate restTemplate; private final InboundServerSettings inboundServerSettings; private final InboundExternalServerSettings inboundExternalServerSettings; + private final GatewayApiSettings gatewayApiSettings; private final Map> sentAssets; private final Map outboundRequestByUuid; protected final Imdg gatewayResultImdg; @@ -78,6 +79,7 @@ public class GatewayService extends QueueConsumer implements InitializingBean { super(kafkaQueue, kafkaProducer); this.restTemplate = restTemplate; this.userRoleVerification = userRoleVerification; + this.gatewayApiSettings = gatewayApiSettings; this.inboundServerSettings = gatewayApiSettings.getInboundServer(); this.inboundExternalServerSettings = gatewayApiSettings.getInboundExternalServer(); this.sentAssets = sentAssets; @@ -274,6 +276,8 @@ public class GatewayService extends QueueConsumer implements InitializingBean { case KS_REP_FIRM_DETAILS -> paramName = "ks_rep_firm_details"; case KS_SESSION_LIST -> paramName = "ks_session_list"; case KS_COMMISSION_TRADES -> paramName = "ks_commission_trades"; + case KS_REP_LCC_TRADES_REPORT -> paramName = "ks_rep_lcc_trades"; + case KS_REP_LCC_NETTO_REPORT -> paramName = "ks_rep_lcc_netto"; } if (paramName != null) { content.put(paramName, reportPart.getFileName()); @@ -281,6 +285,7 @@ public class GatewayService extends QueueConsumer implements InitializingBean { } private void sendRequest(OutboundRequest request) { + request.setClearingSystem(gatewayApiSettings.getClearingSystem()); if (inboundServerSettings.getAllowedTypes().isEmpty() || inboundServerSettings.getAllowedTypes().contains(request.getType())) { String url = formingInboundUrl(inboundServerSettings.getEnableSsl(), diff --git a/clearing-parent/gateway-api/src/main/resources/application.properties b/clearing-parent/gateway-api/src/main/resources/application.properties index f7041f34d..3b2df0ad6 100644 --- a/clearing-parent/gateway-api/src/main/resources/application.properties +++ b/clearing-parent/gateway-api/src/main/resources/application.properties @@ -25,6 +25,8 @@ gateway-api.kafka-consumer.auto-offset-reset=latest gateway-api.kafka-consumer.linger-ms=1 gateway-api.kafka-consumer.buffer-memory=33554432 +gateway-api.clearing-system=LCC + gateway-api.inbound-server.enable-ssl=false gateway-api.inbound-server.host=10.200.200.183 gateway-api.inbound-server.port=8084 From 27c44fa262fdf02b64acc423f42015c2bdcb119c Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 3 Oct 2024 16:44:01 +0300 Subject: [PATCH 16/25] http://jira.mfd.msk:8088/browse/CLS-768 --- .../ru/spcex/clearing/gatewayapi/service/GatewayService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java index 968b692f7..a2c39eddc 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map; import java.util.UUID; import java.util.regex.Pattern; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.producer.Producer; @@ -285,7 +286,9 @@ public class GatewayService extends QueueConsumer implements InitializingBean { } private void sendRequest(OutboundRequest request) { - request.setClearingSystem(gatewayApiSettings.getClearingSystem()); + String clearingSystem = StringUtils.isNotEmpty(gatewayApiSettings.getClearingSystem()) ? + gatewayApiSettings.getClearingSystem() : "SPVB"; + request.setClearingSystem(clearingSystem); if (inboundServerSettings.getAllowedTypes().isEmpty() || inboundServerSettings.getAllowedTypes().contains(request.getType())) { String url = formingInboundUrl(inboundServerSettings.getEnableSsl(), From fa76a3b1376b81c3747c75e6b2c491129aa96a59 Mon Sep 17 00:00:00 2001 From: akulikov Date: Thu, 3 Oct 2024 16:54:08 +0300 Subject: [PATCH 17/25] http://jira.mfd.msk:8088/browse/CLS-767 fixes --- .../clearing/reports/builders/bean/KSRepLccNettoReport.java | 2 +- .../spcex/clearing/reports/services/ReportServiceTest_KS.java | 2 +- .../expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccNettoReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccNettoReport.java index f04e5c7d1..fa8049601 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccNettoReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccNettoReport.java @@ -39,7 +39,7 @@ public class KSRepLccNettoReport { @CsvNumber(value = "#0.00", writeFormat = "#0.00") private BigDecimal debit; - @CsvBindByName(column = "NETTO_SUM") + @CsvBindByName(column = "CREDIT") @CsvBindByPosition(position = 7) @CsvNumber(value = "#0.00", writeFormat = "#0.00") private BigDecimal credit; diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java index 215edfdc2..888f7c054 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java @@ -1422,7 +1422,7 @@ public class ReportServiceTest_KS { File outFile = outFolder.listFiles()[0]; File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_REP_LCC_TRADES_expected.csv").getFile()); - compareCSVFiles(expectedFile, outFile, Arrays.asList("SESSION_DATE", "TRADE_DATE", "SETTLE_DATE")); + compareCSVFiles(expectedFile, outFile, Arrays.asList("SESSION_DATE", "TRADE_DATE", "SETTLEDATE")); accountImdg.delete(account_11); accountImdg.delete(account_1); diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv index 9be9a2e70..a3650a99f 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_LCC_NETTO_expected.csv @@ -1,4 +1,4 @@ -"FIRM_ID","TKR","CURRENCYID","DATE","NETTO_SUM","DATA_TYPE","DEBIT","NETTO_SUM" +"FIRM_ID","TKR","CURRENCYID","DATE","NETTO_SUM","DATA_TYPE","DEBIT","CREDIT" "AMT_1_TRADING_CODE","TKR_AMT_1","SEC_SYMBOL_AMT_1","2024-10-02","0","FX_OBLIG","0.00","0.00" "AMT_1_TRADING_CODE","TKR_AMT_1","SEC_SYMBOL_AMT_1","2024-10-02","0","PR_NETTOSUM","0.00","0.00" "AMT_1_TRADING_CODE","TKR_AMT_1","SEC_SYMBOL_AMT_1","2024-10-02","10","FX_DEBT","-10.00","0.00" From 7e2b80b3173502ea8bf8e5c1b81251ea3fdffdc0 Mon Sep 17 00:00:00 2001 From: akulikov Date: Thu, 3 Oct 2024 17:00:21 +0300 Subject: [PATCH 18/25] http://jira.mfd.msk:8088/browse/CLS-765 fix (property must be unnecessary) --- .../lim/exporter/services/CurrencyExporterService.java | 7 ++++--- .../lim/exporter/services/MoneyExporterService.java | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java index e911cf33e..0c15a5de3 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java @@ -27,13 +27,14 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder; public class CurrencyExporterService extends AbstractExporterService { private final Logger log = LoggerFactory.getLogger(getClass()); - @Value("${export-lim.include-ck}") - private Boolean includeCK; + private boolean includeCK; public CurrencyExporterService(SFTPConfig.LimGateway gateway, KafkaSender kafkaSender, - ImdgProvider imdgProvider) { + ImdgProvider imdgProvider, + @Value("${export-lim.include-ck}") String includeCKStrValue) { super(gateway, kafkaSender, imdgProvider); + includeCK = Boolean.parseBoolean(includeCKStrValue); } @Override diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index b021cb556..20078fe4f 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -27,13 +27,14 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder; public class MoneyExporterService extends AbstractExporterService { private final Logger log = LoggerFactory.getLogger(getClass()); - @Value("${export-lim.include-ck}") - private Boolean includeCK; + private boolean includeCK; public MoneyExporterService(SFTPConfig.LimGateway gateway, KafkaSender kafkaSender, - ImdgProvider imdgProvider) { + ImdgProvider imdgProvider, + @Value("${export-lim.include-ck}") String includeCKStrValue) { super(gateway, kafkaSender, imdgProvider); + includeCK = Boolean.parseBoolean(includeCKStrValue); } @Override From dccfc37439b438adec5572b5fbb0360d7a7e12e4 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 3 Oct 2024 17:34:45 +0300 Subject: [PATCH 19/25] http://jira.mfd.msk:8088/browse/CLS-760 --- .../controller/queue/misc/JsConfigController.java | 10 ++++++---- .../backendapi/security/WebSecurityConfig.java | 1 + .../backendapi/security/element/JsConfigSettings.java | 10 +++++----- .../src/main/resources/application.properties | 2 +- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/JsConfigController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/JsConfigController.java index 75eff18d7..ba6845b14 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/JsConfigController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/JsConfigController.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.backendapi.controller.queue.misc; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Controller; @@ -14,7 +15,7 @@ import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllRespo import ru.spcex.clearing.backendapi.security.element.JsConfigSettings; @Controller -@RequestMapping("/js-config") +@RequestMapping("/") public class JsConfigController { private final BackendApiSettings backendApiSettings; @@ -24,13 +25,14 @@ public class JsConfigController { @ApiOperation(value = "get js config.") @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) + @RequestMapping(path = "/spcex.config.js", method = RequestMethod.GET) @ResponseBody public Map getJsConfig() { Map result = new HashMap<>(); - result.put(JsConfigSettings.SERVER_TITLE_PARAM_NAME, backendApiSettings.getJsConfig().getServerTitle()); - result.put(JsConfigSettings.IS_CENTRAL_COUNTER_PARTY_PARAM_NAME, backendApiSettings.getJsConfig().getCentralCounterParty()); + String title = new String(backendApiSettings.getJsConfig().getServerTitle().getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); + result.put(JsConfigSettings.SERVER_TITLE_PARAM_NAME, title); + result.put(JsConfigSettings.IS_CENTRAL_COUNTER_PARTY_PARAM_NAME, backendApiSettings.getJsConfig().getCentralCounterPartyEnable()); return result; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java index 2100f9166..72eb6bd93 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java @@ -65,6 +65,7 @@ public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter { .antMatchers("/login").permitAll() .antMatchers("/error").permitAll() .antMatchers("/backend-api-login/**").permitAll() + .antMatchers("/spcex.config.js").permitAll() .anyRequest(); if (securityDisabled) { anyReq.permitAll(); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/element/JsConfigSettings.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/element/JsConfigSettings.java index 0fa975f37..0cb951602 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/element/JsConfigSettings.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/element/JsConfigSettings.java @@ -4,7 +4,7 @@ public class JsConfigSettings { public final static String SERVER_TITLE_PARAM_NAME = "serverTitle"; public final static String IS_CENTRAL_COUNTER_PARTY_PARAM_NAME = "isCentralCounterparty"; private String serverTitle; - private Boolean isCentralCounterParty; + private Boolean centralCounterPartyEnable; public String getServerTitle() { return serverTitle; @@ -14,11 +14,11 @@ public class JsConfigSettings { this.serverTitle = serverTitle; } - public Boolean getCentralCounterParty() { - return isCentralCounterParty; + public Boolean getCentralCounterPartyEnable() { + return centralCounterPartyEnable; } - public void setCentralCounterParty(Boolean centralCounterParty) { - isCentralCounterParty = centralCounterParty; + public void setCentralCounterPartyEnable(Boolean centralCounterPartyEnable) { + this.centralCounterPartyEnable = centralCounterPartyEnable; } } diff --git a/clearing-parent/backend-api/src/main/resources/application.properties b/clearing-parent/backend-api/src/main/resources/application.properties index fc8ba383d..b9c67128a 100644 --- a/clearing-parent/backend-api/src/main/resources/application.properties +++ b/clearing-parent/backend-api/src/main/resources/application.properties @@ -28,7 +28,7 @@ backend-api.kafka-consumer.buffer-memory=33554432 backend-api.security.authorization-disabled=false backend-api.js-config.server-title=?????? 183 -backend-api.js-config.is-central-counter-party=true +backend-api.js-config.central-counter-party-enable=true #access logs, sample #server.tomcat.accesslog.directory=logs #server.tomcat.accesslog.enabled=true From 128b5b681b455150d836d6fa2bbbd49b040dccd9 Mon Sep 17 00:00:00 2001 From: akulikov Date: Thu, 3 Oct 2024 20:20:49 +0300 Subject: [PATCH 20/25] http://jira.mfd.msk:8088/browse/CLS-765 fix (property must be unnecessary) --- .../exporter/services/CurrencyExporterService.java | 2 +- .../exporter/services/MoneyExporterService.java | 2 +- .../src/main/resources/application.properties | 2 +- .../services/AbstractExporterServiceTest.java | 14 ++------------ .../services/MoneyExporterServiceTest.java | 2 +- 5 files changed, 6 insertions(+), 16 deletions(-) diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java index 0c15a5de3..6c382c479 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java @@ -32,7 +32,7 @@ public class CurrencyExporterService extends AbstractExporterService { public CurrencyExporterService(SFTPConfig.LimGateway gateway, KafkaSender kafkaSender, ImdgProvider imdgProvider, - @Value("${export-lim.include-ck}") String includeCKStrValue) { + @Value("${export-lim-service.include-ck}") String includeCKStrValue) { super(gateway, kafkaSender, imdgProvider); includeCK = Boolean.parseBoolean(includeCKStrValue); } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index 20078fe4f..d9ca5535a 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -32,7 +32,7 @@ public class MoneyExporterService extends AbstractExporterService { public MoneyExporterService(SFTPConfig.LimGateway gateway, KafkaSender kafkaSender, ImdgProvider imdgProvider, - @Value("${export-lim.include-ck}") String includeCKStrValue) { + @Value("${export-lim-service.include-ck}") String includeCKStrValue) { super(gateway, kafkaSender, imdgProvider); includeCK = Boolean.parseBoolean(includeCKStrValue); } diff --git a/clearing-parent/lim-exporter/src/main/resources/application.properties b/clearing-parent/lim-exporter/src/main/resources/application.properties index 80cc1312f..c04988f10 100644 --- a/clearing-parent/lim-exporter/src/main/resources/application.properties +++ b/clearing-parent/lim-exporter/src/main/resources/application.properties @@ -28,4 +28,4 @@ export-lim-service.kafka-producer.batch-size=16384 export-lim-service.kafka-producer.linger-ms=1 export-lim-service.kafka-producer.buffer-memory=33554432 -export-lim.include-ck=true \ No newline at end of file +export-lim-service.include-ck=true \ No newline at end of file diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterServiceTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterServiceTest.java index bc857354d..b309ec410 100644 --- a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterServiceTest.java +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterServiceTest.java @@ -1,18 +1,8 @@ package ru.spcex.clearing.lim.exporter.services; +import javax.annotation.PostConstruct; import org.junit.jupiter.api.Test; import ru.spcex.clearing.lim.exporter.AbstractServiceTest; -import ru.spcex.clearing.lim.exporter.config.KafkaConfig; -import ru.spcex.clearing.lim.exporter.config.settings.ExportLimServiceSettings; -import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; -import ru.spcex.clearing.platform.messaging.service.sender.KafkaSenderBuilderImpl; -import ru.spcex.clearing.test.TestUtils; - -import javax.annotation.PostConstruct; - -import java.time.LocalDateTime; - -import static org.junit.jupiter.api.Assertions.*; class AbstractExporterServiceTest extends AbstractServiceTest { @PostConstruct @@ -22,7 +12,7 @@ class AbstractExporterServiceTest extends AbstractServiceTest { @Test void sendLimExportedNotification() { - AbstractExporterService moneyExporterService = new MoneyExporterService(null, kafkaSender, imdgProvider); + AbstractExporterService moneyExporterService = new MoneyExporterService(null, kafkaSender, imdgProvider, "true"); String fileName = "limits_money_202305241832.lim"; moneyExporterService.sendLimExportedNotification(fileName); diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java index fbf7dd270..49034cf85 100644 --- a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java @@ -63,7 +63,7 @@ class MoneyExporterServiceTest extends AbstractServiceTest { registryImdg.insert(registryT_2); - MoneyExporterService moneyExporterService = new MoneyExporterService(null, kafkaSender, imdgProvider); + MoneyExporterService moneyExporterService = new MoneyExporterService(null, kafkaSender, imdgProvider, "true"); Collection limFileRows = moneyExporterService.getLimFileRows(); assertEquals(0, limFileRows.size()); From 592e61ae499f784ae1d625b3ebb207477ca095b6 Mon Sep 17 00:00:00 2001 From: akulikov Date: Thu, 3 Oct 2024 20:28:31 +0300 Subject: [PATCH 21/25] http://jira.mfd.msk:8088/browse/CLS-765 fix (property must be unnecessary) --- .../clearing/lim/exporter/services/CurrencyExporterService.java | 2 +- .../clearing/lim/exporter/services/MoneyExporterService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java index 6c382c479..285e4f8eb 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/CurrencyExporterService.java @@ -32,7 +32,7 @@ public class CurrencyExporterService extends AbstractExporterService { public CurrencyExporterService(SFTPConfig.LimGateway gateway, KafkaSender kafkaSender, ImdgProvider imdgProvider, - @Value("${export-lim-service.include-ck}") String includeCKStrValue) { + @Value("${export-lim-service.include-ck:false}") String includeCKStrValue) { super(gateway, kafkaSender, imdgProvider); includeCK = Boolean.parseBoolean(includeCKStrValue); } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index d9ca5535a..747b89c07 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -32,7 +32,7 @@ public class MoneyExporterService extends AbstractExporterService { public MoneyExporterService(SFTPConfig.LimGateway gateway, KafkaSender kafkaSender, ImdgProvider imdgProvider, - @Value("${export-lim-service.include-ck}") String includeCKStrValue) { + @Value("${export-lim-service.include-ck:false}") String includeCKStrValue) { super(gateway, kafkaSender, imdgProvider); includeCK = Boolean.parseBoolean(includeCKStrValue); } From 58840bdd76cfdd7eb80d685fb2d961547af49486 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Fri, 4 Oct 2024 12:52:54 +0300 Subject: [PATCH 22/25] fix ddl --- clearing-parent/db-scripts/src/main/resources/db/DDL.sql | 4 ++-- .../db-scripts/src/main/resources/db/updateDDL_3.15.sql | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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 48a09c9ee..f61019882 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -5179,7 +5179,7 @@ GRANT ALL PRIVILEGES ON TABLE BLACKLIST_MARKET TO clearing; CREATE TABLE RISK_PARAMETER ( - ID BIGINT, + ID BIGINT PRIMARY KEY, VALUE numeric(72,18), SETTLEMENT_TYPE VARCHAR(4), CURRENCY_PAIR VARCHAR(12), @@ -5201,7 +5201,7 @@ GRANT ALL PRIVILEGES ON TABLE RISK_PARAMETER TO clearing; CREATE TABLE RATES ( - ID BIGINT, + ID BIGINT PRIMARY KEY, VALUE numeric(72, 18), VALUE_DATE date, CURRENCY VARCHAR(4), diff --git a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.15.sql b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.15.sql index a07439856..ce30933ca 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.15.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.15.sql @@ -36,7 +36,7 @@ COMMENT ON COLUMN BANK_ACCOUNT.OKTMO IS ' DROP TABLE IF EXISTS RISK_PARAMETER; CREATE TABLE RISK_PARAMETER ( - ID BIGINT, + ID BIGINT PRIMARY KEY, VALUE numeric(72,18), SETTLEMENT_TYPE VARCHAR(4), CURRENCY_PAIR VARCHAR(12), @@ -59,7 +59,7 @@ GRANT ALL PRIVILEGES ON TABLE RISK_PARAMETER TO clearing; DROP TABLE IF EXISTS RATES; CREATE TABLE RATES ( - ID BIGINT, + ID BIGINT PRIMARY KEY, VALUE numeric(72, 18), VALUE_DATE date, CURRENCY VARCHAR(4), From 402af8f4a08ca7dd6f973d2cf7f650782e864b2a Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Fri, 4 Oct 2024 19:08:46 +0300 Subject: [PATCH 23/25] http://jira.mfd.msk:8088/browse/CLS-774 --- clearing-parent/db-scripts/src/main/resources/db/DDL.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f61019882..9d1dc03b7 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -4565,7 +4565,7 @@ GRANT ALL PRIVILEGES ON TABLE S_DF52 TO clearing; -- sDf53 - ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) DROP TABLE IF EXISTS S_DF53; -CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACC_NAME varchar(30), ACCOUNT varchar(25), DEAL varchar(4), DATE varchar(8), STATUS bigint, RESULT varchar(255), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint, ACC_TYPE bigint); +CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACC_NAME varchar(30), ACCOUNT varchar(25), DEAL varchar(4), DATE varchar(8), STATUS bigint, RESULT varchar(255), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint, ACC_TYPE varchar(3)); COMMENT ON TABLE S_DF53 IS 'ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; COMMENT ON COLUMN S_DF53.ID IS 'Идентификатор записи'; From 57f8f32730b1379f0e16874c95847bcde6be6269 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Fri, 4 Oct 2024 19:11:20 +0300 Subject: [PATCH 24/25] http://jira.mfd.msk:8088/browse/CLS-774 chery pick --- clearing-parent/imdg/pom.xml | 12 + .../spcex/clearing/imdg/AllMapStoreTest.java | 3 +- .../clearing/imdg/DbUpdateCompareTest.java | 155 + .../imdg/config/DbTestConnectionConfig.java | 18 +- .../clearing/imdg/config/ImdgSettings.java | 31 + .../structure/RunnableMapNamesForTesting.java | 18 +- .../imdg/src/test/resources/ddl.sql | 5101 ----------------- 7 files changed, 228 insertions(+), 5110 deletions(-) create mode 100644 clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/DbUpdateCompareTest.java create mode 100644 clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/ImdgSettings.java delete mode 100644 clearing-parent/imdg/src/test/resources/ddl.sql diff --git a/clearing-parent/imdg/pom.xml b/clearing-parent/imdg/pom.xml index c0321681c..a2fdd544a 100644 --- a/clearing-parent/imdg/pom.xml +++ b/clearing-parent/imdg/pom.xml @@ -118,6 +118,18 @@ assertj-core test + + org.testcontainers + testcontainers + 1.20.2 + test + + + org.testcontainers + postgresql + 1.20.2 + test + diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java index 697a6c687..a82d711c4 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java @@ -17,6 +17,7 @@ import org.springframework.jdbc.core.SqlTypeValue; import org.springframework.jdbc.core.StatementCreatorUtils; import org.springframework.lang.NonNull; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit.jupiter.SpringExtension; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanyHistory; @@ -52,7 +53,7 @@ import static ru.spcex.clearing.imdg.utils.DbDataUtils.generatingRandomString; TestConfiguration.class, DbTestConnectionConfig.class}) @ExtendWith(SpringExtension.class) -//@TestPropertySource(properties = "spring.config.location=D:/repo/mfd/clearing/clearing-parent/imdg/src/main/resources") @TestPropertySource(locations = "/AllMapStoreTest.properties") +@TestPropertySource(locations="classpath:application.properties") public class AllMapStoreTest { private static final Long ID = 1000000L; private final Logger log = LoggerFactory.getLogger(this.getClass()); diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/DbUpdateCompareTest.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/DbUpdateCompareTest.java new file mode 100644 index 000000000..d22890241 --- /dev/null +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/DbUpdateCompareTest.java @@ -0,0 +1,155 @@ +package ru.spcex.clearing.imdg; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.mchange.v2.c3p0.ComboPooledDataSource; +import java.beans.PropertyVetoException; +import java.io.File; +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Stream; +import javax.sql.DataSource; +import org.junit.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.io.FileSystemResource; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.testcontainers.containers.PostgreSQLContainer; +import ru.spcex.clearing.imdg.config.ImdgSettings; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = { + ImdgSettings.class +}) +public class DbUpdateCompareTest { + private final Logger log = LoggerFactory.getLogger(this.getClass()); + private static final File DB_SCRIPTS_LOCATION = new File("D:\\Projects\\MFD\\clearing\\clearing-parent\\db-scripts\\src\\main\\resources\\db\\"); + + @Test + public void compareCompleteDDLWithUpdatedDDL() { + // Creating docker containers + try (PostgreSQLContainer dbWithCompleteDDL = new PostgreSQLContainer<>(PostgreSQLContainer.IMAGE); + PostgreSQLContainer dbWithUpdatedDDL = new PostgreSQLContainer<>(PostgreSQLContainer.IMAGE)) { + // Starting docker containers + dbWithCompleteDDL.start(); + dbWithUpdatedDDL.start(); + + // Acquiring JdbcTemplate through data source + JdbcTemplate dbWithCompleteDDLJdbc = new JdbcTemplate(getDataSource(dbWithCompleteDDL)); + JdbcTemplate dbWithUpdatedDDLJdbc = new JdbcTemplate(getDataSource(dbWithUpdatedDDL)); + + // Creating clearing role + dbWithCompleteDDLJdbc.execute("CREATE ROLE clearing"); + dbWithUpdatedDDLJdbc.execute("CREATE ROLE clearing"); + + // Executing DDL.sql (self-sufficient sql script containing all current updates) + new ResourceDatabasePopulator(new FileSystemResource(DB_SCRIPTS_LOCATION.toPath().resolve("DDL.sql").toString())) + .execute(Objects.requireNonNull(dbWithCompleteDDLJdbc.getDataSource())); + + // Executing DDL_first.sql (template sql script for creating base tables) + new ResourceDatabasePopulator(new FileSystemResource(DB_SCRIPTS_LOCATION.toPath().resolve("DDL_first.sql").toString())) + .execute(Objects.requireNonNull(dbWithUpdatedDDLJdbc.getDataSource())); + // Executing all updateDDL_*.sql script in order + getUpdateScripts().forEach(us -> new ResourceDatabasePopulator(new FileSystemResource(us.getPath())) + .execute(Objects.requireNonNull(dbWithUpdatedDDLJdbc.getDataSource()))); + + // Get all table names + String getAllTablesSql = "SELECT table_name FROM information_schema.tables WHERE table_schema='public';"; + List dbWithCompleteDDLTables = dbWithCompleteDDLJdbc.queryForList(getAllTablesSql) + .stream() + .map(t -> t.get("table_name").toString()) + .sorted() + .toList(); + List dbWithUpdatedDDLTables = dbWithUpdatedDDLJdbc.queryForList(getAllTablesSql) + .stream() + .map(t -> t.get("table_name").toString()) + .sorted() + .toList(); + + assertThat(dbWithCompleteDDLTables.size()).isEqualTo(dbWithUpdatedDDLTables.size()); + assertThat(dbWithCompleteDDLTables).usingRecursiveComparison().isEqualTo(dbWithUpdatedDDLTables); + + // Comparing column names, data types, char max length, nullability, default values and comments + dbWithCompleteDDLTables.forEach(t -> { + String sql = """ + SELECT cols.column_name, + (SELECT pg_catalog.col_description(c.oid, cols.ordinal_position::int) + FROM pg_catalog.pg_class c + WHERE c.oid = (SELECT ('"' || cols.table_name || '"')::regclass::oid) + AND c.relname = cols.table_name) AS column_comment, + cols.data_type, + cols.character_maximum_length, + cols.is_nullable + FROM information_schema.columns cols + WHERE cols.table_name = '""" + t + "';"; + + List> firstTableResult = dbWithCompleteDDLJdbc.queryForList(sql) + .stream() + .sorted((Comparator.comparing(o -> ((String) o.get("column_name"))))) + .toList(); + List> secondTableResult = dbWithUpdatedDDLJdbc.queryForList(sql) + .stream() + .sorted((Comparator.comparing(o -> ((String) o.get("column_name"))))) + .toList(); + + assertThat(firstTableResult.size()).as("Checking columns quantity on table %s", t).isEqualTo(secondTableResult.size()); + + for (int i = 0; i < firstTableResult.size(); i++) { + Map first = firstTableResult.get(i); + Map second = secondTableResult.get(i); + + assertThat(first.get("column_name")).as("Checking column's name on table %s", t).isEqualTo(second.get("column_name")); +// assertThat(first.get("column_comment")).as("Checking column's comment on table %s", t).isEqualTo(second.get("column_comment")); + assertThat(first.get("data_type")).as("Checking column's %s data type on table %s", first.get("column_name"), t).isEqualTo(second.get("data_type")); + assertThat(first.get("character_maximum_length")).as("Checking column's %s character maximum length on table %s", first.get("column_name"), t).isEqualTo(second.get("character_maximum_length")); + assertThat(first.get("is_nullable")).as("Checking column's %s nullability on table %s", first.get("column_name"), t).isEqualTo(second.get("is_nullable")); + } + }); + } + } + + private List getUpdateScripts() { + return Stream.of(Objects.requireNonNull(DB_SCRIPTS_LOCATION.listFiles(File::isFile))) + .filter(f -> f.getName().startsWith("updateDDL")) + .sorted((o1, o2) -> versionCompare(o1.getName(), o2.getName())) + .toList(); + } + + private int versionCompare(String o1, String o2) { + List o1Version = Arrays.stream(o1.substring(0, o1.lastIndexOf(".")).split("_")[1].split("\\.")).map(Integer::parseInt).toList(); + List o2Version = Arrays.stream(o2.substring(0, o2.lastIndexOf(".")).split("_")[1].split("\\.")).map(Integer::parseInt).toList(); + + for (int i = 0; i < Math.min(o1Version.size(), o2Version.size()); i++) { + if (!o1Version.get(i).equals(o2Version.get(i))) { + return o1Version.get(i).compareTo(o2Version.get(i)); + } + } + + return Integer.compare(o1Version.size(), o2Version.size()); + } + + private DataSource getDataSource(PostgreSQLContainer container) { + ComboPooledDataSource cpds = new ComboPooledDataSource(); + try { + cpds.setDriverClass(container.getDriverClassName()); + cpds.setJdbcUrl(container.getJdbcUrl()); + cpds.setUser(container.getUsername()); + cpds.setPassword(container.getPassword()); + + cpds.setMaxPoolSize(100); + cpds.setMinPoolSize(50); + cpds.setAcquireIncrement(5); + } catch (PropertyVetoException e) { + throw new RuntimeException(e); + } + + return cpds; + } +} diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/DbTestConnectionConfig.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/DbTestConnectionConfig.java index 0aa13adc3..a2984e455 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/DbTestConnectionConfig.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/DbTestConnectionConfig.java @@ -1,24 +1,28 @@ package ru.spcex.clearing.imdg.config; import com.mchange.v2.c3p0.ComboPooledDataSource; +import java.sql.Connection; +import javax.sql.DataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.init.DatabasePopulator; -import org.springframework.jdbc.datasource.init.DatabasePopulatorUtils; import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; import ru.spcex.clearing.imdg.error.ModuleInitializeException; -import javax.sql.DataSource; -import java.sql.Connection; - @SuppressWarnings("UnnecessaryLocalVariable") @Configuration public class DbTestConnectionConfig { private final Logger log = LoggerFactory.getLogger(this.getClass()); + private final ImdgSettings settings; + + public DbTestConnectionConfig(@Qualifier("imdgSettingsTest") ImdgSettings settings) { + this.settings = settings; + } private DatabasePopulator createDatabasePopulator() { ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(); @@ -30,10 +34,10 @@ public class DbTestConnectionConfig { @Bean public DataSource dataSource() { DataSource result; - String login = "clearing"; - String password = "Aa111111"; + String login = settings.getDatabase().getLogin(); + String password = settings.getDatabase().getPassword(); String logTimeoutPart = ""; - String dbPath = "jdbc:postgresql://10.200.200.133:5432/postgres?currentSchema=clearing_tester"; + String dbPath = settings.getDatabase().getUrl(); int timeoutSec = 30; ComboPooledDataSource cpds = new ComboPooledDataSource(); diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/ImdgSettings.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/ImdgSettings.java new file mode 100644 index 000000000..429388ac0 --- /dev/null +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/ImdgSettings.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; +import org.springframework.test.context.TestPropertySource; +import ru.spcex.clearing.imdg.config.element.DatabaseSettings; +import ru.spcex.clearing.imdg.config.element.HazelcastServerSettings; + +@Component("imdgSettingsTest") +@TestPropertySource(locations="classpath:application.properties") +@ConfigurationProperties("imdg") +public class ImdgSettings { + private HazelcastServerSettings hazelcast; + private DatabaseSettings database; + + public HazelcastServerSettings getHazelcast() { + return hazelcast; + } + + public void setHazelcast(HazelcastServerSettings hazelcast) { + this.hazelcast = hazelcast; + } + + public DatabaseSettings getDatabase() { + return database; + } + + public void setDatabase(DatabaseSettings database) { + this.database = database; + } +} 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 ee3aaf98b..f98ad9746 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 @@ -56,7 +56,23 @@ public class RunnableMapNamesForTesting { //business event // businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_AccountBalanceHistory, AccountBalanceHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_AccountHistory, AccountHistory.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_BankAccountHistory, BankAccountHistory.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_BankAccountHistory, BankAccountHistory.class, usingIgnoringFieldsComparator( + "object.address", + "object.bankAccount", + "object.bankAccount1", + "object.bankAccount2", + "object.bankAddress", + "object.bankAddress1", + "object.bankAddress2", + "object.bankName1", + "object.bankName2", + "object.bankSwiftCode", + "object.budgetClassificationCode", + "object.intermediarySwiftCode2", + "object.name", + "object.oktmo", + "object.personalAccount" + ))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanyHistory, CompanyHistory.class, usingIgnoringFieldsComparator("object.profile.clearingCode", "object.profile.fullName", "object.profile.registrationCode", "object.profile.shortName", "object.profile.tradingCode"))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExecutionDepositHistory, ExecutionDepositHistory.class, diff --git a/clearing-parent/imdg/src/test/resources/ddl.sql b/clearing-parent/imdg/src/test/resources/ddl.sql deleted file mode 100644 index bb0d8a9eb..000000000 --- a/clearing-parent/imdg/src/test/resources/ddl.sql +++ /dev/null @@ -1,5101 +0,0 @@ --- DB version: 3.11.0.81 -/* Dictionaries */ - --- allowed - Справочник признаков допустимости использования объектов -DROP TABLE IF EXISTS ALLOWED_DICTIONARY; -CREATE TABLE ALLOWED_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE ALLOWED_DICTIONARY IS 'Справочник признаков допустимости использования объектов'; - -COMMENT ON COLUMN ALLOWED_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ALLOWED_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN ALLOWED_DICTIONARY.NAME IS 'Признак допустимости'; - -GRANT ALL PRIVILEGES ON TABLE ALLOWED_DICTIONARY TO clearing; - --- workflowStatus - Справочник статусов бизнес-процессов -DROP TABLE IF EXISTS WORKFLOW_STATUS_DICTIONARY; -CREATE TABLE WORKFLOW_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE WORKFLOW_STATUS_DICTIONARY IS 'Справочник статусов бизнес-процессов'; - -COMMENT ON COLUMN WORKFLOW_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN WORKFLOW_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN WORKFLOW_STATUS_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE WORKFLOW_STATUS_DICTIONARY TO clearing; - --- errorCode - Коды ошибок -DROP TABLE IF EXISTS ERROR_CODE_DICTIONARY; -CREATE TABLE ERROR_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE ERROR_CODE_DICTIONARY IS 'Коды ошибок'; - -COMMENT ON COLUMN ERROR_CODE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ERROR_CODE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN ERROR_CODE_DICTIONARY.NAME IS 'Текст ошибки'; - -GRANT ALL PRIVILEGES ON TABLE ERROR_CODE_DICTIONARY TO clearing; - --- countryCode - Справочник кодов стран -DROP TABLE IF EXISTS COUNTRY_CODE_DICTIONARY; -CREATE TABLE COUNTRY_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE COUNTRY_CODE_DICTIONARY IS 'Справочник кодов стран'; - -COMMENT ON COLUMN COUNTRY_CODE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COUNTRY_CODE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN COUNTRY_CODE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE COUNTRY_CODE_DICTIONARY TO clearing; - --- section - Справочник секций -DROP TABLE IF EXISTS SECTION_DICTIONARY; -CREATE TABLE SECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE SECTION_DICTIONARY IS 'Справочник секций'; - -COMMENT ON COLUMN SECTION_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SECTION_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN SECTION_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE SECTION_DICTIONARY TO clearing; - --- userRole - Роли пользователей -DROP TABLE IF EXISTS USER_ROLE_DICTIONARY; -CREATE TABLE USER_ROLE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE USER_ROLE_DICTIONARY IS 'Роли пользователей'; - -COMMENT ON COLUMN USER_ROLE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN USER_ROLE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN USER_ROLE_DICTIONARY.NAME IS 'Роль пользователя'; - -GRANT ALL PRIVILEGES ON TABLE USER_ROLE_DICTIONARY TO clearing; - --- connectionState - Справочник состояний соединений -DROP TABLE IF EXISTS CONNECTION_STATE_DICTIONARY; -CREATE TABLE CONNECTION_STATE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE CONNECTION_STATE_DICTIONARY IS 'Справочник состояний соединений'; - -COMMENT ON COLUMN CONNECTION_STATE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CONNECTION_STATE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CONNECTION_STATE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE CONNECTION_STATE_DICTIONARY TO clearing; - --- legalKind - Справочник видов субъекта -DROP TABLE IF EXISTS LEGAL_KIND_DICTIONARY; -CREATE TABLE LEGAL_KIND_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE LEGAL_KIND_DICTIONARY IS 'Справочник видов субъекта'; - -COMMENT ON COLUMN LEGAL_KIND_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN LEGAL_KIND_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN LEGAL_KIND_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE LEGAL_KIND_DICTIONARY TO clearing; - --- organizationType - Справочник типов организаций -DROP TABLE IF EXISTS ORGANIZATION_TYPE_DICTIONARY; -CREATE TABLE ORGANIZATION_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE ORGANIZATION_TYPE_DICTIONARY IS 'Справочник типов организаций'; - -COMMENT ON COLUMN ORGANIZATION_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ORGANIZATION_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN ORGANIZATION_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE ORGANIZATION_TYPE_DICTIONARY TO clearing; - --- corporationSoleType - Справочник единоличных исполнительных органов -DROP TABLE IF EXISTS CORPORATION_SOLE_TYPE_DICTIONARY; -CREATE TABLE CORPORATION_SOLE_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE CORPORATION_SOLE_TYPE_DICTIONARY IS 'Справочник единоличных исполнительных органов'; - -COMMENT ON COLUMN CORPORATION_SOLE_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CORPORATION_SOLE_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CORPORATION_SOLE_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE CORPORATION_SOLE_TYPE_DICTIONARY TO clearing; - --- clearingCategory - Справочник категорий участника клиринга -DROP TABLE IF EXISTS CLEARING_CATEGORY_DICTIONARY; -CREATE TABLE CLEARING_CATEGORY_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE CLEARING_CATEGORY_DICTIONARY IS 'Справочник категорий участника клиринга'; - -COMMENT ON COLUMN CLEARING_CATEGORY_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CLEARING_CATEGORY_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CLEARING_CATEGORY_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE CLEARING_CATEGORY_DICTIONARY TO clearing; - --- contactType - Справочник типов контактов компании -DROP TABLE IF EXISTS CONTACT_TYPE_DICTIONARY; -CREATE TABLE CONTACT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE CONTACT_TYPE_DICTIONARY IS 'Справочник типов контактов компании'; - -COMMENT ON COLUMN CONTACT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CONTACT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CONTACT_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE CONTACT_TYPE_DICTIONARY TO clearing; - --- documentType - Справочник типов документов -DROP TABLE IF EXISTS DOCUMENT_TYPE_DICTIONARY; -CREATE TABLE DOCUMENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE DOCUMENT_TYPE_DICTIONARY IS 'Справочник типов документов'; - -COMMENT ON COLUMN DOCUMENT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN DOCUMENT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN DOCUMENT_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE DOCUMENT_TYPE_DICTIONARY TO clearing; - --- companySymbol - Справочник имен компании -DROP TABLE IF EXISTS COMPANY_SYMBOL_DICTIONARY; -CREATE TABLE COMPANY_SYMBOL_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255), SHORTNAME varchar(255)); -COMMENT ON TABLE COMPANY_SYMBOL_DICTIONARY IS 'Справочник имен компании'; - -COMMENT ON COLUMN COMPANY_SYMBOL_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COMPANY_SYMBOL_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN COMPANY_SYMBOL_DICTIONARY.NAME IS 'Наименование'; - -COMMENT ON COLUMN COMPANY_SYMBOL_DICTIONARY.SHORTNAME IS 'Краткое наименование'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY_SYMBOL_DICTIONARY TO clearing; - --- companyRole - Справочник ролей компаний -DROP TABLE IF EXISTS COMPANY_ROLE_DICTIONARY; -CREATE TABLE COMPANY_ROLE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE COMPANY_ROLE_DICTIONARY IS 'Справочник ролей компаний'; - -COMMENT ON COLUMN COMPANY_ROLE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COMPANY_ROLE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN COMPANY_ROLE_DICTIONARY.NAME IS 'Роль Участника'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY_ROLE_DICTIONARY TO clearing; - --- currencyCode - Справочник кодов валют -DROP TABLE IF EXISTS CURRENCY_CODE_DICTIONARY; -CREATE TABLE CURRENCY_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE CURRENCY_CODE_DICTIONARY IS 'Справочник кодов валют'; - -COMMENT ON COLUMN CURRENCY_CODE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CURRENCY_CODE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CURRENCY_CODE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE CURRENCY_CODE_DICTIONARY TO clearing; - --- instrumentType - Справочник типов инструментов -DROP TABLE IF EXISTS INSTRUMENT_TYPE_DICTIONARY; -CREATE TABLE INSTRUMENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE INSTRUMENT_TYPE_DICTIONARY IS 'Справочник типов инструментов'; - -COMMENT ON COLUMN INSTRUMENT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN INSTRUMENT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN INSTRUMENT_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE INSTRUMENT_TYPE_DICTIONARY TO clearing; - --- termType - Справочник видов инструментов Денежного рынка -DROP TABLE IF EXISTS TERM_TYPE_DICTIONARY; -CREATE TABLE TERM_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE TERM_TYPE_DICTIONARY IS 'Справочник видов инструментов Денежного рынка'; - -COMMENT ON COLUMN TERM_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TERM_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN TERM_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE TERM_TYPE_DICTIONARY TO clearing; - --- shareType - Справочник типов акций -DROP TABLE IF EXISTS SHARE_TYPE_DICTIONARY; -CREATE TABLE SHARE_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE SHARE_TYPE_DICTIONARY IS 'Справочник типов акций'; - -COMMENT ON COLUMN SHARE_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SHARE_TYPE_DICTIONARY.CODE IS 'Код акции'; - -COMMENT ON COLUMN SHARE_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE SHARE_TYPE_DICTIONARY TO clearing; - --- bondType - Справочник типов облигаций -DROP TABLE IF EXISTS BOND_TYPE_DICTIONARY; -CREATE TABLE BOND_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE BOND_TYPE_DICTIONARY IS 'Справочник типов облигаций'; - -COMMENT ON COLUMN BOND_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN BOND_TYPE_DICTIONARY.CODE IS 'Код облигации'; - -COMMENT ON COLUMN BOND_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE BOND_TYPE_DICTIONARY TO clearing; - --- tradingClearingRegistryType - Справочник типов торгово-клиринговых регистров -DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY; -CREATE TABLE TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY IS 'Справочник типов торгово-клиринговых регистров'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY TO clearing; - --- tradingClearingRegistryLevel - Справочник уровней торгово-клиринговых регистров -DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY; -CREATE TABLE TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY IS 'Справочник уровней торгово-клиринговых регистров'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY TO clearing; - --- tradingClearingRegistryPurpose - Справочник областей применения -DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY; -CREATE TABLE TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY IS 'Справочник областей применения'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY TO clearing; - --- service - Справочник услуг -DROP TABLE IF EXISTS SERVICE_DICTIONARY; -CREATE TABLE SERVICE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE SERVICE_DICTIONARY IS 'Справочник услуг'; - -COMMENT ON COLUMN SERVICE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SERVICE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN SERVICE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE SERVICE_DICTIONARY TO clearing; - --- serviceStatus - Справочник статусов услуг -DROP TABLE IF EXISTS SERVICE_STATUS_DICTIONARY; -CREATE TABLE SERVICE_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE SERVICE_STATUS_DICTIONARY IS 'Справочник статусов услуг'; - -COMMENT ON COLUMN SERVICE_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SERVICE_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN SERVICE_STATUS_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE SERVICE_STATUS_DICTIONARY TO clearing; - --- serviceProduct - Справочник продуктов для услуг -DROP TABLE IF EXISTS SERVICE_PRODUCT_DICTIONARY; -CREATE TABLE SERVICE_PRODUCT_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE SERVICE_PRODUCT_DICTIONARY IS 'Справочник продуктов для услуг'; - -COMMENT ON COLUMN SERVICE_PRODUCT_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SERVICE_PRODUCT_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN SERVICE_PRODUCT_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE SERVICE_PRODUCT_DICTIONARY TO clearing; - --- registryDesignation - Справочник символов регистров - назначения -DROP TABLE IF EXISTS REGISTRY_DESIGNATION_DICTIONARY; -CREATE TABLE REGISTRY_DESIGNATION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE REGISTRY_DESIGNATION_DICTIONARY IS 'Справочник символов регистров - назначения'; - -COMMENT ON COLUMN REGISTRY_DESIGNATION_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REGISTRY_DESIGNATION_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN REGISTRY_DESIGNATION_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE REGISTRY_DESIGNATION_DICTIONARY TO clearing; - --- registryInstrumentType - Справочник символов регистров - инструменты -DROP TABLE IF EXISTS REGISTRY_INSTRUMENT_TYPE_DICTIONARY; -CREATE TABLE REGISTRY_INSTRUMENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE REGISTRY_INSTRUMENT_TYPE_DICTIONARY IS 'Справочник символов регистров - инструменты'; - -COMMENT ON COLUMN REGISTRY_INSTRUMENT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REGISTRY_INSTRUMENT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN REGISTRY_INSTRUMENT_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE REGISTRY_INSTRUMENT_TYPE_DICTIONARY TO clearing; - --- registryCapacity - Справочник символов регистров - источники средств -DROP TABLE IF EXISTS REGISTRY_CAPACITY_DICTIONARY; -CREATE TABLE REGISTRY_CAPACITY_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE REGISTRY_CAPACITY_DICTIONARY IS 'Справочник символов регистров - источники средств'; - -COMMENT ON COLUMN REGISTRY_CAPACITY_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REGISTRY_CAPACITY_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN REGISTRY_CAPACITY_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE REGISTRY_CAPACITY_DICTIONARY TO clearing; - --- registryUnit - Справочник символов регистров - части регистров -DROP TABLE IF EXISTS REGISTRY_UNIT_DICTIONARY; -CREATE TABLE REGISTRY_UNIT_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE REGISTRY_UNIT_DICTIONARY IS 'Справочник символов регистров - части регистров'; - -COMMENT ON COLUMN REGISTRY_UNIT_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REGISTRY_UNIT_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN REGISTRY_UNIT_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE REGISTRY_UNIT_DICTIONARY TO clearing; - --- registryCode - Справочник кодов регистров -DROP TABLE IF EXISTS REGISTRY_CODE_DICTIONARY; -CREATE TABLE REGISTRY_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE REGISTRY_CODE_DICTIONARY IS 'Справочник кодов регистров'; - -COMMENT ON COLUMN REGISTRY_CODE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REGISTRY_CODE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN REGISTRY_CODE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE REGISTRY_CODE_DICTIONARY TO clearing; - --- registryStatus - Справочник статусов регистров -DROP TABLE IF EXISTS REGISTRY_STATUS_DICTIONARY; -CREATE TABLE REGISTRY_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE REGISTRY_STATUS_DICTIONARY IS 'Справочник статусов регистров'; - -COMMENT ON COLUMN REGISTRY_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REGISTRY_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN REGISTRY_STATUS_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE REGISTRY_STATUS_DICTIONARY TO clearing; - --- balanceDimension - Справочник размерностей балансов -DROP TABLE IF EXISTS BALANCE_DIMENSION_DICTIONARY; -CREATE TABLE BALANCE_DIMENSION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE BALANCE_DIMENSION_DICTIONARY IS 'Справочник размерностей балансов'; - -COMMENT ON COLUMN BALANCE_DIMENSION_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN BALANCE_DIMENSION_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN BALANCE_DIMENSION_DICTIONARY.NAME IS 'Размерность баланса'; - -GRANT ALL PRIVILEGES ON TABLE BALANCE_DIMENSION_DICTIONARY TO clearing; - --- accountType - Справочник типов счетов -DROP TABLE IF EXISTS ACCOUNT_TYPE_DICTIONARY; -CREATE TABLE ACCOUNT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE ACCOUNT_TYPE_DICTIONARY IS 'Справочник типов счетов'; - -COMMENT ON COLUMN ACCOUNT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ACCOUNT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN ACCOUNT_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE ACCOUNT_TYPE_DICTIONARY TO clearing; - --- depoAccountType - Справочник типов депозитарных счетов -DROP TABLE IF EXISTS DEPO_ACCOUNT_TYPE_DICTIONARY; -CREATE TABLE DEPO_ACCOUNT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE DEPO_ACCOUNT_TYPE_DICTIONARY IS 'Справочник типов депозитарных счетов'; - -COMMENT ON COLUMN DEPO_ACCOUNT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN DEPO_ACCOUNT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN DEPO_ACCOUNT_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE DEPO_ACCOUNT_TYPE_DICTIONARY TO clearing; - --- clearingAccountType - Справочник типов клиринговых счетов -DROP TABLE IF EXISTS CLEARING_ACCOUNT_TYPE_DICTIONARY; -CREATE TABLE CLEARING_ACCOUNT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE CLEARING_ACCOUNT_TYPE_DICTIONARY IS 'Справочник типов клиринговых счетов'; - -COMMENT ON COLUMN CLEARING_ACCOUNT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CLEARING_ACCOUNT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CLEARING_ACCOUNT_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE CLEARING_ACCOUNT_TYPE_DICTIONARY TO clearing; - --- task - Справочник задач -DROP TABLE IF EXISTS TASK_DICTIONARY; -CREATE TABLE TASK_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(150)); -COMMENT ON TABLE TASK_DICTIONARY IS 'Справочник задач'; - -COMMENT ON COLUMN TASK_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TASK_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN TASK_DICTIONARY.NAME IS 'Задача'; - -GRANT ALL PRIVILEGES ON TABLE TASK_DICTIONARY TO clearing; - --- taskStatus - Справочник статусов задач -DROP TABLE IF EXISTS TASK_STATUS_DICTIONARY; -CREATE TABLE TASK_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE TASK_STATUS_DICTIONARY IS 'Справочник статусов задач'; - -COMMENT ON COLUMN TASK_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TASK_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN TASK_STATUS_DICTIONARY.NAME IS 'Статус задачи'; - -GRANT ALL PRIVILEGES ON TABLE TASK_STATUS_DICTIONARY TO clearing; - --- dayStatus - Справочник статусов дней -DROP TABLE IF EXISTS DAY_STATUS_DICTIONARY; -CREATE TABLE DAY_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE DAY_STATUS_DICTIONARY IS 'Справочник статусов дней'; - -COMMENT ON COLUMN DAY_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN DAY_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN DAY_STATUS_DICTIONARY.NAME IS 'Статус дня'; - -GRANT ALL PRIVILEGES ON TABLE DAY_STATUS_DICTIONARY TO clearing; - --- parent - Справочник источников -DROP TABLE IF EXISTS PARENT_DICTIONARY; -CREATE TABLE PARENT_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE PARENT_DICTIONARY IS 'Справочник источников'; - -COMMENT ON COLUMN PARENT_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN PARENT_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN PARENT_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE PARENT_DICTIONARY TO clearing; - --- sessionStatus - Справочник статусов клиринговых сессий -DROP TABLE IF EXISTS SESSION_STATUS_DICTIONARY; -CREATE TABLE SESSION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE SESSION_STATUS_DICTIONARY IS 'Справочник статусов клиринговых сессий'; - -COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE SESSION_STATUS_DICTIONARY TO clearing; - --- sessionType - Справочник типов клиринговых сессий -DROP TABLE IF EXISTS SESSION_TYPE_DICTIONARY; -CREATE TABLE SESSION_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE SESSION_TYPE_DICTIONARY IS 'Справочник типов клиринговых сессий'; - -COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE SESSION_TYPE_DICTIONARY TO clearing; - --- moneyFlowSide - Справочник направлений денежного рынка -DROP TABLE IF EXISTS MONEY_FLOW_SIDE_DICTIONARY; -CREATE TABLE MONEY_FLOW_SIDE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE MONEY_FLOW_SIDE_DICTIONARY IS 'Справочник направлений денежного рынка'; - -COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.NAME IS 'Значение'; - -GRANT ALL PRIVILEGES ON TABLE MONEY_FLOW_SIDE_DICTIONARY TO clearing; - --- side - Справочник направлений -DROP TABLE IF EXISTS SIDE_DICTIONARY; -CREATE TABLE SIDE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE SIDE_DICTIONARY IS 'Справочник направлений'; - -COMMENT ON COLUMN SIDE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN SIDE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN SIDE_DICTIONARY.NAME IS 'Значение'; - -GRANT ALL PRIVILEGES ON TABLE SIDE_DICTIONARY TO clearing; - --- marketCode - Справочник кодов рынков -DROP TABLE IF EXISTS MARKET_CODE_DICTIONARY; -CREATE TABLE MARKET_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE MARKET_CODE_DICTIONARY IS 'Справочник кодов рынков'; - -COMMENT ON COLUMN MARKET_CODE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MARKET_CODE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MARKET_CODE_DICTIONARY.NAME IS 'Значение'; - -GRANT ALL PRIVILEGES ON TABLE MARKET_CODE_DICTIONARY TO clearing; - --- 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 MARKET_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN MARKET_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MARKET_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE MARKET_TYPE_DICTIONARY TO clearing; - --- statementType - Справочник типов поступлений/списаний от ПРЦ -DROP TABLE IF EXISTS STATEMENT_TYPE_DICTIONARY; -CREATE TABLE STATEMENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE STATEMENT_TYPE_DICTIONARY IS 'Справочник типов поступлений/списаний от ПРЦ'; - -COMMENT ON COLUMN STATEMENT_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN STATEMENT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN STATEMENT_TYPE_DICTIONARY.NAME IS 'Значение'; - -GRANT ALL PRIVILEGES ON TABLE STATEMENT_TYPE_DICTIONARY TO clearing; - --- operationType - Справочник типов операций -DROP TABLE IF EXISTS OPERATION_TYPE_DICTIONARY; -CREATE TABLE OPERATION_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE OPERATION_TYPE_DICTIONARY IS 'Справочник типов операций'; - -COMMENT ON COLUMN OPERATION_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN OPERATION_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN OPERATION_TYPE_DICTIONARY.NAME IS 'Значение'; - -GRANT ALL PRIVILEGES ON TABLE OPERATION_TYPE_DICTIONARY TO clearing; - --- operationStatus - Справочник статусов операций -DROP TABLE IF EXISTS OPERATION_STATUS_DICTIONARY; -CREATE TABLE OPERATION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE OPERATION_STATUS_DICTIONARY IS 'Справочник статусов операций'; - -COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.NAME IS 'Значение'; - -GRANT ALL PRIVILEGES ON TABLE OPERATION_STATUS_DICTIONARY TO clearing; - --- 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)); -COMMENT ON TABLE IN_OUT_S_DF_TYPE_DICTIONARY IS 'Справочник типов входящих и исходящих записей'; - -COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.NAME IS 'Тип записи'; - -GRANT ALL PRIVILEGES ON TABLE IN_OUT_S_DF_TYPE_DICTIONARY TO clearing; - --- 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 'Значение'; - -GRANT ALL PRIVILEGES ON TABLE IN_OUT_DIRECTION_DICTIONARY TO clearing; - --- 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 'Статус транзакции'; - -GRANT ALL PRIVILEGES ON TABLE TRANSACTION_STATUS_DICTIONARY TO clearing; - --- objectType - Справочник типов объектов -DROP TABLE IF EXISTS OBJECT_TYPE_DICTIONARY; -CREATE TABLE OBJECT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE OBJECT_TYPE_DICTIONARY IS 'Справочник типов объектов'; - -COMMENT ON COLUMN OBJECT_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN OBJECT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN OBJECT_TYPE_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE OBJECT_TYPE_DICTIONARY TO clearing; - --- notificationStatus - Справочник статусов сообщений -DROP TABLE IF EXISTS NOTIFICATION_STATUS_DICTIONARY; -CREATE TABLE NOTIFICATION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE NOTIFICATION_STATUS_DICTIONARY IS 'Справочник статусов сообщений'; - -COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.NAME IS 'Наименование'; - -GRANT ALL PRIVILEGES ON TABLE NOTIFICATION_STATUS_DICTIONARY TO clearing; - --- 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 'Тип записи'; - -GRANT ALL PRIVILEGES ON TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY TO clearing; - --- 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 'Тип записи'; - -GRANT ALL PRIVILEGES ON TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY TO clearing; - --- 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 'Статус сообщения'; - -GRANT ALL PRIVILEGES ON TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY TO clearing; - --- majorSign - Справочник типов конвертируемости валюты -DROP TABLE IF EXISTS MAJOR_SIGN_DICTIONARY; -CREATE TABLE MAJOR_SIGN_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE MAJOR_SIGN_DICTIONARY IS 'Справочник типов конвертируемости валюты'; - -COMMENT ON COLUMN MAJOR_SIGN_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MAJOR_SIGN_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MAJOR_SIGN_DICTIONARY.NAME IS 'Наименование типа'; - -GRANT ALL PRIVILEGES ON TABLE MAJOR_SIGN_DICTIONARY TO clearing; - --- 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 'Способ доставки'; - -GRANT ALL PRIVILEGES ON TABLE COURIER_TYPE_DICTIONARY TO clearing; - --- currencySettlementType - Справочник типов расчетов валютных пар -DROP TABLE IF EXISTS CURRENCY_SETTLEMENT_TYPE_DICTIONARY; -CREATE TABLE CURRENCY_SETTLEMENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE CURRENCY_SETTLEMENT_TYPE_DICTIONARY IS 'Справочник типов расчетов валютных пар'; - -COMMENT ON COLUMN CURRENCY_SETTLEMENT_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN CURRENCY_SETTLEMENT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CURRENCY_SETTLEMENT_TYPE_DICTIONARY.NAME IS 'Тип расчета'; - -GRANT ALL PRIVILEGES ON TABLE CURRENCY_SETTLEMENT_TYPE_DICTIONARY TO clearing; - --- currencyPair - Справочник валютных пар -DROP TABLE IF EXISTS CURRENCY_PAIR_DICTIONARY; -CREATE TABLE CURRENCY_PAIR_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(25), BASE_CURRENCY_ID varchar(4), QUOTE_CURRENCY_ID varchar(4), MAJOR_SIGN varchar(4)); -COMMENT ON TABLE CURRENCY_PAIR_DICTIONARY IS 'Справочник валютных пар'; - -COMMENT ON COLUMN CURRENCY_PAIR_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN CURRENCY_PAIR_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CURRENCY_PAIR_DICTIONARY.BASE_CURRENCY_ID IS 'Код валюты лота (linked to currencyCode)'; - -COMMENT ON COLUMN CURRENCY_PAIR_DICTIONARY.QUOTE_CURRENCY_ID IS 'Код сопряженной валюты (linked to currencyCode)'; - -COMMENT ON COLUMN CURRENCY_PAIR_DICTIONARY.MAJOR_SIGN IS 'Код признака конвертируемости валюты (linked to majorSign)'; - -GRANT ALL PRIVILEGES ON TABLE CURRENCY_PAIR_DICTIONARY TO clearing; - --- gatewayResultStatus - Справочник статусов обработки -DROP TABLE IF EXISTS GATEWAY_RESULT_STATUS_DICTIONARY; -CREATE TABLE GATEWAY_RESULT_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE GATEWAY_RESULT_STATUS_DICTIONARY IS 'Справочник статусов обработки'; - -COMMENT ON COLUMN GATEWAY_RESULT_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN GATEWAY_RESULT_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN GATEWAY_RESULT_STATUS_DICTIONARY.NAME IS 'Статус обработки'; - -GRANT ALL PRIVILEGES ON TABLE GATEWAY_RESULT_STATUS_DICTIONARY TO clearing; - --- 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 'Статус обработки'; - -GRANT ALL PRIVILEGES ON TABLE RESULT_STATUS_DICTIONARY TO clearing; - --- 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 COLUMN EVENT_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.NAME IS 'Тип события'; - -GRANT ALL PRIVILEGES ON TABLE EVENT_TYPE_DICTIONARY TO clearing; - --- priority - Справочник приоритетов отображения -DROP TABLE IF EXISTS PRIORITY_DICTIONARY; -CREATE TABLE PRIORITY_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE PRIORITY_DICTIONARY IS 'Справочник приоритетов отображения'; - -COMMENT ON COLUMN PRIORITY_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN PRIORITY_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN PRIORITY_DICTIONARY.NAME IS 'Приоритет отображения'; - -GRANT ALL PRIVILEGES ON TABLE PRIORITY_DICTIONARY TO clearing; - -/* Business objects */ - --- dbVersion - Версия базы данных -DROP TABLE IF EXISTS DB_VERSION; -CREATE TABLE DB_VERSION(ID bigint PRIMARY KEY, VERSION varchar(50)); -COMMENT ON TABLE DB_VERSION IS 'Версия базы данных'; - -COMMENT ON COLUMN DB_VERSION.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN DB_VERSION.VERSION IS 'Версия базы данных, привязанная к релизу'; - -GRANT ALL PRIVILEGES ON TABLE DB_VERSION TO clearing; - --- userCls - Пользователь -DROP TABLE IF EXISTS USER_CLS; -CREATE TABLE USER_CLS(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, IDENTIFIER varchar(250), NAME varchar(250), FIRST_NAME varchar(250), LAST_NAME varchar(250), MIDDLE_NAME varchar(250), EMAIL varchar(250)); -COMMENT ON TABLE USER_CLS IS 'Пользователь'; - -COMMENT ON COLUMN USER_CLS.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN USER_CLS.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN USER_CLS.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN USER_CLS.IDENTIFIER IS 'Внешний идентификатор'; - -COMMENT ON COLUMN USER_CLS.NAME IS 'Имя и фамилия пользователя'; - -COMMENT ON COLUMN USER_CLS.FIRST_NAME IS 'Имя пользователя'; - -COMMENT ON COLUMN USER_CLS.LAST_NAME IS 'Фамилия пользователя'; - -COMMENT ON COLUMN USER_CLS.MIDDLE_NAME IS 'Отчество пользователя'; - -COMMENT ON COLUMN USER_CLS.EMAIL IS 'Email пользователя'; - -GRANT ALL PRIVILEGES ON TABLE USER_CLS TO clearing; - - --- History log of userCls - Пользователь -DROP TABLE IF EXISTS USER_CLS_HISTORY; -CREATE TABLE USER_CLS_HISTORY(USER_CLS_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, IDENTIFIER varchar(250), NAME varchar(250), FIRST_NAME varchar(250), LAST_NAME varchar(250), MIDDLE_NAME varchar(250), EMAIL varchar(250)); -COMMENT ON TABLE USER_CLS_HISTORY IS 'История изменений таблицы userCls'; -COMMENT ON COLUMN USER_CLS_HISTORY.USER_CLS_ID IS 'Идентификатор записи в таблице USER_CLS'; -COMMENT ON COLUMN USER_CLS_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN USER_CLS_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN USER_CLS_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN USER_CLS_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN USER_CLS_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN USER_CLS_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN USER_CLS_HISTORY.IDENTIFIER IS 'Внешний идентификатор'; - -COMMENT ON COLUMN USER_CLS_HISTORY.NAME IS 'Имя и фамилия пользователя'; - -COMMENT ON COLUMN USER_CLS_HISTORY.FIRST_NAME IS 'Имя пользователя'; - -COMMENT ON COLUMN USER_CLS_HISTORY.LAST_NAME IS 'Фамилия пользователя'; - -COMMENT ON COLUMN USER_CLS_HISTORY.MIDDLE_NAME IS 'Отчество пользователя'; - -COMMENT ON COLUMN USER_CLS_HISTORY.EMAIL IS 'Email пользователя'; - -GRANT ALL PRIVILEGES ON TABLE USER_CLS_HISTORY TO clearing; - --- userRoleSession - Набор ролей -DROP TABLE IF EXISTS USER_ROLE_SESSION; -CREATE TABLE USER_ROLE_SESSION(ID bigint PRIMARY KEY, USER_ID bigint, USER_ROLE varchar(4), COMPANY_ID bigint, STATUS varchar(4)); -COMMENT ON TABLE USER_ROLE_SESSION IS 'Набор ролей'; - -COMMENT ON COLUMN USER_ROLE_SESSION.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN USER_ROLE_SESSION.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; - -COMMENT ON COLUMN USER_ROLE_SESSION.USER_ROLE IS 'Код роли пользователя (linked to userRole)'; - -COMMENT ON COLUMN USER_ROLE_SESSION.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN USER_ROLE_SESSION.STATUS IS 'Код статуса (linked to workflowStatus)'; - -GRANT ALL PRIVILEGES ON TABLE USER_ROLE_SESSION TO clearing; - --- userSettings - Настройки пользователя -DROP TABLE IF EXISTS USER_SETTINGS; -CREATE TABLE USER_SETTINGS(ID bigint PRIMARY KEY, USER_ID bigint, VERSION varchar(50), JSON varchar(200000)); -COMMENT ON TABLE USER_SETTINGS IS 'Настройки пользователя'; - -COMMENT ON COLUMN USER_SETTINGS.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN USER_SETTINGS.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; - -COMMENT ON COLUMN USER_SETTINGS.VERSION IS 'Версия настроек пользователя'; - -COMMENT ON COLUMN USER_SETTINGS.JSON IS 'Данные конфигурации'; - -GRANT ALL PRIVILEGES ON TABLE USER_SETTINGS TO clearing; - --- userConnect - Активность пользователей в системе -DROP TABLE IF EXISTS USER_CONNECT; -CREATE TABLE USER_CONNECT(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, USER_ID bigint, CONNECTION_TIME timestamp, DISCONNECTION_TIME timestamp, SERVER_IP varchar(250), CLIENT_IP varchar(250), CONNECTION_STATE varchar(4), CLEARING_DATE date, ERROR_CODE_ID bigint, ERROR_TEXT_ID bigint); -COMMENT ON TABLE USER_CONNECT IS 'Активность пользователей в системе'; - -COMMENT ON COLUMN USER_CONNECT.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN USER_CONNECT.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN USER_CONNECT.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN USER_CONNECT.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; - -COMMENT ON COLUMN USER_CONNECT.CONNECTION_TIME IS 'Последнее соединение'; - -COMMENT ON COLUMN USER_CONNECT.DISCONNECTION_TIME IS 'Разрыв соединения'; - -COMMENT ON COLUMN USER_CONNECT.SERVER_IP IS 'IP адрес сервера'; - -COMMENT ON COLUMN USER_CONNECT.CLIENT_IP IS 'IP адрес клиента'; - -COMMENT ON COLUMN USER_CONNECT.CONNECTION_STATE IS 'Код статуса соединения (linked to connectionState)'; - -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_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; - -GRANT ALL PRIVILEGES ON TABLE USER_CONNECT TO clearing; - - --- History log of userConnect - Активность пользователей в системе -DROP TABLE IF EXISTS USER_CONNECT_HISTORY; -CREATE TABLE USER_CONNECT_HISTORY(USER_CONNECT_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, USER_ID bigint, CONNECTION_TIME timestamp, DISCONNECTION_TIME timestamp, SERVER_IP varchar(250), CLIENT_IP varchar(250), CONNECTION_STATE varchar(4), CLEARING_DATE date, ERROR_CODE_ID bigint, ERROR_TEXT_ID bigint); -COMMENT ON TABLE USER_CONNECT_HISTORY IS 'История изменений таблицы userConnect'; -COMMENT ON COLUMN USER_CONNECT_HISTORY.USER_CONNECT_ID IS 'Идентификатор записи в таблице USER_CONNECT'; -COMMENT ON COLUMN USER_CONNECT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN USER_CONNECT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN USER_CONNECT_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.CONNECTION_TIME IS 'Последнее соединение'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.DISCONNECTION_TIME IS 'Разрыв соединения'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.SERVER_IP IS 'IP адрес сервера'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.CLIENT_IP IS 'IP адрес клиента'; - -COMMENT ON COLUMN USER_CONNECT_HISTORY.CONNECTION_STATE IS 'Код статуса соединения (linked to connectionState)'; - -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_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; - -GRANT ALL PRIVILEGES ON TABLE USER_CONNECT_HISTORY TO clearing; - --- company - Компании -DROP TABLE IF EXISTS COMPANY; -CREATE TABLE COMPANY(SHORT_NAME varchar(255), FULL_NAME varchar(255), TRADING_CODE varchar(255), CLEARING_CODE varchar(255), REGISTRATION_CODE varchar(255), WORKFLOW_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE COMPANY IS 'Компании'; - -COMMENT ON COLUMN COMPANY.SHORT_NAME IS 'Краткое наименование компании'; - -COMMENT ON COLUMN COMPANY.FULL_NAME IS 'Полное наименование компании'; - -COMMENT ON COLUMN COMPANY.TRADING_CODE IS 'Код участника торгов'; - -COMMENT ON COLUMN COMPANY.CLEARING_CODE IS 'Код участника клиринга'; - -COMMENT ON COLUMN COMPANY.REGISTRATION_CODE IS 'Регистрационный код участника'; - -COMMENT ON COLUMN COMPANY.WORKFLOW_STATUS IS 'Код статуса (linked to workflowStatus)'; - -COMMENT ON COLUMN COMPANY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COMPANY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN COMPANY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY TO clearing; - - --- History log of company - Компании -DROP TABLE IF EXISTS COMPANY_HISTORY; -CREATE TABLE COMPANY_HISTORY(COMPANY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), SHORT_NAME varchar(255), FULL_NAME varchar(255), TRADING_CODE varchar(255), CLEARING_CODE varchar(255), REGISTRATION_CODE varchar(255), WORKFLOW_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE COMPANY_HISTORY IS 'История изменений таблицы company'; -COMMENT ON COLUMN COMPANY_HISTORY.COMPANY_ID IS 'Идентификатор записи в таблице COMPANY'; -COMMENT ON COLUMN COMPANY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN COMPANY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN COMPANY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN COMPANY_HISTORY.SHORT_NAME IS 'Краткое наименование компании'; - -COMMENT ON COLUMN COMPANY_HISTORY.FULL_NAME IS 'Полное наименование компании'; - -COMMENT ON COLUMN COMPANY_HISTORY.TRADING_CODE IS 'Код участника торгов'; - -COMMENT ON COLUMN COMPANY_HISTORY.CLEARING_CODE IS 'Код участника клиринга'; - -COMMENT ON COLUMN COMPANY_HISTORY.REGISTRATION_CODE IS 'Регистрационный код участника'; - -COMMENT ON COLUMN COMPANY_HISTORY.WORKFLOW_STATUS IS 'Код статуса (linked to workflowStatus)'; - -COMMENT ON COLUMN COMPANY_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COMPANY_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN COMPANY_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY_HISTORY TO clearing; - --- companyInfo - Профили компаний -DROP TABLE IF EXISTS COMPANY_INFO; -CREATE TABLE COMPANY_INFO(COMPANY_ID bigint, CORPORATION_SOLE_TYPE varchar(4), COUNTRY_CODE varchar(4), DESCRIPTION varchar(255), PROFESSIONAL_SIGN varchar(4), LEGAL_KIND varchar(4), ORGANIZATION_TYPE varchar(4), RESIDENCE varchar(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE COMPANY_INFO IS 'Профили компаний'; - -COMMENT ON COLUMN COMPANY_INFO.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN COMPANY_INFO.CORPORATION_SOLE_TYPE IS 'Код единоличного исполнительного органа (linked to corporationSoleType)'; - -COMMENT ON COLUMN COMPANY_INFO.COUNTRY_CODE IS 'Код юрисдикции (linked to countryCode)'; - -COMMENT ON COLUMN COMPANY_INFO.DESCRIPTION IS 'Описание компании'; - -COMMENT ON COLUMN COMPANY_INFO.PROFESSIONAL_SIGN IS 'Код признака профессионального участника (linked to allowed)'; - -COMMENT ON COLUMN COMPANY_INFO.LEGAL_KIND IS 'Код вида субъекта (linked to legalKind)'; - -COMMENT ON COLUMN COMPANY_INFO.ORGANIZATION_TYPE IS 'Код типа организации (linked to organizationType)'; - -COMMENT ON COLUMN COMPANY_INFO.RESIDENCE IS 'Код резиденции (linked to countryCode)'; - -COMMENT ON COLUMN COMPANY_INFO.SHORT_NAME_ENG IS 'Краткое наименование компании на английском'; - -COMMENT ON COLUMN COMPANY_INFO.FULL_NAME_ENG IS 'Полное наименование компании на английском'; - -COMMENT ON COLUMN COMPANY_INFO.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY_INFO TO clearing; - - --- History log of companyInfo - Профили компаний -DROP TABLE IF EXISTS COMPANY_INFO_HISTORY; -CREATE TABLE COMPANY_INFO_HISTORY(COMPANY_INFO_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, CORPORATION_SOLE_TYPE varchar(4), COUNTRY_CODE varchar(4), DESCRIPTION varchar(255), PROFESSIONAL_SIGN varchar(4), LEGAL_KIND varchar(4), ORGANIZATION_TYPE varchar(4), RESIDENCE varchar(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE COMPANY_INFO_HISTORY IS 'История изменений таблицы companyInfo'; -COMMENT ON COLUMN COMPANY_INFO_HISTORY.COMPANY_INFO_ID IS 'Идентификатор записи в таблице COMPANY_INFO'; -COMMENT ON COLUMN COMPANY_INFO_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN COMPANY_INFO_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN COMPANY_INFO_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.CORPORATION_SOLE_TYPE IS 'Код единоличного исполнительного органа (linked to corporationSoleType)'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.COUNTRY_CODE IS 'Код юрисдикции (linked to countryCode)'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.DESCRIPTION IS 'Описание компании'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.PROFESSIONAL_SIGN IS 'Код признака профессионального участника (linked to allowed)'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.LEGAL_KIND IS 'Код вида субъекта (linked to legalKind)'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.ORGANIZATION_TYPE IS 'Код типа организации (linked to organizationType)'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.RESIDENCE IS 'Код резиденции (linked to countryCode)'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.SHORT_NAME_ENG IS 'Краткое наименование компании на английском'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.FULL_NAME_ENG IS 'Полное наименование компании на английском'; - -COMMENT ON COLUMN COMPANY_INFO_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY_INFO_HISTORY TO clearing; - --- clearingMemberCategory - Категории участника клиринга -DROP TABLE IF EXISTS CLEARING_MEMBER_CATEGORY; -CREATE TABLE CLEARING_MEMBER_CATEGORY(COMPANY_ID bigint, CLEARING_MEMBER_CATEGORY varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE CLEARING_MEMBER_CATEGORY IS 'Категории участника клиринга'; - -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY.CLEARING_MEMBER_CATEGORY IS 'Код категории участника клиринга (linked to clearingCategory)'; - -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE CLEARING_MEMBER_CATEGORY TO clearing; - - --- History log of clearingMemberCategory - Категории участника клиринга -DROP TABLE IF EXISTS CLEARING_MEMBER_CATEGORY_HISTORY; -CREATE TABLE CLEARING_MEMBER_CATEGORY_HISTORY(CLEARING_MEMBER_CATEGORY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, CLEARING_MEMBER_CATEGORY varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE CLEARING_MEMBER_CATEGORY_HISTORY IS 'История изменений таблицы clearingMemberCategory'; -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY_HISTORY.CLEARING_MEMBER_CATEGORY_ID IS 'Идентификатор записи в таблице CLEARING_MEMBER_CATEGORY'; -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY_HISTORY.CLEARING_MEMBER_CATEGORY IS 'Код категории участника клиринга (linked to clearingCategory)'; - -COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE CLEARING_MEMBER_CATEGORY_HISTORY TO clearing; - --- contact - Контакты компании -DROP TABLE IF EXISTS CONTACT; -CREATE TABLE CONTACT(COMPANY_ID bigint, CONTACT_TYPE varchar(4), CONTACT_VALUE varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE CONTACT IS 'Контакты компании'; - -COMMENT ON COLUMN CONTACT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN CONTACT.CONTACT_TYPE IS 'Код типа контакта (linked to contactType)'; - -COMMENT ON COLUMN CONTACT.CONTACT_VALUE IS 'Значение контакта'; - -COMMENT ON COLUMN CONTACT.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE CONTACT TO clearing; - --- profileDocument - Досье компании -DROP TABLE IF EXISTS PROFILE_DOCUMENT; -CREATE TABLE PROFILE_DOCUMENT(COMPANY_ID bigint, DOCUMENT_TYPE varchar(4), ISSUE_DATE date, ISSUE_PLACE varchar(255), ISSUER varchar(255), ISSUER_CODE varchar(255), NAME varchar(255), NUMBER varchar(255), PLACE varchar(255), VALID_FROM_DATE date, VALID_TO_DATE date, LINK varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE PROFILE_DOCUMENT IS 'Досье компании'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.DOCUMENT_TYPE IS 'Код типа документа (linked to documentType)'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.ISSUE_DATE IS 'Дата выдачи'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.ISSUE_PLACE IS 'Место выдачи'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.ISSUER IS 'Кем выдан'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.ISSUER_CODE IS 'Код выдавшего органа'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.NAME IS 'Наименование документа'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.NUMBER IS 'Номер документа'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.PLACE IS 'Место'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.LINK IS 'Ссылка на документ'; - -COMMENT ON COLUMN PROFILE_DOCUMENT.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE PROFILE_DOCUMENT TO clearing; - - --- History log of profileDocument - Досье компании -DROP TABLE IF EXISTS PROFILE_DOCUMENT_HISTORY; -CREATE TABLE PROFILE_DOCUMENT_HISTORY(PROFILE_DOCUMENT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, DOCUMENT_TYPE varchar(4), ISSUE_DATE date, ISSUE_PLACE varchar(255), ISSUER varchar(255), ISSUER_CODE varchar(255), NAME varchar(255), NUMBER varchar(255), PLACE varchar(255), VALID_FROM_DATE date, VALID_TO_DATE date, LINK varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE PROFILE_DOCUMENT_HISTORY IS 'История изменений таблицы profileDocument'; -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.PROFILE_DOCUMENT_ID IS 'Идентификатор записи в таблице PROFILE_DOCUMENT'; -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.DOCUMENT_TYPE IS 'Код типа документа (linked to documentType)'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.ISSUE_DATE IS 'Дата выдачи'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.ISSUE_PLACE IS 'Место выдачи'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.ISSUER IS 'Кем выдан'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.ISSUER_CODE IS 'Код выдавшего органа'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.NAME IS 'Наименование документа'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.NUMBER IS 'Номер документа'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.PLACE IS 'Место'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.LINK IS 'Ссылка на документ'; - -COMMENT ON COLUMN PROFILE_DOCUMENT_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE PROFILE_DOCUMENT_HISTORY TO clearing; - --- companySymbols - Реквизиты компании -DROP TABLE IF EXISTS COMPANY_SYMBOLS; -CREATE TABLE COMPANY_SYMBOLS(COMPANY_ID bigint, COMPANY_SYMBOL varchar(4), COMPANY_SYMBOL_VALUE varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE COMPANY_SYMBOLS IS 'Реквизиты компании'; - -COMMENT ON COLUMN COMPANY_SYMBOLS.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN COMPANY_SYMBOLS.COMPANY_SYMBOL IS 'Код типа реквизита (linked to companySymbol)'; - -COMMENT ON COLUMN COMPANY_SYMBOLS.COMPANY_SYMBOL_VALUE IS 'Значение реквизита'; - -COMMENT ON COLUMN COMPANY_SYMBOLS.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY_SYMBOLS TO clearing; - - --- History log of companySymbols - Реквизиты компании -DROP TABLE IF EXISTS COMPANY_SYMBOLS_HISTORY; -CREATE TABLE COMPANY_SYMBOLS_HISTORY(COMPANY_SYMBOLS_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, COMPANY_SYMBOL varchar(4), COMPANY_SYMBOL_VALUE varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE COMPANY_SYMBOLS_HISTORY IS 'История изменений таблицы companySymbols'; -COMMENT ON COLUMN COMPANY_SYMBOLS_HISTORY.COMPANY_SYMBOLS_ID IS 'Идентификатор записи в таблице COMPANY_SYMBOLS'; -COMMENT ON COLUMN COMPANY_SYMBOLS_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN COMPANY_SYMBOLS_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN COMPANY_SYMBOLS_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN COMPANY_SYMBOLS_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN COMPANY_SYMBOLS_HISTORY.COMPANY_SYMBOL IS 'Код типа реквизита (linked to companySymbol)'; - -COMMENT ON COLUMN COMPANY_SYMBOLS_HISTORY.COMPANY_SYMBOL_VALUE IS 'Значение реквизита'; - -COMMENT ON COLUMN COMPANY_SYMBOLS_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY_SYMBOLS_HISTORY TO clearing; - --- companyRoleSet - Таблица ролей компании -DROP TABLE IF EXISTS COMPANY_ROLE_SET; -CREATE TABLE COMPANY_ROLE_SET(COMPANY_ID bigint, COMPANY_ROLE varchar(4), WORKFLOW_STATUS varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE COMPANY_ROLE_SET IS 'Таблица ролей компании'; - -COMMENT ON COLUMN COMPANY_ROLE_SET.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN COMPANY_ROLE_SET.COMPANY_ROLE IS 'Код роли компании (linked to companyRole)'; - -COMMENT ON COLUMN COMPANY_ROLE_SET.WORKFLOW_STATUS IS 'Код статуса (linked to workflowStatus)'; - -COMMENT ON COLUMN COMPANY_ROLE_SET.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE COMPANY_ROLE_SET TO clearing; - --- settlementHouseProperties - Параметры расчетной организации -DROP TABLE IF EXISTS SETTLEMENT_HOUSE_PROPERTIES; -CREATE TABLE SETTLEMENT_HOUSE_PROPERTIES(COMPANY_ID bigint, CURRENCY_CODE varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE SETTLEMENT_HOUSE_PROPERTIES IS 'Параметры расчетной организации'; - -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES.COMPANY_ID IS 'Наименование компании (linked to company)'; - -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES.CURRENCY_CODE IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE SETTLEMENT_HOUSE_PROPERTIES TO clearing; - - --- History log of settlementHouseProperties - Параметры расчетной организации -DROP TABLE IF EXISTS SETTLEMENT_HOUSE_PROPERTIES_HISTORY; -CREATE TABLE SETTLEMENT_HOUSE_PROPERTIES_HISTORY(SETTLEMENT_HOUSE_PROPERTIES_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, CURRENCY_CODE varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE SETTLEMENT_HOUSE_PROPERTIES_HISTORY IS 'История изменений таблицы settlementHouseProperties'; -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES_HISTORY.SETTLEMENT_HOUSE_PROPERTIES_ID IS 'Идентификатор записи в таблице SETTLEMENT_HOUSE_PROPERTIES'; -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES_HISTORY.COMPANY_ID IS 'Наименование компании (linked to company)'; - -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES_HISTORY.CURRENCY_CODE IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN SETTLEMENT_HOUSE_PROPERTIES_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE SETTLEMENT_HOUSE_PROPERTIES_HISTORY TO clearing; - --- security - Инструменты -DROP TABLE IF EXISTS SECURITY; -CREATE TABLE SECURITY(ID bigint PRIMARY KEY, INSTRUMENT_TYPE varchar(4), ISSUER_ID bigint, SHORT_NAME varchar(255), FULL_NAME varchar(255), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), SECURITY_SYMBOL varchar(255), ISIN varchar(50), WORKFLOW_STATUS varchar(4), UUID varchar(255), CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE SECURITY IS 'Инструменты'; - -COMMENT ON COLUMN SECURITY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SECURITY.INSTRUMENT_TYPE IS 'Код типа инструмента (linked to instrumentType)'; - -COMMENT ON COLUMN SECURITY.ISSUER_ID IS 'Идентификатор эмитента (linked to company)'; - -COMMENT ON COLUMN SECURITY.SHORT_NAME IS 'Краткое наименование инструмента'; - -COMMENT ON COLUMN SECURITY.FULL_NAME IS 'Полное наименование инструмента'; - -COMMENT ON COLUMN SECURITY.SHORT_NAME_ENG IS 'Краткое наименование инструмента на английском'; - -COMMENT ON COLUMN SECURITY.FULL_NAME_ENG IS 'Полное наименование инструмента на английском'; - -COMMENT ON COLUMN SECURITY.SECURITY_SYMBOL IS 'Код инструмента'; - -COMMENT ON COLUMN SECURITY.ISIN IS 'Наименование инструмента ISIN'; - -COMMENT ON COLUMN SECURITY.WORKFLOW_STATUS IS 'Код статуса (linked to workflowStatus)'; - -COMMENT ON COLUMN SECURITY.UUID IS 'Идентификатор во внешней системе'; - -COMMENT ON COLUMN SECURITY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN SECURITY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE SECURITY TO clearing; - - --- History log of security - Инструменты -DROP TABLE IF EXISTS SECURITY_HISTORY; -CREATE TABLE SECURITY_HISTORY(SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, INSTRUMENT_TYPE varchar(4), ISSUER_ID bigint, SHORT_NAME varchar(255), FULL_NAME varchar(255), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), SECURITY_SYMBOL varchar(255), ISIN varchar(50), WORKFLOW_STATUS varchar(4), UUID varchar(255), CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE SECURITY_HISTORY IS 'История изменений таблицы security'; -COMMENT ON COLUMN SECURITY_HISTORY.SECURITY_ID IS 'Идентификатор записи в таблице SECURITY'; -COMMENT ON COLUMN SECURITY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN SECURITY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN SECURITY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN SECURITY_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SECURITY_HISTORY.INSTRUMENT_TYPE IS 'Код типа инструмента (linked to instrumentType)'; - -COMMENT ON COLUMN SECURITY_HISTORY.ISSUER_ID IS 'Идентификатор эмитента (linked to company)'; - -COMMENT ON COLUMN SECURITY_HISTORY.SHORT_NAME IS 'Краткое наименование инструмента'; - -COMMENT ON COLUMN SECURITY_HISTORY.FULL_NAME IS 'Полное наименование инструмента'; - -COMMENT ON COLUMN SECURITY_HISTORY.SHORT_NAME_ENG IS 'Краткое наименование инструмента на английском'; - -COMMENT ON COLUMN SECURITY_HISTORY.FULL_NAME_ENG IS 'Полное наименование инструмента на английском'; - -COMMENT ON COLUMN SECURITY_HISTORY.SECURITY_SYMBOL IS 'Код инструмента'; - -COMMENT ON COLUMN SECURITY_HISTORY.ISIN IS 'Наименование инструмента ISIN'; - -COMMENT ON COLUMN SECURITY_HISTORY.WORKFLOW_STATUS IS 'Код статуса (linked to workflowStatus)'; - -COMMENT ON COLUMN SECURITY_HISTORY.UUID IS 'Идентификатор во внешней системе'; - -COMMENT ON COLUMN SECURITY_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN SECURITY_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE SECURITY_HISTORY TO clearing; - --- currency - Валюты -DROP TABLE IF EXISTS CURRENCY; -CREATE TABLE CURRENCY(COUNTRY_CODE varchar(4), CURRENCY_CODE varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE CURRENCY IS 'Валюты'; - -COMMENT ON COLUMN CURRENCY.COUNTRY_CODE IS 'Код страны (linked to countryCode)'; - -COMMENT ON COLUMN CURRENCY.CURRENCY_CODE IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN CURRENCY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE CURRENCY TO clearing; - - --- History log of currency - Валюты -DROP TABLE IF EXISTS CURRENCY_HISTORY; -CREATE TABLE CURRENCY_HISTORY(CURRENCY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COUNTRY_CODE varchar(4), CURRENCY_CODE varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE CURRENCY_HISTORY IS 'История изменений таблицы currency'; -COMMENT ON COLUMN CURRENCY_HISTORY.CURRENCY_ID IS 'Идентификатор записи в таблице CURRENCY'; -COMMENT ON COLUMN CURRENCY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN CURRENCY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN CURRENCY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN CURRENCY_HISTORY.COUNTRY_CODE IS 'Код страны (linked to countryCode)'; - -COMMENT ON COLUMN CURRENCY_HISTORY.CURRENCY_CODE IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN CURRENCY_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE CURRENCY_HISTORY TO clearing; - --- moneyMarketSecurity - Спецификации Денежного рынка -DROP TABLE IF EXISTS MONEY_MARKET_SECURITY; -CREATE TABLE MONEY_MARKET_SECURITY(SECURITY_ID bigint, DESCRIPTION varchar(255), START_DATE date, END_DATE date, NOMINAL_VALUE numeric(72,18), NOMINAL_CURRENCY varchar(4), CONVENTION varchar(255), TERM_TYPE varchar(4), CLEARING_ORGANIZATION varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE MONEY_MARKET_SECURITY IS 'Спецификации Денежного рынка'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.DESCRIPTION IS 'Описание'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.START_DATE IS 'Дата начала действия'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.END_DATE IS 'Дата окончания действия'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.NOMINAL_VALUE IS 'Номинал'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.NOMINAL_CURRENCY IS 'Код валюты номинала (linked to currencyCode)'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.CONVENTION IS 'Нотация наименования инструмента'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.TERM_TYPE IS 'Код вида инструмента (linked to termType)'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.CLEARING_ORGANIZATION IS 'Клиринговая организация'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE MONEY_MARKET_SECURITY TO clearing; - - --- History log of moneyMarketSecurity - Спецификации Денежного рынка -DROP TABLE IF EXISTS MONEY_MARKET_SECURITY_HISTORY; -CREATE TABLE MONEY_MARKET_SECURITY_HISTORY(MONEY_MARKET_SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), SECURITY_ID bigint, DESCRIPTION varchar(255), START_DATE date, END_DATE date, NOMINAL_VALUE numeric(72,18), NOMINAL_CURRENCY varchar(4), CONVENTION varchar(255), TERM_TYPE varchar(4), CLEARING_ORGANIZATION varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE MONEY_MARKET_SECURITY_HISTORY IS 'История изменений таблицы moneyMarketSecurity'; -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.MONEY_MARKET_SECURITY_ID IS 'Идентификатор записи в таблице MONEY_MARKET_SECURITY'; -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.DESCRIPTION IS 'Описание'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.START_DATE IS 'Дата начала действия'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.END_DATE IS 'Дата окончания действия'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.NOMINAL_VALUE IS 'Номинал'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.NOMINAL_CURRENCY IS 'Код валюты номинала (linked to currencyCode)'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.CONVENTION IS 'Нотация наименования инструмента'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.TERM_TYPE IS 'Код вида инструмента (linked to termType)'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.CLEARING_ORGANIZATION IS 'Клиринговая организация'; - -COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE MONEY_MARKET_SECURITY_HISTORY TO clearing; - --- tradedMoneyMarketSecurity - Спецификации денежного рынка, учавствующие в сделках -DROP TABLE IF EXISTS TRADED_MONEY_MARKET_SECURITY; -CREATE TABLE TRADED_MONEY_MARKET_SECURITY(SECURITY_ID bigint, SECURITY_CODE varchar(255), ID bigint PRIMARY KEY); -COMMENT ON TABLE TRADED_MONEY_MARKET_SECURITY IS 'Спецификации денежного рынка, учавствующие в сделках'; - -COMMENT ON COLUMN TRADED_MONEY_MARKET_SECURITY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN TRADED_MONEY_MARKET_SECURITY.SECURITY_CODE IS 'Полный код инструмента со сроком'; - -COMMENT ON COLUMN TRADED_MONEY_MARKET_SECURITY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE TRADED_MONEY_MARKET_SECURITY TO clearing; - --- equitySecurity - Акции -DROP TABLE IF EXISTS EQUITY_SECURITY; -CREATE TABLE EQUITY_SECURITY(SECURITY_ID bigint, SHARE_TYPE varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE EQUITY_SECURITY IS 'Акции'; - -COMMENT ON COLUMN EQUITY_SECURITY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN EQUITY_SECURITY.SHARE_TYPE IS 'Код типа акции (linked to shareType)'; - -COMMENT ON COLUMN EQUITY_SECURITY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE EQUITY_SECURITY TO clearing; - - --- History log of equitySecurity - Акции -DROP TABLE IF EXISTS EQUITY_SECURITY_HISTORY; -CREATE TABLE EQUITY_SECURITY_HISTORY(EQUITY_SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), SECURITY_ID bigint, SHARE_TYPE varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE EQUITY_SECURITY_HISTORY IS 'История изменений таблицы equitySecurity'; -COMMENT ON COLUMN EQUITY_SECURITY_HISTORY.EQUITY_SECURITY_ID IS 'Идентификатор записи в таблице EQUITY_SECURITY'; -COMMENT ON COLUMN EQUITY_SECURITY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN EQUITY_SECURITY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN EQUITY_SECURITY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN EQUITY_SECURITY_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN EQUITY_SECURITY_HISTORY.SHARE_TYPE IS 'Код типа акции (linked to shareType)'; - -COMMENT ON COLUMN EQUITY_SECURITY_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE EQUITY_SECURITY_HISTORY TO clearing; - --- fixedIncomeSecurity - Облигации -DROP TABLE IF EXISTS FIXED_INCOME_SECURITY; -CREATE TABLE FIXED_INCOME_SECURITY(SECURITY_ID bigint, BOND_TYPE varchar(4), MATURITY_DATE date, NOMINAL_FOR_DATE numeric(72,18), NOMINAL_VALUE numeric(72,18), NOMINAL_CURRENCY varchar(4), COUPON numeric(72,18), COUPON_FREQUENCY bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE FIXED_INCOME_SECURITY IS 'Облигации'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.BOND_TYPE IS 'Код типа облигации (linked to bondType)'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.MATURITY_DATE IS 'Дата погашения'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.NOMINAL_FOR_DATE IS 'Текущее значение номинала'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.NOMINAL_VALUE IS 'Номинал инструмента'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.NOMINAL_CURRENCY IS 'Код валюты номинала (linked to currencyCode)'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.COUPON IS 'Купон'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.COUPON_FREQUENCY IS 'Длительность купона'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE FIXED_INCOME_SECURITY TO clearing; - - --- History log of fixedIncomeSecurity - Облигации -DROP TABLE IF EXISTS FIXED_INCOME_SECURITY_HISTORY; -CREATE TABLE FIXED_INCOME_SECURITY_HISTORY(FIXED_INCOME_SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), SECURITY_ID bigint, BOND_TYPE varchar(4), MATURITY_DATE date, NOMINAL_FOR_DATE numeric(72,18), NOMINAL_VALUE numeric(72,18), NOMINAL_CURRENCY varchar(4), COUPON numeric(72,18), COUPON_FREQUENCY bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE FIXED_INCOME_SECURITY_HISTORY IS 'История изменений таблицы fixedIncomeSecurity'; -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.FIXED_INCOME_SECURITY_ID IS 'Идентификатор записи в таблице FIXED_INCOME_SECURITY'; -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.BOND_TYPE IS 'Код типа облигации (linked to bondType)'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.MATURITY_DATE IS 'Дата погашения'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.NOMINAL_FOR_DATE IS 'Текущее значение номинала'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.NOMINAL_VALUE IS 'Номинал инструмента'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.NOMINAL_CURRENCY IS 'Код валюты номинала (linked to currencyCode)'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.COUPON IS 'Купон'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.COUPON_FREQUENCY IS 'Длительность купона'; - -COMMENT ON COLUMN FIXED_INCOME_SECURITY_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE FIXED_INCOME_SECURITY_HISTORY TO clearing; - --- fixedIncomeCashFlow - Выплаты по купонам -DROP TABLE IF EXISTS FIXED_INCOME_CASH_FLOW; -CREATE TABLE FIXED_INCOME_CASH_FLOW(SECURITY_ID bigint, ACCRUED_COUPON numeric(72,2), NOMINAL_VALUE numeric(72,18), NUMBER bigint, VALUE_DATE date, ID bigint PRIMARY KEY); -COMMENT ON TABLE FIXED_INCOME_CASH_FLOW IS 'Выплаты по купонам'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW.ACCRUED_COUPON IS 'Купон'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW.NOMINAL_VALUE IS 'Номинал'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW.NUMBER IS 'Номер купона'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW.VALUE_DATE IS 'Дата выплаты купона'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE FIXED_INCOME_CASH_FLOW TO clearing; - - --- History log of fixedIncomeCashFlow - Выплаты по купонам -DROP TABLE IF EXISTS FIXED_INCOME_CASH_FLOW_HISTORY; -CREATE TABLE FIXED_INCOME_CASH_FLOW_HISTORY(FIXED_INCOME_CASH_FLOW_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), SECURITY_ID bigint, ACCRUED_COUPON numeric(72,2), NOMINAL_VALUE numeric(72,18), NUMBER bigint, VALUE_DATE date, ID bigint PRIMARY KEY); -COMMENT ON TABLE FIXED_INCOME_CASH_FLOW_HISTORY IS 'История изменений таблицы fixedIncomeCashFlow'; -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.FIXED_INCOME_CASH_FLOW_ID IS 'Идентификатор записи в таблице FIXED_INCOME_CASH_FLOW'; -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.ACCRUED_COUPON IS 'Купон'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.NOMINAL_VALUE IS 'Номинал'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.NUMBER IS 'Номер купона'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.VALUE_DATE IS 'Дата выплаты купона'; - -COMMENT ON COLUMN FIXED_INCOME_CASH_FLOW_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE FIXED_INCOME_CASH_FLOW_HISTORY TO clearing; - --- couponPeriod - Купонное расписание -DROP TABLE IF EXISTS COUPON_PERIOD; -CREATE TABLE COUPON_PERIOD(SECURITY_ID bigint, COUPON_RATE numeric(72,2), NUMBER bigint, PERIOD_START_DATE date, PERIOD_END_DATE date, ID bigint PRIMARY KEY); -COMMENT ON TABLE COUPON_PERIOD IS 'Купонное расписание'; - -COMMENT ON COLUMN COUPON_PERIOD.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN COUPON_PERIOD.COUPON_RATE IS 'Купонная ставка'; - -COMMENT ON COLUMN COUPON_PERIOD.NUMBER IS 'Номер купона'; - -COMMENT ON COLUMN COUPON_PERIOD.PERIOD_START_DATE IS 'Начало периода действия'; - -COMMENT ON COLUMN COUPON_PERIOD.PERIOD_END_DATE IS 'Окончание периода действия'; - -COMMENT ON COLUMN COUPON_PERIOD.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE COUPON_PERIOD TO clearing; - - --- History log of couponPeriod - Купонное расписание -DROP TABLE IF EXISTS COUPON_PERIOD_HISTORY; -CREATE TABLE COUPON_PERIOD_HISTORY(COUPON_PERIOD_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), SECURITY_ID bigint, COUPON_RATE numeric(72,2), NUMBER bigint, PERIOD_START_DATE date, PERIOD_END_DATE date, ID bigint PRIMARY KEY); -COMMENT ON TABLE COUPON_PERIOD_HISTORY IS 'История изменений таблицы couponPeriod'; -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.COUPON_PERIOD_ID IS 'Идентификатор записи в таблице COUPON_PERIOD'; -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.COUPON_RATE IS 'Купонная ставка'; - -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.NUMBER IS 'Номер купона'; - -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.PERIOD_START_DATE IS 'Начало периода действия'; - -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.PERIOD_END_DATE IS 'Окончание периода действия'; - -COMMENT ON COLUMN COUPON_PERIOD_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE COUPON_PERIOD_HISTORY TO clearing; - --- listing - Инструменты на режимах -DROP TABLE IF EXISTS LISTING; -CREATE TABLE LISTING(SECURITY_ID bigint, MARKET varchar(4), LOT_SIZE numeric(72,2), SYMBOL_CODE varchar(255), SYMBOL_NAME varchar(255), TRADING_CURRENCY varchar(4), WORKFLOW_STATUS varchar(4), MIN_STEP numeric(72,2), PRECISION numeric(72,2), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE LISTING IS 'Инструменты на режимах'; - -COMMENT ON COLUMN LISTING.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN LISTING.MARKET IS 'Код торговой секции (linked to market)'; - -COMMENT ON COLUMN LISTING.LOT_SIZE IS 'Размер лота'; - -COMMENT ON COLUMN LISTING.SYMBOL_CODE IS 'Код инструмента на торговой площадке'; - -COMMENT ON COLUMN LISTING.SYMBOL_NAME IS 'Наименование инструмента на торговой площадке'; - -COMMENT ON COLUMN LISTING.TRADING_CURRENCY IS 'Код валюты расчета (linked to currencyCode)'; - -COMMENT ON COLUMN LISTING.WORKFLOW_STATUS IS 'Код статуса листинга в системе (linked to workflowStatus)'; - -COMMENT ON COLUMN LISTING.MIN_STEP IS 'Шаг цены'; - -COMMENT ON COLUMN LISTING.PRECISION IS 'Точность'; - -COMMENT ON COLUMN LISTING.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN LISTING.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN LISTING.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE LISTING TO clearing; - - --- History log of listing - Инструменты на режимах -DROP TABLE IF EXISTS LISTING_HISTORY; -CREATE TABLE LISTING_HISTORY(LISTING_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), SECURITY_ID bigint, MARKET varchar(4), LOT_SIZE numeric(72,2), SYMBOL_CODE varchar(255), SYMBOL_NAME varchar(255), TRADING_CURRENCY varchar(4), WORKFLOW_STATUS varchar(4), MIN_STEP numeric(72,2), PRECISION numeric(72,2), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE LISTING_HISTORY IS 'История изменений таблицы listing'; -COMMENT ON COLUMN LISTING_HISTORY.LISTING_ID IS 'Идентификатор записи в таблице LISTING'; -COMMENT ON COLUMN LISTING_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN LISTING_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN LISTING_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN LISTING_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN LISTING_HISTORY.MARKET IS 'Код торговой секции (linked to market)'; - -COMMENT ON COLUMN LISTING_HISTORY.LOT_SIZE IS 'Размер лота'; - -COMMENT ON COLUMN LISTING_HISTORY.SYMBOL_CODE IS 'Код инструмента на торговой площадке'; - -COMMENT ON COLUMN LISTING_HISTORY.SYMBOL_NAME IS 'Наименование инструмента на торговой площадке'; - -COMMENT ON COLUMN LISTING_HISTORY.TRADING_CURRENCY IS 'Код валюты расчета (linked to currencyCode)'; - -COMMENT ON COLUMN LISTING_HISTORY.WORKFLOW_STATUS IS 'Код статуса листинга в системе (linked to workflowStatus)'; - -COMMENT ON COLUMN LISTING_HISTORY.MIN_STEP IS 'Шаг цены'; - -COMMENT ON COLUMN LISTING_HISTORY.PRECISION IS 'Точность'; - -COMMENT ON COLUMN LISTING_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN LISTING_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN LISTING_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE LISTING_HISTORY TO clearing; - --- currencyPairSecurity - Валютные пары -DROP TABLE IF EXISTS CURRENCY_PAIR_SECURITY; -CREATE TABLE CURRENCY_PAIR_SECURITY(BASE_UNIT_SIZE numeric(72,2), CURRENCY_PAIR_ID bigint, CODE varchar(255), SETTLEMENT_TYPE varchar(4), CLEARING_ORGANIZATION varchar(255), SETTLEMENT_ORGANIZATION varchar(255), SECURITY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CURRENCY_PAIR_SECURITY IS 'Валютные пары'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.BASE_UNIT_SIZE IS 'Количество валюты лота'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.CURRENCY_PAIR_ID IS 'Идентификатор валютной пары (linked to currencyPair)'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.CODE IS 'Наименование валютной пары (linked to currencyPair)'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.SETTLEMENT_TYPE IS 'Тип расчета (linked to currencySettlementType)'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.CLEARING_ORGANIZATION IS 'Наименование клиринговой организации'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.SETTLEMENT_ORGANIZATION IS 'Наименование расчетной организации'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.SECURITY_ID IS 'Наименование инструмента (linked to security)'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.CREATED_AT IS 'Время создания записи'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY.UPDATED_AT IS 'Время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE CURRENCY_PAIR_SECURITY TO clearing; - - --- History log of currencyPairSecurity - Валютные пары -DROP TABLE IF EXISTS CURRENCY_PAIR_SECURITY_HISTORY; -CREATE TABLE CURRENCY_PAIR_SECURITY_HISTORY(CURRENCY_PAIR_SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), BASE_UNIT_SIZE numeric(72,2), CURRENCY_PAIR_ID bigint, CODE varchar(255), SETTLEMENT_TYPE varchar(4), CLEARING_ORGANIZATION varchar(255), SETTLEMENT_ORGANIZATION varchar(255), SECURITY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CURRENCY_PAIR_SECURITY_HISTORY IS 'История изменений таблицы currencyPairSecurity'; -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.CURRENCY_PAIR_SECURITY_ID IS 'Идентификатор записи в таблице CURRENCY_PAIR_SECURITY'; -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.BASE_UNIT_SIZE IS 'Количество валюты лота'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.CURRENCY_PAIR_ID IS 'Идентификатор валютной пары (linked to currencyPair)'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.CODE IS 'Наименование валютной пары (linked to currencyPair)'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.SETTLEMENT_TYPE IS 'Тип расчета (linked to currencySettlementType)'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.CLEARING_ORGANIZATION IS 'Наименование клиринговой организации'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.SETTLEMENT_ORGANIZATION IS 'Наименование расчетной организации'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.SECURITY_ID IS 'Наименование инструмента (linked to security)'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.CREATED_AT IS 'Время создания записи'; - -COMMENT ON COLUMN CURRENCY_PAIR_SECURITY_HISTORY.UPDATED_AT IS 'Время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE CURRENCY_PAIR_SECURITY_HISTORY TO clearing; - --- market - Рынки -DROP TABLE IF EXISTS MARKET; -CREATE TABLE MARKET(DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(10), 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 'Описание'; - -COMMENT ON COLUMN MARKET.EXCHANGE_ID IS 'Идентификатор площадки (linked to company)'; - -COMMENT ON COLUMN MARKET.NAME IS 'Наименование рынка'; - -COMMENT ON COLUMN MARKET.CODE IS 'Код рынка'; - -COMMENT ON COLUMN MARKET.SETTLEMENT_CURRENCY IS 'Код валюты расчета (linked to currencyCode)'; - -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 'Дата-время создания записи'; - -COMMENT ON COLUMN MARKET.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE MARKET TO clearing; - - --- 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(10), 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 'Дата и время изменения'; -COMMENT ON COLUMN MARKET_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN MARKET_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN MARKET_HISTORY.DESCRIPTION IS 'Описание'; - -COMMENT ON COLUMN MARKET_HISTORY.EXCHANGE_ID IS 'Идентификатор площадки (linked to company)'; - -COMMENT ON COLUMN MARKET_HISTORY.NAME IS 'Наименование рынка'; - -COMMENT ON COLUMN MARKET_HISTORY.CODE IS 'Код рынка'; - -COMMENT ON COLUMN MARKET_HISTORY.SETTLEMENT_CURRENCY IS 'Код валюты расчета (linked to currencyCode)'; - -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 'Дата-время создания записи'; - -COMMENT ON COLUMN MARKET_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE MARKET_HISTORY TO clearing; - --- errorText - Полные тексты ошибок -DROP TABLE IF EXISTS ERROR_TEXT; -CREATE TABLE ERROR_TEXT(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, ERROR_CODE_ID bigint, TEXT varchar(255), USER_ID bigint, CLEARING_DATE date); -COMMENT ON TABLE ERROR_TEXT IS 'Полные тексты ошибок'; - -COMMENT ON COLUMN ERROR_TEXT.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ERROR_TEXT.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN ERROR_TEXT.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN ERROR_TEXT.ERROR_CODE_ID IS 'Идентификатор кода ошибки (linked to errorCode)'; - -COMMENT ON COLUMN ERROR_TEXT.TEXT IS 'Полный текст ошибки'; - -COMMENT ON COLUMN ERROR_TEXT.USER_ID IS 'Идентификатор автора сообщения (linked to userCls)'; - -COMMENT ON COLUMN ERROR_TEXT.CLEARING_DATE IS 'Текущая дата'; - -GRANT ALL PRIVILEGES ON TABLE ERROR_TEXT TO clearing; - --- clientCode - Коды клиентов компании -DROP TABLE IF EXISTS CLIENT_CODE; -CREATE TABLE CLIENT_CODE(ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), TRADING_CLEARING_REGISTRY_ID bigint, MONEY_ACCOUNT_ID bigint, DEPO_ACCOUNT_ID bigint, CURRENCY_ACCOUNT_ID bigint, STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CLIENT_CODE IS 'Коды клиентов компании'; - -COMMENT ON COLUMN CLIENT_CODE.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CLIENT_CODE.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN CLIENT_CODE.CODE IS 'Код клиента'; - -COMMENT ON COLUMN CLIENT_CODE.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN CLIENT_CODE.MONEY_ACCOUNT_ID IS 'Идентификатор денежного счета (linked to account)'; - -COMMENT ON COLUMN CLIENT_CODE.DEPO_ACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; - -COMMENT ON COLUMN CLIENT_CODE.CURRENCY_ACCOUNT_ID IS 'Идентификатор валютного счета (linked to account)'; - -COMMENT ON COLUMN CLIENT_CODE.STATUS IS 'Код статуса (linked to workflowStatus)'; - -COMMENT ON COLUMN CLIENT_CODE.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN CLIENT_CODE.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE CLIENT_CODE TO clearing; - - --- History log of clientCode - Коды клиентов компании -DROP TABLE IF EXISTS CLIENT_CODE_HISTORY; -CREATE TABLE CLIENT_CODE_HISTORY(CLIENT_CODE_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), TRADING_CLEARING_REGISTRY_ID bigint, MONEY_ACCOUNT_ID bigint, DEPO_ACCOUNT_ID bigint, CURRENCY_ACCOUNT_ID bigint, STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CLIENT_CODE_HISTORY IS 'История изменений таблицы clientCode'; -COMMENT ON COLUMN CLIENT_CODE_HISTORY.CLIENT_CODE_ID IS 'Идентификатор записи в таблице CLIENT_CODE'; -COMMENT ON COLUMN CLIENT_CODE_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN CLIENT_CODE_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN CLIENT_CODE_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.CODE IS 'Код клиента'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.MONEY_ACCOUNT_ID IS 'Идентификатор денежного счета (linked to account)'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.DEPO_ACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.CURRENCY_ACCOUNT_ID IS 'Идентификатор валютного счета (linked to account)'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.STATUS IS 'Код статуса (linked to workflowStatus)'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN CLIENT_CODE_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE CLIENT_CODE_HISTORY TO clearing; - --- 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_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 'Идентификатор записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -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_ACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.TRADING_CLEARING_REGISTRY_TYPE IS 'Код торгово-клирингового регистра (linked to tradingClearingRegistryType)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.TRADING_CLEARING_REGISTRY_LEVEL IS 'Код торгово-клирингового регистра (linked to tradingClearingRegistryLevel)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.TRADING_CLEARING_REGISTRY_PURPOSE IS 'Код области применения (linked to tradingClearingRegistryPurpose)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.STATUS IS 'Код статуса (linked to serviceStatus)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE TRADING_CLEARING_REGISTRY TO clearing; - - --- 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_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 'Дата и время изменения'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -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_ACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY_TYPE IS 'Код торгово-клирингового регистра (linked to tradingClearingRegistryType)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY_LEVEL IS 'Код торгово-клирингового регистра (linked to tradingClearingRegistryLevel)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY_PURPOSE IS 'Код области применения (linked to tradingClearingRegistryPurpose)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.STATUS IS 'Код статуса (linked to serviceStatus)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE TRADING_CLEARING_REGISTRY_HISTORY TO clearing; - --- tradingClearingRegistryList - Список счетов ТКР -DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY_LIST; -CREATE TABLE TRADING_CLEARING_REGISTRY_LIST(TRADING_CLEARING_REGISTRY_ID bigint, ACCOUNT_ID bigint, CURRENCY varchar(4), STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE TRADING_CLEARING_REGISTRY_LIST IS 'Список счетов ТКР'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST.ACCOUNT_ID IS 'Идентификатор валютного счета (linked to account)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST.STATUS IS 'Код статуса (linked to serviceStatus)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST.UPDATED_AT IS 'Дата и время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE TRADING_CLEARING_REGISTRY_LIST TO clearing; - - --- History log of tradingClearingRegistryList - Список счетов ТКР -DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY_LIST_HISTORY; -CREATE TABLE TRADING_CLEARING_REGISTRY_LIST_HISTORY(TRADING_CLEARING_REGISTRY_LIST_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), TRADING_CLEARING_REGISTRY_ID bigint, ACCOUNT_ID bigint, CURRENCY varchar(4), STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE TRADING_CLEARING_REGISTRY_LIST_HISTORY IS 'История изменений таблицы tradingClearingRegistryList'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.TRADING_CLEARING_REGISTRY_LIST_ID IS 'Идентификатор записи в таблице TRADING_CLEARING_REGISTRY_LIST'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.ACCOUNT_ID IS 'Идентификатор валютного счета (linked to account)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.STATUS IS 'Код статуса (linked to serviceStatus)'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_LIST_HISTORY.UPDATED_AT IS 'Дата и время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE TRADING_CLEARING_REGISTRY_LIST_HISTORY TO clearing; - --- 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_SYMBOL varchar(255), 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, SECURITY_ID bigint); -COMMENT ON TABLE REGISTRY IS 'Регистр активов, обязательств и требований УК'; - -COMMENT ON COLUMN REGISTRY.COMPANY_ID IS 'Идентификатор участника (linked to company)'; - -COMMENT ON COLUMN REGISTRY.TRADING_CODE IS 'Торговый код участника'; - -COMMENT ON COLUMN REGISTRY.CLEARING_CODE IS 'Клиринговый код участника'; - -COMMENT ON COLUMN REGISTRY.SHORT_NAME IS 'Краткое наименование компании'; - -COMMENT ON COLUMN REGISTRY.FULL_NAME IS 'Полное наименование участника'; - -COMMENT ON COLUMN REGISTRY.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN REGISTRY.ACCOUNT_TYPE IS 'Код типа счета (linked to accountType)'; - -COMMENT ON COLUMN REGISTRY.ACCOUNT IS 'Номер счета'; - -COMMENT ON COLUMN REGISTRY.REGISTRY_DESIGNATION IS 'Код назначения (linked to registryDesignation)'; - -COMMENT ON COLUMN REGISTRY.REGISTRY_INSTRUMENT_TYPE IS 'Код типа инструмента (linked to registryInstrumentType)'; - -COMMENT ON COLUMN REGISTRY.REGISTRY_CAPACITY IS 'Код принадлежности регистра (linked to registryCapacity)'; - -COMMENT ON COLUMN REGISTRY.REGISTRY_UNIT IS 'Код части регистра (linked to registryUnit)'; - -COMMENT ON COLUMN REGISTRY.REGISTRY_CODE IS 'Код регистра (linked to registryCode)'; - -COMMENT ON COLUMN REGISTRY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN REGISTRY.TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр'; - -COMMENT ON COLUMN REGISTRY.REGISTRY_STATUS IS 'Код статуса (linked to registryStatus)'; - -COMMENT ON COLUMN REGISTRY.SECURITY_SYMBOL IS 'Код инструмента'; - -COMMENT ON COLUMN REGISTRY.BALANCE IS 'Текущий баланс'; - -COMMENT ON COLUMN REGISTRY.OPEN_BALANCE IS 'Начальная сумма после расчетной организации'; - -COMMENT ON COLUMN REGISTRY.CLOSE_BALANCE IS 'Конечная сумма остатков ден. средств на счете'; - -COMMENT ON COLUMN REGISTRY.CREDIT IS 'Зачисления'; - -COMMENT ON COLUMN REGISTRY.DEBIT IS 'Списания'; - -COMMENT ON COLUMN REGISTRY.SETTLED_CREDIT IS 'Зачисления по расчетам'; - -COMMENT ON COLUMN REGISTRY.SETTLED_DEBIT IS 'Списания по расчетам'; - -COMMENT ON COLUMN REGISTRY.CHECK_BALANCE IS 'Сверочный баланс'; - -COMMENT ON COLUMN REGISTRY.DIFF_BALANCE IS 'Расхождение в балансе'; - -COMMENT ON COLUMN REGISTRY.PLAN_BALANCE IS 'Плановый баланс'; - -COMMENT ON COLUMN REGISTRY.BALANCE_DIMENSION IS 'Код единицы измерения (linked to balanceDimension)'; - -COMMENT ON COLUMN REGISTRY.SETTLEMENT_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN REGISTRY.SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN REGISTRY.TRADING_DATE IS 'Дата торгов'; - -COMMENT ON COLUMN REGISTRY.CLEARING_DATE IS 'Дата клиринга'; - -COMMENT ON COLUMN REGISTRY.REFUND_DATE IS 'Дата возврата депозита'; - -COMMENT ON COLUMN REGISTRY.VALUE_DATE IS 'Дата оплаты вклада депозита'; - -COMMENT ON COLUMN REGISTRY.PRICE IS 'Ставка по депозиту'; - -COMMENT ON COLUMN REGISTRY.CONTRACT IS 'Продукт'; - -COMMENT ON COLUMN REGISTRY.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера (linked to company)'; - -COMMENT ON COLUMN REGISTRY.COMMENT IS 'Комментарий'; - -COMMENT ON COLUMN REGISTRY.PARENT_ID IS 'Идентификатор родительского депозита'; - -COMMENT ON COLUMN REGISTRY.GROUP_ID IS 'Идентификатор группы связанных регистров'; - -COMMENT ON COLUMN REGISTRY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN REGISTRY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; - -COMMENT ON COLUMN REGISTRY.PAYMENT_ID IS 'Идентификатор платежа'; - -COMMENT ON COLUMN REGISTRY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REGISTRY.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN REGISTRY.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN REGISTRY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -GRANT ALL PRIVILEGES ON TABLE REGISTRY TO clearing; - - --- 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_SYMBOL varchar(255), 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, SECURITY_ID bigint); -COMMENT ON TABLE REGISTRY_HISTORY IS 'История изменений таблицы registry'; -COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_ID IS 'Идентификатор записи в таблице REGISTRY'; -COMMENT ON COLUMN REGISTRY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN REGISTRY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN REGISTRY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN REGISTRY_HISTORY.COMPANY_ID IS 'Идентификатор участника (linked to company)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.TRADING_CODE IS 'Торговый код участника'; - -COMMENT ON COLUMN REGISTRY_HISTORY.CLEARING_CODE IS 'Клиринговый код участника'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SHORT_NAME IS 'Краткое наименование компании'; - -COMMENT ON COLUMN REGISTRY_HISTORY.FULL_NAME IS 'Полное наименование участника'; - -COMMENT ON COLUMN REGISTRY_HISTORY.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.ACCOUNT_TYPE IS 'Код типа счета (linked to accountType)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.ACCOUNT IS 'Номер счета'; - -COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_DESIGNATION IS 'Код назначения (linked to registryDesignation)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_INSTRUMENT_TYPE IS 'Код типа инструмента (linked to registryInstrumentType)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_CAPACITY IS 'Код принадлежности регистра (linked to registryCapacity)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_UNIT IS 'Код части регистра (linked to registryUnit)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_CODE IS 'Код регистра (linked to registryCode)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр'; - -COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_STATUS IS 'Код статуса (linked to registryStatus)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SECURITY_SYMBOL IS 'Код инструмента'; - -COMMENT ON COLUMN REGISTRY_HISTORY.BALANCE IS 'Текущий баланс'; - -COMMENT ON COLUMN REGISTRY_HISTORY.OPEN_BALANCE IS 'Начальная сумма после расчетной организации'; - -COMMENT ON COLUMN REGISTRY_HISTORY.CLOSE_BALANCE IS 'Конечная сумма остатков ден. средств на счете'; - -COMMENT ON COLUMN REGISTRY_HISTORY.CREDIT IS 'Зачисления'; - -COMMENT ON COLUMN REGISTRY_HISTORY.DEBIT IS 'Списания'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SETTLED_CREDIT IS 'Зачисления по расчетам'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SETTLED_DEBIT IS 'Списания по расчетам'; - -COMMENT ON COLUMN REGISTRY_HISTORY.CHECK_BALANCE IS 'Сверочный баланс'; - -COMMENT ON COLUMN REGISTRY_HISTORY.DIFF_BALANCE IS 'Расхождение в балансе'; - -COMMENT ON COLUMN REGISTRY_HISTORY.PLAN_BALANCE IS 'Плановый баланс'; - -COMMENT ON COLUMN REGISTRY_HISTORY.BALANCE_DIMENSION IS 'Код единицы измерения (linked to balanceDimension)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SETTLEMENT_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN REGISTRY_HISTORY.TRADING_DATE IS 'Дата торгов'; - -COMMENT ON COLUMN REGISTRY_HISTORY.CLEARING_DATE IS 'Дата клиринга'; - -COMMENT ON COLUMN REGISTRY_HISTORY.REFUND_DATE IS 'Дата возврата депозита'; - -COMMENT ON COLUMN REGISTRY_HISTORY.VALUE_DATE IS 'Дата оплаты вклада депозита'; - -COMMENT ON COLUMN REGISTRY_HISTORY.PRICE IS 'Ставка по депозиту'; - -COMMENT ON COLUMN REGISTRY_HISTORY.CONTRACT IS 'Продукт'; - -COMMENT ON COLUMN REGISTRY_HISTORY.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера (linked to company)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.COMMENT IS 'Комментарий'; - -COMMENT ON COLUMN REGISTRY_HISTORY.PARENT_ID IS 'Идентификатор родительского депозита'; - -COMMENT ON COLUMN REGISTRY_HISTORY.GROUP_ID IS 'Идентификатор группы связанных регистров'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; - -COMMENT ON COLUMN REGISTRY_HISTORY.PAYMENT_ID IS 'Идентификатор платежа'; - -COMMENT ON COLUMN REGISTRY_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REGISTRY_HISTORY.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN REGISTRY_HISTORY.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN REGISTRY_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -GRANT ALL PRIVILEGES ON TABLE REGISTRY_HISTORY TO clearing; - --- account - Счета -DROP TABLE IF EXISTS ACCOUNT; -CREATE TABLE ACCOUNT(ACCOUNT varchar(50), ACCOUNT_TYPE varchar(4), RELATION_ID bigint, CURRENCY varchar(4), STATUS varchar(4), PROCESSING_SIGN varchar(4), COMPANY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE ACCOUNT IS 'Счета'; - -COMMENT ON COLUMN ACCOUNT.ACCOUNT IS 'Номер счета'; - -COMMENT ON COLUMN ACCOUNT.ACCOUNT_TYPE IS 'Код типа счета (linked to accountType)'; - -COMMENT ON COLUMN ACCOUNT.RELATION_ID IS 'Идентификатор договорных отношений (linked to relation)'; - -COMMENT ON COLUMN ACCOUNT.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN ACCOUNT.STATUS IS 'Код статуса (linked to serviceStatus)'; - -COMMENT ON COLUMN ACCOUNT.PROCESSING_SIGN IS 'Код признака обработки счета (linked to allowed)'; - -COMMENT ON COLUMN ACCOUNT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN ACCOUNT.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ACCOUNT.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN ACCOUNT.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE ACCOUNT TO clearing; - - --- History log of account - Счета -DROP TABLE IF EXISTS ACCOUNT_HISTORY; -CREATE TABLE ACCOUNT_HISTORY(ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ACCOUNT varchar(50), ACCOUNT_TYPE varchar(4), RELATION_ID bigint, CURRENCY varchar(4), STATUS varchar(4), PROCESSING_SIGN varchar(4), COMPANY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE ACCOUNT_HISTORY IS 'История изменений таблицы account'; -COMMENT ON COLUMN ACCOUNT_HISTORY.ACCOUNT_ID IS 'Идентификатор записи в таблице ACCOUNT'; -COMMENT ON COLUMN ACCOUNT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN ACCOUNT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN ACCOUNT_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.ACCOUNT IS 'Номер счета'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.ACCOUNT_TYPE IS 'Код типа счета (linked to accountType)'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.RELATION_ID IS 'Идентификатор договорных отношений (linked to relation)'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.STATUS IS 'Код статуса (linked to serviceStatus)'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.PROCESSING_SIGN IS 'Код признака обработки счета (linked to allowed)'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN ACCOUNT_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE ACCOUNT_HISTORY TO clearing; - --- relation - Доступ в секцию -DROP TABLE IF EXISTS RELATION; -CREATE TABLE RELATION(CONSUMER_ID bigint, SUPPLIER_ID bigint, SERVICE_STATUS varchar(4), SERVICE varchar(4), SERVICE_PRODUCT varchar(4), COMMENT varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE RELATION IS 'Доступ в секцию'; - -COMMENT ON COLUMN RELATION.CONSUMER_ID IS 'Идентификатор компании пользователя услуги (linked to company)'; - -COMMENT ON COLUMN RELATION.SUPPLIER_ID IS 'Идентификатор компании поставщика услуги (linked to company)'; - -COMMENT ON COLUMN RELATION.SERVICE_STATUS IS 'Код статуса (linked to serviceStatus)'; - -COMMENT ON COLUMN RELATION.SERVICE IS 'Код услуги (linked to service)'; - -COMMENT ON COLUMN RELATION.SERVICE_PRODUCT IS 'Код продукта (linked to serviceProduct)'; - -COMMENT ON COLUMN RELATION.COMMENT IS 'Текст причины'; - -COMMENT ON COLUMN RELATION.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN RELATION.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN RELATION.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE RELATION TO clearing; - - --- History log of relation - Доступ в секцию -DROP TABLE IF EXISTS RELATION_HISTORY; -CREATE TABLE RELATION_HISTORY(RELATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), CONSUMER_ID bigint, SUPPLIER_ID bigint, SERVICE_STATUS varchar(4), SERVICE varchar(4), SERVICE_PRODUCT varchar(4), COMMENT varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE RELATION_HISTORY IS 'История изменений таблицы relation'; -COMMENT ON COLUMN RELATION_HISTORY.RELATION_ID IS 'Идентификатор записи в таблице RELATION'; -COMMENT ON COLUMN RELATION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN RELATION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN RELATION_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN RELATION_HISTORY.CONSUMER_ID IS 'Идентификатор компании пользователя услуги (linked to company)'; - -COMMENT ON COLUMN RELATION_HISTORY.SUPPLIER_ID IS 'Идентификатор компании поставщика услуги (linked to company)'; - -COMMENT ON COLUMN RELATION_HISTORY.SERVICE_STATUS IS 'Код статуса (linked to serviceStatus)'; - -COMMENT ON COLUMN RELATION_HISTORY.SERVICE IS 'Код услуги (linked to service)'; - -COMMENT ON COLUMN RELATION_HISTORY.SERVICE_PRODUCT IS 'Код продукта (linked to serviceProduct)'; - -COMMENT ON COLUMN RELATION_HISTORY.COMMENT IS 'Текст причины'; - -COMMENT ON COLUMN RELATION_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN RELATION_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN RELATION_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE RELATION_HISTORY TO clearing; - --- bankAccount - Счета вывода средств из ПРЦ -DROP TABLE IF EXISTS BANK_ACCOUNT; -CREATE TABLE BANK_ACCOUNT(ACCOUNT_ID bigint, BANK_IDENTIFICATION_CODE varchar(255), BANK_NAME varchar(255), CORRESPONDENT_ACCOUNT varchar(255), CORRESPONDENT_ACCOUNT_NAME varchar(255), CURRENCY varchar(4), DESTINATION varchar(255), IBAN varchar(255), INTERNATIONAL_TRANSFER_SIGN varchar(4), SWIFT_CODE varchar(255), TAXPAYER_IDENTIFICATION_NUMBER varchar(255), TAX_REGISTRATION_REASON_CODE varchar(255), ACCOUNT varchar(50), COMPANY_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE BANK_ACCOUNT IS 'Счета вывода средств из ПРЦ'; - -COMMENT ON COLUMN BANK_ACCOUNT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN BANK_ACCOUNT.BANK_IDENTIFICATION_CODE IS 'Банковский идентификационный код (БИК)'; - -COMMENT ON COLUMN BANK_ACCOUNT.BANK_NAME IS 'Наименование банка'; - -COMMENT ON COLUMN BANK_ACCOUNT.CORRESPONDENT_ACCOUNT IS 'Корреспондентский счет'; - -COMMENT ON COLUMN BANK_ACCOUNT.CORRESPONDENT_ACCOUNT_NAME IS 'Наименование корреспондентского счета'; - -COMMENT ON COLUMN BANK_ACCOUNT.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN BANK_ACCOUNT.DESTINATION IS 'Назначение платежа'; - -COMMENT ON COLUMN BANK_ACCOUNT.IBAN IS 'Международный номер банковского счета'; - -COMMENT ON COLUMN BANK_ACCOUNT.INTERNATIONAL_TRANSFER_SIGN IS 'Код доступности международных переводов (linked to allowed)'; - -COMMENT ON COLUMN BANK_ACCOUNT.SWIFT_CODE IS 'Код SWIFT'; - -COMMENT ON COLUMN BANK_ACCOUNT.TAXPAYER_IDENTIFICATION_NUMBER IS 'Идентификационный номер налогоплательщика (ИНН)'; - -COMMENT ON COLUMN BANK_ACCOUNT.TAX_REGISTRATION_REASON_CODE IS 'Код причины постановки (КПП)'; - -COMMENT ON COLUMN BANK_ACCOUNT.ACCOUNT IS 'Номер счета'; - -COMMENT ON COLUMN BANK_ACCOUNT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN BANK_ACCOUNT.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE BANK_ACCOUNT TO clearing; - - --- History log of bankAccount - Счета вывода средств из ПРЦ -DROP TABLE IF EXISTS BANK_ACCOUNT_HISTORY; -CREATE TABLE BANK_ACCOUNT_HISTORY(BANK_ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ACCOUNT_ID bigint, BANK_IDENTIFICATION_CODE varchar(255), BANK_NAME varchar(255), CORRESPONDENT_ACCOUNT varchar(255), CORRESPONDENT_ACCOUNT_NAME varchar(255), CURRENCY varchar(4), DESTINATION varchar(255), IBAN varchar(255), INTERNATIONAL_TRANSFER_SIGN varchar(4), SWIFT_CODE varchar(255), TAXPAYER_IDENTIFICATION_NUMBER varchar(255), TAX_REGISTRATION_REASON_CODE varchar(255), ACCOUNT varchar(50), COMPANY_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE BANK_ACCOUNT_HISTORY IS 'История изменений таблицы bankAccount'; -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.BANK_ACCOUNT_ID IS 'Идентификатор записи в таблице BANK_ACCOUNT'; -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.BANK_IDENTIFICATION_CODE IS 'Банковский идентификационный код (БИК)'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.BANK_NAME IS 'Наименование банка'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.CORRESPONDENT_ACCOUNT IS 'Корреспондентский счет'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.CORRESPONDENT_ACCOUNT_NAME IS 'Наименование корреспондентского счета'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.DESTINATION IS 'Назначение платежа'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.IBAN IS 'Международный номер банковского счета'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.INTERNATIONAL_TRANSFER_SIGN IS 'Код доступности международных переводов (linked to allowed)'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.SWIFT_CODE IS 'Код SWIFT'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.TAXPAYER_IDENTIFICATION_NUMBER IS 'Идентификационный номер налогоплательщика (ИНН)'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.TAX_REGISTRATION_REASON_CODE IS 'Код причины постановки (КПП)'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.ACCOUNT IS 'Номер счета'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE BANK_ACCOUNT_HISTORY TO clearing; - --- informationAccount - Регистр КС -DROP TABLE IF EXISTS INFORMATION_ACCOUNT; -CREATE TABLE INFORMATION_ACCOUNT(ACCOUNT_ID bigint, CLEARING_ACCOUNT_ID bigint, COMPANY_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE INFORMATION_ACCOUNT IS 'Регистр КС'; - -COMMENT ON COLUMN INFORMATION_ACCOUNT.ACCOUNT_ID IS 'Идентификатор информационного счета (linked to account)'; - -COMMENT ON COLUMN INFORMATION_ACCOUNT.CLEARING_ACCOUNT_ID IS 'Идентификатор аналитического счета (linked to account)'; - -COMMENT ON COLUMN INFORMATION_ACCOUNT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN INFORMATION_ACCOUNT.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE INFORMATION_ACCOUNT TO clearing; - - --- History log of informationAccount - Регистр КС -DROP TABLE IF EXISTS INFORMATION_ACCOUNT_HISTORY; -CREATE TABLE INFORMATION_ACCOUNT_HISTORY(INFORMATION_ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ACCOUNT_ID bigint, CLEARING_ACCOUNT_ID bigint, COMPANY_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE INFORMATION_ACCOUNT_HISTORY IS 'История изменений таблицы informationAccount'; -COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.INFORMATION_ACCOUNT_ID IS 'Идентификатор записи в таблице INFORMATION_ACCOUNT'; -COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.ACCOUNT_ID IS 'Идентификатор информационного счета (linked to account)'; - -COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.CLEARING_ACCOUNT_ID IS 'Идентификатор аналитического счета (linked to account)'; - -COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE INFORMATION_ACCOUNT_HISTORY TO clearing; - --- depoAccount - Депозитарные счета -DROP TABLE IF EXISTS DEPO_ACCOUNT; -CREATE TABLE DEPO_ACCOUNT(ACCOUNT_ID bigint, DEPO_ACCOUNT_TYPE varchar(4), COMPANY_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE DEPO_ACCOUNT IS 'Депозитарные счета'; - -COMMENT ON COLUMN DEPO_ACCOUNT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN DEPO_ACCOUNT.DEPO_ACCOUNT_TYPE IS 'Код типа счета (linked to depoAccountType)'; - -COMMENT ON COLUMN DEPO_ACCOUNT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN DEPO_ACCOUNT.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE DEPO_ACCOUNT TO clearing; - - --- History log of depoAccount - Депозитарные счета -DROP TABLE IF EXISTS DEPO_ACCOUNT_HISTORY; -CREATE TABLE DEPO_ACCOUNT_HISTORY(DEPO_ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ACCOUNT_ID bigint, DEPO_ACCOUNT_TYPE varchar(4), COMPANY_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE DEPO_ACCOUNT_HISTORY IS 'История изменений таблицы depoAccount'; -COMMENT ON COLUMN DEPO_ACCOUNT_HISTORY.DEPO_ACCOUNT_ID IS 'Идентификатор записи в таблице DEPO_ACCOUNT'; -COMMENT ON COLUMN DEPO_ACCOUNT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN DEPO_ACCOUNT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN DEPO_ACCOUNT_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN DEPO_ACCOUNT_HISTORY.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN DEPO_ACCOUNT_HISTORY.DEPO_ACCOUNT_TYPE IS 'Код типа счета (linked to depoAccountType)'; - -COMMENT ON COLUMN DEPO_ACCOUNT_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN DEPO_ACCOUNT_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE DEPO_ACCOUNT_HISTORY TO clearing; - --- accountSymbols - Депо КС - РДЦ -DROP TABLE IF EXISTS ACCOUNT_SYMBOLS; -CREATE TABLE ACCOUNT_SYMBOLS(ID bigint PRIMARY KEY, ACCOUNT_ID bigint, ACCOUNT_SYMBOL_VALUE varchar(255)); -COMMENT ON TABLE ACCOUNT_SYMBOLS IS 'Депо КС - РДЦ'; - -COMMENT ON COLUMN ACCOUNT_SYMBOLS.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ACCOUNT_SYMBOLS.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN ACCOUNT_SYMBOLS.ACCOUNT_SYMBOL_VALUE IS 'Значение реквизита'; - -GRANT ALL PRIVILEGES ON TABLE ACCOUNT_SYMBOLS TO clearing; - - --- History log of accountSymbols - Депо КС - РДЦ -DROP TABLE IF EXISTS ACCOUNT_SYMBOLS_HISTORY; -CREATE TABLE ACCOUNT_SYMBOLS_HISTORY(ACCOUNT_SYMBOLS_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, ACCOUNT_ID bigint, ACCOUNT_SYMBOL_VALUE varchar(255)); -COMMENT ON TABLE ACCOUNT_SYMBOLS_HISTORY IS 'История изменений таблицы accountSymbols'; -COMMENT ON COLUMN ACCOUNT_SYMBOLS_HISTORY.ACCOUNT_SYMBOLS_ID IS 'Идентификатор записи в таблице ACCOUNT_SYMBOLS'; -COMMENT ON COLUMN ACCOUNT_SYMBOLS_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN ACCOUNT_SYMBOLS_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN ACCOUNT_SYMBOLS_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN ACCOUNT_SYMBOLS_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ACCOUNT_SYMBOLS_HISTORY.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN ACCOUNT_SYMBOLS_HISTORY.ACCOUNT_SYMBOL_VALUE IS 'Значение реквизита'; - -GRANT ALL PRIVILEGES ON TABLE ACCOUNT_SYMBOLS_HISTORY TO clearing; - --- clearingAccount - Торгово-Банковские счета -DROP TABLE IF EXISTS CLEARING_ACCOUNT; -CREATE TABLE CLEARING_ACCOUNT(ACCOUNT_ID bigint, CLEARING_ACCOUNT_TYPE varchar(4), COMPANY_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE CLEARING_ACCOUNT IS 'Торгово-Банковские счета'; - -COMMENT ON COLUMN CLEARING_ACCOUNT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN CLEARING_ACCOUNT.CLEARING_ACCOUNT_TYPE IS 'Код типа счета (linked to clearingAccountType)'; - -COMMENT ON COLUMN CLEARING_ACCOUNT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN CLEARING_ACCOUNT.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE CLEARING_ACCOUNT TO clearing; - - --- History log of clearingAccount - Торгово-Банковские счета -DROP TABLE IF EXISTS CLEARING_ACCOUNT_HISTORY; -CREATE TABLE CLEARING_ACCOUNT_HISTORY(CLEARING_ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ACCOUNT_ID bigint, CLEARING_ACCOUNT_TYPE varchar(4), COMPANY_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE CLEARING_ACCOUNT_HISTORY IS 'История изменений таблицы clearingAccount'; -COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.CLEARING_ACCOUNT_ID IS 'Идентификатор записи в таблице CLEARING_ACCOUNT'; -COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.CLEARING_ACCOUNT_TYPE IS 'Код типа счета (linked to clearingAccountType)'; - -COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.ID IS 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE CLEARING_ACCOUNT_HISTORY TO clearing; - --- plannerTemplate - Шаблон расписания операционного дня -DROP TABLE IF EXISTS PLANNER_TEMPLATE; -CREATE TABLE PLANNER_TEMPLATE(TASK varchar(4), TASK_TIME time, MARKET varchar(4), SECTION varchar(4), SESSION_TYPE varchar(4), TASK_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE PLANNER_TEMPLATE IS 'Шаблон расписания операционного дня'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.TASK IS 'Код задачи (linked to task)'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.TASK_TIME IS 'Время задачи'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.MARKET IS 'Код рынка (linked to market)'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.SECTION IS 'Код наименования секции (linked to section)'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.TASK_STATUS IS 'Код статуса (linked to taskStatus)'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.ID IS 'Идентификатор'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN PLANNER_TEMPLATE.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE PLANNER_TEMPLATE TO clearing; - --- clearingCalendar - Рабочие и нерабочие дни -DROP TABLE IF EXISTS CLEARING_CALENDAR; -CREATE TABLE CLEARING_CALENDAR(CLEARING_DATE date, COMPANY_ID bigint, DAY_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CLEARING_CALENDAR IS 'Рабочие и нерабочие дни'; - -COMMENT ON COLUMN CLEARING_CALENDAR.CLEARING_DATE IS 'Дата'; - -COMMENT ON COLUMN CLEARING_CALENDAR.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN CLEARING_CALENDAR.DAY_STATUS IS 'Код статуса (linked to dayStatus)'; - -COMMENT ON COLUMN CLEARING_CALENDAR.ID IS 'Идентификатор'; - -COMMENT ON COLUMN CLEARING_CALENDAR.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN CLEARING_CALENDAR.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE CLEARING_CALENDAR TO clearing; - --- planner - Расписание на все даты -DROP TABLE IF EXISTS PLANNER; -CREATE TABLE PLANNER(TASK varchar(4), TASK_TIME time, CLEARING_DATE date, MARKET varchar(4), SECTION varchar(4), SESSION_TYPE varchar(4), TASK_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE PLANNER IS 'Расписание на все даты'; - -COMMENT ON COLUMN PLANNER.TASK IS 'Код задачи (linked to task)'; - -COMMENT ON COLUMN PLANNER.TASK_TIME IS 'Время задачи'; - -COMMENT ON COLUMN PLANNER.CLEARING_DATE IS 'Дата задачи'; - -COMMENT ON COLUMN PLANNER.MARKET IS 'Код рынка (linked to market)'; - -COMMENT ON COLUMN PLANNER.SECTION IS 'Код наименования секции (linked to section)'; - -COMMENT ON COLUMN PLANNER.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; - -COMMENT ON COLUMN PLANNER.TASK_STATUS IS 'Код статуса (linked to taskStatus)'; - -COMMENT ON COLUMN PLANNER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN PLANNER.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN PLANNER.ID IS 'Идентификатор'; - -COMMENT ON COLUMN PLANNER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN PLANNER.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE PLANNER TO clearing; - --- plannerAllToday - Расписание на текущий день -DROP TABLE IF EXISTS PLANNER_ALL_TODAY; -CREATE TABLE PLANNER_ALL_TODAY(TASK varchar(4), TASK_TIME time, CLEARING_DATE date, MARKET varchar(4), SECTION varchar(4), SESSION_TYPE varchar(4), TASK_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, PARENT varchar(4), PARENT_ID bigint, ID bigint PRIMARY KEY); -COMMENT ON TABLE PLANNER_ALL_TODAY IS 'Расписание на текущий день'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.TASK IS 'Код задачи (linked to task)'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.TASK_TIME IS 'Время'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.CLEARING_DATE IS 'Дата'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.MARKET IS 'Код рынка (linked to market)'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.SECTION IS 'Код наименования секции (linked to section)'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.TASK_STATUS IS 'Код статуса (linked to taskStatus)'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.PARENT IS 'Код источника записи расписания (linked to parent)'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.PARENT_ID IS 'Идентификатор записи в таблице-источнике'; - -COMMENT ON COLUMN PLANNER_ALL_TODAY.ID IS 'Идентификатор'; - -GRANT ALL PRIVILEGES ON TABLE PLANNER_ALL_TODAY TO clearing; - --- launcher - Запуск задачи -DROP TABLE IF EXISTS LAUNCHER; -CREATE TABLE LAUNCHER(SENDER_ID bigint, TASK varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE LAUNCHER IS 'Запуск задачи'; - -COMMENT ON COLUMN LAUNCHER.SENDER_ID IS 'Идентификатор отправителя (linked to userCls)'; - -COMMENT ON COLUMN LAUNCHER.TASK IS 'Код задачи (linked to task)'; - -COMMENT ON COLUMN LAUNCHER.ID IS 'Идентификатор'; - -COMMENT ON COLUMN LAUNCHER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN LAUNCHER.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE LAUNCHER TO clearing; - --- session - Клиринговые сессии -DROP TABLE IF EXISTS SESSION; -CREATE TABLE SESSION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint, SECTION varchar(4), SESSION_TYPE varchar(4), WORKFLOW_STATUS varchar(4)); -COMMENT ON TABLE SESSION IS 'Клиринговые сессии'; - -COMMENT ON COLUMN SESSION.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SESSION.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN SESSION.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN SESSION.CLEARING_DATE IS 'Дата'; - -COMMENT ON COLUMN SESSION.SESSION_STATUS IS 'Код статуса клиринговой сессии (linked to sessionStatus)'; - -COMMENT ON COLUMN SESSION.COMPANY_ID IS 'Идентификатор инициатора торгов (linked to company)'; - -COMMENT ON COLUMN SESSION.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN SESSION.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; - -COMMENT ON COLUMN SESSION.SECTION IS 'Код наименования секции (linked to section)'; - -COMMENT ON COLUMN SESSION.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; - -COMMENT ON COLUMN SESSION.WORKFLOW_STATUS IS 'Код статуса (linked to workflowStatus)'; - -GRANT ALL PRIVILEGES ON TABLE SESSION TO clearing; - - --- History log of session - Клиринговые сессии -DROP TABLE IF EXISTS SESSION_HISTORY; -CREATE TABLE SESSION_HISTORY(SESSION_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, SESSION_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint, SECTION varchar(4), SESSION_TYPE varchar(4), WORKFLOW_STATUS varchar(4)); -COMMENT ON TABLE SESSION_HISTORY IS 'История изменений таблицы session'; -COMMENT ON COLUMN SESSION_HISTORY.SESSION_ID IS 'Идентификатор записи в таблице SESSION'; -COMMENT ON COLUMN SESSION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN SESSION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN SESSION_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN SESSION_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SESSION_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN SESSION_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN SESSION_HISTORY.CLEARING_DATE IS 'Дата'; - -COMMENT ON COLUMN SESSION_HISTORY.SESSION_STATUS IS 'Код статуса клиринговой сессии (linked to sessionStatus)'; - -COMMENT ON COLUMN SESSION_HISTORY.COMPANY_ID IS 'Идентификатор инициатора торгов (linked to company)'; - -COMMENT ON COLUMN SESSION_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - -COMMENT ON COLUMN SESSION_HISTORY.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; - -COMMENT ON COLUMN SESSION_HISTORY.SECTION IS 'Код наименования секции (linked to section)'; - -COMMENT ON COLUMN SESSION_HISTORY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; - -COMMENT ON COLUMN SESSION_HISTORY.WORKFLOW_STATUS IS 'Код статуса (linked to workflowStatus)'; - -GRANT ALL PRIVILEGES ON TABLE SESSION_HISTORY TO clearing; - --- sTrades - Сделки из Торговой системы -DROP TABLE IF EXISTS S_TRADES; -CREATE TABLE S_TRADES(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, TRADE_NUM bigint, OPERATION varchar(40), CLASS_CODE varchar(255), TRADE_DATE date, SEC_CODE varchar(255), ACCRUEDINT numeric(72,18), ACCRUEDINT2 numeric(72,18), LOWER_DISCOUNT numeric(72,18), ORDER_NUM bigint, PRICE numeric(72,18), PRICE2 numeric(72,18), REPO_RATE numeric(72,18), REPO_VALUE numeric(72,18), REPO2_VALUE numeric(72,18), START_DISCOUNT numeric(72,18), TS_COMMISSION numeric(72,18), UPPER_DISCOUNT numeric(72,18), VALUE numeric(72,18), YIELD numeric(72,18), QTY numeric(72,18), QTY_PCS numeric(72,18), TRADE_DATE_TIME timestamp, REPO_TERM bigint, CLEARING_COMMISSION numeric(72,18), EXCHANGE_COMMISSION numeric(72,18), TECH_CENTER_COMMISSION numeric(72,18), ACCOUNT varchar(50), BROKER_REF varchar(34), CLIENT_CODE varchar(255), SETTLE_CODE varchar(50), USER_ID varchar(32), EXCHANGE_CODE varchar(64), FIRM_ID varchar(255), FIRM_NAME varchar(255), CP_FIRM_ID varchar(255), CP_FIRM_NAME varchar(255), CLASS_NAME varchar(255), SEC_NAME varchar(255), SETTLE_DATE date, SETTLE_CURRENCY varchar(4), TRADE_CURRENCY varchar(4), TRADE_TIME_MS bigint, BANK_ACC_ID varchar(12), SECTION varchar(4)); -COMMENT ON TABLE S_TRADES IS 'Сделки из Торговой системы'; - -COMMENT ON COLUMN S_TRADES.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_TRADES.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN S_TRADES.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN S_TRADES.TRADE_NUM IS 'Номер сделки'; - -COMMENT ON COLUMN S_TRADES.OPERATION IS 'Направленность сделки (BUY или SELL)'; - -COMMENT ON COLUMN S_TRADES.CLASS_CODE IS 'Код класса инструментов'; - -COMMENT ON COLUMN S_TRADES.TRADE_DATE IS 'Дата торговой сессии'; - -COMMENT ON COLUMN S_TRADES.SEC_CODE IS 'Код инструмента'; - -COMMENT ON COLUMN S_TRADES.ACCRUEDINT IS 'Накопленный купонный доход'; - -COMMENT ON COLUMN S_TRADES.ACCRUEDINT2 IS 'Доход(%) на дату выкупа'; - -COMMENT ON COLUMN S_TRADES.LOWER_DISCOUNT IS 'Нижний дисконт(%)'; - -COMMENT ON COLUMN S_TRADES.ORDER_NUM IS 'Номер заявки'; - -COMMENT ON COLUMN S_TRADES.PRICE IS 'Цена сделки'; - -COMMENT ON COLUMN S_TRADES.PRICE2 IS 'Цена выкупа второй части РЕПО'; - -COMMENT ON COLUMN S_TRADES.REPO_RATE IS 'Ставка РЕПО (%)'; - -COMMENT ON COLUMN S_TRADES.REPO_VALUE IS 'Сумма РЕПО'; - -COMMENT ON COLUMN S_TRADES.REPO2_VALUE IS 'Объем сделки выкупа РЕПО, рублей'; - -COMMENT ON COLUMN S_TRADES.START_DISCOUNT IS 'Начальный дисконт(%)'; - -COMMENT ON COLUMN S_TRADES.TS_COMMISSION IS 'Комиссия торговой системы'; - -COMMENT ON COLUMN S_TRADES.UPPER_DISCOUNT IS 'Верхний дисконт(%)'; - -COMMENT ON COLUMN S_TRADES.VALUE IS 'Объем сделки без учета комиссионного сбора биржи и % дохода'; - -COMMENT ON COLUMN S_TRADES.YIELD IS 'Доходность'; - -COMMENT ON COLUMN S_TRADES.QTY IS 'Количество бумаг в лотах'; - -COMMENT ON COLUMN S_TRADES.QTY_PCS IS 'Количество бумаг в штуках'; - -COMMENT ON COLUMN S_TRADES.TRADE_DATE_TIME IS 'Дата и время сделки'; - -COMMENT ON COLUMN S_TRADES.REPO_TERM IS 'Срок РЕПО'; - -COMMENT ON COLUMN S_TRADES.CLEARING_COMMISSION IS 'Клиринговая комиссия. Параметр сделок на МБ'; - -COMMENT ON COLUMN S_TRADES.EXCHANGE_COMMISSION IS 'Комиссия Фондовой биржи. Параметр сделок на МБ'; - -COMMENT ON COLUMN S_TRADES.TECH_CENTER_COMMISSION IS 'Комиссия Технического центра. Параметр сделок на МБ'; - -COMMENT ON COLUMN S_TRADES.ACCOUNT IS 'Торговый счет'; - -COMMENT ON COLUMN S_TRADES.BROKER_REF IS 'Комментарий, обычно: код клиента>/номер поручения>'; - -COMMENT ON COLUMN S_TRADES.CLIENT_CODE IS 'Код участника торгов = Код участника клиринга = Код участника расчетов'; - -COMMENT ON COLUMN S_TRADES.SETTLE_CODE IS 'Код расчетов по сделке'; - -COMMENT ON COLUMN S_TRADES.USER_ID IS 'Идентификатор трейдера'; - -COMMENT ON COLUMN S_TRADES.EXCHANGE_CODE IS 'Идентификатор биржи'; - -COMMENT ON COLUMN S_TRADES.FIRM_ID IS 'Трейдер'; - -COMMENT ON COLUMN S_TRADES.FIRM_NAME IS 'Организация трейдера'; - -COMMENT ON COLUMN S_TRADES.CP_FIRM_ID IS 'Партнер'; - -COMMENT ON COLUMN S_TRADES.CP_FIRM_NAME IS 'Организация партнера'; - -COMMENT ON COLUMN S_TRADES.CLASS_NAME IS 'Класс инструмента'; - -COMMENT ON COLUMN S_TRADES.SEC_NAME IS 'Полное наименование инструмента'; - -COMMENT ON COLUMN S_TRADES.SETTLE_DATE IS 'Дата расчетов'; - -COMMENT ON COLUMN S_TRADES.SETTLE_CURRENCY IS 'Валюта расчетов'; - -COMMENT ON COLUMN S_TRADES.TRADE_CURRENCY IS 'Валюта сделки'; - -COMMENT ON COLUMN S_TRADES.TRADE_TIME_MS IS 'Микросекунды времени сделки'; - -COMMENT ON COLUMN S_TRADES.BANK_ACC_ID IS 'Идентификатор расчетного счета/кода в клиринговой организации'; - -COMMENT ON COLUMN S_TRADES.SECTION IS 'Код наименования секции (linked to section)'; - -GRANT ALL PRIVILEGES ON TABLE S_TRADES TO clearing; - --- executionDeposit - Сделки на секции МКР -DROP TABLE IF EXISTS EXECUTION_DEPOSIT; -CREATE TABLE EXECUTION_DEPOSIT(EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), MARKET varchar(8), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_CODE varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); -COMMENT ON TABLE EXECUTION_DEPOSIT IS 'Сделки на секции МКР'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр '; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.MARKET IS 'Код секции финансового инструмента'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.PRICE IS 'Ставка по депозиту'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.LOTS IS 'Количество лотов'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.QUANTITY IS 'Количество штук'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_AMOUNT IS 'Объем сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_AMOUNT IS 'Объем возврата'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.INTEREST_AMOUNT IS 'Объем процентов'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SIDE IS 'Код направления сделки (linked to moneyFlowSide)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SETTLEMENT_CURRENCY IS 'Код валюты расчетов по инструменту (linked to currencyCode)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.DURATION IS 'Срок, дней'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_CODE IS 'Код расчетов при возврате'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_CODE IS 'Полный код инструмента со сроком'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to moneyMarketSecurity)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.CONTRACT IS 'Продукт'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра партнера (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_TRADING_CLEARING_REGISTRY 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.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.CLEARING_DATE IS 'Дата клиринга'; - -GRANT ALL PRIVILEGES ON TABLE EXECUTION_DEPOSIT TO clearing; - - --- History log of executionDeposit - Сделки на секции МКР -DROP TABLE IF EXISTS EXECUTION_DEPOSIT_HISTORY; -CREATE TABLE EXECUTION_DEPOSIT_HISTORY(EXECUTION_DEPOSIT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), MARKET varchar(8), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_CODE varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); -COMMENT ON TABLE EXECUTION_DEPOSIT_HISTORY IS 'История изменений таблицы executionDeposit'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EXECUTION_DEPOSIT_ID IS 'Идентификатор записи в таблице EXECUTION_DEPOSIT'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр '; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.MARKET IS 'Код секции финансового инструмента'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.PRICE IS 'Ставка по депозиту'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.LOTS IS 'Количество лотов'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.QUANTITY IS 'Количество штук'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.FIRST_LEG_AMOUNT IS 'Объем сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECOND_LEG_AMOUNT IS 'Объем возврата'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.INTEREST_AMOUNT IS 'Объем процентов'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SIDE IS 'Код направления сделки (linked to moneyFlowSide)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SETTLEMENT_CURRENCY IS 'Код валюты расчетов по инструменту (linked to currencyCode)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.DURATION IS 'Срок, дней'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.FIRST_LEG_SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECOND_LEG_SETTLEMENT_CODE IS 'Код расчетов при возврате'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECURITY_CODE IS 'Полный код инструмента со сроком'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to moneyMarketSecurity)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.CONTRACT IS 'Продукт'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра партнера (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COUNTER_PARTY_TRADING_CLEARING_REGISTRY 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.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.CLEARING_DATE IS 'Дата клиринга'; - -GRANT ALL PRIVILEGES ON TABLE EXECUTION_DEPOSIT_HISTORY TO clearing; - --- executionFond - Сделки на Фондовой секции -DROP TABLE IF EXISTS EXECUTION_FOND; -CREATE TABLE EXECUTION_FOND(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, EXCHANGE_EXECUTION_ID bigint, SIDE varchar(4), MARKET varchar(4), TRADING_DATE date, SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, INTEREST_AMOUNT numeric(72,2), EXCHANGE_ORDER_ID bigint, PRICE numeric(72,18), SETTLEMENT_AMOUNT numeric(72,2), LOTS numeric(72,2), QUANTITY numeric(72,2), EXCHANGE_EXECUTION_TIME timestamp, DURATION bigint, TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), COMMENT varchar(255), CLIENT_CODE_ID bigint, SETTLEMENT_CODE varchar(12), COMPANY_ID bigint, COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), SECURITY_FULL_NAME varchar(255), SETTLEMENT_DATE date, SETTLEMENT_CURRENCY varchar(4), EXCHANGE_EXECUTION_MICROSECONDS timestamp, COVERAGE_STATUS varchar(4), SESSION_ID bigint); -COMMENT ON TABLE EXECUTION_FOND IS 'Сделки на Фондовой секции'; - -COMMENT ON COLUMN EXECUTION_FOND.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXECUTION_FOND.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN EXECUTION_FOND.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN EXECUTION_FOND.CLEARING_DATE IS 'Дата клиринга'; - -COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_FOND.SIDE IS 'Код направления сделки (linked to side)'; - -COMMENT ON COLUMN EXECUTION_FOND.MARKET IS 'Код секции финансового инструмента'; - -COMMENT ON COLUMN EXECUTION_FOND.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN EXECUTION_FOND.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; - -COMMENT ON COLUMN EXECUTION_FOND.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; - -COMMENT ON COLUMN EXECUTION_FOND.INTEREST_AMOUNT IS 'НКД'; - -COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_ORDER_ID IS 'Идентификационный номер заявки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_FOND.PRICE IS 'Цена, %'; - -COMMENT ON COLUMN EXECUTION_FOND.SETTLEMENT_AMOUNT IS 'Объем сделки'; - -COMMENT ON COLUMN EXECUTION_FOND.LOTS IS 'Количество лотов'; - -COMMENT ON COLUMN EXECUTION_FOND.QUANTITY IS 'Количество штук'; - -COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_FOND.DURATION IS 'Срок, дней'; - -COMMENT ON COLUMN EXECUTION_FOND.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_FOND.PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр '; - -COMMENT ON COLUMN EXECUTION_FOND.COMMENT IS 'Комментарий'; - -COMMENT ON COLUMN EXECUTION_FOND.CLIENT_CODE_ID IS 'Идентификатор кода клиента'; - -COMMENT ON COLUMN EXECUTION_FOND.SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN EXECUTION_FOND.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN EXECUTION_FOND.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; - -COMMENT ON COLUMN EXECUTION_FOND.COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра партнера (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_FOND.COUNTER_PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр партнера'; - -COMMENT ON COLUMN EXECUTION_FOND.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN EXECUTION_FOND.SETTLEMENT_DATE IS 'Дата расчетов'; - -COMMENT ON COLUMN EXECUTION_FOND.SETTLEMENT_CURRENCY IS 'Код валюты расчетов по инструменту (linked to currencyCode)'; - -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)'; - -GRANT ALL PRIVILEGES ON TABLE EXECUTION_FOND TO clearing; - - --- History log of executionFond - Сделки на Фондовой секции -DROP TABLE IF EXISTS EXECUTION_FOND_HISTORY; -CREATE TABLE EXECUTION_FOND_HISTORY(EXECUTION_FOND_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, EXCHANGE_EXECUTION_ID bigint, SIDE varchar(4), MARKET varchar(4), TRADING_DATE date, SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, INTEREST_AMOUNT numeric(72,2), EXCHANGE_ORDER_ID bigint, PRICE numeric(72,18), SETTLEMENT_AMOUNT numeric(72,2), LOTS numeric(72,2), QUANTITY numeric(72,2), EXCHANGE_EXECUTION_TIME timestamp, DURATION bigint, TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), COMMENT varchar(255), CLIENT_CODE_ID bigint, SETTLEMENT_CODE varchar(12), COMPANY_ID bigint, COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), SECURITY_FULL_NAME varchar(255), SETTLEMENT_DATE date, SETTLEMENT_CURRENCY varchar(4), EXCHANGE_EXECUTION_MICROSECONDS timestamp, COVERAGE_STATUS varchar(4), SESSION_ID bigint); -COMMENT ON TABLE EXECUTION_FOND_HISTORY IS 'История изменений таблицы executionFond'; -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXECUTION_FOND_ID IS 'Идентификатор записи в таблице EXECUTION_FOND'; -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.CLEARING_DATE IS 'Дата клиринга'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SIDE IS 'Код направления сделки (linked to side)'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.MARKET IS 'Код секции финансового инструмента'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.INTEREST_AMOUNT IS 'НКД'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_ORDER_ID IS 'Идентификационный номер заявки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.PRICE IS 'Цена, %'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SETTLEMENT_AMOUNT IS 'Объем сделки'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.LOTS IS 'Количество лотов'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.QUANTITY IS 'Количество штук'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.DURATION IS 'Срок, дней'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр '; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COMMENT IS 'Комментарий'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.CLIENT_CODE_ID IS 'Идентификатор кода клиента'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра партнера (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COUNTER_PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр партнера'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SETTLEMENT_DATE IS 'Дата расчетов'; - -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SETTLEMENT_CURRENCY IS 'Код валюты расчетов по инструменту (linked to currencyCode)'; - -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)'; - -GRANT ALL PRIVILEGES ON TABLE EXECUTION_FOND_HISTORY TO clearing; - --- executionCurrency - Сделки с валютными инструментами -DROP TABLE IF EXISTS EXECUTION_CURRENCY; -CREATE TABLE EXECUTION_CURRENCY(EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, EXCHANGE_EXECUTION_MICROSECONDS timestamp, TRADING_DATE date, SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), SECURITY_ID bigint, SECURITY_SYMBOL varchar(255), SECURITY_NAME varchar(255), COMPANY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), SETTLEMENT_AMOUNT numeric(72,2), QUANTITY numeric(72,2), SIDE varchar(4), CURRENCY_CODE varchar(4), SETTLEMENT_ORGANIZATION varchar(255), COVERAGE_STATUS varchar(4), SESSION_ID bigint, CLEARING_DATE date, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE EXECUTION_CURRENCY IS 'Сделки с валютными инструментами'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.EXCHANGE_EXECUTION_MICROSECONDS IS 'Микросекунды заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SETTLEMENT_DATE IS 'Дата расчетов'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SECURITY_NAME IS 'Краткое наименование инструмента'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.PARTY_TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр '; - -COMMENT ON COLUMN EXECUTION_CURRENCY.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра партнера (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.COUNTER_PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр партнера'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.MARKET IS 'Код секции валютного инструмента (linked to market)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.PRICE IS 'Цена'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.LOTS IS 'Количество лотов'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SETTLEMENT_AMOUNT IS 'Объем сделки в валюте лота'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.QUANTITY IS 'Количество штук'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SIDE IS 'Код направления сделки (linked to side)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.CURRENCY_CODE IS 'Код валюты лота (linked to currencyCode)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SETTLEMENT_ORGANIZATION IS 'Наименование расчетной организации'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.CLEARING_DATE IS 'Дата клиринга'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN EXECUTION_CURRENCY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE EXECUTION_CURRENCY TO clearing; - - --- History log of executionCurrency - Сделки с валютными инструментами -DROP TABLE IF EXISTS EXECUTION_CURRENCY_HISTORY; -CREATE TABLE EXECUTION_CURRENCY_HISTORY(EXECUTION_CURRENCY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, EXCHANGE_EXECUTION_MICROSECONDS timestamp, TRADING_DATE date, SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), SECURITY_ID bigint, SECURITY_SYMBOL varchar(255), SECURITY_NAME varchar(255), COMPANY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), SETTLEMENT_AMOUNT numeric(72,2), QUANTITY numeric(72,2), SIDE varchar(4), CURRENCY_CODE varchar(4), SETTLEMENT_ORGANIZATION varchar(255), COVERAGE_STATUS varchar(4), SESSION_ID bigint, CLEARING_DATE date, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE EXECUTION_CURRENCY_HISTORY IS 'История изменений таблицы executionCurrency'; -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.EXECUTION_CURRENCY_ID IS 'Идентификатор записи в таблице EXECUTION_CURRENCY'; -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.EXCHANGE_EXECUTION_MICROSECONDS IS 'Микросекунды заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SETTLEMENT_DATE IS 'Дата расчетов'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SECURITY_NAME IS 'Краткое наименование инструмента'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.PARTY_TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр '; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра партнера (linked to tradingClearingRegistry)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.COUNTER_PARTY_TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр партнера'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.MARKET IS 'Код секции валютного инструмента (linked to market)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.PRICE IS 'Цена'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.LOTS IS 'Количество лотов'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SETTLEMENT_AMOUNT IS 'Объем сделки в валюте лота'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.QUANTITY IS 'Количество штук'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SIDE IS 'Код направления сделки (linked to side)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.CURRENCY_CODE IS 'Код валюты лота (linked to currencyCode)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SETTLEMENT_ORGANIZATION IS 'Наименование расчетной организации'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.CLEARING_DATE IS 'Дата клиринга'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN EXECUTION_CURRENCY_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE EXECUTION_CURRENCY_HISTORY TO clearing; - --- 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, SET_HOUSE_NAME varchar(255), NUMBER varchar(255), DEPO_CODE varchar(50), QUANTITY numeric(72,2), SECURITY_SYMBOL varchar(255)); -COMMENT ON TABLE DEPO_BALANCE_REGISTER IS 'Реестр остатков ценных бумаг'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.SET_HOUSE_NAME IS 'Наименование РД'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.NUMBER IS 'Номер отчета'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.DEPO_CODE IS 'Код раздела субсчета/счета депо'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.QUANTITY IS 'Количество'; - -COMMENT ON COLUMN DEPO_BALANCE_REGISTER.SECURITY_SYMBOL IS 'Код ценной бумаги'; - -GRANT ALL PRIVILEGES ON TABLE DEPO_BALANCE_REGISTER TO clearing; - --- moneyBalanceRegister - Реестр остатков денежных средств -DROP TABLE IF EXISTS MONEY_BALANCE_REGISTER; -CREATE TABLE MONEY_BALANCE_REGISTER(SET_HOUSE_NAME varchar(255), NUMBER varchar(255), CREATED_AT timestamp, CURRENCY_CODE varchar(4), COMPANY_ID bigint, ACCOUNT varchar(50), REMAINDER_SUM numeric(72,18), INFO_ACCOUNT varchar(50), COMPANY_FULL_NAME varchar(255), ID bigint PRIMARY KEY, INN varchar(255), SESSION_ID bigint, BLOCKED_SUM numeric(72,18), UNBLOCKED_SUM numeric(72,18), UPDATED_AT timestamp); -COMMENT ON TABLE MONEY_BALANCE_REGISTER IS 'Реестр остатков денежных средств'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.SET_HOUSE_NAME IS 'Наименование РО'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.NUMBER IS 'Номер отчета'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.CURRENCY_CODE IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.ACCOUNT IS 'Номер торгового /клирингового счета/ счета внутреннего учета СПВБ'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.REMAINDER_SUM IS 'Остаток денежных средств'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.INFO_ACCOUNT IS 'Номер счета внутреннего учета СПВБ'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.BLOCKED_SUM IS 'Сумма блокированных денежных средств'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.UNBLOCKED_SUM IS 'Сумма свободных денежных средств'; - -COMMENT ON COLUMN MONEY_BALANCE_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE MONEY_BALANCE_REGISTER TO clearing; - --- 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 ADMITTED_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SECURITY_FULL_NAME IS 'Полное наименование инструмента'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CLEARING_CODE IS 'Код участника клиринга'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.ACCOUNT IS 'Счет компании'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.AMOUNT IS 'Сумма обязательств'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - -GRANT ALL PRIVILEGES ON TABLE ADMITTED_LIABILITIES_REGISTER TO clearing; - --- 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 COVERED_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SECURITY_FULL_NAME IS 'Полное наименование инструмента'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CLEARING_CODE IS 'Код участника клиринга'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.ACCOUNT IS 'Счет компании'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.AMOUNT IS 'Сумма обязательств'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - -GRANT ALL PRIVILEGES ON TABLE COVERED_LIABILITIES_REGISTER TO clearing; - --- moneyPaymentInstructionRegister - Реестр распоряжений, направленных расчетной организации -DROP TABLE IF EXISTS MONEY_PAYMENT_INSTRUCTION_REGISTER; -CREATE TABLE MONEY_PAYMENT_INSTRUCTION_REGISTER(CREDIT_LEG_ACCOUNT varchar(50), CREDIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_CURRENCY_CODE varchar(4), DEBIT_LEG_ACCOUNT varchar(50), 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 MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_ACCOUNT IS 'Счет отправителя'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_AMOUNT IS 'Сумма отправителя'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.DEBIT_LEG_ACCOUNT IS 'Счет получателя'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.SENDER IS 'Отправитель'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.ADDRESSEE IS 'Получатель'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CLEARING_DATE IS 'Дата расчета'; - -GRANT ALL PRIVILEGES ON TABLE MONEY_PAYMENT_INSTRUCTION_REGISTER TO clearing; - --- 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 DEPO_PAYMENT_INSTRUCTION_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.TRADING_CLEARING_REGISTRY_TYPE IS 'Тип торгово-клирингового регистра'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.CB_CODE IS 'Код ЦБ'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.QUANTITY IS 'Количество'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.DIRECTION IS 'Направление (linked to inOutDirection)'; - -COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -GRANT ALL PRIVILEGES ON TABLE DEPO_PAYMENT_INSTRUCTION_REGISTER TO clearing; - --- 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 EXCLUDE_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.VALID_FROM_DATE IS 'Дата начала cессии'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.VALID_TO_DATE IS 'Дата окончания cессии'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SEGMENT IS 'Сегмент'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.REGISTRY_CODE IS 'Код регистра (linked to tradingClearingRegistryType)'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.ACCOUNT IS 'Наименование счета'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.REGISTRY_STATUS IS 'Код статуса'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.CURRENCY IS 'Код валюты отправителя (linked to currency)'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SUM_LIABILITIES IS 'Сумма обязательств'; - -COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SETTLEMENT_DATE IS 'Дата расчета'; - -GRANT ALL PRIVILEGES ON TABLE EXCLUDE_LIABILITIES_REGISTER TO clearing; - --- pairSdf - Пары файлов -DROP TABLE IF EXISTS PAIR_SDF; -CREATE TABLE PAIR_SDF(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, IN_S_DF_ID varchar(255), IN_S_DF varchar(255), OUT_S_DF_ID varchar(255), OUT_S_DF varchar(255)); -COMMENT ON TABLE PAIR_SDF IS 'Пары файлов'; - -COMMENT ON COLUMN PAIR_SDF.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN PAIR_SDF.CREATED_AT IS 'Время создания записи'; - -COMMENT ON COLUMN PAIR_SDF.UPDATED_AT IS 'Время изменения записи'; - -COMMENT ON COLUMN PAIR_SDF.IN_S_DF_ID IS 'Идентификатор входящего файла'; - -COMMENT ON COLUMN PAIR_SDF.IN_S_DF IS 'Входящий файл'; - -COMMENT ON COLUMN PAIR_SDF.OUT_S_DF_ID IS 'Идентификатор исходящего файла'; - -COMMENT ON COLUMN PAIR_SDF.OUT_S_DF IS 'Исходящий файл'; - -GRANT ALL PRIVILEGES ON TABLE PAIR_SDF TO clearing; - --- gatewayResult - Результат запроса к gateway -DROP TABLE IF EXISTS GATEWAY_RESULT; -CREATE TABLE GATEWAY_RESULT(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, REQUEST_ID varchar(255), NAME_REQUEST varchar(255), REQUEST varchar(1023), RESULT varchar(1023), GATEWAY_RESULT_STATUS varchar(4)); -COMMENT ON TABLE GATEWAY_RESULT IS 'Результат запроса к gateway'; - -COMMENT ON COLUMN GATEWAY_RESULT.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN GATEWAY_RESULT.CREATED_AT IS 'Время создания записи'; - -COMMENT ON COLUMN GATEWAY_RESULT.UPDATED_AT IS 'Время изменения записи'; - -COMMENT ON COLUMN GATEWAY_RESULT.REQUEST_ID IS 'ID запроса'; - -COMMENT ON COLUMN GATEWAY_RESULT.NAME_REQUEST IS 'Наименование запроса'; - -COMMENT ON COLUMN GATEWAY_RESULT.REQUEST IS 'Тело запроса'; - -COMMENT ON COLUMN GATEWAY_RESULT.RESULT IS 'Тело ответа'; - -COMMENT ON COLUMN GATEWAY_RESULT.GATEWAY_RESULT_STATUS IS 'Статус запроса (linked to gatewayResultStatus)'; - -GRANT ALL PRIVILEGES ON TABLE GATEWAY_RESULT TO clearing; - --- 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 LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.VALID_FROM_DATE IS 'Дата начала cессии'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.VALID_TO_DATE IS 'Дата окончания cессии'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.SEGMENT IS 'Сегмент'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.REGISTRY_CODE IS 'Код регистра (linked to tradingClearingRegistryType)'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.ACCOUNT IS 'Наименование счета'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.REGISTRY_STATUS IS 'Код статуса'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.CURRENCY IS 'Код валюты отправителя (linked to currency)'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.SUM_LIABILITIES IS 'Сумма обязательств'; - -COMMENT ON COLUMN LIABILITIES_REGISTER.SETTLEMENT_DATE IS 'Дата расчета'; - -GRANT ALL PRIVILEGES ON TABLE LIABILITIES_REGISTER TO clearing; - --- 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 EXECUTION_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN EXECUTION_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_REGISTER.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; - -COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_ID IS 'Идентификатор компании-продавца (linked to company)'; - -COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_CLEARING_CODE IS 'Клиринговый код продавца'; - -COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_TRADING_CLEARING_REGISTER IS 'Торгово-клиринговый регистр продавца'; - -COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_MONEY_ACCOUNT IS 'Денежный счет продавца'; - -COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_DEPO_ACCOUNT IS 'Депо счет продавца'; - -COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_ID IS 'Идентификатор компании-покупателя (linked to company)'; - -COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_CLEARING_CODE IS 'Клиринговый код покупателя'; - -COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_TRADING_CLEARING_REGISTER IS 'Торгово-клиринговый регистр покупателя'; - -COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_MONEY_ACCOUNT IS 'Денежный счет покупателя'; - -COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_DEPO_ACCOUNT IS 'Депо счет покупателя'; - -COMMENT ON COLUMN EXECUTION_REGISTER.AMOUNT IS 'Сумма сделки'; - -COMMENT ON COLUMN EXECUTION_REGISTER.QUANTITY IS 'Количество ценных бумаг'; - -COMMENT ON COLUMN EXECUTION_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXECUTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN EXECUTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN EXECUTION_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - -GRANT ALL PRIVILEGES ON TABLE EXECUTION_REGISTER TO clearing; - --- statement - Транзакции по деньгам/бумагам -DROP TABLE IF EXISTS STATEMENT; -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.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; - -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 IS 'Наименование счета'; - -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.OPERATION_STATUS IS 'Код статуса обработки (linked to operationStatus)'; - -COMMENT ON COLUMN STATEMENT.ERROR_CODE_ID IS 'Идентификатор кода ошибки (linked to errorCode)'; - -COMMENT ON COLUMN STATEMENT.ERROR_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; - -COMMENT ON COLUMN STATEMENT.IN_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.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN STATEMENT.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN STATEMENT.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN STATEMENT.CLEARING_DATE IS 'Дата расчета'; - -GRANT ALL PRIVILEGES ON TABLE STATEMENT TO clearing; - --- paymentInstruction - Платежные поручения -DROP TABLE IF EXISTS PAYMENT_INSTRUCTION; -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.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.ADDRESSEE_BANK_NAME IS 'Наименование банка получателя'; - -COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYMENT_DATE IS 'Дата и время платежа'; - -COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYMENT_PURPOSE IS 'Назначение платежа'; - -COMMENT ON COLUMN PAYMENT_INSTRUCTION.SETTLEMENT_DATE IS 'Дата расчетов'; - -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_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_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.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.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.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN PAYMENT_INSTRUCTION.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN PAYMENT_INSTRUCTION.CLEARING_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN PAYMENT_INSTRUCTION.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; - -GRANT ALL PRIVILEGES ON TABLE PAYMENT_INSTRUCTION TO clearing; - --- notification - Сообщения -DROP TABLE IF EXISTS NOTIFICATION; -CREATE TABLE NOTIFICATION(ID bigint PRIMARY KEY, CLEARING_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4), COMMENT varchar(255), PRIORITY varchar(4)); -COMMENT ON TABLE NOTIFICATION IS 'Сообщения'; - -COMMENT ON COLUMN NOTIFICATION.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN NOTIFICATION.CLEARING_DATE IS 'Дата'; - -COMMENT ON COLUMN NOTIFICATION.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN NOTIFICATION.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN NOTIFICATION.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; - -COMMENT ON COLUMN NOTIFICATION.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; - -COMMENT ON COLUMN NOTIFICATION.OBJECT_TYPE IS 'Код типа объекта (linked to objectType)'; - -COMMENT ON COLUMN NOTIFICATION.OBJECT_ID IS 'Идентификатор объекта'; - -COMMENT ON COLUMN NOTIFICATION.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)'; - -COMMENT ON COLUMN NOTIFICATION.COMMENT IS 'Текст сообщения'; - -COMMENT ON COLUMN NOTIFICATION.PRIORITY IS 'Код приоритета отображения (linked to priority)'; - -GRANT ALL PRIVILEGES ON TABLE NOTIFICATION TO clearing; - - --- 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, CLEARING_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4), COMMENT varchar(255), PRIORITY 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 NOTIFICATION_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.CLEARING_DATE IS 'Дата'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_TYPE IS 'Код типа объекта (linked to objectType)'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_ID IS 'Идентификатор объекта'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.COMMENT IS 'Текст сообщения'; - -COMMENT ON COLUMN NOTIFICATION_HISTORY.PRIORITY IS 'Код приоритета отображения (linked to priority)'; - -GRANT ALL PRIVILEGES ON TABLE NOTIFICATION_HISTORY TO clearing; - --- 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 VERIFICATION_RESULT.CLEARING_CODE IS 'Код участника клиринга'; - -COMMENT ON COLUMN VERIFICATION_RESULT.ACCOUNT_ID IS 'Идентификатор счета УК, по которому проводится сверка'; - -COMMENT ON COLUMN VERIFICATION_RESULT.IN_SUM IS 'Входящая сумма остатков'; - -COMMENT ON COLUMN VERIFICATION_RESULT.OUT_INT_SUM IS 'Исходящая сумма остатков, полученная в КС'; - -COMMENT ON COLUMN VERIFICATION_RESULT.OUT_EXT_SUM IS 'Исходящая сумма остатков из отчета ПРЦ'; - -COMMENT ON COLUMN VERIFICATION_RESULT.DIFF_SUM IS 'Сумма расхождений'; - -COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_ID IS 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_STATUS IS 'Код общего статуса сверки (linked to resultStatus)'; - -COMMENT ON COLUMN VERIFICATION_RESULT.RESULT_STATUS IS 'Код статуса сверки (linked to resultStatus)'; - -COMMENT ON COLUMN VERIFICATION_RESULT.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN VERIFICATION_RESULT.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN VERIFICATION_RESULT.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE VERIFICATION_RESULT TO clearing; - --- 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 COLUMN S_DF01.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF01.CURR_CODE IS 'Код валюты'; - -COMMENT ON COLUMN S_DF01.ACCOUNT IS 'Счет участника клиринга'; - -COMMENT ON COLUMN S_DF01.REMAINDER IS 'Остаток денежных средств'; - -COMMENT ON COLUMN S_DF01.DEAL IS 'Биржевой код участника клиринга'; - -COMMENT ON COLUMN S_DF01.ACC_CODE IS 'Код счета'; - -COMMENT ON COLUMN S_DF01.DAT IS 'Дата расчетов'; - -COMMENT ON COLUMN S_DF01.MARKET IS 'Биржевая секция'; - -COMMENT ON COLUMN S_DF01.ACC_NAME IS 'Наименование участника клиринга'; - -COMMENT ON COLUMN S_DF01.ACC_TYPE IS 'Признак счета'; - -COMMENT ON COLUMN S_DF01.SUMENGAGE IS 'Сумма блокированных денежных средств'; - -COMMENT ON COLUMN S_DF01.SUMUNBLOCK IS 'Сумма свободных денежных средств'; - -COMMENT ON COLUMN S_DF01.FILE_TYPE IS 'Тип файла'; - -COMMENT ON COLUMN S_DF01.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF01.GENERATION_TIME IS 'Дата и время обработки файла'; - -COMMENT ON COLUMN S_DF01.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF01 TO clearing; - --- 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, FILE_NAME varchar(255), IN_S_DF_ID bigint); -COMMENT ON TABLE S_DF02 IS 'ДФ-02 Уведомление об исполнении операции загрузки денежных средств или уведомление об ошибке'; - -COMMENT ON COLUMN S_DF02.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF02.CURR_CODE IS 'Код валюты'; - -COMMENT ON COLUMN S_DF02.ACCOUNT IS 'Счет участника клиринга'; - -COMMENT ON COLUMN S_DF02.REMAINDER IS 'Остаток денежных средств'; - -COMMENT ON COLUMN S_DF02.DEAL IS 'Биржевой код участника клиринга'; - -COMMENT ON COLUMN S_DF02.ACC_CODE IS 'Код счета'; - -COMMENT ON COLUMN S_DF02.DAT IS 'Дата расчетов'; - -COMMENT ON COLUMN S_DF02.MARKET IS 'Биржевая секция'; - -COMMENT ON COLUMN S_DF02.ACC_NAME IS 'Наименование участника клиринга'; - -COMMENT ON COLUMN S_DF02.ACC_TYPE IS 'Признак счета'; - -COMMENT ON COLUMN S_DF02.SUMENGAGE IS 'Сумма блокированных денежных средств'; - -COMMENT ON COLUMN S_DF02.SUMUNBLOCK IS 'Сумма свободных денежных средств'; - -COMMENT ON COLUMN S_DF02.FILE_TYPE IS 'Тип файла'; - -COMMENT ON COLUMN S_DF02.RESULT IS 'Результат обработки каждой записи исходного файла ДФ-01'; - -COMMENT ON COLUMN S_DF02.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF02.GENERATION_ID IS 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_DF02.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF02.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; - -GRANT ALL PRIVILEGES ON TABLE S_DF02 TO clearing; - --- sDf03 - ДФ-03 Реестр платежных поручений -DROP TABLE IF EXISTS S_DF03; -CREATE TABLE S_DF03(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar(4), 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(8), PAY_VAL varchar(12), SUM_DEB varchar(22), SPECIF_1 varchar(255), IMP_RESULT varchar(3), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint, PAYMENT_INSTRUCTION_ID bigint); -COMMENT ON TABLE S_DF03 IS 'ДФ-03 Реестр платежных поручений'; - -COMMENT ON COLUMN S_DF03.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF03.SEG_TYPE IS 'Код инициатора в КС'; - -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.C_ACC_DEB IS 'Счет по дебету'; - -COMMENT ON COLUMN S_DF03.SBANKNAM1 IS 'Наименование банка-плательщика 1'; - -COMMENT ON COLUMN S_DF03.SBANKNAM2 IS 'Наименование банка-плательщика 2'; - -COMMENT ON COLUMN S_DF03.SBANKNAM3 IS 'Наименование банка-плательщика 3'; - -COMMENT ON COLUMN S_DF03.SBANKNAM4 IS 'Наименование банка-плательщика 4'; - -COMMENT ON COLUMN S_DF03.SBANKNAM5 IS 'Наименование банка-плательщика 5'; - -COMMENT ON COLUMN S_DF03.C_ACC_CRED IS 'Счет по кредиту'; - -COMMENT ON COLUMN S_DF03.RBANKNAM1 IS 'Наименование банка-получателя 1'; - -COMMENT ON COLUMN S_DF03.RBANKNAM2 IS 'Наименование банка-получателя 2'; - -COMMENT ON COLUMN S_DF03.RBANKNAM3 IS 'Наименование банка-получателя 3'; - -COMMENT ON COLUMN S_DF03.RBANKNAM4 IS 'Наименование банка-получателя 4'; - -COMMENT ON COLUMN S_DF03.RBANKNAM5 IS 'Наименование банка-получателя 5'; - -COMMENT ON COLUMN S_DF03.PAY_DATE IS 'Платеж-дата'; - -COMMENT ON COLUMN S_DF03.PAY_VAL IS 'Валюта платежа'; - -COMMENT ON COLUMN S_DF03.SUM_DEB IS 'Сумма дебет'; - -COMMENT ON COLUMN S_DF03.SPECIF_1 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF03.IMP_RESULT IS 'Результат приема'; - -COMMENT ON COLUMN S_DF03.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF03.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF03.GENERATION_ID IS 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_DF03.PAYMENT_INSTRUCTION_ID IS 'Идентификатор соответствующей записи из таблицы-источника (linked to paymentInstruction)'; - -GRANT ALL PRIVILEGES ON TABLE S_DF03 TO clearing; - --- sDf04 - ДФ-04 Подтверждение проведения расчетов -DROP TABLE IF EXISTS S_DF04; -CREATE TABLE S_DF04(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar(4), 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(8), PAY_VAL varchar(12), SUM_DEB varchar(22), 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 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF04.SEG_TYPE IS 'Код инициатора в КС'; - -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.C_ACC_DEB IS 'Счет по дебету'; - -COMMENT ON COLUMN S_DF04.SBANKNAM1 IS 'Наименование банка-плательщика 1'; - -COMMENT ON COLUMN S_DF04.SBANKNAM2 IS 'Наименование банка-плательщика 2'; - -COMMENT ON COLUMN S_DF04.SBANKNAM3 IS 'Наименование банка-плательщика 3'; - -COMMENT ON COLUMN S_DF04.SBANKNAM4 IS 'Наименование банка-плательщика 4'; - -COMMENT ON COLUMN S_DF04.SBANKNAM5 IS 'Наименование банка-плательщика 5'; - -COMMENT ON COLUMN S_DF04.C_ACC_CRED IS 'Счет по кредиту'; - -COMMENT ON COLUMN S_DF04.RBANKNAM1 IS 'Наименование банка-получателя 1'; - -COMMENT ON COLUMN S_DF04.RBANKNAM2 IS 'Наименование банка-получателя 2'; - -COMMENT ON COLUMN S_DF04.RBANKNAM3 IS 'Наименование банка-получателя 3'; - -COMMENT ON COLUMN S_DF04.RBANKNAM4 IS 'Наименование банка-получателя 4'; - -COMMENT ON COLUMN S_DF04.RBANKNAM5 IS 'Наименование банка-получателя 5'; - -COMMENT ON COLUMN S_DF04.PAY_DATE IS 'Платеж-дата'; - -COMMENT ON COLUMN S_DF04.PAY_VAL IS 'Валюта платежа'; - -COMMENT ON COLUMN S_DF04.SUM_DEB IS 'Сумма дебет'; - -COMMENT ON COLUMN S_DF04.SPECIF_1 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF04.IMP_RESULT IS 'Результат приема'; - -COMMENT ON COLUMN S_DF04.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF04.GENERATION_TIME IS 'Дата и время обработки файла'; - -COMMENT ON COLUMN S_DF04.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF04 TO clearing; - --- sDf05 - ДФ-05 Уведомление о завершении расчетов -DROP TABLE IF EXISTS S_DF05; -CREATE TABLE S_DF05(ID bigint PRIMARY KEY, TP numeric(72,18), DT date, TM varchar(255), PR varchar(1), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF05 IS 'ДФ-05 Уведомление о завершении расчетов'; - -COMMENT ON COLUMN S_DF05.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF05.TP IS 'Тип документа'; - -COMMENT ON COLUMN S_DF05.DT IS 'Дата завершения расчетов'; - -COMMENT ON COLUMN S_DF05.TM IS 'Время завершения расчетов'; - -COMMENT ON COLUMN S_DF05.PR IS 'Результат обработки запроса'; - -COMMENT ON COLUMN S_DF05.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF05.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF05 TO clearing; - --- 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(255), DEAL varchar(10), CLIENT_N varchar(255), INN varchar(255), BIC varchar(255), SPEC varchar(255), NUMBER numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint, _DOC__NUM varchar(3), _DOC__DATE varchar(8), PAY_VAL varchar(12)); -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 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_DF06._DOC__NUM IS 'Номер выгружаемого документа'; - -COMMENT ON COLUMN S_DF06._DOC__DATE IS 'Дата выгружаемого документа'; - -COMMENT ON COLUMN S_DF06.PAY_VAL IS 'Валюта документа'; - -GRANT ALL PRIVILEGES ON TABLE S_DF06 TO clearing; - --- 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(255), DEAL varchar(10), CLIENT_N varchar(255), INN varchar(255), BIC varchar(255), SPEC varchar(255), NUMBER numeric(72,18), RESULT numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint, _DOC__NUM varchar(3), _DOC__DATE varchar(8), PAY_VAL varchar(12)); -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.FILE_NAME 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 'Идентификатор соответствующей записи из таблицы-источника'; - -COMMENT ON COLUMN S_DF07._DOC__NUM IS 'Номер выгружаемого документа'; - -COMMENT ON COLUMN S_DF07._DOC__DATE IS 'Дата выгружаемого документа'; - -COMMENT ON COLUMN S_DF07.PAY_VAL IS 'Валюта документа'; - -GRANT ALL PRIVILEGES ON TABLE S_DF07 TO clearing; - --- sDf08 - ДФ-08 Загрузка счетов с остатками -DROP TABLE IF EXISTS S_DF08; -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.OUT_DOCUMENT 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 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF08 TO clearing; - --- sDf09 - ДФ-09 Ответ на загрузку счетов с остатками -DROP TABLE IF EXISTS S_DF09; -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 varchar(255), 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.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; - -COMMENT ON COLUMN S_DF09.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; - -COMMENT ON COLUMN S_DF09.DEPO_CODE IS 'Код раздела субсчета/счета депо'; - -COMMENT ON COLUMN S_DF09.QUANTITY IS 'Количество'; - -COMMENT ON COLUMN S_DF09.SECURITY_CODE IS 'Код ценной бумаги'; - -COMMENT ON COLUMN S_DF09.CLIENT_NAME IS 'Наименование клиента'; - -COMMENT ON COLUMN S_DF09.RESULT IS 'Результат операции'; - -COMMENT ON COLUMN S_DF09.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF09.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF09 TO clearing; - --- sDf10 - ДФ-10 Запрос на зачисление/списание ценных бумаг -DROP TABLE IF EXISTS S_DF10; -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.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; - -COMMENT ON COLUMN S_DF10.DEPO_CODE IS 'Код раздела субсчета/счета депо'; - -COMMENT ON COLUMN S_DF10.QUANTITY IS 'Количество'; - -COMMENT ON COLUMN S_DF10.SECURITY_CODE IS 'Код ценной бумаги'; - -COMMENT ON COLUMN S_DF10.CLIENT_NAME 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 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF10 TO clearing; - --- sDf11 - ДФ-11 Ответ на Запрос на зачисление/списание ценных бумаг -DROP TABLE IF EXISTS S_DF11; -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 varchar(255), 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.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; - -COMMENT ON COLUMN S_DF11.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; - -COMMENT ON COLUMN S_DF11.DEPO_CODE IS 'Код раздела субсчета/счета депо'; - -COMMENT ON COLUMN S_DF11.QUANTITY IS 'Количество'; - -COMMENT ON COLUMN S_DF11.SECURITY_CODE IS 'Код ценной бумаги'; - -COMMENT ON COLUMN S_DF11.CLIENT_NAME IS 'Наименование клиента'; - -COMMENT ON COLUMN S_DF11.RESULT IS 'Результат операции'; - -COMMENT ON COLUMN S_DF11.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF11.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF11 TO clearing; - --- sDf12 - ДФ-12 Распоряжение на проведение операций по итогам клиринга -DROP TABLE IF EXISTS S_DF12; -CREATE TABLE S_DF12(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, DIRECTION varchar(255), QUANTITY varchar, SECURITY_CODE varchar, DEPO_CODE_SENDER varchar, DEPO_CODE_ADRESSEE varchar, TRANSACTION_NUMBER varchar(255), TRANSACTION_QUANTITY varchar(255), RESULT varchar(255), FILE_NAME varchar(255), 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.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; - -COMMENT ON COLUMN S_DF12.DIRECTION IS 'Направление (списание/зачисление)'; - -COMMENT ON COLUMN S_DF12.QUANTITY IS 'Количество ценных бумаг'; - -COMMENT ON COLUMN S_DF12.SECURITY_CODE IS 'Код ценной бумаги'; - -COMMENT ON COLUMN S_DF12.DEPO_CODE_SENDER IS 'Депо счет списания'; - -COMMENT ON COLUMN S_DF12.DEPO_CODE_ADRESSEE IS 'Депо счет зачисления'; - -COMMENT ON COLUMN S_DF12.TRANSACTION_NUMBER IS 'Порядковый номер транзакции'; - -COMMENT ON COLUMN S_DF12.TRANSACTION_QUANTITY IS 'Количество транзакций'; - -COMMENT ON COLUMN S_DF12.RESULT IS 'Результат операции'; - -COMMENT ON COLUMN S_DF12.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF12.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF12.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF12 TO clearing; - --- sDf13 - ДФ-13 Уведомление о статусе исполнения или мотивированный отказ -DROP TABLE IF EXISTS S_DF13; -CREATE TABLE S_DF13(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, RESULT varchar(255), 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.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; - -COMMENT ON COLUMN S_DF13.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; - -COMMENT ON COLUMN S_DF13.RESULT IS 'Результат операции'; - -COMMENT ON COLUMN S_DF13.TEXT_ERROR 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 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF13 TO clearing; - --- sDf14 - ДФ-14 Уведомление о завершении расчетов -DROP TABLE IF EXISTS S_DF14; -CREATE TABLE S_DF14(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, RESULT varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF14 IS 'ДФ-14 Уведомление о завершении расчетов'; - -COMMENT ON COLUMN S_DF14.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF14.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; - -COMMENT ON COLUMN S_DF14.RESULT IS 'Результат операции'; - -COMMENT ON COLUMN S_DF14.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF14.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF14 TO clearing; - --- sDf20 - ДФ-20 Отчет об исполнении поручения на зачисление/списание ценных бумаг -DROP TABLE IF EXISTS S_DF20; -CREATE TABLE S_DF20(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, SECURITY varchar, SECURITY_NAME varchar, SECURITY_TYPE varchar, OPEN_BALANCE varchar, DEPO_CODE_CL varchar, NAME_CL varchar, QUANTITY varchar, OPERATION_CODE varchar, DEPO_CODE_CORR varchar, OPERATION_DATE varchar, CLOSE_BALANCE varchar, TRANSACTION_NUMBER varchar(255), FILE_NAME varchar, GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF20 IS 'ДФ-20 Отчет об исполнении поручения на зачисление/списание ценных бумаг'; - -COMMENT ON COLUMN S_DF20.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF20.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; - -COMMENT ON COLUMN S_DF20.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; - -COMMENT ON COLUMN S_DF20.SECURITY IS 'Ценная бумага'; - -COMMENT ON COLUMN S_DF20.SECURITY_NAME IS 'Наименование ценной бумаги'; - -COMMENT ON COLUMN S_DF20.SECURITY_TYPE IS 'Тип ценной бумаги'; - -COMMENT ON COLUMN S_DF20.OPEN_BALANCE IS 'Входящий остаток'; - -COMMENT ON COLUMN S_DF20.DEPO_CODE_CL IS 'Код раздела тех.счета/счета депо/ и наименование клиента'; - -COMMENT ON COLUMN S_DF20.NAME_CL IS 'Наименование клиента'; - -COMMENT ON COLUMN S_DF20.QUANTITY IS 'Количество ценных бумаг'; - -COMMENT ON COLUMN S_DF20.OPERATION_CODE IS 'Код операции'; - -COMMENT ON COLUMN S_DF20.DEPO_CODE_CORR IS 'Код раздела субсчета/счета депо корреспондента'; - -COMMENT ON COLUMN S_DF20.OPERATION_DATE IS 'Дата операции'; - -COMMENT ON COLUMN S_DF20.CLOSE_BALANCE IS 'Исходящий остаток'; - -COMMENT ON COLUMN S_DF20.TRANSACTION_NUMBER IS 'ID транзакции депозитария'; - -COMMENT ON COLUMN S_DF20.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF20.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF20.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF20 TO clearing; - --- sDf21 - ДФ-21 Отчет об операциях -DROP TABLE IF EXISTS S_DF21; -CREATE TABLE S_DF21(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, SECURITY_CODE varchar, SECURITY_NAME varchar, SECURITY_TYPE varchar, OPEN_BALANCE varchar, DEPO_CODE_CL varchar, NAME_CL varchar, QUANTITY varchar, OPERATION_CODE varchar, DEPO_CODE_CORR varchar, OPERATION_DATE varchar, CLOSE_BALANCE varchar, COMMENT varchar(250), TRANSACTION_NUMBER varchar(255), FILE_NAME varchar, GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF21 IS 'ДФ-21 Отчет об операциях'; - -COMMENT ON COLUMN S_DF21.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF21.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; - -COMMENT ON COLUMN S_DF21.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; - -COMMENT ON COLUMN S_DF21.SECURITY_CODE IS 'Код ценной бумаги'; - -COMMENT ON COLUMN S_DF21.SECURITY_NAME IS 'Наименование ценной бумаги'; - -COMMENT ON COLUMN S_DF21.SECURITY_TYPE IS 'Тип ценной бумаги'; - -COMMENT ON COLUMN S_DF21.OPEN_BALANCE IS 'Входящий остаток'; - -COMMENT ON COLUMN S_DF21.DEPO_CODE_CL IS 'Код раздела тех.счета/счета депо'; - -COMMENT ON COLUMN S_DF21.NAME_CL IS 'Наименование клиента'; - -COMMENT ON COLUMN S_DF21.QUANTITY IS 'Количество ценных бумаг'; - -COMMENT ON COLUMN S_DF21.OPERATION_CODE IS 'Код операции'; - -COMMENT ON COLUMN S_DF21.DEPO_CODE_CORR IS 'Код раздела субсчета/счета депо корреспондента'; - -COMMENT ON COLUMN S_DF21.OPERATION_DATE IS 'Дата операции'; - -COMMENT ON COLUMN S_DF21.CLOSE_BALANCE IS 'Исходящий остаток'; - -COMMENT ON COLUMN S_DF21.COMMENT IS 'Основание проведения операции'; - -COMMENT ON COLUMN S_DF21.TRANSACTION_NUMBER IS 'ID транзакции депозитария'; - -COMMENT ON COLUMN S_DF21.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF21.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF21.GENERATION_ID IS 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF21 TO clearing; - --- 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 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF51 TO clearing; - --- 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(8), 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 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF52 TO clearing; - --- sDf53 - ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) -DROP TABLE IF EXISTS S_DF53; -CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACC_NAME varchar(30), ACCOUNT varchar(25), DEAL varchar(4), DATE varchar(8), STATUS bigint, RESULT varchar(255), FILE_NAME varchar(255), 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.ACC_NAME IS 'Наименование участника клиринга'; - -COMMENT ON COLUMN S_DF53.ACCOUNT IS 'Код счета участника клиринга'; - -COMMENT ON COLUMN S_DF53.DEAL IS 'Биржевой код участника клиринга'; - -COMMENT ON COLUMN S_DF53.DATE IS 'Дата изменения состояния счета'; - -COMMENT ON COLUMN S_DF53.STATUS IS 'Статус счета'; - -COMMENT ON COLUMN S_DF53.RESULT IS 'Код завершения операции'; - -COMMENT ON COLUMN S_DF53.FILE_NAME 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 'Идентификатор соответствующей записи из таблицы-источника'; - -GRANT ALL PRIVILEGES ON TABLE S_DF53 TO clearing; - --- sDf54 - ДФ-54 Вывод свободных средств для инициаторов категории В с клирингового счета 30414 -DROP TABLE IF EXISTS S_DF54; -CREATE TABLE S_DF54(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar(4), 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(8), PAY_VAL varchar(12), SUM_DEB varchar(22), 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, _DOC__NUM varchar(3), _DOC__DATE varchar(8), _VALUE_DATE varchar(8), _SWIFT_BEN varchar(11), _SWIFT_INT varchar(11)); -COMMENT ON TABLE S_DF54 IS 'ДФ-54 Вывод свободных средств для инициаторов категории В с клирингового счета 30414'; - -COMMENT ON COLUMN S_DF54.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF54.SEG_TYPE IS 'Код инициатора в КС'; - -COMMENT ON COLUMN S_DF54.DOC_TYPE IS 'Тип документа'; - -COMMENT ON COLUMN S_DF54.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; - -COMMENT ON COLUMN S_DF54.DOCNMPREV IS 'Ссылка на предшествующий документ'; - -COMMENT ON COLUMN S_DF54.SBANKCODE IS 'Код банка-плательщика'; - -COMMENT ON COLUMN S_DF54.C_ACC_DEB IS 'Кор счет банка-плательщика в системе - акт.'; - -COMMENT ON COLUMN S_DF54.SBANKNAM1 IS 'Наименование банка-плательщика 1'; - -COMMENT ON COLUMN S_DF54.SBANKNAM2 IS 'Наименование банка-плательщика 2'; - -COMMENT ON COLUMN S_DF54.SBANKNAM3 IS 'Наименование банка-плательщика 3'; - -COMMENT ON COLUMN S_DF54.SBANKNAM4 IS 'Наименование банка-плательщика 4'; - -COMMENT ON COLUMN S_DF54.SBANKNAM5 IS 'Наименование банка-плательщика 5'; - -COMMENT ON COLUMN S_DF54.RBANKCODE IS 'Код банка-получателя'; - -COMMENT ON COLUMN S_DF54.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт. '; - -COMMENT ON COLUMN S_DF54.RBANKNAM1 IS 'Наименование банка-получателя 1'; - -COMMENT ON COLUMN S_DF54.RBANKNAM2 IS 'Наименование банка-получателя 2'; - -COMMENT ON COLUMN S_DF54.RBANKNAM3 IS 'Наименование банка-получателя 3'; - -COMMENT ON COLUMN S_DF54.RBANKNAM4 IS 'Наименование банка-получателя 4'; - -COMMENT ON COLUMN S_DF54.RBANKNAM5 IS 'Наименование банка-получателя 5'; - -COMMENT ON COLUMN S_DF54.OP_TYPE IS 'Вид операции'; - -COMMENT ON COLUMN S_DF54.OP_ORDER IS 'Очередность платежа'; - -COMMENT ON COLUMN S_DF54.PAY_DATE IS 'Платеж-дата'; - -COMMENT ON COLUMN S_DF54.PAY_VAL IS 'Валюта платежа'; - -COMMENT ON COLUMN S_DF54.SUM_DEB IS 'Сумма дебет'; - -COMMENT ON COLUMN S_DF54.SCLIENTN1 IS 'Наименование клиента-плательщика 1'; - -COMMENT ON COLUMN S_DF54.SCLIENTN2 IS 'Наименование клиента-плательщика 2'; - -COMMENT ON COLUMN S_DF54.SCLIENTN3 IS 'Наименование клиента-плательщика 3'; - -COMMENT ON COLUMN S_DF54.SCLIENTN4 IS 'Наименование клиента-плательщика 4'; - -COMMENT ON COLUMN S_DF54.INN_DEB IS 'ИНН клиента-плательщика'; - -COMMENT ON COLUMN S_DF54.KPP_DEB IS 'КПП клиента-плательщика'; - -COMMENT ON COLUMN S_DF54.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF54.RCLIENTN1 IS 'Наименование клиента-получателя 1'; - -COMMENT ON COLUMN S_DF54.RCLIENTN2 IS 'Наименование клиента-получателя 2'; - -COMMENT ON COLUMN S_DF54.RCLIENTN3 IS 'Наименование клиента-получателя 3'; - -COMMENT ON COLUMN S_DF54.RCLIENTN4 IS 'Наименование клиента-получателя 4'; - -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 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_DF54._DOC__NUM IS 'Номер выгружаемого документа'; - -COMMENT ON COLUMN S_DF54._DOC__DATE IS 'Дата выгружаемого документа'; - -COMMENT ON COLUMN S_DF54._VALUE_DATE IS 'Дата валютирования'; - -COMMENT ON COLUMN S_DF54._SWIFT_BEN IS 'Свифт банка бенефициара'; - -COMMENT ON COLUMN S_DF54._SWIFT_INT IS 'Свифт банка посредника'; - -GRANT ALL PRIVILEGES ON TABLE S_DF54 TO clearing; - --- sDf55 - ДФ-55 Квитанция об обработке ДФ-54 -DROP TABLE IF EXISTS S_DF55; -CREATE TABLE S_DF55(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar(4), 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(8), PAY_VAL varchar(12), SUM_DEB varchar(22), 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, _DOC__NUM varchar(3), _DOC__DATE varchar(8), _VALUE_DATE varchar(8), _SWIFT_BEN varchar(11), _SWIFT_INT varchar(11)); -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 'Наименование банка-плательщика 1'; - -COMMENT ON COLUMN S_DF55.SBANKNAM2 IS 'Наименование банка-плательщика 2'; - -COMMENT ON COLUMN S_DF55.SBANKNAM3 IS 'Наименование банка-плательщика 3'; - -COMMENT ON COLUMN S_DF55.SBANKNAM4 IS 'Наименование банка-плательщика 4'; - -COMMENT ON COLUMN S_DF55.SBANKNAM5 IS 'Наименование банка-плательщика 5'; - -COMMENT ON COLUMN S_DF55.RBANKCODE IS 'Код банка-получателя'; - -COMMENT ON COLUMN S_DF55.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт. '; - -COMMENT ON COLUMN S_DF55.RBANKNAM1 IS 'Наименование банка-получателя 1'; - -COMMENT ON COLUMN S_DF55.RBANKNAM2 IS 'Наименование банка-получателя 2'; - -COMMENT ON COLUMN S_DF55.RBANKNAM3 IS 'Наименование банка-получателя 3'; - -COMMENT ON COLUMN S_DF55.RBANKNAM4 IS 'Наименование банка-получателя 4'; - -COMMENT ON COLUMN S_DF55.RBANKNAM5 IS 'Наименование банка-получателя 5'; - -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 'Наименование клиента-плательщика 1'; - -COMMENT ON COLUMN S_DF55.SCLIENTN2 IS 'Наименование клиента-плательщика 2'; - -COMMENT ON COLUMN S_DF55.SCLIENTN3 IS 'Наименование клиента-плательщика 3'; - -COMMENT ON COLUMN S_DF55.SCLIENTN4 IS 'Наименование клиента-плательщика 4'; - -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 'Наименование клиента-получателя 1'; - -COMMENT ON COLUMN S_DF55.RCLIENTN2 IS 'Наименование клиента-получателя 2'; - -COMMENT ON COLUMN S_DF55.RCLIENTN3 IS 'Наименование клиента-получателя 3'; - -COMMENT ON COLUMN S_DF55.RCLIENTN4 IS 'Наименование клиента-получателя 4'; - -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 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_DF55._DOC__NUM IS 'Номер выгружаемого документа'; - -COMMENT ON COLUMN S_DF55._DOC__DATE IS 'Дата выгружаемого документа'; - -COMMENT ON COLUMN S_DF55._VALUE_DATE IS 'Дата валютирования'; - -COMMENT ON COLUMN S_DF55._SWIFT_BEN IS 'Свифт банка бенефициара'; - -COMMENT ON COLUMN S_DF55._SWIFT_INT IS 'Свифт банка посредника'; - -GRANT ALL PRIVILEGES ON TABLE S_DF55 TO clearing; - --- 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 'Идентификатор взаимодействия'; - -GRANT ALL PRIVILEGES ON TABLE S_DF56 TO clearing; - --- sDf57 - ДФ-57 Список транзакций о списании/зачислении за период по всем счетам (ТБС и КС) -DROP TABLE IF EXISTS S_DF57; -CREATE TABLE S_DF57(GENERATION_TIME timestamp, ID bigint PRIMARY KEY, DBF_ID bigint, DEAL_DEB varchar(4), DEAL_CRED varchar(4), 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(8), EXT_DATE varchar(255), PAY_VAL varchar(12), SUM_DEB varchar(22), 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_ID bigint, _DOC__NUM varchar(3), _DOC__DATE varchar(8), DT_IN varchar(22), KT_IN varchar(22), DT_OUT varchar(22), KT_OUT varchar(22)); -COMMENT ON TABLE S_DF57 IS 'ДФ-57 Список транзакций о списании/зачислении за период по всем счетам (ТБС и КС)'; - -COMMENT ON COLUMN S_DF57.GENERATION_TIME IS 'Дата и время создания записи'; - -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 'Наименование банка-плательщика 1'; - -COMMENT ON COLUMN S_DF57.SBANKNAM2 IS 'Наименование банка-плательщика 2'; - -COMMENT ON COLUMN S_DF57.SBANKNAM3 IS 'Наименование банка-плательщика 3'; - -COMMENT ON COLUMN S_DF57.SBANKNAM4 IS 'Наименование банка-плательщика 4'; - -COMMENT ON COLUMN S_DF57.SBANKNAM5 IS 'Наименование банка-плательщика 5'; - -COMMENT ON COLUMN S_DF57.RBANKCODE IS 'Код банка-получателя'; - -COMMENT ON COLUMN S_DF57.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт.'; - -COMMENT ON COLUMN S_DF57.RBANKNAM1 IS 'Наименование банка-получателя 1'; - -COMMENT ON COLUMN S_DF57.RBANKNAM2 IS 'Наименование банка-получателя 2'; - -COMMENT ON COLUMN S_DF57.RBANKNAM3 IS 'Наименование банка-получателя 3'; - -COMMENT ON COLUMN S_DF57.RBANKNAM4 IS 'Наименование банка-получателя 4'; - -COMMENT ON COLUMN S_DF57.RBANKNAM5 IS 'Наименование банка-получателя 5'; - -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 'Наименование клиента-плательщика 1'; - -COMMENT ON COLUMN S_DF57.SCLIENTN2 IS 'Наименование клиента-плательщика 2'; - -COMMENT ON COLUMN S_DF57.SCLIENTN3 IS 'Наименование клиента-плательщика 3'; - -COMMENT ON COLUMN S_DF57.SCLIENTN4 IS 'Наименование клиента-плательщика 4'; - -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 'Наименование клиента-получателя 1'; - -COMMENT ON COLUMN S_DF57.RCLIENTN2 IS 'Наименование клиента-получателя 2'; - -COMMENT ON COLUMN S_DF57.RCLIENTN3 IS 'Наименование клиента-получателя 3'; - -COMMENT ON COLUMN S_DF57.RCLIENTN4 IS 'Наименование клиента-получателя 4'; - -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_ID IS 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_DF57._DOC__NUM IS 'Номер выгружаемого документа'; - -COMMENT ON COLUMN S_DF57._DOC__DATE IS 'Дата выгружаемого документа'; - -COMMENT ON COLUMN S_DF57.DT_IN IS 'Входящий дебетовый остаток'; - -COMMENT ON COLUMN S_DF57.KT_IN IS 'Входящий кредитовый остаток'; - -COMMENT ON COLUMN S_DF57.DT_OUT IS 'Исходящий дебетовый остаток'; - -COMMENT ON COLUMN S_DF57.KT_OUT IS 'Исходящий кредитовый остаток'; - -GRANT ALL PRIVILEGES ON TABLE S_DF57 TO clearing; - --- 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 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE MANAGEMENT_JOURNAL TO clearing; - --- 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 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE IN_DOCUMENT_JOURNAL TO clearing; - --- 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 'Идентификатор записи'; - -GRANT ALL PRIVILEGES ON TABLE OUT_DOCUMENT_JOURNAL TO clearing; - --- 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 'Дата'; - -GRANT ALL PRIVILEGES ON TABLE REPORT_REGISTER TO clearing; - --- 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 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE CONTRACT_REGISTER TO clearing; - --- 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)'; - -GRANT ALL PRIVILEGES ON TABLE OPERATION TO clearing; - --- 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 'Дата'; - -GRANT ALL PRIVILEGES ON TABLE MARKET_DATA_LIQUIDATION TO clearing; - --- sCrossRate - Кросс курсы валют от ЦБ -DROP TABLE IF EXISTS S_CROSS_RATE; -CREATE TABLE S_CROSS_RATE(ID bigint PRIMARY KEY, DATE date, CURRENCY varchar(50), CURR_CODE varchar(50), FACE_VALUE numeric(72,18), RATE numeric(72,18), UNIT_RATE numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE S_CROSS_RATE IS 'Кросс курсы валют от ЦБ'; - -COMMENT ON COLUMN S_CROSS_RATE.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_CROSS_RATE.DATE IS 'Дата торгов'; - -COMMENT ON COLUMN S_CROSS_RATE.CURRENCY IS 'Наименование валюты'; - -COMMENT ON COLUMN S_CROSS_RATE.CURR_CODE IS 'Код валюты'; - -COMMENT ON COLUMN S_CROSS_RATE.FACE_VALUE IS 'Номинал'; - -COMMENT ON COLUMN S_CROSS_RATE.RATE IS 'Курс валюты с учетом размера лота'; - -COMMENT ON COLUMN S_CROSS_RATE.UNIT_RATE IS 'Курс за единицу иностранной валюты'; - -COMMENT ON COLUMN S_CROSS_RATE.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_CROSS_RATE.GENERATION_ID IS 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_CROSS_RATE.CREATED_AT IS 'Дата-время создания записи'; - -COMMENT ON COLUMN S_CROSS_RATE.UPDATED_AT IS 'Дата-время изменения записи'; - -GRANT ALL PRIVILEGES ON TABLE S_CROSS_RATE TO clearing; - -/* views */ - --- Data types - -INSERT INTO DB_VERSION(ID, VERSION) values (1, '3.11') ON CONFLICT (ID) DO UPDATE SET VERSION = EXCLUDED.VERSION \ No newline at end of file From de49489f0a8ebad08713487f81c0dcf5342be3bb Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Mon, 7 Oct 2024 09:27:55 +0300 Subject: [PATCH 25/25] fix GatewayService --- .../clearing/gatewayapi/service/GatewayService.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java index a2c39eddc..79837d744 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java @@ -289,8 +289,9 @@ public class GatewayService extends QueueConsumer implements InitializingBean { String clearingSystem = StringUtils.isNotEmpty(gatewayApiSettings.getClearingSystem()) ? gatewayApiSettings.getClearingSystem() : "SPVB"; request.setClearingSystem(clearingSystem); - if (inboundServerSettings.getAllowedTypes().isEmpty() || - inboundServerSettings.getAllowedTypes().contains(request.getType())) { + if (inboundServerSettings != null && + (inboundServerSettings.getAllowedTypes().isEmpty() || + inboundServerSettings.getAllowedTypes().contains(request.getType()))) { String url = formingInboundUrl(inboundServerSettings.getEnableSsl(), inboundServerSettings.getHost(), inboundServerSettings.getPort(), @@ -298,8 +299,9 @@ public class GatewayService extends QueueConsumer implements InitializingBean { exchange(request, url); } - if (inboundExternalServerSettings.getAllowedTypes().isEmpty() || - inboundExternalServerSettings.getAllowedTypes().contains(request.getType())) { + if (inboundExternalServerSettings != null && + (inboundExternalServerSettings.getAllowedTypes().isEmpty() || + inboundExternalServerSettings.getAllowedTypes().contains(request.getType()))) { String url = formingInboundUrl(inboundExternalServerSettings.getEnableSsl(), inboundExternalServerSettings.getHost(), inboundExternalServerSettings.getPort(), @@ -308,7 +310,7 @@ public class GatewayService extends QueueConsumer implements InitializingBean { } } - private void exchange(OutboundRequest request, String url){ + private void exchange(OutboundRequest request, String url) { HttpEntity r = makeDefaultRequest(request); ResponseEntity response = restTemplate.exchange(url, HttpMethod.POST, r, SuccessResponse.class); SuccessResponse bodyResponse = response.getBody();