From bbef81e867785946821f844074239d9ff2c5ea92 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Sat, 27 Apr 2024 18:03:51 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-631 --- .../TradingClearingRegistryListService.java | 61 +++++++++---------- .../TradingClearingRegistryService.java | 14 +++-- 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryListService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryListService.java index 60940f4cc..2e0824d44 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryListService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryListService.java @@ -1,5 +1,10 @@ package ru.spcex.clearing.account.service; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.function.Function; import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.producer.Producer; import org.slf4j.Logger; @@ -21,12 +26,8 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.clearing.CreateRegistryByTCRListRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.clearing.CreateRegistryRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryListNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryListUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.NotificationRequest; import ru.spcex.clearing.platform.messaging.serialization.LogFormatter; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; @@ -35,19 +36,12 @@ import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.ServiceStatus; -import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; -import ru.spcex.platform.enumeration.TradingClearingRegistryType; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.log.ExceptionUtils; import ru.spcex.platform.utils.validation.IValidator; -import java.time.Instant; -import java.util.*; -import java.util.function.Function; - @Service public class TradingClearingRegistryListService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -141,7 +135,9 @@ public class TradingClearingRegistryListService extends QueueConsumer implements return requestInfoUpdate; } + TradingClearingRegistryListNewRequest req = userRequest.getRequestPayload(); + Account account = accountImdg.getSingleObjectByID(req.getAccountId()); Instant now = Instant.now(); List newIds=new ArrayList<>(); @@ -153,6 +149,7 @@ public class TradingClearingRegistryListService extends QueueConsumer implements tradingClearingRegistryList.setUpdated(now); tradingClearingRegistryList.setTradingClearingRegistryId(req.getTradingClearingRegistryId()); tradingClearingRegistryList.setAccountId(currAccId); + tradingClearingRegistryList.setCurrency(account.getCurrency()); if (req.getStatus() == null) { tradingClearingRegistryList.setStatus(ServiceStatus.Active.getKey()); log.trace("TCRList status in request not set. Use default: {}", tradingClearingRegistryList.getStatus()); @@ -210,6 +207,7 @@ public class TradingClearingRegistryListService extends QueueConsumer implements } TradingClearingRegistryListNewRequest req = userRequest.getRequestPayload(); + Account account = accountImdg.getSingleObjectByID(req.getAccountId()); Instant now = Instant.now(); Long id = tradingClearingRegistryListImdg.nextIDSequenceFor(); @@ -219,6 +217,7 @@ public class TradingClearingRegistryListService extends QueueConsumer implements tradingClearingRegistryList.setUpdated(now); tradingClearingRegistryList.setTradingClearingRegistryId(req.getTradingClearingRegistryId()); tradingClearingRegistryList.setAccountId(req.getAccountId()); + tradingClearingRegistryList.setCurrency(account.getCurrency()); if (req.getStatus() == null) { tradingClearingRegistryList.setStatus(ServiceStatus.Active.getKey()); log.trace("TCRList status in request not set. Use default: {}", tradingClearingRegistryList.getStatus()); @@ -231,26 +230,26 @@ public class TradingClearingRegistryListService extends QueueConsumer implements 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 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()); - } +// 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 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()); +// } } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index 76a8b6039..7e7b5f3e6 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -1,5 +1,12 @@ package ru.spcex.clearing.account.service; +import java.time.Instant; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.producer.Producer; import org.slf4j.Logger; @@ -40,10 +47,6 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; -import java.time.Instant; -import java.util.*; -import java.util.function.Function; - @Service public class TradingClearingRegistryService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -394,7 +397,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini if (code.length() > 4) code = code.substring(code.length() - 4); code = "%4s".formatted(code).replace(' ', '0'); - code += registryPurpose.getKey(); // C / M / ... +// code += registryPurpose.getKey(); // C / M / ... + code += "C";//пока ставим всегда С, возможно придется откатить String trType = tradingRegistryType + "T"; // 2 символа code += trType; String sId = "%5s".formatted(id).replace(' ', '0');