This commit is contained in:
AKurakin 2025-05-20 12:19:43 +03:00
parent 148870d0c8
commit 781c0645f2
18 changed files with 1117 additions and 5 deletions

View file

@ -0,0 +1,117 @@
package ru.clearing.classes.statics.data.security;
import ru.clearing.classes.ConstSerializable;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* Цифровые свидетельства
* <p>
* DB table: DIGITAL_CERTIFICATE_SECURITY
**/
public class DigitalCertificateSecurity extends Security {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long securityId;
// extend: private String shortName;
// extend: private String securitySymbol;
// extend: private String fullName;
// extend: private String isin;
// extend: private String instrumentType;
// extend: private Long issuerId;
// extend: private String shortNameEng;
// extend: private String fullNameEng;
// extend: private String workflowStatus;
private String baseCode;
// extend: private BigDecimal lotSize;
private Long baseUnitSize;
private BigDecimal priceVarianceLimit;
private String nominalTypeCode;
private BigDecimal nominalValue;
private LocalDate nominalIndexationDate;
private String nominalIndexationSign;
private String settlementHouse;
private String depository;
public Long getSecurityId() {
return securityId;
}
public void setSecurityId(Long securityId) {
this.securityId = securityId;
}
public String getBaseCode() {
return baseCode;
}
public void setBaseCode(String baseCode) {
this.baseCode = baseCode;
}
public Long getBaseUnitSize() {
return baseUnitSize;
}
public void setBaseUnitSize(Long baseUnitSize) {
this.baseUnitSize = baseUnitSize;
}
public BigDecimal getPriceVarianceLimit() {
return priceVarianceLimit;
}
public void setPriceVarianceLimit(BigDecimal priceVarianceLimit) {
this.priceVarianceLimit = priceVarianceLimit;
}
public String getNominalTypeCode() {
return nominalTypeCode;
}
public void setNominalTypeCode(String nominalTypeCode) {
this.nominalTypeCode = nominalTypeCode;
}
public BigDecimal getNominalValue() {
return nominalValue;
}
public void setNominalValue(BigDecimal nominalValue) {
this.nominalValue = nominalValue;
}
public LocalDate getNominalIndexationDate() {
return nominalIndexationDate;
}
public void setNominalIndexationDate(LocalDate nominalIndexationDate) {
this.nominalIndexationDate = nominalIndexationDate;
}
public String getNominalIndexationSign() {
return nominalIndexationSign;
}
public void setNominalIndexationSign(String nominalIndexationSign) {
this.nominalIndexationSign = nominalIndexationSign;
}
public String getSettlementHouse() {
return settlementHouse;
}
public void setSettlementHouse(String settlementHouse) {
this.settlementHouse = settlementHouse;
}
public String getDepository() {
return depository;
}
public void setDepository(String depository) {
this.depository = depository;
}
}

View file

@ -0,0 +1,28 @@
package ru.clearing.classes.statics.data.security;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* Изменение состояния объекта Цифровые свидетельства
* <p>
* DB table: DIGITAL_CERTIFICATE_SECURITY_HISTORY
**/
public class DigitalCertificateSecurityHistory extends BusinessEvent<DigitalCertificateSecurity> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private DigitalCertificateSecurity object;
@Override
public DigitalCertificateSecurity getObject() {
return object;
}
@Override
public void setObject(DigitalCertificateSecurity object) {
this.object = object;
}
}

View file

@ -0,0 +1,151 @@
package ru.clearing.classes.statics.data.security;
import ru.clearing.classes.ConstSerializable;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import java.math.BigDecimal;
/**
* Утилитарные цифровые права
*
* DB table: UTILITARIAN_DIGITAL_RIGHT
**/
public class UtilitarianDigitalRight extends SpcexObjectBase {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long securityId;
private String investmentAttractingCompany;
private String investmentAttractingInn;
private BigDecimal issueAmount;
private BigDecimal issuePrice;
private Long issueSize;
private String nominalIndexation;
private String platformOperator;
private String platformOperatorCode;
private String platformOperatorInn;
private String platformOperatorWeb;
private String platformProposalWeb;
private String rightEssence;
private String rightUnit;
private String rightUnitMeasurement;
public Long getSecurityId() {
return securityId;
}
public void setSecurityId(Long securityId) {
this.securityId = securityId;
}
public String getInvestmentAttractingCompany() {
return investmentAttractingCompany;
}
public void setInvestmentAttractingCompany(String investmentAttractingCompany) {
this.investmentAttractingCompany = investmentAttractingCompany;
}
public String getInvestmentAttractingInn() {
return investmentAttractingInn;
}
public void setInvestmentAttractingInn(String investmentAttractingInn) {
this.investmentAttractingInn = investmentAttractingInn;
}
public BigDecimal getIssueAmount() {
return issueAmount;
}
public void setIssueAmount(BigDecimal issueAmount) {
this.issueAmount = issueAmount;
}
public BigDecimal getIssuePrice() {
return issuePrice;
}
public void setIssuePrice(BigDecimal issuePrice) {
this.issuePrice = issuePrice;
}
public Long getIssueSize() {
return issueSize;
}
public void setIssueSize(Long issueSize) {
this.issueSize = issueSize;
}
public String getNominalIndexation() {
return nominalIndexation;
}
public void setNominalIndexation(String nominalIndexation) {
this.nominalIndexation = nominalIndexation;
}
public String getPlatformOperator() {
return platformOperator;
}
public void setPlatformOperator(String platformOperator) {
this.platformOperator = platformOperator;
}
public String getPlatformOperatorCode() {
return platformOperatorCode;
}
public void setPlatformOperatorCode(String platformOperatorCode) {
this.platformOperatorCode = platformOperatorCode;
}
public String getPlatformOperatorInn() {
return platformOperatorInn;
}
public void setPlatformOperatorInn(String platformOperatorInn) {
this.platformOperatorInn = platformOperatorInn;
}
public String getPlatformOperatorWeb() {
return platformOperatorWeb;
}
public void setPlatformOperatorWeb(String platformOperatorWeb) {
this.platformOperatorWeb = platformOperatorWeb;
}
public String getPlatformProposalWeb() {
return platformProposalWeb;
}
public void setPlatformProposalWeb(String platformProposalWeb) {
this.platformProposalWeb = platformProposalWeb;
}
public String getRightEssence() {
return rightEssence;
}
public void setRightEssence(String rightEssence) {
this.rightEssence = rightEssence;
}
public String getRightUnit() {
return rightUnit;
}
public void setRightUnit(String rightUnit) {
this.rightUnit = rightUnit;
}
public String getRightUnitMeasurement() {
return rightUnitMeasurement;
}
public void setRightUnitMeasurement(String rightUnitMeasurement) {
this.rightUnitMeasurement = rightUnitMeasurement;
}
}

View file

@ -0,0 +1,28 @@
package ru.clearing.classes.statics.data.security;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* Изменение состояния объекта Утилитарные цифровые права
* <p>
* DB table: UTILITARIAN_DIGITAL_RIGHT_HISTORY
**/
public class UtilitarianDigitalRightHistory extends BusinessEvent<UtilitarianDigitalRight> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private UtilitarianDigitalRight object;
@Override
public UtilitarianDigitalRight getObject() {
return object;
}
@Override
public void setObject(UtilitarianDigitalRight object) {
this.object = object;
}
}

View file

@ -852,6 +852,32 @@ COMMENT ON COLUMN PRIORITY_DICTIONARY.NAME IS 'Приоритет отображ
GRANT ALL PRIVILEGES ON TABLE PRIORITY_DICTIONARY TO clearing;
-- nominalTypeCode - Справочник типов номинала УЦП
DROP TABLE IF EXISTS NOMINAL_TYPE_CODE_DICTIONARY;
CREATE TABLE NOMINAL_TYPE_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255));
COMMENT ON TABLE NOMINAL_TYPE_CODE_DICTIONARY IS 'Справочник типов номинала УЦП';
COMMENT ON COLUMN NOMINAL_TYPE_CODE_DICTIONARY.ID IS 'Идентификатор записи';
COMMENT ON COLUMN NOMINAL_TYPE_CODE_DICTIONARY.CODE IS 'Код';
COMMENT ON COLUMN NOMINAL_TYPE_CODE_DICTIONARY.NAME IS 'Наименование';
GRANT ALL PRIVILEGES ON TABLE NOMINAL_TYPE_CODE_DICTIONARY TO clearing;
-- unitMeasurement - Справочник единиц измерения
DROP TABLE IF EXISTS UNIT_MEASUREMENT_DICTIONARY;
CREATE TABLE UNIT_MEASUREMENT_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255));
COMMENT ON TABLE UNIT_MEASUREMENT_DICTIONARY IS 'Справочник единиц измерения';
COMMENT ON COLUMN UNIT_MEASUREMENT_DICTIONARY.ID IS 'Идентификатор записи';
COMMENT ON COLUMN UNIT_MEASUREMENT_DICTIONARY.CODE IS 'Код';
COMMENT ON COLUMN UNIT_MEASUREMENT_DICTIONARY.NAME IS 'Наименование';
GRANT ALL PRIVILEGES ON TABLE UNIT_MEASUREMENT_DICTIONARY TO clearing;
/* Business objects */
-- dbVersion - Версия базы данных
@ -5356,6 +5382,153 @@ COMMENT ON COLUMN VALIDATION_SYMBOLS.SYMBOLS IS 'Допустимые симво
COMMENT ON COLUMN VALIDATION_SYMBOLS.COMMENT IS 'Описание группы символов';
GRANT ALL PRIVILEGES ON TABLE VALIDATION_SYMBOLS TO clearing;
-- digitalCertificateSecurity - Цифровые свидетельства
DROP TABLE IF EXISTS DIGITAL_CERTIFICATE_SECURITY;
CREATE TABLE DIGITAL_CERTIFICATE_SECURITY(ID bigint PRIMARY KEY, SECURITY_ID bigint, BASE_CODE varchar(50), BASE_UNIT_SIZE bigint, PRICE_VARIANCE_LIMIT numeric(72,18), NOMINAL_TYPE_CODE varchar(4), NOMINAL_VALUE numeric(72,18), NOMINAL_INDEXATION_DATE date, NOMINAL_INDEXATION_SIGN varchar(4), SETTLEMENT_HOUSE varchar(255), DEPOSITORY varchar(255));
COMMENT ON TABLE DIGITAL_CERTIFICATE_SECURITY IS 'Цифровые свидетельства';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.ID IS 'Идентификатор записи';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.BASE_CODE IS 'Код ЦС, присвоенный депозитарием';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.BASE_UNIT_SIZE IS 'Количество УЦП в одном ЦС';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.PRICE_VARIANCE_LIMIT IS 'Пределы изменения цены';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.NOMINAL_TYPE_CODE IS 'Тип индексации номинала (linked to nominalTypeCode)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.NOMINAL_VALUE IS 'Индексируемый номинал';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.NOMINAL_INDEXATION_DATE IS 'Дата индексации номинала';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.NOMINAL_INDEXATION_SIGN IS 'Фактическая индексация (linked to allowed)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.SETTLEMENT_HOUSE IS 'Наименование расчетной организации';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.DEPOSITORY IS 'Наименование депозитария';
GRANT ALL PRIVILEGES ON TABLE DIGITAL_CERTIFICATE_SECURITY TO clearing;
-- History log of digitalCertificateSecurity - Цифровые свидетельства
DROP TABLE IF EXISTS DIGITAL_CERTIFICATE_SECURITY_HISTORY;
CREATE TABLE DIGITAL_CERTIFICATE_SECURITY_HISTORY(DIGITAL_CERTIFICATE_SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, SECURITY_ID bigint, BASE_CODE varchar(50), BASE_UNIT_SIZE bigint, PRICE_VARIANCE_LIMIT numeric(72,18), NOMINAL_TYPE_CODE varchar(4), NOMINAL_VALUE numeric(72,18), NOMINAL_INDEXATION_DATE date, NOMINAL_INDEXATION_SIGN varchar(4), SETTLEMENT_HOUSE varchar(255), DEPOSITORY varchar(255));
COMMENT ON TABLE DIGITAL_CERTIFICATE_SECURITY_HISTORY IS 'История изменений таблицы digitalCertificateSecurity';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.DIGITAL_CERTIFICATE_SECURITY_ID IS 'Идентификатор записи в таблице DIGITAL_CERTIFICATE_SECURITY';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.EVENT_TIME IS 'Дата и время изменения';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.EVENT_USER_ID IS 'Инициатор изменения';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.EVENT_TYPE IS 'Тип изменения';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.ID IS 'Идентификатор записи';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.BASE_CODE IS 'Код ЦС, присвоенный депозитарием';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.BASE_UNIT_SIZE IS 'Количество УЦП в одном ЦС';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.PRICE_VARIANCE_LIMIT IS 'Пределы изменения цены';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.NOMINAL_TYPE_CODE IS 'Тип индексации номинала (linked to nominalTypeCode)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.NOMINAL_VALUE IS 'Индексируемый номинал';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.NOMINAL_INDEXATION_DATE IS 'Дата индексации номинала';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.NOMINAL_INDEXATION_SIGN IS 'Фактическая индексация (linked to allowed)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.SETTLEMENT_HOUSE IS 'Наименование расчетной организации';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.DEPOSITORY IS 'Наименование депозитария';
GRANT ALL PRIVILEGES ON TABLE DIGITAL_CERTIFICATE_SECURITY_HISTORY TO clearing;
-- utilitarianDigitalRight - Утилитарные цифровые права
DROP TABLE IF EXISTS UTILITARIAN_DIGITAL_RIGHT;
CREATE TABLE UTILITARIAN_DIGITAL_RIGHT(ID bigint PRIMARY KEY, SECURITY_ID bigint, INVESTMENT_ATTRACTING_COMPANY varchar(255), INVESTMENT_ATTRACTING_INN varchar(255), ISSUE_AMOUNT numeric(72,2), ISSUE_PRICE numeric(72,18), ISSUE_SIZE bigint, NOMINAL_INDEXATION varchar(255), PLATFORM_OPERATOR varchar(255), PLATFORM_OPERATOR_CODE varchar(255), PLATFORM_OPERATOR_INN varchar(255), PLATFORM_OPERATOR_WEB varchar(255), PLATFORM_PROPOSAL_WEB varchar(255), RIGHT_ESSENCE varchar(255), RIGHT_UNIT varchar(255), RIGHT_UNIT_MEASUREMENT varchar(4));
COMMENT ON TABLE UTILITARIAN_DIGITAL_RIGHT IS 'Утилитарные цифровые права';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.ID IS 'Идентификатор записи';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.SECURITY_ID IS 'Идентификатор инструмента (linked to security)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.INVESTMENT_ATTRACTING_COMPANY IS 'Наименование лица, обязанного по УЦП (linked to company)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.INVESTMENT_ATTRACTING_INN IS 'ИНН лица, обязанного по УЦП';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.ISSUE_AMOUNT IS 'Общий объем выпуска';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.ISSUE_PRICE IS 'Цена УЦП в инвестиционном предложении';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.ISSUE_SIZE IS 'Общее количество УЦП в выпуске';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.NOMINAL_INDEXATION IS 'Порядок определения номинала УЦП в случае предусмотренной индексации';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_OPERATOR IS 'Наименование оператора инвестиционной платформы';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_OPERATOR_CODE IS 'Код УЦП, присвоенный оператором инвестиционной платформы';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_OPERATOR_INN IS 'ИНН оператора инвестиционной платформы';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_OPERATOR_WEB IS 'Адрес сайта оператора инвестиционной платформы';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_PROPOSAL_WEB IS 'Ссылка на описание условий инвестиционного предложения';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.RIGHT_ESSENCE IS 'Существо права требования';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.RIGHT_UNIT IS 'Количество единиц существа права (требования)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.RIGHT_UNIT_MEASUREMENT IS 'Единица измерения существа права (требования) (linked to unitMeasurement)';
GRANT ALL PRIVILEGES ON TABLE UTILITARIAN_DIGITAL_RIGHT TO clearing;
-- History log of utilitarianDigitalRight - Утилитарные цифровые права
DROP TABLE IF EXISTS UTILITARIAN_DIGITAL_RIGHT_HISTORY;
CREATE TABLE UTILITARIAN_DIGITAL_RIGHT_HISTORY(UTILITARIAN_DIGITAL_RIGHT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, SECURITY_ID bigint, INVESTMENT_ATTRACTING_COMPANY varchar(255), INVESTMENT_ATTRACTING_INN varchar(255), ISSUE_AMOUNT numeric(72,2), ISSUE_PRICE numeric(72,18), ISSUE_SIZE bigint, NOMINAL_INDEXATION varchar(255), PLATFORM_OPERATOR varchar(255), PLATFORM_OPERATOR_CODE varchar(255), PLATFORM_OPERATOR_INN varchar(255), PLATFORM_OPERATOR_WEB varchar(255), PLATFORM_PROPOSAL_WEB varchar(255), RIGHT_ESSENCE varchar(255), RIGHT_UNIT varchar(255), RIGHT_UNIT_MEASUREMENT varchar(4));
COMMENT ON TABLE UTILITARIAN_DIGITAL_RIGHT_HISTORY IS 'История изменений таблицы utilitarianDigitalRight';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.UTILITARIAN_DIGITAL_RIGHT_ID IS 'Идентификатор записи в таблице UTILITARIAN_DIGITAL_RIGHT';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.EVENT_TIME IS 'Дата и время изменения';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.EVENT_TYPE IS 'Тип изменения';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.ID IS 'Идентификатор записи';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.INVESTMENT_ATTRACTING_COMPANY IS 'Наименование лица, обязанного по УЦП (linked to company)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.INVESTMENT_ATTRACTING_INN IS 'ИНН лица, обязанного по УЦП';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.ISSUE_AMOUNT IS 'Общий объем выпуска';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.ISSUE_PRICE IS 'Цена УЦП в инвестиционном предложении';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.ISSUE_SIZE IS 'Общее количество УЦП в выпуске';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.NOMINAL_INDEXATION IS 'Порядок определения номинала УЦП в случае предусмотренной индексации';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_OPERATOR IS 'Наименование оператора инвестиционной платформы';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_OPERATOR_CODE IS 'Код УЦП, присвоенный оператором инвестиционной платформы';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_OPERATOR_INN IS 'ИНН оператора инвестиционной платформы';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_OPERATOR_WEB IS 'Адрес сайта оператора инвестиционной платформы';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_PROPOSAL_WEB IS 'Ссылка на описание условий инвестиционного предложения';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.RIGHT_ESSENCE IS 'Существо права требования';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.RIGHT_UNIT IS 'Количество единиц существа права (требования)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.RIGHT_UNIT_MEASUREMENT IS 'Единица измерения существа права (требования) (linked to unitMeasurement)';
GRANT ALL PRIVILEGES ON TABLE UTILITARIAN_DIGITAL_RIGHT_HISTORY TO clearing;
/* views */
-- Data types

