diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java index fe5314dba..d8313394d 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java @@ -33,6 +33,7 @@ public class Registry extends BusinessObject implements Cloneable { private Long securityId; private String securitySymbol; private BigDecimal balance; + private BigDecimal balanceRub; private BigDecimal openBalance; private BigDecimal closeBalance; private BigDecimal credit; @@ -53,6 +54,7 @@ public class Registry extends BusinessObject implements Cloneable { private String contract; private Long counterPartyId; private String comment; + private String reason; private Long parentId; private Long groupId; private Long sessionId; @@ -218,6 +220,14 @@ public class Registry extends BusinessObject implements Cloneable { this.balance = balance; } + public BigDecimal getBalanceRub() { + return balanceRub; + } + + public void setBalanceRub(BigDecimal balanceRub) { + this.balanceRub = balanceRub; + } + public BigDecimal getOpenBalance() { return openBalance; } @@ -378,6 +388,14 @@ public class Registry extends BusinessObject implements Cloneable { this.comment = comment; } + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + public Long getParentId() { return parentId; } 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 790868d43..58607c2a1 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -2056,7 +2056,7 @@ GRANT ALL PRIVILEGES ON TABLE TRADING_CLEARING_REGISTRY_LIST_HISTORY TO clearing -- registry - Регистр активов, обязательств и требований УК DROP TABLE IF EXISTS REGISTRY; -CREATE TABLE REGISTRY(COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_SYMBOL varchar(255), BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, SESSION_TYPE varchar(4), PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SECURITY_ID bigint, SECTION varchar(4)); +CREATE TABLE REGISTRY(COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_SYMBOL varchar(255), BALANCE numeric(72,18), BALANCE_RUB numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), REASON varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, SESSION_TYPE varchar(4), PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SECURITY_ID bigint, SECTION varchar(4)); COMMENT ON TABLE REGISTRY IS 'Регистр активов, обязательств и требований УК'; COMMENT ON COLUMN REGISTRY.COMPANY_ID IS 'Идентификатор участника (linked to company)'; @@ -2095,6 +2095,8 @@ COMMENT ON COLUMN REGISTRY.SECURITY_SYMBOL IS 'Код инструмента'; COMMENT ON COLUMN REGISTRY.BALANCE IS 'Текущий баланс'; +COMMENT ON COLUMN REGISTRY.BALANCE_RUB IS 'Текущий баланс в рублях'; + COMMENT ON COLUMN REGISTRY.OPEN_BALANCE IS 'Начальная сумма после расчетной организации'; COMMENT ON COLUMN REGISTRY.CLOSE_BALANCE IS 'Конечная сумма остатков ден. средств на счете'; @@ -2135,6 +2137,8 @@ COMMENT ON COLUMN REGISTRY.COUNTER_PARTY_ID IS 'Идентификатор ко COMMENT ON COLUMN REGISTRY.COMMENT IS 'Комментарий'; +COMMENT ON COLUMN REGISTRY.REASON IS 'Причина'; + COMMENT ON COLUMN REGISTRY.PARENT_ID IS 'Идентификатор родительского депозита'; COMMENT ON COLUMN REGISTRY.GROUP_ID IS 'Идентификатор группы связанных регистров'; @@ -2160,7 +2164,7 @@ GRANT ALL PRIVILEGES ON TABLE REGISTRY TO clearing; -- History log of registry - Регистр активов, обязательств и требований УК DROP TABLE IF EXISTS REGISTRY_HISTORY; -CREATE TABLE REGISTRY_HISTORY(REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_SYMBOL varchar(255), BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, SESSION_TYPE varchar(4), PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SECURITY_ID bigint, SECTION varchar(4)); +CREATE TABLE REGISTRY_HISTORY(REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_SYMBOL varchar(255), BALANCE numeric(72,18), BALANCE_RUB numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), REASON varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, SESSION_TYPE varchar(4), PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SECURITY_ID bigint, SECTION varchar(4)); COMMENT ON TABLE REGISTRY_HISTORY IS 'История изменений таблицы registry'; COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_ID IS 'Идентификатор записи в таблице REGISTRY'; COMMENT ON COLUMN REGISTRY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -2203,6 +2207,8 @@ COMMENT ON COLUMN REGISTRY_HISTORY.SECURITY_SYMBOL IS 'Код инструмен COMMENT ON COLUMN REGISTRY_HISTORY.BALANCE IS 'Текущий баланс'; +COMMENT ON COLUMN REGISTRY_HISTORY.BALANCE_RUB IS 'Текущий баланс в рублях'; + COMMENT ON COLUMN REGISTRY_HISTORY.OPEN_BALANCE IS 'Начальная сумма после расчетной организации'; COMMENT ON COLUMN REGISTRY_HISTORY.CLOSE_BALANCE IS 'Конечная сумма остатков ден. средств на счете'; @@ -2243,6 +2249,8 @@ COMMENT ON COLUMN REGISTRY_HISTORY.COUNTER_PARTY_ID IS 'Идентификато COMMENT ON COLUMN REGISTRY_HISTORY.COMMENT IS 'Комментарий'; +COMMENT ON COLUMN REGISTRY_HISTORY.REASON IS 'Причина'; + COMMENT ON COLUMN REGISTRY_HISTORY.PARENT_ID IS 'Идентификатор родительского депозита'; COMMENT ON COLUMN REGISTRY_HISTORY.GROUP_ID IS 'Идентификатор группы связанных регистров'; diff --git a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.16.sql b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.16.sql index e388e465f..a5f7421ed 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.16.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.16.sql @@ -96,4 +96,13 @@ COMMENT ON COLUMN S_DF56.PARENT_ID IS ' COMMENT ON COLUMN S_DF57.MESSAGE_ID IS ' '; COMMENT ON COLUMN S_DF57.PARENT_ID IS ' '; +ALTER TABLE REGISTRY ADD COLUMN IF NOT EXISTS BALANCE_RUB numeric(72,18); +ALTER TABLE REGISTRY ADD COLUMN IF NOT EXISTS REASON varchar(255); +ALTER TABLE REGISTRY_HISTORY ADD COLUMN IF NOT EXISTS BALANCE_RUB numeric(72,18); +ALTER TABLE REGISTRY_HISTORY ADD COLUMN IF NOT EXISTS REASON varchar(255); +COMMENT ON COLUMN REGISTRY.BALANCE_RUB IS ' '; +COMMENT ON COLUMN REGISTRY.REASON IS ''; +COMMENT ON COLUMN REGISTRY_HISTORY.BALANCE_RUB IS ' '; +COMMENT ON COLUMN REGISTRY_HISTORY.REASON IS ''; + INSERT INTO DB_VERSION(ID, VERSION) values (1, '3.16') ON CONFLICT (ID) DO UPDATE SET VERSION = EXCLUDED.VERSION diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/RegistryHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/RegistryHistoryMapStore.java index 1640ccf38..710051630 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/RegistryHistoryMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/RegistryHistoryMapStore.java @@ -57,10 +57,10 @@ public class RegistryHistoryMapStore extends TemplateEventMapStore { @Override public String[] getFields() { return new String[]{ - "COMPANY_ID", "TRADING_CODE", "CLEARING_CODE", "SHORT_NAME", "FULL_NAME", "ACCOUNT_ID", "ACCOUNT_TYPE", "ACCOUNT", "REGISTRY_DESIGNATION", "REGISTRY_INSTRUMENT_TYPE", "REGISTRY_CAPACITY", "REGISTRY_UNIT", "REGISTRY_CODE", "TRADING_CLEARING_REGISTRY_ID", "TRADING_CLEARING_REGISTRY", "REGISTRY_STATUS", "SECURITY_SYMBOL", "BALANCE", "OPEN_BALANCE", "CLOSE_BALANCE", "CREDIT", "DEBIT", "SETTLED_CREDIT", "SETTLED_DEBIT", "CHECK_BALANCE", "DIFF_BALANCE", "PLAN_BALANCE", "BALANCE_DIMENSION", "SETTLEMENT_DATE", "SETTLEMENT_CODE", "TRADING_DATE", "CLEARING_DATE", "REFUND_DATE", "VALUE_DATE", "PRICE", "CONTRACT", "COUNTER_PARTY_ID", "COMMENT", "PARENT_ID", "GROUP_ID", "SESSION_ID", "SESSION_TYPE", "PAYMENT_ID", "ID", "CREATED_AT", "UPDATED_AT", "SECURITY_ID", "SECTION" + "COMPANY_ID", "TRADING_CODE", "CLEARING_CODE", "SHORT_NAME", "FULL_NAME", "ACCOUNT_ID", "ACCOUNT_TYPE", "ACCOUNT", "REGISTRY_DESIGNATION", "REGISTRY_INSTRUMENT_TYPE", "REGISTRY_CAPACITY", "REGISTRY_UNIT", "REGISTRY_CODE", "TRADING_CLEARING_REGISTRY_ID", "TRADING_CLEARING_REGISTRY", "REGISTRY_STATUS", "SECURITY_SYMBOL", "BALANCE", "BALANCE_RUB", "OPEN_BALANCE", "CLOSE_BALANCE", "CREDIT", "DEBIT", "SETTLED_CREDIT", "SETTLED_DEBIT", "CHECK_BALANCE", "DIFF_BALANCE", "PLAN_BALANCE", "BALANCE_DIMENSION", "SETTLEMENT_DATE", "SETTLEMENT_CODE", "TRADING_DATE", "CLEARING_DATE", "REFUND_DATE", "VALUE_DATE", "PRICE", "CONTRACT", "COUNTER_PARTY_ID", "COMMENT", "REASON", "PARENT_ID", "GROUP_ID", "SESSION_ID", "SESSION_TYPE", "PAYMENT_ID", "ID", "CREATED_AT", "UPDATED_AT", "SECURITY_ID", "SECTION" }; } @@ -93,6 +93,7 @@ public class RegistryMapStore extends TemplateMapStore { object.setRegistryStatus(resultSet.getObject("REGISTRY_STATUS", String.class)); object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); object.setBalance(resultSet.getObject("BALANCE", BigDecimal.class)); + object.setBalanceRub(resultSet.getObject("BALANCE_RUB", BigDecimal.class)); object.setOpenBalance(resultSet.getObject("OPEN_BALANCE", BigDecimal.class)); object.setCloseBalance(resultSet.getObject("CLOSE_BALANCE", BigDecimal.class)); object.setCredit(resultSet.getObject("CREDIT", BigDecimal.class)); @@ -113,6 +114,7 @@ public class RegistryMapStore extends TemplateMapStore { object.setContract(resultSet.getObject("CONTRACT", String.class)); object.setCounterPartyId(resultSet.getObject("COUNTER_PARTY_ID", Long.class)); object.setComment(resultSet.getObject("COMMENT", String.class)); + object.setReason(resultSet.getObject("REASON", String.class)); object.setParentId(resultSet.getObject("PARENT_ID", Long.class)); object.setGroupId(resultSet.getObject("GROUP_ID", Long.class)); object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); @@ -147,6 +149,7 @@ public class RegistryMapStore extends TemplateMapStore { object.getRegistryStatus(), object.getSecuritySymbol(), object.getBalance(), + object.getBalanceRub(), object.getOpenBalance(), object.getCloseBalance(), object.getCredit(), @@ -167,6 +170,7 @@ public class RegistryMapStore extends TemplateMapStore { object.getContract(), object.getCounterPartyId(), object.getComment(), + object.getReason(), object.getParentId(), object.getGroupId(), object.getSessionId(),