Merge branch 'dev' into cls-265

This commit is contained in:
akulikov 2023-04-11 17:00:43 +03:00
commit e27d50f481
135 changed files with 8834 additions and 1133 deletions

View file

@ -123,7 +123,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
} else {
log.warn("Not found relation by condition: {}", relationSqlCondition);
}
account.setAccountStatus(AccountStatus.ACTIVE.getKey());
account.setStatus(AccountStatus.ACTIVE.getKey());
account.setProcessingSign(Allowed.ALLOWED.getKey());
account.setCreated(Instant.now());
account.setUpdated(Instant.now());
@ -180,7 +180,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId());
Account account = accountMap.getSingleObjectByID(bankAccount.getAccountId());
account.setAccountStatus(AccountStatus.BLOCKED.getKey());
account.setStatus(AccountStatus.BLOCKED.getKey());
account.setUpdated(Instant.now());
accountMap.update(account);

View file

@ -392,7 +392,7 @@ public class BankAccountServiceTest {
account.setId(id);
account.setAccount(acc);
account.setAccountType(AccountType.Bank.getKey());
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
account.setProcessingSign(Allowed.ALLOWED.getKey());
return account;
}

View file

@ -8,7 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
import ru.spcex.clearing.backendapi.controller.request.cud.company.ClearingMemberCategoryNewAction;

View file

@ -33,7 +33,7 @@ public class AccountBackendGetAll extends BasicSpcexResponse {
singleItem.setAccount(account.getAccount());
singleItem.setAccountType(account.getAccountType());
singleItem.setRelationId(account.getRelationId());
singleItem.setStatus(account.getAccountStatus());
singleItem.setStatus(account.getStatus());
singleItem.setProcessingSign(account.getProcessingSign());
singleItem.setCreated(account.getCreated());
singleItem.setUpdated(account.getUpdated());

View file

@ -3,7 +3,7 @@ package ru.spcex.clearing.backendapi.controller.response.entity.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
import java.util.ArrayList;

View file

@ -167,7 +167,7 @@
<registryStatus id="5" code="LIQU" name="Ликвидационный неттинг" part="2"/>
<balanceDimension id="1" code="PICS" name="Штуки" part="2"/>
<balanceDimension id="2" code="LOTS" name="Лоты" part="2"/>
<balanceDimension id="3" code="MONEY" name="Деньги" part="2"/>
<balanceDimension id="3" code="MONY" name="Деньги" part="2"/>
<accountType id="1" code="CLRN" name="Торгово-Банковский Счет" part="2"/>
<accountType id="2" code="BANK" name="Счет вывода средств из ПРЦ" part="2"/>
<accountType id="3" code="USPD" name="Регистр невыясненных поступлений" part="2"/>

View file

@ -136,40 +136,40 @@
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Наименование" type="2" length="255"/>
</serviceProduct>
<registryDesignation name="Справочник символов регистров - назначения" class="com.spicex.dictionary." table="registry_designation_dictionary">
<registryDesignation name="Справочник символов регистров - назначения" class="com.spicex.dictionary.RegistryDesignationDictionary" table="registry_designation_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Наименование" type="2" length="255"/>
</registryDesignation>
<registryInstrumentType name="Справочник символов регистров - инструменты" class="com.spicex.dictionary." table="registry_instrument_type_dictionary">
<registryInstrumentType name="Справочник символов регистров - инструменты" class="com.spicex.dictionary.RegistryInstrumentTypeDictionary" table="registry_instrument_type_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Наименование" type="2" length="255"/>
</registryInstrumentType>
<registryCapacity name="Справочник символов регистров - источники средств" class="com.spicex.dictionary." table="registry_capacity_dictionary">
<registryCapacity name="Справочник символов регистров - источники средств" class="com.spicex.dictionary.RegistryCapacityDictionary" table="registry_capacity_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Наименование" type="2" length="255"/>
</registryCapacity>
<registryUnit name="Справочник символов регистров - части регистров" class="com.spicex.dictionary." table="registry_unit_dictionary">
<registryUnit name="Справочник символов регистров - части регистров" class="com.spicex.dictionary.RegistryUnitDictionary" table="registry_unit_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Наименование" type="2" length="255"/>
</registryUnit>
<registryCode name="Справочник кодов регистров" class="com.spicex.dictionary." table="registry_code_dictionary">
<registryCode name="Справочник кодов регистров" class="com.spicex.dictionary.RegistryCodeDictionary" table="registry_code_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Наименование" type="2" length="255"/>
</registryCode>
<registryStatus name="Справочник статусов регистров" class="com.spicex.dictionary." table="registry_status_dictionary">
<registryStatus name="Справочник статусов регистров" class="com.spicex.dictionary.RegistryStatusDictionary" table="registry_status_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Наименование" type="2" length="255"/>
</registryStatus>
<balanceDimension name="Справочник размерностей балансов" class="ru.clearing.platform.dictionary." table="balance_dimention_dictionary">
<balanceDimension name="Справочник размерностей балансов" class="ru.clearing.platform.dictionary.BalanceDimensionDictionary" table="balance_dimention_dictionary">
<id name="Идентификатор" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Размерность балланса" shortname="Размерность" type="2" length="50"/>
<name name="Размерность баланса" shortname="Размерность" type="2" length="50"/>
</balanceDimension>
<accountType name="Справочник типов счетов" class="com.spicex.dictionary.AccountTypeDictionary" table="account_type_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
@ -207,17 +207,17 @@
<name name="Наименование" shortname="Источник" type="2" length="50"/>
</parent>
<chargeDirection name="Направление начисления комиссии" class="ru.clearing.platform.dictionary." table="charge_direction_dictionary">
<chargeDirection name="Направление начисления комиссии" class="ru.clearing.platform.dictionary.ChargeDirectionDictionary" table="charge_direction_dictionary">
<id name="Идентификатор" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Направление комиссии" shortname="Направление комиссии" type="2" length="50"/>
</chargeDirection>
<chargeType name="Справочник типов комиссий" class="ru.clearing.platform.dictionary." table="charge_type_dictionary">
<chargeType name="Справочник типов комиссий" class="ru.clearing.platform.dictionary.ChargeTypeDictionary" table="charge_type_dictionary">
<id name="Идентификатор" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Тип комиссии" shortname="Тип комиссии" type="2" length="50"/>
</chargeType>
<courierType name="Способ доставки документа" class="ru.clearing.platform.dictionary." table="courier_type_dictionary">
<courierType name="Способ доставки документа" class="ru.clearing.platform.dictionary.CourierTypeDictionary" table="courier_type_dictionary">
<id name="Идентификатор" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Способ доставки" shortname="Способ доставки" type="2" length="50"/>
@ -227,7 +227,7 @@
<code name="Код" shortname="Код" type="12"/>
<name name="Статус транзакции" shortname="Статус" type="2" length="50"/>
</transactionStatus>
<clearingStatus name="Справочник результатов клиринга" class="com.spicex.dictionary." table="clearing_status_dictionary">
<clearingStatus name="Справочник результатов клиринга" class="com.spicex.dictionary.ClearingStatusDictionary" table="clearing_status_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Тип" type="2" length="255"/>
@ -262,7 +262,7 @@
<code name="Код" shortname="Код" type="12"/>
<name name="Тип лимитов" shortname="Тип" type="2" length="50"/>
</balanceAccountType>
<resultStatus name="Статус обработки" class="com.spicex.dictionary." table="result_status_dictionary">
<resultStatus name="Статус обработки" class="com.spicex.dictionary.ResultStatusDictionary" table="result_status_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Статус обработки" shortname="Статус" type="2" length="255"/>
@ -760,7 +760,7 @@
<clearingDate type="6" name="Текущая дата" shortname="Дата" visible="false" searchable="true" sortable="true" ignore="true"/>
</errorText>
<clientCode name="Коды клиентов компании" destination="client-codes" class="" logUpdates="true" table="client_сode">
<clientCode name="Коды клиентов компании" destination="client-codes" class="ru.clearing.classes.statics.data.account.ClientCode" logUpdates="true" table="client_сode">
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
<companyId type="1" dbname="Идентификатор компании" name="Наименование компании" shortname="Компания" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/>
<code type="2" length="255" name="Код клиента" shortname="Код клиента" searchable="true" sortable="true" visible="true"/>
@ -793,7 +793,7 @@
</delete>
</actions>
</clientCode>
<tradingClearingRegistry name="Торгово-клиринговый регистр" destination="trading-clearing-registries" class="" logUpdates="true" table="trading_clearing_registry">
<tradingClearingRegistry name="Торгово-клиринговый регистр" destination="trading-clearing-registries" class="ru.clearing.classes.statics.data.registry.TradingClearingRegistry" logUpdates="true" table="trading_clearing_registry">
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
<companyId type="1" dbname="Идентификатор компании" name="Наименование компании" shortname="Компания" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/>
<code type="2" length="255" name="Код торгово-клирингового регистра" shortname="Код ТКР" searchable="true" sortable="true" visible="true"/>
@ -806,7 +806,7 @@
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
</tradingClearingRegistry>
<registry name="Регистр активов, обязательств и требований УК" destination="registries" class="" logUpdates="true" table="registry">
<registry name="Регистр активов, обязательств и требований УК" destination="registries" class="ru.clearing.classes.statics.data.registry.Registry" logUpdates="true" table="registry">
<companyId type="1" dbname="Идентификатор участника" name="Наименование участника" shortname="Участник" searchable="true" sortable="true" visible="true" link="company"/>
<tradingCode type="2" length="255" name="Торговый код участника" shortname="Торговый код" searchable="true" sortable="true" visible="true"/>
<clearingCode type="2" length="255" name="Клиринговый код участника" shortname="Клиринговый код" searchable="true" sortable="true" visible="true"/>
@ -935,13 +935,13 @@
<companyId type="1" dbname="Идентификатор компании" name="Наименование компании" shortname="Компания" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/>
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
</informationAccount>
<depoAccount name="Депозитарные счета" destination="accounting/depo-accounts" class="" logUpdates="true" table="depo_account">
<depoAccount name="Депозитарные счета" destination="accounting/depo-accounts" class="ru.clearing.classes.statics.data.account.DepoAccount" logUpdates="true" table="depo_account">
<accountId type="1" dbname="Идентификатор счета" name="Номер счета" shortname="Счет" searchable="true" sortable="true" visible="true" link="account" linkCode="account"/>
<depoAccountType type="12" dbname="Код типа счета" name="Наименование типа счета" shortname="Тип" searchable="true" sortable="true" visible="true" link="depoAccountType"/>
<companyId type="1" dbname="Идентификатор компании" name="Наименование компании" shortname="Компания" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/>
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
</depoAccount>
<clearingAccount name="Торгово-Банковские счета" destination="accounting/clearing-accounts" class="" logUpdates="true" table="clearing_account">
<clearingAccount name="Торгово-Банковские счета" destination="accounting/clearing-accounts" class="ru.clearing.classes.statics.data.account.ClearingAccount" logUpdates="true" table="clearing_account">
<accountId type="1" dbname="Идентификатор счета" name="Номер счета" shortname="Счет" searchable="true" sortable="true" visible="true" link="account" linkCode="account"/>
<clearingAccountType type="12" dbname="Код типа счета" name="Наименование типа счета" shortname="Тип" searchable="true" sortable="true" visible="true" link="clearingAccountType"/>
<companyId type="1" dbname="Идентификатор компании" name="Наименование компании" shortname="Компания" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/>

View file

@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.core.NestedExceptionUtils;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest;
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
import ru.spcex.clearing.backendapi.controller.request.cud.company.ClearingMemberCategoryNewAction;

View file

@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.Account;
import ru.clearing.classes.statics.data.account.AccountBalance;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.spcex.clearing.balance.validation.AccountBalanceValidation;
import ru.spcex.clearing.balance.validation.ValidationStored;
import ru.spcex.clearing.imdg.IMDGDistributedNames;

View file

@ -45,7 +45,7 @@ public enum AccountBalanceValidationRule implements IValidationRule<ImdgValidati
if (account == null) {
return of(BalanceError.AccountNotPresent);
}
if (!Status.Active.equalsByKey(account.getAccountStatus())) {
if (!Status.Active.equalsByKey(account.getStatus())) {
return of(BalanceError.AccountNotActive, account.getId());
}
context.storeObject(ValidationStored.Account, account);

View file

@ -114,7 +114,7 @@ public abstract class AbstractServiceTest {
account.setId(id);
account.setAccount(acc);
account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
return account;
}

View file

@ -109,7 +109,7 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
companyImdg.insert(company);
Account account = new Account();
account.setId(accountIdNew);
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
accountImdg.insert(account);
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent));
@ -119,7 +119,7 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
//AccountNotPresent id=null
account.setId(null);
account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
accountImdg.insert(account);
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent));
@ -129,14 +129,14 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
//AccountNotActive accountStatus=null
account.setId(accountIdNew);
account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(null);
account.setStatus(null);
accountImdg.insert(account);
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotActive, account.getId()));
result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCode);
ACCOUNT_BALANCE_MATCHER.assertMatch(result, predictableResult);
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
accountImdg.insert(account);
result = accountBalanceService.createAccountBalance(addresseeIdNew, null, amountNew, cashMovementCurrencyCode);
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent));

View file