View file

@ -80,6 +80,8 @@ INSERT INTO CONTACT_TYPE_DICTIONARY(ID, CODE, NAME) values (9, 'INFO', 'Конт
INSERT INTO CONTACT_TYPE_DICTIONARY(ID, CODE, NAME) values (10, 'CMNT', 'Примечание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO CONTACT_TYPE_DICTIONARY(ID, CODE, NAME) values (11, 'WEB', 'Веб-сайт') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DOCUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'PASP', 'Паспорт') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DOCUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'ICRT', 'Удостоверение личности') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -232,6 +234,8 @@ INSERT INTO INSTRUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (5, 'MFND', 'ПА
INSERT INTO INSTRUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (6, 'CURR', 'Валютная пара') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO INSTRUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (7, 'DGCT', 'Цифровое свидетельство') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TERM_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'S', 'Срочный') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TERM_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'K', 'Комбинированный') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -684,6 +688,12 @@ INSERT INTO PRIORITY_DICTIONARY(ID, CODE, NAME) values (1, 'HIGH', 'Высоки
INSERT INTO PRIORITY_DICTIONARY(ID, CODE, NAME) values (2, 'LOW', 'Низкий') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO NOMINAL_TYPE_CODE_DICTIONARY(ID, CODE, NAME) values (1, 'FIXD', 'Фиксированный') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO NOMINAL_TYPE_CODE_DICTIONARY(ID, CODE, NAME) values (2, 'INDX', 'Индексируемый') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO UNIT_MEASUREMENT_DICTIONARY(ID, CODE, NAME) values (1, 'KG', 'Килограмм') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1000, 'SECR', 'Общая ошибка модуля securities-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1001, 'SECR', 'Нет прав на проведение данной операции.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -870,6 +880,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5030, 'ACNT', 'Ком
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5031, 'ACNT', 'Для данной валюты в ТКР уже задан счет.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5032, 'ACNT', 'В поле %s недопустимый символ %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5200, 'BLNC', 'Общая ошибка модуля balance-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5210, 'BLNC', 'Клиринговая сессия неактивна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -984,6 +996,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (6003, 'GTWA', 'Пре
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (6004, 'GTWA', 'Получен отрицательный ответ на запрос системы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (6005, 'GTWA', 'Не удается найти запись %s в dc') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7000, 'SCHD', 'Общая ошибка модуля scheduler-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7001, 'SCHD', 'Нет прав на проведение данной операции.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -1014,6 +1028,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7016, 'SCHD', 'Воз
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7017, 'SCHD', 'Возможно добавить задачу только на будущее время.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7018, 'SCHD', 'В поле %s недопустимый символ %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (8000, 'CNTR', 'Общая ошибка модуля control-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (9000, 'BAPI', 'Ошибка проверки поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -1036,4 +1052,4 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (10001, 'TRDI', 'Сде
/* Business objects */
INSERT INTO DB_VERSION(ID, DICTIONARY_VERSION) values (1, '3.17.0.98') ON CONFLICT (ID) DO UPDATE SET DICTIONARY_VERSION = EXCLUDED.DICTIONARY_VERSION
INSERT INTO DB_VERSION(ID, DICTIONARY_VERSION) values (1, '3.18.0.99') ON CONFLICT (ID) DO UPDATE SET DICTIONARY_VERSION = EXCLUDED.DICTIONARY_VERSION

View file

@ -15,4 +15,181 @@ COMMENT ON COLUMN VALIDATION_SYMBOLS.SYMBOLS IS '
COMMENT ON COLUMN VALIDATION_SYMBOLS.COMMENT IS 'Îïèñàíèå ãðóïïû ñèìâîëîâ';
GRANT ALL PRIVILEGES ON TABLE VALIDATION_SYMBOLS TO clearing;
-- nominalTypeCode - Ñïðàâî÷íèê òèïîâ íîìèíàëà ÓÖÏ
DROP TABLE IF EXISTS NOMINAL_TYPE_CODE_DICTIONARY;
CREATE TABLE NOMINAL_TYPE_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255));
COMMENT ON TABLE NOMINAL_TYPE_CODE_DICTIONARY IS 'Ñïðàâî÷íèê òèïîâ íîìèíàëà ÓÖÏ';
COMMENT ON COLUMN NOMINAL_TYPE_CODE_DICTIONARY.ID IS 'Èäåíòèôèêàòîð çàïèñè';
COMMENT ON COLUMN NOMINAL_TYPE_CODE_DICTIONARY.CODE IS 'Êîä';
COMMENT ON COLUMN NOMINAL_TYPE_CODE_DICTIONARY.NAME IS 'Íàèìåíîâàíèå';
GRANT ALL PRIVILEGES ON TABLE NOMINAL_TYPE_CODE_DICTIONARY TO clearing;
-- unitMeasurement - Ñïðàâî÷íèê åäèíèö èçìåðåíèÿ
DROP TABLE IF EXISTS UNIT_MEASUREMENT_DICTIONARY;
CREATE TABLE UNIT_MEASUREMENT_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255));
COMMENT ON TABLE UNIT_MEASUREMENT_DICTIONARY IS 'Ñïðàâî÷íèê åäèíèö èçìåðåíèÿ';
COMMENT ON COLUMN UNIT_MEASUREMENT_DICTIONARY.ID IS 'Èäåíòèôèêàòîð çàïèñè';
COMMENT ON COLUMN UNIT_MEASUREMENT_DICTIONARY.CODE IS 'Êîä';
COMMENT ON COLUMN UNIT_MEASUREMENT_DICTIONARY.NAME IS 'Íàèìåíîâàíèå';
GRANT ALL PRIVILEGES ON TABLE UNIT_MEASUREMENT_DICTIONARY TO clearing;
-- digitalCertificateSecurity - Öèôðîâûå ñâèäåòåëüñòâà
DROP TABLE IF EXISTS DIGITAL_CERTIFICATE_SECURITY;
CREATE TABLE DIGITAL_CERTIFICATE_SECURITY(ID bigint PRIMARY KEY, SECURITY_ID bigint, BASE_CODE varchar(50), BASE_UNIT_SIZE bigint, PRICE_VARIANCE_LIMIT numeric(72,18), NOMINAL_TYPE_CODE varchar(4), NOMINAL_VALUE numeric(72,18), NOMINAL_INDEXATION_DATE date, NOMINAL_INDEXATION_SIGN varchar(4), SETTLEMENT_HOUSE varchar(255), DEPOSITORY varchar(255));
COMMENT ON TABLE DIGITAL_CERTIFICATE_SECURITY IS 'Öèôðîâûå ñâèäåòåëüñòâà';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.ID IS 'Èäåíòèôèêàòîð çàïèñè';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.SECURITY_ID IS 'Èäåíòèôèêàòîð èíñòðóìåíòà (linked to security)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.BASE_CODE IS 'Êîä ÖÑ, ïðèñâîåííûé äåïîçèòàðèåì';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.BASE_UNIT_SIZE IS 'Êîëè÷åñòâî ÓÖÏ â îäíîì ÖÑ';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.PRICE_VARIANCE_LIMIT IS 'Ïðåäåëû èçìåíåíèÿ öåíû';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.NOMINAL_TYPE_CODE IS 'Òèï èíäåêñàöèè íîìèíàëà (linked to nominalTypeCode)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.NOMINAL_VALUE IS 'Èíäåêñèðóåìûé íîìèíàë';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.NOMINAL_INDEXATION_DATE IS 'Äàòà èíäåêñàöèè íîìèíàëà';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.NOMINAL_INDEXATION_SIGN IS 'Ôàêòè÷åñêàÿ èíäåêñàöèÿ (linked to allowed)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.SETTLEMENT_HOUSE IS 'Íàèìåíîâàíèå ðàñ÷åòíîé îðãàíèçàöèè';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY.DEPOSITORY IS 'Íàèìåíîâàíèå äåïîçèòàðèÿ';
GRANT ALL PRIVILEGES ON TABLE DIGITAL_CERTIFICATE_SECURITY TO clearing;
-- History log of digitalCertificateSecurity - Öèôðîâûå ñâèäåòåëüñòâà
DROP TABLE IF EXISTS DIGITAL_CERTIFICATE_SECURITY_HISTORY;
CREATE TABLE DIGITAL_CERTIFICATE_SECURITY_HISTORY(DIGITAL_CERTIFICATE_SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, SECURITY_ID bigint, BASE_CODE varchar(50), BASE_UNIT_SIZE bigint, PRICE_VARIANCE_LIMIT numeric(72,18), NOMINAL_TYPE_CODE varchar(4), NOMINAL_VALUE numeric(72,18), NOMINAL_INDEXATION_DATE date, NOMINAL_INDEXATION_SIGN varchar(4), SETTLEMENT_HOUSE varchar(255), DEPOSITORY varchar(255));
COMMENT ON TABLE DIGITAL_CERTIFICATE_SECURITY_HISTORY IS 'Èñòîðèÿ èçìåíåíèé òàáëèöû digitalCertificateSecurity';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.DIGITAL_CERTIFICATE_SECURITY_ID IS 'Èäåíòèôèêàòîð çàïèñè â òàáëèöå DIGITAL_CERTIFICATE_SECURITY';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.EVENT_TIME IS 'Äàòà è âðåìÿ èçìåíåíèÿ';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.EVENT_USER_ID IS 'Èíèöèàòîð èçìåíåíèÿ';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.EVENT_TYPE IS 'Òèï èçìåíåíèÿ';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.ID IS 'Èäåíòèôèêàòîð çàïèñè';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.SECURITY_ID IS 'Èäåíòèôèêàòîð èíñòðóìåíòà (linked to security)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.BASE_CODE IS 'Êîä ÖÑ, ïðèñâîåííûé äåïîçèòàðèåì';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.BASE_UNIT_SIZE IS 'Êîëè÷åñòâî ÓÖÏ â îäíîì ÖÑ';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.PRICE_VARIANCE_LIMIT IS 'Ïðåäåëû èçìåíåíèÿ öåíû';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.NOMINAL_TYPE_CODE IS 'Òèï èíäåêñàöèè íîìèíàëà (linked to nominalTypeCode)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.NOMINAL_VALUE IS 'Èíäåêñèðóåìûé íîìèíàë';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.NOMINAL_INDEXATION_DATE IS 'Äàòà èíäåêñàöèè íîìèíàëà';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.NOMINAL_INDEXATION_SIGN IS 'Ôàêòè÷åñêàÿ èíäåêñàöèÿ (linked to allowed)';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.SETTLEMENT_HOUSE IS 'Íàèìåíîâàíèå ðàñ÷åòíîé îðãàíèçàöèè';
COMMENT ON COLUMN DIGITAL_CERTIFICATE_SECURITY_HISTORY.DEPOSITORY IS 'Íàèìåíîâàíèå äåïîçèòàðèÿ';
GRANT ALL PRIVILEGES ON TABLE DIGITAL_CERTIFICATE_SECURITY_HISTORY TO clearing;
-- utilitarianDigitalRight - Óòèëèòàðíûå öèôðîâûå ïðàâà
DROP TABLE IF EXISTS UTILITARIAN_DIGITAL_RIGHT;
CREATE TABLE UTILITARIAN_DIGITAL_RIGHT(ID bigint PRIMARY KEY, SECURITY_ID bigint, INVESTMENT_ATTRACTING_COMPANY varchar(255), INVESTMENT_ATTRACTING_INN varchar(255), ISSUE_AMOUNT numeric(72,2), ISSUE_PRICE numeric(72,18), ISSUE_SIZE bigint, NOMINAL_INDEXATION varchar(255), PLATFORM_OPERATOR varchar(255), PLATFORM_OPERATOR_CODE varchar(255), PLATFORM_OPERATOR_INN varchar(255), PLATFORM_OPERATOR_WEB varchar(255), PLATFORM_PROPOSAL_WEB varchar(255), RIGHT_ESSENCE varchar(255), RIGHT_UNIT varchar(255), RIGHT_UNIT_MEASUREMENT varchar(4));
COMMENT ON TABLE UTILITARIAN_DIGITAL_RIGHT IS 'Óòèëèòàðíûå öèôðîâûå ïðàâà';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.ID IS 'Èäåíòèôèêàòîð çàïèñè';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.SECURITY_ID IS 'Èäåíòèôèêàòîð èíñòðóìåíòà (linked to security)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.INVESTMENT_ATTRACTING_COMPANY IS 'Íàèìåíîâàíèå ëèöà, îáÿçàííîãî ïî ÓÖÏ (linked to company)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.INVESTMENT_ATTRACTING_INN IS 'ÈÍÍ ëèöà, îáÿçàííîãî ïî ÓÖÏ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.ISSUE_AMOUNT IS 'Îáùèé îáúåì âûïóñêà';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.ISSUE_PRICE IS 'Öåíà ÓÖÏ â èíâåñòèöèîííîì ïðåäëîæåíèè';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.ISSUE_SIZE IS 'Îáùåå êîëè÷åñòâî ÓÖÏ â âûïóñêå';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.NOMINAL_INDEXATION IS 'Ïîðÿäîê îïðåäåëåíèÿ íîìèíàëà ÓÖÏ â ñëó÷àå ïðåäóñìîòðåííîé èíäåêñàöèè';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_OPERATOR IS 'Íàèìåíîâàíèå îïåðàòîðà èíâåñòèöèîííîé ïëàòôîðìû';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_OPERATOR_CODE IS 'Êîä ÓÖÏ, ïðèñâîåííûé îïåðàòîðîì èíâåñòèöèîííîé ïëàòôîðìû';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_OPERATOR_INN IS 'ÈÍÍ îïåðàòîðà èíâåñòèöèîííîé ïëàòôîðìû';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_OPERATOR_WEB IS 'Àäðåñ ñàéòà îïåðàòîðà èíâåñòèöèîííîé ïëàòôîðìû';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.PLATFORM_PROPOSAL_WEB IS 'Ññûëêà íà îïèñàíèå óñëîâèé èíâåñòèöèîííîãî ïðåäëîæåíèÿ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.RIGHT_ESSENCE IS 'Ñóùåñòâî ïðàâà òðåáîâàíèÿ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.RIGHT_UNIT IS 'Êîëè÷åñòâî åäèíèö ñóùåñòâà ïðàâà (òðåáîâàíèÿ)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT.RIGHT_UNIT_MEASUREMENT IS 'Åäèíèöà èçìåðåíèÿ ñóùåñòâà ïðàâà (òðåáîâàíèÿ) (linked to unitMeasurement)';
GRANT ALL PRIVILEGES ON TABLE UTILITARIAN_DIGITAL_RIGHT TO clearing;
-- History log of utilitarianDigitalRight - Óòèëèòàðíûå öèôðîâûå ïðàâà
DROP TABLE IF EXISTS UTILITARIAN_DIGITAL_RIGHT_HISTORY;
CREATE TABLE UTILITARIAN_DIGITAL_RIGHT_HISTORY(UTILITARIAN_DIGITAL_RIGHT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, SECURITY_ID bigint, INVESTMENT_ATTRACTING_COMPANY varchar(255), INVESTMENT_ATTRACTING_INN varchar(255), ISSUE_AMOUNT numeric(72,2), ISSUE_PRICE numeric(72,18), ISSUE_SIZE bigint, NOMINAL_INDEXATION varchar(255), PLATFORM_OPERATOR varchar(255), PLATFORM_OPERATOR_CODE varchar(255), PLATFORM_OPERATOR_INN varchar(255), PLATFORM_OPERATOR_WEB varchar(255), PLATFORM_PROPOSAL_WEB varchar(255), RIGHT_ESSENCE varchar(255), RIGHT_UNIT varchar(255), RIGHT_UNIT_MEASUREMENT varchar(4));
COMMENT ON TABLE UTILITARIAN_DIGITAL_RIGHT_HISTORY IS 'Èñòîðèÿ èçìåíåíèé òàáëèöû utilitarianDigitalRight';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.UTILITARIAN_DIGITAL_RIGHT_ID IS 'Èäåíòèôèêàòîð çàïèñè â òàáëèöå UTILITARIAN_DIGITAL_RIGHT';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.EVENT_TIME IS 'Äàòà è âðåìÿ èçìåíåíèÿ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.EVENT_USER_ID IS 'Èíèöèàòîð èçìåíåíèÿ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.EVENT_TYPE IS 'Òèï èçìåíåíèÿ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.ID IS 'Èäåíòèôèêàòîð çàïèñè';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.SECURITY_ID IS 'Èäåíòèôèêàòîð èíñòðóìåíòà (linked to security)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.INVESTMENT_ATTRACTING_COMPANY IS 'Íàèìåíîâàíèå ëèöà, îáÿçàííîãî ïî ÓÖÏ (linked to company)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.INVESTMENT_ATTRACTING_INN IS 'ÈÍÍ ëèöà, îáÿçàííîãî ïî ÓÖÏ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.ISSUE_AMOUNT IS 'Îáùèé îáúåì âûïóñêà';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.ISSUE_PRICE IS 'Öåíà ÓÖÏ â èíâåñòèöèîííîì ïðåäëîæåíèè';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.ISSUE_SIZE IS 'Îáùåå êîëè÷åñòâî ÓÖÏ â âûïóñêå';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.NOMINAL_INDEXATION IS 'Ïîðÿäîê îïðåäåëåíèÿ íîìèíàëà ÓÖÏ â ñëó÷àå ïðåäóñìîòðåííîé èíäåêñàöèè';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_OPERATOR IS 'Íàèìåíîâàíèå îïåðàòîðà èíâåñòèöèîííîé ïëàòôîðìû';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_OPERATOR_CODE IS 'Êîä ÓÖÏ, ïðèñâîåííûé îïåðàòîðîì èíâåñòèöèîííîé ïëàòôîðìû';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_OPERATOR_INN IS 'ÈÍÍ îïåðàòîðà èíâåñòèöèîííîé ïëàòôîðìû';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_OPERATOR_WEB IS 'Àäðåñ ñàéòà îïåðàòîðà èíâåñòèöèîííîé ïëàòôîðìû';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.PLATFORM_PROPOSAL_WEB IS 'Ññûëêà íà îïèñàíèå óñëîâèé èíâåñòèöèîííîãî ïðåäëîæåíèÿ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.RIGHT_ESSENCE IS 'Ñóùåñòâî ïðàâà òðåáîâàíèÿ';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.RIGHT_UNIT IS 'Êîëè÷åñòâî åäèíèö ñóùåñòâà ïðàâà (òðåáîâàíèÿ)';
COMMENT ON COLUMN UTILITARIAN_DIGITAL_RIGHT_HISTORY.RIGHT_UNIT_MEASUREMENT IS 'Åäèíèöà èçìåðåíèÿ ñóùåñòâà ïðàâà (òðåáîâàíèÿ) (linked to unitMeasurement)';
GRANT ALL PRIVILEGES ON TABLE UTILITARIAN_DIGITAL_RIGHT_HISTORY TO clearing;
INSERT INTO DB_VERSION(ID, VERSION) values (1, '3.18') ON CONFLICT (ID) DO UPDATE SET VERSION = EXCLUDED.VERSION

View file

@ -0,0 +1,11 @@
package ru.clearing.platform.dictionary;
/**
* Справочник типов номинала УЦП
*
* Dictionary DB table: NOMINAL_TYPE_CODE_DICTIONARY
**/
public class NominalTypeCodeDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

@ -0,0 +1,11 @@
package ru.clearing.platform.dictionary;
/**
* Справочник единиц измерения
*
* Dictionary DB table: UNIT_MEASUREMENT_DICTIONARY
**/
public class UnitMeasurementDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

@ -0,0 +1,68 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.security.DigitalCertificateSecurity;
import ru.clearing.classes.statics.data.security.DigitalCertificateSecurityHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class DigitalCertificateSecurityHistoryMapStore extends ASecurityHistoryMapStore<DigitalCertificateSecurityHistory> {
public DigitalCertificateSecurityHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_DigitalCertificateSecurityHistory;
}
@Override
public String getTableName() {
return "DIGITAL_CERTIFICATE_SECURITY_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"DIGITAL_CERTIFICATE_SECURITY_ID", "SECURITY_ID", "BASE_CODE", "BASE_UNIT_SIZE", "PRICE_VARIANCE_LIMIT", "NOMINAL_TYPE_CODE", "NOMINAL_VALUE", "NOMINAL_INDEXATION_DATE", "NOMINAL_INDEXATION_SIGN", "SETTLEMENT_HOUSE", "DEPOSITORY"
};
}
@Override
public Object[] objectToField(DigitalCertificateSecurityHistory historyLog) {
DigitalCertificateSecurity object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getSecurityId(),
//ext: object.getShortName()
//ext: object.getSecuritySymbol()
//ext: object.getFullName()
//ext: object.getIsin()
//ext: object.getInstrumentType()
//ext: object.getIssuerId()
//ext: object.getShortNameEng()
//ext: object.getFullNameEng()
//ext: object.getWorkflowStatus(),
object.getBaseCode(),
//ext: object.getLotSize(),
object.getBaseUnitSize(),
object.getPriceVarianceLimit(),
object.getNominalTypeCode(),
object.getNominalValue(),
TimeUtil.toDateFromLocalDate(object.getNominalIndexationDate()),
object.getNominalIndexationSign(),
object.getSettlementHouse(),
object.getDepository()
};
return args;
}
}

View file

@ -0,0 +1,64 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.security.UtilitarianDigitalRight;
import ru.clearing.classes.statics.data.security.UtilitarianDigitalRightHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class UtilitarianDigitalRightHistoryMapStore extends TemplateEventMapStore<UtilitarianDigitalRightHistory> {
public UtilitarianDigitalRightHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_UtilitarianDigitalRightHistory;
}
@Override
public String getTableName() {
return "UTILITARIAN_DIGITAL_RIGHT_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"UTILITARIAN_DIGITAL_RIGHT_ID", "SECURITY_ID", "INVESTMENT_ATTRACTING_COMPANY", "INVESTMENT_ATTRACTING_INN", "ISSUE_AMOUNT", "ISSUE_PRICE", "ISSUE_SIZE", "NOMINAL_INDEXATION", "PLATFORM_OPERATOR", "PLATFORM_OPERATOR_CODE", "PLATFORM_OPERATOR_INN", "PLATFORM_OPERATOR_WEB", "PLATFORM_PROPOSAL_WEB", "RIGHT_ESSENCE", "RIGHT_UNIT", "RIGHT_UNIT_MEASUREMENT"
};
}
@Override
public Object[] objectToField(UtilitarianDigitalRightHistory historyLog) {
UtilitarianDigitalRight object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getSecurityId(),
object.getInvestmentAttractingCompany(),
object.getInvestmentAttractingInn(),
object.getIssueAmount(),
object.getIssuePrice(),
object.getIssueSize(),
object.getNominalIndexation(),
object.getPlatformOperator(),
object.getPlatformOperatorCode(),
object.getPlatformOperatorInn(),
object.getPlatformOperatorWeb(),
object.getPlatformProposalWeb(),
object.getRightEssence(),
object.getRightUnit(),
object.getRightUnitMeasurement()
};
return args;
}
}

View file

@ -0,0 +1,30 @@
package ru.spcex.clearing.imdg.dictionary;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.platform.dictionary.NominalTypeCodeDictionary;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.DictionaryTMapStore;
@Component
public class NominalTypeCodeDictionaryMapStore extends DictionaryTMapStore<NominalTypeCodeDictionary> {
public NominalTypeCodeDictionaryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_NominalTypeCodeDictionary;
}
@Override
public String getTableName() {
return "NOMINAL_TYPE_CODE_DICTIONARY";
}
@Override
public NominalTypeCodeDictionary getDictionaryObject() {
return new NominalTypeCodeDictionary();
}
}

View file

@ -0,0 +1,30 @@
package ru.spcex.clearing.imdg.dictionary;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.platform.dictionary.UnitMeasurementDictionary;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.DictionaryTMapStore;
@Component
public class UnitMeasurementDictionaryMapStore extends DictionaryTMapStore<UnitMeasurementDictionary> {
public UnitMeasurementDictionaryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_UnitMeasurementDictionary;
}
@Override
public String getTableName() {
return "UNIT_MEASUREMENT_DICTIONARY";
}
@Override
public UnitMeasurementDictionary getDictionaryObject() {
return new UnitMeasurementDictionary();
}
}

View file

@ -0,0 +1,95 @@
package ru.spcex.clearing.imdg.object;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.security.DigitalCertificateSecurity;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.businessobject.ASecurityMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
@Component
public class DigitalCertificateSecurityMapStore extends ASecurityMapStore<DigitalCertificateSecurity> {
public DigitalCertificateSecurityMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_DigitalCertificateSecurity;
}
@Override
public String getTableName() {
return "DIGITAL_CERTIFICATE_SECURITY";
}
@Override
public String[] getFields() {
return new String[]{
"ID", "SECURITY_ID", "BASE_CODE", "BASE_UNIT_SIZE", "PRICE_VARIANCE_LIMIT", "NOMINAL_TYPE_CODE", "NOMINAL_VALUE", "NOMINAL_INDEXATION_DATE", "NOMINAL_INDEXATION_SIGN", "SETTLEMENT_HOUSE", "DEPOSITORY"
};
}
@Override
public DigitalCertificateSecurity objectReader(ResultSet resultSet) throws SQLException {
DigitalCertificateSecurity object = new DigitalCertificateSecurity();
object.setId(resultSet.getObject("ID", Long.class));
object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class));
//ext: object.setShortName(resultSet.getObject("SHORT_NAME", String.class));
//ext: object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class));
//ext: object.setFullName(resultSet.getObject("FULL_NAME", String.class));
//ext: object.setIsin(resultSet.getObject("ISIN", String.class));
//ext: object.setInstrumentType(resultSet.getObject("INSTRUMENT_TYPE", String.class));
//ext: object.setIssuerId(resultSet.getObject("ISSUER_ID", Long.class));
//ext: object.setShortNameEng(resultSet.getObject("SHORT_NAME_ENG", String.class));
//ext: object.setFullNameEng(resultSet.getObject("FULL_NAME_ENG", String.class));
//ext: object.setWorkflowStatus(resultSet.getObject("WORKFLOW_STATUS", String.class));
object.setBaseCode(resultSet.getObject("BASE_CODE", String.class));
//ext: object.setLotSize(resultSet.getObject("LOT_SIZE", BigDecimal.class));
object.setBaseUnitSize(resultSet.getObject("BASE_UNIT_SIZE", Long.class));
object.setPriceVarianceLimit(resultSet.getObject("PRICE_VARIANCE_LIMIT", BigDecimal.class));
object.setNominalTypeCode(resultSet.getObject("NOMINAL_TYPE_CODE", String.class));
object.setNominalValue(resultSet.getObject("NOMINAL_VALUE", BigDecimal.class));
object.setNominalIndexationDate(getLocalDateFromSqlDate(resultSet, "NOMINAL_INDEXATION_DATE"));
object.setNominalIndexationSign(resultSet.getObject("NOMINAL_INDEXATION_SIGN", String.class));
object.setSettlementHouse(resultSet.getObject("SETTLEMENT_HOUSE", String.class));
object.setDepository(resultSet.getObject("DEPOSITORY", String.class));
return object;
}
@Override
public Object[] objectToField(DigitalCertificateSecurity object) {
Object[] args = new Object[]{
object.getId(),
object.getSecurityId(),
//ext: object.getShortName()
//ext: object.getSecuritySymbol()
//ext: object.getFullName()
//ext: object.getIsin()
//ext: object.getInstrumentType()
//ext: object.getIssuerId()
//ext: object.getShortNameEng()
//ext: object.getFullNameEng()
//ext: object.getWorkflowStatus(),
object.getBaseCode(),
//ext: object.getLotSize(),
object.getBaseUnitSize(),
object.getPriceVarianceLimit(),
object.getNominalTypeCode(),
object.getNominalValue(),
TimeUtil.toDateFromLocalDate(object.getNominalIndexationDate()),
object.getNominalIndexationSign(),
object.getSettlementHouse(),
object.getDepository()
};
return args;
}
}

View file

@ -0,0 +1,82 @@
package ru.spcex.clearing.imdg.object;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.security.UtilitarianDigitalRight;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
@Component
public class UtilitarianDigitalRightMapStore extends TemplateMapStore<UtilitarianDigitalRight> {
public UtilitarianDigitalRightMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_UtilitarianDigitalRight;
}
@Override
public String getTableName() {
return "UTILITARIAN_DIGITAL_RIGHT";
}
@Override
public String[] getFields() {
return new String[]{
"ID", "SECURITY_ID", "INVESTMENT_ATTRACTING_COMPANY", "INVESTMENT_ATTRACTING_INN", "ISSUE_AMOUNT", "ISSUE_PRICE", "ISSUE_SIZE", "NOMINAL_INDEXATION", "PLATFORM_OPERATOR", "PLATFORM_OPERATOR_CODE", "PLATFORM_OPERATOR_INN", "PLATFORM_OPERATOR_WEB", "PLATFORM_PROPOSAL_WEB", "RIGHT_ESSENCE", "RIGHT_UNIT", "RIGHT_UNIT_MEASUREMENT"
};
}
@Override
public UtilitarianDigitalRight objectReader(ResultSet resultSet) throws SQLException {
UtilitarianDigitalRight object = new UtilitarianDigitalRight();
object.setId(resultSet.getObject("ID", Long.class));
object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class));
object.setInvestmentAttractingCompany(resultSet.getObject("INVESTMENT_ATTRACTING_COMPANY", String.class));
object.setInvestmentAttractingInn(resultSet.getObject("INVESTMENT_ATTRACTING_INN", String.class));
object.setIssueAmount(resultSet.getObject("ISSUE_AMOUNT", BigDecimal.class));
object.setIssuePrice(resultSet.getObject("ISSUE_PRICE", BigDecimal.class));
object.setIssueSize(resultSet.getObject("ISSUE_SIZE", Long.class));
object.setNominalIndexation(resultSet.getObject("NOMINAL_INDEXATION", String.class));
object.setPlatformOperator(resultSet.getObject("PLATFORM_OPERATOR", String.class));
object.setPlatformOperatorCode(resultSet.getObject("PLATFORM_OPERATOR_CODE", String.class));
object.setPlatformOperatorInn(resultSet.getObject("PLATFORM_OPERATOR_INN", String.class));
object.setPlatformOperatorWeb(resultSet.getObject("PLATFORM_OPERATOR_WEB", String.class));
object.setPlatformProposalWeb(resultSet.getObject("PLATFORM_PROPOSAL_WEB", String.class));
object.setRightEssence(resultSet.getObject("RIGHT_ESSENCE", String.class));
object.setRightUnit(resultSet.getObject("RIGHT_UNIT", String.class));
object.setRightUnitMeasurement(resultSet.getObject("RIGHT_UNIT_MEASUREMENT", String.class));
return object;
}
@Override
public Object[] objectToField(UtilitarianDigitalRight object) {
Object[] args = new Object[]{
object.getId(),
object.getSecurityId(),
object.getInvestmentAttractingCompany(),
object.getInvestmentAttractingInn(),
object.getIssueAmount(),
object.getIssuePrice(),
object.getIssueSize(),
object.getNominalIndexation(),
object.getPlatformOperator(),
object.getPlatformOperatorCode(),
object.getPlatformOperatorInn(),
object.getPlatformOperatorWeb(),
object.getPlatformProposalWeb(),
object.getRightEssence(),
object.getRightUnit(),
object.getRightUnitMeasurement()
};
return args;
}
}

