Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
2fc1528da3
69 changed files with 2383 additions and 194 deletions
|
|
@ -253,7 +253,7 @@
|
|||
<companySymbol type="12" name="Идентификатор справочника" shortname="Идентификатор справочника" searchable="true" sortable="true" visible="true" link="companySymbol"/>
|
||||
<companySymbolValue type="2" length="255" name="Значение справочника" shortname="Значение" searchable="true" sortable="true" visible="true"/>
|
||||
</companySymbols>
|
||||
<keyRate name="Ключевая ставка ЦБ" class="ru.clearing.classes.StaticData.Misc.KeyRate">
|
||||
<keyRate name="Ключевая ставка ЦБ" class="ru.clearing.classes.static.data.misc.KeyRate">
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true" visible="true"/>
|
||||
<rate type="10" name="Ключевая ставка ЦБ РФ" shortname="Ставка" searchable="true" sortable="true" visible="true"/>
|
||||
<startDate type="6" name="Дата начала действия ключевой ставки" shortname="Начальная дата" searchable="true" sortable="true" visible="true"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
package ru.clearing.classes.StaticData.Account;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.clearing.classes.objects.BusinessObject;
|
||||
|
||||
/**
|
||||
* Счета
|
||||
* <p>
|
||||
* DB table: ACCOUNT
|
||||
**/
|
||||
public class Account extends BusinessObject {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
||||
private String account;
|
||||
private String accountType;
|
||||
private Long relationId;
|
||||
private String status;
|
||||
|
||||
public String getAccount() {
|
||||
return account;
|
||||
}
|
||||
|
||||
public void setAccount(String value) {
|
||||
this.account = value;
|
||||
}
|
||||
|
||||
public String getAccountType() {
|
||||
return accountType;
|
||||
}
|
||||
|
||||
public void setAccountType(String value) {
|
||||
this.accountType = value;
|
||||
}
|
||||
|
||||
public Long getRelationId() {
|
||||
return relationId;
|
||||
}
|
||||
|
||||
public void setRelationId(Long value) {
|
||||
this.relationId = value;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String value) {
|
||||
this.status = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package ru.clearing.classes.StaticData.Account;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* Маршрутизация счета
|
||||
* <p>
|
||||
* DB table: ACCOUNT_ROUTING
|
||||
**/
|
||||
public class AccountRouting extends SpcexObjectBase {
|
||||
@Serial
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
||||
private Long destinationId;
|
||||
private Long relationId;
|
||||
private Long sourceId;
|
||||
|
||||
public Long getDestinationId() {
|
||||
return destinationId;
|
||||
}
|
||||
|
||||
public void setDestinationId(Long value) {
|
||||
this.destinationId = value;
|
||||
}
|
||||
|
||||
public Long getRelationId() {
|
||||
return relationId;
|
||||
}
|
||||
|
||||
public void setRelationId(Long value) {
|
||||
this.relationId = value;
|
||||
}
|
||||
|
||||
public Long getSourceId() {
|
||||
return sourceId;
|
||||
}
|
||||
|
||||
public void setSourceId(Long value) {
|
||||
this.sourceId = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
package ru.clearing.classes.StaticData.Account;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
/**
|
||||
* Банковские счета
|
||||
* <p>
|
||||
* DB table: BANK_ACCOUNT
|
||||
**/
|
||||
public class BankAccount extends SpcexObjectBase {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
||||
private Long accountId;
|
||||
private String bankIdentificationCode;
|
||||
private String bankName;
|
||||
private String correspondentAccountName;
|
||||
private String currency;
|
||||
private String destination;
|
||||
private String iban;
|
||||
private String internationalTransferSign;
|
||||
private String swiftCode;
|
||||
private String taxpayerIdentificationNumber;
|
||||
private String taxRegistrationReasonCode;
|
||||
private String correspondentAccount;
|
||||
|
||||
public Long getAccountId() {
|
||||
return accountId;
|
||||
}
|
||||
|
||||
public void setAccountId(Long value) {
|
||||
this.accountId = value;
|
||||
}
|
||||
|
||||
public String getBankIdentificationCode() {
|
||||
return bankIdentificationCode;
|
||||
}
|
||||
|
||||
public void setBankIdentificationCode(String value) {
|
||||
this.bankIdentificationCode = value;
|
||||
}
|
||||
|
||||
public String getBankName() {
|
||||
return bankName;
|
||||
}
|
||||
|
||||
public void setBankName(String value) {
|
||||
this.bankName = value;
|
||||
}
|
||||
|
||||
public String getCorrespondentAccountName() {
|
||||
return correspondentAccountName;
|
||||
}
|
||||
|
||||
public void setCorrespondentAccountName(String value) {
|
||||
this.correspondentAccountName = value;
|
||||
}
|
||||
|
||||
public String getCurrency() {
|
||||
return currency;
|
||||
}
|
||||
|
||||
public void setCurrency(String value) {
|
||||
this.currency = value;
|
||||
}
|
||||
|
||||
public String getDestination() {
|
||||
return destination;
|
||||
}
|
||||
|
||||
public void setDestination(String value) {
|
||||
this.destination = value;
|
||||
}
|
||||
|
||||
public String getIban() {
|
||||
return iban;
|
||||
}
|
||||
|
||||
public void setIban(String value) {
|
||||
this.iban = value;
|
||||
}
|
||||
|
||||
public String getInternationalTransferSign() {
|
||||
return internationalTransferSign;
|
||||
}
|
||||
|
||||
public void setInternationalTransferSign(String value) {
|
||||
this.internationalTransferSign = value;
|
||||
}
|
||||
|
||||
public String getSwiftCode() {
|
||||
return swiftCode;
|
||||
}
|
||||
|
||||
public void setSwiftCode(String value) {
|
||||
this.swiftCode = value;
|
||||
}
|
||||
|
||||
public String getTaxpayerIdentificationNumber() {
|
||||
return taxpayerIdentificationNumber;
|
||||
}
|
||||
|
||||
public void setTaxpayerIdentificationNumber(String value) {
|
||||
this.taxpayerIdentificationNumber = value;
|
||||
}
|
||||
|
||||
public String getTaxRegistrationReasonCode() {
|
||||
return taxRegistrationReasonCode;
|
||||
}
|
||||
|
||||
public void setTaxRegistrationReasonCode(String value) {
|
||||
this.taxRegistrationReasonCode = value;
|
||||
}
|
||||
|
||||
public String getCorrespondentAccount() {
|
||||
return correspondentAccount;
|
||||
}
|
||||
|
||||
public void setCorrespondentAccount(String value) {
|
||||
this.correspondentAccount = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package ru.clearing.classes.StaticData.Account;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
/**
|
||||
* Клиринговые счета
|
||||
* <p>
|
||||
* DB table: CLEARING_ACCOUNT
|
||||
**/
|
||||
public class ClearingAccount extends SpcexObjectBase {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
||||
private Long accountId;
|
||||
private Long cashAccountId;
|
||||
private Long depoAccountId;
|
||||
private String settlementCode;
|
||||
|
||||
public Long getAccountId() {
|
||||
return accountId;
|
||||
}
|
||||
|
||||
public void setAccountId(Long value) {
|
||||
this.accountId = value;
|
||||
}
|
||||
|
||||
public Long getCashAccountId() {
|
||||
return cashAccountId;
|
||||
}
|
||||
|
||||
public void setCashAccountId(Long value) {
|
||||
this.cashAccountId = value;
|
||||
}
|
||||
|
||||
public Long getDepoAccountId() {
|
||||
return depoAccountId;
|
||||
}
|
||||
|
||||
public void setDepoAccountId(Long value) {
|
||||
this.depoAccountId = value;
|
||||
}
|
||||
|
||||
public String getSettlementCode() {
|
||||
return settlementCode;
|
||||
}
|
||||
|
||||
public void setSettlementCode(String value) {
|
||||
this.settlementCode = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package ru.clearing.classes.StaticData.Company.Relation;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.clearing.classes.objects.BusinessObject;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
/**
|
||||
* Договорные отношения
|
||||
* <p>
|
||||
* DB table: RELATION
|
||||
**/
|
||||
public class Relation extends BusinessObject {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
||||
private Long consumerId;
|
||||
private Long supplierId;
|
||||
private String serviceStatus;
|
||||
private Long serviceId;
|
||||
private Long serviceProductId;
|
||||
private String comment;
|
||||
|
||||
public Long getConsumerId() {
|
||||
return consumerId;
|
||||
}
|
||||
|
||||
public void setConsumerId(Long value) {
|
||||
this.consumerId = value;
|
||||
}
|
||||
|
||||
public Long getSupplierId() {
|
||||
return supplierId;
|
||||
}
|
||||
|
||||
public void setSupplierId(Long value) {
|
||||
this.supplierId = value;
|
||||
}
|
||||
|
||||
public String getServiceStatus() {
|
||||
return serviceStatus;
|
||||
}
|
||||
|
||||
public void setServiceStatus(String value) {
|
||||
this.serviceStatus = value;
|
||||
}
|
||||
|
||||
public Long getServiceId() {
|
||||
return serviceId;
|
||||
}
|
||||
|
||||
public void setServiceId(Long value) {
|
||||
this.serviceId = value;
|
||||
}
|
||||
|
||||
public Long getServiceProductId() {
|
||||
return serviceProductId;
|
||||
}
|
||||
|
||||
public void setServiceProductId(Long value) {
|
||||
this.serviceProductId = value;
|
||||
}
|
||||
|
||||
public String getComment() {
|
||||
return comment;
|
||||
}
|
||||
|
||||
public void setComment(String value) {
|
||||
this.comment = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package ru.clearing.classes.StaticData.generated;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
/**
|
||||
* Категории участника клиринга
|
||||
* <p>
|
||||
* DB table: CLEARING_MEMBER_CATEGORY
|
||||
**/
|
||||
public class ClearingMemberCategory extends SpcexObjectBase {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
||||
private Long companyId;
|
||||
private String clearingMemberCategory;
|
||||
|
||||
public Long getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
||||
public void setCompanyId(Long value) {
|
||||
this.companyId = value;
|
||||
}
|
||||
|
||||
public String getClearingMemberCategory() {
|
||||
return clearingMemberCategory;
|
||||
}
|
||||
|
||||
public void setClearingMemberCategory(String value) {
|
||||
this.clearingMemberCategory = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package ru.clearing.classes.StaticData.Company;
|
||||
package ru.clearing.classes.statics.data.company;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.clearing.classes.StaticData.Profile.CompanyInfo;
|
||||
import ru.clearing.classes.statics.data.profile.CompanyInfo;
|
||||
import ru.clearing.classes.objects.BusinessObject;
|
||||
|
||||
import java.io.Serial;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.clearing.classes.StaticData.Company;
|
||||
package ru.clearing.classes.statics.data.company;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.clearing.classes.StaticData.Company;
|
||||
package ru.clearing.classes.statics.data.company;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.clearing.classes.StaticData.Company;
|
||||
package ru.clearing.classes.statics.data.company;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.clearing.classes.objects.BusinessEvent;
|
||||
|
|
@ -1,59 +1,58 @@
|
|||
package ru.clearing.classes.StaticData.Misc;
|
||||
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
||||
/**
|
||||
* Ключевая ставка ЦБ
|
||||
*
|
||||
* DB table: KEY_RATE
|
||||
**/
|
||||
public class KeyRate extends SpcexObjectBase {
|
||||
private BigDecimal rate;
|
||||
private Instant startDate;
|
||||
private Instant endDate;
|
||||
private String document;
|
||||
private String workflowStatus;
|
||||
|
||||
public BigDecimal getRate() {
|
||||
return rate;
|
||||
}
|
||||
|
||||
public void setRate(BigDecimal rate) {
|
||||
this.rate = rate;
|
||||
}
|
||||
|
||||
public Instant getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
public void setStartDate(Instant startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
public Instant getEndDate() {
|
||||
return endDate;
|
||||
}
|
||||
|
||||
public void setEndDate(Instant endDate) {
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public String getDocument() {
|
||||
return document;
|
||||
}
|
||||
|
||||
public void setDocument(String document) {
|
||||
this.document = document;
|
||||
}
|
||||
|
||||
public String getWorkflowStatus() {
|
||||
return workflowStatus;
|
||||
}
|
||||
|
||||
public void setWorkflowStatus(String workflowStatus) {
|
||||
this.workflowStatus = workflowStatus;
|
||||
}
|
||||
}
|
||||
package ru.clearing.classes.statics.data.misc;
|
||||
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
/**
|
||||
* Ключевая ставка ЦБ
|
||||
*
|
||||
* DB table: KEY_RATE
|
||||
**/
|
||||
public class KeyRate extends SpcexObjectBase {
|
||||
private Double rate;
|
||||
private Instant startDate;
|
||||
private Instant endDate;
|
||||
private String document;
|
||||
private String workflowStatus;
|
||||
|
||||
public Double getRate() {
|
||||
return rate;
|
||||
}
|
||||
|
||||
public void setRate(Double rate) {
|
||||
this.rate = rate;
|
||||
}
|
||||
|
||||
public Instant getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
public void setStartDate(Instant startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
public Instant getEndDate() {
|
||||
return endDate;
|
||||
}
|
||||
|
||||
public void setEndDate(Instant endDate) {
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public String getDocument() {
|
||||
return document;
|
||||
}
|
||||
|
||||
public void setDocument(String document) {
|
||||
this.document = document;
|
||||
}
|
||||
|
||||
public String getWorkflowStatus() {
|
||||
return workflowStatus;
|
||||
}
|
||||
|
||||
public void setWorkflowStatus(String workflowStatus) {
|
||||
this.workflowStatus = workflowStatus;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,95 +1,95 @@
|
|||
package ru.clearing.classes.StaticData.Misc;
|
||||
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
||||
/**
|
||||
* Инструменты Денежного рынка
|
||||
* <p>
|
||||
* DB table: MONEY_MARKET_SECURITY
|
||||
**/
|
||||
public class MoneyMarketSecurity extends SpcexObjectBase {
|
||||
private Long securityId;// (linked to security)
|
||||
private String description;
|
||||
private Instant startDate;
|
||||
private Instant endDate;
|
||||
private BigDecimal nominalValue;
|
||||
private Long nominalCurrency; // (linked to currencyCode)
|
||||
private String instrumentType; // (linked to instrumentType)
|
||||
private String fullName;
|
||||
private String securitySymbol;
|
||||
|
||||
public Long getSecurityId() {
|
||||
return securityId;
|
||||
}
|
||||
|
||||
public void setSecurityId(Long securityId) {
|
||||
this.securityId = securityId;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public Instant getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
public void setStartDate(Instant startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
public Instant getEndDate() {
|
||||
return endDate;
|
||||
}
|
||||
|
||||
public void setEndDate(Instant endDate) {
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public BigDecimal getNominalValue() {
|
||||
return nominalValue;
|
||||
}
|
||||
|
||||
public void setNominalValue(BigDecimal nominalValue) {
|
||||
this.nominalValue = nominalValue;
|
||||
}
|
||||
|
||||
public Long getNominalCurrency() {
|
||||
return nominalCurrency;
|
||||
}
|
||||
|
||||
public void setNominalCurrency(Long nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
}
|
||||
|
||||
public String getInstrumentType() {
|
||||
return instrumentType;
|
||||
}
|
||||
|
||||
public void setInstrumentType(String instrumentType) {
|
||||
this.instrumentType = instrumentType;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
public void setFullName(String fullName) {
|
||||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public String getSecuritySymbol() {
|
||||
return securitySymbol;
|
||||
}
|
||||
|
||||
public void setSecuritySymbol(String securitySymbol) {
|
||||
this.securitySymbol = securitySymbol;
|
||||
}
|
||||
}
|
||||
package ru.clearing.classes.statics.data.misc;
|
||||
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
||||
/**
|
||||
* Инструменты Денежного рынка
|
||||
* <p>
|
||||
* DB table: MONEY_MARKET_SECURITY
|
||||
**/
|
||||
public class MoneyMarketSecurity extends SpcexObjectBase {
|
||||
private Long securityId;// (linked to security)
|
||||
private String description;
|
||||
private Instant startDate;
|
||||
private Instant endDate;
|
||||
private BigDecimal nominalValue;
|
||||
private Long nominalCurrency; // (linked to currencyCode)
|
||||
private String instrumentType; // (linked to instrumentType)
|
||||
private String fullName;
|
||||
private String securitySymbol;
|
||||
|
||||
public Long getSecurityId() {
|
||||
return securityId;
|
||||
}
|
||||
|
||||
public void setSecurityId(Long securityId) {
|
||||
this.securityId = securityId;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public Instant getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
public void setStartDate(Instant startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
public Instant getEndDate() {
|
||||
return endDate;
|
||||
}
|
||||
|
||||
public void setEndDate(Instant endDate) {
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public BigDecimal getNominalValue() {
|
||||
return nominalValue;
|
||||
}
|
||||
|
||||
public void setNominalValue(BigDecimal nominalValue) {
|
||||
this.nominalValue = nominalValue;
|
||||
}
|
||||
|
||||
public Long getNominalCurrency() {
|
||||
return nominalCurrency;
|
||||
}
|
||||
|
||||
public void setNominalCurrency(Long nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
}
|
||||
|
||||
public String getInstrumentType() {
|
||||
return instrumentType;
|
||||
}
|
||||
|
||||
public void setInstrumentType(String instrumentType) {
|
||||
this.instrumentType = instrumentType;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
public void setFullName(String fullName) {
|
||||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public String getSecuritySymbol() {
|
||||
return securitySymbol;
|
||||
}
|
||||
|
||||
public void setSecuritySymbol(String securitySymbol) {
|
||||
this.securitySymbol = securitySymbol;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.clearing.classes.StaticData.Profile;
|
||||
package ru.clearing.classes.statics.data.profile;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.clearing.classes.StaticData.Profile;
|
||||
package ru.clearing.classes.statics.data.profile;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.clearing.classes.StaticData.Profile;
|
||||
package ru.clearing.classes.statics.data.profile;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.clearing.classes.StaticData.User;
|
||||
package ru.clearing.classes.statics.data.user;
|
||||
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
70
clearing-parent/company-service/pom.xml
Normal file
70
clearing-parent/company-service/pom.xml
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>clearing-parent</artifactId>
|
||||
<groupId>ru.spcex.clearing</groupId>
|
||||
<version>SPCEX-1.0.0.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>company-service</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ru.spcex.platform</groupId>
|
||||
<artifactId>platform-messaging</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.spcex.platform</groupId>
|
||||
<artifactId>platform-imdg-api-hazelcast-impl</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.spcex.clearing</groupId>
|
||||
<artifactId>classes</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<excludes>
|
||||
<exclude>application.properties</exclude>
|
||||
</excludes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package ru.spcex.clearing.company;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class CompanyServiceApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication app = new SpringApplication(CompanyServiceApplication.class);
|
||||
app.run(args);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package ru.spcex.clearing.company.config;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import ru.spcex.clearing.company.config.settings.CompanyServiceSettings;
|
||||
import ru.spcex.clearing.platform.messaging.config.KafkaConsumerFactory;
|
||||
|
||||
@Configuration
|
||||
public class KafkaConfig {
|
||||
@Autowired
|
||||
@Bean
|
||||
public Consumer<String, Object> createProducer(CompanyServiceSettings settings) {
|
||||
return KafkaConsumerFactory.consumer(settings.getKafka());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package ru.spcex.clearing.company.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import ru.spcex.clearing.company.config.settings.CompanyServiceSettings;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
@Configuration
|
||||
public class UtilityServiceImdgConfig {
|
||||
private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) {
|
||||
ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();
|
||||
if (maxPoolSz > 2) {
|
||||
pool.setKeepAliveSeconds(60);
|
||||
pool.setAllowCoreThreadTimeOut(true);
|
||||
}
|
||||
pool.setCorePoolSize(maxPoolSz);
|
||||
pool.setWaitForTasksToCompleteOnShutdown(waitForCompletion);
|
||||
return pool;
|
||||
}
|
||||
|
||||
@Bean(name = "taskExecutorHazelcastClientInitializer")
|
||||
public ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer() {
|
||||
return createThreadPoolTaskExecutor(1, true);
|
||||
}
|
||||
|
||||
@Bean(name = "taskExecutorIdGeneratorAwaiter")
|
||||
public ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter() {
|
||||
return createThreadPoolTaskExecutor(1, false);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
@Bean
|
||||
public ImdgProvider imdgProvider(
|
||||
@Qualifier("taskExecutorHazelcastClientInitializer") ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer,
|
||||
@Qualifier("taskExecutorIdGeneratorAwaiter") ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter,
|
||||
CompanyServiceSettings settings
|
||||
) {
|
||||
return new HazelcastService(taskExecutorHazelcastClientInitializer,
|
||||
taskExecutorIdGeneratorAwaiter,
|
||||
settings.getHazelcast());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package ru.spcex.clearing.company.config.settings;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams;
|
||||
|
||||
@Component
|
||||
@PropertySource("file:${spring.config.location}/application.properties")
|
||||
@ConfigurationProperties("utility-service")
|
||||
public class CompanyServiceSettings {
|
||||
private HazelcastClientParams hazelcast;
|
||||
private KafkaConsumerSettings kafka;
|
||||
|
||||
public HazelcastClientParams getHazelcast() {
|
||||
return hazelcast;
|
||||
}
|
||||
|
||||
public void setHazelcast(HazelcastClientParams hazelcast) {
|
||||
this.hazelcast = hazelcast;
|
||||
}
|
||||
|
||||
public KafkaConsumerSettings getKafka() {
|
||||
return kafka;
|
||||
}
|
||||
|
||||
public void setKafka(KafkaConsumerSettings kafka) {
|
||||
this.kafka = kafka;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package ru.spcex.clearing.company.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.profile.CompanyInfo;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyInfoUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
@Service
|
||||
public class CompanyInfoService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<CompanyInfo> companyInfoMap;
|
||||
|
||||
@Autowired
|
||||
public CompanyInfoService(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider) {
|
||||
super(kafkaQueue);
|
||||
this.companyInfoMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, CompanyInfo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(CompanyInfoUpdateRequest.class)
|
||||
.setConsumer(this::companyInfoUpdate)
|
||||
.forDestination(Consts.DESTINATION_COMPANY_INFO_UPDATE, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
public void companyInfoUpdate(BaseRequest<CompanyInfoUpdateRequest> userRequest) {
|
||||
CompanyInfoUpdateRequest req = userRequest.getRequestPayload();
|
||||
log.debug("CompanyInfoUpdateRequest received");
|
||||
CompanyInfo companyInfo = companyInfoMap.getSingleObjectByID(req.getId());
|
||||
|
||||
companyInfo.setCorporationSoleType(req.getCorporationSoleType());
|
||||
companyInfo.setCountryCode(req.getCountryCode());
|
||||
companyInfo.setDescription(req.getDescription());
|
||||
companyInfo.setProfessionalSign(req.getProfessionalSign());
|
||||
companyInfo.setLegalKind(req.getLegalKind());
|
||||
companyInfo.setOrganizationType(req.getOrganizationType());
|
||||
companyInfo.setResidence(req.getResidence());
|
||||
companyInfo.setShortNameEng(req.getShortNameEng());
|
||||
companyInfo.setFullNameEng(req.getFullNameEng());
|
||||
companyInfo.setShortName(req.getShortName());
|
||||
companyInfo.setFullName(req.getFullName());
|
||||
companyInfoMap.update(companyInfo);
|
||||
log.debug("successfully processed, id {}", companyInfo.getId());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
package ru.spcex.clearing.company.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
@Service
|
||||
public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<Company> companyMap;
|
||||
|
||||
@Autowired
|
||||
public CompanyService(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider) {
|
||||
super(kafkaQueue);
|
||||
this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(CommonDeleteRequest.class)
|
||||
.setConsumer(this::deleteCompany)
|
||||
.forDestination(Consts.DESTINATION_COMPANY_DELETE, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
private void deleteCompany(BaseRequest<CommonDeleteRequest> userRequest) {
|
||||
CommonDeleteRequest req = userRequest.getRequestPayload();
|
||||
log.debug("CommonDeleteRequest received id = {}", req.getId());
|
||||
Company company = companyMap.getSingleObjectByID(req.getId());
|
||||
companyMap.delete(company);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package ru.spcex.clearing.company.service;
|
||||
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
@Service
|
||||
public class CompanySymbolService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<CompanySymbols> companySymbolsMap;
|
||||
|
||||
@Autowired
|
||||
public CompanySymbolService(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider) {
|
||||
super(kafkaQueue);
|
||||
this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(CompanySymbolUpdateRequest.class)
|
||||
.setConsumer(this::companySymbolUpdate)
|
||||
.forDestination(Consts.DESTINATION_COMPANY_SYMBOL_UPDATE, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
public void companySymbolUpdate(BaseRequest<CompanySymbolUpdateRequest> userRequest) {
|
||||
CompanySymbolUpdateRequest req = userRequest.getRequestPayload();
|
||||
log.debug("CompanySymbolUpdateRequest received");
|
||||
CompanySymbols companySymbols = companySymbolsMap.getSingleObjectByID(req.getId());
|
||||
companySymbols.setCompanySymbol(req.getCompanySymbol());
|
||||
companySymbols.setCompanySymbolValue(req.getCompanySymbolValue());
|
||||
|
||||
companySymbolsMap.update(companySymbols);
|
||||
log.debug("successfully processed, id {}", companySymbols.getId());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package ru.spcex.clearing.company.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import ru.clearing.classes.statics.data.profile.Contact;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
public class ContactService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<Contact> contactMap;
|
||||
|
||||
@Autowired
|
||||
public ContactService(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider) {
|
||||
super(kafkaQueue);
|
||||
this.contactMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, Contact.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(ContactUpdateRequest.class)
|
||||
.setConsumer(this::contactUpdate)
|
||||
.forDestination(Consts.DESTINATION_CONTACT_UPDATE, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
public void contactUpdate(BaseRequest<ContactUpdateRequest> userRequest) {
|
||||
ContactUpdateRequest req = userRequest.getRequestPayload();
|
||||
log.debug("CompanySymbolUpdateRequest received");
|
||||
Contact contact = contactMap.getSingleObjectByID(req.getId());
|
||||
contact.setContactType(req.getContactType());
|
||||
contact.setContactValue(req.getContactValue());
|
||||
|
||||
contactMap.update(contact);
|
||||
log.debug("successfully processed, id {}", contact.getId());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
spring.main.web-application-type=none
|
||||
|
||||
utility-service.hazelcast.cluster-members=127.0.0.1
|
||||
utility-service.hazelcast.login=dev
|
||||
utility-service.hazelcast.password=dev-pass
|
||||
|
||||
utility-service.kafka.bootstrap-servers=localhost:9092
|
||||
utility-service.kafka.group-id=dev-group
|
||||
utility-service.kafka.enable-auto-commit=false
|
||||
utility-service.kafka.session-timeout-ms=30000
|
||||
utility-service.kafka.auto-offset-reset=latest
|
||||
utility-service.kafka.linger-ms=1
|
||||
utility-service.kafka.buffer-memory=33554432
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<!-- |%X{ru.nbch.scoring.web.logging.mdc_key}-->
|
||||
<Pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %class{0}:%line - %message%n</Pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>./logs/company-service.log</file>
|
||||
<encoder>
|
||||
<!-- |%X{ru.nbch.scoring.web.logging.mdc_key}-->
|
||||
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class{0}:%msg%n</Pattern>
|
||||
<charset>utf8</charset>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||
<fileNamePattern>
|
||||
./logs/company-service.%i.log
|
||||
</fileNamePattern>
|
||||
<minIndex>1</minIndex>
|
||||
<maxIndex>10</maxIndex>
|
||||
</rollingPolicy>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
</triggeringPolicy>
|
||||
</appender>
|
||||
|
||||
<root level="warn">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
|
||||
<logger name="ru.spcex" level="debug" additivity="false">
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
</configuration>
|
||||
|
|
@ -1,6 +1,26 @@
|
|||
-- DB version: 0.0.0.5
|
||||
/* Dictionaries */
|
||||
|
||||
-- interestStatus - Справочник статусов возваращения процентов
|
||||
CREATE TABLE IF NOT EXISTS INTEREST_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255));
|
||||
COMMENT ON TABLE INTEREST_STATUS_DICTIONARY IS 'Справочник статусов возваращения процентов';
|
||||
|
||||
COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.ID IS 'Идентификатор записи';
|
||||
|
||||
COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.CODE IS 'Код';
|
||||
|
||||
COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.NAME IS 'Наименование';
|
||||
|
||||
-- clearingStatus - Справочник результатов клиринга
|
||||
CREATE TABLE IF NOT EXISTS CLEARING_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255));
|
||||
COMMENT ON TABLE CLEARING_STATUS_DICTIONARY IS 'Справочник результатов клиринга';
|
||||
|
||||
COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.ID IS 'Идентификатор записи';
|
||||
|
||||
COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.CODE IS 'Код';
|
||||
|
||||
COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.NAME IS 'Наименование';
|
||||
|
||||
-- workflowStatus - Справочник статусов бизнес-процессов
|
||||
CREATE TABLE IF NOT EXISTS WORKFLOW_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255));
|
||||
COMMENT ON TABLE WORKFLOW_STATUS_DICTIONARY IS 'Справочник статусов бизнес-процессов';
|
||||
|
|
@ -253,7 +273,7 @@ COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.CODE IS 'Код';
|
|||
|
||||
COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.NAME IS 'Статус обработки';
|
||||
|
||||
-- extError -
|
||||
-- extError -
|
||||
CREATE TABLE IF NOT EXISTS EXT_ERROR_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255));
|
||||
COMMENT ON TABLE EXT_ERROR_DICTIONARY IS '';
|
||||
|
||||
|
|
@ -305,9 +325,9 @@ COMMENT ON COLUMN COMPANY.CREATED_AT IS 'Дата и время создания
|
|||
|
||||
COMMENT ON COLUMN COMPANY.UPDATED_AT IS 'Дата и время изменения записи';
|
||||
|
||||
COMMENT ON COLUMN COMPANY.TRADING_CODE IS 'Торговый код';
|
||||
COMMENT ON COLUMN COMPANY.TRADING_CODE IS 'Код участника торгов';
|
||||
|
||||
COMMENT ON COLUMN COMPANY.CLEARING_CODE IS 'Клиринговый код';
|
||||
COMMENT ON COLUMN COMPANY.CLEARING_CODE IS 'Код участника клиринга';
|
||||
|
||||
COMMENT ON COLUMN COMPANY.WORKFLOW_STATUS IS 'Статус (linked to workflowStatus)';
|
||||
|
||||
|
|
@ -316,7 +336,7 @@ COMMENT ON COLUMN COMPANY.SHORT_NAME IS 'Краткое наименование
|
|||
COMMENT ON COLUMN COMPANY.FULL_NAME IS 'Полное наименование Компании';
|
||||
|
||||
-- companyInfo - Профиль Компании
|
||||
CREATE TABLE IF NOT EXISTS COMPANY_INFO(ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar, PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255));
|
||||
CREATE TABLE IF NOT EXISTS COMPANY_INFO(ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar, PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), TRADING_CODE varchar(255), CLEARING_CODE varchar(255));
|
||||
COMMENT ON TABLE COMPANY_INFO IS 'Профиль Компании';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO.ID IS 'Идентификатор записи';
|
||||
|
|
@ -341,9 +361,17 @@ COMMENT ON COLUMN COMPANY_INFO.SHORT_NAME_ENG IS 'Краткое наимено
|
|||
|
||||
COMMENT ON COLUMN COMPANY_INFO.FULL_NAME_ENG IS 'Полное наименование Компании на английском';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO.SHORT_NAME IS 'Краткое наименование Компании';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO.FULL_NAME IS 'Полное наименование Компании';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO.TRADING_CODE IS 'Код участника торгов';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO.CLEARING_CODE IS 'Код участника клиринга';
|
||||
|
||||
|
||||
-- Update log of companyInfo - Профиль Компании
|
||||
CREATE TABLE IF NOT EXISTS COMPANY_INFO_UPDATE(COMPANY_INFO_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar, PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255));
|
||||
CREATE TABLE IF NOT EXISTS COMPANY_INFO_UPDATE(COMPANY_INFO_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar, PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), TRADING_CODE varchar(255), CLEARING_CODE varchar(255) );
|
||||
COMMENT ON TABLE COMPANY_INFO_UPDATE IS 'Журнал изменений таблицы companyInfo';
|
||||
COMMENT ON COLUMN COMPANY_INFO_UPDATE.COMPANY_INFO_ID IS 'Идентификатор записи в таблице COMPANY_INFO';
|
||||
COMMENT ON COLUMN COMPANY_INFO_UPDATE.EVENT_TIME IS 'Дата и время изменения';
|
||||
|
|
@ -371,6 +399,14 @@ COMMENT ON COLUMN COMPANY_INFO_UPDATE.SHORT_NAME_ENG IS 'Краткое наим
|
|||
|
||||
COMMENT ON COLUMN COMPANY_INFO_UPDATE.FULL_NAME_ENG IS 'Полное наименование Компании на английском';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO_UPDATE.SHORT_NAME IS 'Краткое наименование Компании';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO_UPDATE.FULL_NAME IS 'Полное наименование Компании';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO_UPDATE.TRADING_CODE IS 'Код участника торгов';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_INFO_UPDATE.CLEARING_CODE IS 'Код участника клиринга';
|
||||
|
||||
-- clearingMemberCategory - Категории участника клиринга
|
||||
CREATE TABLE IF NOT EXISTS CLEARING_MEMBER_CATEGORY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CLEARING_MEMBER_CATEGORY char(4));
|
||||
COMMENT ON TABLE CLEARING_MEMBER_CATEGORY IS 'Категории участника клиринга';
|
||||
|
|
@ -860,7 +896,7 @@ COMMENT ON COLUMN LISTING_UPDATE.TRADING_CURRENCY IS 'Идентификатор
|
|||
COMMENT ON COLUMN LISTING_UPDATE.WORKFLOW_STATUS IS 'Идентификатор статуса листинга в системе (linked to workflowStatus)';
|
||||
|
||||
-- market - Торговые площадки
|
||||
CREATE TABLE IF NOT EXISTS MARKET(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), MARKET_CODE varchar(255), SETTLEMENT_CURRENCY char(4), SECTOR char(4));
|
||||
CREATE TABLE IF NOT EXISTS MARKET(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE char(4), SETTLEMENT_CURRENCY char(4), SECTOR char(4));
|
||||
COMMENT ON TABLE MARKET IS 'Торговые площадки';
|
||||
|
||||
COMMENT ON COLUMN MARKET.ID IS 'Идентификатор записи';
|
||||
|
|
@ -875,7 +911,7 @@ COMMENT ON COLUMN MARKET.EXCHANGE_ID IS 'Идентификатор площад
|
|||
|
||||
COMMENT ON COLUMN MARKET.NAME IS 'Наименование';
|
||||
|
||||
COMMENT ON COLUMN MARKET.MARKET_CODE IS 'Режим';
|
||||
COMMENT ON COLUMN MARKET.CODE IS 'Режим';
|
||||
|
||||
COMMENT ON COLUMN MARKET.SETTLEMENT_CURRENCY IS 'Валютный код расчетов (linked to currency)';
|
||||
|
||||
|
|
@ -883,7 +919,7 @@ COMMENT ON COLUMN MARKET.SECTOR IS 'Идентификатор сектора (l
|
|||
|
||||
|
||||
-- Update log of market - Торговые площадки
|
||||
CREATE TABLE IF NOT EXISTS MARKET_UPDATE(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), MARKET_CODE varchar(255), SETTLEMENT_CURRENCY char(4), SECTOR char(4));
|
||||
CREATE TABLE IF NOT EXISTS MARKET_UPDATE(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE char(4), SETTLEMENT_CURRENCY char(4), SECTOR char(4));
|
||||
COMMENT ON TABLE MARKET_UPDATE IS 'Журнал изменений таблицы market';
|
||||
COMMENT ON COLUMN MARKET_UPDATE.MARKET_ID IS 'Идентификатор записи в таблице MARKET';
|
||||
COMMENT ON COLUMN MARKET_UPDATE.EVENT_TIME IS 'Дата и время изменения';
|
||||
|
|
@ -901,7 +937,7 @@ COMMENT ON COLUMN MARKET_UPDATE.EXCHANGE_ID IS 'Идентификатор пл
|
|||
|
||||
COMMENT ON COLUMN MARKET_UPDATE.NAME IS 'Наименование';
|
||||
|
||||
COMMENT ON COLUMN MARKET_UPDATE.MARKET_CODE IS 'Режим';
|
||||
COMMENT ON COLUMN MARKET_UPDATE.CODE IS 'Режим';
|
||||
|
||||
COMMENT ON COLUMN MARKET_UPDATE.SETTLEMENT_CURRENCY IS 'Валютный код расчетов (linked to currency)';
|
||||
|
||||
|
|
@ -1193,7 +1229,7 @@ COMMENT ON COLUMN CONTRACT_REGISTER.VALID_FROM_DATE IS 'Дата начала с
|
|||
COMMENT ON COLUMN CONTRACT_REGISTER.VALID_TO_DATE IS 'Дата окончания срока действия';
|
||||
|
||||
-- liabilitiesClaimsMoney - Требования и обязательства денежных средств
|
||||
CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_MONEY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT bigint, LIABILITIES_AMOUNT numeric(72,2), CLAIMS_AMOUNT numeric(72,2), SETTLEMENT_DATE date, TRADING_DATE date, CURRENCY_CODE char(4), TRADING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255));
|
||||
CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_MONEY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT bigint, LIABILITIES_AMOUNT numeric(72,2), REFUND_INTEREST numeric(72,2), ACCRUED_INTEREST numeric(72,2), CLAIMS_AMOUNT numeric(72,2), SETTLEMENT_DATE date, TRADING_DATE date, CURRENCY char(4), TRADING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255));
|
||||
COMMENT ON TABLE LIABILITIES_CLAIMS_MONEY IS 'Требования и обязательства денежных средств';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ID IS 'Идентификатор записи';
|
||||
|
|
@ -1210,15 +1246,19 @@ COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_TYPE IS 'Тип счета (l
|
|||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT IS 'Счет (linked to account)';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.LIABILITIES_AMOUNT IS 'Регистр «Обязательства по денежным средствам, сформированные по результатам собственных сделок Участника клиринга»';
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.LIABILITIES_AMOUNT IS 'Регистр «Обязательства по денежным средствам, сформированные по результатам собственных сделок Участника клиринга», исключая проценты';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLAIMS_AMOUNT IS 'Сумма требований';
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.REFUND_INTEREST IS 'Проценты к возврату';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCRUED_INTEREST IS 'Начисленные проценты';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLAIMS_AMOUNT IS 'Сумма требований, исключая проценты';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SETTLEMENT_DATE IS 'Дата расчета';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_DATE IS 'Дата торгов';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CURRENCY_CODE IS 'Код валюты (linked to currency)';
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CURRENCY IS 'Код валюты (linked to currencyCode)';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_CODE IS 'Торговый код Участника (linked to company)';
|
||||
|
||||
|
|
@ -1227,7 +1267,7 @@ COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SHORT_NAME IS 'Короткое на
|
|||
COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.FULL_NAME IS 'Полное наименование Участника (linked to company)';
|
||||
|
||||
-- liabilitiesClaimsAssets - Требования и обязательства финансовых активов
|
||||
CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_ASSETS(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT bigint, LIABILITIES_QUANTITY numeric(72,18), CLAIMS_QUANTITY numeric(72,18), SETTLEMENT_DATE date, TRADING_DATE date, REFUND_DATE date, SECURITY_ID bigint, TRADING_CODE varchar(255), SHORT_NAME varchar(255), CONTRACT varchar(255), COMMENT varchar(255), FULL_NAME varchar(255), PARENT_ID bigint);
|
||||
CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_ASSETS(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT bigint, LIABILITIES_QUANTITY numeric(72,18), CLAIMS_QUANTITY numeric(72,18), CURRENCY char(4), SETTLEMENT_DATE date, TRADING_DATE date, REFUND_DATE date, PRICE numeric(72,18), SECURITY_ID bigint, TRADING_CODE varchar(255), SHORT_NAME varchar(255), CONTRACT varchar(255), COMMENT varchar(255), FULL_NAME varchar(255), PARENT_ID bigint, LIABILITIES_CLAIMS_MONEY_ID bigint, INTEREST_STATUS bigint, CLEARING_STATUS bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint);
|
||||
COMMENT ON TABLE LIABILITIES_CLAIMS_ASSETS IS 'Требования и обязательства финансовых активов';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ID IS 'Идентификатор записи';
|
||||
|
|
@ -1248,12 +1288,16 @@ COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_QUANTITY IS 'Сумма
|
|||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLAIMS_QUANTITY IS 'Сумма требований';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CURRENCY IS 'Код валюты (linked to currencyCode)';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SETTLEMENT_DATE IS 'Дата расчета';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_DATE IS 'Дата торгов';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_DATE IS 'Дата возврата';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PRICE IS 'Ставка по депозиту';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SECURITY_ID IS 'Инструмент (linked to security)';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_CODE IS 'Торговый код Участника (linked to company)';
|
||||
|
|
@ -1268,6 +1312,16 @@ COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.FULL_NAME IS 'Полное наим
|
|||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PARENT_ID IS 'Идентификатор записи основного договора без разделения';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_CLAIMS_MONEY_ID IS 'Регистры денежных средств (linked to liabilitiesClaimsMoney)';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.INTEREST_STATUS IS 'Статус возврата процентов (linked to interestStatus)';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_STATUS IS 'Статус клиринга (linked to clearingStatus)';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PAYMENT_ID IS 'Платеж';
|
||||
|
||||
COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_PAYMENT_ID IS 'Обратный платежа';
|
||||
|
||||
-- statement - Денежные средства от расчетной организации
|
||||
CREATE TABLE IF NOT EXISTS STATEMENT(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, STATEMENT_TYPE_ID bigint, COMMENT varchar(255), ACCOUNT_ID bigint, ACCOUNT bigint, IN_OUT_DIRECTION bigint, SETTLEMENT_DATE date, AMOUNT numeric(72,2), CASH_MOVEMENTCURRENCY_CODE char(4), STATUS_ID bigint);
|
||||
COMMENT ON TABLE STATEMENT IS 'Денежные средства от расчетной организации';
|
||||
|
|
@ -1386,6 +1440,144 @@ COMMENT ON COLUMN MARKET_DATA.UPDATED_AT IS 'Время изменения сд
|
|||
|
||||
COMMENT ON COLUMN MARKET_DATA.TRADING_DATE IS 'Дата торгов';
|
||||
|
||||
-- chargeTariff - Тарифы комиссий
|
||||
CREATE TABLE IF NOT EXISTS CHARGE_TARIFF(ID bigint PRIMARY KEY, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp);
|
||||
COMMENT ON TABLE CHARGE_TARIFF IS 'Тарифы комиссий';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.ID IS 'Идентификатор';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.MARKET IS 'Секция (linked to market)';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.CREATED_AT IS 'Создано';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF.UPDATED_AT IS 'Изменено';
|
||||
|
||||
|
||||
-- Update log of chargeTariff - Тарифы комиссий
|
||||
CREATE TABLE IF NOT EXISTS CHARGE_TARIFF_UPDATE(CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp);
|
||||
COMMENT ON TABLE CHARGE_TARIFF_UPDATE IS 'Журнал изменений таблицы chargeTariff';
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице CHARGE_TARIFF';
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.EVENT_TIME IS 'Дата и время изменения';
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.EVENT_USER_ID IS 'Инициатор изменения';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.ID IS 'Идентификатор';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.MARKET IS 'Секция (linked to market)';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CHARGE_RATE IS 'Ставка комиссионного сбора';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.VALID_FROM_DATE IS 'Дата начала срока действия';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.VALID_TO_DATE IS 'Дата окончания срока действия';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.CREATED_AT IS 'Создано';
|
||||
|
||||
COMMENT ON COLUMN CHARGE_TARIFF_UPDATE.UPDATED_AT IS 'Изменено';
|
||||
|
||||
-- individualChargeTariff - Индивидуальные тарифы комиссий для Участника
|
||||
CREATE TABLE IF NOT EXISTS INDIVIDUAL_CHARGE_TARIFF(ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp);
|
||||
COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF IS 'Индивидуальные тарифы комиссий для Участника';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.ID IS 'Идентификатор';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.COMPANY_ID IS 'Участник (linked to company)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.MARKET IS 'Секция (linked to market)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CREATED_AT IS 'Создано';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.UPDATED_AT IS 'Изменено';
|
||||
|
||||
|
||||
-- Update log of individualChargeTariff - Индивидуальные тарифы комиссий для Участника
|
||||
CREATE TABLE IF NOT EXISTS INDIVIDUAL_CHARGE_TARIFF_UPDATE(INDIVIDUAL_CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp);
|
||||
COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF_UPDATE IS 'Журнал изменений таблицы individualChargeTariff';
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.INDIVIDUAL_CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице INDIVIDUAL_CHARGE_TARIFF';
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.EVENT_TIME IS 'Дата и время изменения';
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.EVENT_USER_ID IS 'Инициатор изменения';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.ID IS 'Идентификатор';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.COMPANY_ID IS 'Участник (linked to company)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.MARKET IS 'Секция (linked to market)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CHARGE_RATE IS 'Ставка комиссионного сбора';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.VALID_FROM_DATE IS 'Дата начала срока действия';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.VALID_TO_DATE IS 'Дата окончания срока действия';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.CREATED_AT IS 'Создано';
|
||||
|
||||
COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_UPDATE.UPDATED_AT IS 'Изменено';
|
||||
|
||||
-- companyTariff - Тарифы комиссий в разрезе Участника
|
||||
CREATE TABLE IF NOT EXISTS COMPANY_TARIFF(ID bigint PRIMARY KEY, MARKET bigint, CLEARING_MEMBER_CATEGORY char(4), FULL_NAME varchar(255), CONTRACT varchar(255), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint);
|
||||
COMMENT ON TABLE COMPANY_TARIFF IS 'Тарифы комиссий в разрезе Участника';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.ID IS 'Идентификатор';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.MARKET IS 'Секция (linked to market)';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.FULL_NAME IS 'Полное наименование Участника (linked to company)';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.CONTRACT IS 'Номер договора';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.CREATED_AT IS 'Создано';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.UPDATED_AT IS 'Изменено';
|
||||
|
||||
COMMENT ON COLUMN COMPANY_TARIFF.COMPANY_ID IS 'Участник (linked to company)';
|
||||
|
||||
-- sDf01 - ДФ 02 - Направление уведомлений об операциях загрузки
|
||||
CREATE TABLE IF NOT EXISTS S_DF01(ID bigint PRIMARY KEY, DATE date, CURR_CODE char(4), ACCOUNT varchar(25), REMAINDER_SUM varchar(20), DEAL char(4), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(1), ACC_TYPE varchar(1), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), RESULT_CODE varchar(1), ERROR_TEXT varchar(255), EXT_ERROR_CODE char(4));
|
||||
COMMENT ON TABLE S_DF01 IS 'ДФ 02 - Направление уведомлений об операциях загрузки';
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ public abstract class ObjectBaseMapStore<T extends SpcexObjectBase> extends Simp
|
|||
return rs.getObject(columnName, Long.class);
|
||||
}
|
||||
|
||||
// todo отрефакторить метод - длинное название
|
||||
protected Instant getInstantFromTimestamp(ResultSet rs, String column) throws SQLException {
|
||||
Timestamp date = rs.getTimestamp(column);
|
||||
return date != null ? date.toInstant() : null;
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@ package ru.spcex.clearing.imdg.businessevent;
|
|||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.lang.NonNull;
|
||||
import ru.clearing.classes.StaticData.Company.Company;
|
||||
import ru.clearing.classes.StaticData.Company.CompanyUpdate;
|
||||
import ru.clearing.classes.StaticData.Profile.CompanyInfo;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanyUpdate;
|
||||
import ru.clearing.classes.statics.data.profile.CompanyInfo;
|
||||
import ru.spcex.clearing.imdg.base.BusinessEventMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,66 @@
|
|||
package ru.spcex.clearing.imdg.businessobject;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Account.Account;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
public class AccountMapStore extends TemplateMapStore<Account> {
|
||||
|
||||
public AccountMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapName() {
|
||||
return IMDGDistributedNames.Map_Account;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "ACCOUNT";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "CREATED_AT", "UPDATED_AT", "ACCOUNT", "ACCOUNT_TYPE", "RELATION_ID", "STATUS"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public Account objectReader(ResultSet resultSet) throws SQLException {
|
||||
Account object = new Account();
|
||||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT"));
|
||||
object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT"));
|
||||
object.setAccount(resultSet.getObject("ACCOUNT", String.class));
|
||||
object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class));
|
||||
object.setRelationId(resultSet.getObject("RELATION_ID", Long.class));
|
||||
object.setStatus(resultSet.getObject("STATUS", String.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] objectToField(Account object) {
|
||||
Object[] args = new Object[]{
|
||||
object.getId(),
|
||||
TimeUtil.fromInstant(object.getCreated()),
|
||||
TimeUtil.fromInstant(object.getUpdated()),
|
||||
object.getAccount(),
|
||||
object.getAccountType(),
|
||||
object.getRelationId(),
|
||||
object.getStatus()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
||||
}//todo updatemapstore !!!
|
||||
|
|
@ -4,8 +4,8 @@ import org.springframework.dao.support.DataAccessUtils;
|
|||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Company.Company;
|
||||
import ru.clearing.classes.StaticData.Profile.CompanyInfo;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.profile.CompanyInfo;
|
||||
import ru.spcex.clearing.imdg.base.BusinessObjectMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
package ru.spcex.clearing.imdg.businessobject;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Company.Relation.Relation;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
public class RelationMapStore extends TemplateMapStore<Relation> {
|
||||
|
||||
public RelationMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapName() {
|
||||
return IMDGDistributedNames.Map_Relation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RELATION";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "CREATED_AT", "UPDATED_AT", "CONSUMER_ID", "SUPPLIER_ID", "SERVICE_STATUS", "SERVICE_ID", "SERVICE_PRODUCT_ID", "COMMENT"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public Relation objectReader(ResultSet resultSet) throws SQLException {
|
||||
Relation object = new Relation();
|
||||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT"));
|
||||
object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT"));
|
||||
object.setConsumerId(resultSet.getObject("CONSUMER_ID", Long.class));
|
||||
object.setSupplierId(resultSet.getObject("SUPPLIER_ID", Long.class));
|
||||
object.setServiceStatus(resultSet.getObject("SERVICE_STATUS", String.class));
|
||||
object.setServiceId(resultSet.getObject("SERVICE_ID", Long.class));
|
||||
object.setServiceProductId(resultSet.getObject("SERVICE_PRODUCT_ID", Long.class));
|
||||
object.setComment(resultSet.getObject("COMMENT", String.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] objectToField(Relation object) {
|
||||
Object[] args = new Object[]{
|
||||
object.getId(),
|
||||
TimeUtil.fromInstant(object.getCreated()),
|
||||
TimeUtil.fromInstant(object.getUpdated()),
|
||||
object.getConsumerId(),
|
||||
object.getSupplierId(),
|
||||
object.getServiceStatus(),
|
||||
object.getServiceId(),
|
||||
object.getServiceProductId(),
|
||||
object.getComment()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
||||
}
|
||||
// todo Сделать BusinessEventMapStore RelationUpdateMapStore
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package ru.spcex.clearing.imdg.object;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Account.AccountRouting;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
public class AccountRoutingMapStore extends TemplateMapStore<AccountRouting> {
|
||||
|
||||
public AccountRoutingMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapName() {
|
||||
return IMDGDistributedNames.Map_AccountRouting;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "ACCOUNT_ROUTING";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "DESTINATION_ID", "RELATION_ID", "SOURCE_ID"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccountRouting objectReader(ResultSet resultSet) throws SQLException {
|
||||
AccountRouting object = new AccountRouting();
|
||||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setDestinationId(resultSet.getObject("DESTINATION_ID", Long.class));
|
||||
object.setRelationId(resultSet.getObject("RELATION_ID", Long.class));
|
||||
object.setSourceId(resultSet.getObject("SOURCE_ID", Long.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] objectToField(AccountRouting object) {
|
||||
Object[] args = new Object[]{
|
||||
object.getId(),
|
||||
object.getDestinationId(),
|
||||
object.getRelationId(),
|
||||
object.getSourceId()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
||||
}
|
||||
// todo Сделать BusinessEventMapStore AccountRoutingUpdateMapStore
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
package ru.spcex.clearing.imdg.object;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Account.BankAccount;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
public class BankAccountMapStore extends TemplateMapStore<BankAccount> {
|
||||
|
||||
public BankAccountMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapName() {
|
||||
return IMDGDistributedNames.Map_BankAccount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "BANK_ACCOUNT";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "ACCOUNT_ID", "BANK_IDENTIFICATION_CODE", "BANK_NAME", "CORRESPONDENT_ACCOUNT_NAME", "CURRENCY", "DESTINATION", "IBAN", "INTERNATIONAL_TRANSFER_SIGN", "SWIFT_CODE", "TAXPAYER_IDENTIFICATION_NUMBER", "TAX_REGISTRATION_REASON_CODE", "CORRESPONDENT_ACCOUNT"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public BankAccount objectReader(ResultSet resultSet) throws SQLException {
|
||||
BankAccount object = new BankAccount();
|
||||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class));
|
||||
object.setBankIdentificationCode(resultSet.getObject("BANK_IDENTIFICATION_CODE", String.class));
|
||||
object.setBankName(resultSet.getObject("BANK_NAME", String.class));
|
||||
object.setCorrespondentAccountName(resultSet.getObject("CORRESPONDENT_ACCOUNT_NAME", String.class));
|
||||
object.setCurrency(resultSet.getObject("CURRENCY", String.class));
|
||||
object.setDestination(resultSet.getObject("DESTINATION", String.class));
|
||||
object.setIban(resultSet.getObject("IBAN", String.class));
|
||||
object.setInternationalTransferSign(resultSet.getObject("INTERNATIONAL_TRANSFER_SIGN", String.class));
|
||||
object.setSwiftCode(resultSet.getObject("SWIFT_CODE", String.class));
|
||||
object.setTaxpayerIdentificationNumber(resultSet.getObject("TAXPAYER_IDENTIFICATION_NUMBER", String.class));
|
||||
object.setTaxRegistrationReasonCode(resultSet.getObject("TAX_REGISTRATION_REASON_CODE", String.class));
|
||||
object.setCorrespondentAccount(resultSet.getObject("CORRESPONDENT_ACCOUNT", String.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] objectToField(BankAccount object) {
|
||||
Object[] args = new Object[]{
|
||||
object.getId(),
|
||||
object.getAccountId(),
|
||||
object.getBankIdentificationCode(),
|
||||
object.getBankName(),
|
||||
object.getCorrespondentAccountName(),
|
||||
object.getCurrency(),
|
||||
object.getDestination(),
|
||||
object.getIban(),
|
||||
object.getInternationalTransferSign(),
|
||||
object.getSwiftCode(),
|
||||
object.getTaxpayerIdentificationNumber(),
|
||||
object.getTaxRegistrationReasonCode(),
|
||||
object.getCorrespondentAccount()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
||||
}
|
||||
// todo Сделать BusinessEventMapStore BankAccountUpdateMapStore
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
package ru.spcex.clearing.imdg.object;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Account.ClearingAccount;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
public class ClearingAccountMapStore extends TemplateMapStore<ClearingAccount> {
|
||||
|
||||
public ClearingAccountMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapName() {
|
||||
return IMDGDistributedNames.Map_ClearingAccount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "CLEARING_ACCOUNT";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "ACCOUNT_ID", "CASH_ACCOUNT_ID", "DEPO_ACCOUNT_ID", "SETTLEMENT_CODE"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClearingAccount objectReader(ResultSet resultSet) throws SQLException {
|
||||
ClearingAccount object = new ClearingAccount();
|
||||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class));
|
||||
object.setCashAccountId(resultSet.getObject("CASH_ACCOUNT_ID", Long.class));
|
||||
object.setDepoAccountId(resultSet.getObject("DEPO_ACCOUNT_ID", Long.class));
|
||||
object.setSettlementCode(resultSet.getObject("SETTLEMENT_CODE", String.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] objectToField(ClearingAccount object) {
|
||||
Object[] args = new Object[]{
|
||||
object.getId(),
|
||||
object.getAccountId(),
|
||||
object.getCashAccountId(),
|
||||
object.getDepoAccountId(),
|
||||
object.getSettlementCode()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
||||
}
|
||||
// todo Сделать BusinessEventMapStore ClearingAccountUpdateMapStore
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package ru.spcex.clearing.imdg.object;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.generated.ClearingMemberCategory;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
@Component
|
||||
public class ClearingMemberCategoryMapStore extends TemplateMapStore<ClearingMemberCategory> {
|
||||
|
||||
public ClearingMemberCategoryMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapName() {
|
||||
return IMDGDistributedNames.Map_ClearingMemberCategory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "CLEARING_MEMBER_CATEGORY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "COMPANY_ID", "CLEARING_MEMBER_CATEGORY"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClearingMemberCategory objectReader(ResultSet resultSet) throws SQLException {
|
||||
ClearingMemberCategory object = new ClearingMemberCategory();
|
||||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class));
|
||||
object.setClearingMemberCategory(resultSet.getObject("CLEARING_MEMBER_CATEGORY", String.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] objectToField(ClearingMemberCategory object) {
|
||||
Object[] args = new Object[]{
|
||||
object.getId(),
|
||||
object.getCompanyId(),
|
||||
object.getClearingMemberCategory()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@ package ru.spcex.clearing.imdg.object;
|
|||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Company.CompanyRoleSet;
|
||||
import ru.clearing.classes.statics.data.company.CompanyRoleSet;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package ru.spcex.clearing.imdg.object;
|
|||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.spcex.clearing.imdg.base.ObjectBaseMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package ru.spcex.clearing.imdg.object;
|
|||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Profile.Contact;
|
||||
import ru.clearing.classes.statics.data.profile.Contact;
|
||||
import ru.spcex.clearing.imdg.base.ObjectBaseMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,11 @@ package ru.spcex.clearing.imdg.object;
|
|||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Misc.KeyRate;
|
||||
import ru.clearing.classes.statics.data.misc.KeyRate;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
|
|
@ -42,7 +41,7 @@ public class KeyRateMapStore extends TemplateMapStore<KeyRate> {
|
|||
protected KeyRate objectReader(ResultSet resultSet) throws SQLException {
|
||||
KeyRate keyRate = new KeyRate();
|
||||
keyRate.setId(resultSet.getObject("ID", Long.class));
|
||||
keyRate.setRate(resultSet.getObject("RATE", BigDecimal.class));
|
||||
keyRate.setRate(resultSet.getObject("RATE", Double.class));
|
||||
keyRate.setStartDate(getInstantFromTimestamp(resultSet,"START_DATE"));
|
||||
keyRate.setEndDate(getInstantFromTimestamp(resultSet, "END_DATE"));
|
||||
keyRate.setDocument(resultSet.getObject("DOCUMENT", String.class));
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package ru.spcex.clearing.imdg.object;
|
|||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Misc.MoneyMarketSecurity;
|
||||
import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity;
|
||||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package ru.spcex.clearing.imdg.object;
|
|||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.StaticData.Profile.ProfileDocument;
|
||||
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
||||
import ru.spcex.clearing.imdg.base.ObjectBaseMapStore;
|
||||
import ru.spcex.clearing.imdg.utils.DbUtilsHelper;
|
||||
import ru.spcex.clearing.imdg.utils.TimeUtil;
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.StaticData.Company.Company;
|
||||
import ru.clearing.classes.StaticData.Company.CompanyUpdate;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanyUpdate;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
||||
@Service
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@
|
|||
<module>dbf-importer</module>
|
||||
<module>dbf-exporter</module>
|
||||
<module>securities-service</module>
|
||||
<module>utility-service</module>
|
||||
<module>company-service</module>
|
||||
<module>reports-service</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
|
|
|
|||
62
clearing-parent/reports-service/pom.xml
Normal file
62
clearing-parent/reports-service/pom.xml
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>reports-service</artifactId>
|
||||
<name>reports-service</name>
|
||||
<description>Service for creating reports</description>
|
||||
<version>SPCEX-1.0.0.0</version>
|
||||
|
||||
<parent>
|
||||
<artifactId>clearing</artifactId>
|
||||
<groupId>ru.spcex.clearing</groupId>
|
||||
<version>SPCEX-1.0.0.0</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<!-- Spring boot -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-xml</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.thoughtworks.xstream</groupId>
|
||||
<artifactId>xstream</artifactId>
|
||||
<version>1.4.19</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package ru.spcex.clearing.reports_service;
|
||||
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import ru.spcex.clearing.reports_service.services.ReportsService;
|
||||
|
||||
@SpringBootApplication
|
||||
public class ReportsServiceApplication {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
SpringApplicationBuilder builder = new SpringApplicationBuilder(ReportsServiceApplication.class);
|
||||
builder.run(args);
|
||||
} catch (Throwable e) {
|
||||
LoggerFactory.getLogger(ReportsServiceApplication.class).error("DBF-Loader start failed: {} -> {}", e.getClass().getSimpleName(), e.getMessage());
|
||||
System.exit(-1);
|
||||
}
|
||||
ReportsService reportsService = new ReportsService();
|
||||
reportsService.writeXML(null);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package ru.spcex.clearing.reports_service.config;
|
||||
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@EnableConfigurationProperties
|
||||
@ComponentScan(basePackages = {"ru.spcex.clearing.reports_service"})
|
||||
public class ReportsServiceConfig {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package ru.spcex.clearing.reports_service.controller;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
@Controller("/")
|
||||
public class DefaultController implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, path = "/test", produces = MediaType.TEXT_PLAIN_VALUE)
|
||||
@ResponseBody
|
||||
public String processGet() {
|
||||
log.info("Call test method for exporter controller");
|
||||
return "exporter controller test method";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
log.info("controller started");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
package ru.spcex.clearing.reports_service.exceptions;
|
||||
|
||||
public class ConfigException extends RuntimeException {
|
||||
public ConfigException(String msg) { super(msg); }
|
||||
public ConfigException(String msg, Throwable cause) { super(msg, cause); }
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package ru.spcex.clearing.reports_service.properties;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component("reportsServiceProperties")
|
||||
public class AProperties {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package ru.spcex.clearing.reports_service.services;
|
||||
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import com.thoughtworks.xstream.io.AbstractDriver;
|
||||
import ru.spcex.clearing.reports_service.xml_test.ChildElementForWrite;
|
||||
import ru.spcex.clearing.reports_service.xml_test.CustomLocalDateConverter;
|
||||
import ru.spcex.clearing.reports_service.xml_test.RootElementForWrite;
|
||||
|
||||
public class ReportsService {
|
||||
public void writeXML(AbstractDriver driver) {
|
||||
XStream xStream = driver == null ? new XStream() : new XStream(driver);
|
||||
|
||||
// достаточно только для рутового объекта вызвать обработку аннотаций
|
||||
xStream.processAnnotations(RootElementForWrite.class);
|
||||
xStream.registerConverter(new CustomLocalDateConverter(), -100);
|
||||
|
||||
RootElementForWrite elementForWrite = new RootElementForWrite();
|
||||
elementForWrite.getTestList().add(new ChildElementForWrite());
|
||||
elementForWrite.getTestList().add(new ChildElementForWrite());
|
||||
String dataXml = xStream.toXML(elementForWrite);
|
||||
|
||||
System.out.println(dataXml);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
package ru.spcex.clearing.reports_service.xml_test;
|
||||
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||
import com.thoughtworks.xstream.annotations.XStreamOmitField;
|
||||
import com.thoughtworks.xstream.converters.basic.BooleanConverter;
|
||||
import com.thoughtworks.xstream.converters.basic.DateConverter;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
// without aliases
|
||||
public class ChildElementForWrite {
|
||||
@XStreamAlias("childStr") // alias for field name
|
||||
private String testChildString = "testChildStr";
|
||||
|
||||
@XStreamAsAttribute
|
||||
private Integer testAttributeInt = Integer.MIN_VALUE;
|
||||
|
||||
// при использовании настраевомого встроенного конвертора, ему необходимо передать параметры в конструктор
|
||||
// делается это посредством параметров strings, booleans, nulls.
|
||||
// т.е. такая запись эквивалентна:
|
||||
// new DateConverter("MM-yyyy-dd", null)
|
||||
@XStreamConverter(value = DateConverter.class, strings = {"MM-yyyy-dd"}, nulls = {String[].class})
|
||||
private Date testDate = new Date();
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("isBoolean")
|
||||
@XStreamConverter(value = BooleanConverter.class, booleans = {true}, strings = {"yes", "no"})
|
||||
private Boolean testYesAttributeBool = Boolean.TRUE;
|
||||
|
||||
private Integer testChildInt = Integer.MAX_VALUE;
|
||||
|
||||
@XStreamOmitField
|
||||
private String testIgnoredString = "testIgnore";
|
||||
|
||||
|
||||
|
||||
public String getTestChildString() {
|
||||
return testChildString;
|
||||
}
|
||||
|
||||
public void setTestChildString(String testChildString) {
|
||||
this.testChildString = testChildString;
|
||||
}
|
||||
|
||||
public Integer getTestAttributeInt() {
|
||||
return testAttributeInt;
|
||||
}
|
||||
|
||||
public void setTestAttributeInt(Integer testAttributeInt) {
|
||||
this.testAttributeInt = testAttributeInt;
|
||||
}
|
||||
|
||||
public Integer getTestChildInt() {
|
||||
return testChildInt;
|
||||
}
|
||||
|
||||
public void setTestChildInt(Integer testChildInt) {
|
||||
this.testChildInt = testChildInt;
|
||||
}
|
||||
|
||||
public String getTestIgnoredString() {
|
||||
return testIgnoredString;
|
||||
}
|
||||
|
||||
public void setTestIgnoredString(String testIgnoredString) {
|
||||
this.testIgnoredString = testIgnoredString;
|
||||
}
|
||||
|
||||
public Boolean getTestYesAttributeBool() {
|
||||
return testYesAttributeBool;
|
||||
}
|
||||
|
||||
public void setTestYesAttributeBool(Boolean testYesAttributeBool) {
|
||||
this.testYesAttributeBool = testYesAttributeBool;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package ru.spcex.clearing.reports_service.xml_test;
|
||||
|
||||
import com.thoughtworks.xstream.converters.Converter;
|
||||
import com.thoughtworks.xstream.converters.MarshallingContext;
|
||||
import com.thoughtworks.xstream.converters.UnmarshallingContext;
|
||||
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
|
||||
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
// самый большой минус работы с датами: если у какой то даты отличается формат, для нее нужен кастомный конвертер
|
||||
public class CustomLocalDateConverter implements Converter {
|
||||
private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
|
||||
@Override
|
||||
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
|
||||
LocalDate date = (LocalDate) source;
|
||||
writer.setValue(formatter.format(date));
|
||||
writer.addAttribute("formatted", "true");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
|
||||
// not implemented (not used)
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConvert(Class type) {
|
||||
return LocalDate.class.isAssignableFrom(type);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package ru.spcex.clearing.reports_service.xml_test;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
|
||||
@XStreamAlias("withAttrsOnly")
|
||||
public class ElementWithAttributeOnly {
|
||||
@XStreamAsAttribute
|
||||
private String attrStr = "attrStr";
|
||||
|
||||
@XStreamAsAttribute
|
||||
private Long attrLong = Long.MIN_VALUE;
|
||||
|
||||
public String getAttrStr() {
|
||||
return attrStr;
|
||||
}
|
||||
|
||||
public void setAttrStr(String attrStr) {
|
||||
this.attrStr = attrStr;
|
||||
}
|
||||
|
||||
public Long getAttrLong() {
|
||||
return attrLong;
|
||||
}
|
||||
|
||||
public void setAttrLong(Long attrLong) {
|
||||
this.attrLong = attrLong;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
package ru.spcex.clearing.reports_service.xml_test;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||
import com.thoughtworks.xstream.annotations.XStreamImplicit;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("root") // alias for classname
|
||||
public class RootElementForWrite {
|
||||
|
||||
@XStreamAlias("string") // alias for field
|
||||
private String testString = "testString";
|
||||
|
||||
private BigDecimal testBigDecimal = new BigDecimal("666.666");
|
||||
|
||||
private Double testDouble = Double.MAX_VALUE;
|
||||
|
||||
private Long testLong = Long.MIN_VALUE;
|
||||
|
||||
private Boolean testBoolean = Boolean.FALSE;
|
||||
|
||||
private LocalDate testLocalDateDefault = LocalDate.now();
|
||||
|
||||
@XStreamConverter(CustomLocalDateConverter.class)
|
||||
private LocalDate testLocalDateCustom = LocalDate.now();
|
||||
|
||||
private LocalDateTime testLocalDateTime = LocalDateTime.now();
|
||||
|
||||
private OffsetDateTime testOffsetDateTime = OffsetDateTime.now();
|
||||
|
||||
private Instant testInstant = Instant.now();
|
||||
|
||||
@XStreamAlias("namedList")
|
||||
private List<ChildElementForWrite> testList = new ArrayList<>();
|
||||
|
||||
@XStreamImplicit
|
||||
private List<ChildElementForWrite> testListTwo = Arrays.asList(new ChildElementForWrite(), new ChildElementForWrite());
|
||||
|
||||
// can marshal without getter/setter
|
||||
private ElementWithAttributeOnly elementWithAttributeOnly = new ElementWithAttributeOnly();
|
||||
|
||||
public String getTestString() {
|
||||
return testString;
|
||||
}
|
||||
|
||||
public void setTestString(String testString) {
|
||||
this.testString = testString;
|
||||
}
|
||||
|
||||
public BigDecimal getTestBigDecimal() {
|
||||
return testBigDecimal;
|
||||
}
|
||||
|
||||
public void setTestBigDecimal(BigDecimal testBigDecimal) {
|
||||
this.testBigDecimal = testBigDecimal;
|
||||
}
|
||||
|
||||
public Double getTestDouble() {
|
||||
return testDouble;
|
||||
}
|
||||
|
||||
public void setTestDouble(Double testDouble) {
|
||||
this.testDouble = testDouble;
|
||||
}
|
||||
|
||||
public Long getTestLong() {
|
||||
return testLong;
|
||||
}
|
||||
|
||||
public void setTestLong(Long testLong) {
|
||||
this.testLong = testLong;
|
||||
}
|
||||
|
||||
public Boolean getTestBoolean() {
|
||||
return testBoolean;
|
||||
}
|
||||
|
||||
public void setTestBoolean(Boolean testBoolean) {
|
||||
this.testBoolean = testBoolean;
|
||||
}
|
||||
|
||||
public LocalDate getTestLocalDate() {
|
||||
return testLocalDateCustom;
|
||||
}
|
||||
|
||||
public void setTestLocalDate(LocalDate testLocalDate) {
|
||||
this.testLocalDateCustom = testLocalDate;
|
||||
}
|
||||
|
||||
public LocalDateTime getTestLocalDateTime() {
|
||||
return testLocalDateTime;
|
||||
}
|
||||
|
||||
public void setTestLocalDateTime(LocalDateTime testLocalDateTime) {
|
||||
this.testLocalDateTime = testLocalDateTime;
|
||||
}
|
||||
|
||||
public OffsetDateTime getTestOffsetDateTime() {
|
||||
return testOffsetDateTime;
|
||||
}
|
||||
|
||||
public void setTestOffsetDateTime(OffsetDateTime testOffsetDateTime) {
|
||||
this.testOffsetDateTime = testOffsetDateTime;
|
||||
}
|
||||
|
||||
public Instant getTestInstant() {
|
||||
return testInstant;
|
||||
}
|
||||
|
||||
public void setTestInstant(Instant testInstant) {
|
||||
this.testInstant = testInstant;
|
||||
}
|
||||
|
||||
public List<ChildElementForWrite> getTestList() {
|
||||
return testList;
|
||||
}
|
||||
|
||||
public void setTestList(List<ChildElementForWrite> testList) {
|
||||
this.testList = testList;
|
||||
}
|
||||
|
||||
public List<ChildElementForWrite> getTestListTwo() {
|
||||
return testListTwo;
|
||||
}
|
||||
|
||||
public void setTestListTwo(List<ChildElementForWrite> testListTwo) {
|
||||
this.testListTwo = testListTwo;
|
||||
}
|
||||
|
||||
public LocalDate getTestLocalDateDefault() {
|
||||
return testLocalDateDefault;
|
||||
}
|
||||
|
||||
public void setTestLocalDateDefault(LocalDate testLocalDateDefault) {
|
||||
this.testLocalDateDefault = testLocalDateDefault;
|
||||
}
|
||||
|
||||
public LocalDate getTestLocalDateCustom() {
|
||||
return testLocalDateCustom;
|
||||
}
|
||||
|
||||
public void setTestLocalDateCustom(LocalDate testLocalDateCustom) {
|
||||
this.testLocalDateCustom = testLocalDateCustom;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
server.port=8080
|
||||
server.servlet.context-path=/reports_service
|
||||
spring.main.web-application-type=servlet
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<configuration>
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>./logs/reports_service.log</file>
|
||||
<encoder>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||
<fileNamePattern>
|
||||
../logs/reports_service.%i.log
|
||||
</fileNamePattern>
|
||||
<minIndex>1</minIndex>
|
||||
<maxIndex>10</maxIndex>
|
||||
</rollingPolicy>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
</triggeringPolicy>
|
||||
</appender>
|
||||
|
||||
<root level="warn">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
|
||||
<logger name="ru.spcex" level="debug" additivity="false">
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
</configuration>
|
||||
|
|
@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.StaticData.Misc.MoneyMarketSecurity;
|
||||
import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
|
|
|||
70
clearing-parent/utility-service/pom.xml
Normal file
70
clearing-parent/utility-service/pom.xml
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>clearing-parent</artifactId>
|
||||
<groupId>ru.spcex.clearing</groupId>
|
||||
<version>SPCEX-1.0.0.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>utility-service</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ru.spcex.platform</groupId>
|
||||
<artifactId>platform-messaging</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.spcex.platform</groupId>
|
||||
<artifactId>platform-imdg-api-hazelcast-impl</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.spcex.clearing</groupId>
|
||||
<artifactId>classes</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<excludes>
|
||||
<exclude>application.properties</exclude>
|
||||
</excludes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package ru.spcex.clearing.utility;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class UtilityServiceApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication springApplication = new SpringApplication(UtilityServiceApplication.class);
|
||||
springApplication.run(args);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package ru.spcex.clearing.utility.config;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import ru.spcex.clearing.platform.messaging.config.KafkaConsumerFactory;
|
||||
import ru.spcex.clearing.utility.config.settings.UtilityServiceSettings;
|
||||
|
||||
@Configuration
|
||||
public class KafkaConfig {
|
||||
@Autowired
|
||||
@Bean
|
||||
public Consumer<String, Object> createProducer(UtilityServiceSettings settings) {
|
||||
return KafkaConsumerFactory.consumer(settings.getKafka());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
package ru.spcex.clearing.utility.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
|
||||
import ru.spcex.clearing.utility.config.settings.UtilityServiceSettings;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
@Configuration
|
||||
public class UtilityServiceImdgConfig {
|
||||
@Bean(name = "taskExecutorHazelcastClientInitializer")
|
||||
public ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer() {
|
||||
return createThreadPoolTaskExecutor(1, true);
|
||||
}
|
||||
|
||||
@Bean(name = "taskExecutorIdGeneratorAwaiter")
|
||||
public ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter() {
|
||||
return createThreadPoolTaskExecutor(1, false);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
@Bean
|
||||
public ImdgProvider imdgProvider(
|
||||
@Qualifier("taskExecutorHazelcastClientInitializer") ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer,
|
||||
@Qualifier("taskExecutorIdGeneratorAwaiter") ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter,
|
||||
UtilityServiceSettings settings
|
||||
) {
|
||||
return new HazelcastService(taskExecutorHazelcastClientInitializer,
|
||||
taskExecutorIdGeneratorAwaiter,
|
||||
settings.getHazelcast());
|
||||
}
|
||||
|
||||
|
||||
private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) {
|
||||
ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();
|
||||
if (maxPoolSz > 2) {
|
||||
pool.setKeepAliveSeconds(60);
|
||||
pool.setAllowCoreThreadTimeOut(true);
|
||||
}
|
||||
pool.setCorePoolSize(maxPoolSz);
|
||||
pool.setWaitForTasksToCompleteOnShutdown(waitForCompletion);
|
||||
return pool;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package ru.spcex.clearing.utility.config.settings;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams;
|
||||
|
||||
@Component
|
||||
@PropertySource("file:${spring.config.location}/application.properties")
|
||||
@ConfigurationProperties("utility-service")
|
||||
public class UtilityServiceSettings {
|
||||
private HazelcastClientParams hazelcast;
|
||||
private KafkaConsumerSettings kafka;
|
||||
|
||||
public HazelcastClientParams getHazelcast() {
|
||||
return hazelcast;
|
||||
}
|
||||
|
||||
public void setHazelcast(HazelcastClientParams hazelcast) {
|
||||
this.hazelcast = hazelcast;
|
||||
}
|
||||
|
||||
public KafkaConsumerSettings getKafka() {
|
||||
return kafka;
|
||||
}
|
||||
|
||||
public void setKafka(KafkaConsumerSettings kafka) {
|
||||
this.kafka = kafka;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
package ru.spcex.clearing.utility.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.misc.KeyRate;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
@Service
|
||||
public class KeyRateService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<KeyRate> keyRateMap;
|
||||
|
||||
@Autowired
|
||||
public KeyRateService(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider) {
|
||||
super(kafkaQueue);
|
||||
this.keyRateMap = imdgProvider.getImdg(IMDGDistributedNames.Map_KeyRate, KeyRate.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(KeyRateNewRequest.class)
|
||||
.setConsumer(this::newKeyRate)
|
||||
.forDestination(Consts.DESTINATION_KEY_RATE_NEW, callbacks::put);
|
||||
callback(KeyRateUpdateRequest.class)
|
||||
.setConsumer(this::updateKeyRate)
|
||||
.forDestination(Consts.DESTINATION_KEY_RATE_UPDATE, callbacks::put);
|
||||
callback(CommonDeleteRequest.class)
|
||||
.setConsumer(this::deleteKeyRate)
|
||||
.forDestination(Consts.DESTINATION_KEY_RATE_DELETE, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
private void newKeyRate(BaseRequest<KeyRateNewRequest> userRequest) {
|
||||
KeyRateNewRequest req = userRequest.getRequestPayload();
|
||||
log.debug("MoneyMarketSecurityNewRequest received");
|
||||
KeyRate keyRate = new KeyRate();
|
||||
keyRate.setEndDate(req.getEndDate());
|
||||
keyRate.setDocument(req.getDocument());
|
||||
keyRate.setRate(req.getKeyRate());
|
||||
keyRate.setStartDate(req.getStartDate());
|
||||
keyRateMap.insert(keyRate);
|
||||
log.debug("successfully processed, new id {}", keyRate.getId());
|
||||
}
|
||||
|
||||
private void updateKeyRate(BaseRequest<KeyRateUpdateRequest> userRequest) {
|
||||
KeyRateUpdateRequest req = userRequest.getRequestPayload();
|
||||
log.debug("MoneyMarketSecurityUpdateRequest received id = {}", req.getId());
|
||||
KeyRate keyRate = keyRateMap.getSingleObjectByID(req.getId());
|
||||
keyRate.setEndDate(req.getEndDate());
|
||||
keyRate.setDocument(req.getDocument());
|
||||
keyRate.setRate(req.getKeyRate());
|
||||
keyRate.setStartDate(req.getStartDate());
|
||||
keyRateMap.update(keyRate);
|
||||
}
|
||||
|
||||
private void deleteKeyRate(BaseRequest<CommonDeleteRequest> userRequest) {
|
||||
CommonDeleteRequest req = userRequest.getRequestPayload();
|
||||
log.debug("CommonDeleteRequest received id = {}", req.getId());
|
||||
KeyRate keyRate = keyRateMap.getSingleObjectByID(req.getId());
|
||||
keyRateMap.delete(keyRate);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
spring.main.web-application-type=none
|
||||
|
||||
utility-service.hazelcast.cluster-members=127.0.0.1
|
||||
utility-service.hazelcast.login=dev
|
||||
utility-service.hazelcast.password=dev-pass
|
||||
|
||||
utility-service.kafka.bootstrap-servers=localhost:9092
|
||||
utility-service.kafka.group-id=dev-group
|
||||
utility-service.kafka.enable-auto-commit=false
|
||||
utility-service.kafka.session-timeout-ms=30000
|
||||
utility-service.kafka.auto-offset-reset=latest
|
||||
utility-service.kafka.linger-ms=1
|
||||
utility-service.kafka.buffer-memory=33554432
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<!-- |%X{ru.nbch.scoring.web.logging.mdc_key}-->
|
||||
<Pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %class{0}:%line - %message%n</Pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>./logs/utility-service.log</file>
|
||||
<encoder>
|
||||
<!-- |%X{ru.nbch.scoring.web.logging.mdc_key}-->
|
||||
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class{0}:%msg%n</Pattern>
|
||||
<charset>utf8</charset>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||
<fileNamePattern>
|
||||
./logs/utility-service.%i.log
|
||||
</fileNamePattern>
|
||||
<minIndex>1</minIndex>
|
||||
<maxIndex>10</maxIndex>
|
||||
</rollingPolicy>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
</triggeringPolicy>
|
||||
</appender>
|
||||
|
||||
<root level="warn">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
|
||||
<logger name="ru.spcex" level="debug" additivity="false">
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
</configuration>
|
||||
|
|
@ -14,6 +14,12 @@ public final class IMDGDistributedNames {
|
|||
// public static final String Map_CompanyInfo = "Map_CompanyInfo"; интегрировано в Map_Company
|
||||
public static final String Map_Contact = "Map_Contact";
|
||||
public static final String Map_ProfileDocument = "Map_ProfileDocument";
|
||||
public static final String Map_Account = "Map_Account";
|
||||
public static final String Map_Relation = "Map_Relation";
|
||||
public static final String Map_ClearingAccount = "Map_ClearingAccount";
|
||||
public static final String Map_BankAccount = "Map_BankAccount";
|
||||
public static final String Map_ClearingMemberCategory = "Map_ClearingMemberCategory";
|
||||
public static final String Map_AccountRouting = "Map_AccountRouting";
|
||||
|
||||
// public static final String Map_InterestStatusDictionary = "Map_InterestStatusDictionary"; future
|
||||
public static final String Map_AllowedDictionary = "Map_AllowedDictionary";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue