backend-api account-service http://jira.mfd.msk:8088/browse/CLS-631 изменение API для TradingClearingRegistryList
This commit is contained in:
parent
8305137de5
commit
97bdf20975
10 changed files with 172 additions and 123 deletions
|
|
@ -14,12 +14,14 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
import ru.spcex.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.AccountType;
|
||||||
|
import ru.spcex.platform.enumeration.ServiceStatus;
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||||
|
|
@ -43,15 +45,15 @@ public class TradingClearingRegistryListValidationConfig {
|
||||||
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry);
|
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary);
|
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
IdPresentRule.instance("id",
|
IdPresentRule.instance("tradingClearingRegistryId",
|
||||||
TradingClearingRegistryListNewRequest::getTradingClearingRegistryId,
|
TradingClearingRegistryListNewRequest::getTradingClearingRegistryId,
|
||||||
IMDGDistributedNames.Map_TradingClearingRegistry,
|
IMDGDistributedNames.Map_TradingClearingRegistry,
|
||||||
TradingClearingRegistry.class,
|
TradingClearingRegistry.class,
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.RequiredFieldEmpty,
|
||||||
AccountError.TradingClearingRegistryNotFound,
|
AccountError.TradingClearingRegistryNotFound,
|
||||||
false),
|
false),
|
||||||
new ExistAllCurrencyAccountId<>("currencyAccountList",
|
new ExistAllCurrencyAccountId<>("accountId",
|
||||||
TradingClearingRegistryListNewRequest::getCurrencyAccountList,
|
TradingClearingRegistryListNewRequest::getAccountId,
|
||||||
false,
|
false,
|
||||||
null),
|
null),
|
||||||
DictionaryPresentRule.instance("stauts",
|
DictionaryPresentRule.instance("stauts",
|
||||||
|
|
@ -60,7 +62,7 @@ public class TradingClearingRegistryListValidationConfig {
|
||||||
ServiceStatusDictionary.class,
|
ServiceStatusDictionary.class,
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.RequiredFieldEmpty,
|
||||||
AccountError.DictionaryNotFound,
|
AccountError.DictionaryNotFound,
|
||||||
true)
|
false)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -76,19 +78,36 @@ public class TradingClearingRegistryListValidationConfig {
|
||||||
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry);
|
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary);
|
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary);
|
||||||
return new ValidatorImpl<ImdgValidationContext<TradingClearingRegistryListUpdateRequest>>(context,
|
return new ValidatorImpl<ImdgValidationContext<TradingClearingRegistryListUpdateRequest>>(context,
|
||||||
IdPresentRule.instance("id",
|
IdPresentRule.instance2("id",
|
||||||
TradingClearingRegistryListUpdateRequest::getTradingClearingRegistryId,
|
TradingClearingRegistryListUpdateRequest::getTradingClearingRegistryId,
|
||||||
IMDGDistributedNames.Map_TradingClearingRegistry,
|
IMDGDistributedNames.Map_TradingClearingRegistryList,
|
||||||
TradingClearingRegistry.class,
|
TradingClearingRegistryList.class,
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.RequiredFieldEmpty,
|
||||||
AccountError.TradingClearingRegistryNotFound,
|
AccountError.TradingClearingRegistryNotFound,
|
||||||
false),
|
true,
|
||||||
new ExistAllCurrencyAccountId<>("currencyAccountList",
|
(tcrList)-> {
|
||||||
TradingClearingRegistryListUpdateRequest::getCurrencyAccountList,
|
Long accountId = tcrList.getAccountId();
|
||||||
false,
|
if (accountId==null)
|
||||||
TradingClearingRegistryListUpdateRequest::getId
|
return null;
|
||||||
),
|
if (!IEnumKey.contains(context.getValidatedObject().getStatus(), ServiceStatus.Active, ServiceStatus.Reopened))
|
||||||
DictionaryPresentRule.instance("stauts",
|
return null;
|
||||||
|
|
||||||
|
Imdg<TradingClearingRegistryList> tradingClearingRegistryListImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistryList, TradingClearingRegistryList.class);
|
||||||
|
ImdgPredicateBuilder pb = tradingClearingRegistryListImdg.predicateBuilder();
|
||||||
|
ImdgPredicate query = pb.and(pb.equals("status", WorkflowStatus.Active.getKey()),
|
||||||
|
pb.equals("accountId", accountId));
|
||||||
|
query = pb.and(query, pb.not(pb.equals("id", tcrList.getId())));
|
||||||
|
Collection<TradingClearingRegistryList> inOtherLists = tradingClearingRegistryListImdg.getCollectionObjectsByPredicate(query);
|
||||||
|
if (!inOtherLists.isEmpty()) {
|
||||||
|
Collection<Long> duplicateAccounts = inOtherLists.stream()
|
||||||
|
.map(TradingClearingRegistryList::getAccountId)
|
||||||
|
.filter(accountId::equals)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
return new EnumMessage(AccountError.AccountForTradingClearingRegistryAlreadyUsed, duplicateAccounts, "accountId"); // (5023) «Счет %s уже используется»
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}),
|
||||||
|
DictionaryPresentRule.instance("status",
|
||||||
TradingClearingRegistryListUpdateRequest::getStatus,
|
TradingClearingRegistryListUpdateRequest::getStatus,
|
||||||
IMDGDistributedNames.Map_ServiceStatusDictionary,
|
IMDGDistributedNames.Map_ServiceStatusDictionary,
|
||||||
ServiceStatusDictionary.class,
|
ServiceStatusDictionary.class,
|
||||||
|
|
@ -102,13 +121,13 @@ public class TradingClearingRegistryListValidationConfig {
|
||||||
|
|
||||||
public static class ExistAllCurrencyAccountId<R> implements IValidationRule<ImdgValidationContext<R>> {
|
public static class ExistAllCurrencyAccountId<R> implements IValidationRule<ImdgValidationContext<R>> {
|
||||||
String fieldName;
|
String fieldName;
|
||||||
Function<R, List<Long>> idListGetter;
|
Function<R, Long> accountIdGetter;
|
||||||
boolean required;
|
boolean required;
|
||||||
Function<R, Long> idGetter;
|
Function<R, Long> idGetter;
|
||||||
|
|
||||||
public ExistAllCurrencyAccountId(String fieldName, Function<R, List<Long>> idListGetter, boolean required, Function<R, Long> idGetter) {
|
public ExistAllCurrencyAccountId(String fieldName, Function<R, Long> accountIdGetter, boolean required, Function<R, Long> idGetter) {
|
||||||
this.fieldName = fieldName;
|
this.fieldName = fieldName;
|
||||||
this.idListGetter = idListGetter;
|
this.accountIdGetter = accountIdGetter;
|
||||||
this.required = required;
|
this.required = required;
|
||||||
this.idGetter = idGetter;
|
this.idGetter = idGetter;
|
||||||
}
|
}
|
||||||
|
|
@ -116,8 +135,8 @@ public class TradingClearingRegistryListValidationConfig {
|
||||||
@Override
|
@Override
|
||||||
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
|
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
|
||||||
R validatedObject = context.getValidatedObject();
|
R validatedObject = context.getValidatedObject();
|
||||||
List<Long> ids = idListGetter.apply(validatedObject);
|
Long accountId = accountIdGetter.apply(validatedObject);
|
||||||
if (ids == null || ids.isEmpty()) {
|
if (accountId == null) {
|
||||||
if (required)
|
if (required)
|
||||||
return of(AccountError.RequiredFieldEmpty, fieldName); // обязательное поле
|
return of(AccountError.RequiredFieldEmpty, fieldName); // обязательное поле
|
||||||
else
|
else
|
||||||
|
|
@ -125,15 +144,12 @@ public class TradingClearingRegistryListValidationConfig {
|
||||||
}
|
}
|
||||||
Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class);
|
Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class);
|
||||||
// Проверить существование счетов
|
// Проверить существование счетов
|
||||||
for (Long id : ids) {
|
{
|
||||||
if (id == null) { // null значения в массиве не ожидаются
|
Account byIdObject = accountImdg.getSingleObjectByID(accountId);
|
||||||
return of(AccountError.RequiredFieldEmpty, fieldName);
|
|
||||||
}
|
|
||||||
Account byIdObject = accountImdg.getSingleObjectByID(id);
|
|
||||||
if (byIdObject == null)
|
if (byIdObject == null)
|
||||||
return of(AccountError.AccountNotFound, id, fieldName);
|
return of(AccountError.AccountNotFound, accountId, fieldName);
|
||||||
if (!AccountType.Curr.equalsByKey(byIdObject.getAccountType())) {
|
if (!AccountType.Curr.equalsByKey(byIdObject.getAccountType())) {
|
||||||
return of(AccountError.AccountIsNotACurrency, id, fieldName); // Счет %S не валютный
|
return of(AccountError.AccountIsNotACurrency, accountId, fieldName); // Счет %S не валютный
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -141,7 +157,7 @@ public class TradingClearingRegistryListValidationConfig {
|
||||||
Imdg<TradingClearingRegistryList> tradingClearingRegistryListImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistryList, TradingClearingRegistryList.class);
|
Imdg<TradingClearingRegistryList> tradingClearingRegistryListImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistryList, TradingClearingRegistryList.class);
|
||||||
ImdgPredicateBuilder pb = tradingClearingRegistryListImdg.predicateBuilder();
|
ImdgPredicateBuilder pb = tradingClearingRegistryListImdg.predicateBuilder();
|
||||||
ImdgPredicate query = pb.and(pb.equals("status", WorkflowStatus.Active.getKey()),
|
ImdgPredicate query = pb.and(pb.equals("status", WorkflowStatus.Active.getKey()),
|
||||||
pb.in("accountId", ids.toArray(new Comparable[0])));
|
pb.equals("accountId", accountId));
|
||||||
if (idGetter != null) {
|
if (idGetter != null) {
|
||||||
Long id = idGetter.apply(validatedObject);
|
Long id = idGetter.apply(validatedObject);
|
||||||
if (id == null) // never
|
if (id == null) // never
|
||||||
|
|
@ -152,7 +168,7 @@ public class TradingClearingRegistryListValidationConfig {
|
||||||
if (!inOtherLists.isEmpty()) {
|
if (!inOtherLists.isEmpty()) {
|
||||||
Collection<Long> duplicateAccounts = inOtherLists.stream()
|
Collection<Long> duplicateAccounts = inOtherLists.stream()
|
||||||
.map(TradingClearingRegistryList::getAccountId)
|
.map(TradingClearingRegistryList::getAccountId)
|
||||||
.filter(ids::contains)
|
.filter(accountId::equals)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
return of(AccountError.AccountForTradingClearingRegistryAlreadyUsed, duplicateAccounts, fieldName); // (5023) «Счет %s уже используется»
|
return of(AccountError.AccountForTradingClearingRegistryAlreadyUsed, duplicateAccounts, fieldName); // (5023) «Счет %s уже используется»
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -124,10 +124,12 @@ public class TradingClearingRegistryListService extends QueueConsumer implements
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestInfoUpdate tradingClearingRegistryListNew(BaseRequest<TradingClearingRegistryListNewRequest> userRequest) {
|
public RequestInfoUpdate tradingClearingRegistryListNew(BaseRequest<TradingClearingRegistryListNewRequest> userRequest) {
|
||||||
return tradingClearingRegistryListNew0(userRequest, false);
|
return tradingClearingRegistryListNew1(userRequest, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
protected RequestInfoUpdate tradingClearingRegistryListNew0(BaseRequest<TradingClearingRegistryListNewRequest> userRequest, boolean innerCall) {
|
protected RequestInfoUpdate tradingClearingRegistryListNew0(BaseRequest<TradingClearingRegistryListNewRequest> userRequest, boolean innerCall) {
|
||||||
|
// fixme объединить с путом а то лист может быть пустой. и чистить...
|
||||||
log.debug("TradingClearingRegistryListNewRequest received");
|
log.debug("TradingClearingRegistryListNewRequest received");
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
if (requestInfoUpdate != null) {
|
if (requestInfoUpdate != null) {
|
||||||
|
|
@ -194,6 +196,70 @@ public class TradingClearingRegistryListService extends QueueConsumer implements
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected RequestInfoUpdate tradingClearingRegistryListNew1(BaseRequest<TradingClearingRegistryListNewRequest> userRequest, boolean innerCall) {
|
||||||
|
log.debug("TradingClearingRegistryListNewRequest received");
|
||||||
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
|
if (requestInfoUpdate != null) {
|
||||||
|
return requestInfoUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryListNewRequestValidator);
|
||||||
|
if (requestInfoUpdate != null) {
|
||||||
|
return requestInfoUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
TradingClearingRegistryListNewRequest req = userRequest.getRequestPayload();
|
||||||
|
Instant now = Instant.now();
|
||||||
|
|
||||||
|
Long id = tradingClearingRegistryListImdg.nextIDSequenceFor();
|
||||||
|
TradingClearingRegistryList tradingClearingRegistryList = new TradingClearingRegistryList();
|
||||||
|
tradingClearingRegistryList.setId(id);
|
||||||
|
tradingClearingRegistryList.setCreated(now);
|
||||||
|
tradingClearingRegistryList.setUpdated(now);
|
||||||
|
tradingClearingRegistryList.setTradingClearingRegistryId(req.getTradingClearingRegistryId());
|
||||||
|
tradingClearingRegistryList.setAccountId(req.getAccountId());
|
||||||
|
if (req.getStatus() == null) {
|
||||||
|
tradingClearingRegistryList.setStatus(ServiceStatus.Active.getKey());
|
||||||
|
log.trace("TCRList status in request not set. Use default: {}", tradingClearingRegistryList.getStatus());
|
||||||
|
} else {
|
||||||
|
tradingClearingRegistryList.setStatus(req.getStatus());
|
||||||
|
}
|
||||||
|
tradingClearingRegistryListImdg.insert(tradingClearingRegistryList);
|
||||||
|
|
||||||
|
log.info("New TCRList.id={} has created.", id);
|
||||||
|
|
||||||
|
if (!innerCall) {
|
||||||
|
// Для каждого счета из списка (currencyAccountList) должна быть создана отдельная запись объекте clientCode с данным счетом для данного клиента, т.е. у одного клиента может быть несколько валютных счетов.
|
||||||
|
try {
|
||||||
|
TradingClearingRegistry tcr = tradingClearingRegistryImdg.getSingleObjectByID(req.getTradingClearingRegistryId());
|
||||||
|
ClientCodeNewRequest cCodeReq = new ClientCodeNewRequest();
|
||||||
|
cCodeReq.setTradingClearingRegistryId(req.getTradingClearingRegistryId());
|
||||||
|
cCodeReq.setDepoAccountId(tcr.getDepoAccountId());
|
||||||
|
cCodeReq.setMoneyAccountId(tcr.getMoneyAccountId());
|
||||||
|
cCodeReq.setCompanyId(tcr.getCompanyId());
|
||||||
|
cCodeReq.setCurrencyAccountList(Arrays.asList(req.getAccountId())); // todo rewrite API
|
||||||
|
cCodeReq.setStatus(tradingClearingRegistryList.getStatus());
|
||||||
|
//todo cCodeReq.setCode();
|
||||||
|
BaseRequest<ClientCodeNewRequest> request2 = new BaseRequest<>();
|
||||||
|
request2.setRequestPayload(cCodeReq);
|
||||||
|
requestInfoUpdate = clientCodeService.clientCodeNew0(request2, true);
|
||||||
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Can not wait creation of tradingClearingRegistryList. request id={}; {}",
|
||||||
|
userRequest.getId(),
|
||||||
|
ExceptionUtils.getStackTrace(e));
|
||||||
|
return requestHelper.makeErrorResponse(userRequest, AccountError.GeneralError, "Can not create TCR: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sendNotificationToClearingSvc(id);
|
||||||
|
|
||||||
|
log.debug("successfully processed, id {}", id);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public RequestInfoUpdate tradingClearingRegistryListUpdate(BaseRequest<TradingClearingRegistryListUpdateRequest> userRequest) {
|
public RequestInfoUpdate tradingClearingRegistryListUpdate(BaseRequest<TradingClearingRegistryListUpdateRequest> userRequest) {
|
||||||
return tradingClearingRegistryListUpdate0(userRequest, false);
|
return tradingClearingRegistryListUpdate0(userRequest, false);
|
||||||
}
|
}
|
||||||
|
|
@ -209,7 +275,6 @@ public class TradingClearingRegistryListService extends QueueConsumer implements
|
||||||
TradingClearingRegistryListUpdateRequest req = userRequest.getRequestPayload();
|
TradingClearingRegistryListUpdateRequest req = userRequest.getRequestPayload();
|
||||||
TradingClearingRegistryList tradingClearingRegistryList = tradingClearingRegistryListImdg.getSingleObjectByID(req.getId());
|
TradingClearingRegistryList tradingClearingRegistryList = tradingClearingRegistryListImdg.getSingleObjectByID(req.getId());
|
||||||
|
|
||||||
//todo какие поля нужно обновлять?
|
|
||||||
if (req.getStatus() != null && !Objects.equals(req.getStatus(), tradingClearingRegistryList.getStatus())) {
|
if (req.getStatus() != null && !Objects.equals(req.getStatus(), tradingClearingRegistryList.getStatus())) {
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
tradingClearingRegistryList.setUpdated(now);
|
tradingClearingRegistryList.setUpdated(now);
|
||||||
|
|
@ -220,18 +285,24 @@ public class TradingClearingRegistryListService extends QueueConsumer implements
|
||||||
log.debug("Nothing to update TCRList.id={}.", tradingClearingRegistryList.getId());
|
log.debug("Nothing to update TCRList.id={}.", tradingClearingRegistryList.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//todo нужно ли слать уведомления sendNotificationToClearingSvc?
|
||||||
|
|
||||||
log.debug("successfully processed, id {}", tradingClearingRegistryList.getId());
|
log.debug("successfully processed, id {}", tradingClearingRegistryList.getId());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
protected void sendNotificationToClearingSvc(List<Long> tradingClearingRegistries) {
|
||||||
|
for (Long tradingClearingRegistryId:tradingClearingRegistries)
|
||||||
|
sendNotificationToClearingSvc(tradingClearingRegistryId);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* clearing-service сообщение на открытие клиринговых регистров;
|
* clearing-service сообщение на открытие клиринговых регистров;
|
||||||
*/
|
*/
|
||||||
protected void sendNotificationToClearingSvc(List<Long> tradingClearingRegistries) {
|
protected void sendNotificationToClearingSvc(Long tradingClearingRegistryId) {
|
||||||
CreateRegistryByTCRListRequest request = new CreateRegistryByTCRListRequest();
|
CreateRegistryByTCRListRequest request = new CreateRegistryByTCRListRequest();
|
||||||
request.setTradingClearingRegistryListIds(tradingClearingRegistries);
|
request.setTradingClearingRegistryListId(tradingClearingRegistryId);
|
||||||
log.debug("Send message to kafka \"{}\": {}", Consts.DESTINATION_TRADING_CLEARING_REGISTRY_ON_TCRLIST_NEW, LogFormatter.toStringWrapper(request));
|
log.debug("Send message to kafka \"{}\": {}", Consts.DESTINATION_TRADING_CLEARING_REGISTRY_ON_TCRLIST_NEW, LogFormatter.toStringWrapper(request));
|
||||||
kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_ON_TCRLIST_NEW, request);
|
kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_ON_TCRLIST_NEW, request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,19 +12,19 @@ public class TradingClearingRegistryListNewAction implements IAction<TradingClea
|
||||||
@ApiModelProperty(value = "Торгово-клиринговый регистр", example = "1200")
|
@ApiModelProperty(value = "Торгово-клиринговый регистр", example = "1200")
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private Long tradingClearingRegistryId;
|
private Long tradingClearingRegistryId;
|
||||||
@ApiModelProperty(value = "Список валютных счетов", example = "[123,456]")
|
@ApiModelProperty(value = "Идентификатор валютного счёта", example = "123")
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private List<Long> currencyAccountList;
|
private Long accountId;
|
||||||
@ApiModelProperty(value = "Наименование статуса", example = "ACTV")
|
// @ApiModelProperty(value = "Наименование статуса", example = "ACTV", required = false)
|
||||||
@JsonProperty
|
// @JsonProperty
|
||||||
private String status;
|
// private String status;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TradingClearingRegistryListNewRequest toRequest() {
|
public TradingClearingRegistryListNewRequest toRequest() {
|
||||||
var req = new TradingClearingRegistryListNewRequest();
|
var req = new TradingClearingRegistryListNewRequest();
|
||||||
req.setTradingClearingRegistryId(this.tradingClearingRegistryId);
|
req.setTradingClearingRegistryId(this.tradingClearingRegistryId);
|
||||||
req.setCurrencyAccountList(this.currencyAccountList);
|
req.setAccountId(this.accountId);
|
||||||
req.setStatus(this.status);
|
// req.setStatus(this.status);
|
||||||
return req;
|
return req;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,19 +42,11 @@ public class TradingClearingRegistryListNewAction implements IAction<TradingClea
|
||||||
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Long> getCurrencyAccountList() {
|
public Long getAccountId() {
|
||||||
return currencyAccountList;
|
return accountId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCurrencyAccountList(List<Long> currencyAccountList) {
|
public void setAccountId(Long accountId) {
|
||||||
this.currencyAccountList = currencyAccountList;
|
this.accountId = accountId;
|
||||||
}
|
|
||||||
|
|
||||||
public String getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatus(String status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,6 @@ public class TradingClearingRegistryListUpdateAction implements IAction<TradingC
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
public Long id;
|
public Long id;
|
||||||
@ApiModelProperty(value = "Торгово-клиринговый регистр", example = "1200")
|
|
||||||
@JsonProperty
|
|
||||||
private Long tradingClearingRegistryId;
|
|
||||||
@ApiModelProperty(value = "Список валютных счетов", example = "[123,456]")
|
|
||||||
@JsonProperty
|
|
||||||
private List<Long> currencyAccountList;
|
|
||||||
@ApiModelProperty(value = "Наименование статуса", example = "ACTV")
|
@ApiModelProperty(value = "Наименование статуса", example = "ACTV")
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private String status;
|
private String status;
|
||||||
|
|
@ -28,8 +22,6 @@ public class TradingClearingRegistryListUpdateAction implements IAction<TradingC
|
||||||
public TradingClearingRegistryListUpdateRequest toRequest() {
|
public TradingClearingRegistryListUpdateRequest toRequest() {
|
||||||
var req = new TradingClearingRegistryListUpdateRequest();
|
var req = new TradingClearingRegistryListUpdateRequest();
|
||||||
req.setId(this.id);
|
req.setId(this.id);
|
||||||
req.setTradingClearingRegistryId(this.tradingClearingRegistryId);
|
|
||||||
req.setCurrencyAccountList(this.currencyAccountList);
|
|
||||||
req.setStatus(this.status);
|
req.setStatus(this.status);
|
||||||
return req;
|
return req;
|
||||||
}
|
}
|
||||||
|
|
@ -48,22 +40,6 @@ public class TradingClearingRegistryListUpdateAction implements IAction<TradingC
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getTradingClearingRegistryId() {
|
|
||||||
return tradingClearingRegistryId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
|
|
||||||
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Long> getCurrencyAccountList() {
|
|
||||||
return currencyAccountList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCurrencyAccountList(List<Long> currencyAccountList) {
|
|
||||||
this.currencyAccountList = currencyAccountList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStatus() {
|
public String getStatus() {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
"version": "3.11.0.81",
|
"version": "3.11.0.82",
|
||||||
|
|
||||||
"enums": {
|
"enums": {
|
||||||
|
|
||||||
|
|
@ -4340,12 +4340,8 @@
|
||||||
"type": 1,"name": "Торгово-клиринговый регистр","shortname": "ТКР","link": "tradingClearingRegistry","linkCode": "code"
|
"type": 1,"name": "Торгово-клиринговый регистр","shortname": "ТКР","link": "tradingClearingRegistry","linkCode": "code"
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{"code": "currencyAccountList",
|
{"code": "accountId",
|
||||||
"type": 7,"name": "Список валютных счетов","shortname": "Список валютных счетов","link": "account","linkCode": "account"
|
"type": 1,"name": "Идентификатор счёта","shortname": "Счёт","link": "account","linkCode": "account"
|
||||||
}
|
|
||||||
,
|
|
||||||
{"code": "status",
|
|
||||||
"type": 12,"name": "Наименование статуса","shortname": "Статус","link": "serviceStatus","required": true
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -4362,14 +4358,6 @@
|
||||||
{"code": "id",
|
{"code": "id",
|
||||||
"type": 1,"name": "Идентификатор записи","shortname": "ID","link": "clientCode","linkCode": "id","required": true
|
"type": 1,"name": "Идентификатор записи","shortname": "ID","link": "clientCode","linkCode": "id","required": true
|
||||||
}
|
}
|
||||||
,
|
|
||||||
{"code": "tradingClearingRegistryId",
|
|
||||||
"type": 1,"name": "Торгово-клиринговый регистр","shortname": "ТКР","link": "tradingClearingRegistry","linkCode": "code"
|
|
||||||
}
|
|
||||||
,
|
|
||||||
{"code": "currencyAccountList",
|
|
||||||
"type": 7,"name": "Список валютных счетов","shortname": "Список валютных счетов","link": "account","linkCode": "account"
|
|
||||||
}
|
|
||||||
,
|
,
|
||||||
{"code": "status",
|
{"code": "status",
|
||||||
"type": 12,"name": "Наименование статуса","shortname": "Статус","link": "serviceStatus","required": true
|
"type": 12,"name": "Наименование статуса","shortname": "Статус","link": "serviceStatus","required": true
|
||||||
|
|
|
||||||
|
|
@ -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.11.0.81">
|
<meta version="3.11.0.82">
|
||||||
<!-- _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>
|
||||||
|
|
@ -1006,13 +1006,10 @@
|
||||||
<actions>
|
<actions>
|
||||||
<post name="Добавление списка счетов ТКР" confirmation="tradingClearingRegistryId,accountId,status" class="ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryListNewAction">
|
<post name="Добавление списка счетов ТКР" confirmation="tradingClearingRegistryId,accountId,status" class="ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryListNewAction">
|
||||||
<tradingClearingRegistryId type="1" name="Торгово-клиринговый регистр" shortname="ТКР" link="tradingClearingRegistry" linkCode="code"/>
|
<tradingClearingRegistryId type="1" name="Торгово-клиринговый регистр" shortname="ТКР" link="tradingClearingRegistry" linkCode="code"/>
|
||||||
<currencyAccountList type="7" name="Список валютных счетов" shortname="Список валютных счетов" link="account" linkCode="account"/>
|
<accountId type="1" name="Идентификатор счёта" shortname="Счёт" link="account" linkCode="account"/>
|
||||||
<status type="12" name="Наименование статуса" shortname="Статус" link="serviceStatus" required="true"/>
|
|
||||||
</post>
|
</post>
|
||||||
<put name="Изменение списка счетов ТКР" confirmation="tradingClearingRegistryId,accountId,status" class="ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryListUpdateAction">
|
<put name="Изменение списка счетов ТКР" confirmation="tradingClearingRegistryId,accountId,status" class="ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryListUpdateAction">
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" link="clientCode" linkCode="id" required="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" link="clientCode" linkCode="id" required="true"/>
|
||||||
<tradingClearingRegistryId type="1" name="Торгово-клиринговый регистр" shortname="ТКР" link="tradingClearingRegistry" linkCode="code"/>
|
|
||||||
<currencyAccountList type="7" name="Список валютных счетов" shortname="Список валютных счетов" link="account" linkCode="account"/>
|
|
||||||
<status type="12" name="Наименование статуса" shortname="Статус" link="serviceStatus" required="true"/>
|
<status type="12" name="Наименование статуса" shortname="Статус" link="serviceStatus" required="true"/>
|
||||||
</put>
|
</put>
|
||||||
</actions>
|
</actions>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
"version": "3.11.0.81",
|
"version": "3.11.0.82",
|
||||||
|
|
||||||
"enums": {
|
"enums": {
|
||||||
|
|
||||||
|
|
@ -4340,12 +4340,8 @@
|
||||||
"type": 1,"name": "Торгово-клиринговый регистр","shortname": "ТКР","link": "tradingClearingRegistry","linkCode": "code"
|
"type": 1,"name": "Торгово-клиринговый регистр","shortname": "ТКР","link": "tradingClearingRegistry","linkCode": "code"
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{"code": "currencyAccountList",
|
{"code": "accountId",
|
||||||
"type": 7,"name": "Список валютных счетов","shortname": "Список валютных счетов","link": "account","linkCode": "account"
|
"type": 1,"name": "Идентификатор счёта","shortname": "Счёт","link": "account","linkCode": "account"
|
||||||
}
|
|
||||||
,
|
|
||||||
{"code": "status",
|
|
||||||
"type": 12,"name": "Наименование статуса","shortname": "Статус","link": "serviceStatus","required": true
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -4362,14 +4358,6 @@
|
||||||
{"code": "id",
|
{"code": "id",
|
||||||
"type": 1,"name": "Идентификатор записи","shortname": "ID","link": "clientCode","linkCode": "id","required": true
|
"type": 1,"name": "Идентификатор записи","shortname": "ID","link": "clientCode","linkCode": "id","required": true
|
||||||
}
|
}
|
||||||
,
|
|
||||||
{"code": "tradingClearingRegistryId",
|
|
||||||
"type": 1,"name": "Торгово-клиринговый регистр","shortname": "ТКР","link": "tradingClearingRegistry","linkCode": "code"
|
|
||||||
}
|
|
||||||
,
|
|
||||||
{"code": "currencyAccountList",
|
|
||||||
"type": 7,"name": "Список валютных счетов","shortname": "Список валютных счетов","link": "account","linkCode": "account"
|
|
||||||
}
|
|
||||||
,
|
,
|
||||||
{"code": "status",
|
{"code": "status",
|
||||||
"type": 12,"name": "Наименование статуса","shortname": "Статус","link": "serviceStatus","required": true
|
"type": 12,"name": "Наименование статуса","shortname": "Статус","link": "serviceStatus","required": true
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,15 @@ package ru.spcex.clearing.platform.messaging.domain.cud.clearing;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class CreateRegistryByTCRListRequest {
|
public class CreateRegistryByTCRListRequest {
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private List<Long> tradingClearingRegistryListIds;
|
private Long tradingClearingRegistryListId;
|
||||||
|
|
||||||
public List<Long> getTradingClearingRegistryListIds() {
|
public Long getTradingClearingRegistryListId() {
|
||||||
return tradingClearingRegistryListIds;
|
return tradingClearingRegistryListId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTradingClearingRegistryListIds(List<Long> tradingClearingRegistryListIds) {
|
public void setTradingClearingRegistryListId(Long tradingClearingRegistryListId) {
|
||||||
this.tradingClearingRegistryListIds = tradingClearingRegistryListIds;
|
this.tradingClearingRegistryListId = tradingClearingRegistryListId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,15 @@ import java.util.List;
|
||||||
public class TradingClearingRegistryListNewRequest {
|
public class TradingClearingRegistryListNewRequest {
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private Long tradingClearingRegistryId;
|
private Long tradingClearingRegistryId;
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private List<Long> currencyAccountList;
|
private List<Long> currencyAccountList;
|
||||||
|
@Deprecated
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
|
@ -26,18 +33,29 @@ public class TradingClearingRegistryListNewRequest {
|
||||||
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Long getAccountId() {
|
||||||
|
return accountId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccountId(Long accountId) {
|
||||||
|
this.accountId = accountId;
|
||||||
|
}
|
||||||
|
|
||||||
|
// todo возможно перепишут API, уберут:
|
||||||
|
@Deprecated
|
||||||
public List<Long> getCurrencyAccountList() {
|
public List<Long> getCurrencyAccountList() {
|
||||||
return currencyAccountList;
|
return currencyAccountList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public void setCurrencyAccountList(List<Long> currencyAccountList) {
|
public void setCurrencyAccountList(List<Long> currencyAccountList) {
|
||||||
this.currencyAccountList = currencyAccountList;
|
this.currencyAccountList = currencyAccountList;
|
||||||
}
|
}
|
||||||
|
@Deprecated
|
||||||
public String getStatus() {
|
public String getStatus() {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
@Deprecated
|
||||||
public void setStatus(String status) {
|
public void setStatus(String status) {
|
||||||
this.status = status;
|
this.status = status;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,14 @@ import java.util.List;
|
||||||
public class TradingClearingRegistryListUpdateRequest {
|
public class TradingClearingRegistryListUpdateRequest {
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private Long tradingClearingRegistryId;
|
private Long tradingClearingRegistryId;
|
||||||
|
@Deprecated
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private List<Long> currencyAccountList;
|
private List<Long> currencyAccountList;
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
|
@ -22,18 +26,19 @@ public class TradingClearingRegistryListUpdateRequest {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public Long getTradingClearingRegistryId() {
|
public Long getTradingClearingRegistryId() {
|
||||||
return tradingClearingRegistryId;
|
return tradingClearingRegistryId;
|
||||||
}
|
}
|
||||||
|
@Deprecated
|
||||||
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
|
public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
|
||||||
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
this.tradingClearingRegistryId = tradingClearingRegistryId;
|
||||||
}
|
}
|
||||||
|
@Deprecated
|
||||||
public List<Long> getCurrencyAccountList() {
|
public List<Long> getCurrencyAccountList() {
|
||||||
return currencyAccountList;
|
return currencyAccountList;
|
||||||
}
|
}
|
||||||
|
@Deprecated
|
||||||
public void setCurrencyAccountList(List<Long> currencyAccountList) {
|
public void setCurrencyAccountList(List<Long> currencyAccountList) {
|
||||||
this.currencyAccountList = currencyAccountList;
|
this.currencyAccountList = currencyAccountList;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue