etreschenkov 2026-03-02 18:08:30 +03:00
parent e4f8895c58
commit 52ac896df8
12 changed files with 1506 additions and 5545 deletions

View file

@ -0,0 +1,216 @@
package ru.clearing.classes.statics.data.misc;
import java.math.BigDecimal;
import java.time.LocalDate;
import ru.clearing.classes.objects.BusinessObject;
public class OrderCurrency extends BusinessObject {
private Long securityId;
private String securitySymbol;
private String account;
private Long tradingClearingRegistryId;
private Long companyId;
private String tradingCode;
private Long counterPartyId;
private String counterTradingCode;
private String type;
private String overnightType;
private Long listingId;
private String market;
private BigDecimal price;
private BigDecimal rate;
private BigDecimal quantityLot;
private BigDecimal quantity;
private BigDecimal lotSize;
private String side;
private String settleCode;
private LocalDate settleDate;
private String status;
private String comment;
private Long initialOrderId;
public Long getSecurityId() {
return securityId;
}
public void setSecurityId(Long securityId) {
this.securityId = securityId;
}
public String getSecuritySymbol() {
return securitySymbol;
}
public void setSecuritySymbol(String securitySymbol) {
this.securitySymbol = securitySymbol;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public Long getTradingClearingRegistryId() {
return tradingClearingRegistryId;
}
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
this.tradingClearingRegistryId = tradingClearingRegistryId;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getTradingCode() {
return tradingCode;
}
public void setTradingCode(String tradingCode) {
this.tradingCode = tradingCode;
}
public Long getCounterPartyId() {
return counterPartyId;
}
public void setCounterPartyId(Long counterPartyId) {
this.counterPartyId = counterPartyId;
}
public String getCounterTradingCode() {
return counterTradingCode;
}
public void setCounterTradingCode(String counterTradingCode) {
this.counterTradingCode = counterTradingCode;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getOvernightType() {
return overnightType;
}
public void setOvernightType(String overnightType) {
this.overnightType = overnightType;
}
public Long getListingId() {
return listingId;
}
public void setListingId(Long listingId) {
this.listingId = listingId;
}
public String getMarket() {
return market;
}
public void setMarket(String market) {
this.market = market;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public BigDecimal getRate() {
return rate;
}
public void setRate(BigDecimal rate) {
this.rate = rate;
}
public BigDecimal getQuantityLot() {
return quantityLot;
}
public void setQuantityLot(BigDecimal quantityLot) {
this.quantityLot = quantityLot;
}
public BigDecimal getQuantity() {
return quantity;
}
public void setQuantity(BigDecimal quantity) {
this.quantity = quantity;
}
public BigDecimal getLotSize() {
return lotSize;
}
public void setLotSize(BigDecimal lotSize) {
this.lotSize = lotSize;
}
public String getSide() {
return side;
}
public void setSide(String side) {
this.side = side;
}
public String getSettleCode() {
return settleCode;
}
public void setSettleCode(String settleCode) {
this.settleCode = settleCode;
}
public LocalDate getSettleDate() {
return settleDate;
}
public void setSettleDate(LocalDate settleDate) {
this.settleDate = settleDate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public Long getInitialOrderId() {
return initialOrderId;
}
public void setInitialOrderId(Long initialOrderId) {
this.initialOrderId = initialOrderId;
}
}

View file

@ -0,0 +1,54 @@
package ru.clearing.classes.statics.data.misc;
import java.math.BigDecimal;
import java.time.LocalDate;
import ru.spcex.platform.classes.base.SpcexObjectBase;
public class OvernightRatesCurrency extends SpcexObjectBase {
private String baseCurrency;
private String quoteCurrency;
private BigDecimal baseRate;
private BigDecimal quoteRate;
private LocalDate settleDate;
public String getBaseCurrency() {
return baseCurrency;
}
public void setBaseCurrency(String baseCurrency) {
this.baseCurrency = baseCurrency;
}
public String getQuoteCurrency() {
return quoteCurrency;
}
public void setQuoteCurrency(String quoteCurrency) {
this.quoteCurrency = quoteCurrency;
}
public BigDecimal getBaseRate() {
return baseRate;
}
public void setBaseRate(BigDecimal baseRate) {
this.baseRate = baseRate;
}
public BigDecimal getQuoteRate() {
return quoteRate;
}
public void setQuoteRate(BigDecimal quoteRate) {
this.quoteRate = quoteRate;
}
public LocalDate getSettleDate() {
return settleDate;
}
public void setSettleDate(LocalDate settleDate) {
this.settleDate = settleDate;
}
}

View file

@ -0,0 +1,25 @@
package ru.clearing.classes.statics.data.misc;
import ru.spcex.platform.classes.base.SpcexObjectBase;
public class OvernightSettings extends SpcexObjectBase {
private String countryCode;
private String currencyCode;
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getCurrencyCode() {
return currencyCode;
}
public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}
}

View file

@ -0,0 +1,387 @@
package ru.clearing.classes.statics.data.misc;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessObject;
/**
* Сделки из Торговой системы
* <p>
* DB table: S_ORDERS
**/
public class SOrders extends BusinessObject {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long orderNum;
private String classCode;
private LocalDate tradeDate;
private String secCode;
private BigDecimal accruedInt;
private BigDecimal price;
private BigDecimal value;
private BigDecimal yield;
private BigDecimal price2;
private BigDecimal balance;
private BigDecimal balancePcs;
private Instant orderDateTime;
private BigDecimal qty;
private BigDecimal qtyPcs;
private Instant withdrawDateTime;
private String account;
private String brokerRef;
private String clientCode;
private String userId;
private String settleCode;
private String operation;
private String state;
private String type;
private String firmId;
private String firmName;
private String exchangeCode;
private Long linkedOrder;
private String bankAccId;
private Long repoTerm;
private BigDecimal repoValue;
private BigDecimal repo2Value;
private BigDecimal repoValueBalance;
private String priceCurrency;
private String settleCurrency;
private Long extOrderStatus;
private BigDecimal filledValue;
private LocalDate settleDate;
private LocalDate settleDate2;
private BigDecimal qty2;
private BigDecimal value2;
public Long getOrderNum() {
return orderNum;
}
public void setOrderNum(Long orderNum) {
this.orderNum = orderNum;
}
public String getClassCode() {
return classCode;
}
public void setClassCode(String classCode) {
this.classCode = classCode;
}
public LocalDate getTradeDate() {
return tradeDate;
}
public void setTradeDate(LocalDate tradeDate) {
this.tradeDate = tradeDate;
}
public String getSecCode() {
return secCode;
}
public void setSecCode(String secCode) {
this.secCode = secCode;
}
public BigDecimal getAccruedInt() {
return accruedInt;
}
public void setAccruedInt(BigDecimal accruedInt) {
this.accruedInt = accruedInt;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public BigDecimal getValue() {
return value;
}
public void setValue(BigDecimal value) {
this.value = value;
}
public BigDecimal getYield() {
return yield;
}
public void setYield(BigDecimal yield) {
this.yield = yield;
}
public BigDecimal getPrice2() {
return price2;
}
public void setPrice2(BigDecimal price2) {
this.price2 = price2;
}
public BigDecimal getBalance() {
return balance;
}
public void setBalance(BigDecimal balance) {
this.balance = balance;
}
public BigDecimal getBalancePcs() {
return balancePcs;
}
public void setBalancePcs(BigDecimal balancePcs) {
this.balancePcs = balancePcs;
}
public Instant getOrderDateTime() {
return orderDateTime;
}
public void setOrderDateTime(Instant orderDateTime) {
this.orderDateTime = orderDateTime;
}
public BigDecimal getQty() {
return qty;
}
public void setQty(BigDecimal qty) {
this.qty = qty;
}
public BigDecimal getQtyPcs() {
return qtyPcs;
}
public void setQtyPcs(BigDecimal qtyPcs) {
this.qtyPcs = qtyPcs;
}
public Instant getWithdrawDateTime() {
return withdrawDateTime;
}
public void setWithdrawDateTime(Instant withdrawDateTime) {
this.withdrawDateTime = withdrawDateTime;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getBrokerRef() {
return brokerRef;
}
public void setBrokerRef(String brokerRef) {
this.brokerRef = brokerRef;
}
public String getClientCode() {
return clientCode;
}
public void setClientCode(String clientCode) {
this.clientCode = clientCode;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getSettleCode() {
return settleCode;
}
public void setSettleCode(String settleCode) {
this.settleCode = settleCode;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getFirmId() {
return firmId;
}
public void setFirmId(String firmId) {
this.firmId = firmId;
}
public String getFirmName() {
return firmName;
}
public void setFirmName(String firmName) {
this.firmName = firmName;
}
public String getExchangeCode() {
return exchangeCode;
}
public void setExchangeCode(String exchangeCode) {
this.exchangeCode = exchangeCode;
}
public Long getLinkedOrder() {
return linkedOrder;
}
public void setLinkedOrder(Long linkedOrder) {
this.linkedOrder = linkedOrder;
}
public String getBankAccId() {
return bankAccId;
}
public void setBankAccId(String bankAccId) {
this.bankAccId = bankAccId;
}
public Long getRepoTerm() {
return repoTerm;
}
public void setRepoTerm(Long repoTerm) {
this.repoTerm = repoTerm;
}
public BigDecimal getRepoValue() {
return repoValue;
}
public void setRepoValue(BigDecimal repoValue) {
this.repoValue = repoValue;
}
public BigDecimal getRepo2Value() {
return repo2Value;
}
public void setRepo2Value(BigDecimal repo2Value) {
this.repo2Value = repo2Value;
}
public BigDecimal getRepoValueBalance() {
return repoValueBalance;
}
public void setRepoValueBalance(BigDecimal repoValueBalance) {
this.repoValueBalance = repoValueBalance;
}
public String getPriceCurrency() {
return priceCurrency;
}
public void setPriceCurrency(String priceCurrency) {
this.priceCurrency = priceCurrency;
}
public String getSettleCurrency() {
return settleCurrency;
}
public void setSettleCurrency(String settleCurrency) {
this.settleCurrency = settleCurrency;
}
public Long getExtOrderStatus() {
return extOrderStatus;
}
public void setExtOrderStatus(Long extOrderStatus) {
this.extOrderStatus = extOrderStatus;
}
public BigDecimal getFilledValue() {
return filledValue;
}
public void setFilledValue(BigDecimal filledValue) {
this.filledValue = filledValue;
}
public LocalDate getSettleDate() {
return settleDate;
}
public void setSettleDate(LocalDate settleDate) {
this.settleDate = settleDate;
}
public LocalDate getSettleDate2() {
return settleDate2;
}
public void setSettleDate2(LocalDate settleDate2) {
this.settleDate2 = settleDate2;
}
public BigDecimal getQty2() {
return qty2;
}
public void setQty2(BigDecimal qty2) {
this.qty2 = qty2;
}
public BigDecimal getValue2() {
return value2;
}
public void setValue2(BigDecimal value2) {
this.value2 = value2;
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,201 @@
-- DB version: 3.21 -> 3.22
DROP TABLE IF EXISTS ORDER_CURRENCY;
CREATE TABLE ORDER_CURRENCY
(
ID BIGINT PRIMARY KEY,
SECURITY_ID BIGINT,
SECURITY_SYMBOL VARCHAR(255),
ACCOUNT VARCHAR(50),
TRADING_CLEARING_REGISTRY_ID BIGINT,
COMPANY_ID BIGINT,
TRADING_CODE VARCHAR(255),
COUNTER_PARTY_ID BIGINT,
COUNTER_TRADING_CODE VARCHAR(255),
TYPE VARCHAR(4),
OVERNIGHT_TYPE VARCHAR(4),
LISTING_ID BIGINT,
MARKET VARCHAR(4),
PRICE NUMERIC(72,18),
RATE NUMERIC(72,18),
QUANTITY_LOT NUMERIC(72,2),
QUANTITY NUMERIC(72,2),
LOT_SIZE NUMERIC(72,2),
SIDE VARCHAR(4),
SETTLE_CODE VARCHAR(4),
SETTLE_DATE DATE,
STATUS VARCHAR(4),
COMMENT VARCHAR(255),
INITIAL_ORDER_ID BIGINT,
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP
);
COMMENT ON TABLE ORDER_CURRENCY IS 'аявки для заключения сделок переноса на валютном рынке';
COMMENT ON COLUMN ORDER_CURRENCY.ID is 'Идентификатор записи';
COMMENT ON COLUMN ORDER_CURRENCY.SECURITY_ID is 'Инструмент';
COMMENT ON COLUMN ORDER_CURRENCY.SECURITY_SYMBOL is 'Код инструмента';
COMMENT ON COLUMN ORDER_CURRENCY.ACCOUNT is 'Торговый счет';
COMMENT ON COLUMN ORDER_CURRENCY.TRADING_CLEARING_REGISTRY_ID is 'Идентификатор ТКР';
COMMENT ON COLUMN ORDER_CURRENCY.COMPANY_ID is 'Компания';
COMMENT ON COLUMN ORDER_CURRENCY.TRADING_CODE is 'Код УТ';
COMMENT ON COLUMN ORDER_CURRENCY.COUNTER_PARTY_ID is 'Идентификатор контрагента';
COMMENT ON COLUMN ORDER_CURRENCY.COUNTER_TRADING_CODE is 'Торговый код контрагента';
COMMENT ON COLUMN ORDER_CURRENCY.TYPE is 'Тип заявки';
COMMENT ON COLUMN ORDER_CURRENCY.OVERNIGHT_TYPE is 'Тип инструментов переноса';
COMMENT ON COLUMN ORDER_CURRENCY.LISTING_ID is 'Идентификатор листинга';
COMMENT ON COLUMN ORDER_CURRENCY.MARKET is 'Режим торгов';
COMMENT ON COLUMN ORDER_CURRENCY.PRICE is 'Цена заявки';
COMMENT ON COLUMN ORDER_CURRENCY.RATE is 'Ставка переноса';
COMMENT ON COLUMN ORDER_CURRENCY.QUANTITY_LOT is 'Количество лотов';
COMMENT ON COLUMN ORDER_CURRENCY.QUANTITY is 'Количество лотов в шт.';
COMMENT ON COLUMN ORDER_CURRENCY.LOT_SIZE is 'Размер лота';
COMMENT ON COLUMN ORDER_CURRENCY.SIDE is 'Направление заявки';
COMMENT ON COLUMN ORDER_CURRENCY.SETTLE_CODE is 'Код расчетов';
COMMENT ON COLUMN ORDER_CURRENCY.SETTLE_DATE is 'Дата расчетов';
COMMENT ON COLUMN ORDER_CURRENCY.STATUS is 'Статус заявки';
COMMENT ON COLUMN ORDER_CURRENCY.COMMENT is 'Комментарий';
COMMENT ON COLUMN ORDER_CURRENCY.INITIAL_ORDER_ID is 'Номер исходной заявки';
COMMENT ON COLUMN ORDER_CURRENCY.CREATED_AT is 'Создано';
COMMENT ON COLUMN ORDER_CURRENCY.UPDATED_AT is 'Обновлено';
GRANT ALL PRIVILEGES ON TABLE ORDER_CURRENCY TO clearing;
DROP TABLE IF EXISTS OVERNIGHT_SETTINGS;
CREATE TABLE OVERNIGHT_SETTINGS
(
ID BIGINT PRIMARY KEY,
MARKET VARCHAR(4),
OVERNIGHT_TYPE VARCHAR(4),
COMPANY_ID BIGINT
);
COMMENT ON TABLE OVERNIGHT_SETTINGS IS 'Настройки переноса позиций';
COMMENT ON COLUMN OVERNIGHT_SETTINGS.ID is 'Идентификатор записи';
COMMENT ON COLUMN OVERNIGHT_SETTINGS.MARKET is 'Рынок';
COMMENT ON COLUMN OVERNIGHT_SETTINGS.OVERNIGHT_TYPE is 'Тип инструмента для сделки переноса';
COMMENT ON COLUMN OVERNIGHT_SETTINGS.COMPANY_ID is 'Компания';
GRANT ALL PRIVILEGES ON TABLE OVERNIGHT_SETTINGS TO clearing;
DROP TABLE IF EXISTS OVERNIGHT_TYPE_DICTIONARY;
CREATE TABLE OVERNIGHT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50));
COMMENT ON TABLE OVERNIGHT_TYPE_DICTIONARY IS 'Справочник типов сделок переноса';
COMMENT ON COLUMN OVERNIGHT_TYPE_DICTIONARY.ID IS 'Идентификатор';
COMMENT ON COLUMN OVERNIGHT_TYPE_DICTIONARY.CODE IS 'Код';
COMMENT ON COLUMN OVERNIGHT_TYPE_DICTIONARY.NAME IS 'Тип расчета';
GRANT ALL PRIVILEGES ON TABLE OVERNIGHT_TYPE_DICTIONARY TO clearing;
DROP TABLE IF EXISTS OVERNIGHT_RATES_CURRENCY;
CREATE TABLE OVERNIGHT_RATES_CURRENCY
(
ID BIGINT PRIMARY KEY,
BASE_CURRENCY VARCHAR(4),
QUOTE_CURRENCY VARCHAR(4),
BASE_RATE NUMERIC(72,18),
QUOTE_RATE NUMERIC(72,18),
SETTLE_DATE DATE
);
COMMENT ON TABLE OVERNIGHT_RATES_CURRENCY IS 'Ставки переноса для валютного рынка';
COMMENT ON COLUMN OVERNIGHT_RATES_CURRENCY.ID is 'Идентификатор записи';
COMMENT ON COLUMN OVERNIGHT_RATES_CURRENCY.BASE_CURRENCY is 'Базовая валюта';
COMMENT ON COLUMN OVERNIGHT_RATES_CURRENCY.QUOTE_CURRENCY is 'Сопряженная валюта';
COMMENT ON COLUMN OVERNIGHT_RATES_CURRENCY.BASE_RATE is 'Ставка переноса базовой валюты';
COMMENT ON COLUMN OVERNIGHT_RATES_CURRENCY.QUOTE_RATE is 'Ставка переноса сопряженной валюты';
COMMENT ON COLUMN OVERNIGHT_RATES_CURRENCY.SETTLE_DATE is 'Дата расчетов';
GRANT ALL PRIVILEGES ON TABLE OVERNIGHT_RATES_CURRENCY TO clearing;
DROP TABLE IF EXISTS S_ORDERS;
CREATE TABLE S_ORDERS
(
ID BIGINT PRIMARY KEY,
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP,
ORDER_NUM BIGINT,
CLASS_CODE VARCHAR(12),
TRADE_DATE DATE,
SEC_CODE VARCHAR(12),
ACCRUEDINT NUMERIC(72, 18),
PRICE NUMERIC(72, 18),
VALUE NUMERIC(72, 18),
YIELD NUMERIC(72, 18),
PRICE2 NUMERIC(72, 18),
BALANCE NUMERIC(72, 18),
BALANCE_PCS NUMERIC(72, 18),
ORDER_DATE_TIME TIMESTAMP,
QTY NUMERIC(72, 18),
QTY_PCS NUMERIC(72, 18),
WITHDRAW_DATE_TIME TIMESTAMP,
ACCOUNT VARCHAR(12),
BROKER_REF VARCHAR(34),
CLIENT_CODE VARCHAR(12),
USER_ID VARCHAR(32),
SETTLE_CODE VARCHAR(12),
OPERATION VARCHAR(40),
STATE VARCHAR(12),
TYPE VARCHAR(12),
FIRM_ID VARCHAR(12),
FIRM_NAME VARCHAR(128),
EXCHANGE_CODE VARCHAR(64),
LINKED_ORDER BIGINT,
BANK_ACC_ID VARCHAR(12),
REPO_TERM BIGINT,
REPO_VALUE NUMERIC(72, 18),
REPO2_VALUE NUMERIC(72, 18),
REPO_VALUE_BALANCE NUMERIC(72, 18),
PRICE_CURRENCY VARCHAR(4),
SETTLE_CURRENCY VARCHAR(4),
EXT_ORDER_STATUS BIGINT,
FILLED_VALUE NUMERIC(72, 18),
SETTLE_DATE DATE,
SETTLE_DATE2 DATE,
QTY2 NUMERIC(72, 18),
VALUE2 NUMERIC(72, 18)
);
COMMENT ON TABLE S_ORDERS IS 'Заявки из Торговой системы';
COMMENT ON COLUMN S_ORDERS.ID is 'Идентификатор записи';
COMMENT ON COLUMN S_ORDERS.CREATED_AT is 'Дата и время создания';
COMMENT ON COLUMN S_ORDERS.UPDATED_AT is 'Дата и время обновления';
COMMENT ON COLUMN S_ORDERS.ORDER_NUM is 'Идентификационный номер заявки';
COMMENT ON COLUMN S_ORDERS.CLASS_CODE is 'Код класса инструментов';
COMMENT ON COLUMN S_ORDERS.TRADE_DATE is 'Дата торговой сессии';
COMMENT ON COLUMN S_ORDERS.SEC_CODE is 'Код инструмента';
COMMENT ON COLUMN S_ORDERS.ACCRUEDINT is 'Накопленный купонный доход';
COMMENT ON COLUMN S_ORDERS.PRICE is 'Цена за одну ценную бумагу';
COMMENT ON COLUMN S_ORDERS.VALUE is 'Объем сделки без учета комиссионного сбора биржи и % дохода';
COMMENT ON COLUMN S_ORDERS.YIELD is 'Доходность';
COMMENT ON COLUMN S_ORDERS.PRICE2 is 'Цена второй части РЕПО';
COMMENT ON COLUMN S_ORDERS.BALANCE is 'Неисполненный остаток заявки, в лотах';
COMMENT ON COLUMN S_ORDERS.BALANCE_PCS is 'Неисполненный остаток заявки, в штуках';
COMMENT ON COLUMN S_ORDERS.ORDER_DATE_TIME is 'Дата и время регистрации заявки в торговой системе';
COMMENT ON COLUMN S_ORDERS.QTY is 'Количество ценных бумаг в лотах';
COMMENT ON COLUMN S_ORDERS.QTY_PCS is 'Количество ценных бумаг в штуках';
COMMENT ON COLUMN S_ORDERS.WITHDRAW_DATE_TIME is 'Дата и время снятия заявки';
COMMENT ON COLUMN S_ORDERS.ACCOUNT is 'Торговый счет';
COMMENT ON COLUMN S_ORDERS.BROKER_REF is 'Комментарий, обычно: <код клиента>/<номер поручения>';
COMMENT ON COLUMN S_ORDERS.CLIENT_CODE is 'Код клиента';
COMMENT ON COLUMN S_ORDERS.USER_ID is 'Идентификатор рабочей станции РТС';
COMMENT ON COLUMN S_ORDERS.SETTLE_CODE is 'Код расчетов';
COMMENT ON COLUMN S_ORDERS.OPERATION is 'Тип операции (продажа или покупка)';
COMMENT ON COLUMN S_ORDERS.STATE is 'Состояние заявки';
COMMENT ON COLUMN S_ORDERS.TYPE is 'Тип заявки';
COMMENT ON COLUMN S_ORDERS.FIRM_ID is 'Код участника торгов';
COMMENT ON COLUMN S_ORDERS.FIRM_NAME is 'Наименование участника торгов';
COMMENT ON COLUMN S_ORDERS.EXCHANGE_CODE is 'Код биржи';
COMMENT ON COLUMN S_ORDERS.LINKED_ORDER is 'Номер исходной заявки';
COMMENT ON COLUMN S_ORDERS.BANK_ACC_ID is 'Идентификатор расчетного счета/кода в клиринговой организации';
COMMENT ON COLUMN S_ORDERS.REPO_TERM is 'Срок РЕПО в календарных днях';
COMMENT ON COLUMN S_ORDERS.REPO_VALUE is 'Сумма РЕПО на текущую дату';
COMMENT ON COLUMN S_ORDERS.REPO2_VALUE is 'Объем сделки выкупа РЕПО';
COMMENT ON COLUMN S_ORDERS.REPO_VALUE_BALANCE is 'Остаток суммы РЕПО за вычетом суммы привлеченных / предоставленных по сделке РЕПО денежных средств в неисполненной части заявки, по состоянию на текущую дату';
COMMENT ON COLUMN S_ORDERS.PRICE_CURRENCY is 'Валюта, в которой указана цена заявки';
COMMENT ON COLUMN S_ORDERS.SETTLE_CURRENCY is 'Валюта расчетов по данной заявке';
COMMENT ON COLUMN S_ORDERS.EXT_ORDER_STATUS is 'Расширенный статус заявки';
COMMENT ON COLUMN S_ORDERS.FILLED_VALUE is 'Исполненный объем заявки';
COMMENT ON COLUMN S_ORDERS.SETTLE_DATE is 'Дата расчетов первой (ближней) ноги свопа';
COMMENT ON COLUMN S_ORDERS.SETTLE_DATE2 is 'Дата расчетов второй (дальней) ноги свопа';
COMMENT ON COLUMN S_ORDERS.QTY2 is 'Количество второй части свопа';
COMMENT ON COLUMN S_ORDERS.VALUE2 is 'Объем второй части свопа';
GRANT ALL PRIVILEGES ON TABLE S_ORDERS TO clearing;
INSERT INTO DB_VERSION(ID, VERSION) values (1, '3.22') ON CONFLICT (ID) DO UPDATE SET VERSION = EXCLUDED.VERSION;

View file

@ -0,0 +1,12 @@
package ru.clearing.platform.dictionary;
/**
* Справочник типов сделок переноса
*
* Dictionary DB table: OVERNIGHT_ TYPE_DICTIONARY
**/
public class OvernightTypeDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

@ -0,0 +1,131 @@
package ru.spcex.clearing.imdg.businessobject;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.misc.OrderCurrency;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class OrderCurrencyMapStore extends TemplateMapStore<OrderCurrency> {
public OrderCurrencyMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_OrderCurrency;
}
@Override
public String getTableName() {
return "ORDER_CURRENCY";
}
@Override
public String[] getFields() {
return new String[]{
"ID",
"SECURITY_ID",
"SECURITY_SYMBOL",
"ACCOUNT",
"TRADING_CLEARING_REGISTRY_ID",
"COMPANY_ID",
"TRADING_CODE",
"COUNTER_PARTY_ID",
"COUNTER_TRADING_CODE",
"TYPE",
"OVERNIGHT_TYPE",
"LISTING_ID",
"MARKET",
"PRICE",
"RATE",
"QUANTITY_LOT",
"QUANTITY",
"LOT_SIZE",
"SIDE",
"SETTLE_CODE",
"SETTLE_DATE",
"STATUS",
"COMMENT",
"INITIAL_ORDER_ID",
"CREATED_AT",
"UPDATED_AT"
};
}
@Override
public String[] getIndexingField() {
return new String[]{"id"};
}
@Override
public OrderCurrency objectReader(ResultSet resultSet) throws SQLException {
OrderCurrency object = new OrderCurrency();
object.setId(resultSet.getObject("ID", Long.class));
object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class));
object.setSecuritySymbol(resultSet.getString("SECURITY_SYMBOL"));
object.setAccount(resultSet.getString("ACCOUNT"));
object.setTradingClearingRegistryId(resultSet.getObject("TRADING_CLEARING_REGISTRY_ID", Long.class));
object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class));
object.setTradingCode(resultSet.getString("TRADING_CODE"));
object.setCounterPartyId(resultSet.getObject("COUNTER_PARTY_ID", Long.class));
object.setCounterTradingCode(resultSet.getString("COUNTER_TRADING_CODE"));
object.setType(resultSet.getString("TYPE"));
object.setOvernightType(resultSet.getString("OVERNIGHT_TYPE"));
object.setListingId(resultSet.getObject("LISTING_ID", Long.class));
object.setMarket(resultSet.getString("MARKET"));
object.setPrice(resultSet.getBigDecimal("PRICE"));
object.setRate(resultSet.getBigDecimal("RATE"));
object.setQuantityLot(resultSet.getBigDecimal("QUANTITY_LOT"));
object.setQuantity(resultSet.getBigDecimal("QUANTITY"));
object.setLotSize(resultSet.getBigDecimal("LOT_SIZE"));
object.setSide(resultSet.getString("SIDE"));
object.setSettleCode(resultSet.getString("SETTLE_CODE"));
object.setSettleDate(getLocalDateFromSqlDate(resultSet, "SETTLE_DATE"));
object.setStatus(resultSet.getString("STATUS"));
object.setComment(resultSet.getString("COMMENT"));
object.setInitialOrderId(resultSet.getObject("INITIAL_ORDER_ID", Long.class));
object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT"));
object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT"));
return object;
}
@Override
public Object[] objectToField(OrderCurrency object) {
Object[] args = new Object[]{
object.getId(),
object.getSecurityId(),
object.getSecuritySymbol(),
object.getAccount(),
object.getTradingClearingRegistryId(),
object.getCompanyId(),
object.getTradingCode(),
object.getCounterPartyId(),
object.getCounterTradingCode(),
object.getType(),
object.getOvernightType(),
object.getListingId(),
object.getMarket(),
object.getPrice(),
object.getRate(),
object.getQuantityLot(),
object.getQuantity(),
object.getLotSize(),
object.getSide(),
object.getSettleCode(),
TimeUtil.toDateFromLocalDate(object.getSettleDate()),
object.getStatus(),
object.getComment(),
object.getInitialOrderId(),
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated())
};
return args;
}
}

View file

@ -0,0 +1,183 @@
package ru.spcex.clearing.imdg.businessobject;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.misc.SOrders;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class SOrdersMapStore extends TemplateMapStore<SOrders> {
public SOrdersMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_SOrders;
}
@Override
public String getTableName() {
return "S_ORDERS";
}
@Override
public String[] getFields() {
return new String[]{
"ID",
"CREATED_AT",
"UPDATED_AT",
"ORDER_NUM",
"CLASS_CODE",
"TRADE_DATE",
"SEC_CODE",
"ACCRUEDINT",
"PRICE",
"VALUE",
"YIELD",
"PRICE2",
"BALANCE",
"BALANCE_PCS",
"ORDER_DATE_TIME",
"QTY",
"QTY_PCS",
"WITHDRAW_DATE_TIME",
"ACCOUNT",
"BROKER_REF",
"CLIENT_CODE",
"USER_ID",
"SETTLE_CODE",
"OPERATION",
"STATE",
"TYPE",
"FIRM_ID",
"FIRM_NAME",
"EXCHANGE_CODE",
"LINKED_ORDER",
"BANK_ACC_ID",
"REPO_TERM",
"REPO_VALUE",
"REPO2_VALUE",
"REPO_VALUE_BALANCE",
"PRICE_CURRENCY",
"SETTLE_CURRENCY",
"EXT_ORDER_STATUS",
"FILLED_VALUE",
"SETTLE_DATE",
"SETTLE_DATE2",
"QTY2",
"VALUE2"
};
}
@Override
public String[] getIndexingField() {
return new String[]{"id"};
}
@Override
public SOrders objectReader(ResultSet resultSet) throws SQLException {
SOrders object = new SOrders();
object.setId(resultSet.getObject("ID", Long.class));
object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT"));
object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT"));
object.setOrderNum(resultSet.getObject("ORDER_NUM", Long.class));
object.setClassCode(resultSet.getString("CLASS_CODE"));
object.setTradeDate(getLocalDateFromSqlDate(resultSet, "TRADE_DATE"));
object.setSecCode(resultSet.getString("SEC_CODE"));
object.setAccruedInt(resultSet.getBigDecimal("ACCRUEDINT"));
object.setPrice(resultSet.getBigDecimal("PRICE"));
object.setValue(resultSet.getBigDecimal("VALUE"));
object.setYield(resultSet.getBigDecimal("YIELD"));
object.setPrice2(resultSet.getBigDecimal("PRICE2"));
object.setBalance(resultSet.getBigDecimal("BALANCE"));
object.setBalancePcs(resultSet.getBigDecimal("BALANCE_PCS"));
object.setOrderDateTime(getInstantFromTimestamp(resultSet, "ORDER_DATE_TIME"));
object.setQty(resultSet.getBigDecimal("QTY"));
object.setQtyPcs(resultSet.getBigDecimal("QTY_PCS"));
object.setWithdrawDateTime(getInstantFromTimestamp(resultSet, "WITHDRAW_DATE_TIME"));
object.setAccount(resultSet.getString("ACCOUNT"));
object.setBrokerRef(resultSet.getString("BROKER_REF"));
object.setClientCode(resultSet.getString("CLIENT_CODE"));
object.setUserId(resultSet.getString("USER_ID"));
object.setSettleCode(resultSet.getString("SETTLE_CODE"));
object.setOperation(resultSet.getString("OPERATION"));
object.setState(resultSet.getString("STATE"));
object.setType(resultSet.getString("TYPE"));
object.setFirmId(resultSet.getString("FIRM_ID"));
object.setFirmName(resultSet.getString("FIRM_NAME"));
object.setExchangeCode(resultSet.getString("EXCHANGE_CODE"));
object.setLinkedOrder(resultSet.getObject("LINKED_ORDER", Long.class));
object.setBankAccId(resultSet.getString("BANK_ACC_ID"));
object.setRepoTerm(resultSet.getObject("REPO_TERM", Long.class));
object.setRepoValue(resultSet.getBigDecimal("REPO_VALUE"));
object.setRepo2Value(resultSet.getBigDecimal("REPO2_VALUE"));
object.setRepoValueBalance(resultSet.getBigDecimal("REPO_VALUE_BALANCE"));
object.setPriceCurrency(resultSet.getString("PRICE_CURRENCY"));
object.setSettleCurrency(resultSet.getString("SETTLE_CURRENCY"));
object.setExtOrderStatus(resultSet.getObject("EXT_ORDER_STATUS", Long.class));
object.setFilledValue(resultSet.getBigDecimal("FILLED_VALUE"));
object.setSettleDate(getLocalDateFromSqlDate(resultSet, "SETTLE_DATE"));
object.setSettleDate2(getLocalDateFromSqlDate(resultSet, "SETTLE_DATE2"));
object.setQty2(resultSet.getBigDecimal("QTY2"));
object.setValue2(resultSet.getBigDecimal("VALUE2"));
return object;
}
@Override
public Object[] objectToField(SOrders object) {
return new Object[]{
object.getId(),
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated()),
object.getOrderNum(),
object.getClassCode(),
TimeUtil.toDateFromLocalDate(object.getTradeDate()),
object.getSecCode(),
object.getAccruedInt(),
object.getPrice(),
object.getValue(),
object.getYield(),
object.getPrice2(),
object.getBalance(),
object.getBalancePcs(),
TimeUtil.toDateFromInstant(object.getOrderDateTime()),
object.getQty(),
object.getQtyPcs(),
TimeUtil.toDateFromInstant(object.getWithdrawDateTime()),
object.getAccount(),
object.getBrokerRef(),
object.getClientCode(),
object.getUserId(),
object.getSettleCode(),
object.getOperation(),
object.getState(),
object.getType(),
object.getFirmId(),
object.getFirmName(),
object.getExchangeCode(),
object.getLinkedOrder(),
object.getBankAccId(),
object.getRepoTerm(),
object.getRepoValue(),
object.getRepo2Value(),
object.getRepoValueBalance(),
object.getPriceCurrency(),
object.getSettleCurrency(),
object.getExtOrderStatus(),
object.getFilledValue(),
TimeUtil.toDateFromLocalDate(object.getSettleDate()),
TimeUtil.toDateFromLocalDate(object.getSettleDate2()),
object.getQty2(),
object.getValue2()
};
}
}

