etreschenkov 2025-05-23 14:17:47 +03:00
parent 62ec78c13b
commit c42323eeb5
7 changed files with 576 additions and 25 deletions

View file

@ -0,0 +1,87 @@
package ru.spcex.clearing.backendapi.controller.queue.securities;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import ru.clearing.classes.statics.data.security.DigitalCertificateSecurity;
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.securities.DigitalCertificateSecurityNewAction;
import ru.spcex.clearing.backendapi.controller.request.cud.securities.DigitalCertificateSecurityUpdateAction;
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
import ru.spcex.clearing.backendapi.service.IOperator;
import ru.spcex.clearing.backendapi.service.IStateLoader;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts;
@Controller
@RequestMapping("/securities/digital-certificate-securities")
public class DigitalCertificateSecuritiesController extends AbstractQueueController {
private final IStateLoader stateLoader;
@Autowired
public DigitalCertificateSecuritiesController(IOperator operator, IStateLoader stateLoader) {
super(operator);
this.stateLoader = stateLoader;
}
@ApiOperation(value = "create digital certificate security.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public CudResponse add(
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
@RequestBody DigitalCertificateSecurityNewAction digitalCertificateSecurityNewAction) throws ExecutionException, InterruptedException {
return processRequest(Consts.DESTINATION_DIGITAL_CERTIFICATE_SECURITY_NEW, digitalCertificateSecurityNewAction);
}
@ApiOperation(value = "update digital certificate security.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public CudResponse update(
@ApiParam(value = "Идентификатор изменяемого объекта.", required = true, example = "1234")
@PathVariable("id") Long id,
@ApiParam(value = "Новые значения полей объекта.", required = true)
@RequestBody DigitalCertificateSecurityUpdateAction digitalCertificateSecurityUpdateAction) throws ExecutionException, InterruptedException {
digitalCertificateSecurityUpdateAction.setId(id);
return processRequest(Consts.DESTINATION_DIGITAL_CERTIFICATE_SECURITY_UPDATE, digitalCertificateSecurityUpdateAction);
}
@ApiOperation(value = "delete currency pair securities.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234")
@PathVariable("id") Long id) throws ExecutionException, InterruptedException {
CommonDeleteAction deleteAction = new CommonDeleteAction();
deleteAction.setId(id);
return processRequest(Consts.DESTINATION_DIGITAL_CERTIFICATE_SECURITY_DELETE, deleteAction);
}
@ApiOperation(value = "get all equity securities.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public CommonGetAllResponse getAll() {
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_DigitalCertificateSecurity,
DigitalCertificateSecurity.class);
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(all);
return response;
}
}

View file

@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
import ru.clearing.classes.statics.data.misc.ValidationSymbols;
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.settings.ValidationSymbolsNewAction;
@ -27,7 +27,7 @@ import ru.spcex.clearing.backendapi.service.IStateLoader;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
@Controller
@RequestMapping("settings/validation-symbols")
@RequestMapping("/settings/validation-symbols")
public class ValidationSymbolsController extends AbstractQueueController {
private final IStateLoader stateLoader;
@ -85,7 +85,7 @@ public class ValidationSymbolsController extends AbstractQueueController {
@ResponseBody
public CommonGetAllResponse getAll() {
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_ValidationSymbols,
MoneyMarketSecurity.class);
ValidationSymbols.class);
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(all);
return response;

View file

@ -0,0 +1,230 @@
package ru.spcex.clearing.backendapi.controller.request.cud.securities;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDate;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.DigitalCertificateSecurityNewRequest;
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
public class DigitalCertificateSecurityNewAction implements IAction<DigitalCertificateSecurityNewRequest>, WithSecuritySymbol {
@ApiModelProperty(value = "Наименование типа инструмента", example = "CDE")
@JsonProperty
public String instrumentType;
@ApiModelProperty(value = "Код ЦС, присвоенный депозитарием")
@JsonProperty
public String baseCode;
@ApiModelProperty(value = "Код инструмента", example = "CDE")
@JsonProperty
public String securitySymbol;
@ApiModelProperty(value = "Краткое наименование инструмента", example = "NAME")
@JsonProperty
public String shortName;
@ApiModelProperty(value = "Полное наименование инструмента", example = "NAME of NAME")
@JsonProperty
public String fullName;
@ApiModelProperty(value = "Наименование эмитента", example = "1000")
@JsonProperty
public Long issuerId;
@ApiModelProperty(value = "Краткое наименование инструмента на английском", example = "ABSDE")
@JsonProperty
public String shortNameEng;
@ApiModelProperty(value = "Полное наименование инструмента на английском", example = "ABCD")
@JsonProperty
public String fullNameEng;
@ApiModelProperty(value = "Наименование статуса", example = "ABCD")
@JsonProperty
public String workflowStatus;
@ApiModelProperty(value = "Количество валюты лота", example = "12.33")
@JsonProperty
public Long baseUnitSize;
@ApiModelProperty(value = "Пределы изменения цены")
@JsonProperty
public BigDecimal priceVarianceLimit;
@ApiModelProperty(value = "Тип индексации номинала (linked to nominalTypeCode)")
@JsonProperty
public String nominalTypeCode;
@ApiModelProperty(value = "Номинал", example = "20.5554")
@JsonProperty
public BigDecimal nominalValue;
@ApiModelProperty(value = "Индексируемый номинал")
@JsonProperty
public LocalDate nominalIndexationDate;
@ApiModelProperty(value = "Дата индексации номинала")
@JsonProperty
public String nominalIndexationSign;
@ApiModelProperty(value = "Фактическая индексация (linked to allowed)")
@JsonProperty
public String settlementHouse;
@ApiModelProperty(value = "Наименование расчетной организации")
@JsonProperty
public String depository;
@Override
public DigitalCertificateSecurityNewRequest toRequest() {
var req = new DigitalCertificateSecurityNewRequest();
req.setInstrumentType(this.instrumentType);
req.setBaseCode(this.baseCode);
req.setSecuritySymbol(this.securitySymbol);
req.setShortName(this.shortName);
req.setFullName(this.fullName);
req.setIssuerId(this.issuerId);
req.setShortNameEng(this.shortNameEng);
req.setFullNameEng(this.fullNameEng);
req.setWorkflowStatus(this.workflowStatus);
req.setBaseUnitSize(this.baseUnitSize);
req.setPriceVarianceLimit(this.priceVarianceLimit);
req.setNominalTypeCode(this.nominalTypeCode);
req.setNominalValue(this.nominalValue);
req.setNominalIndexationDate(this.nominalIndexationDate);
req.setNominalIndexationSign(this.nominalIndexationSign);
req.setSettlementHouse(this.settlementHouse);
req.setDepository(this.depository);
return req;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.NEW;
}
public String getInstrumentType() {
return instrumentType;
}
public void setInstrumentType(String instrumentType) {
this.instrumentType = instrumentType;
}
public String getBaseCode() {
return baseCode;
}
public void setBaseCode(String baseCode) {
this.baseCode = baseCode;
}
@Override
public String getSecuritySymbol() {
return securitySymbol;
}
public void setSecuritySymbol(String securitySymbol) {
this.securitySymbol = securitySymbol;
}
public String getShortName() {
return shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public Long getIssuerId() {
return issuerId;
}
public void setIssuerId(Long issuerId) {
this.issuerId = issuerId;
}
public String getShortNameEng() {
return shortNameEng;
}
public void setShortNameEng(String shortNameEng) {
this.shortNameEng = shortNameEng;
}
public String getFullNameEng() {
return fullNameEng;
}
public void setFullNameEng(String fullNameEng) {
this.fullNameEng = fullNameEng;
}
public String getWorkflowStatus() {
return workflowStatus;
}
public void setWorkflowStatus(String workflowStatus) {
this.workflowStatus = workflowStatus;
}
public Long getBaseUnitSize() {
return baseUnitSize;
}
public void setBaseUnitSize(Long baseUnitSize) {
this.baseUnitSize = baseUnitSize;
}
public BigDecimal getPriceVarianceLimit() {
return priceVarianceLimit;
}
public void setPriceVarianceLimit(BigDecimal priceVarianceLimit) {
this.priceVarianceLimit = priceVarianceLimit;
}
public String getNominalTypeCode() {
return nominalTypeCode;
}
public void setNominalTypeCode(String nominalTypeCode) {
this.nominalTypeCode = nominalTypeCode;
}
public BigDecimal getNominalValue() {
return nominalValue;
}
public void setNominalValue(BigDecimal nominalValue) {
this.nominalValue = nominalValue;
}
public LocalDate getNominalIndexationDate() {
return nominalIndexationDate;
}
public void setNominalIndexationDate(LocalDate nominalIndexationDate) {
this.nominalIndexationDate = nominalIndexationDate;
}
public String getNominalIndexationSign() {
return nominalIndexationSign;
}
public void setNominalIndexationSign(String nominalIndexationSign) {
this.nominalIndexationSign = nominalIndexationSign;
}
public String getSettlementHouse() {
return settlementHouse;
}
public void setSettlementHouse(String settlementHouse) {
this.settlementHouse = settlementHouse;
}
public String getDepository() {
return depository;
}
public void setDepository(String depository) {
this.depository = depository;
}
}

View file

@ -0,0 +1,242 @@
package ru.spcex.clearing.backendapi.controller.request.cud.securities;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDate;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.DigitalCertificateSecurityUpdateRequest;
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
public class DigitalCertificateSecurityUpdateAction implements IAction<DigitalCertificateSecurityUpdateRequest>, WithSecuritySymbol {
@ApiModelProperty(hidden = true)
@JsonProperty
public Long id;
@ApiModelProperty(value = "Наименование типа инструмента", example = "CDE")
@JsonProperty
public String instrumentType;
@ApiModelProperty(value = "Код ЦС, присвоенный депозитарием")
@JsonProperty
public String baseCode;
@ApiModelProperty(value = "Код инструмента", example = "CDE")
@JsonProperty
public String securitySymbol;
@ApiModelProperty(value = "Краткое наименование инструмента", example = "NAME")
@JsonProperty
public String shortName;
@ApiModelProperty(value = "Полное наименование инструмента", example = "NAME of NAME")
@JsonProperty
public String fullName;
@ApiModelProperty(value = "Наименование эмитента", example = "1000")
@JsonProperty
public Long issuerId;
@ApiModelProperty(value = "Краткое наименование инструмента на английском", example = "ABSDE")
@JsonProperty
public String shortNameEng;
@ApiModelProperty(value = "Полное наименование инструмента на английском", example = "ABCD")
@JsonProperty
public String fullNameEng;
@ApiModelProperty(value = "Наименование статуса", example = "ABCD")
@JsonProperty
public String workflowStatus;
@ApiModelProperty(value = "Количество валюты лота", example = "12.33")
@JsonProperty
public Long baseUnitSize;
@ApiModelProperty(value = "Пределы изменения цены")
@JsonProperty
public BigDecimal priceVarianceLimit;
@ApiModelProperty(value = "Тип индексации номинала (linked to nominalTypeCode)")
@JsonProperty
public String nominalTypeCode;
@ApiModelProperty(value = "Номинал", example = "20.5554")
@JsonProperty
public BigDecimal nominalValue;
@ApiModelProperty(value = "Индексируемый номинал")
@JsonProperty
public LocalDate nominalIndexationDate;
@ApiModelProperty(value = "Дата индексации номинала")
@JsonProperty
public String nominalIndexationSign;
@ApiModelProperty(value = "Фактическая индексация (linked to allowed)")
@JsonProperty
public String settlementHouse;
@ApiModelProperty(value = "Наименование расчетной организации")
@JsonProperty
public String depository;
@Override
public DigitalCertificateSecurityUpdateRequest toRequest() {
var req = new DigitalCertificateSecurityUpdateRequest();
req.setId(this.id);
req.setInstrumentType(this.instrumentType);
req.setBaseCode(this.baseCode);
req.setSecuritySymbol(this.securitySymbol);
req.setShortName(this.shortName);
req.setFullName(this.fullName);
req.setIssuerId(this.issuerId);
req.setShortNameEng(this.shortNameEng);
req.setFullNameEng(this.fullNameEng);
req.setWorkflowStatus(this.workflowStatus);
req.setBaseUnitSize(this.baseUnitSize);
req.setPriceVarianceLimit(this.priceVarianceLimit);
req.setNominalTypeCode(this.nominalTypeCode);
req.setNominalValue(this.nominalValue);
req.setNominalIndexationDate(this.nominalIndexationDate);
req.setNominalIndexationSign(this.nominalIndexationSign);
req.setSettlementHouse(this.settlementHouse);
req.setDepository(this.depository);
return req;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.UPDATE;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getInstrumentType() {
return instrumentType;
}
public void setInstrumentType(String instrumentType) {
this.instrumentType = instrumentType;
}
public String getBaseCode() {
return baseCode;
}
public void setBaseCode(String baseCode) {
this.baseCode = baseCode;
}
@Override
public String getSecuritySymbol() {
return securitySymbol;
}
public void setSecuritySymbol(String securitySymbol) {
this.securitySymbol = securitySymbol;
}
public String getShortName() {
return shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public Long getIssuerId() {
return issuerId;
}
public void setIssuerId(Long issuerId) {
this.issuerId = issuerId;
}
public String getShortNameEng() {
return shortNameEng;
}
public void setShortNameEng(String shortNameEng) {
this.shortNameEng = shortNameEng;
}
public String getFullNameEng() {
return fullNameEng;
}
public void setFullNameEng(String fullNameEng) {
this.fullNameEng = fullNameEng;
}
public String getWorkflowStatus() {
return workflowStatus;
}
public void setWorkflowStatus(String workflowStatus) {
this.workflowStatus = workflowStatus;
}
public Long getBaseUnitSize() {
return baseUnitSize;
}
public void setBaseUnitSize(Long baseUnitSize) {
this.baseUnitSize = baseUnitSize;
}
public BigDecimal getPriceVarianceLimit() {
return priceVarianceLimit;
}
public void setPriceVarianceLimit(BigDecimal priceVarianceLimit) {
this.priceVarianceLimit = priceVarianceLimit;
}
public String getNominalTypeCode() {
return nominalTypeCode;
}
public void setNominalTypeCode(String nominalTypeCode) {
this.nominalTypeCode = nominalTypeCode;
}
public BigDecimal getNominalValue() {
return nominalValue;
}
public void setNominalValue(BigDecimal nominalValue) {
this.nominalValue = nominalValue;
}
public LocalDate getNominalIndexationDate() {
return nominalIndexationDate;
}
public void setNominalIndexationDate(LocalDate nominalIndexationDate) {
this.nominalIndexationDate = nominalIndexationDate;
}
public String getNominalIndexationSign() {
return nominalIndexationSign;
}
public void setNominalIndexationSign(String nominalIndexationSign) {
this.nominalIndexationSign = nominalIndexationSign;
}
public String getSettlementHouse() {
return settlementHouse;
}
public void setSettlementHouse(String settlementHouse) {
this.settlementHouse = settlementHouse;
}
public String getDepository() {
return depository;
}
public void setDepository(String depository) {
this.depository = depository;
}
}

View file

@ -4,21 +4,13 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDate;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.backendapi.errors.BackEndError;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityNewRequest;
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.text.TextUtil;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class FixedIncomeSecurityNewAction implements IAction<FixedIncomeSecurityNewRequest>, WithSecuritySymbol {
@ApiModelProperty(value = "Код инструмента", example = "ABSDEFJ")

View file

@ -1,6 +1,6 @@
{
"version": "3.17.223.126",
"version": "3.17.223.127",
"enums": {
@ -10937,7 +10937,7 @@
"destination": "securities/digital-certificate-securities",
"class": "...",
"class": "ru.clearing.classes.statics.data.security.UtilitarianDigitalRight",
"logUpdates": "true",
@ -11035,7 +11035,7 @@
"confirmation": "securitySymbol,shortName,fullName,nominalValue",
"class": "...",
"class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.DigitalCertificateSecurityNewAction",
"fields": [
{"code": "instrumentType",
@ -11114,7 +11114,7 @@
"confirmation": "securitySymbol,shortName,fullName,nominalValue",
"class": "...",
"class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.DigitalCertificateSecurityUpdateAction",
"fields": [
{"code": "id",
@ -11197,7 +11197,7 @@
"confirmation": "securitySymbol,shortName",
"class": "...",
"class": "ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction",
"fields": [
{"code": "id",
@ -11214,7 +11214,7 @@
"destination": "securities/utilitarian-digital-rights",
"class": "...",
"class": "ru.clearing.classes.statics.data.security.UtilitarianDigitalRight",
"logUpdates": "true",

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--?xml-stylesheet type="text/xsl" href="\..\corp-reports\src\data\meta\meta.server.xslt"?-->
<meta version="3.17.223.126">
<meta version="3.17.223.127">
<!-- _xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _xsi:noNamespaceSchemaLocation="file:///E:/d/projects/meta/from/meta.xsd" -->
<!--Здесь словари-->
<enums>
@ -2535,7 +2535,7 @@
</delete>
</actions>
</validationSymbols>
<digitalCertificateSecurity name="Цифровые свидетельства" destination="securities/digital-certificate-securities" class="..." logUpdates="true" table="digital_certificate_security">
<digitalCertificateSecurity name="Цифровые свидетельства" destination="securities/digital-certificate-securities" class="ru.clearing.classes.statics.data.security.UtilitarianDigitalRight" logUpdates="true" table="digital_certificate_security">
<securityId type="1" dbname="Идентификатор инструмента" name="Наименование инструмента" shortname="Инструмент" searchable="true" sortable="true" link="security" linkCode="shortName"/>
<shortName type="2" length="255" name="Краткое наименование инструмента" shortname="Краткое наименование" searchable="true" sortable="true" visible="true" extends="security"/>
<securitySymbol type="2" length="255" name="Код инструмента" shortname="Код" searchable="true" sortable="true" visible="true" extends="security"/>
@ -2558,7 +2558,7 @@
<settlementHouse type="2" length="255" name="Наименование расчетной организации" shortname="Расчетная организация" searchable="true" sortable="true" visible="false"/>
<depository type="2" length="255" name="Наименование депозитария" shortname="Депозитарий" searchable="true" sortable="true" visible="false"/>
<actions>
<post name="Добавление цифрового свидетельства" confirmation="securitySymbol,shortName,fullName,nominalValue" class="...">
<post name="Добавление цифрового свидетельства" confirmation="securitySymbol,shortName,fullName,nominalValue" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.DigitalCertificateSecurityNewAction">
<instrumentType type="12" name="Наименование типа инструмента" shortname="Тип инструмента" link="instrumentType" required="true" enabled="false"/>
<baseCode type="2" length="50" name="Код ЦС, присвоенный депозитарием" shortname="Код ЦС" required="true"/>
<securitySymbol type="2" length="255" name="Код инструмента" shortname="Код" required="true"/>
@ -2577,7 +2577,7 @@
<settlementHouse type="2" length="255" name="Наименование расчетной организации" shortname="Расчетная организация"/>
<depository type="2" length="255" name="Наименование депозитария" shortname="Депозитарий"/>
</post>
<put name="Изменение цифрового свидетельства" confirmation="securitySymbol,shortName,fullName,nominalValue" class="...">
<put name="Изменение цифрового свидетельства" confirmation="securitySymbol,shortName,fullName,nominalValue" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.DigitalCertificateSecurityUpdateAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="digitalCertificateSecurity" linkCode="id" required="true"/>
<instrumentType type="12" name="Наименование типа инструмента" shortname="Тип инструмента" link="instrumentType" required="true" enabled="false"/>
<baseCode type="2" length="50" name="Код ЦС, присвоенный депозитарием" shortname="Код ЦС" required="true"/>
@ -2597,12 +2597,12 @@
<settlementHouse type="2" length="255" name="Наименование расчетной организации" shortname="Расчетная организация"/>
<depository type="2" length="255" name="Наименование депозитария" shortname="Депозитарий"/>
</put>
<delete name="Блокировка цифрового свидетельства" confirmation="securitySymbol,shortName" class="...">
<delete name="Блокировка цифрового свидетельства" confirmation="securitySymbol,shortName" class="ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="digitalCertificateSecurity" linkCode="id" required="true"/>
</delete>
</actions>
</digitalCertificateSecurity>
<utilitarianDigitalRight name="Утилитарные цифровые права" destination="securities/utilitarian-digital-rights" class="..." logUpdates="true" table="utilitarian_digital_right">
<utilitarianDigitalRight name="Утилитарные цифровые права" destination="securities/utilitarian-digital-rights" class="ru.clearing.classes.statics.data.security.UtilitarianDigitalRight" logUpdates="true" table="utilitarian_digital_right">
<securityId type="1" dbname="Идентификатор инструмента" name="Наименование инструмента" shortname="Инструмент" searchable="true" sortable="true" link="security" linkCode="shortName"/>
<investmentAttractingCompany type="2" length="255" name="Наименование лица, обязанного по УЦП" shortname="Наименование лица" searchable="true" sortable="true" link="company" linkCode="shortName"/>
<investmentAttractingInn type="2" length="255" name="ИНН лица, обязанного по УЦП" shortname="ИНН лица" searchable="true" sortable="true"/>