View file

@ -235,6 +235,16 @@ public class UpdateMapService extends AbstractUpdateMapService {
createBusinessEvent(tradingClearingRegistryListHistory, eventType);
tradingClearingRegistryListHistory.setObject((TradingClearingRegistryList) value);
hazelcastServerInstance.getMap(IMDGDistributedNames.Map_TradingClearingRegistryListHistory).put(tradingClearingRegistryListHistory.getId(), tradingClearingRegistryListHistory);
} else if (value instanceof DigitalCertificateSecurity) {
DigitalCertificateSecurityHistory digitalCertificateSecurityHistory = new DigitalCertificateSecurityHistory();
createBusinessEvent(digitalCertificateSecurityHistory, eventType);
digitalCertificateSecurityHistory.setObject((DigitalCertificateSecurity) value);
hazelcastServerInstance.getMap(IMDGDistributedNames.Map_TradingClearingRegistryListHistory).put(digitalCertificateSecurityHistory.getId(), digitalCertificateSecurityHistory);
} else if (value instanceof UtilitarianDigitalRight) {
UtilitarianDigitalRightHistory utilitarianDigitalRightHistory = new UtilitarianDigitalRightHistory();
createBusinessEvent(utilitarianDigitalRightHistory, eventType);
utilitarianDigitalRightHistory.setObject((UtilitarianDigitalRight) value);
hazelcastServerInstance.getMap(IMDGDistributedNames.Map_TradingClearingRegistryListHistory).put(utilitarianDigitalRightHistory.getId(), utilitarianDigitalRightHistory);
} else if (value instanceof Security) { // Существуют наследники этой таблицы, по этому в последнюю очередь делать эту проверку.

View file

@ -22,10 +22,7 @@ import ru.clearing.classes.statics.data.registry.TradingClearingRegistryList;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistryListHistory;
import ru.clearing.classes.statics.data.scheduler.*;
import ru.clearing.classes.statics.data.sdf.*;
import ru.clearing.classes.statics.data.security.CurrencyPairSecurity;
import ru.clearing.classes.statics.data.security.CurrencyPairSecurityHistory;
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
import ru.clearing.classes.statics.data.security.MoneyMarketSecurityHistory;
import ru.clearing.classes.statics.data.security.*;
import ru.clearing.classes.statics.data.statement.Statement;
import ru.clearing.classes.statics.data.user.*;
import ru.clearing.platform.dictionary.*;
@ -148,6 +145,19 @@ public class RunnableMapNamesForTesting {
"object.shortName", "object.shortNameEng",
"object.uuid", "object.workflowStatus"
)));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DigitalCertificateSecurityHistory, DigitalCertificateSecurityHistory.class,
usingIgnoringFieldsComparator( // todo поправить тест для ASecurityHistoryMapStore
"object.created", "object.updated",
"object.fullName", "object.fullNameEng",
"object.instrumentType",
"object.isin", "object.issuerId",
"object.lotSize",
"object.securitySymbol",
"object.shortName", "object.shortNameEng",
"object.uuid", "object.workflowStatus"
)));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UtilitarianDigitalRightHistory, UtilitarianDigitalRightHistory.class));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_FixedIncomeCashFlowHistory, FixedIncomeCashFlowHistory.class,
usingIgnoringFieldsComparator("object.accruedCoupon")
/* new SettingOperation("getObject.setAccruedCoupon", new Object[]{new BigDecimal("870.680000000000000000")})*/));
@ -288,6 +298,8 @@ public class RunnableMapNamesForTesting {
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_BalanceDimensionDictionary, BalanceDimensionDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_DepoAccountTypeDictionary, DepoAccountTypeDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingAccountTypeDictionary, ClearingAccountTypeDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_NominalTypeCodeDictionary, NominalTypeCodeDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_UnitMeasurementDictionary, UnitMeasurementDictionary.class));
//object
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_BankAccount, BankAccount.class));
@ -442,6 +454,8 @@ public class RunnableMapNamesForTesting {
new SettingOperation("setOp_type", new Object[]{"OT"})
));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ValidationSymbols, ValidationSymbols.class));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DigitalCertificateSecurity, DigitalCertificateSecurity.class));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UtilitarianDigitalRight, UtilitarianDigitalRight.class));
}
}

View file

@ -187,6 +187,13 @@ public final class IMDGDistributedNames {
public static final String Map_TradingClearingRegistry = "Map_TradingClearingRegistry";
public static final String Map_TradingClearingRegistryHistory = "Map_TradingClearingRegistryHistory";
public static final String Map_Registry = "Map_Registry";
public static final String Map_NominalTypeCodeDictionary = "Map_NominalTypeCodeDictionary";
public static final String Map_UnitMeasurementDictionary = "Map_UnitMeasurementDictionary";
public static final String Map_DigitalCertificateSecurity = "Map_DigitalCertificateSecurity";
public static final String Map_DigitalCertificateSecurityHistory = "Map_DigitalCertificateSecurityHistory";
public static final String Map_UtilitarianDigitalRight = "Map_UtilitarianDigitalRight";
public static final String Map_UtilitarianDigitalRightHistory = "Map_UtilitarianDigitalRightHistory";
//----------------SPECIFIC REGISTRY MAP STORES BY STATUS AND DESIGNATION---------------
public static final String Map_OkObligationRegistry = "Map_OkObligationRegistry";
public static final String Map_ProcObligationRegistry = "Map_ProcObligationRegistry";