View file

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

View file

@ -0,0 +1,71 @@
package ru.spcex.clearing.imdg.object;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.misc.OvernightRatesCurrency;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class OvernightRatesCurrencyMapStore extends TemplateMapStore<OvernightRatesCurrency> {
public OvernightRatesCurrencyMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_OvernightRatesCurrency;
}
@Override
public String getTableName() {
return "OVERNIGHT_RATES_CURRENCY";
}
@Override
public String[] getFields() {
return new String[]{
"ID",
"BASE_CURRENCY",
"QUOTE_CURRENCY",
"BASE_RATE",
"QUOTE_RATE",
"SETTLE_DATE"
};
}
@Override
public String[] getIndexingField() {
return new String[]{"id"};
}
@Override
public OvernightRatesCurrency objectReader(ResultSet resultSet) throws SQLException {
OvernightRatesCurrency object = new OvernightRatesCurrency();
object.setId(resultSet.getObject("ID", Long.class));
object.setBaseCurrency(resultSet.getString("BASE_CURRENCY"));
object.setQuoteCurrency(resultSet.getString("QUOTE_CURRENCY"));
object.setBaseRate(resultSet.getBigDecimal("BASE_RATE"));
object.setQuoteRate(resultSet.getBigDecimal("QUOTE_RATE"));
object.setSettleDate(getLocalDateFromSqlDate(resultSet, "SETTLE_DATE"));
return object;
}
@Override
public Object[] objectToField(OvernightRatesCurrency object) {
return new Object[]{
object.getId(),
object.getBaseCurrency(),
object.getQuoteCurrency(),
object.getBaseRate(),
object.getQuoteRate(),
TimeUtil.toDateFromLocalDate(object.getSettleDate())
};
}
}

View file

@ -228,6 +228,10 @@ public final class IMDGDistributedNames {
public static final String Map_Rates = "Map_Rates";
public static final String Map_ValidationSymbols = "Map_ValidationSymbols";
public static final String Map_DbVersion = "Map_DbVersion";
public static final String Map_OrderCurrency = "Map_OrderCurrency";
public static final String Map_OvernightRatesCurrency = "Map_OvernightRatesCurrency";
public static final String Map_SOrders = "Map_SOrders";
public static final String Map_OvernightTypeDictionary = "Map_OvernightTypeDictionary";
//-------------------history and search tables
public static final String Map_SearchExecutionDeposit = "Map_SearchDeposit";