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"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<meta version="3.5.0.3">
|
<meta version="3.5.0.4">
|
||||||
<enums>
|
<enums>
|
||||||
<allowed id="1" code="ALWD" name="Разрешено"/>
|
<allowed id="1" code="ALWD" name="Разрешено"/>
|
||||||
<allowed id="2" code="DEND" name="Запрещено"/>
|
<allowed id="2" code="DEND" name="Запрещено"/>
|
||||||
|
|
@ -106,9 +106,9 @@
|
||||||
<bondType id="6" code="I" name="Облигации с индексированным номиналом"/>
|
<bondType id="6" code="I" name="Облигации с индексированным номиналом"/>
|
||||||
<bondType id="7" code="M" 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="2" code="B" name="Клиентский"/>
|
||||||
<tradingClearingRegistryType id="3" code="С" name="Попечитель"/>
|
<tradingClearingRegistryType id="3" code="C" name="Попечитель"/>
|
||||||
<tradingClearingRegistryType id="4" code="D" name="Доверительный управляющий"/>
|
<tradingClearingRegistryType id="4" code="D" name="Доверительный управляющий"/>
|
||||||
<tradingClearingRegistryType id="5" code="E" name="Эмитент"/>
|
<tradingClearingRegistryType id="5" code="E" name="Эмитент"/>
|
||||||
<tradingClearingRegistryType id="6" code="Z" name="К размещению/выкупу"/>
|
<tradingClearingRegistryType id="6" code="Z" name="К размещению/выкупу"/>
|
||||||
|
|
@ -162,10 +162,12 @@
|
||||||
<registryCode id="10" code="LMPT" name="Обязательства по деньгам - свои"/>
|
<registryCode id="10" code="LMPT" name="Обязательства по деньгам - свои"/>
|
||||||
<registryCode id="11" code="CSPT" name="Требования по инструментам - свои"/>
|
<registryCode id="11" code="CSPT" name="Требования по инструментам - свои"/>
|
||||||
<registryStatus id="1" code="OK" name="Успешно"/>
|
<registryStatus id="1" code="OK" name="Успешно"/>
|
||||||
<registryStatus id="2" code="FAIL" name="Не успешно"/>
|
<registryStatus id="2" code="UNCV" name="Не исполнено"/>
|
||||||
<registryStatus id="3" code="MNG" name="Не учитывать"/>
|
<registryStatus id="3" code="FAIL" name="Не исполнено контрагентом"/>
|
||||||
<registryStatus id="4" code="PROC" name="К клирингу"/>
|
<registryStatus id="4" code="MNG" name="Не учитывать"/>
|
||||||
<registryStatus id="5" code="LIQU" 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="1" code="PICS" name="Штуки"/>
|
||||||
<balanceDimension id="2" code="LOTS" name="Лоты"/>
|
<balanceDimension id="2" code="LOTS" name="Лоты"/>
|
||||||
<balanceDimension id="3" code="MONY" name="Деньги"/>
|
<balanceDimension id="3" code="MONY" name="Деньги"/>
|
||||||
|
|
@ -218,6 +220,7 @@
|
||||||
<task id="46" code="RCHK" name="Запрос на сверку активов"/>
|
<task id="46" code="RCHK" name="Запрос на сверку активов"/>
|
||||||
<task id="47" code="GRYT" name="Сформировать регистр на текущий день"/>
|
<task id="47" code="GRYT" name="Сформировать регистр на текущий день"/>
|
||||||
<task id="48" code="GRRT" name="Сформировать реестр на текущий день"/>
|
<task id="48" code="GRRT" name="Сформировать реестр на текущий день"/>
|
||||||
|
<task id="49" code="GORD" name="Формирование реестра распоряжений, направленных расчетному депозитарию"/>
|
||||||
<taskStatus id="1" code="ACTV" name="Активна"/>
|
<taskStatus id="1" code="ACTV" name="Активна"/>
|
||||||
<taskStatus id="2" code="BLKD" name="Не активна"/>
|
<taskStatus id="2" code="BLKD" name="Не активна"/>
|
||||||
<taskStatus id="3" code="CNCL" name="Отмена расписания"/>
|
<taskStatus id="3" code="CNCL" name="Отмена расписания"/>
|
||||||
|
|
@ -240,6 +243,9 @@
|
||||||
<sessionType id="8" code="IPO0" name="Первичные торги B0"/>
|
<sessionType id="8" code="IPO0" name="Первичные торги B0"/>
|
||||||
<moneyFlowSide id="1" code="BUY" name="Разместить"/>
|
<moneyFlowSide id="1" code="BUY" name="Разместить"/>
|
||||||
<moneyFlowSide id="2" code="SELL" 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="ЭДО с Расчетной Организацией"/>
|
<courierType id="1" code="STHS" name="ЭДО с Расчетной Организацией"/>
|
||||||
<transactionStatus id="1" code="STLD" name="Рассчитан"/>
|
<transactionStatus id="1" code="STLD" name="Рассчитан"/>
|
||||||
|
|
@ -338,6 +344,11 @@
|
||||||
<errorCode id="3019" code="CMPN" name="Компания с %s = %s уже создана."/>
|
<errorCode id="3019" code="CMPN" name="Компания с %s = %s уже создана."/>
|
||||||
<errorCode id="3020" code="CMPN" name="Тип реквизита компании %s не может быть изменен."/>
|
<errorCode id="3020" code="CMPN" name="Тип реквизита компании %s не может быть изменен."/>
|
||||||
<errorCode id="3021" 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 -->
|
<!-- error code for report-serivce -->
|
||||||
<errorCode id="4000" code="RPRT" name="Общая ошибка модуля report-serivce."/>
|
<errorCode id="4000" code="RPRT" name="Общая ошибка модуля report-serivce."/>
|
||||||
|
|
@ -354,9 +365,12 @@
|
||||||
<errorCode id="5010" code="ACNT" name="Счет %s уже существует."/>
|
<errorCode id="5010" code="ACNT" name="Счет %s уже существует."/>
|
||||||
<errorCode id="5011" code="ACNT" name="Счет %s не найден."/>
|
<errorCode id="5011" code="ACNT" name="Счет %s не найден."/>
|
||||||
<errorCode id="5012" code="ACNT" name="Счет %s неактивен."/>
|
<errorCode id="5012" code="ACNT" name="Счет %s неактивен."/>
|
||||||
<errorCode id="5013" code="ACNT" name="Компания не найдена."/>
|
<errorCode id="5013" code="ACNT" name="Компания %s не найдена."/>
|
||||||
<errorCode id="5014" code="ACNT" name="Компания неактивна."/>
|
<errorCode id="5014" code="ACNT" name="Компания %s неактивна."/>
|
||||||
<errorCode id="5015" code="ACNT" name="Для Компании %s уже создан информационный счет %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 -->
|
<!-- error code for balance-service -->
|
||||||
<errorCode id="5200" code="BLNC" name="Общая ошибка модуля balance-service."/>
|
<errorCode id="5200" code="BLNC" name="Общая ошибка модуля balance-service."/>
|
||||||
<errorCode id="5210" code="BLNC" name="Клиринговая сессия неактивна."/>
|
<errorCode id="5210" code="BLNC" name="Клиринговая сессия неактивна."/>
|
||||||
|
|
@ -365,7 +379,7 @@
|
||||||
<errorCode id="5213" code="BLNC" name="Валюта %s не найдена."/>
|
<errorCode id="5213" code="BLNC" name="Валюта %s не найдена."/>
|
||||||
<errorCode id="5214" code="BLNC" name="Загрузка остатков возможна только на текущую дату."/>
|
<errorCode id="5214" code="BLNC" name="Загрузка остатков возможна только на текущую дату."/>
|
||||||
<errorCode id="5215" 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="5217" code="BLNC" name="Счет %s не найден."/>
|
||||||
<errorCode id="5218" code="BLNC" name="Счет %s неактивен."/>
|
<errorCode id="5218" code="BLNC" name="Счет %s неактивен."/>
|
||||||
<errorCode id="5219" code="BLNC" name="Дозачисления/списания возможны только по рынку МКР."/>
|
<errorCode id="5219" code="BLNC" name="Дозачисления/списания возможны только по рынку МКР."/>
|
||||||
|
|
@ -390,7 +404,7 @@
|
||||||
<errorCode id="5415" code="CLRN" name="Счет %s неактивен."/>
|
<errorCode id="5415" code="CLRN" name="Счет %s неактивен."/>
|
||||||
<errorCode id="5416" code="CLRN" name="Инструмент %s не найден."/>
|
<errorCode id="5416" code="CLRN" name="Инструмент %s не найден."/>
|
||||||
<errorCode id="5417" 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 неактивен."/>
|
<errorCode id="5419" code="CLRN" name="Торгово-клиринговый регистр %s неактивен."/>
|
||||||
<!-- error code for dbf-importer -->
|
<!-- error code for dbf-importer -->
|
||||||
<errorCode id="5600" code="DBFI" name="Общая ошибка модуля dbf-importer."/>
|
<errorCode id="5600" code="DBFI" name="Общая ошибка модуля dbf-importer."/>
|
||||||
|
|
@ -430,9 +444,11 @@
|
||||||
|
|
||||||
</enums>
|
</enums>
|
||||||
<objects>
|
<objects>
|
||||||
<company id="1" fullName="АО Санкт-Петербургская Валютная Биржа" shortName="СПВБ" tradingCode="1" clearingCode="1" workflowStatus="ACTV"/>
|
<company id="1" fullName="АО Санкт-Петербургская Валютная Биржа" shortName="СПВБ" tradingCode="" clearingCode="" workflowStatus="ACTV"/>
|
||||||
<company id="2" fullName="НКО ЗАО «Петербургский Расчетный Центр»" shortName="НКО АО ПРЦ" tradingCode="2" clearingCode="2" workflowStatus="ACTV"/>
|
<company id="2" fullName="ЗАО «Петербургский Расчетный Центр»" shortName="ПРЦ" tradingCode="" clearingCode="" workflowStatus="ACTV"/>
|
||||||
<company id="3" fullName="Торговая организация" shortName="ТС" tradingCode="3" clearingCode="3" 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="1" companyId="1" companySymbol="BIC" companySymbolValue="044030920"/>
|
||||||
<companySymbols id="2" companyId="2" companySymbol="BIC" companySymbolValue="044030505"/>
|
<companySymbols id="2" companyId="2" companySymbol="BIC" companySymbolValue="044030505"/>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!--?xml-stylesheet type="text/xsl" href="\..\corp-reports\src\data\meta\meta.server.xslt"?-->
|
<!--?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" -->
|
<!-- _xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _xsi:noNamespaceSchemaLocation="file:///E:/d/projects/meta/from/meta.xsd" -->
|
||||||
<!--Здесь словари-->
|
<!--Здесь словари-->
|
||||||
<enums>
|
<enums>
|
||||||
|
|
@ -217,11 +217,21 @@
|
||||||
<code name="Код" shortname="Код" type="12"/>
|
<code name="Код" shortname="Код" type="12"/>
|
||||||
<name name="Наименование" shortname="Наименование" type="2" length="50"/>
|
<name name="Наименование" shortname="Наименование" type="2" length="50"/>
|
||||||
</sessionType>
|
</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"/>
|
<id name="Идентификатор" shortname="ID" type="1"/>
|
||||||
<code name="Код" shortname="Код" type="12"/>
|
<code name="Код" shortname="Код" type="12"/>
|
||||||
<name name="Значение" shortname="Значение" type="2" length="255"/>
|
<name name="Значение" shortname="Значение" type="2" length="255"/>
|
||||||
</moneyFlowSide>
|
</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">
|
<chargeDirection name="Направление начисления комиссии" class="ru.clearing.platform.dictionary.ChargeDirectionDictionary" table="charge_direction_dictionary">
|
||||||
<id name="Идентификатор" shortname="ID" type="1"/>
|
<id name="Идентификатор" shortname="ID" type="1"/>
|
||||||
|
|
@ -749,7 +759,7 @@
|
||||||
<description type="2" length="255" name="Описание" shortname="Описание" searchable="true" sortable="true"/>
|
<description type="2" length="255" name="Описание" shortname="Описание" searchable="true" sortable="true"/>
|
||||||
<exchangeId type="1" dbname="Идентификатор площадки" name="Наименование площадки" shortname="Площадка" searchable="true" sortable="true" link="company"/>
|
<exchangeId type="1" dbname="Идентификатор площадки" name="Наименование площадки" shortname="Площадка" searchable="true" sortable="true" link="company"/>
|
||||||
<name type="2" length="255" name="Наименование рынка" shortname="Рынок" searchable="true" sortable="true"/>
|
<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"/>
|
<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"/>
|
<section type="12" dbname="Код секции" name="Наименование секции" shortname="Секция" searchable="true" sortable="true" visible="true" link="section"/>
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||||
|
|
@ -1187,6 +1197,8 @@
|
||||||
</post>
|
</post>
|
||||||
<post destination="GRRT" group="Клиринг" name="Сформировать реестр на текущий день">
|
<post destination="GRRT" group="Клиринг" name="Сформировать реестр на текущий день">
|
||||||
</post>
|
</post>
|
||||||
|
<post destination="GORD" group="Клиринг" name="Формирование реестра распоряжений, направленных расчетному депозитарию">
|
||||||
|
</post>
|
||||||
</actions>
|
</actions>
|
||||||
</launcher>
|
</launcher>
|
||||||
|
|
||||||
|
|
@ -1281,7 +1293,7 @@
|
||||||
<updatedAt field="updated" 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"/>
|
||||||
<clearingDate type="6" name="Дата клиринга" shortname="Дата клиринга" visible="false" searchable="true" sortable="true"/>
|
<clearingDate type="6" name="Дата клиринга" shortname="Дата клиринга" visible="false" searchable="true" sortable="true"/>
|
||||||
</executionDeposit>
|
</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"/>
|
<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"/>
|
<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"/>
|
<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.account.*;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.company.*;
|
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.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.InDocumentJournalController;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.journal.ManagementJournalController;
|
import ru.spcex.clearing.backendapi.controller.queue.journal.ManagementJournalController;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.journal.OutDocumentJournalController;
|
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.misc.*;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.payment.PaymentInstructionController;
|
import ru.spcex.clearing.backendapi.controller.queue.payment.PaymentInstructionController;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.register.*;
|
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.scheduler.*;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.securities.*;
|
import ru.spcex.clearing.backendapi.controller.queue.securities.*;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.user.UserController;
|
import ru.spcex.clearing.backendapi.controller.queue.user.UserController;
|
||||||
|
|
@ -88,6 +90,8 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi
|
||||||
BankAccountController.class,
|
BankAccountController.class,
|
||||||
ClearingAccountController.class,
|
ClearingAccountController.class,
|
||||||
DepoAccountController.class,
|
DepoAccountController.class,
|
||||||
|
//account misc
|
||||||
|
ClientCodeController.class,
|
||||||
//company
|
//company
|
||||||
CompanyRoleSetController.class,
|
CompanyRoleSetController.class,
|
||||||
CompanyController.class,
|
CompanyController.class,
|
||||||
|
|
@ -99,6 +103,7 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi
|
||||||
RelationController.class,
|
RelationController.class,
|
||||||
//execution
|
//execution
|
||||||
ExecutionDepositController.class,
|
ExecutionDepositController.class,
|
||||||
|
ExecutionFondController.class,
|
||||||
//journal
|
//journal
|
||||||
InDocumentJournalController.class,
|
InDocumentJournalController.class,
|
||||||
ManagementJournalController.class,
|
ManagementJournalController.class,
|
||||||
|
|
@ -125,6 +130,8 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi
|
||||||
OrderRegisterController.class,
|
OrderRegisterController.class,
|
||||||
ReportRegisterController.class,
|
ReportRegisterController.class,
|
||||||
UncoveredDealRegisterController.class,
|
UncoveredDealRegisterController.class,
|
||||||
|
//registry
|
||||||
|
TradingClearingRegistryController.class,
|
||||||
//scheduler
|
//scheduler
|
||||||
ClearingCalendarController.class,
|
ClearingCalendarController.class,
|
||||||
LauncherController.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
|
-- DB version: 3.5.0.20
|
||||||
-- DATA version: 3.5.0.3
|
-- DATA version: 3.5.0.4
|
||||||
/* Dictionaries */
|
/* Dictionaries */
|
||||||
|
|
||||||
INSERT INTO ALLOWED_DICTIONARY(ID, CODE, NAME) values (1, 'ALWD', 'Разрешено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
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 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 (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;
|
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 (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;
|
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 (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 (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;
|
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 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 COURIER_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STHS', 'ЭДО с Расчетной Организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||||
|
|
||||||
INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'STLD', 'Рассчитан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (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 (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 (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;
|
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 (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;
|
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 (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;
|
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 (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;
|
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 */
|
/* 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;
|
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 */
|
/* Dictionaries */
|
||||||
|
|
||||||
-- allowed - Справочник признаков допустимости использования объектов
|
-- allowed - Справочник признаков допустимости использования объектов
|
||||||
|
|
@ -465,10 +465,10 @@ COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.CODE IS 'Код';
|
||||||
|
|
||||||
COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.NAME IS 'Наименование';
|
COMMENT ON COLUMN SESSION_TYPE_DICTIONARY.NAME IS 'Наименование';
|
||||||
|
|
||||||
-- moneyFlowSide - Справочник направлений
|
-- moneyFlowSide - Справочник направлений денежного рынка
|
||||||
DROP TABLE IF EXISTS MONEY_FLOW_SIDE_DICTIONARY;
|
DROP TABLE IF EXISTS MONEY_FLOW_SIDE_DICTIONARY;
|
||||||
CREATE TABLE MONEY_FLOW_SIDE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255));
|
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 'Идентификатор';
|
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 'Значение';
|
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 - Направление начисления комиссии
|
-- chargeDirection - Направление начисления комиссии
|
||||||
DROP TABLE IF EXISTS CHARGE_DIRECTION_DICTIONARY;
|
DROP TABLE IF EXISTS CHARGE_DIRECTION_DICTIONARY;
|
||||||
CREATE TABLE CHARGE_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50));
|
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.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)';
|
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.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)';
|
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;
|
package ru.clearing.platform.dictionary;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Направление заявки
|
* Справочник направлений денежного рынка
|
||||||
*
|
*
|
||||||
* Dictionary DB table: MONEY_FLOW_SIDE_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_ManagementJournalStatusDictionary, ManagementJournalStatusDictionary.class));
|
||||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ManagementJournalTypeDictionary, ManagementJournalTypeDictionary.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_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_OperationStatusDictionary, OperationStatusDictionary.class));
|
||||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_OperationTypeDictionary, OperationTypeDictionary.class));
|
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_OperationTypeDictionary, OperationTypeDictionary.class));
|
||||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_OrganizationTypeDictionary, OrganizationTypeDictionary.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_ServiceProductDictionary, ServiceProductDictionary.class));
|
||||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.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_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_TaskDictionary, TaskDictionary.class));
|
||||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_TaskStatusDictionary, TaskStatusDictionary.class));
|
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_TaskStatusDictionary, TaskStatusDictionary.class));
|
||||||
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_TermTypeDictionary, TermTypeDictionary.class));
|
dictionaryObjectForCheckMapStores.add(new DictionaryObjectForCheckMapStore<>(IMDGDistributedNames.Map_TermTypeDictionary, TermTypeDictionary.class));
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,28 @@ public enum Task implements IEnumKey {
|
||||||
additionOrDeleteOfBalance("ADBL"),//Дозачисление/списание остатков
|
additionOrDeleteOfBalance("ADBL"),//Дозачисление/списание остатков
|
||||||
getOfTrades("GTRD"),//Получение сделок из Торговой системы
|
getOfTrades("GTRD"),//Получение сделок из Торговой системы
|
||||||
getVerification("GVER"),// Запуск сверки
|
getVerification("GVER"),// Запуск сверки
|
||||||
getBalance("GBLD"),// Поступление средств
|
@Deprecated /* todo GBLD удаляется по CLS-267, CLS-275 */ getBalance("GBLD"),// Поступление средств
|
||||||
startOfClearing("SCLR"),// Запуск клиринговой сессии
|
startOfClearing("SCLR"),// Запуск клиринговой сессии
|
||||||
startOfPreClearing("SPRC"),// Запуск преклиринга
|
startOfPreClearing("SPRC"),// Запуск преклиринга
|
||||||
startPostClearing("SPOC"),// Запуск постклиринга
|
startPostClearing("SPOC"),// Запуск постклиринга
|
||||||
createOrder("CORD"),
|
createOrder("CORD"),
|
||||||
createOrderConfirm("CORC"),
|
createOrderConfirm("CORC"),
|
||||||
getAllBalance("GALB"),
|
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;
|
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_BalanceDimensionDictionary = "Map_BalanceDimensionDictionary";
|
||||||
public static final String Map_DepoAccountTypeDictionary = "Map_DepoAccountTypeDictionary";
|
public static final String Map_DepoAccountTypeDictionary = "Map_DepoAccountTypeDictionary";
|
||||||
public static final String Map_ClearingAccountTypeDictionary = "Map_ClearingAccountTypeDictionary";
|
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_ClientCode = "Map_ClientCode";
|
||||||
public static final String Map_ClientCodeHistory = "Map_ClientCodeHistory";
|
public static final String Map_ClientCodeHistory = "Map_ClientCodeHistory";
|
||||||
public static final String Map_TradingClearingRegistry = "Map_TradingClearingRegistry";
|
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_UPDATE = "profile-document-update";
|
||||||
String DESTINATION_PROFILE_DOCUMENT_DELETE = "profile-document-delete";
|
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_SDF08_NEW = "s-df-08-new";
|
||||||
String DESTINATION_SDF02_NEW = "s-df-02-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