diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/Account.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/Account.java new file mode 100644 index 000000000..bc20ffbbe --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/Account.java @@ -0,0 +1,51 @@ +package ru.clearing.classes.StaticData.Account; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; + +/** + * Счета + *

+ * DB table: ACCOUNT + **/ +public class Account extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String account; + private String accountType; + private Long relationId; + private String status; + + public String getAccount() { + return account; + } + + public void setAccount(String value) { + this.account = value; + } + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String value) { + this.accountType = value; + } + + public Long getRelationId() { + return relationId; + } + + public void setRelationId(Long value) { + this.relationId = value; + } + + public String getStatus() { + return status; + } + + public void setStatus(String value) { + this.status = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/AccountRouting.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/AccountRouting.java new file mode 100644 index 000000000..bfd8bdd20 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/AccountRouting.java @@ -0,0 +1,45 @@ +package ru.clearing.classes.StaticData.Account; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.io.Serial; + +/** + * Маршрутизация счета + *

+ * DB table: ACCOUNT_ROUTING + **/ +public class AccountRouting extends SpcexObjectBase { + @Serial + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long destinationId; + private Long relationId; + private Long sourceId; + + public Long getDestinationId() { + return destinationId; + } + + public void setDestinationId(Long value) { + this.destinationId = value; + } + + public Long getRelationId() { + return relationId; + } + + public void setRelationId(Long value) { + this.relationId = value; + } + + public Long getSourceId() { + return sourceId; + } + + public void setSourceId(Long value) { + this.sourceId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/BankAccount.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/BankAccount.java new file mode 100644 index 000000000..ed83035b1 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/BankAccount.java @@ -0,0 +1,123 @@ +package ru.clearing.classes.StaticData.Account; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +/** + * Банковские счета + *

+ * DB table: BANK_ACCOUNT + **/ +public class BankAccount extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long accountId; + private String bankIdentificationCode; + private String bankName; + private String correspondentAccountName; + private String currency; + private String destination; + private String iban; + private String internationalTransferSign; + private String swiftCode; + private String taxpayerIdentificationNumber; + private String taxRegistrationReasonCode; + private String correspondentAccount; + + public Long getAccountId() { + return accountId; + } + + public void setAccountId(Long value) { + this.accountId = value; + } + + public String getBankIdentificationCode() { + return bankIdentificationCode; + } + + public void setBankIdentificationCode(String value) { + this.bankIdentificationCode = value; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String value) { + this.bankName = value; + } + + public String getCorrespondentAccountName() { + return correspondentAccountName; + } + + public void setCorrespondentAccountName(String value) { + this.correspondentAccountName = value; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String value) { + this.currency = value; + } + + public String getDestination() { + return destination; + } + + public void setDestination(String value) { + this.destination = value; + } + + public String getIban() { + return iban; + } + + public void setIban(String value) { + this.iban = value; + } + + public String getInternationalTransferSign() { + return internationalTransferSign; + } + + public void setInternationalTransferSign(String value) { + this.internationalTransferSign = value; + } + + public String getSwiftCode() { + return swiftCode; + } + + public void setSwiftCode(String value) { + this.swiftCode = value; + } + + public String getTaxpayerIdentificationNumber() { + return taxpayerIdentificationNumber; + } + + public void setTaxpayerIdentificationNumber(String value) { + this.taxpayerIdentificationNumber = value; + } + + public String getTaxRegistrationReasonCode() { + return taxRegistrationReasonCode; + } + + public void setTaxRegistrationReasonCode(String value) { + this.taxRegistrationReasonCode = value; + } + + public String getCorrespondentAccount() { + return correspondentAccount; + } + + public void setCorrespondentAccount(String value) { + this.correspondentAccount = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/ClearingAccount.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/ClearingAccount.java new file mode 100644 index 000000000..2422fbbb0 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Account/ClearingAccount.java @@ -0,0 +1,51 @@ +package ru.clearing.classes.StaticData.Account; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +/** + * Клиринговые счета + *

+ * DB table: CLEARING_ACCOUNT + **/ +public class ClearingAccount extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long accountId; + private Long cashAccountId; + private Long depoAccountId; + private String settlementCode; + + public Long getAccountId() { + return accountId; + } + + public void setAccountId(Long value) { + this.accountId = value; + } + + public Long getCashAccountId() { + return cashAccountId; + } + + public void setCashAccountId(Long value) { + this.cashAccountId = value; + } + + public Long getDepoAccountId() { + return depoAccountId; + } + + public void setDepoAccountId(Long value) { + this.depoAccountId = value; + } + + public String getSettlementCode() { + return settlementCode; + } + + public void setSettlementCode(String value) { + this.settlementCode = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Company/Relation/Relation.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Company/Relation/Relation.java new file mode 100644 index 000000000..b74bb58a8 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/Company/Relation/Relation.java @@ -0,0 +1,70 @@ +package ru.clearing.classes.StaticData.Company.Relation; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +/** + * Договорные отношения + *

+ * DB table: RELATION + **/ +public class Relation extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long consumerId; + private Long supplierId; + private String serviceStatus; + private Long serviceId; + private Long serviceProductId; + private String comment; + + public Long getConsumerId() { + return consumerId; + } + + public void setConsumerId(Long value) { + this.consumerId = value; + } + + public Long getSupplierId() { + return supplierId; + } + + public void setSupplierId(Long value) { + this.supplierId = value; + } + + public String getServiceStatus() { + return serviceStatus; + } + + public void setServiceStatus(String value) { + this.serviceStatus = value; + } + + public Long getServiceId() { + return serviceId; + } + + public void setServiceId(Long value) { + this.serviceId = value; + } + + public Long getServiceProductId() { + return serviceProductId; + } + + public void setServiceProductId(Long value) { + this.serviceProductId = value; + } + + public String getComment() { + return comment; + } + + public void setComment(String value) { + this.comment = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/generated/ClearingMemberCategory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/generated/ClearingMemberCategory.java new file mode 100644 index 000000000..720c73cfa --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/StaticData/generated/ClearingMemberCategory.java @@ -0,0 +1,33 @@ +package ru.clearing.classes.StaticData.generated; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +/** + * Категории участника клиринга + *

+ * DB table: CLEARING_MEMBER_CATEGORY + **/ +public class ClearingMemberCategory extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long companyId; + private String clearingMemberCategory; + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long value) { + this.companyId = value; + } + + public String getClearingMemberCategory() { + return clearingMemberCategory; + } + + public void setClearingMemberCategory(String value) { + this.clearingMemberCategory = value; + } + +} \ No newline at end of file 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 b6acee77f..253cf259c 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -1,6 +1,26 @@ -- DB version: 0.0.0.5 /* Dictionaries */ +-- interestStatus - Справочник статусов возваращения процентов +CREATE TABLE IF NOT EXISTS INTEREST_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +COMMENT ON TABLE INTEREST_STATUS_DICTIONARY IS 'Справочник статусов возваращения процентов'; + +COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.NAME IS 'Наименование'; + +-- clearingStatus - Справочник результатов клиринга +CREATE TABLE IF NOT EXISTS CLEARING_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +COMMENT ON TABLE CLEARING_STATUS_DICTIONARY IS 'Справочник результатов клиринга'; + +COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.NAME IS 'Наименование'; + -- workflowStatus - Справочник статусов бизнес-процессов CREATE TABLE IF NOT EXISTS WORKFLOW_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); COMMENT ON TABLE WORKFLOW_STATUS_DICTIONARY IS 'Справочник статусов бизнес-процессов'; @@ -253,7 +273,7 @@ COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.NAME IS 'Статус обработки'; --- extError - +-- extError - CREATE TABLE IF NOT EXISTS EXT_ERROR_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); COMMENT ON TABLE EXT_ERROR_DICTIONARY IS ''; @@ -305,9 +325,9 @@ COMMENT ON COLUMN COMPANY.CREATED_AT IS 'Дата и время создания COMMENT ON COLUMN COMPANY.UPDATED_AT IS 'Дата и время изменения записи'; -COMMENT ON COLUMN COMPANY.TRADING_CODE IS 'Торговый код'; +COMMENT ON COLUMN COMPANY.TRADING_CODE IS 'Код участника торгов'; -COMMENT ON COLUMN COMPANY.CLEARING_CODE IS 'Клиринговый код'; +COMMENT ON COLUMN COMPANY.CLEARING_CODE IS 'Код участника клиринга'; COMMENT ON COLUMN COMPANY.WORKFLOW_STATUS IS 'Статус (linked to workflowStatus)'; @@ -316,7 +336,7 @@ COMMENT ON COLUMN COMPANY.SHORT_NAME IS 'Краткое наименование COMMENT ON COLUMN COMPANY.FULL_NAME IS 'Полное наименование Компании'; -- companyInfo - Профиль Компании -CREATE TABLE IF NOT EXISTS COMPANY_INFO(ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar, PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255)); +CREATE TABLE IF NOT EXISTS COMPANY_INFO(ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar, PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), TRADING_CODE varchar(255), CLEARING_CODE varchar(255)); COMMENT ON TABLE COMPANY_INFO IS 'Профиль Компании'; COMMENT ON COLUMN COMPANY_INFO.ID IS 'Идентификатор записи'; @@ -341,9 +361,17 @@ COMMENT ON COLUMN COMPANY_INFO.SHORT_NAME_ENG IS 'Краткое наимено COMMENT ON COLUMN COMPANY_INFO.FULL_NAME_ENG IS 'Полное наименование Компании на английском'; +COMMENT ON COLUMN COMPANY_INFO.SHORT_NAME IS 'Краткое наименование Компании'; + +COMMENT ON COLUMN COMPANY_INFO.FULL_NAME IS 'Полное наименование Компании'; + +COMMENT ON COLUMN COMPANY_INFO.TRADING_CODE IS 'Код участника торгов'; + +COMMENT ON COLUMN COMPANY_INFO.CLEARING_CODE IS 'Код участника клиринга'; + -- Update log of companyInfo - Профиль Компании -CREATE TABLE IF NOT EXISTS COMPANY_INFO_UPDATE(COMPANY_INFO_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar, PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255)); +CREATE TABLE IF NOT EXISTS COMPANY_INFO_UPDATE(COMPANY_INFO_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar, PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), TRADING_CODE varchar(255), CLEARING_CODE varchar(255) ); COMMENT ON TABLE COMPANY_INFO_UPDATE IS 'Журнал изменений таблицы companyInfo'; COMMENT ON COLUMN COMPANY_INFO_UPDATE.COMPANY_INFO_ID IS 'Идентификатор записи в таблице COMPANY_INFO'; COMMENT ON COLUMN COMPANY_INFO_UPDATE.EVENT_TIME IS 'Дата и время изменения'; @@ -371,6 +399,14 @@ COMMENT ON COLUMN COMPANY_INFO_UPDATE.SHORT_NAME_ENG IS 'Краткое наим COMMENT ON COLUMN COMPANY_INFO_UPDATE.FULL_NAME_ENG IS 'Полное наименование Компании на английском'; +COMMENT ON COLUMN COMPANY_INFO_UPDATE.SHORT_NAME IS 'Краткое наименование Компании'; + +COMMENT ON COLUMN COMPANY_INFO_UPDATE.FULL_NAME IS 'Полное наименование Компании'; + +COMMENT ON COLUMN COMPANY_INFO_UPDATE.TRADING_CODE IS 'Код участника торгов'; + +COMMENT ON COLUMN COMPANY_INFO_UPDATE.CLEARING_CODE IS 'Код участника клиринга'; + -- clearingMemberCategory - Категории участника клиринга CREATE TABLE IF NOT EXISTS CLEARING_MEMBER_CATEGORY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CLEARING_MEMBER_CATEGORY char(4)); COMMENT ON TABLE CLEARING_MEMBER_CATEGORY IS 'Категории участника клиринга'; @@ -860,7 +896,7 @@ COMMENT ON COLUMN LISTING_UPDATE.TRADING_CURRENCY IS 'Идентификатор COMMENT ON COLUMN LISTING_UPDATE.WORKFLOW_STATUS IS 'Идентификатор статуса листинга в системе (linked to workflowStatus)'; -- market - Торговые площадки -CREATE TABLE IF NOT EXISTS MARKET(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), MARKET_CODE varchar(255), SETTLEMENT_CURRENCY char(4), SECTOR char(4)); +CREATE TABLE IF NOT EXISTS MARKET(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE char(4), SETTLEMENT_CURRENCY char(4), SECTOR char(4)); COMMENT ON TABLE MARKET IS 'Торговые площадки'; COMMENT ON COLUMN MARKET.ID IS 'Идентификатор записи'; @@ -875,7 +911,7 @@ COMMENT ON COLUMN MARKET.EXCHANGE_ID IS 'Идентификатор площад COMMENT ON COLUMN MARKET.NAME IS 'Наименование'; -COMMENT ON COLUMN MARKET.MARKET_CODE IS 'Режим'; +COMMENT ON COLUMN MARKET.CODE IS 'Режим'; COMMENT ON COLUMN MARKET.SETTLEMENT_CURRENCY IS 'Валютный код расчетов (linked to currency)'; @@ -883,7 +919,7 @@ COMMENT ON COLUMN MARKET.SECTOR IS 'Идентификатор сектора (l -- Update log of market - Торговые площадки -CREATE TABLE IF NOT EXISTS MARKET_UPDATE(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), MARKET_CODE varchar(255), SETTLEMENT_CURRENCY char(4), SECTOR char(4)); +CREATE TABLE IF NOT EXISTS MARKET_UPDATE(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE char(4), SETTLEMENT_CURRENCY char(4), SECTOR char(4)); COMMENT ON TABLE MARKET_UPDATE IS 'Журнал изменений таблицы market'; COMMENT ON COLUMN MARKET_UPDATE.MARKET_ID IS 'Идентификатор записи в таблице MARKET'; COMMENT ON COLUMN MARKET_UPDATE.EVENT_TIME IS 'Дата и время изменения'; @@ -901,7 +937,7 @@ COMMENT ON COLUMN MARKET_UPDATE.EXCHANGE_ID IS 'Идентификатор пл COMMENT ON COLUMN MARKET_UPDATE.NAME IS 'Наименование'; -COMMENT ON COLUMN MARKET_UPDATE.MARKET_CODE IS 'Режим'; +COMMENT ON COLUMN MARKET_UPDATE.CODE IS 'Режим'; COMMENT ON COLUMN MARKET_UPDATE.SETTLEMENT_CURRENCY IS 'Валютный код расчетов (linked to currency)'; @@ -1193,7 +1229,7 @@ COMMENT ON COLUMN CONTRACT_REGISTER.VALID_FROM_DATE IS 'Дата начала с COMMENT ON COLUMN CONTRACT_REGISTER.VALID_TO_DATE IS 'Дата окончания срока действия'; -- liabilitiesClaimsMoney - Требования и обязательства денежных средств -CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_MONEY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT bigint, LIABILITIES_AMOUNT numeric(72,2), CLAIMS_AMOUNT numeric(72,2), SETTLEMENT_DATE date, TRADING_DATE date, CURRENCY_CODE char(4), TRADING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255)); +CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_MONEY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT bigint, LIABILITIES_AMOUNT numeric(72,2), REFUND_INTEREST numeric(72,2), ACCRUED_INTEREST numeric(72,2), CLAIMS_AMOUNT numeric(72,2), SETTLEMENT_DATE date, TRADING_DATE date, CURRENCY char(4), TRADING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255)); COMMENT ON TABLE LIABILITIES_CLAIMS_MONEY IS 'Требования и обязательства денежных средств'; COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ID IS 'Идентификатор записи'; @@ -1210,15 +1246,19 @@ COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_TYPE IS 'Тип счета (l COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT IS 'Счет (linked to account)'; -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.LIABILITIES_AMOUNT IS 'Регистр «Обязательства по денежным средствам, сформированные по результатам собственных сделок Участника клиринга»'; +COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.LIABILITIES_AMOUNT IS 'Регистр «Обязательства по денежным средствам, сформированные по результатам собственных сделок Участника клиринга», исключая проценты'; -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLAIMS_AMOUNT IS 'Сумма требований'; +COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.REFUND_INTEREST IS 'Проценты к возврату'; + +COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCRUED_INTEREST IS 'Начисленные проценты'; + +COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLAIMS_AMOUNT IS 'Сумма требований, исключая проценты'; COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SETTLEMENT_DATE IS 'Дата расчета'; COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_DATE IS 'Дата торгов'; -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CURRENCY_CODE IS 'Код валюты (linked to currency)'; +COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CURRENCY IS 'Код валюты (linked to currencyCode)'; COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_CODE IS 'Торговый код Участника (linked to company)'; @@ -1227,7 +1267,7 @@ COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SHORT_NAME IS 'Короткое на COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.FULL_NAME IS 'Полное наименование Участника (linked to company)'; -- liabilitiesClaimsAssets - Требования и обязательства финансовых активов -CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_ASSETS(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT bigint, LIABILITIES_QUANTITY numeric(72,18), CLAIMS_QUANTITY numeric(72,18), SETTLEMENT_DATE date, TRADING_DATE date, REFUND_DATE date, SECURITY_ID bigint, TRADING_CODE varchar(255), SHORT_NAME varchar(255), CONTRACT varchar(255), COMMENT varchar(255), FULL_NAME varchar(255), PARENT_ID bigint); +CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_ASSETS(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT bigint, LIABILITIES_QUANTITY numeric(72,18), CLAIMS_QUANTITY numeric(72,18), CURRENCY char(4), SETTLEMENT_DATE date, TRADING_DATE date, REFUND_DATE date, PRICE numeric(72,18), SECURITY_ID bigint, TRADING_CODE varchar(255), SHORT_NAME varchar(255), CONTRACT varchar(255), COMMENT varchar(255), FULL_NAME varchar(255), PARENT_ID bigint, LIABILITIES_CLAIMS_MONEY_ID bigint, INTEREST_STATUS bigint, CLEARING_STATUS bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint); COMMENT ON TABLE LIABILITIES_CLAIMS_ASSETS IS 'Требования и обязательства финансовых активов'; COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ID IS 'Идентификатор записи'; @@ -1248,12 +1288,16 @@ COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_QUANTITY IS 'Сумма COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLAIMS_QUANTITY IS 'Сумма требований'; +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CURRENCY IS 'Код валюты (linked to currencyCode)'; + COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SETTLEMENT_DATE IS 'Дата расчета'; COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_DATE IS 'Дата торгов'; COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_DATE IS 'Дата возврата'; +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PRICE IS 'Ставка по депозиту'; + COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SECURITY_ID IS 'Инструмент (linked to security)'; COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_CODE IS 'Торговый код Участника (linked to company)'; @@ -1268,6 +1312,16 @@ COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.FULL_NAME IS 'Полное наим COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PARENT_ID IS 'Идентификатор записи основного договора без разделения'; +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_CLAIMS_MONEY_ID IS 'Регистры денежных средств (linked to liabilitiesClaimsMoney)'; + +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.INTEREST_STATUS IS 'Статус возврата процентов (linked to interestStatus)'; + +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_STATUS IS 'Статус клиринга (linked to clearingStatus)'; + +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PAYMENT_ID IS 'Платеж'; + +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_PAYMENT_ID IS 'Обратный платежа'; + -- statement - Денежные средства от расчетной организации CREATE TABLE IF NOT EXISTS STATEMENT(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, STATEMENT_TYPE_ID bigint, COMMENT varchar(255), ACCOUNT_ID bigint, ACCOUNT bigint, IN_OUT_DIRECTION bigint, SETTLEMENT_DATE date, AMOUNT numeric(72,2), CASH_MOVEMENTCURRENCY_CODE char(4), STATUS_ID bigint); COMMENT ON TABLE STATEMENT IS 'Денежные средства от расчетной организации'; @@ -1386,6 +1440,144 @@ COMMENT ON COLUMN MARKET_DATA.UPDATED_AT IS 'Время изменения сд COMMENT ON COLUMN MARKET_DATA.TRADING_DATE IS 'Дата торгов'; +-- chargeTariff - Тарифы комиссий +CREATE TABLE IF NOT EXISTS CHARGE_TARIFF(ID bigint PRIMARY KEY, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE CHARGE_TARIFF IS 'Тарифы комиссий'; + +COMMENT ON COLUMN CHARGE_TARIFF.ID IS 'Идентификатор'; + +COMMENT ON COLUMN CHARGE_TARIFF.MARKET IS 'Секция (linked to market)'; + +COMMENT ON COLUMN CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; + +COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; + +COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; + +COMMENT ON COLUMN CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; + +COMMENT ON COLUMN CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; + +COMMENT ON COLUMN CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; + +COMMENT ON COLUMN CHARGE_TARIFF.CREATED_AT IS 'Создано'; + +COMMENT ON COLUMN CHARGE_TARIFF.UPDATED_AT IS 'Изменено'; + + +-- Update log of chargeTariff - Тарифы комиссий +CREATE TABLE IF NOT EXISTS CHARGE_TARIFF_UPDATE(CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE CHARGE_TARIFF_UPDATE IS 'Журнал изменений таблицы chargeTariff'; +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице CHARGE_TARIFF'; +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.EVENT_TIME IS 'Дата и время изменения'; +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.EVENT_USER_ID IS 'Инициатор изменения'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.ID IS 'Идентификатор'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.MARKET IS 'Секция (linked to market)'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CHARGE_RATE IS 'Ставка комиссионного сбора'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.VALID_FROM_DATE IS 'Дата начала срока действия'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.VALID_TO_DATE IS 'Дата окончания срока действия'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CREATED_AT IS 'Создано'; + +COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.UPDATED_AT IS 'Изменено'; + +-- individualChargeTariff - Индивидуальные тарифы комиссий для Участника +CREATE TABLE IF NOT EXISTS INDIVIDUAL_CHARGE_TARIFF(ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF IS 'Индивидуальные тарифы комиссий для Участника'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.ID IS 'Идентификатор'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.COMPANY_ID IS 'Участник (linked to company)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.MARKET IS 'Секция (linked to market)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CREATED_AT IS 'Создано'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.UPDATED_AT IS 'Изменено'; + + +-- Update log of individualChargeTariff - Индивидуальные тарифы комиссий для Участника +CREATE TABLE IF NOT EXISTS INDIVIDUAL_CHARGE_TARIFF_UPDATE(INDIVIDUAL_CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF_UPDATE IS 'Журнал изменений таблицы individualChargeTariff'; +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.INDIVIDUAL_CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице INDIVIDUAL_CHARGE_TARIFF'; +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.EVENT_TIME IS 'Дата и время изменения'; +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.EVENT_USER_ID IS 'Инициатор изменения'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.ID IS 'Идентификатор'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.COMPANY_ID IS 'Участник (linked to company)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.MARKET IS 'Секция (linked to market)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CHARGE_RATE IS 'Ставка комиссионного сбора'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.VALID_FROM_DATE IS 'Дата начала срока действия'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.VALID_TO_DATE IS 'Дата окончания срока действия'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CREATED_AT IS 'Создано'; + +COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.UPDATED_AT IS 'Изменено'; + +-- companyTariff - Тарифы комиссий в разрезе Участника +CREATE TABLE IF NOT EXISTS COMPANY_TARIFF(ID bigint PRIMARY KEY, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), FULL_NAME varchar(255), CONTRACT varchar(255), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint); +COMMENT ON TABLE COMPANY_TARIFF IS 'Тарифы комиссий в разрезе Участника'; + +COMMENT ON COLUMN COMPANY_TARIFF.ID IS 'Идентификатор'; + +COMMENT ON COLUMN COMPANY_TARIFF.MARKET IS 'Секция (linked to market)'; + +COMMENT ON COLUMN COMPANY_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; + +COMMENT ON COLUMN COMPANY_TARIFF.FULL_NAME IS 'Полное наименование Участника (linked to company)'; + +COMMENT ON COLUMN COMPANY_TARIFF.CONTRACT IS 'Номер договора'; + +COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; + +COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; + +COMMENT ON COLUMN COMPANY_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; + +COMMENT ON COLUMN COMPANY_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; + +COMMENT ON COLUMN COMPANY_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; + +COMMENT ON COLUMN COMPANY_TARIFF.CREATED_AT IS 'Создано'; + +COMMENT ON COLUMN COMPANY_TARIFF.UPDATED_AT IS 'Изменено'; + +COMMENT ON COLUMN COMPANY_TARIFF.COMPANY_ID IS 'Участник (linked to company)'; + -- sDf01 - ДФ 02 - Направление уведомлений об операциях загрузки CREATE TABLE IF NOT EXISTS S_DF01(ID bigint PRIMARY KEY, DATE date, CURR_CODE char(4), ACCOUNT varchar(25), REMAINDER_SUM varchar(20), DEAL char(4), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(1), ACC_TYPE varchar(1), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), RESULT_CODE varchar(1), ERROR_TEXT varchar(255), EXT_ERROR_CODE char(4)); COMMENT ON TABLE S_DF01 IS 'ДФ 02 - Направление уведомлений об операциях загрузки'; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java index c87d157c7..c9b65f572 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java @@ -77,6 +77,7 @@ public abstract class ObjectBaseMapStore extends Simp return rs.getObject(columnName, Long.class); } + // todo отрефакторить метод - длинное название protected Instant getInstantFromTimestamp(ResultSet rs, String column) throws SQLException { Timestamp date = rs.getTimestamp(column); return date != null ? date.toInstant() : null; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountMapStore.java new file mode 100644 index 000000000..b696a0622 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountMapStore.java @@ -0,0 +1,66 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.StaticData.Account.Account; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.clearing.imdg.utils.DbUtilsHelper; +import ru.spcex.clearing.imdg.utils.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class AccountMapStore extends TemplateMapStore { + + public AccountMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_Account; + } + + @Override + public String getTableName() { + return "ACCOUNT"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "ACCOUNT", "ACCOUNT_TYPE", "RELATION_ID", "STATUS" + }; + } + + @Override + public Account objectReader(ResultSet resultSet) throws SQLException { + Account object = new Account(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class)); + object.setRelationId(resultSet.getObject("RELATION_ID", Long.class)); + object.setStatus(resultSet.getObject("STATUS", String.class)); + return object; + } + + @Override + public Object[] objectToField(Account object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.fromInstant(object.getCreated()), + TimeUtil.fromInstant(object.getUpdated()), + object.getAccount(), + object.getAccountType(), + object.getRelationId(), + object.getStatus() + }; + return args; + } + +}//todo updatemapstore !!! \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/RelationMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/RelationMapStore.java new file mode 100644 index 000000000..bdb505435 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/RelationMapStore.java @@ -0,0 +1,71 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.StaticData.Company.Relation.Relation; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.clearing.imdg.utils.DbUtilsHelper; +import ru.spcex.clearing.imdg.utils.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class RelationMapStore extends TemplateMapStore { + + public RelationMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_Relation; + } + + @Override + public String getTableName() { + return "RELATION"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "CONSUMER_ID", "SUPPLIER_ID", "SERVICE_STATUS", "SERVICE_ID", "SERVICE_PRODUCT_ID", "COMMENT" + }; + } + + @Override + public Relation objectReader(ResultSet resultSet) throws SQLException { + Relation object = new Relation(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setConsumerId(resultSet.getObject("CONSUMER_ID", Long.class)); + object.setSupplierId(resultSet.getObject("SUPPLIER_ID", Long.class)); + object.setServiceStatus(resultSet.getObject("SERVICE_STATUS", String.class)); + object.setServiceId(resultSet.getObject("SERVICE_ID", Long.class)); + object.setServiceProductId(resultSet.getObject("SERVICE_PRODUCT_ID", Long.class)); + object.setComment(resultSet.getObject("COMMENT", String.class)); + return object; + } + + @Override + public Object[] objectToField(Relation object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.fromInstant(object.getCreated()), + TimeUtil.fromInstant(object.getUpdated()), + object.getConsumerId(), + object.getSupplierId(), + object.getServiceStatus(), + object.getServiceId(), + object.getServiceProductId(), + object.getComment() + }; + return args; + } + +} +// todo Сделать BusinessEventMapStore RelationUpdateMapStore \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AccountRoutingMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AccountRoutingMapStore.java new file mode 100644 index 000000000..f4250d264 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AccountRoutingMapStore.java @@ -0,0 +1,61 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.StaticData.Account.AccountRouting; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.clearing.imdg.utils.DbUtilsHelper; +import ru.spcex.clearing.imdg.utils.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class AccountRoutingMapStore extends TemplateMapStore { + + public AccountRoutingMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_AccountRouting; + } + + @Override + public String getTableName() { + return "ACCOUNT_ROUTING"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "DESTINATION_ID", "RELATION_ID", "SOURCE_ID" + }; + } + + @Override + public AccountRouting objectReader(ResultSet resultSet) throws SQLException { + AccountRouting object = new AccountRouting(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setDestinationId(resultSet.getObject("DESTINATION_ID", Long.class)); + object.setRelationId(resultSet.getObject("RELATION_ID", Long.class)); + object.setSourceId(resultSet.getObject("SOURCE_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(AccountRouting object) { + Object[] args = new Object[]{ + object.getId(), + object.getDestinationId(), + object.getRelationId(), + object.getSourceId() + }; + return args; + } + +} +// todo Сделать BusinessEventMapStore AccountRoutingUpdateMapStore \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BankAccountMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BankAccountMapStore.java new file mode 100644 index 000000000..62970e8a8 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BankAccountMapStore.java @@ -0,0 +1,79 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.StaticData.Account.BankAccount; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.clearing.imdg.utils.DbUtilsHelper; +import ru.spcex.clearing.imdg.utils.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class BankAccountMapStore extends TemplateMapStore { + + public BankAccountMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_BankAccount; + } + + @Override + public String getTableName() { + return "BANK_ACCOUNT"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "ACCOUNT_ID", "BANK_IDENTIFICATION_CODE", "BANK_NAME", "CORRESPONDENT_ACCOUNT_NAME", "CURRENCY", "DESTINATION", "IBAN", "INTERNATIONAL_TRANSFER_SIGN", "SWIFT_CODE", "TAXPAYER_IDENTIFICATION_NUMBER", "TAX_REGISTRATION_REASON_CODE", "CORRESPONDENT_ACCOUNT" + }; + } + + @Override + public BankAccount objectReader(ResultSet resultSet) throws SQLException { + BankAccount object = new BankAccount(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); + object.setBankIdentificationCode(resultSet.getObject("BANK_IDENTIFICATION_CODE", String.class)); + object.setBankName(resultSet.getObject("BANK_NAME", String.class)); + object.setCorrespondentAccountName(resultSet.getObject("CORRESPONDENT_ACCOUNT_NAME", String.class)); + object.setCurrency(resultSet.getObject("CURRENCY", String.class)); + object.setDestination(resultSet.getObject("DESTINATION", String.class)); + object.setIban(resultSet.getObject("IBAN", String.class)); + object.setInternationalTransferSign(resultSet.getObject("INTERNATIONAL_TRANSFER_SIGN", String.class)); + object.setSwiftCode(resultSet.getObject("SWIFT_CODE", String.class)); + object.setTaxpayerIdentificationNumber(resultSet.getObject("TAXPAYER_IDENTIFICATION_NUMBER", String.class)); + object.setTaxRegistrationReasonCode(resultSet.getObject("TAX_REGISTRATION_REASON_CODE", String.class)); + object.setCorrespondentAccount(resultSet.getObject("CORRESPONDENT_ACCOUNT", String.class)); + return object; + } + + @Override + public Object[] objectToField(BankAccount object) { + Object[] args = new Object[]{ + object.getId(), + object.getAccountId(), + object.getBankIdentificationCode(), + object.getBankName(), + object.getCorrespondentAccountName(), + object.getCurrency(), + object.getDestination(), + object.getIban(), + object.getInternationalTransferSign(), + object.getSwiftCode(), + object.getTaxpayerIdentificationNumber(), + object.getTaxRegistrationReasonCode(), + object.getCorrespondentAccount() + }; + return args; + } + +} +// todo Сделать BusinessEventMapStore BankAccountUpdateMapStore \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearingAccountMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearingAccountMapStore.java new file mode 100644 index 000000000..0abaf390f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearingAccountMapStore.java @@ -0,0 +1,63 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.StaticData.Account.ClearingAccount; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.clearing.imdg.utils.DbUtilsHelper; +import ru.spcex.clearing.imdg.utils.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class ClearingAccountMapStore extends TemplateMapStore { + + public ClearingAccountMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ClearingAccount; + } + + @Override + public String getTableName() { + return "CLEARING_ACCOUNT"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "ACCOUNT_ID", "CASH_ACCOUNT_ID", "DEPO_ACCOUNT_ID", "SETTLEMENT_CODE" + }; + } + + @Override + public ClearingAccount objectReader(ResultSet resultSet) throws SQLException { + ClearingAccount object = new ClearingAccount(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); + object.setCashAccountId(resultSet.getObject("CASH_ACCOUNT_ID", Long.class)); + object.setDepoAccountId(resultSet.getObject("DEPO_ACCOUNT_ID", Long.class)); + object.setSettlementCode(resultSet.getObject("SETTLEMENT_CODE", String.class)); + return object; + } + + @Override + public Object[] objectToField(ClearingAccount object) { + Object[] args = new Object[]{ + object.getId(), + object.getAccountId(), + object.getCashAccountId(), + object.getDepoAccountId(), + object.getSettlementCode() + }; + return args; + } + +} +// todo Сделать BusinessEventMapStore ClearingAccountUpdateMapStore \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearingMemberCategoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearingMemberCategoryMapStore.java new file mode 100644 index 000000000..881d614fe --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearingMemberCategoryMapStore.java @@ -0,0 +1,55 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.StaticData.generated.ClearingMemberCategory; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; + +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class ClearingMemberCategoryMapStore extends TemplateMapStore { + + public ClearingMemberCategoryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ClearingMemberCategory; + } + + @Override + public String getTableName() { + return "CLEARING_MEMBER_CATEGORY"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "COMPANY_ID", "CLEARING_MEMBER_CATEGORY" + }; + } + + @Override + public ClearingMemberCategory objectReader(ResultSet resultSet) throws SQLException { + ClearingMemberCategory object = new ClearingMemberCategory(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setClearingMemberCategory(resultSet.getObject("CLEARING_MEMBER_CATEGORY", String.class)); + return object; + } + + @Override + public Object[] objectToField(ClearingMemberCategory object) { + Object[] args = new Object[]{ + object.getId(), + object.getCompanyId(), + object.getClearingMemberCategory() + }; + return args; + } + +} \ No newline at end of file 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 b6eee8392..a1eb7515a 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 @@ -14,6 +14,12 @@ public final class IMDGDistributedNames { // public static final String Map_CompanyInfo = "Map_CompanyInfo"; интегрировано в Map_Company public static final String Map_Contact = "Map_Contact"; public static final String Map_ProfileDocument = "Map_ProfileDocument"; + public static final String Map_Account = "Map_Account"; + public static final String Map_Relation = "Map_Relation"; + public static final String Map_ClearingAccount = "Map_ClearingAccount"; + public static final String Map_BankAccount = "Map_BankAccount"; + public static final String Map_ClearingMemberCategory = "Map_ClearingMemberCategory"; + public static final String Map_AccountRouting = "Map_AccountRouting"; // public static final String Map_InterestStatusDictionary = "Map_InterestStatusDictionary"; future public static final String Map_AllowedDictionary = "Map_AllowedDictionary";