This commit is contained in:
parent
53df6b6b62
commit
bbef81e867
2 changed files with 39 additions and 36 deletions
|
|
@ -1,5 +1,10 @@
|
||||||
package ru.spcex.clearing.account.service;
|
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.consumer.Consumer;
|
||||||
import org.apache.kafka.clients.producer.Producer;
|
import org.apache.kafka.clients.producer.Producer;
|
||||||
import org.slf4j.Logger;
|
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.Consts;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
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.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.TradingClearingRegistryListNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryListUpdateRequest;
|
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.serialization.LogFormatter;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
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.util.services.RequestHelper;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.ServiceStatus;
|
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.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
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.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class TradingClearingRegistryListService extends QueueConsumer implements InitializingBean {
|
public class TradingClearingRegistryListService extends QueueConsumer implements InitializingBean {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
@ -141,7 +135,9 @@ public class TradingClearingRegistryListService extends QueueConsumer implements
|
||||||
return requestInfoUpdate;
|
return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TradingClearingRegistryListNewRequest req = userRequest.getRequestPayload();
|
TradingClearingRegistryListNewRequest req = userRequest.getRequestPayload();
|
||||||
|
Account account = accountImdg.getSingleObjectByID(req.getAccountId());
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
|
|
||||||
List<Long> newIds=new ArrayList<>();
|
List<Long> newIds=new ArrayList<>();
|
||||||
|
|
@ -153,6 +149,7 @@ public class TradingClearingRegistryListService extends QueueConsumer implements
|
||||||
tradingClearingRegistryList.setUpdated(now);
|
tradingClearingRegistryList.setUpdated(now);
|
||||||
tradingClearingRegistryList.setTradingClearingRegistryId(req.getTradingClearingRegistryId());
|
tradingClearingRegistryList.setTradingClearingRegistryId(req.getTradingClearingRegistryId());
|
||||||
tradingClearingRegistryList.setAccountId(currAccId);
|
tradingClearingRegistryList.setAccountId(currAccId);
|
||||||
|
tradingClearingRegistryList.setCurrency(account.getCurrency());
|
||||||
if (req.getStatus() == null) {
|
if (req.getStatus() == null) {
|
||||||
tradingClearingRegistryList.setStatus(ServiceStatus.Active.getKey());
|
tradingClearingRegistryList.setStatus(ServiceStatus.Active.getKey());
|
||||||
log.trace("TCRList status in request not set. Use default: {}", tradingClearingRegistryList.getStatus());
|
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();
|
TradingClearingRegistryListNewRequest req = userRequest.getRequestPayload();
|
||||||
|
Account account = accountImdg.getSingleObjectByID(req.getAccountId());
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
|
|
||||||
Long id = tradingClearingRegistryListImdg.nextIDSequenceFor();
|
Long id = tradingClearingRegistryListImdg.nextIDSequenceFor();
|
||||||
|
|
@ -219,6 +217,7 @@ public class TradingClearingRegistryListService extends QueueConsumer implements
|
||||||
tradingClearingRegistryList.setUpdated(now);
|
tradingClearingRegistryList.setUpdated(now);
|
||||||
tradingClearingRegistryList.setTradingClearingRegistryId(req.getTradingClearingRegistryId());
|
tradingClearingRegistryList.setTradingClearingRegistryId(req.getTradingClearingRegistryId());
|
||||||
tradingClearingRegistryList.setAccountId(req.getAccountId());
|
tradingClearingRegistryList.setAccountId(req.getAccountId());
|
||||||
|
tradingClearingRegistryList.setCurrency(account.getCurrency());
|
||||||
if (req.getStatus() == null) {
|
if (req.getStatus() == null) {
|
||||||
tradingClearingRegistryList.setStatus(ServiceStatus.Active.getKey());
|
tradingClearingRegistryList.setStatus(ServiceStatus.Active.getKey());
|
||||||
log.trace("TCRList status in request not set. Use default: {}", tradingClearingRegistryList.getStatus());
|
log.trace("TCRList status in request not set. Use default: {}", tradingClearingRegistryList.getStatus());
|
||||||
|
|
@ -231,26 +230,26 @@ public class TradingClearingRegistryListService extends QueueConsumer implements
|
||||||
|
|
||||||
if (!innerCall) {
|
if (!innerCall) {
|
||||||
// Для каждого счета из списка (currencyAccountList) должна быть создана отдельная запись объекте clientCode с данным счетом для данного клиента, т.е. у одного клиента может быть несколько валютных счетов.
|
// Для каждого счета из списка (currencyAccountList) должна быть создана отдельная запись объекте clientCode с данным счетом для данного клиента, т.е. у одного клиента может быть несколько валютных счетов.
|
||||||
try {
|
// try {
|
||||||
TradingClearingRegistry tcr = tradingClearingRegistryImdg.getSingleObjectByID(req.getTradingClearingRegistryId());
|
// TradingClearingRegistry tcr = tradingClearingRegistryImdg.getSingleObjectByID(req.getTradingClearingRegistryId());
|
||||||
ClientCodeNewRequest cCodeReq = new ClientCodeNewRequest();
|
// ClientCodeNewRequest cCodeReq = new ClientCodeNewRequest();
|
||||||
cCodeReq.setTradingClearingRegistryId(req.getTradingClearingRegistryId());
|
// cCodeReq.setTradingClearingRegistryId(req.getTradingClearingRegistryId());
|
||||||
cCodeReq.setDepoAccountId(tcr.getDepoAccountId());
|
// cCodeReq.setDepoAccountId(tcr.getDepoAccountId());
|
||||||
cCodeReq.setMoneyAccountId(tcr.getMoneyAccountId());
|
// cCodeReq.setMoneyAccountId(tcr.getMoneyAccountId());
|
||||||
cCodeReq.setCompanyId(tcr.getCompanyId());
|
// cCodeReq.setCompanyId(tcr.getCompanyId());
|
||||||
cCodeReq.setCurrencyAccountList(Arrays.asList(req.getAccountId())); // todo rewrite API
|
// cCodeReq.setCurrencyAccountList(Arrays.asList(req.getAccountId())); // todo rewrite API
|
||||||
cCodeReq.setStatus(tradingClearingRegistryList.getStatus());
|
// cCodeReq.setStatus(tradingClearingRegistryList.getStatus());
|
||||||
//todo cCodeReq.setCode();
|
// //todo cCodeReq.setCode();
|
||||||
BaseRequest<ClientCodeNewRequest> request2 = new BaseRequest<>();
|
// BaseRequest<ClientCodeNewRequest> request2 = new BaseRequest<>();
|
||||||
request2.setRequestPayload(cCodeReq);
|
// request2.setRequestPayload(cCodeReq);
|
||||||
requestInfoUpdate = clientCodeService.clientCodeNew0(request2, true);
|
// requestInfoUpdate = clientCodeService.clientCodeNew0(request2, true);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
// if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
log.error("Can not wait creation of tradingClearingRegistryList. request id={}; {}",
|
// log.error("Can not wait creation of tradingClearingRegistryList. request id={}; {}",
|
||||||
userRequest.getId(),
|
// userRequest.getId(),
|
||||||
ExceptionUtils.getStackTrace(e));
|
// ExceptionUtils.getStackTrace(e));
|
||||||
return requestHelper.makeErrorResponse(userRequest, AccountError.GeneralError, "Can not create TCR: " + e.getMessage());
|
// return requestHelper.makeErrorResponse(userRequest, AccountError.GeneralError, "Can not create TCR: " + e.getMessage());
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,12 @@
|
||||||
package ru.spcex.clearing.account.service;
|
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.consumer.Consumer;
|
||||||
import org.apache.kafka.clients.producer.Producer;
|
import org.apache.kafka.clients.producer.Producer;
|
||||||
import org.slf4j.Logger;
|
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.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class TradingClearingRegistryService extends QueueConsumer implements InitializingBean {
|
public class TradingClearingRegistryService extends QueueConsumer implements InitializingBean {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
@ -394,7 +397,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
if (code.length() > 4)
|
if (code.length() > 4)
|
||||||
code = code.substring(code.length() - 4);
|
code = code.substring(code.length() - 4);
|
||||||
code = "%4s".formatted(code).replace(' ', '0');
|
code = "%4s".formatted(code).replace(' ', '0');
|
||||||
code += registryPurpose.getKey(); // C / M / ...
|
// code += registryPurpose.getKey(); // C / M / ...
|
||||||
|
code += "C";//пока ставим всегда С, возможно придется откатить
|
||||||
String trType = tradingRegistryType + "T"; // 2 символа
|
String trType = tradingRegistryType + "T"; // 2 символа
|
||||||
code += trType;
|
code += trType;
|
||||||
String sId = "%5s".formatted(id).replace(' ', '0');
|
String sId = "%5s".formatted(id).replace(' ', '0');
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue