diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/DigitalCertificateSecurity.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/DigitalCertificateSecurity.java new file mode 100644 index 000000000..054412667 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/DigitalCertificateSecurity.java @@ -0,0 +1,117 @@ +package ru.clearing.classes.statics.data.security; + +import ru.clearing.classes.ConstSerializable; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * Цифровые свидетельства + *

+ * 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; + } +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/DigitalCertificateSecurityHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/DigitalCertificateSecurityHistory.java new file mode 100644 index 000000000..5a4629c29 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/DigitalCertificateSecurityHistory.java @@ -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; + +/** + * Изменение состояния объекта Цифровые свидетельства + *

+ * DB table: DIGITAL_CERTIFICATE_SECURITY_HISTORY + **/ +public class DigitalCertificateSecurityHistory extends BusinessEvent { + @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; + } +} diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/UtilitarianDigitalRight.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/UtilitarianDigitalRight.java new file mode 100644 index 000000000..a4ece469d --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/UtilitarianDigitalRight.java @@ -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; + } +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/UtilitarianDigitalRightHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/UtilitarianDigitalRightHistory.java new file mode 100644 index 000000000..09f73571b --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/UtilitarianDigitalRightHistory.java @@ -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; + +/** + * Изменение состояния объекта Утилитарные цифровые права + *

+ * DB table: UTILITARIAN_DIGITAL_RIGHT_HISTORY + **/ +public class UtilitarianDigitalRightHistory extends BusinessEvent { + @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; + } +} 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 ca5757bbe..46569b4ae 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -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 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 d25ea94d7..69035893d 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql @@ -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 diff --git a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.18.sql b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.18.sql index e13effac4..964399b30 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.18.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.18.sql @@ -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 diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NominalTypeCodeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NominalTypeCodeDictionary.java new file mode 100644 index 000000000..8f264b76a --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NominalTypeCodeDictionary.java @@ -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; + +} diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/UnitMeasurementDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/UnitMeasurementDictionary.java new file mode 100644 index 000000000..d61a53ac9 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/UnitMeasurementDictionary.java @@ -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; + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/DigitalCertificateSecurityHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/DigitalCertificateSecurityHistoryMapStore.java new file mode 100644 index 000000000..7350d3f03 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/DigitalCertificateSecurityHistoryMapStore.java @@ -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 { + + 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; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/UtilitarianDigitalRightHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/UtilitarianDigitalRightHistoryMapStore.java new file mode 100644 index 000000000..6f2fa5372 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/UtilitarianDigitalRightHistoryMapStore.java @@ -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 { + + 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; + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NominalTypeCodeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NominalTypeCodeDictionaryMapStore.java new file mode 100644 index 000000000..764697f74 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NominalTypeCodeDictionaryMapStore.java @@ -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 { + + 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(); + } +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/UnitMeasurementDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/UnitMeasurementDictionaryMapStore.java new file mode 100644 index 000000000..807ffc929 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/UnitMeasurementDictionaryMapStore.java @@ -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 { + + 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(); + } +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DigitalCertificateSecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DigitalCertificateSecurityMapStore.java new file mode 100644 index 000000000..089ffde0a --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DigitalCertificateSecurityMapStore.java @@ -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 { + + 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; + } + + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UtilitarianDigitalRightMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UtilitarianDigitalRightMapStore.java new file mode 100644 index 000000000..356c50f9b --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UtilitarianDigitalRightMapStore.java @@ -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 { + + 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; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java index 2566cf8f9..5703e6155 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java @@ -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) { // Существуют наследники этой таблицы, по этому в последнюю очередь делать эту проверку. 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 72f2eaff3..b6a018f39 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 @@ -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)); } } diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index 932244664..23d82a81c 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -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";