@ -120,14 +120,14 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
companyMap.put(addresseeIdNew, company);
Account account = new Account();
account.setAccount(acc);
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
accountMap.put(accountIdNew, account);
checkErrorAccountNotPresent(company, sdf01);
//AccountNotPresent account=null
account.setAccount(null);
account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
accountMap.put(accountIdNew, account);
checkErrorAccountNotPresent(company, sdf01);

View file

@ -126,7 +126,7 @@ class Sdf09ExecutorTest extends AbstractServiceTest {
Account account = new Account();
account.setAccount(null);
account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
accountMap.put(accountIdNew, account);
checkErrorAccountNotPresent(company);

View file

@ -154,7 +154,7 @@ class Sdf16ExecutorTest extends AbstractServiceTest {
Account account = new Account();
account.setAccount(null);
account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey());
account.setStatus(Status.Active.getKey());
accountMap.put(accountIdNew, account);
checkErrorAccountNotPresent(company);

View file

@ -14,7 +14,7 @@ public class Account extends BusinessObject {
private String account;
private String accountType;
private Long relationId;
private String accountStatus;
private String status;
private String processingSign;
private Long companyId;
@ -42,12 +42,12 @@ public class Account extends BusinessObject {
this.relationId = value;
}
public String getAccountStatus() {
return accountStatus;
public String getStatus() {
return status;
}
public void setAccountStatus(String value) {
this.accountStatus = value;
public void setStatus(String value) {
this.status = value;
}
public String getProcessingSign() {

View file

@ -11,6 +11,7 @@ import java.time.LocalDate;
* <p>
* DB table: ACCOUNT_BALANCE
**/
@Deprecated
public class AccountBalance extends BusinessObject {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long companyId;

View file

@ -10,6 +10,7 @@ import java.io.Serial;
* <p>
* DB table: ACCOUNT_BALANCE_HISTORY
**/
@Deprecated
public class AccountBalanceHistory extends BusinessEvent<AccountBalance> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;

View file

@ -1,45 +0,0 @@
package ru.clearing.classes.statics.data.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;
}
}

View file

@ -12,21 +12,30 @@ public class ClearingAccount extends SpcexObjectBase {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long accountId;
private String account;
private String clearingAccountType;
private Long companyId;
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long value) {
this.accountId = value;
public void setAccountId(Long accountId) {
this.accountId = accountId;
}
public String getAccount() {
return account;
public String getClearingAccountType() {
return clearingAccountType;
}
public void setAccount(String account) {
this.account = account;
public void setClearingAccountType(String clearingAccountType) {
this.clearingAccountType = clearingAccountType;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
}

View file

@ -0,0 +1,71 @@
package ru.clearing.classes.statics.data.account;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessObject;
import java.time.Instant;
/**
* Коды клиентов компании
* <p>
* DB table: CLIENT_CODE
**/
public class ClientCode extends BusinessObject {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long companyId;
private String code;
private Long tradingClearingRegistryId;
private Long moneyAccountId;
private Long depoAccountId;
private String status;
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long value) {
this.companyId = value;
}
public String getCode() {
return code;
}
public void setCode(String value) {
this.code = value;
}
public Long getTradingClearingRegistryId() {
return tradingClearingRegistryId;
}
public void setTradingClearingRegistryId(Long value) {
this.tradingClearingRegistryId = value;
}
public Long getMoneyAccountId() {
return moneyAccountId;
}
public void setMoneyAccountId(Long value) {
this.moneyAccountId = value;
}
public Long getDepoAccountId() {
return depoAccountId;
}
public void setDepoAccountId(Long value) {
this.depoAccountId = value;
}
public String getStatus() {
return status;
}
public void setStatus(String value) {
this.status = value;
}
}

View file

@ -0,0 +1,28 @@
package ru.clearing.classes.statics.data.account;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* Изменение состояния объекта Коды клиентов компании
* <p>
* DB table: CLIENT_CODE_HISTORY
**/
public class ClientCodeHistory extends BusinessEvent<ClientCode> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private ClientCode object;
@Override
public ClientCode getObject() {
return object;
}
@Override
public void setObject(ClientCode object) {
this.object = object;
}
}

View file

@ -0,0 +1,42 @@
package ru.clearing.classes.statics.data.account;
import ru.clearing.classes.ConstSerializable;
import ru.spcex.platform.classes.base.SpcexObjectBase;
/**
* Депозитарные счета
* <p>
* DB table: DEPO_ACCOUNT
**/
public class DepoAccount extends SpcexObjectBase {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long accountId;
private String depoAccountType;
private Long companyId;
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long value) {
this.accountId = value;
}
public String getDepoAccountType() {
return depoAccountType;
}
public void setDepoAccountType(String value) {
this.depoAccountType = value;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long value) {
this.companyId = value;
}
}

View file

@ -1,26 +1,28 @@
package ru.clearing.classes.statics.data.account;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* Изменение состояния объекта Маршрутизация счета
*
* DB table: ACCOUNT_ROUTING_UPDATE
**/
public class AccountRoutingHistory extends BusinessEvent<AccountRouting> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private AccountRouting object;
@Override
public AccountRouting getObject() {
return object;
}
@Override
public void setObject(AccountRouting object) {
this.object = object;
}
package ru.clearing.classes.statics.data.account;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* Изменение состояния объекта Депозитарные счета
* <p>
* DB table: DEPO_ACCOUNT_HISTORY
**/
public class DepoAccountHistory extends BusinessEvent<DepoAccount> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private DepoAccount object;
@Override
public DepoAccount getObject() {
return object;
}
@Override
public void setObject(DepoAccount object) {
this.object = object;
}
}

View file

@ -1,4 +1,4 @@
package ru.clearing.classes.statics.data.generated;
package ru.clearing.classes.statics.data.company;
import ru.clearing.classes.ConstSerializable;
import ru.spcex.platform.classes.base.SpcexObjectBase;

View file

@ -0,0 +1,26 @@
package ru.clearing.classes.statics.data.company;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* DB: CLEARING_MEMBER_CATEGORY_HISTORY
*/
public class ClearingMemberCategoryHistory extends BusinessEvent<ClearingMemberCategory> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private ClearingMemberCategory object;
@Override
public ClearingMemberCategory getObject() {
return object;
}
@Override
public void setObject(ClearingMemberCategory object) {
this.object = object;
}
}

View file

@ -0,0 +1,27 @@
package ru.clearing.classes.statics.data.company;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* DB: COMPANY_SYMBOLS_HISTORY
*/
public class CompanySymbolsHistory extends BusinessEvent<CompanySymbols> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private CompanySymbols object;
@Override
public CompanySymbols getObject() {
return object;
}
@Override
public void setObject(CompanySymbols object) {
this.object = object;
}
}

View file

@ -0,0 +1,26 @@
package ru.clearing.classes.statics.data.instrument.issue;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* DB: COUPON_PERIOD_HISTORY
*/
public class CouponPeriodHistory extends BusinessEvent<CouponPeriod> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private CouponPeriod object;
@Override
public CouponPeriod getObject() {
return object;
}
@Override
public void setObject(CouponPeriod object) {
this.object = object;
}
}

View file

@ -0,0 +1,23 @@
package ru.clearing.classes.statics.data.instrument.issue;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
public class EquitySecurityHistory extends BusinessEvent<EquitySecurity> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private EquitySecurity object;
@Override
public EquitySecurity getObject() {
return object;
}
@Override
public void setObject(EquitySecurity object) {
this.object = object;
}
}

View file

@ -0,0 +1,23 @@
package ru.clearing.classes.statics.data.instrument.issue;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
public class FixedIncomeCashFlowHistory extends BusinessEvent<FixedIncomeCashFlow> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private FixedIncomeCashFlow object;
@Override
public FixedIncomeCashFlow getObject() {
return object;
}
@Override
public void setObject(FixedIncomeCashFlow object) {
this.object = object;
}
}

View file

@ -0,0 +1,23 @@
package ru.clearing.classes.statics.data.instrument.issue;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
public class FixedIncomeSecurityHistory extends BusinessEvent<FixedIncomeSecurity> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private FixedIncomeSecurity object;
@Override
public FixedIncomeSecurity getObject() {
return object;
}
@Override
public void setObject(FixedIncomeSecurity object) {
this.object = object;
}
}

View file

@ -0,0 +1,26 @@
package ru.clearing.classes.statics.data.misc;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* DB table: MONEY_MARKET_SECURITY_HISTORY
**/
public class MoneyMarketSecurityHistory extends BusinessEvent<MoneyMarketSecurity> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private MoneyMarketSecurity object;
@Override
public MoneyMarketSecurity getObject() {
return object;
}
@Override
public void setObject(MoneyMarketSecurity object) {
this.object = object;
}
}

View file

@ -0,0 +1,27 @@
package ru.clearing.classes.statics.data.profile;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* DB: PROFILE_DOCUMENT_HISTORY
*/
public class ProfileDocumentHistory extends BusinessEvent<ProfileDocument> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private ProfileDocument object;
@Override
public ProfileDocument getObject() {
return object;
}
@Override
public void setObject(ProfileDocument object) {
this.object = object;
}
}

View file

@ -0,0 +1,425 @@
package ru.clearing.classes.statics.data.registry;
import ru.clearing.classes.ConstSerializable;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
/**
* Регистр активов, обязательств и требований УК
* <p>
* DB table: REGISTRY
**/
public class Registry extends SpcexObjectBase {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long companyId;
private String tradingCode;
private String clearingCode;
private String shortName;
private String fullName;
private Long accountId;
private String accountType;
private String account;
private String registryDesignation;
private String registryInstrumentType;
private String registryCapacity;
private String registryUnit;
private String registryCode;
private Long tradingClearingRegistryId;
private String tradingClearingRegistry;
private String registryStatus;
private Long securityId;
private BigDecimal balance;
private BigDecimal openBalance;
private BigDecimal closeBalance;
private BigDecimal credit;
private BigDecimal debit;
private BigDecimal settledCredit;
private BigDecimal settledDebit;
private BigDecimal checkBalance;
private BigDecimal diffBalance;
private BigDecimal planBalance;
private String balanceDimension;
private LocalDate settlementDate;
private String settlementCode;
private LocalDate tradingDate;
private LocalDate clearingDate;
private LocalDate refundDate;
private LocalDate valueDate;
private BigDecimal price;
private String contract;
private Long counterPartyId;
private String comment;
private Long parentId;
private Long groupId;
private Long sessionId;
private Long paymentId;
private Long refundPaymentId;
// (in parent) private Long id;
private Instant createdAt;
private Instant updatedAt;
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long value) {
this.companyId = value;
}
public String getTradingCode() {
return tradingCode;
}
public void setTradingCode(String value) {
this.tradingCode = value;
}
public String getClearingCode() {
return clearingCode;
}
public void setClearingCode(String value) {
this.clearingCode = value;
}
public String getShortName() {
return shortName;
}
public void setShortName(String value) {
this.shortName = value;
}
public String getFullName() {
return fullName;
}
public void setFullName(String value) {
this.fullName = value;
}
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long value) {
this.accountId = value;
}
public String getAccountType() {
return accountType;
}
public void setAccountType(String value) {
this.accountType = value;
}
public String getAccount() {
return account;
}
public void setAccount(String value) {
this.account = value;
}
public String getRegistryDesignation() {
return registryDesignation;
}
public void setRegistryDesignation(String value) {
this.registryDesignation = value;
}
public String getRegistryInstrumentType() {
return registryInstrumentType;
}
public void setRegistryInstrumentType(String value) {
this.registryInstrumentType = value;
}
public String getRegistryCapacity() {
return registryCapacity;
}
public void setRegistryCapacity(String value) {
this.registryCapacity = value;
}
public String getRegistryUnit() {
return registryUnit;
}
public void setRegistryUnit(String value) {
this.registryUnit = value;
}
public String getRegistryCode() {
return registryCode;
}
public void setRegistryCode(String value) {
this.registryCode = value;
}
public Long getTradingClearingRegistryId() {
return tradingClearingRegistryId;
}
public void setTradingClearingRegistryId(Long value) {
this.tradingClearingRegistryId = value;
}
public String getTradingClearingRegistry() {
return tradingClearingRegistry;
}
public void setTradingClearingRegistry(String value) {
this.tradingClearingRegistry = value;
}
public String getRegistryStatus() {
return registryStatus;
}
public void setRegistryStatus(String value) {
this.registryStatus = value;
}
public Long getSecurityId() {
return securityId;
}
public void setSecurityId(Long value) {
this.securityId = value;
}
public BigDecimal getBalance() {
return balance;
}
public void setBalance(BigDecimal value) {
this.balance = value;
}
public BigDecimal getOpenBalance() {
return openBalance;
}
public void setOpenBalance(BigDecimal value) {
this.openBalance = value;
}
public BigDecimal getCloseBalance() {
return closeBalance;
}
public void setCloseBalance(BigDecimal value) {
this.closeBalance = value;
}
public BigDecimal getCredit() {
return credit;
}
public void setCredit(BigDecimal value) {
this.credit = value;
}
public BigDecimal getDebit() {
return debit;
}
public void setDebit(BigDecimal value) {
this.debit = value;
}
public BigDecimal getSettledCredit() {
return settledCredit;
}
public void setSettledCredit(BigDecimal value) {
this.settledCredit = value;
}
public BigDecimal getSettledDebit() {
return settledDebit;
}
public void setSettledDebit(BigDecimal value) {
this.settledDebit = value;
}
public BigDecimal getCheckBalance() {
return checkBalance;
}
public void setCheckBalance(BigDecimal value) {
this.checkBalance = value;
}
public BigDecimal getDiffBalance() {
return diffBalance;
}
public void setDiffBalance(BigDecimal value) {
this.diffBalance = value;
}
public BigDecimal getPlanBalance() {
return planBalance;
}
public void setPlanBalance(BigDecimal value) {
this.planBalance = value;
}
public String getBalanceDimension() {
return balanceDimension;
}
public void setBalanceDimension(String value) {
this.balanceDimension = value;
}
public LocalDate getSettlementDate() {
return settlementDate;
}
public void setSettlementDate(LocalDate value) {
this.settlementDate = value;
}
public String getSettlementCode() {
return settlementCode;
}
public void setSettlementCode(String value) {
this.settlementCode = value;
}
public LocalDate getTradingDate() {
return tradingDate;
}
public void setTradingDate(LocalDate value) {
this.tradingDate = value;
}
public LocalDate getClearingDate() {
return clearingDate;
}
public void setClearingDate(LocalDate value) {
this.clearingDate = value;
}
public LocalDate getRefundDate() {
return refundDate;
}
public void setRefundDate(LocalDate value) {
this.refundDate = value;
}
public LocalDate getValueDate() {
return valueDate;
}
public void setValueDate(LocalDate value) {
this.valueDate = value;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal value) {
this.price = value;
}
public String getContract() {
return contract;
}
public void setContract(String value) {
this.contract = value;
}
public Long getCounterPartyId() {
return counterPartyId;
}
public void setCounterPartyId(Long value) {
this.counterPartyId = value;
}
public String getComment() {
return comment;
}
public void setComment(String value) {
this.comment = value;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long value) {
this.parentId = value;
}
public Long getGroupId() {
return groupId;
}
public void setGroupId(Long value) {
this.groupId = value;
}
public Long getSessionId() {
return sessionId;
}
public void setSessionId(Long value) {
this.sessionId = value;
}
public Long getPaymentId() {
return paymentId;
}
public void setPaymentId(Long value) {
this.paymentId = value;
}
public Long getRefundPaymentId() {
return refundPaymentId;
}
public void setRefundPaymentId(Long value) {
this.refundPaymentId = value;
}
public Instant getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Instant value) {
this.createdAt = value;
}
public Instant getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Instant value) {
this.updatedAt = value;
}
}

View file

@ -0,0 +1,28 @@
package ru.clearing.classes.statics.data.registry;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* Изменение состояния объекта Регистр активов, обязательств и требований УК
* <p>
* DB table: REGISTRY_HISTORY
**/
public class RegistryHistory extends BusinessEvent<Registry> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Registry object;
@Override
public Registry getObject() {
return object;
}
@Override
public void setObject(Registry object) {
this.object = object;
}
}

View file

@ -0,0 +1,88 @@
package ru.clearing.classes.statics.data.registry;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessObject;
/**
* Торгово-клиринговый регистр
* <p>
* DB table: TRADING_CLEARING_REGISTRY
**/
public class TradingClearingRegistry extends BusinessObject {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private Long companyId;
private String code;
private Long moneyAccountId;
private Long depoAaccountId;
private String tradingClearingRegistryType;
private String tradingClearingRegistryLevel;
private String tradingClearingRegistryPurpose;
private String status;
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long value) {
this.companyId = value;
}
public String getCode() {
return code;
}
public void setCode(String value) {
this.code = value;
}
public Long getMoneyAccountId() {
return moneyAccountId;
}
public void setMoneyAccountId(Long value) {
this.moneyAccountId = value;
}
public Long getDepoAaccountId() {
return depoAaccountId;
}
public void setDepoAaccountId(Long value) {
this.depoAaccountId = value;
}
public String getTradingClearingRegistryType() {
return tradingClearingRegistryType;
}
public void setTradingClearingRegistryType(String value) {
this.tradingClearingRegistryType = value;
}
public String getTradingClearingRegistryLevel() {
return tradingClearingRegistryLevel;
}
public void setTradingClearingRegistryLevel(String value) {
this.tradingClearingRegistryLevel = value;
}
public String getTradingClearingRegistryPurpose() {
return tradingClearingRegistryPurpose;
}
public void setTradingClearingRegistryPurpose(String value) {
this.tradingClearingRegistryPurpose = value;
}
public String getStatus() {
return status;
}
public void setStatus(String value) {
this.status = value;
}
}

View file

@ -0,0 +1,28 @@
package ru.clearing.classes.statics.data.registry;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessEvent;
import java.io.Serial;
/**
* Изменение состояния объекта Торгово-клиринговый регистр
*
* DB table: TRADING_CLEARING_REGISTRY_HISTORY
**/
public class TradingClearingRegistryHistory extends BusinessEvent<TradingClearingRegistry> {
@Serial
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private TradingClearingRegistry object;
@Override
public TradingClearingRegistry getObject() {
return object;
}
@Override
public void setObject(TradingClearingRegistry object) {
this.object = object;
}
}

View file

@ -0,0 +1,49 @@
package ru.clearing.classes.statics.data.sdf;
import ru.clearing.classes.ConstSerializable;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import java.time.Instant;
/**
* ДФ-51 Запрос остатков по всем счетам
*
* DB table: S_DF51
**/
public class SDf51 extends SpcexObjectBase {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private String number;
private String datetime;
private Instant generationTime;
private Long generationId;
public String getNumber() {
return number;
}
public void setNumber(String value) {
this.number=value;
}
public String getDatetime() {
return datetime;
}
public void setDatetime(String value) {
this.datetime=value;
}
public Instant getGenerationTime() {
return generationTime;
}
public void setGenerationTime(Instant value) {
this.generationTime=value;
}
public Long getGenerationId() {
return generationId;
}
public void setGenerationId(Long value) {
this.generationId=value;
}
}

View file

@ -0,0 +1,81 @@
package ru.clearing.classes.statics.data.sdf;
import ru.clearing.classes.ConstSerializable;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import java.time.Instant;
/**
* ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие)
*
* DB table: S_DF52
**/
public class SDf52 extends SpcexObjectBase {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private String account;
private String acc_name;
private String deal;
private String date;
private Long status;
private String fileName;
private Instant generationTime;
private Long generationId;
public String getAccount() {
return account;
}
public void setAccount(String value) {
this.account=value;
}
public String getAcc_name() {
return acc_name;
}
public void setAcc_name(String value) {
this.acc_name=value;
}
public String getDeal() {
return deal;
}
public void setDeal(String value) {
this.deal=value;
}
public String getDate() {
return date;
}
public void setDate(String value) {
this.date=value;
}
public Long getStatus() {
return status;
}
public void setStatus(Long value) {
this.status=value;
}
public String getFileName() {
return fileName;
}
public void setFileName(String value) {
this.fileName=value;
}
public Instant getGenerationTime() {
return generationTime;
}
public void setGenerationTime(Instant value) {
this.generationTime=value;
}
public Long getGenerationId() {
return generationId;
}
public void setGenerationId(Long value) {
this.generationId=value;
}
}

View file

@ -0,0 +1,81 @@
package ru.clearing.classes.statics.data.sdf;
import ru.clearing.classes.ConstSerializable;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import java.math.BigDecimal;
import java.time.Instant;
/**
* ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие)
* <p>
* DB table: S_DF53
**/
public class SDf53 extends SpcexObjectBase {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private String account;
private String deal;
private Long status;
private BigDecimal result;
private Instant generationTime;
private Long generationId;
private Long inSDfId;
public String getAccount() {
return account;
}
public void setAccount(String value) {
this.account = value;
}
public String getDeal() {
return deal;
}
public void setDeal(String value) {
this.deal = value;
}
public Long getStatus() {
return status;
}
public void setStatus(Long value) {
this.status = value;
}
public BigDecimal getResult() {
return result;
}
public void setResult(BigDecimal value) {
this.result = value;
}
public Instant getGenerationTime() {
return generationTime;
}
public void setGenerationTime(Instant value) {
this.generationTime = value;
}
public Long getGenerationId() {
return generationId;
}
public void setGenerationId(Long value) {
this.generationId = value;
}
public Long getInSDfId() {
return inSDfId;
}
public void setInSDfId(Long value) {
this.inSDfId = value;
}
}

View file

@ -22,6 +22,7 @@ public class Security extends BusinessObject implements WithWorkflowStatus, With
private String securitySymbol;
private String isin;
private String workflowStatus;
private String uuid;
public String getInstrumentType() {
return instrumentType;
@ -95,4 +96,11 @@ public class Security extends BusinessObject implements WithWorkflowStatus, With
this.workflowStatus = value;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
}

View file

@ -3,7 +3,7 @@ package ru.spcex.clearing.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.ClearingCategory;
import ru.spcex.platform.imdg.api.Imdg;

View file

@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets;
import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney;
import ru.clearing.classes.statics.data.payment.PaymentInstruction;

View file

@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
import ru.clearing.classes.statics.data.sdf.SDf03;
import ru.clearing.classes.statics.data.sdf.SDf11;

View file

