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:
commit
67149d08fe
5 changed files with 99 additions and 74 deletions
|
|
@ -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.SecurityMkrGatewayRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
|
@ -34,28 +35,32 @@ public class IssueCompanyService {
|
|||
public void sendRequest(FondListingsRequest request) {
|
||||
List<IssuerCompany> issuerCompanyList = request.getIssuerCompanyList();
|
||||
for (IssuerCompany issuerCompany : issuerCompanyList) {
|
||||
UUID companyId = issuerCompany.getId();
|
||||
log.debug("Grouping by companyId: {}", companyId);
|
||||
List<IssuerCompanySymbols> issuerCompanySymbolsList = groupByCompanyId(request.getIssuerCompanySymbolsList(), companyId);
|
||||
List<IssuerContact> issuerContactList = groupByCompanyId(request.getIssuerContactList(), companyId);
|
||||
try {
|
||||
UUID companyId = issuerCompany.getId();
|
||||
log.debug("Grouping by companyId: {}", companyId);
|
||||
List<IssuerCompanySymbols> issuerCompanySymbolsList = groupByCompanyId(request.getIssuerCompanySymbolsList(), companyId);
|
||||
List<IssuerContact> issuerContactList = groupByCompanyId(request.getIssuerContactList(), companyId);
|
||||
|
||||
List<CompanySymbolNewRequest> companySymbolNewRequests = issuerCompanySymbolsList.stream().
|
||||
map(issuerCompanyRequestAdapter::toCompanySymbolRequest).toList();
|
||||
List<ContactNewRequest> contactNewRequests = issuerContactList.stream().
|
||||
map(issuerCompanyRequestAdapter::toContactRequest).toList();
|
||||
List<CompanySymbolNewRequest> companySymbolNewRequests = issuerCompanySymbolsList.stream().
|
||||
map(issuerCompanyRequestAdapter::toCompanySymbolRequest).toList();
|
||||
List<ContactNewRequest> contactNewRequests = issuerContactList.stream().
|
||||
map(issuerCompanyRequestAdapter::toContactRequest).toList();
|
||||
|
||||
SecurityMkrGatewayRequest securityMkrGatewayRequest = new SecurityMkrGatewayRequest();
|
||||
securityMkrGatewayRequest.setCompanyNewRequest(issuerCompanyRequestAdapter.toCompanyRequest(issuerCompany));
|
||||
securityMkrGatewayRequest.setCompanySymbolNewRequests(companySymbolNewRequests);
|
||||
securityMkrGatewayRequest.setContactNewRequests(contactNewRequests);
|
||||
request.getIssuerCompanyInfoList()
|
||||
.stream()
|
||||
.filter(info -> info.getCompanyId().equals(companyId)).findFirst()
|
||||
.map(issuerCompanyRequestAdapter::toCompanyInfoRequest)
|
||||
.ifPresent(securityMkrGatewayRequest::setCompanyInfoUpdateRequest);
|
||||
SecurityMkrGatewayRequest securityMkrGatewayRequest = new SecurityMkrGatewayRequest();
|
||||
securityMkrGatewayRequest.setCompanyNewRequest(issuerCompanyRequestAdapter.toCompanyRequest(issuerCompany));
|
||||
securityMkrGatewayRequest.setCompanySymbolNewRequests(companySymbolNewRequests);
|
||||
securityMkrGatewayRequest.setContactNewRequests(contactNewRequests);
|
||||
request.getIssuerCompanyInfoList()
|
||||
.stream()
|
||||
.filter(info -> info.getCompanyId().equals(companyId)).findFirst()
|
||||
.map(issuerCompanyRequestAdapter::toCompanyInfoRequest)
|
||||
.ifPresent(securityMkrGatewayRequest::setCompanyInfoUpdateRequest);
|
||||
|
||||
//todo реализовать на стороне security-service обработку и правильную группировку
|
||||
//todo реализовать на стороне security-service обработку и правильную группировку
|
||||
// kafkaSender.sendRequestToQueue(Consts.DESTINATION_ISSUER_COMPANY_GATEWAY_REQUEST, securityMkrGatewayRequest);
|
||||
} catch (Throwable e) {
|
||||
log.error("{}", ExceptionUtils.getStackTrace(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,22 +35,22 @@ public class SecurityService {
|
|||
public void sendRequest(FondListingsRequest request) {
|
||||
List<FondSecurity> securityList = request.getSecurities();
|
||||
for (FondSecurity security : securityList) {
|
||||
log.debug("process security uuid: {}", security.getId());
|
||||
UUID securityId = security.getId();
|
||||
log.debug("Grouping by securityId: {}", securityId);
|
||||
List<IncomeListing> incomeListings = groupByCompanyId(request.getListingList(), securityId);
|
||||
List<CouponSchedule> couponSchedules = groupByCompanyId(request.getCouponSchedules(), securityId);
|
||||
List<Nominal> nominals = groupByCompanyId(request.getNominalList(), securityId);
|
||||
|
||||
List<ListingNewRequest> listingRequests = incomeListings.stream().
|
||||
map(securityRequestAdapter::toIncomeListing).toList();
|
||||
List<CouponPeriodNewRequest> couponPeriodRequests = couponSchedules.stream().
|
||||
map(securityRequestAdapter::toCouponPeriodRequest).toList();
|
||||
List<FixedIncomeCashFlowNewRequest> cashFlowRequests = nominals.stream().
|
||||
map(securityRequestAdapter::toFixedIncomeCashFlowRequest).toList();
|
||||
|
||||
SecurityFondGatewayRequest securityGatewayRequest;
|
||||
try {
|
||||
log.debug("process security uuid: {}", security.getId());
|
||||
UUID securityId = security.getId();
|
||||
log.debug("Grouping by securityId: {}", securityId);
|
||||
List<IncomeListing> incomeListings = groupByCompanyId(request.getListingList(), securityId);
|
||||
List<CouponSchedule> couponSchedules = groupByCompanyId(request.getCouponSchedules(), securityId);
|
||||
List<Nominal> nominals = groupByCompanyId(request.getNominalList(), securityId);
|
||||
|
||||
List<ListingNewRequest> listingRequests = incomeListings.stream().
|
||||
map(securityRequestAdapter::toIncomeListing).toList();
|
||||
List<CouponPeriodNewRequest> couponPeriodRequests = couponSchedules.stream().
|
||||
map(securityRequestAdapter::toCouponPeriodRequest).toList();
|
||||
List<FixedIncomeCashFlowNewRequest> cashFlowRequests = nominals.stream().
|
||||
map(securityRequestAdapter::toFixedIncomeCashFlowRequest).toList();
|
||||
|
||||
SecurityFondGatewayRequest securityGatewayRequest;
|
||||
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
|
||||
FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security);
|
||||
securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest);
|
||||
|
|
@ -67,7 +67,6 @@ public class SecurityService {
|
|||
} catch (Throwable e) {
|
||||
log.error("{}", ExceptionUtils.getStackTrace(e));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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.company.*;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
|
@ -31,39 +32,43 @@ public class CompanyProcessor {
|
|||
public void process(CompaniesRequest request) {
|
||||
List<Company> companyList = request.getCompanyList();
|
||||
for (Company memberCompany : companyList) {
|
||||
UUID companyId = memberCompany.getId();
|
||||
log.debug("Grouping by companyId: {}", companyId);
|
||||
List<CompanyClearingCategory> companyClearingCategories = groupByCompanyId(request.getCompanyClearingCategoryList(), companyId);
|
||||
List<CompanySymbols> companySymbols = groupByCompanyId(request.getMemberCompanySymbolsList(), companyId);
|
||||
List<Contact> contacts = groupByCompanyId(request.getContactList(), companyId);
|
||||
List<ProfileDocument> profileDocuments = groupByCompanyId(request.getProfileDocumentList(), companyId);
|
||||
List<Client> clients = groupByCompanyId(request.getClientList(), companyId);
|
||||
try {
|
||||
UUID companyId = memberCompany.getId();
|
||||
log.debug("Grouping by companyId: {}", companyId);
|
||||
List<CompanyClearingCategory> companyClearingCategories = groupByCompanyId(request.getCompanyClearingCategoryList(), companyId);
|
||||
List<CompanySymbols> companySymbols = groupByCompanyId(request.getMemberCompanySymbolsList(), companyId);
|
||||
List<Contact> contacts = groupByCompanyId(request.getContactList(), companyId);
|
||||
List<ProfileDocument> profileDocuments = groupByCompanyId(request.getProfileDocumentList(), companyId);
|
||||
List<Client> clients = groupByCompanyId(request.getClientList(), companyId);
|
||||
|
||||
List<CompanySymbolNewRequest> companySymbolNewRequests = companySymbols.stream().
|
||||
map(companyRequestAdapter::toCompanySymbolsRequest).toList();
|
||||
List<ContactNewRequest> contactNewRequests = contacts.stream().
|
||||
map(companyRequestAdapter::toContactRequest).toList();
|
||||
List<ProfileDocumentNewRequest> profileDocumentNewRequests = profileDocuments.stream().
|
||||
map(companyRequestAdapter::toProfileDocumentRequest).toList();
|
||||
List<ClientCodeNewRequest> clientCodeNewRequests = clients.stream().
|
||||
map(companyRequestAdapter::toClientRequest).toList();
|
||||
List<ClearingMemberCategoryNewRequest> categories = companyClearingCategories.stream().
|
||||
map(companyRequestAdapter::toCategoryRequest).toList();
|
||||
List<CompanySymbolNewRequest> companySymbolNewRequests = companySymbols.stream().
|
||||
map(companyRequestAdapter::toCompanySymbolsRequest).toList();
|
||||
List<ContactNewRequest> contactNewRequests = contacts.stream().
|
||||
map(companyRequestAdapter::toContactRequest).toList();
|
||||
List<ProfileDocumentNewRequest> profileDocumentNewRequests = profileDocuments.stream().
|
||||
map(companyRequestAdapter::toProfileDocumentRequest).toList();
|
||||
List<ClientCodeNewRequest> clientCodeNewRequests = clients.stream().
|
||||
map(companyRequestAdapter::toClientRequest).toList();
|
||||
List<ClearingMemberCategoryNewRequest> categories = companyClearingCategories.stream().
|
||||
map(companyRequestAdapter::toCategoryRequest).toList();
|
||||
|
||||
CompanyGatewayRequest companyGatewayRequest = new CompanyGatewayRequest();
|
||||
companyGatewayRequest.setCompany(companyRequestAdapter.toCompanyRequest(memberCompany));
|
||||
request.getCompanyInfoList()
|
||||
.stream()
|
||||
.filter(info -> info.getCompanyId().equals(companyId)).findFirst()
|
||||
.map(companyRequestAdapter::toCompanyInfoRequest)
|
||||
.ifPresent(companyGatewayRequest::setCompanyInfo);
|
||||
companyGatewayRequest.setCompanySymbols(companySymbolNewRequests);
|
||||
companyGatewayRequest.setContacts(contactNewRequests);
|
||||
companyGatewayRequest.setProfileDocuments(profileDocumentNewRequests);
|
||||
companyGatewayRequest.setClientCodes(clientCodeNewRequests);
|
||||
companyGatewayRequest.setCategories(categories);
|
||||
CompanyGatewayRequest companyGatewayRequest = new CompanyGatewayRequest();
|
||||
companyGatewayRequest.setCompany(companyRequestAdapter.toCompanyRequest(memberCompany));
|
||||
request.getCompanyInfoList()
|
||||
.stream()
|
||||
.filter(info -> info.getCompanyId().equals(companyId)).findFirst()
|
||||
.map(companyRequestAdapter::toCompanyInfoRequest)
|
||||
.ifPresent(companyGatewayRequest::setCompanyInfo);
|
||||
companyGatewayRequest.setCompanySymbols(companySymbolNewRequests);
|
||||
companyGatewayRequest.setContacts(contactNewRequests);
|
||||
companyGatewayRequest.setProfileDocuments(profileDocumentNewRequests);
|
||||
companyGatewayRequest.setClientCodes(clientCodeNewRequests);
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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.cud.securitites.MoneyMarketSecurityNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
|
@ -30,16 +31,19 @@ public class ListingMMProcessor {
|
|||
public void process(MMListingsRequest request) {
|
||||
List<ExchangeInstrument> exchangeInstrumentList = request.getExchangeInstrumentList();
|
||||
for (ExchangeInstrument exchangeInstrument : exchangeInstrumentList) {
|
||||
UUID exchangeInstrumentId = exchangeInstrument.getId();
|
||||
log.debug("Process exchangeInstrumentId : {}", exchangeInstrumentId);
|
||||
if (StringUtils.isEmpty(exchangeInstrument.getCode()) || exchangeInstrument.getCode().length() < 6) {
|
||||
log.warn("Incorrect code : {}, skip record", exchangeInstrument.getCode());
|
||||
try {
|
||||
UUID exchangeInstrumentId = exchangeInstrument.getId();
|
||||
log.debug("Process exchangeInstrumentId : {}", exchangeInstrumentId);
|
||||
if (StringUtils.isEmpty(exchangeInstrument.getCode()) || exchangeInstrument.getCode().length() < 6) {
|
||||
log.warn("Incorrect code : {}, skip record", exchangeInstrument.getCode());
|
||||
continue;
|
||||
}
|
||||
MoneyMarketSecurityNewRequest moneyMarketSecurityNewRequest = moneyMarketSecurityRequestAdapter
|
||||
.toMoneyMarketSecurityNewRequest(exchangeInstrument);
|
||||
kafkaSender.sendRequestToQueue(Consts.DESTINATION_GATEWAY_MONEY_MARKET_SECURITY, moneyMarketSecurityNewRequest);
|
||||
} catch (Throwable e) {
|
||||
log.error("{}", ExceptionUtils.getStackTrace(e));
|
||||
}
|
||||
|
||||
MoneyMarketSecurityNewRequest moneyMarketSecurityNewRequest = moneyMarketSecurityRequestAdapter
|
||||
.toMoneyMarketSecurityNewRequest(exchangeInstrument);
|
||||
|
||||
kafkaSender.sendRequestToQueue(Consts.DESTINATION_GATEWAY_MONEY_MARKET_SECURITY, moneyMarketSecurityNewRequest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import ru.clearing.classes.statics.data.misc.STrades;
|
|||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.STradesImportedRequest;
|
||||
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.ImdgProvider;
|
||||
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) {
|
||||
return sTradesImdg.getFirstObjectByFieldValues(Map.of("tradeDate", tradesDb.getTradeDate(),
|
||||
"tradeNum", tradesDb.getTradeNum(),
|
||||
|
|
@ -139,7 +150,8 @@ public class TradeImporterService {
|
|||
public STrades readSTrades(ResultSet resultSet) throws SQLException {
|
||||
STrades sTrades = new STrades();
|
||||
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.setTradeDate(getLocalDateFromSqlDate(resultSet, "TradeDate"));
|
||||
sTrades.setSecCode(resultSet.getObject("SecCode", String.class));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue