Merge remote-tracking branch 'origin/dev' into CLS-268
# Conflicts: # clearing-parent/backend-api/src/main/resources/meta/data.xml # clearing-parent/backend-api/src/main/resources/meta/meta.xml # clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java # clearing-parent/backend-api/src/test/resources/meta.json # clearing-parent/db-scripts/src/main/resources/db/DATA.sql # clearing-parent/db-scripts/src/main/resources/db/DDL.sql
This commit is contained in:
commit
d45878e1a2
32 changed files with 2435 additions and 354 deletions
|
|
@ -0,0 +1,84 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.account;
|
||||
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
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.account.ClientCode;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.account.ClientCodeNewAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.account.ClientCodeUpdateAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||
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;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/accounting/client-codes")
|
||||
public class ClientCodeController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
|
||||
@Autowired
|
||||
public ClientCodeController(IOperator operator, IStateLoader stateLoader) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "create client code.")
|
||||
@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 ClientCodeNewAction clientCodeNewAction) throws ExecutionException, InterruptedException {
|
||||
return processRequest(Consts.DESTINATION_CLIENT_CODE_NEW, clientCodeNewAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "update client-code.")
|
||||
@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 ClientCodeUpdateAction clientCodeUpdateAction) throws ExecutionException, InterruptedException {
|
||||
clientCodeUpdateAction.setId(id);
|
||||
return processRequest(Consts.DESTINATION_CLIENT_CODE_UPDATE, clientCodeUpdateAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "delete client code.")
|
||||
@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_CLIENT_CODE_DELETE, deleteAction);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "get all client codes.")
|
||||
@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_ClientCode, ClientCode.class);
|
||||
CommonGetAllResponse response = new CommonGetAllResponse();
|
||||
response.fromEntity(all);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.execution;
|
||||
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
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 java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/execution-fonds")
|
||||
public class ExecutionFondController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
|
||||
@Autowired
|
||||
public ExecutionFondController(IOperator operator, IStateLoader stateLoader) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "get all ExecutionFond.")
|
||||
@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_ExecutionFond,
|
||||
ExecutionFond.class);
|
||||
CommonGetAllResponse response = new CommonGetAllResponse();
|
||||
response.fromEntity(all);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.registry;
|
||||
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
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.registry.TradingClearingRegistry;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryUpdateAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||
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.controller.response.entity.registry.TradingClearingRegistryBackendGetById;
|
||||
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;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/registry/trading-clearing-registry")
|
||||
public class TradingClearingRegistryController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
|
||||
@Autowired
|
||||
public TradingClearingRegistryController(IOperator operator, IStateLoader stateLoader) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "create TradingClearingRegistry.")
|
||||
@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 TradingClearingRegistryNewAction bankAccountNewAction) throws ExecutionException, InterruptedException {
|
||||
return processRequest(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, bankAccountNewAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "update TradingClearingRegistry.")
|
||||
@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 TradingClearingRegistryUpdateAction tradingClearingRegistryUpdateAction) throws ExecutionException, InterruptedException {
|
||||
tradingClearingRegistryUpdateAction.setId(id);
|
||||
return processRequest(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, tradingClearingRegistryUpdateAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "delete TradingClearingRegistry.")
|
||||
@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_TRADING_CLEARING_REGISTRY_DELETE, deleteAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "get TradingClearingRegistry by id.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = TradingClearingRegistryBackendGetById.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public TradingClearingRegistryBackendGetById getById(@ApiParam(value = "Идентификатор объекта", required = true, example = "1234")
|
||||
@PathVariable("id") Long id) {
|
||||
Optional<TradingClearingRegistry> tradingClearingRegistry = stateLoader.getById(id, IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||
TradingClearingRegistryBackendGetById response = new TradingClearingRegistryBackendGetById();
|
||||
tradingClearingRegistry.ifPresentOrElse(response::fromEntity, () -> response.setCode(404));
|
||||
return response;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "get all TradingClearingRegistry's.")
|
||||
@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_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||
CommonGetAllResponse response = new CommonGetAllResponse();
|
||||
response.fromEntity(all);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.account;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.springframework.util.StringUtils;
|
||||
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.account.ClientCodeNewRequest;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ClientCodeNewAction implements IAction<ClientCodeNewRequest> {
|
||||
|
||||
@ApiModelProperty(value = "Наименование компании", example = "1200")
|
||||
@JsonProperty
|
||||
private Long companyId;
|
||||
@ApiModelProperty(value = "Код клиента", example = "A301011111")
|
||||
@JsonProperty
|
||||
private String code;
|
||||
@ApiModelProperty(value = "Торгово-клиринговый регистр", example = "1234")
|
||||
@JsonProperty
|
||||
private Long tradingClearingRegistryId;
|
||||
@ApiModelProperty(value = "Номер денежного счета", example = "1234")
|
||||
@JsonProperty
|
||||
private Long moneyAccountId;
|
||||
@ApiModelProperty(value = "Номер депозитарного счета", example = "1234")
|
||||
@JsonProperty
|
||||
private Long depoAccountId;
|
||||
@ApiModelProperty(value = "Наименование статуса", example = "ACTV")
|
||||
@JsonProperty
|
||||
private String status;
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (this.companyId == null)
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError, "companyId"));
|
||||
if (!StringUtils.hasLength(this.code))
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError, "code"));
|
||||
return errors.isEmpty() ? Collections.emptyList() : errors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClientCodeNewRequest toRequest() {
|
||||
var req = new ClientCodeNewRequest();
|
||||
req.setCompanyId(this.companyId);
|
||||
req.setCode(this.code);
|
||||
req.setTradingClearingRegistryId(this.tradingClearingRegistryId);
|
||||
req.setMoneyAccountId(this.moneyAccountId);
|
||||
req.setDepoAccountId(this.depoAccountId);
|
||||
req.setStatus(this.status);
|
||||
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 getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public Long getTradingClearingRegistryId() {
|
||||
return tradingClearingRegistryId;
|
||||
}
|
||||
|
||||
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
|
||||
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
||||
}
|
||||
|
||||
public Long getMoneyAccountId() {
|
||||
return moneyAccountId;
|
||||
}
|
||||
|
||||
public void setMoneyAccountId(Long moneyAccountId) {
|
||||
this.moneyAccountId = moneyAccountId;
|
||||
}
|
||||
|
||||
public Long getDepoAccountId() {
|
||||
return depoAccountId;
|
||||
}
|
||||
|
||||
public void setDepoAccountId(Long depoAccountId) {
|
||||
this.depoAccountId = depoAccountId;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.account;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
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.account.ClientCodeUpdateRequest;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ClientCodeUpdateAction implements IAction<ClientCodeUpdateRequest> {
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonProperty
|
||||
public Long id;
|
||||
@ApiModelProperty(value = "Наименование компании", example = "1200")
|
||||
@JsonProperty
|
||||
private Long companyId;
|
||||
@ApiModelProperty(value = "Код клиента", example = "A301011111")
|
||||
@JsonProperty
|
||||
private String code;
|
||||
@ApiModelProperty(value = "Торгово-клиринговый регистр", example = "1234")
|
||||
@JsonProperty
|
||||
private Long tradingClearingRegistryId;
|
||||
@ApiModelProperty(value = "Номер денежного счета", example = "1234")
|
||||
@JsonProperty
|
||||
private Long moneyAccountId;
|
||||
@ApiModelProperty(value = "Номер депозитарного счета", example = "1234")
|
||||
@JsonProperty
|
||||
private Long depoAccountId;
|
||||
@ApiModelProperty(value = "Наименование статуса", example = "ACTV")
|
||||
@JsonProperty
|
||||
private String status;
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (this.id == null)
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError, "id"));
|
||||
return errors.isEmpty() ? Collections.emptyList() : errors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClientCodeUpdateRequest toRequest() {
|
||||
var req = new ClientCodeUpdateRequest();
|
||||
req.setId(this.id);
|
||||
req.setCompanyId(this.companyId);
|
||||
req.setCode(this.code);
|
||||
req.setTradingClearingRegistryId(this.tradingClearingRegistryId);
|
||||
req.setMoneyAccountId(this.moneyAccountId);
|
||||
req.setDepoAccountId(this.depoAccountId);
|
||||
req.setStatus(this.status);
|
||||
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 getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public Long getTradingClearingRegistryId() {
|
||||
return tradingClearingRegistryId;
|
||||
}
|
||||
|
||||
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
|
||||
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
||||
}
|
||||
|
||||
public Long getMoneyAccountId() {
|
||||
return moneyAccountId;
|
||||
}
|
||||
|
||||
public void setMoneyAccountId(Long moneyAccountId) {
|
||||
this.moneyAccountId = moneyAccountId;
|
||||
}
|
||||
|
||||
public Long getDepoAccountId() {
|
||||
return depoAccountId;
|
||||
}
|
||||
|
||||
public void setDepoAccountId(Long depoAccountId) {
|
||||
this.depoAccountId = depoAccountId;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
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.registry.TradingClearingRegistryNewRequest;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class TradingClearingRegistryNewAction implements IAction<TradingClearingRegistryNewRequest> {
|
||||
@ApiModelProperty(value = "Наименование компании", example = "1200")
|
||||
@JsonProperty
|
||||
private Long companyId;
|
||||
@ApiModelProperty(value = "Номер денежного счета", example = "1500")
|
||||
@JsonProperty
|
||||
private Long moneyAccountId;
|
||||
@ApiModelProperty(value = "Номер депозитарного счета", example = "1600")
|
||||
@JsonProperty
|
||||
private Long depoAccountId;
|
||||
@ApiModelProperty(value = "Наименование статуса", example = "ACTV")
|
||||
@JsonProperty
|
||||
private String status;
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (this.companyId == null)
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError, "companyId"));
|
||||
if (this.moneyAccountId == null)
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError, "moneyAccountId"));
|
||||
return errors.isEmpty() ? Collections.emptyList() : errors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TradingClearingRegistryNewRequest toRequest() {
|
||||
var req = new TradingClearingRegistryNewRequest();
|
||||
req.setCompanyId(this.companyId);
|
||||
req.setMoneyAccountId(this.moneyAccountId);
|
||||
req.setDepoAccountId(this.depoAccountId);
|
||||
req.setStatus(this.status);
|
||||
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 Long getMoneyAccountId() {
|
||||
return moneyAccountId;
|
||||
}
|
||||
|
||||
public void setMoneyAccountId(Long moneyAccountId) {
|
||||
this.moneyAccountId = moneyAccountId;
|
||||
}
|
||||
|
||||
public Long getDepoAccountId() {
|
||||
return depoAccountId;
|
||||
}
|
||||
|
||||
public void setDepoAccountId(Long depoAccountId) {
|
||||
this.depoAccountId = depoAccountId;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
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.registry.TradingClearingRegistryUpdateRequest;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class TradingClearingRegistryUpdateAction implements IAction<TradingClearingRegistryUpdateRequest> {
|
||||
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonProperty
|
||||
public Long id;
|
||||
|
||||
@JsonProperty
|
||||
private String status;
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (this.id == null)
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError, "id"));
|
||||
return errors.isEmpty() ? Collections.emptyList() : errors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TradingClearingRegistryUpdateRequest toRequest() {
|
||||
var req = new TradingClearingRegistryUpdateRequest();
|
||||
req.setId(this.id);
|
||||
req.setStatus(this.status);
|
||||
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 getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package ru.spcex.clearing.backendapi.controller.response.entity.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
||||
|
||||
/**
|
||||
* Банковские реквизиты для перечисления денежных средств
|
||||
*
|
||||
* @ApiModel(description = "Ответ в результате отправки операции в топик Kafka.")
|
||||
* @ApiModelProperty(value = "Информация о принятом запросе")
|
||||
**/
|
||||
@ApiModel(description = "Ответ при получении объекта TradingClearingRegistry.")
|
||||
public class TradingClearingRegistryBackendGetById extends BasicSpcexResponse {
|
||||
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Поля объекта")
|
||||
private TradingClearingRegistryBackendGetFields payload;
|
||||
|
||||
public TradingClearingRegistryBackendGetFields getPayload() {
|
||||
return payload;
|
||||
}
|
||||
|
||||
public void setPayload(TradingClearingRegistryBackendGetFields payload) {
|
||||
this.payload = payload;
|
||||
}
|
||||
|
||||
public void fromEntity(TradingClearingRegistry tcr) {
|
||||
var payload = new TradingClearingRegistryBackendGetFields();
|
||||
this.setPayload(payload);
|
||||
payload.setId(tcr.getId());
|
||||
payload.setCompanyId(tcr.getCompanyId());
|
||||
payload.setCode(tcr.getCode());
|
||||
payload.setMoneyAccountId(tcr.getMoneyAccountId());
|
||||
payload.setDepoAaccountId(tcr.getDepoAaccountId());
|
||||
payload.setTradingClearingRegistryType(tcr.getTradingClearingRegistryType());
|
||||
payload.setTradingClearingRegistryLevel(tcr.getTradingClearingRegistryLevel());
|
||||
payload.setTradingClearingRegistryPurpose(tcr.getTradingClearingRegistryPurpose());
|
||||
payload.setStatus(tcr.getStatus());
|
||||
payload.setCreatedAt(tcr.getCreated());
|
||||
payload.setUpdatedAt(tcr.getUpdated());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,133 @@
|
|||
package ru.spcex.clearing.backendapi.controller.response.entity.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
public class TradingClearingRegistryBackendGetFields {
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Идентификатор", example = "1234")
|
||||
private Long id;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Идентификатор компании", example = "1234")
|
||||
private Long companyId;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "од торгово-клирингового регистра", example = "ABCD")
|
||||
private String code;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Идентификатор денежного счета", example = "")
|
||||
private Long moneyAccountId;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Идентификатор депозитарного счета", example = "")
|
||||
private Long depoAaccountId;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Код торгово-клирингового регистра", example = "")
|
||||
private String tradingClearingRegistryType;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Код торгово-клирингового регистра", example = "")
|
||||
private String tradingClearingRegistryLevel;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Код области применения", example = "")
|
||||
private String tradingClearingRegistryPurpose;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "Наименование статуса", example = "ACTV")
|
||||
private String status;
|
||||
|
||||
@JsonProperty("Дата-время создания записи")
|
||||
@JsonSerialize(using = InstantSerializer.class)
|
||||
private Instant createdAt;
|
||||
@JsonProperty("Дата-время изменения записи")
|
||||
@JsonSerialize(using = InstantSerializer.class)
|
||||
private Instant updatedAt;
|
||||
|
||||
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 getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public Long getMoneyAccountId() {
|
||||
return moneyAccountId;
|
||||
}
|
||||
|
||||
public void setMoneyAccountId(Long moneyAccountId) {
|
||||
this.moneyAccountId = moneyAccountId;
|
||||
}
|
||||
|
||||
public Long getDepoAaccountId() {
|
||||
return depoAaccountId;
|
||||
}
|
||||
|
||||
public void setDepoAaccountId(Long depoAaccountId) {
|
||||
this.depoAaccountId = depoAaccountId;
|
||||
}
|
||||
|
||||
public String getTradingClearingRegistryType() {
|
||||
return tradingClearingRegistryType;
|
||||
}
|
||||
|
||||
public void setTradingClearingRegistryType(String tradingClearingRegistryType) {
|
||||
this.tradingClearingRegistryType = tradingClearingRegistryType;
|
||||
}
|
||||
|
||||
public String getTradingClearingRegistryLevel() {
|
||||
return tradingClearingRegistryLevel;
|
||||
}
|
||||
|
||||
public void setTradingClearingRegistryLevel(String tradingClearingRegistryLevel) {
|
||||
this.tradingClearingRegistryLevel = tradingClearingRegistryLevel;
|
||||
}
|
||||
|
||||
public String getTradingClearingRegistryPurpose() {
|
||||
return tradingClearingRegistryPurpose;
|
||||
}
|
||||
|
||||
public void setTradingClearingRegistryPurpose(String tradingClearingRegistryPurpose) {
|
||||
this.tradingClearingRegistryPurpose = tradingClearingRegistryPurpose;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public Instant getCreatedAt() {
|
||||
return createdAt;
|
||||
}
|
||||
|
||||
public void setCreatedAt(Instant createdAt) {
|
||||
this.createdAt = createdAt;
|
||||
}
|
||||
|
||||
public Instant getUpdatedAt() {
|
||||
return updatedAt;
|
||||
}
|
||||
|
||||
public void setUpdatedAt(Instant updatedAt) {
|
||||
this.updatedAt = updatedAt;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<meta version="3.5.0.3">
|
||||
<meta version="3.5.0.4">
|
||||
<enums>
|
||||
<allowed id="1" code="ALWD" name="Разрешено"/>
|
||||
<allowed id="2" code="DEND" name="Запрещено"/>
|
||||
|
|
@ -106,9 +106,9 @@
|
|||
<bondType id="6" code="I" name="Облигации с индексированным номиналом"/>
|
||||
<bondType id="7" code="M" name="Облигации с амортизацией долга"/>
|
||||
|
||||
<tradingClearingRegistryType id="1" code="А" name="Владелец"/>
|
||||
<tradingClearingRegistryType id="1" code="A" name="Владелец"/>
|
||||
<tradingClearingRegistryType id="2" code="B" name="Клиентский"/>
|
||||
<tradingClearingRegistryType id="3" code="С" name="Попечитель"/>
|
||||
<tradingClearingRegistryType id="3" code="C" name="Попечитель"/>
|
||||
<tradingClearingRegistryType id="4" code="D" name="Доверительный управляющий"/>
|
||||
<tradingClearingRegistryType id="5" code="E" name="Эмитент"/>
|
||||
<tradingClearingRegistryType id="6" code="Z" name="К размещению/выкупу"/>
|
||||
|
|
@ -162,10 +162,12 @@
|
|||
<registryCode id="10" code="LMPT" name="Обязательства по деньгам - свои"/>
|
||||
<registryCode id="11" code="CSPT" name="Требования по инструментам - свои"/>
|
||||
<registryStatus id="1" code="OK" name="Успешно"/>
|
||||
<registryStatus id="2" code="FAIL" name="Не успешно"/>
|
||||
<registryStatus id="3" code="MNG" name="Не учитывать"/>
|
||||
<registryStatus id="4" code="PROC" name="К клирингу"/>
|
||||
<registryStatus id="5" code="LIQU" name="Ликвидационный неттинг"/>
|
||||
<registryStatus id="2" code="UNCV" name="Не исполнено"/>
|
||||
<registryStatus id="3" code="FAIL" name="Не исполнено контрагентом"/>
|
||||
<registryStatus id="4" code="MNG" name="Не учитывать"/>
|
||||
<registryStatus id="5" code="PROC" name="К клирингу"/>
|
||||
<registryStatus id="6" code="LIQU" name="Ликвидационный неттинг"/>
|
||||
<registryStatus id="7" code="POOL" name="В клиринге"/>
|
||||
<balanceDimension id="1" code="PICS" name="Штуки"/>
|
||||
<balanceDimension id="2" code="LOTS" name="Лоты"/>
|
||||
<balanceDimension id="3" code="MONY" name="Деньги"/>
|
||||
|
|
@ -218,6 +220,7 @@
|
|||
<task id="46" code="RCHK" name="Запрос на сверку активов"/>
|
||||
<task id="47" code="GRYT" name="Сформировать регистр на текущий день"/>
|
||||
<task id="48" code="GRRT" name="Сформировать реестр на текущий день"/>
|
||||
<task id="49" code="GORD" name="Формирование реестра распоряжений, направленных расчетному депозитарию"/>
|
||||
<taskStatus id="1" code="ACTV" name="Активна"/>
|
||||
<taskStatus id="2" code="BLKD" name="Не активна"/>
|
||||
<taskStatus id="3" code="CNCL" name="Отмена расписания"/>
|
||||
|
|
@ -240,6 +243,9 @@
|
|||
<sessionType id="8" code="IPO0" name="Первичные торги B0"/>
|
||||
<moneyFlowSide id="1" code="BUY" name="Разместить"/>
|
||||
<moneyFlowSide id="2" code="SELL" name="Привлечь"/>
|
||||
<side id="1" code="BUY" name="Покупка"/>
|
||||
<side id="2" code="SELL" name="Продажа"/>
|
||||
<marketCode id="1" code="BMIC" name="СПВБ: ОФЗ-ИН - Аукцион БР"/>
|
||||
|
||||
<courierType id="1" code="STHS" name="ЭДО с Расчетной Организацией"/>
|
||||
<transactionStatus id="1" code="STLD" name="Рассчитан"/>
|
||||
|
|
@ -338,6 +344,11 @@
|
|||
<errorCode id="3019" code="CMPN" name="Компания с %s = %s уже создана."/>
|
||||
<errorCode id="3020" code="CMPN" name="Тип реквизита компании %s не может быть изменен."/>
|
||||
<errorCode id="3021" code="CMPN" name="Тип контакта компании %s не может быть изменен."/>
|
||||
<errorCode id="3022" code="CMPN" name="ТКР с кодом %s не найден."/>
|
||||
<errorCode id="3023" code="CMPN" name="Счет %s не найден."/>
|
||||
<errorCode id="3024" code="CMPN" name="Договорные отношения %s в секции МКР уже созданы."/>
|
||||
<errorCode id="3025" code="CMPN" name="Договорные отношения %s на фондовой секции уже созданы."/>
|
||||
<errorCode id="3026" code="CMPN" name="Запись о договорных отношениях не найдена."/>
|
||||
|
||||
<!-- error code for report-serivce -->
|
||||
<errorCode id="4000" code="RPRT" name="Общая ошибка модуля report-serivce."/>
|
||||
|
|
@ -354,9 +365,12 @@
|
|||
<errorCode id="5010" code="ACNT" name="Счет %s уже существует."/>
|
||||
<errorCode id="5011" code="ACNT" name="Счет %s не найден."/>
|
||||
<errorCode id="5012" code="ACNT" name="Счет %s неактивен."/>
|
||||
<errorCode id="5013" code="ACNT" name="Компания не найдена."/>
|
||||
<errorCode id="5014" code="ACNT" name="Компания неактивна."/>
|
||||
<errorCode id="5015" code="ACNT" name="Для Компании %s уже создан информационный счет %s."/>
|
||||
<errorCode id="5013" code="ACNT" name="Компания %s не найдена."/>
|
||||
<errorCode id="5014" code="ACNT" name="Компания %s неактивна."/>
|
||||
<errorCode id="5015" code="ACNT" name="Для компании %s уже создан информационный счет %s."/>
|
||||
<errorCode id="5016" code="ACNT" name="Для Компании %s уже создан ТКР %s."/>
|
||||
<errorCode id="5017" code="ACNT" name="Для Компании %s отсутствует счет ДЕПО."/>
|
||||
<errorCode id="5018" code="ACNT" name="Для Компании %s отсутствует денежный счет."/>
|
||||
<!-- error code for balance-service -->
|
||||
<errorCode id="5200" code="BLNC" name="Общая ошибка модуля balance-service."/>
|
||||
<errorCode id="5210" code="BLNC" name="Клиринговая сессия неактивна."/>
|
||||
|
|
@ -365,7 +379,7 @@
|
|||
<errorCode id="5213" code="BLNC" name="Валюта %s не найдена."/>
|
||||
<errorCode id="5214" code="BLNC" name="Загрузка остатков возможна только на текущую дату."/>
|
||||
<errorCode id="5215" code="BLNC" name="Загрузка остатков возможна только по рынку МКР."/>
|
||||
<errorCode id="5216" code="BLNC" name="Загрузка остатков возможна только по собственным счетам."/>
|
||||
<errorCode id="5216" code="BLNC" name="Загрузка остатков возможна только по собственным или клиентским счетам."/>
|
||||
<errorCode id="5217" code="BLNC" name="Счет %s не найден."/>
|
||||
<errorCode id="5218" code="BLNC" name="Счет %s неактивен."/>
|
||||
<errorCode id="5219" code="BLNC" name="Дозачисления/списания возможны только по рынку МКР."/>
|
||||
|
|
@ -390,7 +404,7 @@
|
|||
<errorCode id="5415" code="CLRN" name="Счет %s неактивен."/>
|
||||
<errorCode id="5416" code="CLRN" name="Инструмент %s не найден."/>
|
||||
<errorCode id="5417" code="CLRN" name="Инструмент %s неактивен."/>
|
||||
<errorCode id="5418" code="CLRN" name="Торгово-клиринговый регистр %s не найден."/>
|
||||
<errorCode id="5418" code="CLRN" name="Торгово-клиринговый регистр %s не найден для компании %s."/>
|
||||
<errorCode id="5419" code="CLRN" name="Торгово-клиринговый регистр %s неактивен."/>
|
||||
<!-- error code for dbf-importer -->
|
||||
<errorCode id="5600" code="DBFI" name="Общая ошибка модуля dbf-importer."/>
|
||||
|
|
@ -430,9 +444,11 @@
|
|||
|
||||
</enums>
|
||||
<objects>
|
||||
<company id="1" fullName="АО Санкт-Петербургская Валютная Биржа" shortName="СПВБ" tradingCode="1" clearingCode="1" workflowStatus="ACTV"/>
|
||||
<company id="2" fullName="НКО ЗАО «Петербургский Расчетный Центр»" shortName="НКО АО ПРЦ" tradingCode="2" clearingCode="2" workflowStatus="ACTV"/>
|
||||
<company id="3" fullName="Торговая организация" shortName="ТС" tradingCode="3" clearingCode="3" workflowStatus="ACTV"/>
|
||||
<company id="1" fullName="АО Санкт-Петербургская Валютная Биржа" shortName="СПВБ" tradingCode="" clearingCode="" workflowStatus="ACTV"/>
|
||||
<company id="2" fullName="ЗАО «Петербургский Расчетный Центр»" shortName="ПРЦ" tradingCode="" clearingCode="" workflowStatus="ACTV"/>
|
||||
<company id="3" fullName="Торговая организация" shortName="ТС" tradingCode="" clearingCode="" workflowStatus="ACTV"/>
|
||||
<company id="4" fullName="ЗАО «Санкт-Петербургский Расчетно-Депозитарный Центр»" shortName="РДЦ" tradingCode="" clearingCode="" workflowStatus="ACTV"/>
|
||||
<company id="5" fullName="Центральный Банк Российской Федерации" shortName="ЦБ РФ" tradingCode="" clearingCode="" workflowStatus="ACTV"/>
|
||||
|
||||
<companySymbols id="1" companyId="1" companySymbol="BIC" companySymbolValue="044030920"/>
|
||||
<companySymbols id="2" companyId="2" companySymbol="BIC" companySymbolValue="044030505"/>
|
||||
|
|
|
|||
|
|
@ -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.5.0.19">
|
||||
<meta version="3.5.0.20">
|
||||
<!-- _xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _xsi:noNamespaceSchemaLocation="file:///E:/d/projects/meta/from/meta.xsd" -->
|
||||
<!--Здесь словари-->
|
||||
<enums>
|
||||
|
|
@ -217,11 +217,21 @@
|
|||
<code name="Код" shortname="Код" type="12"/>
|
||||
<name name="Наименование" shortname="Наименование" type="2" length="50"/>
|
||||
</sessionType>
|
||||
<moneyFlowSide name="Справочник направлений" class="ru.clearing.platform.dictionary.MoneyFlowSideDictionary" table="money_flow_side_dictionary">
|
||||
<moneyFlowSide name="Справочник направлений денежного рынка" class="ru.clearing.platform.dictionary.MoneyFlowSideDictionary" table="money_flow_side_dictionary">
|
||||
<id name="Идентификатор" shortname="ID" type="1"/>
|
||||
<code name="Код" shortname="Код" type="12"/>
|
||||
<name name="Значение" shortname="Значение" type="2" length="255"/>
|
||||
</moneyFlowSide>
|
||||
<side name="Справочник направлений" class="ru.clearing.platform.dictionary.SideDictionary" table="side_dictionary">
|
||||
<id name="Идентификатор" shortname="ID" type="1"/>
|
||||
<code name="Код" shortname="Код" type="12"/>
|
||||
<name name="Значение" shortname="Значение" type="2" length="255"/>
|
||||
</side>
|
||||
<marketCode name="Справочник кодов рынков" class="ru.clearing.platform.dictionary.MarketCodeDictionary" table="market_code_dictionary">
|
||||
<id name="Идентификатор" shortname="ID" type="1"/>
|
||||
<code name="Код" shortname="Код" type="12"/>
|
||||
<name name="Значение" shortname="Значение" type="2" length="255"/>
|
||||
</marketCode>
|
||||
|
||||
<chargeDirection name="Направление начисления комиссии" class="ru.clearing.platform.dictionary.ChargeDirectionDictionary" table="charge_direction_dictionary">
|
||||
<id name="Идентификатор" shortname="ID" type="1"/>
|
||||
|
|
@ -749,7 +759,7 @@
|
|||
<description type="2" length="255" name="Описание" shortname="Описание" searchable="true" sortable="true"/>
|
||||
<exchangeId type="1" dbname="Идентификатор площадки" name="Наименование площадки" shortname="Площадка" searchable="true" sortable="true" link="company"/>
|
||||
<name type="2" length="255" name="Наименование рынка" shortname="Рынок" searchable="true" sortable="true"/>
|
||||
<code type="12" name="Код рынка" shortname="Код" searchable="true" sortable="true"/>
|
||||
<code type="12" name="Код рынка" shortname="Код" searchable="true" sortable="true" link="marketCode"/>
|
||||
<settlementCurrency type="12" dbname="Код валюты расчета" name="Наименование валюты расчета" shortname="Валюта" searchable="true" sortable="true" visible="true" link="currencyCode" linkCode="code"/>
|
||||
<section type="12" dbname="Код секции" name="Наименование секции" shortname="Секция" searchable="true" sortable="true" visible="true" link="section"/>
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||
|
|
@ -1187,6 +1197,8 @@
|
|||
</post>
|
||||
<post destination="GRRT" group="Клиринг" name="Сформировать реестр на текущий день">
|
||||
</post>
|
||||
<post destination="GORD" group="Клиринг" name="Формирование реестра распоряжений, направленных расчетному депозитарию">
|
||||
</post>
|
||||
</actions>
|
||||
</launcher>
|
||||
|
||||
|
|
@ -1281,7 +1293,7 @@
|
|||
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" visible="false" searchable="true" sortable="true"/>
|
||||
<clearingDate type="6" name="Дата клиринга" shortname="Дата клиринга" visible="false" searchable="true" sortable="true"/>
|
||||
</executionDeposit>
|
||||
<executionFond name="Сделки на Фондовой секции" destination="execution-fonds" class="" logUpdates="true" table="execution_fond">
|
||||
<executionFond name="Сделки на Фондовой секции" destination="execution-fonds" class="ru.clearing.classes.statics.data.execution.ExecutionFond" logUpdates="true" table="execution_fond">
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" visible="false" searchable="true" sortable="true"/>
|
||||
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" visible="false" searchable="true" sortable="true"/>
|
||||
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" visible="false" searchable="true" sortable="true"/>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import ru.spcex.clearing.backendapi.controller.config.*;
|
|||
import ru.spcex.clearing.backendapi.controller.queue.account.*;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.company.*;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.execution.ExecutionDepositController;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.execution.ExecutionFondController;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.journal.InDocumentJournalController;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.journal.ManagementJournalController;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.journal.OutDocumentJournalController;
|
||||
|
|
@ -39,6 +40,7 @@ import ru.spcex.clearing.backendapi.controller.queue.liabilities.LiabilitiesClai
|
|||
import ru.spcex.clearing.backendapi.controller.queue.misc.*;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.payment.PaymentInstructionController;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.register.*;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.registry.TradingClearingRegistryController;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.scheduler.*;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.securities.*;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.user.UserController;
|
||||
|
|
@ -88,6 +90,8 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi
|
|||
BankAccountController.class,
|
||||
ClearingAccountController.class,
|
||||
DepoAccountController.class,
|
||||
//account misc
|
||||
ClientCodeController.class,
|
||||
//company
|
||||
CompanyRoleSetController.class,
|
||||
CompanyController.class,
|
||||
|
|
@ -99,6 +103,7 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi
|
|||
RelationController.class,
|
||||
//execution
|
||||
ExecutionDepositController.class,
|
||||
ExecutionFondController.class,
|
||||
//journal
|
||||
InDocumentJournalController.class,
|
||||
ManagementJournalController.class,
|
||||
|
|
@ -125,6 +130,8 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi
|
|||
OrderRegisterController.class,
|
||||
ReportRegisterController.class,
|
||||
UncoveredDealRegisterController.class,
|
||||
//registry
|
||||
TradingClearingRegistryController.class,
|
||||
//scheduler
|
||||
ClearingCalendarController.class,
|
||||
LauncherController.class,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,174 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.account;
|
||||
|
||||
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.account.ClientCode;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.account.ClientCodeNewAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.account.ClientCodeUpdateAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.backendapi.errors.ActionValidationException;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static ru.spcex.clearing.test.json.JsonUtil.writeValue;
|
||||
|
||||
class ClientCodeControllerTest extends AbstractControllerTest {
|
||||
private static final String REST_URL = "/accounting/client-codes/";
|
||||
|
||||
/**
|
||||
* {@link ClientCodeController#add(ClientCodeNewAction)}<br>
|
||||
* Тест проверяет получение сущности {@link ClientCodeNewAction} по REST API и отправку в Apache Kafka.<br>
|
||||
* Входной запрос {@link ClientCodeNewRequest}:<br>
|
||||
* {@link ClientCodeNewRequest#} - 044525776<br>
|
||||
* ...
|
||||
*/
|
||||
@Test
|
||||
void add() throws Exception {
|
||||
//ARRANGE
|
||||
ClientCodeNewAction clientCodeNewAction = getClientCodeNewAction(
|
||||
0,
|
||||
"044525776",
|
||||
"ACTV",
|
||||
1000L,
|
||||
1010L,
|
||||
1020L,
|
||||
1030L);
|
||||
|
||||
//ACT and ASSERT
|
||||
checkAddingByRestApi(REST_URL, clientCodeNewAction);
|
||||
checkSendedMessegeFromKafka(Consts.DESTINATION_CLIENT_CODE_NEW, clientCodeNewAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link ClientCodeController#add(ClientCodeNewAction)}<br>
|
||||
* Тест проверяет работу валидации сущности {@link ClientCodeNewAction} принятой по REST API для отправку в Apache Kafka.<br>
|
||||
* Входной запрос {@link ClientCodeNewAction}:<br>
|
||||
* {@link ClientCodeNewAction#id} - (generated)<br>
|
||||
* {@link ClientCodeNewAction#code} - "044525776" или null или ""<br>
|
||||
* {@link ClientCodeNewAction#status} - "ACTV"<br>
|
||||
* {@link ClientCodeNewAction#companyId} - 1000L или null<br>
|
||||
* {@link ClientCodeNewAction#depoAccountId} - 1010L<br>
|
||||
* {@link ClientCodeNewAction#moneyAccountId} - 1020L<br>
|
||||
* {@link ClientCodeNewAction#tradingClearingRegistryId} - 1030L<br>
|
||||
*/
|
||||
@Test
|
||||
void addWithException() {
|
||||
assertThrowsFor(getClientCodeNewAction(0, "", "ACTV", 1000L, 1010L, 1020L, 1030L));
|
||||
assertThrowsFor(getClientCodeNewAction(0, null, "ACTV", 1000L, 1010L, 1020L, 1030L));
|
||||
assertThrowsFor(getClientCodeNewAction(0, "044525776", "ACTV", null, 1010L, 1020L, 1030L));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link ClientCodeController#update(Long, ClientCodeUpdateAction)}<br>
|
||||
* Тест проверяет получение сущности {@link ClientCodeUpdateAction} по REST API и отправку в Apache Kafka.<br>
|
||||
* Входной запрос {@link ClientCodeUpdateAction}:<br>
|
||||
* {@link ClientCodeUpdateAction#id} - (generated)<br>
|
||||
* {@link ClientCodeUpdateAction#code} - "044525776"<br>
|
||||
* {@link ClientCodeUpdateAction#status} - "ACTV"<br>
|
||||
* {@link ClientCodeUpdateAction#companyId} - 1000L<br>
|
||||
* {@link ClientCodeUpdateAction#depoAccountId} - 1010L<br>
|
||||
* {@link ClientCodeUpdateAction#moneyAccountId} - 1020L<br>
|
||||
* {@link ClientCodeUpdateAction#tradingClearingRegistryId} - 1030L<br>
|
||||
*/
|
||||
@Test
|
||||
void update() throws Exception {
|
||||
//ARRANGE
|
||||
long id = 0;
|
||||
ClientCodeUpdateAction clientCodeUpdateAction = getClientCodeUpdateAction(
|
||||
id,
|
||||
"044525776",
|
||||
"ACTV",
|
||||
1000L,
|
||||
1010L,
|
||||
1020L,
|
||||
1030L);
|
||||
|
||||
//ACT and ASSERT
|
||||
checkUpdatingByRestApi(REST_URL, clientCodeUpdateAction, id);
|
||||
checkSendedMessegeFromKafka(Consts.DESTINATION_CLIENT_CODE_UPDATE, clientCodeUpdateAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link ClientCodeController#delete(Long)} <br>
|
||||
* Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.<br>
|
||||
* Входной запрос /accounting/client-codes/{@link Long}: - 0L<br>
|
||||
*/
|
||||
@Test
|
||||
void delete() throws Exception {
|
||||
//ARRANGE
|
||||
long id = currentId.getAndIncrement();
|
||||
CommonDeleteAction deleteAction = new CommonDeleteAction();
|
||||
deleteAction.setId(id);
|
||||
//ACT and ASSERT
|
||||
checkDeletingByRestApi(REST_URL, id);
|
||||
checkSendedMessegeFromKafka(Consts.DESTINATION_CLIENT_CODE_DELETE, deleteAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link ClientCodeController#getAll()} <br>
|
||||
* Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_ClientCode.<br>
|
||||
* Входной запрос /accounting/client-codes/ <br>
|
||||
* Ответ CommonGetAllResponse <br>
|
||||
*/
|
||||
@Test
|
||||
void getAll() throws Exception {
|
||||
//ARRANGE
|
||||
ClientCode existClientCode = new ClientCode();
|
||||
existClientCode.setCode("ooo tinkoff");
|
||||
existClientCode.setCompanyId(1000L);
|
||||
existClientCode.setDepoAccountId(1010L);
|
||||
existClientCode.setStatus("ACTV");
|
||||
existClientCode.setMoneyAccountId(1020L);
|
||||
existClientCode.setTradingClearingRegistryId(1030L);
|
||||
existClientCode.setCreated(Instant.now());
|
||||
existClientCode.setUpdated(Instant.now());
|
||||
existClientCode.setId(currentId.get());
|
||||
|
||||
//ACT and ASSERT
|
||||
checkGettingAllFromRestApi(IMDGDistributedNames.Map_ClientCode, existClientCode, REST_URL);
|
||||
}
|
||||
|
||||
private void assertThrowsFor(IAction<?> iAction) {
|
||||
assertThrows(ActionValidationException.class, () -> {
|
||||
try {
|
||||
perform(MockMvcRequestBuilders.post(REST_URL).contentType(MediaType.APPLICATION_JSON).content(writeValue(iAction)));
|
||||
} catch (Exception e) {
|
||||
Throwable rootCause = NestedExceptionUtils.getRootCause(e);
|
||||
throw rootCause != null ? rootCause : e;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private ClientCodeNewAction getClientCodeNewAction(long id,
|
||||
String code, String status, Long companyId, Long depoAccountId,
|
||||
Long moneyAccountId, Long tradingClearingRegistryId ) {
|
||||
ClientCodeNewAction clientCodeNewAction = new ClientCodeNewAction();
|
||||
clientCodeNewAction.setCode(code);
|
||||
clientCodeNewAction.setCompanyId(companyId);
|
||||
clientCodeNewAction.setDepoAccountId(depoAccountId);
|
||||
clientCodeNewAction.setStatus(status);
|
||||
clientCodeNewAction.setMoneyAccountId(moneyAccountId);
|
||||
clientCodeNewAction.setTradingClearingRegistryId(tradingClearingRegistryId);
|
||||
return clientCodeNewAction;
|
||||
}
|
||||
|
||||
private ClientCodeUpdateAction getClientCodeUpdateAction(long id, String code, String status, Long companyId, Long depoAccountId,
|
||||
Long moneyAccountId, Long tradingClearingRegistryId) {
|
||||
ClientCodeUpdateAction clientCodeUpdateAction = new ClientCodeUpdateAction();
|
||||
clientCodeUpdateAction.setId(id);
|
||||
clientCodeUpdateAction.setCode(code);
|
||||
clientCodeUpdateAction.setCompanyId(companyId);
|
||||
clientCodeUpdateAction.setDepoAccountId(depoAccountId);
|
||||
clientCodeUpdateAction.setStatus(status);
|
||||
clientCodeUpdateAction.setMoneyAccountId(moneyAccountId);
|
||||
clientCodeUpdateAction.setTradingClearingRegistryId(tradingClearingRegistryId);
|
||||
return clientCodeUpdateAction;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.execution;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
|
||||
class ExecutionFondControllerTest extends AbstractControllerTest {
|
||||
private static final String REST_URL = "/execution-fonds/";
|
||||
|
||||
/**
|
||||
* {@link ExecutionFondController#getAll()} <br>
|
||||
* Тест проверяет получение запроса по REST API.<br>
|
||||
* Входной запрос /execution-fonds/ <br>
|
||||
* Ответ CommonGetAllResponse <br>
|
||||
*/
|
||||
@Test
|
||||
void getAll() throws Exception {
|
||||
//ARRANGE
|
||||
ExecutionFond executionFond = new ExecutionFond();
|
||||
executionFond.setId(currentId.get());
|
||||
executionFond.setExchangeExecutionId(currentId.get());
|
||||
executionFond.setExchangeExecutionTime(Instant.now());
|
||||
executionFond.setTradingDate(LocalDate.now());
|
||||
executionFond.setTradingClearingRegistryId(currentId.get());
|
||||
executionFond.setMarket("mark");
|
||||
executionFond.setPrice(new BigDecimal(0));
|
||||
executionFond.setLots(new BigDecimal(0));
|
||||
executionFond.setQuantity(new BigDecimal(0));
|
||||
executionFond.setInterestAmount(new BigDecimal(0));
|
||||
executionFond.setSide("sid");
|
||||
executionFond.setSettlementCurrency("set");
|
||||
executionFond.setCompanyId(currentId.get());
|
||||
executionFond.setDuration(currentId.get());
|
||||
executionFond.setSecurityFullName("sec");
|
||||
executionFond.setSecuritySymbol("sec");
|
||||
executionFond.setSecurityId(currentId.get());
|
||||
executionFond.setCounterPartyId(currentId.get());
|
||||
executionFond.setCoverageStatus("cov");
|
||||
executionFond.setSessionId(currentId.get());
|
||||
executionFond.setClearingDate(LocalDate.now());
|
||||
executionFond.setExchangeOrderId(123L);
|
||||
executionFond.setSettlementAmount(new BigDecimal(10));
|
||||
executionFond.setComment("comment - hello world fond");
|
||||
executionFond.setClientCodeId(444L);
|
||||
executionFond.setSettlementCode("settl1");
|
||||
executionFond.setSettlementDate(LocalDate.now());
|
||||
executionFond.setExchangeExecutionMicroseconds(Instant.now());
|
||||
|
||||
//ACT and ASSERT
|
||||
checkGettingAllFromRestApi(IMDGDistributedNames.Map_ExecutionFond, executionFond, REST_URL);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.registry;
|
||||
|
||||
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.registry.TradingClearingRegistry;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryUpdateAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||
import ru.spcex.clearing.backendapi.controller.response.entity.registry.TradingClearingRegistryBackendGetById;
|
||||
import ru.spcex.clearing.backendapi.controller.response.entity.registry.TradingClearingRegistryBackendGetFields;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.backendapi.errors.ActionValidationException;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
import static ru.spcex.clearing.test.json.JsonUtil.writeValue;
|
||||
|
||||
class TradingClearingRegistryControllerTest extends AbstractControllerTest {
|
||||
private static final String REST_URL = "/registry/trading-clearing-registry/";
|
||||
|
||||
/**
|
||||
* {@link TradingClearingRegistryController#add(TradingClearingRegistryNewAction)}<br>
|
||||
* Тест проверяет получение сущности {@link TradingClearingRegistryNewAction} по REST API и отправку в Apache Kafka.<br>
|
||||
* Входной запрос {@link TradingClearingRegistryNewRequest}:<br>
|
||||
* {@link TradingClearingRegistryNewRequest#companyId} - 1234567890<br>
|
||||
* {@link TradingClearingRegistryNewRequest#moneyAccountId} - 18415056336414057<br>
|
||||
* {@link TradingClearingRegistryNewRequest#depoAccountId} - 21239757374450030<br>
|
||||
* {@link TradingClearingRegistryNewRequest#status} - ACTV<br>
|
||||
*/
|
||||
@Test
|
||||
void add() throws Exception {
|
||||
//ARRANGE
|
||||
TradingClearingRegistryNewAction tradingClearingRegistryNewAction = getTradingClearingRegistryNewAction(
|
||||
0,
|
||||
1234567890L, 18415056336414057L, 21239757374450030L, "ACTV"
|
||||
);
|
||||
|
||||
//ACT and ASSERT
|
||||
checkAddingByRestApi(REST_URL, tradingClearingRegistryNewAction);
|
||||
checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, tradingClearingRegistryNewAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link TradingClearingRegistryController#add(TradingClearingRegistryNewAction)}<br>
|
||||
* Тест проверяет работу валидации сущности {@link TradingClearingRegistryNewAction} принятой по REST API для отправку в Apache Kafka.<br>
|
||||
* Входной запрос {@link TradingClearingRegistryNewRequest}:<br>
|
||||
* {@link TradingClearingRegistryNewRequest#companyId} - 1234567890 / null<br>
|
||||
* {@link TradingClearingRegistryNewRequest#moneyAccountId} - 18415056336414057 / null<br>
|
||||
* {@link TradingClearingRegistryNewRequest#depoAccountId} - 21239757374450030<br>
|
||||
* {@link TradingClearingRegistryNewRequest#status} - ACTV<br>
|
||||
*/
|
||||
@Test
|
||||
void addWithException() {
|
||||
assertThrowsForNew(getTradingClearingRegistryNewAction(0, null, 18415056336414057L, 21239757374450030L, "ACTV"));
|
||||
assertThrowsForNew(getTradingClearingRegistryNewAction(0, 1234567890L, null, 21239757374450030L, "ACTV"));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link TradingClearingRegistryController#update(Long, TradingClearingRegistryUpdateAction)}<br>
|
||||
* Тест проверяет получение сущности {@link TradingClearingRegistryUpdateAction} по REST API и отправку в Apache Kafka.<br>
|
||||
* Входной запрос {@link TradingClearingRegistryUpdateAction}:<br>
|
||||
* {@link TradingClearingRegistryUpdateAction#id} - generated<br>
|
||||
* {@link TradingClearingRegistryUpdateAction#code} - ACTV<br>
|
||||
*/
|
||||
@Test
|
||||
void update() throws Exception {
|
||||
//ARRANGE
|
||||
long id = 0;
|
||||
TradingClearingRegistryUpdateAction tradingClearingRegistryUpdateAction = getTradingClearingRegistryUpdateAction(
|
||||
id, "ACTV"
|
||||
);
|
||||
|
||||
//ACT and ASSERT
|
||||
checkUpdatingByRestApi(REST_URL, tradingClearingRegistryUpdateAction, id);
|
||||
checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, tradingClearingRegistryUpdateAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link TradingClearingRegistryController#delete(Long)} <br>
|
||||
* Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.<br>
|
||||
* Входной запрос /registry/trading-clearing-registry/{@link Long}: - 0L<br>
|
||||
*/
|
||||
@Test
|
||||
void delete() throws Exception {
|
||||
//ARRANGE
|
||||
long id = currentId.getAndIncrement();
|
||||
CommonDeleteAction deleteAction = new CommonDeleteAction();
|
||||
deleteAction.setId(id);
|
||||
//ACT and ASSERT
|
||||
checkDeletingByRestApi(REST_URL, id);
|
||||
checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_DELETE, deleteAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link TradingClearingRegistryController#getById(Long)} <br>
|
||||
* Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_TradingClearingRegistry.<br>
|
||||
* Входной запрос /registry/trading-clearing-registry/{@link Long}: - 0L <br>
|
||||
* Ответ BankAccountBackendGetById <br>
|
||||
*/
|
||||
@Test
|
||||
void getById() throws Exception {
|
||||
//ARRANGE
|
||||
TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry();
|
||||
existTradingClearingRegistry.setCompanyId(365L);
|
||||
existTradingClearingRegistry.setCode("99999");
|
||||
existTradingClearingRegistry.setMoneyAccountId(404L);
|
||||
existTradingClearingRegistry.setDepoAaccountId(512L);
|
||||
existTradingClearingRegistry.setTradingClearingRegistryType("RUB");
|
||||
existTradingClearingRegistry.setTradingClearingRegistryLevel("OOO ROGA I KOPITA");
|
||||
existTradingClearingRegistry.setTradingClearingRegistryPurpose("848484848484");
|
||||
existTradingClearingRegistry.setStatus("ACTV");
|
||||
existTradingClearingRegistry.setId(currentId.get());
|
||||
|
||||
Imdg<TradingClearingRegistry> inDocumentJournalImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||
inDocumentJournalImdg.insert(existTradingClearingRegistry);
|
||||
|
||||
TradingClearingRegistryBackendGetById expected = new TradingClearingRegistryBackendGetById();
|
||||
TradingClearingRegistryBackendGetFields payload = new TradingClearingRegistryBackendGetFields();
|
||||
payload.setId(existTradingClearingRegistry.getId());
|
||||
payload.setCompanyId(existTradingClearingRegistry.getCompanyId());
|
||||
payload.setCode(existTradingClearingRegistry.getCode());
|
||||
payload.setMoneyAccountId(existTradingClearingRegistry.getMoneyAccountId());
|
||||
payload.setDepoAaccountId(existTradingClearingRegistry.getDepoAaccountId());
|
||||
payload.setTradingClearingRegistryType(existTradingClearingRegistry.getTradingClearingRegistryType());
|
||||
payload.setTradingClearingRegistryLevel(existTradingClearingRegistry.getTradingClearingRegistryLevel());
|
||||
payload.setTradingClearingRegistryPurpose(existTradingClearingRegistry.getTradingClearingRegistryPurpose());
|
||||
payload.setStatus(existTradingClearingRegistry.getStatus());
|
||||
payload.setCreatedAt(existTradingClearingRegistry.getCreated());
|
||||
payload.setUpdatedAt(existTradingClearingRegistry.getUpdated());
|
||||
expected.setPayload(payload);
|
||||
//ACT
|
||||
perform(MockMvcRequestBuilders.get(REST_URL + existTradingClearingRegistry.getId())
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andDo(print())//output to the log request and response
|
||||
// ASSERT
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(content().json(writeValue(expected)));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link TradingClearingRegistryController#getAll()} <br>
|
||||
* Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.<br>
|
||||
* Входной запрос /registry/trading-clearing-registry/ <br>
|
||||
* Ответ CommonGetAllResponse <br>
|
||||
*/
|
||||
@Test
|
||||
void getAll() throws Exception {
|
||||
//ARRANGE
|
||||
TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry();
|
||||
existTradingClearingRegistry.setCompanyId(365L);
|
||||
existTradingClearingRegistry.setCode("99999");
|
||||
existTradingClearingRegistry.setMoneyAccountId(404L);
|
||||
existTradingClearingRegistry.setDepoAaccountId(512L);
|
||||
existTradingClearingRegistry.setTradingClearingRegistryType("RUB");
|
||||
existTradingClearingRegistry.setTradingClearingRegistryLevel("OOO ROGA I KOPITA");
|
||||
existTradingClearingRegistry.setTradingClearingRegistryPurpose("848484848484");
|
||||
existTradingClearingRegistry.setStatus("ACTV");
|
||||
existTradingClearingRegistry.setId(currentId.get());
|
||||
|
||||
//ACT and ASSERT
|
||||
checkGettingAllFromRestApi(IMDGDistributedNames.Map_TradingClearingRegistry, existTradingClearingRegistry, REST_URL);
|
||||
}
|
||||
|
||||
private void assertThrowsForNew(IAction<?> iAction) {
|
||||
assertThrows(ActionValidationException.class, () -> {
|
||||
try {
|
||||
perform(MockMvcRequestBuilders.post(REST_URL).contentType(MediaType.APPLICATION_JSON).content(writeValue(iAction)));
|
||||
} catch (Exception e) {
|
||||
Throwable rootCause = NestedExceptionUtils.getRootCause(e);
|
||||
throw rootCause != null ? rootCause : e;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private TradingClearingRegistryNewAction getTradingClearingRegistryNewAction(long id,
|
||||
Long companyId, Long moneyAccountId, Long depoAccountId, String status
|
||||
) {
|
||||
TradingClearingRegistryNewAction tradingClearingRegistryNewAction = new TradingClearingRegistryNewAction();
|
||||
tradingClearingRegistryNewAction.setCompanyId(companyId);
|
||||
tradingClearingRegistryNewAction.setMoneyAccountId(moneyAccountId);
|
||||
tradingClearingRegistryNewAction.setDepoAccountId(21239757374450030L);
|
||||
tradingClearingRegistryNewAction.setStatus(status);
|
||||
return tradingClearingRegistryNewAction;
|
||||
}
|
||||
|
||||
private TradingClearingRegistryUpdateAction getTradingClearingRegistryUpdateAction(Long id, String status) {
|
||||
TradingClearingRegistryUpdateAction tradingClearingRegistryUpdateAction = new TradingClearingRegistryUpdateAction();
|
||||
tradingClearingRegistryUpdateAction.setId(id);
|
||||
tradingClearingRegistryUpdateAction.setStatus(status);
|
||||
return tradingClearingRegistryUpdateAction;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,5 @@
|
|||
-- DB version: 3.5.0.19
|
||||
-- DATA version: 3.5.0.3
|
||||
-- DB version: 3.5.0.20
|
||||
-- DATA version: 3.5.0.4
|
||||
/* Dictionaries */
|
||||
|
||||
INSERT INTO ALLOWED_DICTIONARY(ID, CODE, NAME) values (1, 'ALWD', 'Разрешено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
|
@ -210,11 +210,11 @@ 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 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 (1, 'A', 'Владелец') 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 (3, 'C', 'Попечитель') 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;
|
||||
|
||||
|
|
@ -322,13 +322,17 @@ INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (11, 'CSPT', 'Тре
|
|||
|
||||
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 (2, 'UNCV', 'Не исполнено') 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 (3, 'FAIL', 'Не исполнено контрагентом') 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 (4, 'MNG', 'Не учитывать') 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 REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'PROC', 'К клирингу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'LIQU', 'Ликвидационный неттинг') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (7, 'POOL', 'В клиринге') 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;
|
||||
|
||||
|
|
@ -434,6 +438,8 @@ INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (47, 'GRYT', 'Сформир
|
|||
|
||||
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_DICTIONARY(ID, CODE, NAME) values (49, 'GORD', 'Формирование реестра распоряжений, направленных расчетному депозитарию') 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;
|
||||
|
|
@ -476,6 +482,12 @@ 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 SIDE_DICTIONARY(ID, CODE, NAME) values (1, 'BUY', 'Покупка') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO SIDE_DICTIONARY(ID, CODE, NAME) values (2, 'SELL', 'Продажа') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO MARKET_CODE_DICTIONARY(ID, CODE, NAME) values (1, 'BMIC', 'СПВБ: ОФЗ-ИН - Аукцион БР') 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;
|
||||
|
|
@ -658,6 +670,16 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3020, 'CMPN', 'Тип
|
|||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3021, 'CMPN', 'Тип контакта компании %s не может быть изменен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3022, 'CMPN', 'ТКР с кодом %s не найден.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3023, 'CMPN', 'Счет %s не найден.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3024, 'CMPN', 'Договорные отношения %s в секции МКР уже созданы.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3025, 'CMPN', 'Договорные отношения %s на фондовой секции уже созданы.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3026, 'CMPN', 'Запись о договорных отношениях не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (4000, 'RPRT', 'Общая ошибка модуля report-serivce.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5000, 'ACNT', 'Общая ошибка модуля account-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
|
@ -680,11 +702,17 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5011, 'ACNT', 'Сче
|
|||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5012, 'ACNT', 'Счет %s неактивен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5013, 'ACNT', 'Компания не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5013, 'ACNT', 'Компания %s не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5014, 'ACNT', 'Компания неактивна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5014, 'ACNT', 'Компания %s неактивна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5015, 'ACNT', 'Для Компании %s уже создан информационный счет %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5015, 'ACNT', 'Для компании %s уже создан информационный счет %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5016, 'ACNT', 'Для Компании %s уже создан ТКР %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5017, 'ACNT', 'Для Компании %s отсутствует счет ДЕПО.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5018, 'ACNT', 'Для Компании %s отсутствует денежный счет.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5200, 'BLNC', 'Общая ошибка модуля balance-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
|
|
@ -700,7 +728,7 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5214, 'BLNC', 'Заг
|
|||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5215, 'BLNC', 'Загрузка остатков возможна только по рынку МКР.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5216, 'BLNC', 'Загрузка остатков возможна только по собственным счетам.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5216, 'BLNC', 'Загрузка остатков возможна только по собственным или клиентским счетам.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5217, 'BLNC', 'Счет %s не найден.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
|
|
@ -748,7 +776,7 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5416, 'CLRN', 'Инс
|
|||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5417, 'CLRN', 'Инструмент %s неактивен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5418, 'CLRN', 'Торгово-клиринговый регистр %s не найден.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5418, 'CLRN', 'Торгово-клиринговый регистр %s не найден для компании %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5419, 'CLRN', 'Торгово-клиринговый регистр %s неактивен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
|
|
@ -804,11 +832,15 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (9005, 'BAPI', 'Не н
|
|||
|
||||
/* Business objects */
|
||||
|
||||
INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (1, 'АО Санкт-Петербургская Валютная Биржа', 'СПВБ', '1', '1', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS;
|
||||
INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (1, 'АО Санкт-Петербургская Валютная Биржа', 'СПВБ', '', '', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS;
|
||||
|
||||
INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (2, 'НКО ЗАО «Петербургский Расчетный Центр»', 'НКО АО ПРЦ', '2', '2', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS;
|
||||
INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (2, 'ЗАО «Петербургский Расчетный Центр»', 'ПРЦ', '', '', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS;
|
||||
|
||||
INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (3, 'Торговая организация', 'ТС', '3', '3', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS;
|
||||
INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (3, 'Торговая организация', 'ТС', '', '', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS;
|
||||
|
||||
INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (4, 'ЗАО «Санкт-Петербургский Расчетно-Депозитарный Центр»', 'РДЦ', '', '', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS;
|
||||
|
||||
INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (5, 'Центральный Банк Российской Федерации', 'ЦБ РФ', '', '', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS;
|
||||
|
||||
INSERT INTO COMPANY_SYMBOLS(ID, COMPANY_ID, COMPANY_SYMBOL, COMPANY_SYMBOL_VALUE) values (1, 1, 'BIC', '044030920') ON CONFLICT (ID) DO UPDATE SET COMPANY_ID = EXCLUDED.COMPANY_ID, COMPANY_SYMBOL = EXCLUDED.COMPANY_SYMBOL, COMPANY_SYMBOL_VALUE = EXCLUDED.COMPANY_SYMBOL_VALUE;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
-- DB version: 3.5.0.19
|
||||
-- DB version: 3.5.0.20
|
||||
/* Dictionaries */
|
||||
|
||||
-- allowed - Справочник признаков допустимости использования объектов
|
||||
|
|
@ -465,10 +465,10 @@ COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.CODE IS 'Код';
|
|||
|
||||
COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.NAME IS 'Наименование';
|
||||
|
||||
-- moneyFlowSide - Справочник направлений
|
||||
-- moneyFlowSide - Справочник направлений денежного рынка
|
||||
DROP TABLE IF EXISTS MONEY_FLOW_SIDE_DICTIONARY;
|
||||
CREATE TABLE MONEY_FLOW_SIDE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255));
|
||||
COMMENT ON TABLE MONEY_FLOW_SIDE_DICTIONARY IS 'Справочник направлений';
|
||||
COMMENT ON TABLE MONEY_FLOW_SIDE_DICTIONARY IS 'Справочник направлений денежного рынка';
|
||||
|
||||
COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.ID IS 'Идентификатор';
|
||||
|
||||
|
|
@ -476,6 +476,28 @@ COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.CODE IS 'Код';
|
|||
|
||||
COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.NAME IS 'Значение';
|
||||
|
||||
-- side - Справочник направлений
|
||||
DROP TABLE IF EXISTS SIDE_DICTIONARY;
|
||||
CREATE TABLE SIDE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255));
|
||||
COMMENT ON TABLE SIDE_DICTIONARY IS 'Справочник направлений';
|
||||
|
||||
COMMENT ON COLUMN SIDE_DICTIONARY.ID IS 'Идентификатор';
|
||||
|
||||
COMMENT ON COLUMN SIDE_DICTIONARY.CODE IS 'Код';
|
||||
|
||||
COMMENT ON COLUMN SIDE_DICTIONARY.NAME IS 'Значение';
|
||||
|
||||
-- marketCode - Справочник кодов рынков
|
||||
DROP TABLE IF EXISTS MARKET_CODE_DICTIONARY;
|
||||
CREATE TABLE MARKET_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255));
|
||||
COMMENT ON TABLE MARKET_CODE_DICTIONARY IS 'Справочник кодов рынков';
|
||||
|
||||
COMMENT ON COLUMN MARKET_CODE_DICTIONARY.ID IS 'Идентификатор';
|
||||
|
||||
COMMENT ON COLUMN MARKET_CODE_DICTIONARY.CODE IS 'Код';
|
||||
|
||||
COMMENT ON COLUMN MARKET_CODE_DICTIONARY.NAME IS 'Значение';
|
||||
|
||||
-- chargeDirection - Направление начисления комиссии
|
||||
DROP TABLE IF EXISTS CHARGE_DIRECTION_DICTIONARY;
|
||||
CREATE TABLE CHARGE_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50));
|
||||
|
|
@ -1438,7 +1460,7 @@ COMMENT ON COLUMN MARKET.EXCHANGE_ID IS 'Идентификатор площад
|
|||
|
||||
COMMENT ON COLUMN MARKET.NAME IS 'Наименование рынка';
|
||||
|
||||
COMMENT ON COLUMN MARKET.CODE IS 'Код рынка';
|
||||
COMMENT ON COLUMN MARKET.CODE IS 'Код рынка (linked to marketCode)';
|
||||
|
||||
COMMENT ON COLUMN MARKET.SETTLEMENT_CURRENCY IS 'Код валюты расчета (linked to currencyCode)';
|
||||
|
||||
|
|
@ -1466,7 +1488,7 @@ COMMENT ON COLUMN MARKET_HISTORY.EXCHANGE_ID IS 'Идентификатор пл
|
|||
|
||||
COMMENT ON COLUMN MARKET_HISTORY.NAME IS 'Наименование рынка';
|
||||
|
||||
COMMENT ON COLUMN MARKET_HISTORY.CODE IS 'Код рынка';
|
||||
COMMENT ON COLUMN MARKET_HISTORY.CODE IS 'Код рынка (linked to marketCode)';
|
||||
|
||||
COMMENT ON COLUMN MARKET_HISTORY.SETTLEMENT_CURRENCY IS 'Код валюты расчета (linked to currencyCode)';
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
package ru.clearing.platform.dictionary;
|
||||
|
||||
/**
|
||||
* Справочник кодов рынков
|
||||
*
|
||||
* Dictionary DB table: MARKET_CODE_DICTIONARY
|
||||
**/
|
||||
public class MarketCodeDictionary extends AbstractDictionary {
|
||||
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package ru.clearing.platform.dictionary;
|
||||
|
||||
/**
|
||||
* Направление заявки
|
||||
* Справочник направлений денежного рынка
|
||||
*
|
||||
* Dictionary DB table: MONEY_FLOW_SIDE_DICTIONARY
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
package ru.clearing.platform.dictionary;
|
||||
|
||||
/**
|
||||
* Справочник направлений
|
||||
*
|
||||
* Dictionary DB table: SIDE_DICTIONARY
|
||||
**/
|
||||
public class SideDictionary extends AbstractDictionary {
|
||||
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package ru.spcex.clearing.imdg.dictionary;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.platform.dictionary.MarketCodeDictionary;
|
||||
import ru.spcex.clearing.imdg.base.DictionaryTMapStore;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
||||
@Component
|
||||
public class MarketCodeDictionaryMapStore extends DictionaryTMapStore<MarketCodeDictionary> {
|
||||
|
||||
public MarketCodeDictionaryMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapName() {
|
||||
return IMDGDistributedNames.Map_MarketCodeDictionary;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "MARKET_CODE_DICTIONARY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public MarketCodeDictionary getDictionaryObject() {
|
||||
return new MarketCodeDictionary();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package ru.spcex.clearing.imdg.dictionary;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.platform.dictionary.SideDictionary;
|
||||
import ru.spcex.clearing.imdg.base.DictionaryTMapStore;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
||||
@Component
|
||||
public class SideDictionaryMapStore extends DictionaryTMapStore<SideDictionary> {
|
||||
|
||||
public SideDictionaryMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapName() {
|
||||
return IMDGDistributedNames.Map_SideDictionary;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "SIDE_DICTIONARY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public SideDictionary getDictionaryObject() {
|
||||
return new SideDictionary();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -213,6 +213,7 @@ public class RunnableMapNamesForTesting {
|
|||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ManagementJournalStatusDictionary, ManagementJournalStatusDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ManagementJournalTypeDictionary, ManagementJournalTypeDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_MoneyFlowSideDictionary, MoneyFlowSideDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_MarketCodeDictionary, MarketCodeDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_OperationStatusDictionary, OperationStatusDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_OperationTypeDictionary, OperationTypeDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_OrganizationTypeDictionary, OrganizationTypeDictionary.class));
|
||||
|
|
@ -224,6 +225,7 @@ public class RunnableMapNamesForTesting {
|
|||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ServiceProductDictionary, ServiceProductDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_StatementTypeDictionary, StatementTypeDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_SideDictionary, SideDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_TaskDictionary, TaskDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_TaskStatusDictionary, TaskStatusDictionary.class));
|
||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_TermTypeDictionary, TermTypeDictionary.class));
|
||||
|
|
|
|||
|
|
@ -8,14 +8,28 @@ public enum Task implements IEnumKey {
|
|||
additionOrDeleteOfBalance("ADBL"),//Дозачисление/списание остатков
|
||||
getOfTrades("GTRD"),//Получение сделок из Торговой системы
|
||||
getVerification("GVER"),// Запуск сверки
|
||||
getBalance("GBLD"),// Поступление средств
|
||||
@Deprecated /* todo GBLD удаляется по CLS-267, CLS-275 */ getBalance("GBLD"),// Поступление средств
|
||||
startOfClearing("SCLR"),// Запуск клиринговой сессии
|
||||
startOfPreClearing("SPRC"),// Запуск преклиринга
|
||||
startPostClearing("SPOC"),// Запуск постклиринга
|
||||
createOrder("CORD"),
|
||||
createOrderConfirm("CORC"),
|
||||
getAllBalance("GALB"),
|
||||
createReport_GREP("GREP");// Создание отчёта (report-service) RPRT нескольких видов, этот GREP
|
||||
createReport_GREP("GREP"), // Создание отчёта (report-service) RPRT нескольких видов, этот GREP
|
||||
unloadingSession_LIMM("LIMM"),//Выгрузка в торговую систему остатков секции МКР
|
||||
unloadingSession_LIMF("LIMF"),//Выгрузка в торговую систему остатков Фондовой секции
|
||||
liquidationSession_LIQU("LIQU"),//Ликвидационная сессия по обязательтсвам участника
|
||||
startSession_STRM("STRM"),//Начало торговой сессии секции МКР
|
||||
terminationSession_ETRM("ETRM"),//Завершение торговой сессии секции МКР
|
||||
startSession_SIPO("SIPO"),//Начало торговой сессии по первичным торгам
|
||||
terminationSession_EIPO("EIPO"),//Завершение торговой сессии по первичным торгам
|
||||
startSession_STRF("STRF"),//Начало торговой сессии по вторичным торгам
|
||||
terminationSession_ETRF("ETRF"),//Завершение торговой сессии по вторичным торгам
|
||||
reconciliationRequest_RCHK("RCHK"),//Запрос на сверку активов
|
||||
createRegistry_GRYT("GRYT"),//Сформировать регистр на текущий день
|
||||
createRegistry_GRRT("GRRT"),//Сформировать реестр на текущий день
|
||||
createRegistry_GORD("GORD"), // Формирование реестра распоряжений, направленных расчетному депозитарию
|
||||
;
|
||||
|
||||
private final String key;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package ru.spcex.platform.enumeration;
|
||||
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
|
||||
public enum TradingClearingRegistryType implements IEnumKey {
|
||||
Owner_A("A"), // Владелец
|
||||
Client_B("B"), // Клиентский
|
||||
Trustee_C("C"), // Попечитель
|
||||
TrusteeManager_D("D"), // Доверительный управляющий
|
||||
Issuer_E("E"), // Эмитент
|
||||
ToThePlacementOrRedeem_Z("Z"), // К размещению/выкупу
|
||||
DepoBond_H("H"), // Депо по учету облигаций
|
||||
DepoOfShares_T("T"), // Депо по учету акций
|
||||
DepoOfTrustedBond_N("N"), // Депо по учету облигаций с попечителем
|
||||
DepoOfTrustedShares_S("S"), // Депо по учету акций с попечителем
|
||||
;
|
||||
|
||||
private final String key;
|
||||
|
||||
TradingClearingRegistryType(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
|
|
@ -153,6 +153,8 @@ public final class IMDGDistributedNames {
|
|||
public static final String Map_BalanceDimensionDictionary = "Map_BalanceDimensionDictionary";
|
||||
public static final String Map_DepoAccountTypeDictionary = "Map_DepoAccountTypeDictionary";
|
||||
public static final String Map_ClearingAccountTypeDictionary = "Map_ClearingAccountTypeDictionary";
|
||||
public static final String Map_SideDictionary = "Map_SideDictionary";
|
||||
public static final String Map_MarketCodeDictionary = "Map_MarketCodeDictionary";
|
||||
public static final String Map_ClientCode = "Map_ClientCode";
|
||||
public static final String Map_ClientCodeHistory = "Map_ClientCodeHistory";
|
||||
public static final String Map_TradingClearingRegistry = "Map_TradingClearingRegistry";
|
||||
|
|
|
|||
|
|
@ -65,6 +65,14 @@ public interface Consts {
|
|||
String DESTINATION_PROFILE_DOCUMENT_UPDATE = "profile-document-update";
|
||||
String DESTINATION_PROFILE_DOCUMENT_DELETE = "profile-document-delete";
|
||||
|
||||
String DESTINATION_CLIENT_CODE_NEW = "client-code-new";
|
||||
String DESTINATION_CLIENT_CODE_UPDATE = "client-code-update";
|
||||
String DESTINATION_CLIENT_CODE_DELETE = "client-code-delete";
|
||||
|
||||
String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new";
|
||||
String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update";
|
||||
String DESTINATION_TRADING_CLEARING_REGISTRY_DELETE = "trading-clearing-registry-delete";
|
||||
|
||||
String DESTINATION_SDF08_NEW = "s-df-08-new";
|
||||
String DESTINATION_SDF02_NEW = "s-df-02-new";
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,66 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.account;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class ClientCodeNewRequest {
|
||||
@JsonProperty
|
||||
private Long companyId;
|
||||
@JsonProperty
|
||||
private String code;
|
||||
@JsonProperty
|
||||
private Long tradingClearingRegistryId;
|
||||
@JsonProperty
|
||||
private Long moneyAccountId;
|
||||
@JsonProperty
|
||||
private Long depoAccountId;
|
||||
@JsonProperty
|
||||
private String status;
|
||||
|
||||
public Long getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
||||
public void setCompanyId(Long companyId) {
|
||||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public Long getTradingClearingRegistryId() {
|
||||
return tradingClearingRegistryId;
|
||||
}
|
||||
|
||||
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
|
||||
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
||||
}
|
||||
|
||||
public Long getMoneyAccountId() {
|
||||
return moneyAccountId;
|
||||
}
|
||||
|
||||
public void setMoneyAccountId(Long moneyAccountId) {
|
||||
this.moneyAccountId = moneyAccountId;
|
||||
}
|
||||
|
||||
public Long getDepoAccountId() {
|
||||
return depoAccountId;
|
||||
}
|
||||
|
||||
public void setDepoAccountId(Long depoAccountId) {
|
||||
this.depoAccountId = depoAccountId;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.account;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class ClientCodeUpdateRequest {
|
||||
@JsonProperty
|
||||
public Long id; //Идентификатор записи
|
||||
@JsonProperty
|
||||
private Long companyId;
|
||||
@JsonProperty
|
||||
private String code;
|
||||
@JsonProperty
|
||||
private Long tradingClearingRegistryId;
|
||||
@JsonProperty
|
||||
private Long moneyAccountId;
|
||||
@JsonProperty
|
||||
private Long depoAccountId;
|
||||
@JsonProperty
|
||||
private String status;
|
||||
|
||||
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 getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public Long getTradingClearingRegistryId() {
|
||||
return tradingClearingRegistryId;
|
||||
}
|
||||
|
||||
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
|
||||
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
||||
}
|
||||
|
||||
public Long getMoneyAccountId() {
|
||||
return moneyAccountId;
|
||||
}
|
||||
|
||||
public void setMoneyAccountId(Long moneyAccountId) {
|
||||
this.moneyAccountId = moneyAccountId;
|
||||
}
|
||||
|
||||
public Long getDepoAccountId() {
|
||||
return depoAccountId;
|
||||
}
|
||||
|
||||
public void setDepoAccountId(Long depoAccountId) {
|
||||
this.depoAccountId = depoAccountId;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class TradingClearingRegistryNewRequest {
|
||||
@JsonProperty
|
||||
private Long companyId;
|
||||
@JsonProperty
|
||||
private Long moneyAccountId;
|
||||
@JsonProperty
|
||||
private Long depoAccountId;
|
||||
@JsonProperty
|
||||
private String status;
|
||||
|
||||
public Long getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
||||
public void setCompanyId(Long companyId) {
|
||||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public Long getMoneyAccountId() {
|
||||
return moneyAccountId;
|
||||
}
|
||||
|
||||
public void setMoneyAccountId(Long moneyAccountId) {
|
||||
this.moneyAccountId = moneyAccountId;
|
||||
}
|
||||
|
||||
public Long getDepoAccountId() {
|
||||
return depoAccountId;
|
||||
}
|
||||
|
||||
public void setDepoAccountId(Long depoAccountId) {
|
||||
this.depoAccountId = depoAccountId;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class TradingClearingRegistryUpdateRequest {
|
||||
@JsonProperty
|
||||
private Long id;
|
||||
@JsonProperty
|
||||
private String status;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue