From da5f351c545e8dfb4cc038dedd1562075841fabc Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 6 Sep 2023 17:04:15 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-502 DDL 3.8.1 --- .../backend-api/src/main/resources/meta/meta.json | 8 ++++++-- .../backend-api/src/main/resources/meta/meta.xml | 5 +++-- .../backend-api/src/test/resources/meta.json | 8 ++++++-- .../ru/clearing/classes/statics/data/sdf/SDf53.java | 10 ++++++++++ .../db-scripts/src/main/resources/db/DDL.sql | 12 +++++++----- .../src/main/resources/db/updateDDL_3.8.1.sql | 10 ++++++++++ .../ru/spcex/clearing/imdg/object/SDf53MapStore.java | 4 +++- 7 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.8.1.sql diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.json b/clearing-parent/backend-api/src/main/resources/meta/meta.json index 8ca1ec834..9e41d8c20 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.json +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.json @@ -1,6 +1,6 @@ { - "version": "3.8.0.46", + "version": "3.8.0.47", "enums": { @@ -5731,7 +5731,7 @@ } , {"code": "market", - "type": 12,"dbname": "Код секции финансового инструмента","name": "Секция финансового инструмента","shortname": "Секция","visible": true,"searchable": true,"sortable": true,"link": "market","linkKeyCode": "code","linkCode": "description" + "type": 2,"length": 8,"dbname": "Код секции финансового инструмента","name": "Секция финансового инструмента","shortname": "Секция","visible": true,"searchable": true,"sortable": true,"link": "market","linkKeyCode": "code","linkCode": "description" } , {"code": "price", @@ -8205,6 +8205,10 @@ {"code": "deal", "type": 2,"length": 4,"name": "Биржевой код участника клиринга","shortname": "Биржевой код УК","searchable": true,"sortable": true,"visible": true } + , + {"code": "date", + "type": 2,"length": 8,"name": "Дата изменения состояния счета","shortname": "Дата изменения состояния счета","searchable": true,"sortable": true,"visible": true + } , {"code": "status", "type": 3,"name": "Статус счета","shortname": "Статус","searchable": true,"sortable": true,"visible": true diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index 5d06a49ec..8b0a76a60 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + @@ -1324,7 +1324,7 @@ - + @@ -1896,6 +1896,7 @@ + diff --git a/clearing-parent/backend-api/src/test/resources/meta.json b/clearing-parent/backend-api/src/test/resources/meta.json index 8ca1ec834..9e41d8c20 100644 --- a/clearing-parent/backend-api/src/test/resources/meta.json +++ b/clearing-parent/backend-api/src/test/resources/meta.json @@ -1,6 +1,6 @@ { - "version": "3.8.0.46", + "version": "3.8.0.47", "enums": { @@ -5731,7 +5731,7 @@ } , {"code": "market", - "type": 12,"dbname": "Код секции финансового инструмента","name": "Секция финансового инструмента","shortname": "Секция","visible": true,"searchable": true,"sortable": true,"link": "market","linkKeyCode": "code","linkCode": "description" + "type": 2,"length": 8,"dbname": "Код секции финансового инструмента","name": "Секция финансового инструмента","shortname": "Секция","visible": true,"searchable": true,"sortable": true,"link": "market","linkKeyCode": "code","linkCode": "description" } , {"code": "price", @@ -8205,6 +8205,10 @@ {"code": "deal", "type": 2,"length": 4,"name": "Биржевой код участника клиринга","shortname": "Биржевой код УК","searchable": true,"sortable": true,"visible": true } + , + {"code": "date", + "type": 2,"length": 8,"name": "Дата изменения состояния счета","shortname": "Дата изменения состояния счета","searchable": true,"sortable": true,"visible": true + } , {"code": "status", "type": 3,"name": "Статус счета","shortname": "Статус","searchable": true,"sortable": true,"visible": true diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf53.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf53.java index f80e5094c..16c208415 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf53.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf53.java @@ -5,6 +5,7 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.Instant; +import java.time.LocalDate; /** * ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) @@ -16,6 +17,7 @@ public class SDf53 extends SpcexObjectBase { private String account; private String deal; + private String date; private Long status; private String result; private Instant generationTime; @@ -39,6 +41,14 @@ public class SDf53 extends SpcexObjectBase { this.deal = value; } + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + public Long getStatus() { return status; } 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 174a8152c..5b2ad55d0 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -1,4 +1,4 @@ --- DB version: 3.8.0.46 +-- DB version: 3.8.0.47 /* Dictionaries */ -- allowed - Справочник признаков допустимости использования объектов @@ -2393,7 +2393,7 @@ COMMENT ON COLUMN S_TRADES.SECTION IS 'Код наименования секц -- executionDeposit - Сделки DROP TABLE IF EXISTS EXECUTION_DEPOSIT; -CREATE TABLE EXECUTION_DEPOSIT(EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_CODE varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +CREATE TABLE EXECUTION_DEPOSIT(EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), MARKET varchar(8), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_CODE varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); COMMENT ON TABLE EXECUTION_DEPOSIT IS 'Сделки'; COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; @@ -2467,7 +2467,7 @@ COMMENT ON COLUMN EXECUTION_DEPOSIT.CLEARING_DATE IS 'Дата клиринга' -- History log of executionDeposit - Сделки DROP TABLE IF EXISTS EXECUTION_DEPOSIT_HISTORY; -CREATE TABLE EXECUTION_DEPOSIT_HISTORY(EXECUTION_DEPOSIT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_CODE varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +CREATE TABLE EXECUTION_DEPOSIT_HISTORY(EXECUTION_DEPOSIT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, PARTY_TRADING_CLEARING_REGISTRY varchar(20), MARKET varchar(8), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_CODE varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COUNTER_PARTY_TRADING_CLEARING_REGISTRY varchar(20), COUNTER_PARTY_TRADING_CLEARING_REGISTRY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); COMMENT ON TABLE EXECUTION_DEPOSIT_HISTORY IS 'История изменений таблицы executionDeposit'; COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EXECUTION_DEPOSIT_ID IS 'Идентификатор записи в таблице EXECUTION_DEPOSIT'; COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -3726,7 +3726,7 @@ COMMENT ON COLUMN S_DF52.GENERATION_ID IS 'Идентификатор взаим -- sDf53 - ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) DROP TABLE IF EXISTS S_DF53; -CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACC_NAME varchar(30), ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, RESULT varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); +CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACC_NAME varchar(30), ACCOUNT varchar(25), DEAL varchar(4), DATE varchar(8), STATUS bigint, RESULT varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); COMMENT ON TABLE S_DF53 IS 'ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; COMMENT ON COLUMN S_DF53.ID IS 'Идентификатор записи'; @@ -3737,6 +3737,8 @@ COMMENT ON COLUMN S_DF53.ACCOUNT IS 'Код счета участника кли COMMENT ON COLUMN S_DF53.DEAL IS 'Биржевой код участника клиринга'; +COMMENT ON COLUMN S_DF53.DATE IS 'Дата изменения состояния счета'; + COMMENT ON COLUMN S_DF53.STATUS IS 'Статус счета'; COMMENT ON COLUMN S_DF53.RESULT IS 'Код завершения операции'; @@ -4238,4 +4240,4 @@ COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.CLEARING_DATE IS 'Дата'; -- Data types -INSERT INTO DB_VERSION(ID, VERSION) values (1, '3.8') ON CONFLICT (ID) DO UPDATE SET VERSION = EXCLUDED.VERSION \ No newline at end of file +INSERT INTO DB_VERSION(ID, VERSION) values (1, '3.8.1') ON CONFLICT (ID) DO UPDATE SET VERSION = EXCLUDED.VERSION \ No newline at end of file diff --git a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.8.1.sql b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.8.1.sql new file mode 100644 index 000000000..991276ea1 --- /dev/null +++ b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.8.1.sql @@ -0,0 +1,10 @@ +-- DB version: 3.8 -> 3.8.1 + +ALTER TABLE EXECUTION_DEPOSIT ALTER COLUMN MARKET TYPE varchar(8); +ALTER TABLE EXECUTION_DEPOSIT_HISTORY ALTER COLUMN MARKET TYPE varchar(8); + +ALTER TABLE S_DF53 ADD COLUMN IF NOT EXISTS DATE varchar(8); +COMMENT ON COLUMN S_DF53.DATE IS 'Дата изменения состояния счета'; + + +INSERT INTO DB_VERSION(ID, VERSION) values (1, '3.8.1') ON CONFLICT (ID) DO UPDATE SET VERSION = EXCLUDED.VERSION diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf53MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf53MapStore.java index 190851d9e..a2abf5190 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf53MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf53MapStore.java @@ -33,7 +33,7 @@ public class SDf53MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "ACCOUNT", "DEAL", "STATUS", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF_ID", "ACC_NAME" + "ID", "ACCOUNT", "DEAL", "DATE", "STATUS", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF_ID", "ACC_NAME" }; } @@ -58,6 +58,7 @@ public class SDf53MapStore extends TemplateMapStore { object.setId(resultSet.getObject("ID", Long.class)); object.setAccount(resultSet.getObject("ACCOUNT", String.class)); object.setDeal(resultSet.getObject("DEAL", String.class)); + object.setDate(resultSet.getObject("DATE", String.class)); object.setStatus(resultSet.getObject("STATUS", Long.class)); object.setResult(resultSet.getObject("RESULT", String.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); @@ -73,6 +74,7 @@ public class SDf53MapStore extends TemplateMapStore { object.getId(), object.getAccount(), object.getDeal(), + object.getDate(), object.getStatus(), object.getResult(), TimeUtil.toDateFromInstant(object.getGenerationTime()),