diff --git a/clearing-parent/backend-api/src/main/resources/meta/data.xml b/clearing-parent/backend-api/src/main/resources/meta/data.xml index 2627cc907..4caf52f1c 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -1,230 +1,245 @@ - + - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -243,8 +258,6 @@ - - @@ -266,9 +279,6 @@ - - - diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index f961026e4..1c4e806ee 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + @@ -136,32 +136,32 @@ - + - + - + - + - + - + @@ -207,6 +207,22 @@ + + + + + + + + + + + + + + + + @@ -232,11 +248,6 @@ - - - - - @@ -287,11 +298,6 @@ - - - - - @@ -788,7 +794,7 @@ - + @@ -805,6 +811,21 @@ + + + + + + + + + + + + + + + @@ -864,6 +885,24 @@ + + + + + + + + + + + + + + + + + + @@ -1151,6 +1190,130 @@ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1278,37 +1441,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1951,28 +2083,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -2004,13 +2114,6 @@ - - - - - - - diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositControllerTest.java index 2fa34634a..7f68c608b 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositControllerTest.java @@ -40,8 +40,8 @@ class ExecutionDepositControllerTest extends AbstractControllerTest { executionDeposit.setDuration(currentId.get()); executionDeposit.setFirstLegSettlementDate(LocalDate.now()); executionDeposit.setSecondLegSettlementDate(LocalDate.now()); - executionDeposit.setFirstLegSettlementCode(LocalDate.now()); - executionDeposit.setSecondLegSettlementCode(LocalDate.now()); + executionDeposit.setFirstLegSettlementCode("leg1c"); + executionDeposit.setSecondLegSettlementCode("leg2c"); executionDeposit.setSecurityFullName("sec"); executionDeposit.setSecuritySymbol("sec"); executionDeposit.setSecurityId(currentId.get()); diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDeposit.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDeposit.java index 73a011f1c..0d80e74c0 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDeposit.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDeposit.java @@ -10,7 +10,7 @@ public class ExecutionDeposit extends BusinessObject { private Long exchangeExecutionId; private Instant exchangeExecutionTime; private LocalDate tradingDate; - private Long accountId; + private Long tradingClearingRegistryId; private String market; private BigDecimal price; private BigDecimal lots; @@ -24,11 +24,12 @@ public class ExecutionDeposit extends BusinessObject { private Long duration; private LocalDate firstLegSettlementDate; private LocalDate secondLegSettlementDate; - private LocalDate firstLegSettlementCode; - private LocalDate secondLegSettlementCode; + private String firstLegSettlementCode; + private String secondLegSettlementCode; private String securityFullName; private String securitySymbol; private Long securityId; + private String contract; private Long counterPartyId; private String coverageStatus; private Long sessionId; @@ -58,12 +59,12 @@ public class ExecutionDeposit extends BusinessObject { this.tradingDate = tradingDate; } - public Long getAccountId() { - return accountId; + public Long getTradingClearingRegistryId() { + return tradingClearingRegistryId; } - public void setAccountId(Long accountId) { - this.accountId = accountId; + public void setTradingClearingRegistryId(Long tradingClearingRegistryId) { + this.tradingClearingRegistryId = tradingClearingRegistryId; } public String getMarket() { @@ -170,19 +171,19 @@ public class ExecutionDeposit extends BusinessObject { this.secondLegSettlementDate = secondLegSettlementDate; } - public LocalDate getFirstLegSettlementCode() { + public String getFirstLegSettlementCode() { return firstLegSettlementCode; } - public void setFirstLegSettlementCode(LocalDate firstLegSettlementCode) { + public void setFirstLegSettlementCode(String firstLegSettlementCode) { this.firstLegSettlementCode = firstLegSettlementCode; } - public LocalDate getSecondLegSettlementCode() { + public String getSecondLegSettlementCode() { return secondLegSettlementCode; } - public void setSecondLegSettlementCode(LocalDate secondLegSettlementCode) { + public void setSecondLegSettlementCode(String secondLegSettlementCode) { this.secondLegSettlementCode = secondLegSettlementCode; } @@ -210,6 +211,14 @@ public class ExecutionDeposit extends BusinessObject { this.securityId = securityId; } + public String getContract() { + return contract; + } + + public void setContract(String contract) { + this.contract = contract; + } + public Long getCounterPartyId() { return counterPartyId; } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDepositHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDepositHistory.java new file mode 100644 index 000000000..784900a03 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDepositHistory.java @@ -0,0 +1,28 @@ +package ru.clearing.classes.statics.data.execution; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessEvent; + +import java.io.Serial; + +/** + * Изменение состояния объекта Сделки + *

+ * DB table: EXECUTION_DEPOSIT_HISTORY + **/ +public class ExecutionDepositHistory extends BusinessEvent { + @Serial + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private ExecutionDeposit object; + + @Override + public ExecutionDeposit getObject() { + return object; + } + + @Override + public void setObject(ExecutionDeposit object) { + this.object = object; + } +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java new file mode 100644 index 000000000..8cc9e76f9 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java @@ -0,0 +1,263 @@ +package ru.clearing.classes.statics.data.execution; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; + +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; + +/** + * Сделки на Фондовой секции + *

+ * DB table: EXECUTION_FOND + **/ +public class ExecutionFond extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private LocalDate clearingDate; + private Long exchangeExecutionId; + private String side; + private String market; + private LocalDate tradingDate; + private String securitySymbol; + private Long securityId; + private BigDecimal interestAmount; + private Long exchangeOrderId; + private BigDecimal price; + private BigDecimal settlementAmount; + private BigDecimal lots; + private BigDecimal quantity; + private Instant exchangeExecutionTime; + private Long duration; + private Long tradingClearingRegistryId; + private String comment; + private Long clientCodeId; + private String settlementCode; + private Long companyId; + private Long counterPartyId; + private String securityFullName; + private LocalDate settlementDate; + private String settlementCurrency; + private Instant exchangeExecutionMicroseconds; + private String coverageStatus; + private Long sessionId; + + + public LocalDate getClearingDate() { + return clearingDate; + } + + public void setClearingDate(LocalDate value) { + this.clearingDate = value; + } + + public Long getExchangeExecutionId() { + return exchangeExecutionId; + } + + public void setExchangeExecutionId(Long value) { + this.exchangeExecutionId = value; + } + + public String getSide() { + return side; + } + + public void setSide(String value) { + this.side = value; + } + + public String getMarket() { + return market; + } + + public void setMarket(String value) { + this.market = value; + } + + public LocalDate getTradingDate() { + return tradingDate; + } + + public void setTradingDate(LocalDate value) { + this.tradingDate = value; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + + public void setSecuritySymbol(String value) { + this.securitySymbol = value; + } + + public Long getSecurityId() { + return securityId; + } + + public void setSecurityId(Long value) { + this.securityId = value; + } + + public BigDecimal getInterestAmount() { + return interestAmount; + } + + public void setInterestAmount(BigDecimal value) { + this.interestAmount = value; + } + + public Long getExchangeOrderId() { + return exchangeOrderId; + } + + public void setExchangeOrderId(Long value) { + this.exchangeOrderId = value; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal value) { + this.price = value; + } + + public BigDecimal getSettlementAmount() { + return settlementAmount; + } + + public void setSettlementAmount(BigDecimal value) { + this.settlementAmount = value; + } + + public BigDecimal getLots() { + return lots; + } + + public void setLots(BigDecimal value) { + this.lots = value; + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal value) { + this.quantity = value; + } + + public Instant getExchangeExecutionTime() { + return exchangeExecutionTime; + } + + public void setExchangeExecutionTime(Instant value) { + this.exchangeExecutionTime = value; + } + + public Long getDuration() { + return duration; + } + + public void setDuration(Long value) { + this.duration = value; + } + + public Long getTradingClearingRegistryId() { + return tradingClearingRegistryId; + } + + public void setTradingClearingRegistryId(Long value) { + this.tradingClearingRegistryId = value; + } + + public String getComment() { + return comment; + } + + public void setComment(String value) { + this.comment = value; + } + + public Long getClientCodeId() { + return clientCodeId; + } + + public void setClientCodeId(Long value) { + this.clientCodeId = value; + } + + public String getSettlementCode() { + return settlementCode; + } + + public void setSettlementCode(String value) { + this.settlementCode = value; + } + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long value) { + this.companyId = value; + } + + public Long getCounterPartyId() { + return counterPartyId; + } + + public void setCounterPartyId(Long value) { + this.counterPartyId = value; + } + + public String getSecurityFullName() { + return securityFullName; + } + + public void setSecurityFullName(String value) { + this.securityFullName = value; + } + + public LocalDate getSettlementDate() { + return settlementDate; + } + + public void setSettlementDate(LocalDate value) { + this.settlementDate = value; + } + + public String getSettlementCurrency() { + return settlementCurrency; + } + + public void setSettlementCurrency(String value) { + this.settlementCurrency = value; + } + + public Instant getExchangeExecutionMicroseconds() { + return exchangeExecutionMicroseconds; + } + + public void setExchangeExecutionMicroseconds(Instant value) { + this.exchangeExecutionMicroseconds = value; + } + + public String getCoverageStatus() { + return coverageStatus; + } + + public void setCoverageStatus(String value) { + this.coverageStatus = value; + } + + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long value) { + this.sessionId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFondHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFondHistory.java new file mode 100644 index 000000000..bdae32cd1 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFondHistory.java @@ -0,0 +1,28 @@ +package ru.clearing.classes.statics.data.execution; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessEvent; + +import java.io.Serial; + +/** + * Изменение состояния объекта Сделки на Фондовой секции + *

+ * DB table: EXECUTION_FOND_HISTORY + **/ +public class ExecutionFondHistory extends BusinessEvent { + @Serial + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private ExecutionFond object; + + @Override + public ExecutionFond getObject() { + return object; + } + + @Override + public void setObject(ExecutionFond object) { + this.object = object; + } +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/STrade.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/STrade.java index f49c7b224..afdab76b7 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/STrade.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/STrade.java @@ -16,63 +16,184 @@ public class STrade extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; private Long tradeNum; - private String secCode; - private Instant tradeDateTime; - private LocalDate settleDate; - private BigDecimal price; - private BigDecimal value; - private BigDecimal qty; - private BigDecimal accruedint; - private String firmId; - private String clientCode; - private BigDecimal exchangeCommission; - private String classCode; private String operation; - private String issueAccount; - private String moneyAccount; - private String tradeType; - private Long daysToMatDate; - private String collateral; + private String classCode; + private LocalDate tradeDate; + private String secCode; + private BigDecimal accruedint; + private BigDecimal accruedint2; + private BigDecimal lowerDiscount; + private Long orderNum; + private BigDecimal price; + private BigDecimal price2; + private BigDecimal repoRate; + private BigDecimal repoValue; + private BigDecimal repo2Value; + private BigDecimal startDiscount; + private BigDecimal tsCommission; + private BigDecimal upperDiscount; + private BigDecimal value; + private BigDecimal yield; + private BigDecimal qty; + private BigDecimal qtyPcs; + private Instant tradeDateTime; + private Long repoTerm; + private BigDecimal clearingCommission; + private BigDecimal exchangeCommission; + private BigDecimal techCenterCommission; + private String account; + private String brokerRef; + private String clientCode; private String settleCode; + private String userId; + private String exchangeCode; + private String firmId; + private String firmName; + private String cpFirmId; + private String cpFirmName; + private String className; + private String secName; + private LocalDate settleDate; + private String settleCurrency; + private String tradeCurrency; + private Long tradeTimeMs; + private String bankAccId; + private String section; public Long getTradeNum() { return tradeNum; } - public void setTradeNum(Long value) { - this.tradeNum = value; + public void setTradeNum(Long tradeNum) { + this.tradeNum = tradeNum; + } + + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation; + } + + 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 value) { - this.secCode = value; + public void setSecCode(String secCode) { + this.secCode = secCode; } - public Instant getTradeDateTime() { - return tradeDateTime; + public BigDecimal getAccruedint() { + return accruedint; } - public void setTradeDateTime(Instant value) { - this.tradeDateTime = value; + public void setAccruedint(BigDecimal accruedint) { + this.accruedint = accruedint; } - public LocalDate getSettleDate() { - return settleDate; + public BigDecimal getAccruedint2() { + return accruedint2; } - public void setSettleDate(LocalDate value) { - this.settleDate = value; + public void setAccruedint2(BigDecimal accruedint2) { + this.accruedint2 = accruedint2; + } + + public BigDecimal getLowerDiscount() { + return lowerDiscount; + } + + public void setLowerDiscount(BigDecimal lowerDiscount) { + this.lowerDiscount = lowerDiscount; + } + + public Long getOrderNum() { + return orderNum; + } + + public void setOrderNum(Long orderNum) { + this.orderNum = orderNum; } public BigDecimal getPrice() { return price; } - public void setPrice(BigDecimal value) { - this.price = value; + public void setPrice(BigDecimal price) { + this.price = price; + } + + public BigDecimal getPrice2() { + return price2; + } + + public void setPrice2(BigDecimal price2) { + this.price2 = price2; + } + + public BigDecimal getRepoRate() { + return repoRate; + } + + public void setRepoRate(BigDecimal repoRate) { + this.repoRate = repoRate; + } + + 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 getStartDiscount() { + return startDiscount; + } + + public void setStartDiscount(BigDecimal startDiscount) { + this.startDiscount = startDiscount; + } + + public BigDecimal getTsCommission() { + return tsCommission; + } + + public void setTsCommission(BigDecimal tsCommission) { + this.tsCommission = tsCommission; + } + + public BigDecimal getUpperDiscount() { + return upperDiscount; + } + + public void setUpperDiscount(BigDecimal upperDiscount) { + this.upperDiscount = upperDiscount; } public BigDecimal getValue() { @@ -83,107 +204,211 @@ public class STrade extends SpcexObjectBase { this.value = value; } + public BigDecimal getYield() { + return yield; + } + + public void setYield(BigDecimal yield) { + this.yield = yield; + } + public BigDecimal getQty() { return qty; } - public void setQty(BigDecimal value) { - this.qty = value; + public void setQty(BigDecimal qty) { + this.qty = qty; } - public BigDecimal getAccruedint() { - return accruedint; + public BigDecimal getQtyPcs() { + return qtyPcs; } - public void setAccruedint(BigDecimal value) { - this.accruedint = value; + public void setQtyPcs(BigDecimal qtyPcs) { + this.qtyPcs = qtyPcs; } - public String getFirmId() { - return firmId; + public Instant getTradeDateTime() { + return tradeDateTime; } - public void setFirmId(String value) { - this.firmId = value; + public void setTradeDateTime(Instant tradeDateTime) { + this.tradeDateTime = tradeDateTime; } - public String getClientCode() { - return clientCode; + public Long getRepoTerm() { + return repoTerm; } - public void setClientCode(String value) { - this.clientCode = value; + public void setRepoTerm(Long repoTerm) { + this.repoTerm = repoTerm; + } + + public BigDecimal getClearingCommission() { + return clearingCommission; + } + + public void setClearingCommission(BigDecimal clearingCommission) { + this.clearingCommission = clearingCommission; } public BigDecimal getExchangeCommission() { return exchangeCommission; } - public void setExchangeCommission(BigDecimal value) { - this.exchangeCommission = value; + public void setExchangeCommission(BigDecimal exchangeCommission) { + this.exchangeCommission = exchangeCommission; } - public String getClassCode() { - return classCode; + public BigDecimal getTechCenterCommission() { + return techCenterCommission; } - public void setClassCode(String value) { - this.classCode = value; + public void setTechCenterCommission(BigDecimal techCenterCommission) { + this.techCenterCommission = techCenterCommission; } - public String getOperation() { - return operation; + public String getAccount() { + return account; } - public void setOperation(String value) { - this.operation = value; + public void setAccount(String account) { + this.account = account; } - public String getIssueAccount() { - return issueAccount; + public String getBrokerRef() { + return brokerRef; } - public void setIssueAccount(String value) { - this.issueAccount = value; + public void setBrokerRef(String brokerRef) { + this.brokerRef = brokerRef; } - public String getMoneyAccount() { - return moneyAccount; + public String getClientCode() { + return clientCode; } - public void setMoneyAccount(String value) { - this.moneyAccount = value; - } - - public String getTradeType() { - return tradeType; - } - - public void setTradeType(String value) { - this.tradeType = value; - } - - public Long getDaysToMatDate() { - return daysToMatDate; - } - - public void setDaysToMatDate(Long value) { - this.daysToMatDate = value; - } - - public String getCollateral() { - return collateral; - } - - public void setCollateral(String value) { - this.collateral = value; + public void setClientCode(String clientCode) { + this.clientCode = clientCode; } public String getSettleCode() { return settleCode; } - public void setSettleCode(String value) { - this.settleCode = value; + public void setSettleCode(String settleCode) { + this.settleCode = settleCode; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getExchangeCode() { + return exchangeCode; + } + + public void setExchangeCode(String exchangeCode) { + this.exchangeCode = exchangeCode; + } + + 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 getCpFirmId() { + return cpFirmId; + } + + public void setCpFirmId(String cpFirmId) { + this.cpFirmId = cpFirmId; + } + + public String getCpFirmName() { + return cpFirmName; + } + + public void setCpFirmName(String cpFirmName) { + this.cpFirmName = cpFirmName; + } + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public String getSecName() { + return secName; + } + + public void setSecName(String secName) { + this.secName = secName; + } + + public LocalDate getSettleDate() { + return settleDate; + } + + public void setSettleDate(LocalDate settleDate) { + this.settleDate = settleDate; + } + + public String getSettleCurrency() { + return settleCurrency; + } + + public void setSettleCurrency(String settleCurrency) { + this.settleCurrency = settleCurrency; + } + + public String getTradeCurrency() { + return tradeCurrency; + } + + public void setTradeCurrency(String tradeCurrency) { + this.tradeCurrency = tradeCurrency; + } + + public Long getTradeTimeMs() { + return tradeTimeMs; + } + + public void setTradeTimeMs(Long tradeTimeMs) { + this.tradeTimeMs = tradeTimeMs; + } + + public String getBankAccId() { + return bankAccId; + } + + public void setBankAccId(String bankAccId) { + this.bankAccId = bankAccId; + } + + public String getSection() { + return section; + } + + public void setSection(String section) { + this.section = section; } } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/Session.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/Session.java index 71b854668..718c33301 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/Session.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/Session.java @@ -9,6 +9,11 @@ public class Session extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; private LocalDate clearingDate; private String sessionStatus; + private Long companyId; + private Long securityId; + private Long userId; + private String section; + private String sessionType; public LocalDate getClearingDate() { return clearingDate; @@ -25,4 +30,44 @@ public class Session extends BusinessObject { public void setSessionStatus(String sessionStatus) { this.sessionStatus = sessionStatus; } + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long companyId) { + this.companyId = companyId; + } + + public Long getSecurityId() { + return securityId; + } + + public void setSecurityId(Long securityId) { + this.securityId = securityId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getSection() { + return section; + } + + public void setSection(String section) { + this.section = section; + } + + public String getSessionType() { + return sessionType; + } + + public void setSessionType(String sessionType) { + this.sessionType = sessionType; + } } \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/SessionHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/SessionHistory.java new file mode 100644 index 000000000..6be919fb3 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/SessionHistory.java @@ -0,0 +1,28 @@ +package ru.clearing.classes.statics.data.misc; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessEvent; + +import java.io.Serial; + +/** + * Изменение состояния объекта Клиринговая сессия + *

+ * DB table: SESSION_HISTORY + **/ +public class SessionHistory extends BusinessEvent { + @Serial + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Session object; + + @Override + public Session getObject() { + return object; + } + + @Override + public void setObject(Session object) { + this.object = object; + } +} \ No newline at end of file diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsAssetsCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsAssetsCreator.java index af9a50363..e548572eb 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsAssetsCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsAssetsCreator.java @@ -40,7 +40,7 @@ public class LiabilitiesClaimsAssetsCreator { private LiabilitiesClaimsAssets createLCA(ExecutionDeposit executionDeposit, Account account) { LiabilitiesClaimsAssets liabilitiesClaimsAssets = new LiabilitiesClaimsAssets(); liabilitiesClaimsAssets.setCompanyId(executionDeposit.getCompanyId()); - liabilitiesClaimsAssets.setAccountId(executionDeposit.getAccountId()); +// todo new fields liabilitiesClaimsAssets.setAccountId(executionDeposit.getAccountId()); liabilitiesClaimsAssets.setAccountType(account.getAccountType()); liabilitiesClaimsAssets.setAccount(account.getAccount()); liabilitiesClaimsAssets.setCurrency(executionDeposit.getSettlementCurrency()); diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/ClearingServiceTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/ClearingServiceTest.java index fe0610a68..972719e60 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/ClearingServiceTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/ClearingServiceTest.java @@ -392,8 +392,8 @@ class ClearingServiceTest extends AbstractClearingTest { executionDeposit.setDuration(1L); executionDeposit.setFirstLegSettlementDate(dtF); executionDeposit.setSecondLegSettlementDate(dtS); - executionDeposit.setFirstLegSettlementCode(LocalDate.now()); - executionDeposit.setSecondLegSettlementCode(LocalDate.now()); + executionDeposit.setFirstLegSettlementCode("leg1c"); + executionDeposit.setSecondLegSettlementCode("legcc"); executionDeposit.setSecurityFullName("full"); executionDeposit.setSecuritySymbol("symbol"); executionDeposit.setSecurityId(securityId); diff --git a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql index 61510c946..9123792cb 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql @@ -1,5 +1,5 @@ --- DB version: 3.5.0.18 --- DATA version: 3.5.0.2 +-- DB version: 3.5.0.19 +-- DATA version: 3.5.0.3 /* Dictionaries */ INSERT INTO ALLOWED_DICTIONARY(ID, CODE, NAME) values (1, 'ALWD', 'Разрешено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -160,6 +160,8 @@ INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (17, 'RG INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (18, 'UUID', 'Идентификатор во внешней системе', 'Внешний идентификатор') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; +INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (19, 'RDPZ', 'Требуется получение документа о подтверждении открытия депозитного счета', 'Подтверждение депозитного счета') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; + INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (1, 'RPRT', 'Отчетная организация') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (2, 'CLRH', 'Клиринговая организация') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -448,6 +450,32 @@ INSERT INTO PARENT_DICTIONARY(ID, CODE, NAME) values (2, 'PLNR', 'Расписа INSERT INTO PARENT_DICTIONARY(ID, CODE, NAME) values (3, 'CLND', 'Календарь') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'ACTV', 'Сессия активна') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'CLRN', 'Идет клиринг') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'CLOS', 'Клиринг завершен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'FINL', 'Итоговая клиринговая сессия') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'MEDM', 'Промежуточная клиринговая сессия') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'XDEP', 'Промежуточная возврат депозитов') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'IPOT', 'Первичные торги Т0') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (5, 'TRDT', 'Вторичные торги Т0') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (6, 'LIQU', 'Ликвидационное прекращение обязательств') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (7, 'IPOB', 'Первичные торги Bn') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (8, 'IPO0', 'Первичные торги B0') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (1, 'BUY', 'Разместить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (2, 'SELL', 'Привлечь') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO COURIER_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STHS', 'ЭДО с Расчетной Организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'STLD', 'Рассчитан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -482,10 +510,6 @@ INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'IN', 'Зач INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (2, 'OUT', 'Списание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (1, 'BUY', 'Разместить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (2, 'SELL', 'Привлечь') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - INSERT INTO STATEMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'FULL', 'Установка суммы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO STATEMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'INCR', 'Изменение суммы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -528,12 +552,6 @@ INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (2, '1617', 'Вх INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (3, '0910', 'Входящий ДФ-09/Исходящий ДФ-10') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'ACTV', 'Сессия активна') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'CLRN', 'Идет клиринг') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO SESSION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'CLOS', 'Клиринг завершен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - INSERT INTO OBJECT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STMT', 'STATEMENT') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO OBJECT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'VFRS', 'verificationResult') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; 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 78382efaa..91d9d0733 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -1,4 +1,4 @@ --- DB version: 3.5.0.18 +-- DB version: 3.5.0.19 /* Dictionaries */ -- allowed - Справочник признаков допустимости использования объектов @@ -443,6 +443,39 @@ COMMENT ON COLUMN PARENT_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN PARENT_DICTIONARY.NAME IS 'Наименование'; +-- sessionStatus - Справочник статусов клиринговых сессий +DROP TABLE IF EXISTS SESSION_STATUS_DICTIONARY; +CREATE TABLE SESSION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE SESSION_STATUS_DICTIONARY IS 'Справочник статусов клиринговых сессий'; + +COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.NAME IS 'Наименование'; + +-- sessionType - Справочник типов клиринговых сессий +DROP TABLE IF EXISTS SESSION_TYPE_DICTIONARY; +CREATE TABLE SESSION_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE SESSION_TYPE_DICTIONARY IS 'Справочник типов клиринговых сессий'; + +COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.NAME IS 'Наименование'; + +-- moneyFlowSide - Справочник направлений +DROP TABLE IF EXISTS MONEY_FLOW_SIDE_DICTIONARY; +CREATE TABLE MONEY_FLOW_SIDE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); +COMMENT ON TABLE MONEY_FLOW_SIDE_DICTIONARY IS 'Справочник направлений'; + +COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.NAME IS 'Значение'; + -- chargeDirection - Направление начисления комиссии DROP TABLE IF EXISTS CHARGE_DIRECTION_DICTIONARY; CREATE TABLE CHARGE_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); @@ -498,17 +531,6 @@ COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.NAME IS 'Наименование'; --- moneyFlowSide - Направление заявки -DROP TABLE IF EXISTS MONEY_FLOW_SIDE_DICTIONARY; -CREATE TABLE MONEY_FLOW_SIDE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE MONEY_FLOW_SIDE_DICTIONARY IS 'Направление заявки'; - -COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.NAME IS 'Значение'; - -- inOutDirection - Справочник значений направления денежного потока DROP TABLE IF EXISTS IN_OUT_DIRECTION_DICTIONARY; CREATE TABLE IN_OUT_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); @@ -619,17 +641,6 @@ COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.NAME IS 'Тип записи'; --- sessionStatus - Справочник статусов клиринговой сессии -DROP TABLE IF EXISTS SESSION_STATUS_DICTIONARY; -CREATE TABLE SESSION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE SESSION_STATUS_DICTIONARY IS 'Справочник статусов клиринговой сессии'; - -COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.NAME IS 'Наименование'; - -- objectType - Справочник типов объектов DROP TABLE IF EXISTS OBJECT_TYPE_DICTIONARY; CREATE TABLE OBJECT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); @@ -2227,6 +2238,426 @@ COMMENT ON COLUMN LAUNCHER.CREATED_AT IS 'Дата-время создания COMMENT ON COLUMN LAUNCHER.UPDATED_AT IS 'Дата-время изменения записи'; +-- session - Клиринговая сессия +DROP TABLE IF EXISTS SESSION; +CREATE TABLE SESSION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint, SECTION varchar(4), SESSION_TYPE varchar(4)); +COMMENT ON TABLE SESSION IS 'Клиринговая сессия'; + +COMMENT ON COLUMN SESSION.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN SESSION.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN SESSION.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN SESSION.CLEARING_DATE IS 'Дата'; + +COMMENT ON COLUMN SESSION.SESSION_STATUS IS 'Код статуса клиринговой сессии (linked to sessionStatus)'; + +COMMENT ON COLUMN SESSION.COMPANY_ID IS 'Идентификатор инициатора торгов (linked to company)'; + +COMMENT ON COLUMN SESSION.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; + +COMMENT ON COLUMN SESSION.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; + +COMMENT ON COLUMN SESSION.SECTION IS 'Код наименования секции (linked to section)'; + +COMMENT ON COLUMN SESSION.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; + + +-- History log of session - Клиринговая сессия +DROP TABLE IF EXISTS SESSION_HISTORY; +CREATE TABLE SESSION_HISTORY(SESSION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint, SECTION varchar(4), SESSION_TYPE varchar(4)); +COMMENT ON TABLE SESSION_HISTORY IS 'История изменений таблицы session'; +COMMENT ON COLUMN SESSION_HISTORY.SESSION_ID IS 'Идентификатор записи в таблице SESSION'; +COMMENT ON COLUMN SESSION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; +COMMENT ON COLUMN SESSION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; +COMMENT ON COLUMN SESSION_HISTORY.EVENT_TYPE IS 'Тип изменения'; + +COMMENT ON COLUMN SESSION_HISTORY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN SESSION_HISTORY.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN SESSION_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN SESSION_HISTORY.CLEARING_DATE IS 'Дата'; + +COMMENT ON COLUMN SESSION_HISTORY.SESSION_STATUS IS 'Код статуса клиринговой сессии (linked to sessionStatus)'; + +COMMENT ON COLUMN SESSION_HISTORY.COMPANY_ID IS 'Идентификатор инициатора торгов (linked to company)'; + +COMMENT ON COLUMN SESSION_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; + +COMMENT ON COLUMN SESSION_HISTORY.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; + +COMMENT ON COLUMN SESSION_HISTORY.SECTION IS 'Код наименования секции (linked to section)'; + +COMMENT ON COLUMN SESSION_HISTORY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; + +-- sTrades - Сделки из Торговой системы +DROP TABLE IF EXISTS S_TRADES; +CREATE TABLE S_TRADES(ID bigint PRIMARY KEY, TRADE_NUM bigint, OPERATION varchar(40), CLASS_CODE varchar(255), TRADE_DATE date, SEC_CODE varchar(255), ACCRUEDINT numeric(72,18), ACCRUEDINT2 numeric(72,18), LOWER_DISCOUNT numeric(72,18), ORDER_NUM bigint, PRICE numeric(72,18), PRICE2 numeric(72,18), REPO_RATE numeric(72,18), REPO_VALUE numeric(72,18), REPO2_VALUE numeric(72,18), START_DISCOUNT numeric(72,18), TS_COMMISSION numeric(72,18), UPPER_DISCOUNT numeric(72,18), VALUE numeric(72,18), YIELD numeric(72,18), QTY numeric(72,18), QTY_PCS numeric(72,18), TRADE_DATE_TIME timestamp, REPO_TERM bigint, CLEARING_COMMISSION numeric(72,18), EXCHANGE_COMMISSION numeric(72,18), TECH_CENTER_COMMISSION numeric(72,18), ACCOUNT varchar(50), BROKER_REF varchar(34), CLIENT_CODE varchar(255), SETTLE_CODE varchar(50), USER_ID varchar(32), EXCHANGE_CODE varchar(64), FIRM_ID varchar(255), FIRM_NAME varchar(255), CP_FIRM_ID varchar(255), CP_FIRM_NAME varchar(255), CLASS_NAME varchar(255), SEC_NAME varchar(255), SETTLE_DATE date, SETTLE_CURRENCY varchar(4), TRADE_CURRENCY varchar(4), TRADE_TIME_MS bigint, BANK_ACC_ID varchar(12), SECTION varchar(4)); +COMMENT ON TABLE S_TRADES IS 'Сделки из Торговой системы'; + +COMMENT ON COLUMN S_TRADES.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_TRADES.TRADE_NUM IS 'Номер сделки'; + +COMMENT ON COLUMN S_TRADES.OPERATION IS 'Направленность сделки (BUY или SELL)'; + +COMMENT ON COLUMN S_TRADES.CLASS_CODE IS 'Код класса инструментов'; + +COMMENT ON COLUMN S_TRADES.TRADE_DATE IS 'Дата торговой сессии'; + +COMMENT ON COLUMN S_TRADES.SEC_CODE IS 'Код инструмента'; + +COMMENT ON COLUMN S_TRADES.ACCRUEDINT IS 'Накопленный купонный доход'; + +COMMENT ON COLUMN S_TRADES.ACCRUEDINT2 IS 'Доход(%) на дату выкупа'; + +COMMENT ON COLUMN S_TRADES.LOWER_DISCOUNT IS 'Нижний дисконт(%)'; + +COMMENT ON COLUMN S_TRADES.ORDER_NUM IS 'Номер заявки'; + +COMMENT ON COLUMN S_TRADES.PRICE IS 'Цена сделки'; + +COMMENT ON COLUMN S_TRADES.PRICE2 IS 'Цена выкупа второй части РЕПО'; + +COMMENT ON COLUMN S_TRADES.REPO_RATE IS 'Ставка РЕПО (%)'; + +COMMENT ON COLUMN S_TRADES.REPO_VALUE IS 'Сумма РЕПО'; + +COMMENT ON COLUMN S_TRADES.REPO2_VALUE IS 'Объем сделки выкупа РЕПО, рублей'; + +COMMENT ON COLUMN S_TRADES.START_DISCOUNT IS 'Начальный дисконт(%)'; + +COMMENT ON COLUMN S_TRADES.TS_COMMISSION IS 'Комиссия торговой системы'; + +COMMENT ON COLUMN S_TRADES.UPPER_DISCOUNT IS 'Верхний дисконт(%)'; + +COMMENT ON COLUMN S_TRADES.VALUE IS 'Объем сделки без учета комиссионного сбора биржи и % дохода'; + +COMMENT ON COLUMN S_TRADES.YIELD IS 'Доходность'; + +COMMENT ON COLUMN S_TRADES.QTY IS 'Количество бумаг в лотах'; + +COMMENT ON COLUMN S_TRADES.QTY_PCS IS 'Количество бумаг в штуках'; + +COMMENT ON COLUMN S_TRADES.TRADE_DATE_TIME IS 'Дата и время сделки'; + +COMMENT ON COLUMN S_TRADES.REPO_TERM IS 'Срок РЕПО'; + +COMMENT ON COLUMN S_TRADES.CLEARING_COMMISSION IS 'Клиринговая комиссия. Параметр сделок на МБ'; + +COMMENT ON COLUMN S_TRADES.EXCHANGE_COMMISSION IS 'Комиссия Фондовой биржи. Параметр сделок на МБ'; + +COMMENT ON COLUMN S_TRADES.TECH_CENTER_COMMISSION IS 'Комиссия Технического центра. Параметр сделок на МБ'; + +COMMENT ON COLUMN S_TRADES.ACCOUNT IS 'Торговый счет'; + +COMMENT ON COLUMN S_TRADES.BROKER_REF IS 'Комментарий, обычно: код клиента>/номер поручения>'; + +COMMENT ON COLUMN S_TRADES.CLIENT_CODE IS 'Код участника торгов = Код участника клиринга = Код участника расчетов'; + +COMMENT ON COLUMN S_TRADES.SETTLE_CODE IS 'Код расчетов по сделке'; + +COMMENT ON COLUMN S_TRADES.USER_ID IS 'Идентификатор трейдера'; + +COMMENT ON COLUMN S_TRADES.EXCHANGE_CODE IS 'Идентификатор биржи'; + +COMMENT ON COLUMN S_TRADES.FIRM_ID IS 'Трейдер'; + +COMMENT ON COLUMN S_TRADES.FIRM_NAME IS 'Организация трейдера'; + +COMMENT ON COLUMN S_TRADES.CP_FIRM_ID IS 'Партнер'; + +COMMENT ON COLUMN S_TRADES.CP_FIRM_NAME IS 'Организация партнера'; + +COMMENT ON COLUMN S_TRADES.CLASS_NAME IS 'Класс инструмента'; + +COMMENT ON COLUMN S_TRADES.SEC_NAME IS 'Полное наименование инструмента'; + +COMMENT ON COLUMN S_TRADES.SETTLE_DATE IS 'Дата расчетов'; + +COMMENT ON COLUMN S_TRADES.SETTLE_CURRENCY IS 'Валюта расчетов'; + +COMMENT ON COLUMN S_TRADES.TRADE_CURRENCY IS 'Валюта сделки'; + +COMMENT ON COLUMN S_TRADES.TRADE_TIME_MS IS 'Микросекунды времени сделки'; + +COMMENT ON COLUMN S_TRADES.BANK_ACC_ID IS 'Идентификатор расчетного счета/кода в клиринговой организации'; + +COMMENT ON COLUMN S_TRADES.SECTION IS 'Код наименования секции (linked to section)'; + +-- executionDeposit - Сделки +DROP TABLE IF EXISTS EXECUTION_DEPOSIT; +CREATE TABLE EXECUTION_DEPOSIT(EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE EXECUTION_DEPOSIT IS 'Сделки'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.TRADING_DATE IS 'Дата заключения сделки'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.MARKET IS 'Код секции финансового инструмента (linked to market)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.PRICE IS 'Ставка по депозиту'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.LOTS IS 'Количество лотов'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.QUANTITY IS 'Количество штук'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_AMOUNT IS 'Объем сделки'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_AMOUNT IS 'Объем возврата'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.INTEREST_AMOUNT IS 'Объем процентов'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SIDE IS 'Код направления сделки (linked to moneyFlowSide)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SETTLEMENT_CURRENCY IS 'Код валюты расчетов по инструменту (linked to currencyCode)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.COMPANY_ID IS 'Идентификатор компании (linked to company)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.DURATION IS 'Срок, дней'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_CODE IS 'Код расчетов при размещении'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_CODE IS 'Код расчетов при возврате'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_FULL_NAME IS 'Наименование инструмента'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to moneyMarketSecurity)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.CONTRACT IS 'Продукт'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.SESSION_ID IS 'Сессия (linked to session)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT.CLEARING_DATE IS 'Дата клиринга'; + + +-- History log of executionDeposit - Сделки +DROP TABLE IF EXISTS EXECUTION_DEPOSIT_HISTORY; +CREATE TABLE EXECUTION_DEPOSIT_HISTORY(EXECUTION_DEPOSIT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE EXECUTION_DEPOSIT_HISTORY IS 'История изменений таблицы executionDeposit'; +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EXECUTION_DEPOSIT_ID IS 'Идентификатор записи в таблице EXECUTION_DEPOSIT'; +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EVENT_TYPE IS 'Тип изменения'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.TRADING_DATE IS 'Дата заключения сделки'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.MARKET IS 'Код секции финансового инструмента (linked to market)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.PRICE IS 'Ставка по депозиту'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.LOTS IS 'Количество лотов'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.QUANTITY IS 'Количество штук'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.FIRST_LEG_AMOUNT IS 'Объем сделки'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECOND_LEG_AMOUNT IS 'Объем возврата'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.INTEREST_AMOUNT IS 'Объем процентов'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SIDE IS 'Код направления сделки (linked to moneyFlowSide)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SETTLEMENT_CURRENCY IS 'Код валюты расчетов по инструменту (linked to currencyCode)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.DURATION IS 'Срок, дней'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.FIRST_LEG_SETTLEMENT_CODE IS 'Код расчетов при размещении'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECOND_LEG_SETTLEMENT_CODE IS 'Код расчетов при возврате'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECURITY_FULL_NAME IS 'Наименование инструмента'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to moneyMarketSecurity)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.CONTRACT IS 'Продукт'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SESSION_ID IS 'Сессия (linked to session)'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.CLEARING_DATE IS 'Дата клиринга'; + +-- executionFond - Сделки на Фондовой секции +DROP TABLE IF EXISTS EXECUTION_FOND; +CREATE TABLE EXECUTION_FOND(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, EXCHANGE_EXECUTION_ID bigint, SIDE varchar(4), MARKET varchar(4), TRADING_DATE date, SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, INTEREST_AMOUNT numeric(72,2), EXCHANGE_ORDER_ID bigint, PRICE numeric(72,18), SETTLEMENT_AMOUNT numeric(72,2), LOTS numeric(72,2), QUANTITY numeric(72,2), EXCHANGE_EXECUTION_TIME timestamp, DURATION bigint, TRADING_CLEARING_REGISTRY_ID bigint, COMMENT varchar(255), CLIENT_CODE_ID bigint, SETTLEMENT_CODE varchar(12), COMPANY_ID bigint, COUNTER_PARTY_ID bigint, SECURITY_FULL_NAME varchar(255), SETTLEMENT_DATE date, SETTLEMENT_CURRENCY varchar(4), EXCHANGE_EXECUTION_MICROSECONDS timestamp, COVERAGE_STATUS varchar(4), SESSION_ID bigint); +COMMENT ON TABLE EXECUTION_FOND IS 'Сделки на Фондовой секции'; + +COMMENT ON COLUMN EXECUTION_FOND.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN EXECUTION_FOND.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN EXECUTION_FOND.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN EXECUTION_FOND.CLEARING_DATE IS 'Дата клиринга'; + +COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_FOND.SIDE IS 'Код направления сделки (linked to moneyFlowSide)'; + +COMMENT ON COLUMN EXECUTION_FOND.MARKET IS 'Код секции финансового инструмента (linked to market)'; + +COMMENT ON COLUMN EXECUTION_FOND.TRADING_DATE IS 'Дата заключения сделки'; + +COMMENT ON COLUMN EXECUTION_FOND.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; + +COMMENT ON COLUMN EXECUTION_FOND.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; + +COMMENT ON COLUMN EXECUTION_FOND.INTEREST_AMOUNT IS 'Объем процентов'; + +COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_ORDER_ID IS 'Идентификационный номер заявки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_FOND.PRICE IS 'Ставка по депозиту'; + +COMMENT ON COLUMN EXECUTION_FOND.SETTLEMENT_AMOUNT IS 'Объем сделки'; + +COMMENT ON COLUMN EXECUTION_FOND.LOTS IS 'Количество лотов'; + +COMMENT ON COLUMN EXECUTION_FOND.QUANTITY IS 'Количество штук'; + +COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_FOND.DURATION IS 'Срок, дней'; + +COMMENT ON COLUMN EXECUTION_FOND.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; + +COMMENT ON COLUMN EXECUTION_FOND.COMMENT IS 'Комментарий'; + +COMMENT ON COLUMN EXECUTION_FOND.CLIENT_CODE_ID IS 'Идентификатор кода клиента'; + +COMMENT ON COLUMN EXECUTION_FOND.SETTLEMENT_CODE IS 'Код расчетов при размещении'; + +COMMENT ON COLUMN EXECUTION_FOND.COMPANY_ID IS 'Идентификатор компании (linked to company)'; + +COMMENT ON COLUMN EXECUTION_FOND.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; + +COMMENT ON COLUMN EXECUTION_FOND.SECURITY_FULL_NAME IS 'Наименование инструмента'; + +COMMENT ON COLUMN EXECUTION_FOND.SETTLEMENT_DATE IS 'Дата расчетов'; + +COMMENT ON COLUMN EXECUTION_FOND.SETTLEMENT_CURRENCY IS 'Код валюты расчетов по инструменту (linked to currencyCode)'; + +COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_EXECUTION_MICROSECONDS IS 'Микросекунды заключения сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_FOND.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; + +COMMENT ON COLUMN EXECUTION_FOND.SESSION_ID IS 'Идентификатор сессии (linked to session)'; + + +-- History log of executionFond - Сделки на Фондовой секции +DROP TABLE IF EXISTS EXECUTION_FOND_HISTORY; +CREATE TABLE EXECUTION_FOND_HISTORY(EXECUTION_FOND_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, EXCHANGE_EXECUTION_ID bigint, SIDE varchar(4), MARKET varchar(4), TRADING_DATE date, SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, INTEREST_AMOUNT numeric(72,2), EXCHANGE_ORDER_ID bigint, PRICE numeric(72,18), SETTLEMENT_AMOUNT numeric(72,2), LOTS numeric(72,2), QUANTITY numeric(72,2), EXCHANGE_EXECUTION_TIME timestamp, DURATION bigint, TRADING_CLEARING_REGISTRY_ID bigint, COMMENT varchar(255), CLIENT_CODE_ID bigint, SETTLEMENT_CODE varchar(12), COMPANY_ID bigint, COUNTER_PARTY_ID bigint, SECURITY_FULL_NAME varchar(255), SETTLEMENT_DATE date, SETTLEMENT_CURRENCY varchar(4), EXCHANGE_EXECUTION_MICROSECONDS timestamp, COVERAGE_STATUS varchar(4), SESSION_ID bigint); +COMMENT ON TABLE EXECUTION_FOND_HISTORY IS 'История изменений таблицы executionFond'; +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXECUTION_FOND_ID IS 'Идентификатор записи в таблице EXECUTION_FOND'; +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EVENT_TIME IS 'Дата и время изменения'; +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EVENT_TYPE IS 'Тип изменения'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.CLEARING_DATE IS 'Дата клиринга'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SIDE IS 'Код направления сделки (linked to moneyFlowSide)'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.MARKET IS 'Код секции финансового инструмента (linked to market)'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.TRADING_DATE IS 'Дата заключения сделки'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.INTEREST_AMOUNT IS 'Объем процентов'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_ORDER_ID IS 'Идентификационный номер заявки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.PRICE IS 'Ставка по депозиту'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SETTLEMENT_AMOUNT IS 'Объем сделки'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.LOTS IS 'Количество лотов'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.QUANTITY IS 'Количество штук'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.DURATION IS 'Срок, дней'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор торгово-клирингового регистра (linked to tradingClearingRegistry)'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COMMENT IS 'Комментарий'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.CLIENT_CODE_ID IS 'Идентификатор кода клиента'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SETTLEMENT_CODE IS 'Код расчетов при размещении'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COMPANY_ID IS 'Идентификатор компании (linked to company)'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COUNTER_PARTY_ID IS 'Идентификатор компании-партнера, с которой заключена сделка (linked to company)'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SECURITY_FULL_NAME IS 'Наименование инструмента'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SETTLEMENT_DATE IS 'Дата расчетов'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SETTLEMENT_CURRENCY IS 'Код валюты расчетов по инструменту (linked to currencyCode)'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_EXECUTION_MICROSECONDS IS 'Микросекунды заключения сделки в Торговой системе'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; + +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SESSION_ID IS 'Идентификатор сессии (linked to session)'; + -- clearmemberRegister - Реестр участников клиринга DROP TABLE IF EXISTS CLEARMEMBER_REGISTER; CREATE TABLE CLEARMEMBER_REGISTER(TRADING_CODE varchar(255), CLEARING_CODE varchar(255), FULL_NAME varchar(255), SHORT_NAME varchar(255), CATEGORY_LIST varchar(4), CORPORATION_SOLE varchar(4), ACCOUNT varchar(50), BANK bigint, BANK_NAME varchar(255), INN varchar(255), BIC varchar(255), OGRN varchar(255), CPP varchar(255), OCPO varchar(255), CONTRACT_NUMBER varchar(255), CONTRACT_DATE date, REGISTRATION_DATE date, SYSTEM_DATE date, ACCESS_DATE timestamp, SUSPENTION_DATE timestamp, REOPENING_DATE timestamp, CLOSE_DATE timestamp, EXCLUSION_DATE timestamp, ADDRESS varchar(255), EMAIL varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); @@ -2452,69 +2883,6 @@ COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Статус выгру COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; --- executionDeposit - Сделки -DROP TABLE IF EXISTS EXECUTION_DEPOSIT; -CREATE TABLE EXECUTION_DEPOSIT(EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, ACCOUNT_ID bigint, MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE date, SECOND_LEG_SETTLEMENT_CODE date, SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, COUNTER_PARTY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE EXECUTION_DEPOSIT IS 'Сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.ACCOUNT_ID IS 'Торговый счет (linked to account)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.MARKET IS 'Секция финансового инструмента (linked to market)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.PRICE IS 'Ставка по депозиту'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.LOTS IS 'Количество лотов'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.QUANTITY IS 'Количество штук'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_AMOUNT IS 'Объем сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_AMOUNT IS 'Объем возврата'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.INTEREST_AMOUNT IS 'Объем процентов'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SIDE IS 'Направление сделки (linked to moneyFlowSide)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SETTLEMENT_CURRENCY IS 'Валюта расчетов по инструменту (linked to currencyCode)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.COMPANY_ID IS 'Название компании (linked to company)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.DURATION IS 'Срок, дней'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_CODE IS 'Код расчетов при размещении'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_CODE IS 'Код расчетов при возврате'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_ID IS 'Финансовый инструмент (linked to moneyMarketSecurity)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_ID IS 'Имя компании-партнера, с которым заключена сделка (linked to company)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.COVERAGE_STATUS IS 'Cтатус достаточности обеспечения (linked to allowed)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SESSION_ID IS 'Наименование сессии (linked to moneyMarketSession)'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.CREATED_AT IS 'Время регистрации сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.UPDATED_AT IS 'Время изменения сделки'; - -COMMENT ON COLUMN EXECUTION_DEPOSIT.CLEARING_DATE IS 'Дата клиринга'; - -- dealRegister - Реестр сделок DROP TABLE IF EXISTS DEAL_REGISTER; CREATE TABLE DEAL_REGISTER(EXECUTION_ID bigint, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, ACCOUNT varchar(50), MARKET varchar(4), PRICE numeric(72,18), AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, COUNTER_PARTY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); @@ -3892,51 +4260,6 @@ COMMENT ON COLUMN S_DF18.GENERATION_ID IS 'Идентификатор взаим COMMENT ON COLUMN S_DF18.IN_S_DF12_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; --- s_trade - Сделки из Торговой системы -DROP TABLE IF EXISTS S_TRADE; -CREATE TABLE S_TRADE(ID bigint PRIMARY KEY, TRADE_NUM bigint, SEC_CODE varchar(255), TRADE_DATE_TIME timestamp, SETTLE_DATE date, PRICE numeric(72,18), VALUE numeric(72,2), QTY numeric(72,2), ACCRUEDINT numeric(72,18), FIRM_ID varchar(255), CLIENT_CODE varchar(255), EXCHANGE_COMMISSION numeric(72,2), CLASS_CODE varchar(255), OPERATION varchar(255), ISSUE_ACCOUNT varchar(50), MONEY_ACCOUNT varchar(50), TRADE_TYPE varchar(50), DAYS_TO_MAT_DATE bigint, COLLATERAL varchar(50), SETTLE_CODE varchar(50)); -COMMENT ON TABLE S_TRADE IS 'Сделки из Торговой системы'; - -COMMENT ON COLUMN S_TRADE.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_TRADE.TRADE_NUM IS 'Номер сделки'; - -COMMENT ON COLUMN S_TRADE.SEC_CODE IS 'Код ценной бумаги'; - -COMMENT ON COLUMN S_TRADE.TRADE_DATE_TIME IS 'Дата-время сделки'; - -COMMENT ON COLUMN S_TRADE.SETTLE_DATE IS 'Плановая дата исполнения сделки'; - -COMMENT ON COLUMN S_TRADE.PRICE IS 'Цена сделки'; - -COMMENT ON COLUMN S_TRADE.VALUE IS 'Сумма сделки'; - -COMMENT ON COLUMN S_TRADE.QTY IS 'Количество лотов по сделке'; - -COMMENT ON COLUMN S_TRADE.ACCRUEDINT IS 'НКД за 1 ценную бумагу'; - -COMMENT ON COLUMN S_TRADE.FIRM_ID IS 'ID клиента в КС'; - -COMMENT ON COLUMN S_TRADE.CLIENT_CODE IS 'Код участника торгов = Код участника клиринга = Код участника расчетов'; - -COMMENT ON COLUMN S_TRADE.EXCHANGE_COMMISSION IS 'Комиссия по сделке'; - -COMMENT ON COLUMN S_TRADE.CLASS_CODE IS 'Код класса сделки из новой ТС'; - -COMMENT ON COLUMN S_TRADE.OPERATION IS 'Тип плеча (Купля/Продажа)'; - -COMMENT ON COLUMN S_TRADE.ISSUE_ACCOUNT IS 'Счет для учета ценной бумаги'; - -COMMENT ON COLUMN S_TRADE.MONEY_ACCOUNT IS 'Счет для учета денежных средств'; - -COMMENT ON COLUMN S_TRADE.TRADE_TYPE IS 'Первичное размещение/торги'; - -COMMENT ON COLUMN S_TRADE.DAYS_TO_MAT_DATE IS 'Количество дней до погашения'; - -COMMENT ON COLUMN S_TRADE.COLLATERAL IS 'Признак залога (не используется)'; - -COMMENT ON COLUMN S_TRADE.SETTLE_CODE IS 'Код периода сделки из новой ТС'; - -- notification - Сообщения DROP TABLE IF EXISTS NOTIFICATION; CREATE TABLE NOTIFICATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID timestamp, NOTIFICATION_STATUS varchar(4)); @@ -4017,41 +4340,6 @@ COMMENT ON COLUMN VERIFICATION_RESULT.CREATED_AT IS 'Дата и время со COMMENT ON COLUMN VERIFICATION_RESULT.UPDATED_AT IS 'Дата и время изменения записи'; --- session - Клиринговая сессия -DROP TABLE IF EXISTS SESSION; -CREATE TABLE SESSION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_STATUS varchar(4)); -COMMENT ON TABLE SESSION IS 'Клиринговая сессия'; - -COMMENT ON COLUMN SESSION.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SESSION.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN SESSION.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN SESSION.CLEARING_DATE IS 'Дата'; - -COMMENT ON COLUMN SESSION.SESSION_STATUS IS 'Статус клиринговой сессии (linked to sessionStatus)'; - - --- History log of session - Клиринговая сессия -DROP TABLE IF EXISTS SESSION_HISTORY; -CREATE TABLE SESSION_HISTORY(SESSION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_STATUS varchar(4)); -COMMENT ON TABLE SESSION_HISTORY IS 'История изменений таблицы session'; -COMMENT ON COLUMN SESSION_HISTORY.SESSION_ID IS 'Идентификатор записи в таблице SESSION'; -COMMENT ON COLUMN SESSION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN SESSION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN SESSION_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN SESSION_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN SESSION_HISTORY.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN SESSION_HISTORY.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN SESSION_HISTORY.CLEARING_DATE IS 'Дата'; - -COMMENT ON COLUMN SESSION_HISTORY.SESSION_STATUS IS 'Статус клиринговой сессии (linked to sessionStatus)'; - -- moneyMarketSession - Сессия денежного рынка DROP TABLE IF EXISTS MONEY_MARKET_SESSION; CREATE TABLE MONEY_MARKET_SESSION(ID bigint PRIMARY KEY, COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint); diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionStatusDictionary.java new file mode 100644 index 000000000..c09164d32 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionStatusDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник статусов клиринговых сессий + * + * Dictionary DB table: SESSION_STATUS_DICTIONARY + **/ +public class SessionStatusDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionTypeDictionary.java new file mode 100644 index 000000000..93624f60d --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов клиринговых сессий + * + * Dictionary DB table: SESSION_TYPE_DICTIONARY + **/ +public class SessionTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ExecutionDepositHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ExecutionDepositHistoryMapStore.java new file mode 100644 index 000000000..8ef0d462f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ExecutionDepositHistoryMapStore.java @@ -0,0 +1,82 @@ +package ru.spcex.clearing.imdg.businessevent; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.execution.ExecutionDeposit; +import ru.clearing.classes.statics.data.execution.ExecutionDepositHistory; +import ru.spcex.clearing.imdg.base.TemplateEventMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +@Component +public class ExecutionDepositHistoryMapStore extends TemplateEventMapStore { + + public ExecutionDepositHistoryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ExecutionDepositHistory; + } + + @Override + public String getTableName() { + return "EXECUTION_DEPOSIT_HISTORY"; + } + + @Override + public String[] getFields() { + return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE", + "EXECUTION_DEPOSIT_ID", "CREATED_AT", "UPDATED_AT", "EXCHANGE_EXECUTION_ID", "EXCHANGE_EXECUTION_TIME", + "TRADING_DATE", "TRADING_CLEARING_REGISTRY_ID", "MARKET", "PRICE", "LOTS", "QUANTITY", "FIRST_LEG_AMOUNT", + "SECOND_LEG_AMOUNT", "INTEREST_AMOUNT", "SIDE", "SETTLEMENT_CURRENCY", "COMPANY_ID", "DURATION", + "FIRST_LEG_SETTLEMENT_DATE", "SECOND_LEG_SETTLEMENT_DATE", "FIRST_LEG_SETTLEMENT_CODE", + "SECOND_LEG_SETTLEMENT_CODE", "SECURITY_FULL_NAME", "SECURITY_SYMBOL", "SECURITY_ID", "CONTRACT", + "COUNTER_PARTY_ID", "COVERAGE_STATUS", "SESSION_ID", "CLEARING_DATE" + }; + } + + @Override + public Object[] objectToField(ExecutionDepositHistory historyLog) { + ExecutionDeposit object = historyLog.getObject(); + Object[] args = new Object[]{ + historyLog.getId(), + TimeUtil.toDateFromInstant(historyLog.getEventTime()), + historyLog.getUserId(), + historyLog.getEventType(), + + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getExchangeExecutionId(), + TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), + TimeUtil.toDateFromLocalDate(object.getTradingDate()), + object.getTradingClearingRegistryId(), + object.getMarket(), + object.getPrice(), + object.getLots(), + object.getQuantity(), + object.getFirstLegAmount(), + object.getSecondLegAmount(), + object.getInterestAmount(), + object.getSide(), + object.getSettlementCurrency(), + object.getCompanyId(), + object.getDuration(), + TimeUtil.toDateFromLocalDate(object.getFirstLegSettlementDate()), + TimeUtil.toDateFromLocalDate(object.getSecondLegSettlementDate()), + object.getFirstLegSettlementCode(), + object.getSecondLegSettlementCode(), + object.getSecurityFullName(), + object.getSecuritySymbol(), + object.getSecurityId(), + object.getContract(), + object.getCounterPartyId(), + object.getCoverageStatus(), + object.getSessionId(), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ExecutionFondHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ExecutionFondHistoryMapStore.java new file mode 100644 index 000000000..f51370e0f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ExecutionFondHistoryMapStore.java @@ -0,0 +1,78 @@ +package ru.spcex.clearing.imdg.businessevent; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.execution.ExecutionFond; +import ru.clearing.classes.statics.data.execution.ExecutionFondHistory; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateEventMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +@Component +public class ExecutionFondHistoryMapStore extends TemplateEventMapStore { + + public ExecutionFondHistoryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ExecutionFondHistory; + } + + @Override + public String getTableName() { + return "EXECUTION_FOND_HISTORY"; + } + + @Override + public String[] getFields() { + return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE", + "EXECUTION_FOND_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "EXCHANGE_EXECUTION_ID", "SIDE", "MARKET", "TRADING_DATE", "SECURITY_SYMBOL", "SECURITY_ID", "INTEREST_AMOUNT", "EXCHANGE_ORDER_ID", "PRICE", "SETTLEMENT_AMOUNT", "LOTS", "QUANTITY", "EXCHANGE_EXECUTION_TIME", "DURATION", "TRADING_CLEARING_REGISTRY_ID", "COMMENT", "CLIENT_CODE_ID", "SETTLEMENT_CODE", "COMPANY_ID", "COUNTER_PARTY_ID", "SECURITY_FULL_NAME", "SETTLEMENT_DATE", "SETTLEMENT_CURRENCY", "EXCHANGE_EXECUTION_MICROSECONDS", "COVERAGE_STATUS", "SESSION_ID" + }; + } + + @Override + public Object[] objectToField(ExecutionFondHistory historyLog) { + ExecutionFond object = historyLog.getObject(); + Object[] args = new Object[]{ + historyLog.getId(), + TimeUtil.toDateFromInstant(historyLog.getEventTime()), + historyLog.getUserId(), + historyLog.getEventType(), + + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()), + object.getExchangeExecutionId(), + object.getSide(), + object.getMarket(), + TimeUtil.toDateFromLocalDate(object.getTradingDate()), + object.getSecuritySymbol(), + object.getSecurityId(), + object.getInterestAmount(), + object.getExchangeOrderId(), + object.getPrice(), + object.getSettlementAmount(), + object.getLots(), + object.getQuantity(), + TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), + object.getDuration(), + object.getTradingClearingRegistryId(), + object.getComment(), + object.getClientCodeId(), + object.getSettlementCode(), + object.getCompanyId(), + object.getCounterPartyId(), + object.getSecurityFullName(), + TimeUtil.toDateFromLocalDate(object.getSettlementDate()), + object.getSettlementCurrency(), + TimeUtil.toDateFromInstant(object.getExchangeExecutionMicroseconds()), + object.getCoverageStatus(), + object.getSessionId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/SessionHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/SessionHistoryMapStore.java new file mode 100644 index 000000000..bd20bc481 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/SessionHistoryMapStore.java @@ -0,0 +1,58 @@ +package ru.spcex.clearing.imdg.businessevent; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.misc.Session; +import ru.clearing.classes.statics.data.misc.SessionHistory; +import ru.spcex.clearing.imdg.base.TemplateEventMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +@Component +public class SessionHistoryMapStore extends TemplateEventMapStore { + + public SessionHistoryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SessionHistory; + } + + @Override + public String getTableName() { + return "SESSION_HISTORY"; + } + + @Override + public String[] getFields() { + return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE", + "SESSION_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "SESSION_STATUS", "COMPANY_ID", "SECURITY_ID", "USER_ID", "SECTION", "SESSION_TYPE" + }; + } + + @Override + public Object[] objectToField(SessionHistory historyLog) { + Session object = historyLog.getObject(); + Object[] args = new Object[]{ + historyLog.getId(), + TimeUtil.toDateFromInstant(historyLog.getEventTime()), + historyLog.getUserId(), + historyLog.getEventType(), + + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()), + object.getSessionStatus(), + object.getCompanyId(), + object.getSecurityId(), + object.getUserId(), + object.getSection(), + object.getSessionType() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionFondMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionFondMapStore.java new file mode 100644 index 000000000..0eb253637 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionFondMapStore.java @@ -0,0 +1,114 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.execution.ExecutionFond; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class ExecutionFondMapStore extends TemplateMapStore { + + public ExecutionFondMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ExecutionFond; + } + + @Override + public String getTableName() { + return "EXECUTION_FOND"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "EXCHANGE_EXECUTION_ID", "SIDE", "MARKET", + "TRADING_DATE", "SECURITY_SYMBOL", "SECURITY_ID", "INTEREST_AMOUNT", "EXCHANGE_ORDER_ID", "PRICE", + "SETTLEMENT_AMOUNT", "LOTS", "QUANTITY", "EXCHANGE_EXECUTION_TIME", "DURATION", "TRADING_CLEARING_REGISTRY_ID", + "COMMENT", "CLIENT_CODE_ID", "SETTLEMENT_CODE", "COMPANY_ID", "COUNTER_PARTY_ID", "SECURITY_FULL_NAME", + "SETTLEMENT_DATE", "SETTLEMENT_CURRENCY", "EXCHANGE_EXECUTION_MICROSECONDS", "COVERAGE_STATUS", "SESSION_ID" + }; + } + + @Override + public ExecutionFond objectReader(ResultSet resultSet) throws SQLException { + ExecutionFond object = new ExecutionFond(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); + object.setSide(resultSet.getObject("SIDE", String.class)); + object.setMarket(resultSet.getObject("MARKET", String.class)); + object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); + object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); + object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); + object.setInterestAmount(resultSet.getObject("INTEREST_AMOUNT", BigDecimal.class)); + object.setExchangeOrderId(resultSet.getObject("EXCHANGE_ORDER_ID", Long.class)); + object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); + object.setSettlementAmount(resultSet.getObject("SETTLEMENT_AMOUNT", BigDecimal.class)); + object.setLots(resultSet.getObject("LOTS", BigDecimal.class)); + object.setQuantity(resultSet.getObject("QUANTITY", BigDecimal.class)); + object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); + object.setDuration(resultSet.getObject("DURATION", Long.class)); + object.setTradingClearingRegistryId(resultSet.getObject("TRADING_CLEARING_REGISTRY_ID", Long.class)); + object.setComment(resultSet.getObject("COMMENT", String.class)); + object.setClientCodeId(resultSet.getObject("CLIENT_CODE_ID", Long.class)); + object.setSettlementCode(resultSet.getObject("SETTLEMENT_CODE", String.class)); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setCounterPartyId(resultSet.getObject("COUNTER_PARTY_ID", Long.class)); + object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); + object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); + object.setSettlementCurrency(resultSet.getObject("SETTLEMENT_CURRENCY", String.class)); + object.setExchangeExecutionMicroseconds(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_MICROSECONDS")); + object.setCoverageStatus(resultSet.getObject("COVERAGE_STATUS", String.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(ExecutionFond object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()), + object.getExchangeExecutionId(), + object.getSide(), + object.getMarket(), + TimeUtil.toDateFromLocalDate(object.getTradingDate()), + object.getSecuritySymbol(), + object.getSecurityId(), + object.getInterestAmount(), + object.getExchangeOrderId(), + object.getPrice(), + object.getSettlementAmount(), + object.getLots(), + object.getQuantity(), + TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), + object.getDuration(), + object.getTradingClearingRegistryId(), + object.getComment(), + object.getClientCodeId(), + object.getSettlementCode(), + object.getCompanyId(), + object.getCounterPartyId(), + object.getSecurityFullName(), + TimeUtil.toDateFromLocalDate(object.getSettlementDate()), + object.getSettlementCurrency(), + TimeUtil.toDateFromInstant(object.getExchangeExecutionMicroseconds()), + object.getCoverageStatus(), + object.getSessionId() + }; + return args; + } +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/SessionStatusDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/SessionStatusDictionaryMapStore.java new file mode 100644 index 000000000..340fab1a6 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/SessionStatusDictionaryMapStore.java @@ -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.SessionStatusDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class SessionStatusDictionaryMapStore extends DictionaryTMapStore { + + public SessionStatusDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SessionStatusDictionary; + } + + @Override + public String getTableName() { + return "SESSION_STATUS_DICTIONARY"; + } + + @Override + public SessionStatusDictionary getDictionaryObject() { + return new SessionStatusDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/SessionTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/SessionTypeDictionaryMapStore.java new file mode 100644 index 000000000..8e1c81afd --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/SessionTypeDictionaryMapStore.java @@ -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.SessionTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class SessionTypeDictionaryMapStore extends DictionaryTMapStore { + + public SessionTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SessionTypeDictionary; + } + + @Override + public String getTableName() { + return "SESSION_TYPE_DICTIONARY"; + } + + @Override + public SessionTypeDictionary getDictionaryObject() { + return new SessionTypeDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ExecutionDepositMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ExecutionDepositMapStore.java index ffd05dfb0..b6909d23b 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ExecutionDepositMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ExecutionDepositMapStore.java @@ -33,33 +33,13 @@ public class ExecutionDepositMapStore extends TemplateMapStore @Override public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "TRADING_DATE", - "ACCOUNT_ID", - "MARKET", - "PRICE", - "LOTS", - "QUANTITY", - "FIRST_LEG_AMOUNT", - "SECOND_LEG_AMOUNT", - "INTEREST_AMOUNT", - "SIDE", - "SETTLEMENT_CURRENCY", - "COMPANY_ID", - "DURATION", - "FIRST_LEG_SETTLEMENT_DATE", - "SECOND_LEG_SETTLEMENT_DATE", - "FIRST_LEG_SETTLEMENT_CODE", - "SECOND_LEG_SETTLEMENT_CODE", - "SECURITY_FULL_NAME", - "SECURITY_SYMBOL", - "SECURITY_ID", - "COUNTER_PARTY_ID", - "COVERAGE_STATUS", - "SESSION_ID", - "CLEARING_DATE", + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", + "EXCHANGE_EXECUTION_ID", "EXCHANGE_EXECUTION_TIME", "TRADING_DATE", "TRADING_CLEARING_REGISTRY_ID", + "MARKET", "PRICE", "LOTS", "QUANTITY", "FIRST_LEG_AMOUNT", "SECOND_LEG_AMOUNT", "INTEREST_AMOUNT", + "SIDE", "SETTLEMENT_CURRENCY", "COMPANY_ID", "DURATION", "FIRST_LEG_SETTLEMENT_DATE", "SECOND_LEG_SETTLEMENT_DATE", + "FIRST_LEG_SETTLEMENT_CODE", "SECOND_LEG_SETTLEMENT_CODE", "SECURITY_FULL_NAME", "SECURITY_SYMBOL", + "SECURITY_ID", "CONTRACT", "COUNTER_PARTY_ID", "COVERAGE_STATUS", "SESSION_ID", "CLEARING_DATE" }; } @@ -72,7 +52,7 @@ public class ExecutionDepositMapStore extends TemplateMapStore object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); + object.setTradingClearingRegistryId(resultSet.getObject("TRADING_CLEARING_REGISTRY_ID", Long.class)); object.setMarket(resultSet.getObject("MARKET", String.class)); object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); object.setLots(resultSet.getObject("LOTS", BigDecimal.class)); @@ -86,11 +66,12 @@ public class ExecutionDepositMapStore extends TemplateMapStore object.setDuration(resultSet.getObject("DURATION", Long.class)); object.setFirstLegSettlementDate(getLocalDateFromSqlDate(resultSet, "FIRST_LEG_SETTLEMENT_DATE")); object.setSecondLegSettlementDate(getLocalDateFromSqlDate(resultSet, "SECOND_LEG_SETTLEMENT_DATE")); - object.setFirstLegSettlementCode(getLocalDateFromSqlDate(resultSet, "FIRST_LEG_SETTLEMENT_CODE")); - object.setSecondLegSettlementCode(getLocalDateFromSqlDate(resultSet, "SECOND_LEG_SETTLEMENT_CODE")); + object.setFirstLegSettlementCode(resultSet.getObject("FIRST_LEG_SETTLEMENT_CODE", String.class)); + object.setSecondLegSettlementCode(resultSet.getObject("SECOND_LEG_SETTLEMENT_CODE", String.class)); object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); + object.setContract(resultSet.getObject("CONTRACT", String.class)); object.setCounterPartyId(resultSet.getObject("COUNTER_PARTY_ID", Long.class)); object.setCoverageStatus(resultSet.getObject("COVERAGE_STATUS", String.class)); object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); @@ -107,7 +88,7 @@ public class ExecutionDepositMapStore extends TemplateMapStore object.getExchangeExecutionId(), TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getAccountId(), + object.getTradingClearingRegistryId(), object.getMarket(), object.getPrice(), object.getLots(), @@ -121,15 +102,16 @@ public class ExecutionDepositMapStore extends TemplateMapStore object.getDuration(), TimeUtil.toDateFromLocalDate(object.getFirstLegSettlementDate()), TimeUtil.toDateFromLocalDate(object.getSecondLegSettlementDate()), - TimeUtil.toDateFromLocalDate(object.getFirstLegSettlementCode()), - TimeUtil.toDateFromLocalDate(object.getSecondLegSettlementCode()), + object.getFirstLegSettlementCode(), + object.getSecondLegSettlementCode(), object.getSecurityFullName(), object.getSecuritySymbol(), object.getSecurityId(), + object.getContract(), object.getCounterPartyId(), object.getCoverageStatus(), object.getSessionId(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/STradeMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/STradeMapStore.java index a906773e5..c07dc4ec3 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/STradeMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/STradeMapStore.java @@ -32,9 +32,13 @@ public class STradeMapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "TRADE_NUM", "SEC_CODE", "TRADE_DATE_TIME", "SETTLE_DATE", "PRICE", "VALUE", "QTY", "ACCRUEDINT", - "FIRM_ID", "CLIENT_CODE", "EXCHANGE_COMMISSION", "CLASS_CODE", "OPERATION", "ISSUE_ACCOUNT", - "MONEY_ACCOUNT", "TRADE_TYPE", "DAYS_TO_MAT_DATE", "COLLATERAL", "SETTLE_CODE" + "ID", "TRADE_NUM", "OPERATION", "CLASS_CODE", "TRADE_DATE", "SEC_CODE", "ACCRUEDINT", "ACCRUEDINT2", + "LOWER_DISCOUNT", "ORDER_NUM", "PRICE", "PRICE2", "REPO_RATE", "REPO_VALUE", "REPO2_VALUE", + "START_DISCOUNT", "TS_COMMISSION", "UPPER_DISCOUNT", "VALUE", "YIELD", "QTY", "QTY_PCS", + "TRADE_DATE_TIME", "REPO_TERM", "CLEARING_COMMISSION", "EXCHANGE_COMMISSION", "TECH_CENTER_COMMISSION", + "ACCOUNT", "BROKER_REF", "CLIENT_CODE", "SETTLE_CODE", "USER_ID", "EXCHANGE_CODE", + "FIRM_ID", "FIRM_NAME", "CP_FIRM_ID", "CP_FIRM_NAME", "CLASS_NAME", "SEC_NAME", + "SETTLE_DATE", "SETTLE_CURRENCY", "TRADE_CURRENCY", "TRADE_TIME_MS", "BANK_ACC_ID", "SECTION" }; } @@ -43,24 +47,49 @@ public class STradeMapStore extends TemplateMapStore { STrade object = new STrade(); object.setId(resultSet.getObject("ID", Long.class)); object.setTradeNum(resultSet.getObject("TRADE_NUM", Long.class)); - object.setSecCode(resultSet.getObject("SEC_CODE", String.class)); - object.setTradeDateTime(getInstantFromTimestamp(resultSet, "TRADE_DATE_TIME")); - object.setSettleDate(resultSet.getObject("SETTLE_DATE", LocalDate.class)); - object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); - object.setValue(resultSet.getObject("VALUE", BigDecimal.class)); - object.setQty(resultSet.getObject("QTY", BigDecimal.class)); - object.setAccruedint(resultSet.getObject("ACCRUEDINT", BigDecimal.class)); - object.setFirmId(resultSet.getObject("FIRM_ID", String.class)); - object.setClientCode(resultSet.getObject("CLIENT_CODE", String.class)); - object.setExchangeCommission(resultSet.getObject("EXCHANGE_COMMISSION", BigDecimal.class)); - object.setClassCode(resultSet.getObject("CLASS_CODE", String.class)); object.setOperation(resultSet.getObject("OPERATION", String.class)); - object.setIssueAccount(resultSet.getObject("ISSUE_ACCOUNT", String.class)); - object.setMoneyAccount(resultSet.getObject("MONEY_ACCOUNT", String.class)); - object.setTradeType(resultSet.getObject("TRADE_TYPE", String.class)); - object.setDaysToMatDate(resultSet.getObject("DAYS_TO_MAT_DATE", Long.class)); - object.setCollateral(resultSet.getObject("COLLATERAL", String.class)); + object.setClassCode(resultSet.getObject("CLASS_CODE", String.class)); + object.setTradeDate(getLocalDateFromSqlDate(resultSet, "TRADE_DATE")); + object.setSecCode(resultSet.getObject("SEC_CODE", String.class)); + object.setAccruedint(resultSet.getObject("ACCRUEDINT", BigDecimal.class)); + object.setAccruedint2(resultSet.getObject("ACCRUEDINT2", BigDecimal.class)); + object.setLowerDiscount(resultSet.getObject("LOWER_DISCOUNT", BigDecimal.class)); + object.setOrderNum(resultSet.getObject("ORDER_NUM", Long.class)); + object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); + object.setPrice2(resultSet.getObject("PRICE2", BigDecimal.class)); + object.setRepoRate(resultSet.getObject("REPO_RATE", BigDecimal.class)); + object.setRepoValue(resultSet.getObject("REPO_VALUE", BigDecimal.class)); + object.setRepo2Value(resultSet.getObject("REPO2_VALUE", BigDecimal.class)); + object.setStartDiscount(resultSet.getObject("START_DISCOUNT", BigDecimal.class)); + object.setTsCommission(resultSet.getObject("TS_COMMISSION", BigDecimal.class)); + object.setUpperDiscount(resultSet.getObject("UPPER_DISCOUNT", BigDecimal.class)); + object.setValue(resultSet.getObject("VALUE", BigDecimal.class)); + object.setYield(resultSet.getObject("YIELD", BigDecimal.class)); + object.setQty(resultSet.getObject("QTY", BigDecimal.class)); + object.setQtyPcs(resultSet.getObject("QTY_PCS", BigDecimal.class)); + object.setTradeDateTime(getInstantFromTimestamp(resultSet, "TRADE_DATE_TIME")); + object.setRepoTerm(resultSet.getObject("REPO_TERM", Long.class)); + object.setClearingCommission(resultSet.getObject("CLEARING_COMMISSION", BigDecimal.class)); + object.setExchangeCommission(resultSet.getObject("EXCHANGE_COMMISSION", BigDecimal.class)); + object.setTechCenterCommission(resultSet.getObject("TECH_CENTER_COMMISSION", BigDecimal.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setBrokerRef(resultSet.getObject("BROKER_REF", String.class)); + object.setClientCode(resultSet.getObject("CLIENT_CODE", String.class)); object.setSettleCode(resultSet.getObject("SETTLE_CODE", String.class)); + object.setUserId(resultSet.getObject("USER_ID", String.class)); + object.setExchangeCode(resultSet.getObject("EXCHANGE_CODE", String.class)); + object.setFirmId(resultSet.getObject("FIRM_ID", String.class)); + object.setFirmName(resultSet.getObject("FIRM_NAME", String.class)); + object.setCpFirmId(resultSet.getObject("CP_FIRM_ID", String.class)); + object.setCpFirmName(resultSet.getObject("CP_FIRM_NAME", String.class)); + object.setClassName(resultSet.getObject("CLASS_NAME", String.class)); + object.setSecName(resultSet.getObject("SEC_NAME", String.class)); + object.setSettleDate(getLocalDateFromSqlDate(resultSet, "SETTLE_DATE")); + object.setSettleCurrency(resultSet.getObject("SETTLE_CURRENCY", String.class)); + object.setTradeCurrency(resultSet.getObject("TRADE_CURRENCY", String.class)); + object.setTradeTimeMs(resultSet.getObject("TRADE_TIME_MS", Long.class)); + object.setBankAccId(resultSet.getObject("BANK_ACC_ID", String.class)); + object.setSection(resultSet.getObject("SECTION", String.class)); return object; } @@ -69,24 +98,49 @@ public class STradeMapStore extends TemplateMapStore { Object[] args = new Object[]{ object.getId(), object.getTradeNum(), - object.getSecCode(), - TimeUtil.toDateFromInstant(object.getTradeDateTime()), - object.getSettleDate(), - object.getPrice(), - object.getValue(), - object.getQty(), - object.getAccruedint(), - object.getFirmId(), - object.getClientCode(), - object.getExchangeCommission(), - object.getClassCode(), object.getOperation(), - object.getIssueAccount(), - object.getMoneyAccount(), - object.getTradeType(), - object.getDaysToMatDate(), - object.getCollateral(), - object.getSettleCode() + object.getClassCode(), + TimeUtil.toDateFromLocalDate(object.getTradeDate()), + object.getSecCode(), + object.getAccruedint(), + object.getAccruedint2(), + object.getLowerDiscount(), + object.getOrderNum(), + object.getPrice(), + object.getPrice2(), + object.getRepoRate(), + object.getRepoValue(), + object.getRepo2Value(), + object.getStartDiscount(), + object.getTsCommission(), + object.getUpperDiscount(), + object.getValue(), + object.getYield(), + object.getQty(), + object.getQtyPcs(), + TimeUtil.toDateFromInstant(object.getTradeDateTime()), + object.getRepoTerm(), + object.getClearingCommission(), + object.getExchangeCommission(), + object.getTechCenterCommission(), + object.getAccount(), + object.getBrokerRef(), + object.getClientCode(), + object.getSettleCode(), + object.getUserId(), + object.getExchangeCode(), + object.getFirmId(), + object.getFirmName(), + object.getCpFirmId(), + object.getCpFirmName(), + object.getClassName(), + object.getSecName(), + TimeUtil.toDateFromLocalDate(object.getSettleDate()), + object.getSettleCurrency(), + object.getTradeCurrency(), + object.getTradeTimeMs(), + object.getBankAccId(), + object.getSection() }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SessionMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SessionMapStore.java index eb9baf0a7..ab0502017 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SessionMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SessionMapStore.java @@ -29,17 +29,24 @@ public class SessionMapStore extends TemplateMapStore { @Override public String[] getFields() { - return new String[]{"id", "created_at", "updated_at", "clearing_date", "session_status"}; + return new String[]{ + "id", "created_at", "updated_at", "clearing_date", "session_status", "company_id", "security_id", "user_id", "section", "session_type" + }; } @Override protected Session objectReader(ResultSet resultSet) throws SQLException { Session session = new Session(); - session.setId(resultSet.getLong("id")); - session.setCreated(getInstantFromTimestamp(resultSet, "created_at")); - session.setUpdated(getInstantFromTimestamp(resultSet, "updated_at")); - session.setClearingDate(getLocalDateFromSqlDate(resultSet, "clearing_date")); - session.setSessionStatus(resultSet.getString("session_status")); + session.setId(resultSet.getObject("ID", Long.class)); + session.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + session.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + session.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + session.setSessionStatus(resultSet.getObject("SESSION_STATUS", String.class)); + session.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + session.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); + session.setUserId(resultSet.getObject("USER_ID", Long.class)); + session.setSection(resultSet.getObject("SECTION", String.class)); + session.setSessionType(resultSet.getObject("SESSION_TYPE", String.class)); return session; } @@ -50,7 +57,12 @@ public class SessionMapStore extends TemplateMapStore { TimeUtil.toDateFromInstant(session.getCreated()), TimeUtil.toDateFromInstant(session.getUpdated()), TimeUtil.toDateFromLocalDate(session.getClearingDate()), - session.getSessionStatus() + session.getSessionStatus(), + session.getCompanyId(), + session.getSecurityId(), + session.getUserId(), + session.getSection(), + session.getSessionType() }; return args; } diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index 1f495d479..c3611550c 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java @@ -6,6 +6,9 @@ import ru.clearing.classes.statics.data.company.*; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.company.relation.RelationHistory; import ru.clearing.classes.statics.data.execution.ExecutionDeposit; +import ru.clearing.classes.statics.data.execution.ExecutionDepositHistory; +import ru.clearing.classes.statics.data.execution.ExecutionFond; +import ru.clearing.classes.statics.data.execution.ExecutionFondHistory; import ru.clearing.classes.statics.data.instrument.issue.*; import ru.clearing.classes.statics.data.journal.InDocumentJournal; import ru.clearing.classes.statics.data.journal.ManagementJournal; @@ -56,8 +59,11 @@ public class RunnableMapNamesForTesting { businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_BankAccountHistory, BankAccountHistory.class)); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_CompanyHistory, CompanyHistory.class, usingIgnoringFieldsComparator("object.profile.clearingCode", "object.profile.fullName", "object.profile.registrationCode", "object.profile.shortName", "object.profile.tradingCode"))); + businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_ExecutionDepositHistory, ExecutionDepositHistory.class)); + businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_ExecutionFondHistory, ExecutionFondHistory.class)); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_InformationAccountHistory, InformationAccountHistory.class)); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_RelationHistory, RelationHistory.class)); + businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_SessionHistory, SessionHistory.class)); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_SecurityHistory, SecurityHistory.class)); // parent table businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_UserConnectHistory, UserConnectHistory.class)); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_UserHistory, UserHistory.class)); @@ -80,6 +86,7 @@ public class RunnableMapNamesForTesting { businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_Company, Company.class, usingIgnoringFieldsComparator("profile.clearingCode", "profile.fullName", "profile.registrationCode", "profile.shortName", "profile.tradingCode"))); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_ErrorText, ErrorText.class)); + businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class)); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_Launcher, Launcher.class)); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class)); businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, LiabilitiesClaimsMoney.class, @@ -130,6 +137,8 @@ public class RunnableMapNamesForTesting { dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_OrganizationTypeDictionary, OrganizationTypeDictionary.class)); dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ParentDictionary, ParentDictionary.class)); dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ResultStatusDictionary, ResultStatusDictionary.class)); + dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_SessionStatusDictionary, SessionStatusDictionary.class)); + dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_SessionTypeDictionary, SessionTypeDictionary.class)); dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ServiceDictionary, ServiceDictionary.class)); dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ServiceProductDictionary, ServiceProductDictionary.class)); dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class)); diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index 68a98faee..5bf364af0 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 @@ -105,6 +105,7 @@ public final class IMDGDistributedNames { public static final String Map_RequestInfo = "Map_RequestInfo"; public static final String Map_PaymentInstruction = "Map_PaymentInstruction"; public static final String Map_Session = "Map_Session"; + public static final String Map_SessionHistory = "Map_SessionHistory"; public static final String Map_Notification = "Map_Notification"; public static final String Map_LiabilitiesClaimsAssets = "Map_LiabilitiesClaimsAssets"; public static final String Map_LiabilitiesClaimsMoney = "Map_LiabilitiesClaimsMoney"; @@ -112,6 +113,7 @@ public final class IMDGDistributedNames { public static final String Map_ClearMemberRegisterChange = "Map_ClearMemberRegisterChange"; public static final String Map_BalanceRegister = "Map_BalanceRegister"; public static final String Map_ExecutionDeposit = "Map_ExecutionDeposit"; + public static final String Map_ExecutionDepositHistory = "Map_ExecutionDepositHistory"; public static final String Map_DealRegister = "Map_DealRegister"; public static final String Map_AdmittedDealRegister = "Map_AdmittedDealRegister"; public static final String Map_CoveredDealRegister = "Map_CoveredDealRegister"; @@ -159,6 +161,10 @@ public final class IMDGDistributedNames { public static final String Map_RegistryHistory = "Map_RegistryHistory"; public static final String Map_DepoAccount = "Map_DepoAccount"; public static final String Map_DepoAccountHistory = "Map_DepoAccountHistory"; + public static final String Map_SessionStatusDictionary = "Map_SessionStatusDictionary"; + public static final String Map_SessionTypeDictionary = "Map_SessionTypeDictionary"; + public static final String Map_ExecutionFond = "Map_ExecutionFond"; + public static final String Map_ExecutionFondHistory = "Map_ExecutionFondHistory"; public static final String MAP_SEQUENCE_NAME = "MAP_SEQUENCE_NAME";