@ -200,7 +200,7 @@ public class VerificationResultComponent {
.map(sdf01 -> sdf01.getDeal())
.collect(Collectors.toSet());
Set<String> accountKeys = allAccount.stream()
.filter(account -> AccountType.Clrn.equalsByKey(account.getAccountType()) && "UNBL".equals(account.getAccountStatus()))
.filter(account -> AccountType.Clrn.equalsByKey(account.getAccountType()) && "UNBL".equals(account.getStatus()))
.map(sdf01 -> sdf01.getAccount())
.collect(Collectors.toSet());
boolean isOk = sDf01Keys.size() == accountKeys.size() &&

View file

@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.Account;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
import ru.spcex.clearing.error.ClearingError;
import ru.spcex.clearing.imdg.IMDGDistributedNames;

View file

@ -44,7 +44,7 @@ public enum ExecutionDepositValidationRule implements IValidationRule<ImdgValida
Relation relation = context.getStoredObject(ClrngValidationStored.relation);
Account account = accountImdg.getSingleObjectByFieldValues(
Map.of("id", validatedObject.getAccountId(), "relationId", relation.getId()));
if (account == null || !AccountStatus.ACTIVE.equalsByKey(account.getAccountStatus())) {
if (account == null || !AccountStatus.ACTIVE.equalsByKey(account.getStatus())) {
return of(ClearingErrorInternal.AccountNotActive);
}
return empty();

View file

@ -9,7 +9,7 @@ import ru.clearing.classes.statics.data.account.AccountBalance;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.relation.Relation;
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets;
import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney;
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
@ -308,12 +308,12 @@ class ClearingServiceTest extends AbstractClearingTest {
executionDeposit = getExecutionDeposit(companyId, accountId, securityId, firstSettlementDate, secondSettlementDate);
executionDepositImdg.insert(executionDeposit);
account.setAccountStatus(AccountStatus.BLOCKED.getKey());
account.setStatus(AccountStatus.BLOCKED.getKey());
accountImdg.insert(account);
checkHaveSomeError(currentInteger.getAndIncrement());
//CompanyIsNotBlocked
account.setAccountStatus(AccountStatus.ACTIVE.getKey());
account.setStatus(AccountStatus.ACTIVE.getKey());
accountImdg.insert(account);
company.setWorkflowStatus(WorkflowStatus.Blocked.getKey());
companyImdg.insert(company);
@ -359,7 +359,7 @@ class ClearingServiceTest extends AbstractClearingTest {
account = new Account();
account.setId(accountId);
account.setRelationId(relationId);
account.setAccountStatus(AccountStatus.ACTIVE.getKey());
account.setStatus(AccountStatus.ACTIVE.getKey());
accountImdg.insert(account);
company = new Company();

View file

@ -83,7 +83,7 @@ class VerificationResultComponentTest extends AbstractClearingTest {
Account account = new Account();
account.setAccount(acc);
account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus("UNBL");
account.setStatus("UNBL");
account.setCompanyId(companyId);
account.setCompanyId(companyId);
accountImdg.insert(account);

View file

@ -3,7 +3,7 @@ package ru.spcex.clearing.company.config.validation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.platform.dictionary.ClearingCategoryDictionary;
import ru.spcex.clearing.company.error.CompanyErrors;
import ru.spcex.clearing.imdg.IMDGDistributedNames;

View file

@ -4,7 +4,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.classes.statics.data.profile.Contact;
import ru.clearing.classes.statics.data.profile.ProfileDocument;
import ru.clearing.platform.dictionary.*;

View file

@ -8,7 +8,7 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.Consts;

View file

@ -14,7 +14,7 @@ import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.platform.dictionary.ClearingCategoryDictionary;
import ru.spcex.clearing.company.config.BeanConfiguration;
import ru.spcex.clearing.company.config.validation.ClearingMemberCategoryValidationConfig;

View file

@ -15,7 +15,7 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.platform.dictionary.CompanySymbolDictionary;
import ru.clearing.platform.dictionary.WorkflowStatusDictionary;
import ru.spcex.clearing.company.config.BeanConfiguration;

View file

@ -1,5 +1,5 @@
-- DB version: 3.5.0.16
-- DATA version: 3.5.0.1
-- DB version: 3.5.0.18
-- DATA version: 3.5.0.2
/* Dictionaries */
INSERT INTO ALLOWED_DICTIONARY(ID, CODE, NAME) values (1, 'ALWD', 'Разрешено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -208,7 +208,167 @@ INSERT INTO BOND_TYPE_DICTIONARY(ID, CODE, NAME) values (6, 'I', 'Облигац
INSERT INTO BOND_TYPE_DICTIONARY(ID, CODE, NAME) values (7, 'M', 'Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO COURIER_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STHS', 'ЭДО с Расчетной Организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'А', 'Владелец') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'B', 'Клиентский') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'С', 'Попечитель') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'D', 'Доверительный управляющий') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (5, 'E', 'Эмитент') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (6, 'Z', 'К размещению/выкупу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (7, 'H', 'Депо по учету облигаций') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (8, 'T', 'Депо по учету акций') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (9, 'N', 'Депо по учету облигаций с попечителем') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY(ID, CODE, NAME) values (10, 'S', 'Депо по учету акций с попечителем') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY(ID, CODE, NAME) values (1, 'ONE', 'Первый уровень ТКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY(ID, CODE, NAME) values (2, 'TWO', 'Второй уровень ТКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY(ID, CODE, NAME) values (1, 'C', 'Общий') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY(ID, CODE, NAME) values (2, 'M', 'Денежный рынок') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY(ID, CODE, NAME) values (3, 'K', 'Код ТКР второго уровня') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_DICTIONARY(ID, CODE, NAME) values (1, 'MKR', 'Денежный рынок МКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_DICTIONARY(ID, CODE, NAME) values (2, 'FOND', 'Фондовый рынок') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'ACTV', 'Активен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'BLKD', 'Заблокирован') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'SSPD', 'Приостановлен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'CLOS', 'Закрыт') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'ROPN', 'Возобновлен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'APPL', 'Допущен к клиринговому обслуживанию') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_PRODUCT_DICTIONARY(ID, CODE, NAME) values (1, 'PRNT', 'Расчет обязательств с процентом') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_PRODUCT_DICTIONARY(ID, CODE, NAME) values (2, 'ZERO', 'Расчет обязательств без процента (по умолчанию)') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_DESIGNATION_DICTIONARY(ID, CODE, NAME) values (1, 'L', 'Обязательства') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_DESIGNATION_DICTIONARY(ID, CODE, NAME) values (2, 'A', 'Активы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_DESIGNATION_DICTIONARY(ID, CODE, NAME) values (3, 'C', 'Требования') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_DESIGNATION_DICTIONARY(ID, CODE, NAME) values (4, 'O', 'Обязательства по сделкам в рамках формирования клирингового пула') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_DESIGNATION_DICTIONARY(ID, CODE, NAME) values (5, 'T', 'Требования по сделкам в рамках формирования клирингового пула') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_DESIGNATION_DICTIONARY(ID, CODE, NAME) values (6, 'D', 'Депозиты') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_INSTRUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'M', 'Деньги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_INSTRUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'S', 'Бумаги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CAPACITY_DICTIONARY(ID, CODE, NAME) values (1, 'A', 'Принципал') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CAPACITY_DICTIONARY(ID, CODE, NAME) values (2, 'B', 'Клиент') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CAPACITY_DICTIONARY(ID, CODE, NAME) values (3, 'C', 'Попечитель') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CAPACITY_DICTIONARY(ID, CODE, NAME) values (4, 'D', 'ДУ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CAPACITY_DICTIONARY(ID, CODE, NAME) values (5, 'Z', 'Размещение/Выкуп') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CAPACITY_DICTIONARY(ID, CODE, NAME) values (6, 'F', 'Держатель') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CAPACITY_DICTIONARY(ID, CODE, NAME) values (7, 'E', 'Эмитент') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_UNIT_DICTIONARY(ID, CODE, NAME) values (1, 'T', 'Под торги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_UNIT_DICTIONARY(ID, CODE, NAME) values (2, 'F', 'Свободные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_UNIT_DICTIONARY(ID, CODE, NAME) values (3, 'B', 'Заблокированные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_UNIT_DICTIONARY(ID, CODE, NAME) values (4, 'C', 'Комиссия') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (1, 'AMPT', 'Денежные средства - на торги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (2, 'AMPF', 'Денежные средства - свободные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (3, 'AMPB', 'Денежные средства - блокированные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (4, 'TMPT', 'Требования по деньгам - клиринговый пул') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (5, 'OSPT', 'Обязательства по инструментам - клиринговый пул') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (6, 'OMPT', 'Обязательства по деньгам - клиринговый пул') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (7, 'TSPT', 'Требования по инструментам - клиринговый пул') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (8, 'CMPT', 'Требования по деньгам - свои') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (9, 'LSPT', 'Обязательства по инструментам - свои') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (10, 'LMPT', 'Обязательства по деньгам - свои') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (11, 'CSPT', 'Требования по инструментам - свои') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'OK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'FAIL', 'Не успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'MNG', 'Не учитывать') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'PROC', 'К клирингу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'LIQU', 'Ликвидационный неттинг') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO BALANCE_DIMENSION_DICTIONARY(ID, CODE, NAME) values (1, 'PICS', 'Штуки') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO BALANCE_DIMENSION_DICTIONARY(ID, CODE, NAME) values (2, 'LOTS', 'Лоты') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO BALANCE_DIMENSION_DICTIONARY(ID, CODE, NAME) values (3, 'MONY', 'Деньги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CLRN', 'Торгово-Банковский Счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'BANK', 'Счет вывода средств из ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'USPD', 'Регистр невыясненных поступлений') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'CORR', 'Корреспондентский счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (5, 'INFO', 'Регистр') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (6, 'PYER', 'Счет плательщика') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (7, 'ANLT', 'Клиринговый-Банковский Счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (8, 'TRAN', 'Транзакционный счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (9, 'DEPO', 'Депозитарный счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'A', 'Счет участника') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'B', 'Счет клиента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'C', 'Счет попечителя') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'D', 'Счет доверительного управляющего') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (5, 'Z', 'Счет к размещению/выкупу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (6, 'F', 'Счет держателя') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (7, 'E', 'Счет эмитента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO CLEARING_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'A', 'Счет участника') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO CLEARING_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'B', 'Счет клиента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (1, 'GBAL', 'Зачисление остатков') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -240,9 +400,7 @@ INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (25, 'GTRD', 'Получен
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (32, 'GACA', 'Создание файла остатков CSV по клиринговым счетам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (33, 'GAIA', 'Создание файла остатков CSV по внутренним информационным счетам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (34, 'GBLD', 'Поступление средств') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (33, 'GAIA', 'Создание файла остатков CSV по внутренним информацион.счетам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (35, 'SCLR', 'Запуск клиринговой сессии') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -250,6 +408,30 @@ INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (36, 'SPRC', 'Запуск п
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (37, 'SPOC', 'Запуск постклиринга') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (38, 'LIMM', 'Выгрузка в торговую систему остатков секции МКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (38, 'LIMF', 'Выгрузка в торговую систему остатков Фондовой секции') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (39, 'LIQU', 'Ликвидационная сессия по обязательтсвам участника') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (40, 'STRM', 'Начало торговой сессии секции МКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (41, 'ETRM', 'Завершение торговой сессии секции МКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (42, 'SIPO', 'Начало торговой сессии по первичным торгам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (43, 'EIPO', 'Завершение торговой сессии по первичным торгам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (44, 'STRF', 'Начало торговой сессии по вторичным торгам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (45, 'ETRF', 'Завершение торговой сессии по вторичным торгам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (46, 'RCHK', 'Запрос на сверку активов') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (47, 'GRYT', 'Сформировать регистр на текущий день') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (48, 'GRRT', 'Сформировать реестр на текущий день') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'ACTV', 'Активна') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TASK_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'BLKD', 'Не активна') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -260,6 +442,14 @@ INSERT INTO DAY_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'BDAY', 'Рабоч
INSERT INTO DAY_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'DOFF', 'Нерабочий') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO PARENT_DICTIONARY(ID, CODE, NAME) values (1, 'TMPL', 'Шаблон') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO PARENT_DICTIONARY(ID, CODE, NAME) values (2, 'PLNR', 'Расписание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO PARENT_DICTIONARY(ID, CODE, NAME) values (3, 'CLND', 'Календарь') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO COURIER_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STHS', 'ЭДО с Расчетной Организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'STLD', 'Рассчитан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'SENT', 'Отправлен в ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -272,12 +462,6 @@ INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'CHER', 'О
INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'NSNT', 'Не отправлен в ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO PARENT_DICTIONARY(ID, CODE, NAME) values (1, 'TMPL', 'Шаблон') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO PARENT_DICTIONARY(ID, CODE, NAME) values (2, 'PLNR', 'Расписание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO PARENT_DICTIONARY(ID, CODE, NAME) values (3, 'CLND', 'Календарь') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO CHARGE_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'PRCT', 'Процент') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO CHARGE_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'GET', 'Получить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -292,12 +476,6 @@ INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'MNG', 'Не
INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'PROC', 'К клирингу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'ACTV', 'Активен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'BLKD', 'Заблокирован') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'CLOS', 'Закрыт') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO BALANCE_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'ACNT', 'Остатки по счетам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'IN', 'Зачисление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -308,16 +486,6 @@ INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (1, 'BUY', 'Раз
INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (2, 'SELL', 'Привлечь') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'ACTV', 'Активен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'BLKD', 'Заблокирован') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'SSPD', 'Приостановлен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'CLOS', 'Закрыт') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'ROPN', 'Возобновлен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO STATEMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'FULL', 'Установка суммы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO STATEMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'INCR', 'Изменение суммы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -334,12 +502,6 @@ INSERT INTO OPERATION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'EXEC', 'Ис
INSERT INTO OPERATION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'CNCL', 'Отменена') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_DICTIONARY(ID, CODE, NAME) values (1, 'MKR', 'Денежный рынок МКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_PRODUCT_DICTIONARY(ID, CODE, NAME) values (1, 'PRNT', 'Расчет обязательств с процентом') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SERVICE_PRODUCT_DICTIONARY(ID, CODE, NAME) values (2, 'ZERO', 'Расчет обязательств без процента (по умолчанию)') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CRPA', 'Корпоративное событие, связанное с допуском') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'DFLT', 'Отсутствие возврата по платежу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -356,22 +518,6 @@ INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (2, 'NO
INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (3, 'DEL', 'Удалена') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CLRN', 'Клиринговый счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'BANK', 'Банковский счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'USPD', 'Счет невыясненных поступлений') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'CORR', 'Корреспондентский счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (5, 'INFO', 'Информационный счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (6, 'PYER', 'Счет плательщика') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (7, 'ANLT', 'Аналитический счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (8, 'TRAN', 'Транзакционный счет') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'NACK', 'Неуспешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'ACK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -412,7 +558,7 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1001, 'SECR', 'Нет
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1002, 'SECR', 'Не заданы обязательные поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1003, 'SECR', 'Запись с идентификатором %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1003, 'SECR', 'Запись с кодом %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1004, 'SECR', 'Неверное значение поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -430,13 +576,21 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1011, 'SECR', 'Инс
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1012, 'SECR', 'Инструмент %s неактивен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1013, 'SECR', 'Запись по инструменту %s уже существует.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1014, 'SECR', 'Запись по инструменту %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1015, 'SECR', 'Валюта %s уже существует.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1016, 'SECR', 'Валюта %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2000, 'UTIL', 'Общая ошибка модуля utility-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2001, 'UTIL', 'Нет прав на проведение данной операции.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2002, 'UTIL', 'Не заданы обязательные поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2003, 'UTIL', 'Запись с идентификатором %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2003, 'UTIL', 'Запись с кодом %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2004, 'UTIL', 'Неверное значение поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -444,13 +598,17 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2005, 'UTIL', 'Зап
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2006, 'UTIL', 'Запись с идентификатором %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2007, 'UTIL', 'Пользователь %s не найден.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (2008, 'UTIL', 'Пользователь %s неактивен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3000, 'CMPN', 'Общая ошибка модуля company-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3001, 'CMPN', 'Нет прав на проведение данной операции.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3002, 'CMPN', 'Не заданы обязательные поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3003, 'CMPN', 'Запись с идентификатором %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3003, 'CMPN', 'Запись с кодом %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3004, 'CMPN', 'Неверное значение поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -476,6 +634,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3017, 'CMPN', 'Ком
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3018, 'CMPN', 'У компании %s присутствуют обязательства.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3019, 'CMPN', 'Компания с %s = %s уже создана.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3020, 'CMPN', 'Тип реквизита компании %s не может быть изменен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3021, 'CMPN', 'Тип контакта компании %s не может быть изменен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -488,7 +648,7 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5001, 'ACNT', 'Нет
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5002, 'ACNT', 'Не заданы обязательные поля.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5003, 'ACNT', 'Запись с указанным идентификатором в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5003, 'ACNT', 'Запись с кодом %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5004, 'ACNT', 'Неверное значение поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -542,7 +702,7 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5401, 'CLRN', 'Нет
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5402, 'CLRN', 'Не заданы обязательные поля.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5403, 'CLRN', 'Запись с указанным идентификатором в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5403, 'CLRN', 'Запись с кодом %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5404, 'CLRN', 'Неверное значение поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -578,7 +738,11 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5600, 'DBFI', 'Общ
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5800, 'DBFE', 'Общая ошибка модуля dbf-exporter.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (6000, 'APIC', 'Общая ошибка модуля api-lk-company.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (6000, 'GTWA', 'Общая ошибка модуля gateway-api.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (6001, 'GTWA', 'Не удается найти запись %s в Company') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (6002, 'GTWA', 'Не удается найти запись %s в security') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7000, 'SCHD', 'Общая ошибка модуля scheduler-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -586,7 +750,7 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7001, 'SCHD', 'Нет
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7002, 'SCHD', 'Не заданы обязательные поля.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7003, 'SCHD', 'Запись с указанным идентификатором в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7003, 'SCHD', 'Запись с кодом %s в справочнике %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (7004, 'SCHD', 'Неверное значение поля %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -632,8 +796,8 @@ INSERT INTO COMPANY_SYMBOLS(ID, COMPANY_ID, COMPANY_SYMBOL, COMPANY_SYMBOL_VALUE
INSERT INTO COMPANY_SYMBOLS(ID, COMPANY_ID, COMPANY_SYMBOL, COMPANY_SYMBOL_VALUE) values (2, 2, 'BIC', '044030505') ON CONFLICT (ID) DO UPDATE SET COMPANY_ID = EXCLUDED.COMPANY_ID, COMPANY_SYMBOL = EXCLUDED.COMPANY_SYMBOL, COMPANY_SYMBOL_VALUE = EXCLUDED.COMPANY_SYMBOL_VALUE;
INSERT INTO ACCOUNT(ID, COMPANY_ID, ACCOUNT, ACCOUNT_TYPE, ACCOUNT_STATUS, PROCESSING_SIGN) values (1, 1, '30414810300000006000', 'TRAN', 'ACTV', 'ALWD') ON CONFLICT (ID) DO UPDATE SET COMPANY_ID = EXCLUDED.COMPANY_ID, ACCOUNT = EXCLUDED.ACCOUNT, ACCOUNT_TYPE = EXCLUDED.ACCOUNT_TYPE, ACCOUNT_STATUS = EXCLUDED.ACCOUNT_STATUS, PROCESSING_SIGN = EXCLUDED.PROCESSING_SIGN;
INSERT INTO ACCOUNT(ID, COMPANY_ID, ACCOUNT, ACCOUNT_TYPE, STATUS, PROCESSING_SIGN) values (1, 1, '30414810300000006000', 'TRAN', 'ACTV', 'ALWD') ON CONFLICT (ID) DO UPDATE SET COMPANY_ID = EXCLUDED.COMPANY_ID, ACCOUNT = EXCLUDED.ACCOUNT, ACCOUNT_TYPE = EXCLUDED.ACCOUNT_TYPE, STATUS = EXCLUDED.STATUS, PROCESSING_SIGN = EXCLUDED.PROCESSING_SIGN;
INSERT INTO ACCOUNT(ID, COMPANY_ID, ACCOUNT, ACCOUNT_TYPE, ACCOUNT_STATUS, PROCESSING_SIGN) values (2, 1, '30414810600000007000', 'ANLT', 'ACTV', 'ALWD') ON CONFLICT (ID) DO UPDATE SET COMPANY_ID = EXCLUDED.COMPANY_ID, ACCOUNT = EXCLUDED.ACCOUNT, ACCOUNT_TYPE = EXCLUDED.ACCOUNT_TYPE, ACCOUNT_STATUS = EXCLUDED.ACCOUNT_STATUS, PROCESSING_SIGN = EXCLUDED.PROCESSING_SIGN;
INSERT INTO ACCOUNT(ID, COMPANY_ID, ACCOUNT, ACCOUNT_TYPE, STATUS, PROCESSING_SIGN) values (2, 1, '30414810600000007000', 'ANLT', 'ACTV', 'ALWD') ON CONFLICT (ID) DO UPDATE SET COMPANY_ID = EXCLUDED.COMPANY_ID, ACCOUNT = EXCLUDED.ACCOUNT, ACCOUNT_TYPE = EXCLUDED.ACCOUNT_TYPE, STATUS = EXCLUDED.STATUS, PROCESSING_SIGN = EXCLUDED.PROCESSING_SIGN;
INSERT INTO MARKET(ID, CODE, NAME, SECTION) values (1, 'MKRS', 'Денежный рынок МКР', 'MKR') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SECTION = EXCLUDED.SECTION;

File diff suppressed because it is too large Load diff

View file

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

View file

@ -0,0 +1,10 @@
package ru.clearing.platform.dictionary;
/**
* Справочник размерностей балансов
*
* Dictionary DB table: BALANCE_DIMENSION_DICTIONARY
**/
public class BalanceDimensionDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,11 @@
package ru.clearing.platform.dictionary;
/**
* Справочник символов регистров - назначения
*
* Dictionary DB table: REGISTRY_DESIGNATION_DICTIONARY
**/
public class RegistryDesignationDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

@ -0,0 +1,11 @@
package ru.clearing.platform.dictionary;
/**
* Справочник символов регистров - инструменты
*
* Dictionary DB table: REGISTRY_INSTRUMENT_TYPE_DICTIONARY
**/
public class RegistryInstrumentTypeDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

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

View file

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

View file

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

View file

@ -0,0 +1,11 @@
package ru.clearing.platform.dictionary;
/**
* Справочник уровней торгово-клиринговых регистров
*
* Dictionary DB table: TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY
**/
public class TradingClearingRegistryLevelDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

@ -0,0 +1,11 @@
package ru.clearing.platform.dictionary;
/**
* Справочник областей применения
*
* Dictionary DB table: TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY
**/
public class TradingClearingRegistryPurposeDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

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

View file

@ -0,0 +1,84 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import ru.clearing.classes.objects.BusinessEvent;
import ru.clearing.classes.statics.data.security.Security;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Двойная запись в 2 таблицы:
* SECURITY_HISTORY
* *_SECURITY_HISTORY
*/
public abstract class ASecurityHistoryMapStore<STH extends BusinessEvent<? extends Security>> extends TemplateEventMapStore<STH> {
protected final int validateSecuritySize;
public ASecurityHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
this.validateSecuritySize = getFieldsSecurity().length;
}
public String[] getFieldsSecurity() {
return new String[]{
"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"SECURITY_ID", "CREATED_AT", "UPDATED_AT", "INSTRUMENT_TYPE", "ISSUER_ID", "SHORT_NAME", "FULL_NAME", "SHORT_NAME_ENG", "FULL_NAME_ENG", "SECURITY_SYMBOL", "ISIN", "WORKFLOW_STATUS", "UUID"};
}
private final String insertToSecurityStatement = makeInsertSql("SECURITY_HISTORY",
getFieldsSecurity(), "id");
protected Object[] securityField(STH historyLog) {
Security object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(), // securitytId
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated()),
object.getInstrumentType(),
object.getIssuerId(),
object.getShortName(),
object.getFullName(),
object.getShortNameEng(),
object.getFullNameEng(),
object.getSecuritySymbol(),
object.getIsin(),
object.getWorkflowStatus(),
object.getUuid()
};
return args;
}
@Override
public void store(Map<Long, STH> map) {
List<Object[]> tableArgs = new ArrayList<>();
List<Object[]> securityArgs = new ArrayList<>();
for (Map.Entry<Long, STH> entry : map.entrySet()) {
STH obj = entry.getValue();
Object[] args = objectToField(obj);
if (args.length != validateSize) {
throw new IllegalArgumentException("objectToField return " + args.length + " arguments, but expected " + validateSize);
}
tableArgs.add(args);
Object[] securityItemArgs = securityField(obj);
if (securityItemArgs.length != validateSecuritySize) {
throw new IllegalArgumentException("securityField return " + securityItemArgs.length + " arguments, but expected " + validateSecuritySize);
}
securityArgs.add(securityItemArgs);
}
batchInsertUpdate(insertStatement, tableArgs);
batchInsertUpdate(insertToSecurityStatement, securityArgs);
}
}

View file

@ -8,7 +8,8 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
@Deprecated
//@Component
public class AccountBalanceHistoryMapStore extends TemplateEventMapStore<AccountBalanceHistory> {
public AccountBalanceHistoryMapStore(JdbcTemplate jdbcTemplate) {

View file

@ -28,7 +28,7 @@ public class AccountHistoryMapStore extends TemplateEventMapStore<AccountHistory
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_TYPE", "EVENT_USER_ID",
"ACCOUNT_ID", "CREATED_AT", "UPDATED_AT", "ACCOUNT", "ACCOUNT_TYPE", "RELATION_ID", "ACCOUNT_STATUS", "PROCESSING_SIGN", "COMPANY_ID"
"ACCOUNT_ID", "CREATED_AT", "UPDATED_AT", "ACCOUNT", "ACCOUNT_TYPE", "RELATION_ID", "STATUS", "PROCESSING_SIGN", "COMPANY_ID"
};
}
@ -47,7 +47,7 @@ public class AccountHistoryMapStore extends TemplateEventMapStore<AccountHistory
object.getAccount(),
object.getAccountType(),
object.getRelationId(),
object.getAccountStatus(),
object.getStatus(),
object.getProcessingSign(),
object.getCompanyId()
};

View file

@ -1,52 +0,0 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.AccountRouting;
import ru.clearing.classes.statics.data.account.AccountRoutingHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class AccountRoutingHistoryMapStore extends TemplateEventMapStore<AccountRoutingHistory> {
public AccountRoutingHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_AccountRoutingHistory;
}
@Override
public String getTableName() {
return "ACCOUNT_ROUTING_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_TYPE", "EVENT_USER_ID",
"ACCOUNT_ROUTING_ID", "DESTINATION_ID", "RELATION_ID", "SOURCE_ID"
};
}
@Override
public Object[] objectToField(AccountRoutingHistory updateLog) {
AccountRouting object = updateLog.getObject();
Object[] args = new Object[]{
updateLog.getId(),
TimeUtil.toDateFromInstant(updateLog.getEventTime()),
updateLog.getEventType(),
updateLog.getUserId(),
object.getId(),
object.getDestinationId(),
object.getRelationId(),
object.getSourceId()
};
return args;
}
}

View file

@ -0,0 +1,52 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.ClearingAccount;
import ru.clearing.classes.statics.data.account.ClearingAccountHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class ClearingAccountHistoryMapStore extends TemplateEventMapStore<ClearingAccountHistory> {
public ClearingAccountHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_ClearingAccountHistory;
}
@Override
public String getTableName() {
return "CLEARING_ACCOUNT_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"CLEARING_ACCOUNT_ID", "ACCOUNT_ID", "CLEARING_ACCOUNT_TYPE", "COMPANY_ID"
};
}
@Override
public Object[] objectToField(ClearingAccountHistory historyLog) {
ClearingAccount object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getAccountId(),
object.getClearingAccountType(),
object.getCompanyId()
};
return args;
}
}

View file

@ -0,0 +1,50 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.ClearingMemberCategoryHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class ClearingMemberCategoryHistoryMapStore extends TemplateEventMapStore<ClearingMemberCategoryHistory> {
public ClearingMemberCategoryHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_ClearingMemberCategoryHistory;
}
@Override
public String getTableName() {
return "CLEARING_MEMBER_CATEGORY_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"CLEARING_MEMBER_CATEGORY_ID", "COMPANY_ID", "CLEARING_MEMBER_CATEGORY"
};
}
@Override
public Object[] objectToField(ClearingMemberCategoryHistory historyLog) {
ClearingMemberCategory object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getCompanyId(),
object.getClearingMemberCategory()
};
return args;
}
}

View file

@ -0,0 +1,57 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.ClientCode;
import ru.clearing.classes.statics.data.account.ClientCodeHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class ClientCodeHistoryMapStore extends TemplateEventMapStore<ClientCodeHistory> {
public ClientCodeHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_ClientCodeHistory;
}
@Override
public String getTableName() {
return "CLIENT_CODE_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"CLIENT_CODE_ID", "COMPANY_ID", "CODE", "TRADING_CLEARING_REGISTRY_ID", "MONEY_ACCOUNT_ID", "DEPO_ACCOUNT_ID", "STATUS", "CREATED_AT", "UPDATED_AT"
};
}
@Override
public Object[] objectToField(ClientCodeHistory historyLog) {
ClientCode object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getCompanyId(),
object.getCode(),
object.getTradingClearingRegistryId(),
object.getMoneyAccountId(),
object.getDepoAccountId(),
object.getStatus(),
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated())
};
return args;
}
}

View file

@ -0,0 +1,51 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.company.CompanySymbolsHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class CompanySymbolsHistoryMapStore extends TemplateEventMapStore<CompanySymbolsHistory> {
public CompanySymbolsHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_CompanySymbolsHistory;
}
@Override
public String getTableName() {
return "COMPANY_SYMBOLS_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"company_symbols_id", "company_id", "company_symbol", "company_symbol_value"
};
}
@Override
public Object[] objectToField(CompanySymbolsHistory historyLog) {
CompanySymbols object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getCompanyId(),
object.getCompanySymbol(),
object.getCompanySymbolValue()
};
return args;
}
}

