etreschenkov 2026-04-02 15:57:24 +03:00
parent 2213dd7d4c
commit ae508a1fdb
15 changed files with 969 additions and 0 deletions

View file

@ -0,0 +1,71 @@
package ru.spcex.clearing.backendapi.controller.queue.misc;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import java.util.Collections;
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.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
import ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightNewAction;
import ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightUpdateAction;
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.platform.messaging.domain.Consts;
@Controller
@RequestMapping("/overnight-settings")
public class OvernightSettingsController extends AbstractQueueController {
private final IStateLoader stateLoader;
@Autowired
public OvernightSettingsController(IOperator operator, IStateLoader stateLoader) {
super(operator);
this.stateLoader = stateLoader;
}
@ApiOperation(value = "get all overnight settings.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public CommonGetAllResponse getAll() {
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(Collections.EMPTY_LIST);
return response;
}
@ApiOperation(value = "create overnight settings.")
@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)
@ResponseBody
public CudResponse create(
@ApiParam(value = "Значения полей нового объекта.", required = true)
@RequestBody OvernightNewAction overnightNewAction) throws ExecutionException, InterruptedException {
return processRequest(Consts.OVERNIGHT_SETTINGS_NEW, overnightNewAction);
}
@ApiOperation(value = "update overnight settings.")
@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 OvernightUpdateAction overnightUpdateAction) throws ExecutionException, InterruptedException {
overnightUpdateAction.setId(id);
return processRequest(Consts.OVERNIGHT_SETTINGS_UPDATE, overnightUpdateAction);
}
}

View file

@ -0,0 +1,116 @@
package ru.spcex.clearing.backendapi.controller.queue.order;
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.misc.OrderCurrency;
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.order.OrderCompanyNewAction;
import ru.spcex.clearing.backendapi.controller.request.cud.order.OrderCompanyUpdateAction;
import ru.spcex.clearing.backendapi.controller.request.cud.order.OrderCurrencyUpdateAction;
import ru.spcex.clearing.backendapi.controller.request.cud.order.OrderOvernightTypeUpdateAction;
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("/order-currency")
public class OrderCurrencyController extends AbstractQueueController {
private final IStateLoader stateLoader;
@Autowired
public OrderCurrencyController(IOperator operator, IStateLoader stateLoader) {
super(operator);
this.stateLoader = stateLoader;
}
@ApiOperation(value = "get all order currency.")
@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_OrderCurrency, OrderCurrency.class);
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(all);
return response;
}
@ApiOperation(value = "update order currency.")
@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 OrderCurrencyUpdateAction orderCurrencyUpdateAction) throws ExecutionException, InterruptedException {
orderCurrencyUpdateAction.setId(id);
return processRequest(Consts.ORDER_CURRENCY_UPDATE, orderCurrencyUpdateAction);
}
@ApiOperation(value = "update overnight type for order currency.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(path = "/overnightType/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public CudResponse updateOvernightType(
@ApiParam(value = "Идентификатор изменяемого объекта.", required = true, example = "1234")
@PathVariable("id") Long id,
@ApiParam(value = "Новые значения полей объекта.", required = true)
@RequestBody OrderOvernightTypeUpdateAction orderOvernightTypeUpdateAction) throws ExecutionException, InterruptedException {
orderOvernightTypeUpdateAction.setId(id);
return processRequest(Consts.ORDER_OVERNIGHT_TYPE_UPDATE, orderOvernightTypeUpdateAction);
}
@ApiOperation(value = "create company for order currency.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(path = "/company", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public CudResponse createCompany(
@ApiParam(value = "Значения полей нового объекта.", required = true)
@RequestBody OrderCompanyNewAction orderCompanyNewAction) throws ExecutionException, InterruptedException {
return processRequest(Consts.ORDER_CURRENCY_COMPANY_NEW, orderCompanyNewAction);
}
@ApiOperation(value = "update company for order currency.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(path = "/company/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public CudResponse updateCompany(
@ApiParam(value = "Идентификатор изменяемого объекта.", required = true, example = "1234")
@PathVariable("id") Long id,
@ApiParam(value = "Новые значения полей объекта.", required = true)
@RequestBody OrderCompanyUpdateAction orderCompanyUpdateAction) throws ExecutionException, InterruptedException {
orderCompanyUpdateAction.setId(id);
return processRequest(Consts.ORDER_CURRENCY_COMPANY_UPDATE, orderCompanyUpdateAction);
}
@ApiOperation(value = "delete company for order currency.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.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.ORDER_CURRENCY_COMPANY_DELETE, deleteAction);
}
}

View file

@ -0,0 +1,58 @@
package ru.spcex.clearing.backendapi.controller.request.cud.misc;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.misc.OvernightSettingsNewRequest;
public class OvernightNewAction implements IAction<OvernightSettingsNewRequest> {
@ApiModelProperty(value = "Идентификатор участника", example = "123")
@JsonProperty
public Long companyId;
@ApiModelProperty(value = "Код рынка", example = "TVAF")
@JsonProperty
public String market;
@ApiModelProperty(value = "Тип сделок переноса компании", example = "ASD")
@JsonProperty
public String overnightType;
@Override
public OvernightSettingsNewRequest toRequest() {
var req = new OvernightSettingsNewRequest();
req.setCompanyId(this.companyId);
req.setMarket(this.market);
req.setOvernightType(this.overnightType);
return req;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.NEW;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getMarket() {
return market;
}
public void setMarket(String market) {
this.market = market;
}
public String getOvernightType() {
return overnightType;
}
public void setOvernightType(String overnightType) {
this.overnightType = overnightType;
}
}

View file

@ -0,0 +1,70 @@
package ru.spcex.clearing.backendapi.controller.request.cud.misc;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.misc.OvernightSettingsUpdateRequest;
public class OvernightUpdateAction implements IAction<OvernightSettingsUpdateRequest> {
@ApiModelProperty(value = "Идентификатор записи", example = "122")
@JsonProperty
public Long id;
@ApiModelProperty(value = "Идентификатор участника", example = "123")
@JsonProperty
public Long companyId;
@ApiModelProperty(value = "Код рынка", example = "TVAF")
@JsonProperty
public String market;
@ApiModelProperty(value = "Тип сделок переноса компании", example = "ASD")
@JsonProperty
public String overnightType;
@Override
public OvernightSettingsUpdateRequest toRequest() {
var req = new OvernightSettingsUpdateRequest();
req.setId(this.id);
req.setCompanyId(this.companyId);
req.setMarket(this.market);
req.setOvernightType(this.overnightType);
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 Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getMarket() {
return market;
}
public void setMarket(String market) {
this.market = market;
}
public String getOvernightType() {
return overnightType;
}
public void setOvernightType(String overnightType) {
this.overnightType = overnightType;
}
}

View file

@ -0,0 +1,70 @@
package ru.spcex.clearing.backendapi.controller.request.cud.order;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCompanyNewRequest;
public class OrderCompanyNewAction implements IAction<OrderCompanyNewRequest> {
@ApiModelProperty(value = "Идентификатор записи", example = "12")
@JsonProperty
private Long id;
@ApiModelProperty(value = "Тип сделок переноса компании", example = "ASDF")
@JsonProperty
private Long companyId;
@ApiModelProperty(value = "Торгово-клиринговый регистр", example = "ASDF")
@JsonProperty
private Long tradingClearingRegistryId;
@ApiModelProperty(value = "Объем заявки в лотах", example = "ASDF")
@JsonProperty
private Long quantityLot;
@Override
public OrderCompanyNewRequest toRequest() {
OrderCompanyNewRequest request = new OrderCompanyNewRequest();
request.setId(id);
request.setCompanyId(companyId);
request.setTradingClearingRegistryId(tradingClearingRegistryId);
request.setQuantityLot(quantityLot);
return request;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.NEW;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public Long getTradingClearingRegistryId() {
return tradingClearingRegistryId;
}
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
this.tradingClearingRegistryId = tradingClearingRegistryId;
}
public Long getQuantityLot() {
return quantityLot;
}
public void setQuantityLot(Long quantityLot) {
this.quantityLot = quantityLot;
}
}

View file

@ -0,0 +1,70 @@
package ru.spcex.clearing.backendapi.controller.request.cud.order;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCompanyUpdateRequest;
public class OrderCompanyUpdateAction implements IAction<OrderCompanyUpdateRequest> {
@ApiModelProperty(value = "Идентификатор записи", example = "12")
@JsonProperty
private Long id;
@ApiModelProperty(value = "Тип сделок переноса компании", example = "ASDF")
@JsonProperty
private Long companyId;
@ApiModelProperty(value = "Торгово-клиринговый регистр", example = "ASDF")
@JsonProperty
private Long tradingClearingRegistryId;
@ApiModelProperty(value = "Объем заявки в лотах", example = "ASDF")
@JsonProperty
private Long quantityLot;
@Override
public OrderCompanyUpdateRequest toRequest() {
OrderCompanyUpdateRequest request = new OrderCompanyUpdateRequest();
request.setId(id);
request.setCompanyId(companyId);
request.setTradingClearingRegistryId(tradingClearingRegistryId);
request.setQuantityLot(quantityLot);
return request;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.NEW;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public Long getTradingClearingRegistryId() {
return tradingClearingRegistryId;
}
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
this.tradingClearingRegistryId = tradingClearingRegistryId;
}
public Long getQuantityLot() {
return quantityLot;
}
public void setQuantityLot(Long quantityLot) {
this.quantityLot = quantityLot;
}
}

View file

@ -0,0 +1,107 @@
package ru.spcex.clearing.backendapi.controller.request.cud.order;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCurrencyUpdateRequest;
public class OrderCurrencyUpdateAction implements IAction<OrderCurrencyUpdateRequest> {
@ApiModelProperty(value = "Идентификатор записи", example = "12")
@JsonProperty
private Long id;
@ApiModelProperty(value = "Наименование инструмента", example = "333")
@JsonProperty
private Long securityId;
@ApiModelProperty(value = "Цена заявки", example = "12.33")
@JsonProperty
private BigDecimal price;
@ApiModelProperty(value = "Объем заявки в лотах", example = "21")
@JsonProperty
private Long quantityLot;
@ApiModelProperty(value = "Направление заявки", example = "BUY")
@JsonProperty
private String side;
@ApiModelProperty(value = "Статус заявки", example = "ACT")
@JsonProperty
private String status;
@ApiModelProperty(value = "Комментарий", example = "asd")
@JsonProperty
private String comment;
@Override
public OrderCurrencyUpdateRequest toRequest() {
OrderCurrencyUpdateRequest request = new OrderCurrencyUpdateRequest();
request.setId(id);
request.setSecurityId(securityId);
request.setPrice(price);
request.setQuantityLot(quantityLot);
request.setSide(side);
request.setStatus(status);
request.setComment(comment);
return request;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.UPDATE;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getSecurityId() {
return securityId;
}
public void setSecurityId(Long securityId) {
this.securityId = securityId;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Long getQuantityLot() {
return quantityLot;
}
public void setQuantityLot(Long quantityLot) {
this.quantityLot = quantityLot;
}
public String getSide() {
return side;
}
public void setSide(String side) {
this.side = side;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}

View file

@ -0,0 +1,46 @@
package ru.spcex.clearing.backendapi.controller.request.cud.order;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCurrencyUpdateRequest;
public class OrderOvernightTypeUpdateAction implements IAction<OrderCurrencyUpdateRequest> {
@ApiModelProperty(value = "Идентификатор записи", example = "12")
@JsonProperty
private Long id;
@ApiModelProperty(value = "Тип сделок переноса компании", example = "ASDF")
@JsonProperty
private String overnightType;
@Override
public OrderCurrencyUpdateRequest toRequest() {
OrderCurrencyUpdateRequest request = new OrderCurrencyUpdateRequest();
request.setId(id);
request.setOvernightType(overnightType);
return request;
}
@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 getOvernightType() {
return overnightType;
}
public void setOvernightType(String overnightType) {
this.overnightType = overnightType;
}
}

View file

@ -349,6 +349,21 @@
<code name="Код" shortname="Код" type="12"/>
<name name="Наименование" shortname="Наименование" type="2" length="255"/>
</residence>
<orderAffil name="Справочник принадлежности заявок" class="..." table="order_affil_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Принадлежность" shortname="Принадлежность" type="2" length="50"/>
</orderAffil>
<orderStatus name="Справочник статуса заявок" class="..." table="order_status_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Статус заявки" shortname="Статус" type="2" length="50"/>
</orderStatus>
<overnightType name="Справочник типов сделок переноса" class="..." table="overnight_type_dictionary">
<id name="Идентификатор записи" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Тип сделок переноса" shortname="Тип переноса" type="2" length="50"/>
</overnightType>
</enums>
<objects>
<dbVersion name="Версия базы данных" destination="db-versions" class="ru.clearing.classes.statics.data.misc.DbVersion" table="db_version">
@ -2659,6 +2674,84 @@
<rightUnitMeasurement type="12" name="Единица измерения существа права (требования)" shortname="Единица измерения" searchable="true" sortable="true" link="unitMeasurement"/>
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true" visible="true"/>
</utilitarianDigitalRight>
<orderCurrency name="Заявки переноса" destination="order-currency" class="ru.clearing.classes.statics.data.misc.OrderCurrency" logUpdates="true" table="order_currency">
<securityId type="1" dbname="Идентификатор инструмента" name="Наименование инструмента" shortname="Инструмент" searchable="true" sortable="true" visible="true" link="security" linkCode="shortName"/>
<securitySymbol type="2" length="255" name="Код инструмента" shortname="Код" searchable="true" sortable="true" visible="true" extends="security"/>
<account type="2" length="50" name="Торговый счет" shortname="Счет" searchable="true" sortable="true" visible="true"/>
<tradingClearingRegistryId type="1" dbname="Идентификатор торгово-клирингового регистра" name="Торгово-клиринговый регистр" shortname="ТКР" searchable="true" sortable="true" link="tradingClearingRegistry" linkCode="code"/>
<companyId type="1" dbname="Идентификатор участника" name="Наименование участника" shortname="Участник" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/>
<tradingCode type="2" length="255" name="Код участника торгов" shortname="Код УТ" searchable="true" sortable="true" visible="true"/>
<counterPartyId type="1" dbname="Идентификатор компании-партнера" name="Название УК контрагента" shortname="Контрагент" visible="false" searchable="true" sortable="true" link="company" linkCode="shortName"/>
<counterTradingCode type="2" length="255" name="Код УТ-контрагента" shortname="Код контрагента" searchable="true" sortable="true" visible="false"/>
<type type="12" name="Тип заявки" shortname="Тип" searchable="true" sortable="true" visible="true" link="orderAffil"/>
<overnightType type="12" name="Тип сделок переноса компании" shortname="Тип сделок переноса" searchable="true" sortable="true" visible="true" link="overnightType"/>
<listingId type="1" dbname="Идентификатор инструмента на режиме" name="Наименование инструмента на режиме" shortname="Инструмент на режиме" searchable="true" sortable="true" visible="true" link="listing" linkCode="symbolName"/>
<market type="12" name="Код режима торгов" shortname="Режим торгов" visible="true" searchable="true" sortable="true" link="market" linkCode="code"/>
<price type="10" name="Цена заявки" shortname="Цена" searchable="true" sortable="true" visible="true"/>
<rate type="10" name="Ставка переноса" shortname="Ставка переноса" searchable="true" sortable="true"/>
<quantityLot type="3" name="Объем заявки в лотах" shortname="Объем заявки в лотах" searchable="true" sortable="true" visible="false" ignore="true"/>
<quantity type="3" name="Объем заявки в штуках" shortname="Объем заявки в шт." searchable="true" sortable="true" visible="true"/>
<lotSize field="securityId" type="11" name="Размер лота" shortname="Лот" searchable="true" sortable="true" visible="false" linkKeyCode="securityId" linkCode="lotSize" link="listing" extends="listing"/>
<side type="12" name="Направление заявки" shortname="Направление" searchable="true" sortable="true" visible="true" link="side"/>
<settleCode type="2" length="50" name="Код расчетов" shortname="Код расчетов" searchable="true" sortable="true" visible="false" link="currencySettlementType" linkCode="code"/>
<settleDate type="6" name="Дата расчетов" shortname="Дата расчетов" searchable="true" sortable="true" visible="false" ignore="true"/>
<status type="2" length="4" name="Статус заявки" shortname="Статус" link="orderStatus" searchable="true" sortable="true" visible="false"/>
<comment type="2" length="255" name="Комментарий" shortname="Комментарий" searchable="true" sortable="true" visible="true"/>
<initialOrderId type="1" name="Идентификатор исходной заявки" shortname="ID исходной заявки" searchable="true" sortable="true" visible="false"/>
<debtCompanyId type="1" dbname="Идентификатор участника-должника" name="Наименование участника-должника" shortname="Должник" searchable="true" sortable="true" visible="false" link="company" linkCode="shortName"/>
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Завершено" searchable="true" sortable="true"/>
<actions>
<put name="Изменение заявки" class="ru.spcex.clearing.backendapi.controller.request.cud.order.OrderCurrencyUpdateAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="orderCurrency" linkCode="id" required="true"/>
<securityId type="1" name="Наименование инструмента" shortname="Инструмент" link="security" linkCode="shortName"/>
<price type="10" name="Цена заявки" shortname="Цена" required="true"/>
<quantityLot type="3" name="Объем заявки в лотах" shortname="Объем заявки" required="true"/>
<side type="12" name="Направление заявки" shortname="Направление" required="true" link="side"/>
<status type="12" name="Статус заявки" shortname="Статус" link="orderStatus"/>
<comment type="2" length="255" name="Комментарий" shortname="Комментарий"/>
</put>
<put name="Изменение типа сделки переноса" destination="order-currency/overnightType" class="ru.spcex.clearing.backendapi.controller.request.cud.order.OrderOvernightTypeUpdateAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="orderCurrency" linkCode="id" required="true"/>
<overnightType type="12" name="Тип сделок переноса компании" shortname="Тип сделок переноса" required="true" link="overnightType"/>
</put>
<post name="Добавление ДУК" destination="order-currency/company" class="ru.spcex.clearing.backendapi.controller.request.cud.order.OrderCompanyNewAction">
<id type="1" name="Идентификатор записи" shortname="ID начальной записи" link="orderCurrency" linkCode="id" required="true" visible="false"/>
<companyId type="1" name="Наименование участника" shortname="Участник" required="true" link="company" linkCode="shortName"/>
<tradingClearingRegistryId type="1" name="Торгово-клиринговый регистр" shortname="ТКР" required="true" link="tradingClearingRegistry" linkCode="code"/>
<quantityLot type="3" name="Объем заявки в лотах" shortname="Объем заявки в лотах" required="true"/>
</post>
<put name="Изменение ДУК" destination="order-currency/company" class="ru.spcex.clearing.backendapi.controller.request.cud.order.OrderCompanyUpdateAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="orderCurrency" linkCode="id" required="true"/>
<companyId type="1" name="Наименование участника" shortname="Участник" required="true" link="company" linkCode="shortName"/>
<tradingClearingRegistryId type="1" name="Торгово-клиринговый регистр" shortname="ТКР" required="true" link="tradingClearingRegistry" linkCode="code"/>
<quantityLot type="3" name="Объем заявки в лотах" shortname="Объем заявки в лотах" required="true"/>
</put>
<delete name="Удаление ДУК" class="ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="orderCurrency" linkCode="id" required="true"/>
</delete>
</actions>
</orderCurrency>
<overnightSettings name="Настройки переноса позиций" destination="overnight-settings" class="ru.clearing.classes.statics.data.misc.OvernightSettings" table="overnight_settings">
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true" visible="false"/>
<companyId type="1" dbname="Идентификатор участника" name="Наименование участника" shortname="Участник" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/>
<market type="12" name="Код рынка" shortname="Рынок" visible="true" searchable="true" sortable="true" link="section"/>
<overnightType type="12" name="Тип сделок переноса компании" shortname="Тип сделок переноса" searchable="true" sortable="true" visible="true" link="overnightType"/>
<actions>
<post name="Добавление настроек переноса позиций" class="ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightNewAction">
<companyId type="1" dbname="Идентификатор участника" name="Наименование участника" shortname="Участник" required="true" link="company" linkCode="shortName"/>
<market type="12" name="Код рынка" shortname="Рынок" required="true" link="section"/>
<overnightType type="12" name="Тип сделок переноса компании" shortname="Тип сделок переноса" required="true" link="overnightType"/>
</post>
<put name="Изменение настроек переноса позиций" class="ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightUpdateAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="overnightSettings" linkCode="id" required="true"/>
<companyId type="1" dbname="Идентификатор участника" name="Наименование участника" shortname="Участник" required="true" link="company" linkCode="shortName" enabled="false"/>
<market type="12" name="Код рынка" shortname="Рынок" required="true" link="section" enabled="false"/>
<overnightType type="12" name="Тип сделок переноса компании" shortname="Тип сделок переноса" required="true" link="overnightType"/>
</put>
</actions>
</overnightSettings>
</objects>
<views>
<AccountUnion>

View file

@ -139,6 +139,14 @@ public interface Consts {
String DESTINATION_VALIDATE_SYMBOLS_UPDATE = "validate-symbols-update";
String DESTINATION_VALIDATE_SYMBOLS_DELETE = "validate-symbols-delete";
String OVERNIGHT_SETTINGS_NEW = "overnight-settings-new";
String OVERNIGHT_SETTINGS_UPDATE = "overnight-settings-update";
String ORDER_CURRENCY_UPDATE = "order-currency-update";
String ORDER_OVERNIGHT_TYPE_UPDATE = "order-overnight-type-update";
String ORDER_CURRENCY_COMPANY_NEW = "order-currency-company-new";
String ORDER_CURRENCY_COMPANY_UPDATE = "order-currency-company-update";
String ORDER_CURRENCY_COMPANY_DELETE = "order-currency-company-delete";
String DESTINATION_SDF08_NEW = "s-df-08-new";
String DESTINATION_SDF02_NEW = "s-df-02-new";

View file

@ -0,0 +1,35 @@
package ru.spcex.clearing.platform.messaging.domain.cud.misc;
import com.fasterxml.jackson.annotation.JsonProperty;
public class OvernightSettingsNewRequest {
@JsonProperty
public Long companyId;
@JsonProperty
public String market;
@JsonProperty
public String overnightType;
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getMarket() {
return market;
}
public void setMarket(String market) {
this.market = market;
}
public String getOvernightType() {
return overnightType;
}
public void setOvernightType(String overnightType) {
this.overnightType = overnightType;
}
}

View file

@ -0,0 +1,46 @@
package ru.spcex.clearing.platform.messaging.domain.cud.misc;
import com.fasterxml.jackson.annotation.JsonProperty;
public class OvernightSettingsUpdateRequest {
@JsonProperty
public Long id;
@JsonProperty
public Long companyId;
@JsonProperty
public String market;
@JsonProperty
public String overnightType;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getMarket() {
return market;
}
public void setMarket(String market) {
this.market = market;
}
public String getOvernightType() {
return overnightType;
}
public void setOvernightType(String overnightType) {
this.overnightType = overnightType;
}
}

View file

@ -0,0 +1,46 @@
package ru.spcex.clearing.platform.messaging.domain.cud.order;
import com.fasterxml.jackson.annotation.JsonProperty;
public class OrderCompanyNewRequest {
@JsonProperty
private Long id;
@JsonProperty
private Long companyId;
@JsonProperty
private Long tradingClearingRegistryId;
@JsonProperty
private Long quantityLot;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public Long getTradingClearingRegistryId() {
return tradingClearingRegistryId;
}
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
this.tradingClearingRegistryId = tradingClearingRegistryId;
}
public Long getQuantityLot() {
return quantityLot;
}
public void setQuantityLot(Long quantityLot) {
this.quantityLot = quantityLot;
}
}

View file

@ -0,0 +1,46 @@
package ru.spcex.clearing.platform.messaging.domain.cud.order;
import com.fasterxml.jackson.annotation.JsonProperty;
public class OrderCompanyUpdateRequest {
@JsonProperty
private Long id;
@JsonProperty
private Long companyId;
@JsonProperty
private Long tradingClearingRegistryId;
@JsonProperty
private Long quantityLot;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public Long getTradingClearingRegistryId() {
return tradingClearingRegistryId;
}
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
this.tradingClearingRegistryId = tradingClearingRegistryId;
}
public Long getQuantityLot() {
return quantityLot;
}
public void setQuantityLot(Long quantityLot) {
this.quantityLot = quantityLot;
}
}

View file

@ -0,0 +1,87 @@
package ru.spcex.clearing.platform.messaging.domain.cud.order;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.math.BigDecimal;
public class OrderCurrencyUpdateRequest {
@JsonProperty
private Long id;
@JsonProperty
private Long securityId;
@JsonProperty
private BigDecimal price;
@JsonProperty
private Long quantityLot;
@JsonProperty
private String side;
@JsonProperty
private String status;
@JsonProperty
private String comment;
@JsonProperty
private String overnightType;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getSecurityId() {
return securityId;
}
public void setSecurityId(Long securityId) {
this.securityId = securityId;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Long getQuantityLot() {
return quantityLot;
}
public void setQuantityLot(Long quantityLot) {
this.quantityLot = quantityLot;
}
public String getSide() {
return side;
}
public void setSide(String side) {
this.side = side;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getOvernightType() {
return overnightType;
}
public void setOvernightType(String overnightType) {
this.overnightType = overnightType;
}
}