Merge branch 'gateway' into dev

# Conflicts:
#	clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java
#	clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java
This commit is contained in:
ialbert 2023-07-13 17:52:46 +03:00
commit 67149d08fe
5 changed files with 99 additions and 74 deletions

View file

@ -13,6 +13,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolNewR
import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.company.SecurityMkrGatewayRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.SecurityMkrGatewayRequest;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.utils.log.ExceptionUtils;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -34,6 +35,7 @@ public class IssueCompanyService {
public void sendRequest(FondListingsRequest request) { public void sendRequest(FondListingsRequest request) {
List<IssuerCompany> issuerCompanyList = request.getIssuerCompanyList(); List<IssuerCompany> issuerCompanyList = request.getIssuerCompanyList();
for (IssuerCompany issuerCompany : issuerCompanyList) { for (IssuerCompany issuerCompany : issuerCompanyList) {
try {
UUID companyId = issuerCompany.getId(); UUID companyId = issuerCompany.getId();
log.debug("Grouping by companyId: {}", companyId); log.debug("Grouping by companyId: {}", companyId);
List<IssuerCompanySymbols> issuerCompanySymbolsList = groupByCompanyId(request.getIssuerCompanySymbolsList(), companyId); List<IssuerCompanySymbols> issuerCompanySymbolsList = groupByCompanyId(request.getIssuerCompanySymbolsList(), companyId);
@ -56,6 +58,9 @@ public class IssueCompanyService {
//todo реализовать на стороне security-service обработку и правильную группировку //todo реализовать на стороне security-service обработку и правильную группировку
// kafkaSender.sendRequestToQueue(Consts.DESTINATION_ISSUER_COMPANY_GATEWAY_REQUEST, securityMkrGatewayRequest); // kafkaSender.sendRequestToQueue(Consts.DESTINATION_ISSUER_COMPANY_GATEWAY_REQUEST, securityMkrGatewayRequest);
} catch (Throwable e) {
log.error("{}", ExceptionUtils.getStackTrace(e));
}
} }
} }

View file

@ -35,6 +35,7 @@ public class SecurityService {
public void sendRequest(FondListingsRequest request) { public void sendRequest(FondListingsRequest request) {
List<FondSecurity> securityList = request.getSecurities(); List<FondSecurity> securityList = request.getSecurities();
for (FondSecurity security : securityList) { for (FondSecurity security : securityList) {
try {
log.debug("process security uuid: {}", security.getId()); log.debug("process security uuid: {}", security.getId());
UUID securityId = security.getId(); UUID securityId = security.getId();
log.debug("Grouping by securityId: {}", securityId); log.debug("Grouping by securityId: {}", securityId);
@ -50,7 +51,6 @@ public class SecurityService {
map(securityRequestAdapter::toFixedIncomeCashFlowRequest).toList(); map(securityRequestAdapter::toFixedIncomeCashFlowRequest).toList();
SecurityFondGatewayRequest securityGatewayRequest; SecurityFondGatewayRequest securityGatewayRequest;
try {
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security); FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security);
securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest); securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest);
@ -67,7 +67,6 @@ public class SecurityService {
} catch (Throwable e) { } catch (Throwable e) {
log.error("{}", ExceptionUtils.getStackTrace(e)); log.error("{}", ExceptionUtils.getStackTrace(e));
} }
} }
} }

View file

@ -10,6 +10,7 @@ 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.company.*; import ru.spcex.clearing.platform.messaging.domain.cud.company.*;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.utils.log.ExceptionUtils;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -31,6 +32,7 @@ public class CompanyProcessor {
public void process(CompaniesRequest request) { public void process(CompaniesRequest request) {
List<Company> companyList = request.getCompanyList(); List<Company> companyList = request.getCompanyList();
for (Company memberCompany : companyList) { for (Company memberCompany : companyList) {
try {
UUID companyId = memberCompany.getId(); UUID companyId = memberCompany.getId();
log.debug("Grouping by companyId: {}", companyId); log.debug("Grouping by companyId: {}", companyId);
List<CompanyClearingCategory> companyClearingCategories = groupByCompanyId(request.getCompanyClearingCategoryList(), companyId); List<CompanyClearingCategory> companyClearingCategories = groupByCompanyId(request.getCompanyClearingCategoryList(), companyId);
@ -64,6 +66,9 @@ public class CompanyProcessor {
companyGatewayRequest.setCategories(categories); companyGatewayRequest.setCategories(categories);
kafkaSender.sendRequestToQueue(Consts.DESTINATION_COMPANY_GATEWAY_REQUEST, companyGatewayRequest); kafkaSender.sendRequestToQueue(Consts.DESTINATION_COMPANY_GATEWAY_REQUEST, companyGatewayRequest);
} catch (Throwable e) {
log.error("{}", ExceptionUtils.getStackTrace(e));
}
} }
} }

View file

@ -10,6 +10,7 @@ import ru.spcex.clearing.gatewayapi.service.adapter.MoneyMarketSecurityRequestAd
import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.utils.log.ExceptionUtils;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -30,16 +31,19 @@ public class ListingMMProcessor {
public void process(MMListingsRequest request) { public void process(MMListingsRequest request) {
List<ExchangeInstrument> exchangeInstrumentList = request.getExchangeInstrumentList(); List<ExchangeInstrument> exchangeInstrumentList = request.getExchangeInstrumentList();
for (ExchangeInstrument exchangeInstrument : exchangeInstrumentList) { for (ExchangeInstrument exchangeInstrument : exchangeInstrumentList) {
try {
UUID exchangeInstrumentId = exchangeInstrument.getId(); UUID exchangeInstrumentId = exchangeInstrument.getId();
log.debug("Process exchangeInstrumentId : {}", exchangeInstrumentId); log.debug("Process exchangeInstrumentId : {}", exchangeInstrumentId);
if (StringUtils.isEmpty(exchangeInstrument.getCode()) || exchangeInstrument.getCode().length() < 6) { if (StringUtils.isEmpty(exchangeInstrument.getCode()) || exchangeInstrument.getCode().length() < 6) {
log.warn("Incorrect code : {}, skip record", exchangeInstrument.getCode()); log.warn("Incorrect code : {}, skip record", exchangeInstrument.getCode());
continue;
} }
MoneyMarketSecurityNewRequest moneyMarketSecurityNewRequest = moneyMarketSecurityRequestAdapter MoneyMarketSecurityNewRequest moneyMarketSecurityNewRequest = moneyMarketSecurityRequestAdapter
.toMoneyMarketSecurityNewRequest(exchangeInstrument); .toMoneyMarketSecurityNewRequest(exchangeInstrument);
kafkaSender.sendRequestToQueue(Consts.DESTINATION_GATEWAY_MONEY_MARKET_SECURITY, moneyMarketSecurityNewRequest); kafkaSender.sendRequestToQueue(Consts.DESTINATION_GATEWAY_MONEY_MARKET_SECURITY, moneyMarketSecurityNewRequest);
} catch (Throwable e) {
log.error("{}", ExceptionUtils.getStackTrace(e));
}
} }
} }
} }

View file

@ -13,6 +13,7 @@ import ru.clearing.classes.statics.data.misc.STrades;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.STradesImportedRequest; import ru.spcex.clearing.platform.messaging.domain.cud.utilities.STradesImportedRequest;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.enumeration.Side;
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.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.EnumMessage;
@ -122,6 +123,16 @@ public class TradeImporterService {
} }
} }
private static String mapOperation(String fromDb) {
if (fromDb == null) return null;
if ("Купля".equalsIgnoreCase(fromDb)) {
return Side.BUY.getKey();
} else if ("Продажа".equalsIgnoreCase(fromDb)) {
return Side.SELL.getKey();
}
return fromDb;
}
public STrades getSTradesFromImdg(STrades tradesDb, Imdg<STrades> sTradesImdg) { public STrades getSTradesFromImdg(STrades tradesDb, Imdg<STrades> sTradesImdg) {
return sTradesImdg.getFirstObjectByFieldValues(Map.of("tradeDate", tradesDb.getTradeDate(), return sTradesImdg.getFirstObjectByFieldValues(Map.of("tradeDate", tradesDb.getTradeDate(),
"tradeNum", tradesDb.getTradeNum(), "tradeNum", tradesDb.getTradeNum(),
@ -139,7 +150,8 @@ public class TradeImporterService {
public STrades readSTrades(ResultSet resultSet) throws SQLException { public STrades readSTrades(ResultSet resultSet) throws SQLException {
STrades sTrades = new STrades(); STrades sTrades = new STrades();
sTrades.setTradeNum(resultSet.getObject("TradeNum", Long.class)); sTrades.setTradeNum(resultSet.getObject("TradeNum", Long.class));
sTrades.setOperation(resultSet.getObject("Operation", String.class)); String operation = resultSet.getObject("Operation", String.class);
sTrades.setOperation(mapOperation(operation));
sTrades.setClassCode(resultSet.getObject("ClassCode", String.class)); sTrades.setClassCode(resultSet.getObject("ClassCode", String.class));
sTrades.setTradeDate(getLocalDateFromSqlDate(resultSet, "TradeDate")); sTrades.setTradeDate(getLocalDateFromSqlDate(resultSet, "TradeDate"));
sTrades.setSecCode(resultSet.getObject("SecCode", String.class)); sTrades.setSecCode(resultSet.getObject("SecCode", String.class));