View file

@ -0,0 +1,53 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.instrument.issue.CouponPeriod;
import ru.clearing.classes.statics.data.instrument.issue.CouponPeriodHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class CouponPeriodHistoryMapStore extends TemplateEventMapStore<CouponPeriodHistory> {
public CouponPeriodHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_CouponPeriodHistory;
}
@Override
public String getTableName() {
return "COUPON_PERIOD_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"COUPON_PERIOD_ID", "SECURITY_ID", "COUPON_RATE", "NUMBER", "PERIOD_END_DATE", "PERIOD_START_DATE"
};
}
@Override
public Object[] objectToField(CouponPeriodHistory historyLog) {
CouponPeriod object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getSecurityId(),
object.getCouponRate(),
object.getNumber(),
TimeUtil.toDateFromLocalDate(object.getPeriodEndDate()),
TimeUtil.toDateFromLocalDate(object.getPeriodStartDate()),
};
return args;
}
}

View file

@ -7,6 +7,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.clearing.classes.statics.data.misc.Currency;
import ru.clearing.classes.statics.data.misc.CurrencyHistory;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class CurrencyHistoryMapStore extends TemplateEventMapStore<CurrencyHistory> {
@ -37,7 +38,7 @@ public class CurrencyHistoryMapStore extends TemplateEventMapStore<CurrencyHisto
Currency object=historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
historyLog.getEventTime(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),

View file

@ -0,0 +1,52 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.DepoAccount;
import ru.clearing.classes.statics.data.account.DepoAccountHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class DepoAccountHistoryMapStore extends TemplateEventMapStore<DepoAccountHistory> {
public DepoAccountHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_DepoAccountHistory;
}
@Override
public String getTableName() {
return "DEPO_ACCOUNT_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"DEPO_ACCOUNT_ID", "ACCOUNT_ID", "DEPO_ACCOUNT_TYPE", "COMPANY_ID"
};
}
@Override
public Object[] objectToField(DepoAccountHistory historyLog) {
DepoAccount object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getAccountId(),
object.getDepoAccountType(),
object.getCompanyId()
};
return args;
}
}

View file

@ -0,0 +1,51 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurityHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class EquitySecurityHistoryMapStore extends ASecurityHistoryMapStore<EquitySecurityHistory> {
public EquitySecurityHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_EquitySecurityHistory;
}
@Override
public String getTableName() {
return "EQUITY_SECURITY_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{
"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"EQUITY_SECURITY_ID", "SECURITY_ID", "SHARE_TYPE"};
}
@Override
protected Object[] objectToField(EquitySecurityHistory historyLog) {
EquitySecurity equitySecurity = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
equitySecurity.getId(),
equitySecurity.getSecurityId(),
equitySecurity.getShareType()
};
return args;
}
}

View file

@ -0,0 +1,57 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeCashFlow;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeCashFlowHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class FixedIncomeCashFlowHistoryMapStore extends TemplateEventMapStore<FixedIncomeCashFlowHistory> {
public FixedIncomeCashFlowHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_FixedIncomeCashFlowHistory;
}
@Override
public String getTableName() {
return "FIXED_INCOME_CASH_FLOW_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{
"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"FIXED_INCOME_CASH_FLOW_ID", "SECURITY_ID", "ACCRUED_COUPON", "NOMINAL_VALUE", "NUMBER", "VALUE_DATE"
};
}
@Override
protected Object[] objectToField(FixedIncomeCashFlowHistory historyLog) {
FixedIncomeCashFlow fixedIncomeCashFlow = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
fixedIncomeCashFlow.getId(),
fixedIncomeCashFlow.getSecurityId(),
fixedIncomeCashFlow.getAccruedCoupon(),
fixedIncomeCashFlow.getNominalValue(),
fixedIncomeCashFlow.getNumber(),
TimeUtil.toDateFromLocalDate(fixedIncomeCashFlow.getValueDate()),
};
return args;
}
}

View file

@ -0,0 +1,58 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurityHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class FixedIncomeSecurityHistoryMapStore extends ASecurityHistoryMapStore<FixedIncomeSecurityHistory> {
public FixedIncomeSecurityHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_FixedIncomeSecurityHistory;
}
@Override
public String getTableName() {
return "FIXED_INCOME_SECURITY_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{
"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"FIXED_INCOME_SECURITY_ID", "SECURITY_ID", "BOND_TYPE", "MATURITY_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY", "COUPON", "COUPON_FREQUENCY"
};
}
@Override
protected Object[] objectToField(FixedIncomeSecurityHistory historyLog) {
FixedIncomeSecurity fixedIncomeSecurity = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
fixedIncomeSecurity.getId(),
fixedIncomeSecurity.getSecurityId(),
fixedIncomeSecurity.getBondType(),
TimeUtil.toDateFromLocalDate(fixedIncomeSecurity.getMaturityDate()),
fixedIncomeSecurity.getNominalValue(),
fixedIncomeSecurity.getNominalCurrency(),
fixedIncomeSecurity.getCoupon(),
fixedIncomeSecurity.getCouponFrequency()
};
return args;
}
}

View file

@ -37,7 +37,7 @@ public class ListingHistoryMapStore extends TemplateEventMapStore<ListingHistory
Listing object=historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
historyLog.getEventTime(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),

View file

@ -37,7 +37,7 @@ public class MarketHistoryMapStore extends TemplateEventMapStore<MarketHistory>
Market object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
historyLog.getEventTime(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),

View file

@ -0,0 +1,62 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity;
import ru.clearing.classes.statics.data.misc.MoneyMarketSecurityHistory;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component
public class MoneyMarketSecurityHistoryMapStore extends ASecurityHistoryMapStore<MoneyMarketSecurityHistory> {
public MoneyMarketSecurityHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_MoneyMarketSecurityHistory;
}
@Override
public String getTableName() {
return "MONEY_MARKET_SECURITY_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{
"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"MONEY_MARKET_SECURITY_ID", "SECURITY_ID", "DESCRIPTION", "START_DATE", "END_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY", "TERM_TYPE"};
}
@Override
protected Object[] objectToField(MoneyMarketSecurityHistory historyLog) {
MoneyMarketSecurity moneyMarketSecurity = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
moneyMarketSecurity.getId(),
moneyMarketSecurity.getSecurityId(),
moneyMarketSecurity.getDescription(),
TimeUtil.toDateFromLocalDate(moneyMarketSecurity.getStartDate()),
TimeUtil.toDateFromLocalDate(moneyMarketSecurity.getEndDate()),
moneyMarketSecurity.getNominalValue(),
moneyMarketSecurity.getNominalCurrency(),
moneyMarketSecurity.getTermType()
};
return args;
}
}

View file

@ -0,0 +1,61 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.profile.ProfileDocument;
import ru.clearing.classes.statics.data.profile.ProfileDocumentHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class ProfileDocumentHistoryMapStore extends TemplateEventMapStore<ProfileDocumentHistory> {
public ProfileDocumentHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_ProfileDocumentHistory;
}
@Override
public String getTableName() {
return "PROFILE_DOCUMENT_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"profile_document_id", "company_id", "document_type", "issue_date", "issue_place", "issuer", "issuer_code",
"name", "number", "place", "valid_from_date", "valid_to_date", "link"
};
}
@Override
public Object[] objectToField(ProfileDocumentHistory historyLog) {
ProfileDocument object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getCompanyId(),
object.getDocumentType(),
TimeUtil.toDateFromLocalDate(object.getIssueDate()),
object.getIssuePlace(),
object.getIssuer(),
object.getIssuerCode(),
object.getName(),
object.getNumber(),
object.getPlace(),
TimeUtil.toDateFromLocalDate(object.getValidFromDate()),
TimeUtil.toDateFromLocalDate(object.getValidToDate()),
object.getLink()
};
return args;
}
}

View file

@ -0,0 +1,94 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.registry.RegistryHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class RegistryHistoryMapStore extends TemplateEventMapStore<RegistryHistory> {
public RegistryHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_RegistryHistory;
}
@Override
public String getTableName() {
return "REGISTRY_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"REGISTRY_COMPANY_ID", "TRADING_CODE", "CLEARING_CODE", "SHORT_NAME", "FULL_NAME", "ACCOUNT_ID", "ACCOUNT_TYPE", "ACCOUNT", "REGISTRY_DESIGNATION", "REGISTRY_INSTRUMENT_TYPE", "REGISTRY_CAPACITY", "REGISTRY_UNIT", "REGISTRY_CODE", "TRADING_CLEARING_REGISTRY_ID", "TRADING_CLEARING_REGISTRY", "REGISTRY_STATUS", "SECURITY_ID", "BALANCE", "OPEN_BALANCE", "CLOSE_BALANCE", "CREDIT", "DEBIT", "SETTLED_CREDIT", "SETTLED_DEBIT", "CHECK_BALANCE", "DIFF_BALANCE", "PLAN_BALANCE", "BALANCE_DIMENSION", "SETTLEMENT_DATE", "SETTLEMENT_CODE", "TRADING_DATE", "CLEARING_DATE", "REFUND_DATE", "VALUE_DATE", "PRICE", "CONTRACT", "COUNTER_PARTY_ID", "COMMENT", "PARENT_ID", "GROUP_ID", "SESSION_ID", "PAYMENT_ID", "REFUND_PAYMENT_ID", "ID", "CREATED_AT", "UPDATED_AT"
};
}
@Override
public Object[] objectToField(RegistryHistory historyLog) {
Registry object = historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getCompanyId(),
object.getTradingCode(),
object.getClearingCode(),
object.getShortName(),
object.getFullName(),
object.getAccountId(),
object.getAccountType(),
object.getAccount(),
object.getRegistryDesignation(),
object.getRegistryInstrumentType(),
object.getRegistryCapacity(),
object.getRegistryUnit(),
object.getRegistryCode(),
object.getTradingClearingRegistryId(),
object.getTradingClearingRegistry(),
object.getRegistryStatus(),
object.getSecurityId(),
object.getBalance(),
object.getOpenBalance(),
object.getCloseBalance(),
object.getCredit(),
object.getDebit(),
object.getSettledCredit(),
object.getSettledDebit(),
object.getCheckBalance(),
object.getDiffBalance(),
object.getPlanBalance(),
object.getBalanceDimension(),
TimeUtil.toDateFromLocalDate(object.getSettlementDate()),
object.getSettlementCode(),
TimeUtil.toDateFromLocalDate(object.getTradingDate()),
TimeUtil.toDateFromLocalDate(object.getClearingDate()),
TimeUtil.toDateFromLocalDate(object.getRefundDate()),
TimeUtil.toDateFromLocalDate(object.getValueDate()),
object.getPrice(),
object.getContract(),
object.getCounterPartyId(),
object.getComment(),
object.getParentId(),
object.getGroupId(),
object.getSessionId(),
object.getPaymentId(),
object.getRefundPaymentId(),
object.getId(),
TimeUtil.toDateFromInstant(object.getCreatedAt()),
TimeUtil.toDateFromInstant(object.getUpdatedAt())
};
return args;
}
}

View file

@ -8,6 +8,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
// Abstract table: ASecurityHistoryMapStore
@Component
public class SecurityHistoryMapStore extends TemplateEventMapStore<SecurityHistory> {

View file

@ -0,0 +1,59 @@
package ru.spcex.clearing.imdg.businessevent;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistryHistory;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateEventMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
@Component
public class TradingClearingRegistryHistoryMapStore extends TemplateEventMapStore<TradingClearingRegistryHistory> {
public TradingClearingRegistryHistoryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_TradingClearingRegistryHistory;
}
@Override
public String getTableName() {
return "TRADING_CLEARING_REGISTRY_HISTORY";
}
@Override
public String[] getFields() {
return new String[]{"ID","EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"TRADING_CLEARING_REGISTRY_ID", "COMPANY_ID", "CODE", "MONEY_ACCOUNT_ID", "DEPO_AACCOUNT_ID", "TRADING_CLEARING_REGISTRY_TYPE", "TRADING_CLEARING_REGISTRY_LEVEL", "TRADING_CLEARING_REGISTRY_PURPOSE", "STATUS", "CREATED_AT", "UPDATED_AT"
};
}
@Override
public Object[] objectToField(TradingClearingRegistryHistory historyLog) {
TradingClearingRegistry object=historyLog.getObject();
Object[] args = new Object[]{
historyLog.getId(),
TimeUtil.toDateFromInstant(historyLog.getEventTime()),
historyLog.getUserId(),
historyLog.getEventType(),
object.getId(),
object.getCompanyId(),
object.getCode(),
object.getMoneyAccountId(),
object.getDepoAaccountId(),
object.getTradingClearingRegistryType(),
object.getTradingClearingRegistryLevel(),
object.getTradingClearingRegistryPurpose(),
object.getStatus(),
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated())
};
return args;
}
}

View file

@ -0,0 +1,107 @@
package ru.spcex.clearing.imdg.businessobject;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.security.Security;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Двойная запись в 2 таблицы:
* SECURITY_HISTORY
* *_SECURITY_HISTORY
*
* objectReader() надо использовать fillBySecurity(object, object.getSecurityId());
* objectToField() требуется возвращать только поля в дополнительную таблицу, без полей для SECURITY
*/
@Component
public abstract class ASecurityMapStore <S extends Security> extends TemplateMapStore<S> {
protected final int validateSecuritySize;
public ASecurityMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
validateSecuritySize = getFieldsSecurity().length;
}
public String[] getFieldsSecurity() {
return new String[]{"ID", "CREATED_AT", "UPDATED_AT", "INSTRUMENT_TYPE", "ISSUER_ID", "SHORT_NAME", "FULL_NAME", "SHORT_NAME_ENG", "FULL_NAME_ENG", "SECURITY_SYMBOL", "ISIN", "WORKFLOW_STATUS", "UUID"};
}
private final String insertToSecurityStatement = makeInsertSql("SECURITY",
getFieldsSecurity(), "id");
protected void fillBySecurity(S object, Long securityId) {
List<S> resouts = jdbcTemplate.query(
"SELECT * FROM SECURITY WHERE id = ?", new Object[]{securityId},
(rs, rowNum) -> {
object.setCreated(getInstantFromTimestamp(rs, "CREATED_AT"));
object.setUpdated(getInstantFromTimestamp(rs, "UPDATED_AT"));
object.setInstrumentType(rs.getObject("INSTRUMENT_TYPE", String.class));
object.setIssuerId(rs.getObject("issuer_id", Long.class));
object.setShortName(rs.getObject("short_name", String.class));
object.setFullName(rs.getObject("FULL_NAME", String.class));
object.setShortNameEng(rs.getObject("short_name_eng", String.class));
object.setFullNameEng(rs.getObject("full_name_eng", String.class));
object.setSecuritySymbol(rs.getObject("SECURITY_SYMBOL", String.class));
object.setIsin(rs.getObject("ISIN", String.class));
object.setWorkflowStatus(rs.getObject("workflow_status", String.class));
object.setIsin(rs.getObject("UUID", String.class));
return object;
}
);
if (resouts.size() != 1) {
log.warn("Result size={} not expected for table SECURITY, {} where id={}", getTableName(), resouts.size(), securityId);
}
}
protected Object[] securityField(S object) {
Object[] args = new Object[]{
object.getId(), // SecurityId
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated()),
object.getInstrumentType(),
object.getIssuerId(),
object.getShortName(),
object.getFullName(),
object.getShortNameEng(),
object.getFullNameEng(),
object.getSecuritySymbol(),
object.getIsin(),
object.getWorkflowStatus(),
object.getUuid()
};
return args;
}
@Override
public void store(Map<Long, S> map) {
List<Object[]> childTableArgs = new ArrayList<>();
List<Object[]> securityArgs = new ArrayList<>();
for (Map.Entry<Long, S> entry : map.entrySet()) {
S obj = entry.getValue();
Object[] args = objectToField(obj);
if (args.length != validateSize) {
throw new IllegalArgumentException("objectToField return " + args.length + " arguments, but expected " + validateSize);
}
childTableArgs.add(args);
Object[] argsSecurityItem = securityField(obj);
if (argsSecurityItem.length != validateSecuritySize) {
throw new IllegalArgumentException("securityField return " + argsSecurityItem.length + " arguments, but expected " + validateSecuritySize);
}
securityArgs.add(argsSecurityItem);
}
batchInsertUpdate(insertStatement, childTableArgs);
batchInsertUpdate(insertToSecurityStatement, securityArgs);
}
}

View file

@ -11,7 +11,8 @@ import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
@Component
@Deprecated
//@Component
public class AccountBalanceMapStore extends TemplateMapStore<AccountBalance> {
public AccountBalanceMapStore(JdbcTemplate jdbcTemplate) {

View file

@ -30,7 +30,7 @@ public class AccountMapStore extends TemplateMapStore<Account> {
@Override
public String[] getFields() {
return new String[]{
"ID", "CREATED_AT", "UPDATED_AT", "ACCOUNT", "ACCOUNT_TYPE", "RELATION_ID", "ACCOUNT_STATUS", "PROCESSING_SIGN", "COMPANY_ID"
"ID", "CREATED_AT", "UPDATED_AT", "ACCOUNT", "ACCOUNT_TYPE", "RELATION_ID", "STATUS", "PROCESSING_SIGN", "COMPANY_ID"
};
}
@ -43,7 +43,7 @@ public class AccountMapStore extends TemplateMapStore<Account> {
object.setAccount(resultSet.getObject("ACCOUNT", String.class));
object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class));
object.setRelationId(resultSet.getObject("RELATION_ID", Long.class));
object.setAccountStatus(resultSet.getObject("ACCOUNT_STATUS", String.class));
object.setStatus(resultSet.getObject("STATUS", String.class));
object.setProcessingSign(resultSet.getObject("PROCESSING_SIGN", String.class));
object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class));
return object;
@ -58,7 +58,7 @@ public class AccountMapStore extends TemplateMapStore<Account> {
object.getAccount(),
object.getAccountType(),
object.getRelationId(),
object.getAccountStatus(),
object.getStatus(),
object.getProcessingSign(),
object.getCompanyId()
};

View file

@ -0,0 +1,68 @@
package ru.spcex.clearing.imdg.businessobject;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.ClientCode;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
import java.sql.ResultSet;
import java.sql.SQLException;
@Component
public class ClientCodeMapStore extends TemplateMapStore<ClientCode> {
public ClientCodeMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_ClientCode;
}
@Override
public String getTableName() {
return "CLIENT_CODE";
}
@Override
public String[] getFields() {
return new String[]{
"ID", "COMPANY_ID", "CODE", "TRADING_CLEARING_REGISTRY_ID", "MONEY_ACCOUNT_ID", "DEPO_ACCOUNT_ID", "STATUS", "CREATED_AT", "UPDATED_AT"
};
}
@Override
public ClientCode objectReader(ResultSet resultSet) throws SQLException {
ClientCode object = new ClientCode();
object.setId(resultSet.getObject("ID", Long.class));
object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class));
object.setCode(resultSet.getObject("CODE", String.class));
object.setTradingClearingRegistryId(resultSet.getObject("TRADING_CLEARING_REGISTRY_ID", Long.class));
object.setMoneyAccountId(resultSet.getObject("MONEY_ACCOUNT_ID", Long.class));
object.setDepoAccountId(resultSet.getObject("DEPO_ACCOUNT_ID", Long.class));
object.setStatus(resultSet.getObject("STATUS", String.class));
object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT"));
object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT"));
return object;
}
@Override
public Object[] objectToField(ClientCode object) {
Object[] args = new Object[]{
object.getId(),
object.getCompanyId(),
object.getCode(),
object.getTradingClearingRegistryId(),
object.getMoneyAccountId(),
object.getDepoAccountId(),
object.getStatus(),
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated())
};
return args;
}
}

View file

@ -14,7 +14,7 @@ import java.util.List;
import java.util.Map;
@Component
public class EquitySecurityMapStore extends TemplateMapStore<EquitySecurity> {
public class EquitySecurityMapStore extends ASecurityMapStore<EquitySecurity> {
public EquitySecurityMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
@ -37,18 +37,6 @@ public class EquitySecurityMapStore extends TemplateMapStore<EquitySecurity> {
};
}
public String[] getFieldsSecurity() {
return new String[]{"ID", "CREATED_AT", "UPDATED_AT", "INSTRUMENT_TYPE", "ISSUER_ID", "SHORT_NAME", "FULL_NAME", "SHORT_NAME_ENG", "FULL_NAME_ENG", "SECURITY_SYMBOL", "ISIN", "WORKFLOW_STATUS"};
}
private final String insertToSecurityStatement = makeInsertSql("SECURITY",
getFieldsSecurity(), "id");
@Override
protected EquitySecurity objectReader(ResultSet resultSet) throws SQLException {
@ -62,29 +50,6 @@ public class EquitySecurityMapStore extends TemplateMapStore<EquitySecurity> {
return object;
}
private void fillBySecurity(EquitySecurity object, Long securityId) {
List<EquitySecurity> resouts = jdbcTemplate.query(
"SELECT * FROM SECURITY WHERE id = ?", new Object[]{securityId},
(rs, rowNum) -> {
object.setCreated(getInstantFromTimestamp(rs, "CREATED_AT"));
object.setUpdated(getInstantFromTimestamp(rs, "UPDATED_AT"));
object.setInstrumentType(rs.getObject("INSTRUMENT_TYPE", String.class));
object.setIssuerId(rs.getObject("issuer_id", Long.class));
object.setShortName(rs.getObject("short_name", String.class));
object.setFullName(rs.getObject("FULL_NAME", String.class));
object.setShortNameEng(rs.getObject("short_name_eng", String.class));
object.setFullNameEng(rs.getObject("full_name_eng", String.class));
object.setSecuritySymbol(rs.getObject("SECURITY_SYMBOL", String.class));
object.setIsin(rs.getObject("ISIN", String.class));
object.setWorkflowStatus(rs.getObject("workflow_status", String.class));
return object;
}
);
if (resouts.size() != 1) {
log.warn("Result size={} not expected for table MONEY_MARKET_SECURITY where id={}", resouts.size(), securityId);
}
}
@Override
protected Object[] objectToField(EquitySecurity equity) {
Object[] args = new Object[]{
@ -95,40 +60,4 @@ public class EquitySecurityMapStore extends TemplateMapStore<EquitySecurity> {
return args;
}
protected Object[] securityField(EquitySecurity object) {
Object[] args = new Object[]{
object.getSecurityId(),
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated()),
object.getInstrumentType(),
object.getIssuerId(),
object.getShortName(),
object.getFullName(),
object.getShortNameEng(),
object.getFullNameEng(),
object.getSecuritySymbol(),
object.getIsin(),
object.getWorkflowStatus()
};
return args;
}
@Override
public void store(Map<Long, EquitySecurity> map) {
List<Object[]> moneyMarketArgs = new ArrayList<>();
List<Object[]> securityArgs = new ArrayList<>();
for (Map.Entry<Long, EquitySecurity> entry : map.entrySet()) {
EquitySecurity obj = entry.getValue();
Object[] args = objectToField(obj);
if (args.length != validateSize) {
throw new IllegalArgumentException("objectToField return " + args.length + " arguments, but expected " + validateSize);
}
moneyMarketArgs.add(args);
securityArgs.add(securityField(obj));
}
batchInsertUpdate(insertStatement, moneyMarketArgs);
batchInsertUpdate(insertToSecurityStatement, securityArgs);
}
}

View file

@ -4,16 +4,14 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
@Component
public class FixedIncomeSecurityMapStore extends TemplateMapStore<FixedIncomeSecurity> {
public class FixedIncomeSecurityMapStore extends ASecurityMapStore<FixedIncomeSecurity> {
public FixedIncomeSecurityMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
@ -36,14 +34,6 @@ public class FixedIncomeSecurityMapStore extends TemplateMapStore<FixedIncomeSec
};
}
public String[] getFieldsSecurity() {
return new String[]{"ID", "CREATED_AT", "UPDATED_AT", "INSTRUMENT_TYPE", "ISSUER_ID", "SHORT_NAME", "FULL_NAME", "SHORT_NAME_ENG", "FULL_NAME_ENG", "SECURITY_SYMBOL", "ISIN", "WORKFLOW_STATUS"};
}
private final String insertToSecurityStatement = makeInsertSql("SECURITY",
getFieldsSecurity(), "id");
@Override
protected FixedIncomeSecurity objectReader(ResultSet resultSet) throws SQLException {
FixedIncomeSecurity object = new FixedIncomeSecurity();
@ -61,79 +51,19 @@ public class FixedIncomeSecurityMapStore extends TemplateMapStore<FixedIncomeSec
return object;
}
private void fillBySecurity(FixedIncomeSecurity object, Long securityId) {
List<FixedIncomeSecurity> resouts = jdbcTemplate.query(
"SELECT * FROM SECURITY WHERE id = ?", new Object[]{securityId},
(rs, rowNum) -> {
object.setCreated(getInstantFromTimestamp(rs, "CREATED_AT"));
object.setUpdated(getInstantFromTimestamp(rs, "UPDATED_AT"));
object.setInstrumentType(rs.getObject("INSTRUMENT_TYPE", String.class));
object.setIssuerId(rs.getObject("issuer_id", Long.class));
object.setShortName(rs.getObject("short_name", String.class));
object.setFullName(rs.getObject("FULL_NAME", String.class));
object.setShortNameEng(rs.getObject("short_name_eng", String.class));
object.setFullNameEng(rs.getObject("full_name_eng", String.class));
object.setSecuritySymbol(rs.getObject("SECURITY_SYMBOL", String.class));
object.setIsin(rs.getObject("ISIN", String.class));
object.setWorkflowStatus(rs.getObject("workflow_status", String.class));
return object;
}
);
if (resouts.size() != 1) {
log.warn("Result size={} not expected for table MONEY_MARKET_SECURITY where id={}", resouts.size(), securityId);
}
}
@Override
protected Object[] objectToField(FixedIncomeSecurity equity) {
Object[] args = new Object[]{
equity.getId(),
equity.getSecurityId(),
equity.getBondType(),
TimeUtil.toDateFromLocalDate(equity.getMaturityDate()),
equity.getNominalValue(),
equity.getNominalCurrency(),
equity.getCoupon(),
equity.getCouponFrequency()
};
return args;
}
protected Object[] securityField(FixedIncomeSecurity object) {
protected Object[] objectToField(FixedIncomeSecurity object) {
Object[] args = new Object[]{
object.getId(),
object.getSecurityId(),
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated()),
object.getInstrumentType(),
object.getIssuerId(),
object.getShortName(),
object.getFullName(),
object.getShortNameEng(),
object.getFullNameEng(),
object.getSecuritySymbol(),
object.getIsin(),
object.getWorkflowStatus()
object.getBondType(),
TimeUtil.toDateFromLocalDate(object.getMaturityDate()),
object.getNominalValue(),
object.getNominalCurrency(),
object.getCoupon(),
object.getCouponFrequency()
};
return args;
}
@Override
public void store(Map<Long, FixedIncomeSecurity> map) {
List<Object[]> moneyMarketArgs = new ArrayList<>();
List<Object[]> securityArgs = new ArrayList<>();
for (Map.Entry<Long, FixedIncomeSecurity> entry : map.entrySet()) {
FixedIncomeSecurity obj = entry.getValue();
Object[] args = objectToField(obj);
if (args.length != validateSize) {
throw new IllegalArgumentException("objectToField return " + args.length + " arguments, but expected " + validateSize);
}
moneyMarketArgs.add(args);
securityArgs.add(securityField(obj));
}
batchInsertUpdate(insertStatement, moneyMarketArgs);
batchInsertUpdate(insertToSecurityStatement, securityArgs);
}
}

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.imdg.object;
package ru.spcex.clearing.imdg.businessobject;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
@ -15,7 +15,7 @@ import java.util.List;
import java.util.Map;
@Component
public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSecurity> {
public class MoneyMarketSecurityMapStore extends ASecurityMapStore<MoneyMarketSecurity> {
private final String insertToSecurityStatement = makeInsertSql("SECURITY",
getFieldsSecurity(), "id");
@ -41,11 +41,7 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
@Override
public String[] getFields() {
return new String[]{"ID", "SECURITY_ID", "DESCRIPTION", "START_DATE", "END_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY", "TERM_TYPE", "LOT_SIZE"};
}
public String[] getFieldsSecurity() {
return new String[]{"ID", "CREATED_AT", "UPDATED_AT", "INSTRUMENT_TYPE", "ISSUER_ID", "SHORT_NAME", "FULL_NAME", "SHORT_NAME_ENG", "FULL_NAME_ENG", "SECURITY_SYMBOL", "ISIN", "WORKFLOW_STATUS"};
return new String[]{"ID", "SECURITY_ID", "DESCRIPTION", "START_DATE", "END_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY", "TERM_TYPE"};
}
@Override
@ -72,33 +68,10 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
object.setNominalValue(resultSet.getObject("NOMINAL_VALUE", BigDecimal.class));
object.setNominalCurrency(resultSet.getObject("NOMINAL_CURRENCY", String.class));
object.setTermType(resultSet.getObject("TERM_TYPE", String.class));
object.setLotSize(resultSet.getObject("LOT_SIZE", BigDecimal.class));
fillBySecurity(object, object.getSecurityId());
return object;
}
private void fillBySecurity(MoneyMarketSecurity object, Long securityId) {
List<MoneyMarketSecurity> resouts = jdbcTemplate.query(
"SELECT * FROM SECURITY WHERE id = ?", new Object[]{securityId},
(rs, rowNum) -> {
object.setCreated(getInstantFromTimestamp(rs, "CREATED_AT"));
object.setUpdated(getInstantFromTimestamp(rs, "UPDATED_AT"));
object.setInstrumentType(rs.getObject("INSTRUMENT_TYPE", String.class));
object.setIssuerId(rs.getObject("issuer_id", Long.class));
object.setShortName(rs.getObject("short_name", String.class));
object.setFullName(rs.getObject("FULL_NAME", String.class));
object.setShortNameEng(rs.getObject("short_name_eng", String.class));
object.setFullNameEng(rs.getObject("full_name_eng", String.class));
object.setSecuritySymbol(rs.getObject("SECURITY_SYMBOL", String.class));
object.setIsin(rs.getObject("ISIN", String.class));
object.setWorkflowStatus(rs.getObject("workflow_status", String.class));
return object;
}
);
if (resouts.size() != 1) {
log.warn("Result size={} not expected for table MONEY_MARKET_SECURITY where id={}", resouts.size(), securityId);
}
}
@Override
protected Object[] objectToField(MoneyMarketSecurity moneyMarketSecurity) {
@ -110,45 +83,9 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
TimeUtil.toDateFromLocalDate(moneyMarketSecurity.getEndDate()),
moneyMarketSecurity.getNominalValue(),
moneyMarketSecurity.getNominalCurrency(),
moneyMarketSecurity.getTermType(),
moneyMarketSecurity.getLotSize()
moneyMarketSecurity.getTermType()
};
return args;
}
protected Object[] securityField(MoneyMarketSecurity object) {
Object[] args = new Object[]{
object.getSecurityId(),
TimeUtil.toDateFromInstant(object.getCreated()),
TimeUtil.toDateFromInstant(object.getUpdated()),
object.getInstrumentType(),
object.getIssuerId(),
object.getShortName(),
object.getFullName(),
object.getShortNameEng(),
object.getFullNameEng(),
object.getSecuritySymbol(),
object.getIsin(),
object.getWorkflowStatus()
};
return args;
}
@Override
public void store(Map<Long, MoneyMarketSecurity> map) {
List<Object[]> moneyMarketArgs = new ArrayList<>();
List<Object[]> securityArgs = new ArrayList<>();
for (Map.Entry<Long, MoneyMarketSecurity> entry : map.entrySet()) {
MoneyMarketSecurity obj = entry.getValue();
Object[] args = objectToField(obj);
if (args.length != validateSize) {
throw new IllegalArgumentException("objectToField return " + args.length + " arguments, but expected " + validateSize);
}
moneyMarketArgs.add(args);
securityArgs.add(securityField(obj));
}
batchInsertUpdate(insertStatement, moneyMarketArgs);
batchInsertUpdate(insertToSecurityStatement, securityArgs);
}
}

View file

@ -0,0 +1,144 @@
package ru.spcex.clearing.imdg.businessobject;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
@Component
public class RegistryMapStore extends TemplateMapStore<Registry> {
public RegistryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_Registry;
}
@Override
public String getTableName() {
return "REGISTRY";
}
@Override
public String[] getFields() {
return new String[]{
"COMPANY_ID", "TRADING_CODE", "CLEARING_CODE", "SHORT_NAME", "FULL_NAME", "ACCOUNT_ID", "ACCOUNT_TYPE", "ACCOUNT", "REGISTRY_DESIGNATION", "REGISTRY_INSTRUMENT_TYPE", "REGISTRY_CAPACITY", "REGISTRY_UNIT", "REGISTRY_CODE", "TRADING_CLEARING_REGISTRY_ID", "TRADING_CLEARING_REGISTRY", "REGISTRY_STATUS", "SECURITY_ID", "BALANCE", "OPEN_BALANCE", "CLOSE_BALANCE", "CREDIT", "DEBIT", "SETTLED_CREDIT", "SETTLED_DEBIT", "CHECK_BALANCE", "DIFF_BALANCE", "PLAN_BALANCE", "BALANCE_DIMENSION", "SETTLEMENT_DATE", "SETTLEMENT_CODE", "TRADING_DATE", "CLEARING_DATE", "REFUND_DATE", "VALUE_DATE", "PRICE", "CONTRACT", "COUNTER_PARTY_ID", "COMMENT", "PARENT_ID", "GROUP_ID", "SESSION_ID", "PAYMENT_ID", "REFUND_PAYMENT_ID", "ID", "CREATED_AT", "UPDATED_AT"
};
}
@Override
public Registry objectReader(ResultSet resultSet) throws SQLException {
Registry object = new Registry();
object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class));
object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class));
object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class));
object.setShortName(resultSet.getObject("SHORT_NAME", String.class));
object.setFullName(resultSet.getObject("FULL_NAME", String.class));
object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class));
object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class));
object.setAccount(resultSet.getObject("ACCOUNT", String.class));
object.setRegistryDesignation(resultSet.getObject("REGISTRY_DESIGNATION", String.class));
object.setRegistryInstrumentType(resultSet.getObject("REGISTRY_INSTRUMENT_TYPE", String.class));
object.setRegistryCapacity(resultSet.getObject("REGISTRY_CAPACITY", String.class));
object.setRegistryUnit(resultSet.getObject("REGISTRY_UNIT", String.class));
object.setRegistryCode(resultSet.getObject("REGISTRY_CODE", String.class));
object.setTradingClearingRegistryId(resultSet.getObject("TRADING_CLEARING_REGISTRY_ID", Long.class));
object.setTradingClearingRegistry(resultSet.getObject("TRADING_CLEARING_REGISTRY", String.class));
object.setRegistryStatus(resultSet.getObject("REGISTRY_STATUS", String.class));
object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class));
object.setBalance(resultSet.getObject("BALANCE", BigDecimal.class));
object.setOpenBalance(resultSet.getObject("OPEN_BALANCE", BigDecimal.class));
object.setCloseBalance(resultSet.getObject("CLOSE_BALANCE", BigDecimal.class));
object.setCredit(resultSet.getObject("CREDIT", BigDecimal.class));
object.setDebit(resultSet.getObject("DEBIT", BigDecimal.class));
object.setSettledCredit(resultSet.getObject("SETTLED_CREDIT", BigDecimal.class));
object.setSettledDebit(resultSet.getObject("SETTLED_DEBIT", BigDecimal.class));
object.setCheckBalance(resultSet.getObject("CHECK_BALANCE", BigDecimal.class));
object.setDiffBalance(resultSet.getObject("DIFF_BALANCE", BigDecimal.class));
object.setPlanBalance(resultSet.getObject("PLAN_BALANCE", BigDecimal.class));
object.setBalanceDimension(resultSet.getObject("BALANCE_DIMENSION", String.class));
object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE"));
object.setSettlementCode(resultSet.getObject("SETTLEMENT_CODE", String.class));
object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE"));
object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE"));
object.setRefundDate(getLocalDateFromSqlDate(resultSet, "REFUND_DATE"));
object.setValueDate(getLocalDateFromSqlDate(resultSet, "VALUE_DATE"));
object.setPrice(resultSet.getObject("PRICE", BigDecimal.class));
object.setContract(resultSet.getObject("CONTRACT", String.class));
object.setCounterPartyId(resultSet.getObject("COUNTER_PARTY_ID", Long.class));
object.setComment(resultSet.getObject("COMMENT", String.class));
object.setParentId(resultSet.getObject("PARENT_ID", Long.class));
object.setGroupId(resultSet.getObject("GROUP_ID", Long.class));
object.setSessionId(resultSet.getObject("SESSION_ID", Long.class));
object.setPaymentId(resultSet.getObject("PAYMENT_ID", Long.class));
object.setRefundPaymentId(resultSet.getObject("REFUND_PAYMENT_ID", Long.class));
object.setId(resultSet.getObject("ID", Long.class));
object.setCreatedAt(getInstantFromTimestamp(resultSet, "CREATED_AT"));
object.setUpdatedAt(getInstantFromTimestamp(resultSet, "UPDATED_AT"));
return object;
}
@Override
public Object[] objectToField(Registry object) {
Object[] args = new Object[]{
object.getCompanyId(),
object.getTradingCode(),
object.getClearingCode(),
object.getShortName(),
object.getFullName(),
object.getAccountId(),
object.getAccountType(),
object.getAccount(),
object.getRegistryDesignation(),
object.getRegistryInstrumentType(),
object.getRegistryCapacity(),
object.getRegistryUnit(),
object.getRegistryCode(),
object.getTradingClearingRegistryId(),
object.getTradingClearingRegistry(),
object.getRegistryStatus(),
object.getSecurityId(),
object.getBalance(),
object.getOpenBalance(),
object.getCloseBalance(),
object.getCredit(),
object.getDebit(),
object.getSettledCredit(),
object.getSettledDebit(),
object.getCheckBalance(),
object.getDiffBalance(),
object.getPlanBalance(),
object.getBalanceDimension(),
TimeUtil.toDateFromLocalDate(object.getSettlementDate()),
object.getSettlementCode(),
TimeUtil.toDateFromLocalDate(object.getTradingDate()),
TimeUtil.toDateFromLocalDate(object.getClearingDate()),
TimeUtil.toDateFromLocalDate(object.getRefundDate()),
TimeUtil.toDateFromLocalDate(object.getValueDate()),
object.getPrice(),
object.getContract(),
object.getCounterPartyId(),
object.getComment(),
object.getParentId(),
object.getGroupId(),
object.getSessionId(),
object.getPaymentId(),
object.getRefundPaymentId(),
object.getId(),
TimeUtil.toDateFromInstant(object.getCreatedAt()),
TimeUtil.toDateFromInstant(object.getUpdatedAt())
};
return args;
}
}

View file

@ -10,6 +10,7 @@ import ru.spcex.platform.utils.time.TimeUtil;
import java.sql.ResultSet;
import java.sql.SQLException;
// Abstract table: ASecurityHistoryMapStore
@Component
public class SecurityMapStore extends TemplateMapStore<Security> {

Some files were not shown because too many files have changed in this diff Show more