http://jira.mfd.msk:8088/browse/CLS-424 issuerId для instrument_type = RATE

This commit is contained in:
ialbert 2023-07-19 14:32:05 +03:00
parent 2a109ed496
commit 315d1e43ec
4 changed files with 44 additions and 11 deletions

View file

@ -2,13 +2,16 @@ package ru.spcex.clearing.gatewayapi.service.adapter;
import org.springframework.stereotype.Service;
import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.mkr.ExchangeInstrument;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewGatewayRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
import ru.spcex.platform.enumeration.InstrumentType;
@Service
public class MoneyMarketSecurityRequestAdapter {
public MoneyMarketSecurityNewRequest toMoneyMarketSecurityNewRequest(ExchangeInstrument exchangeInstrument) {
public MoneyMarketSecurityNewGatewayRequest toMoneyMarketSecurityNewRequest(ExchangeInstrument exchangeInstrument) {
MoneyMarketSecurityNewGatewayRequest req = new MoneyMarketSecurityNewGatewayRequest();
MoneyMarketSecurityNewRequest moneyMarketSecurityNewRequest = new MoneyMarketSecurityNewRequest();
String code = exchangeInstrument.getCode();
moneyMarketSecurityNewRequest.setSecuritySymbol(code.substring(0, Math.min(7, code.length())));
@ -19,6 +22,9 @@ public class MoneyMarketSecurityRequestAdapter {
moneyMarketSecurityNewRequest.setLotSize(exchangeInstrument.getLot());
moneyMarketSecurityNewRequest.setTermType(exchangeInstrument.getBankDepositAgreementType());
moneyMarketSecurityNewRequest.setWorkflowStatus(exchangeInstrument.getWorkflowStatus());
return moneyMarketSecurityNewRequest;
req.setMoneyMarketSecurityNewRequest(moneyMarketSecurityNewRequest);
req.setUuid(exchangeInstrument.getInitiatorId() != null ? exchangeInstrument.getInitiatorId().toString() : null);
return req;
}
}

View file

@ -8,7 +8,7 @@ import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.mkr.Excha
import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.mkr.MMListingsRequest;
import ru.spcex.clearing.gatewayapi.service.adapter.MoneyMarketSecurityRequestAdapter;
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.MoneyMarketSecurityNewGatewayRequest;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.utils.log.ExceptionUtils;
@ -38,7 +38,7 @@ public class ListingMMProcessor {
log.warn("Incorrect code : {}, skip record", exchangeInstrument.getCode());
continue;
}
MoneyMarketSecurityNewRequest moneyMarketSecurityNewRequest = moneyMarketSecurityRequestAdapter
MoneyMarketSecurityNewGatewayRequest moneyMarketSecurityNewRequest = moneyMarketSecurityRequestAdapter
.toMoneyMarketSecurityNewRequest(exchangeInstrument);
kafkaSender.sendRequestToQueue(Consts.DESTINATION_GATEWAY_MONEY_MARKET_SECURITY, moneyMarketSecurityNewRequest);
} catch (Throwable e) {

View file

@ -115,15 +115,14 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
callback(EquitySecurityGatewayRequest.class)
.setFunction(this::newSecurities)
.forDestination(Consts.DESTINATION_SECURITY_EQTY_GATEWAY, callbacks::put);
callback(MoneyMarketSecurityNewRequest.class)
callback(MoneyMarketSecurityNewGatewayRequest.class)
.setFunction(this::newMoneyMarketSecurity)
.forDestination(Consts.DESTINATION_GATEWAY_MONEY_MARKET_SECURITY, callbacks::put);
imdgProvider.waitAvailable();
init();
}
Long findCompany(SecurityFondGatewayRequest byReq) {
String byUuid = byReq.getUuid();
Long findCompany(String byUuid) {
if (byUuid == null) {
log.warn("Request without company UUID");
return null;
@ -172,7 +171,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
private RequestInfoUpdate newSecurities(BaseRequest<?> baseRequest) {
log.debug("SecurityFondGatewayRequest id={} received", baseRequest.getId());
SecurityFondGatewayRequest req = (SecurityFondGatewayRequest) baseRequest.getRequestPayload();
Long companyId = findCompany(req);//issuerId findCompany
Long companyId = findCompany(req.getUuid());//issuerId findCompany
if (companyId == null) {
log.debug("CompanyId (issuer) not found.");
} else {
@ -429,11 +428,13 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
// --- DESTINATION_GATEWAY_MONEY_MARKET_SECURITY ---
private RequestInfoUpdate newMoneyMarketSecurity(BaseRequest<MoneyMarketSecurityNewRequest> baseRequest) {
private RequestInfoUpdate newMoneyMarketSecurity(BaseRequest<MoneyMarketSecurityNewGatewayRequest> baseRequest) {
log.debug("MoneyMarketSecurityNewRequest id={} received", baseRequest.getId());
MoneyMarketSecurityNewRequest req = baseRequest.getRequestPayload();
MoneyMarketSecurityNewGatewayRequest gatewayReq = baseRequest.getRequestPayload();
Long companyId = findCompany(gatewayReq.getUuid());
synchronized (moneyMarketSecurityService) {
MoneyMarketSecurityNewRequest req = gatewayReq.getMoneyMarketSecurityNewRequest();
req.setIssuerId(companyId);
MoneyMarketSecurity existMMS = findSecurityBySecuritySymbol(moneyMarketSecurityImdg, req.getSecuritySymbol());
try {
if (existMMS == null) {

View file

@ -0,0 +1,26 @@
package ru.spcex.clearing.platform.messaging.domain.cud.securitites;
import com.fasterxml.jackson.annotation.JsonProperty;
public class MoneyMarketSecurityNewGatewayRequest {
@JsonProperty
private String uuid;
@JsonProperty
private MoneyMarketSecurityNewRequest moneyMarketSecurityNewRequest;
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public MoneyMarketSecurityNewRequest getMoneyMarketSecurityNewRequest() {
return moneyMarketSecurityNewRequest;
}
public void setMoneyMarketSecurityNewRequest(MoneyMarketSecurityNewRequest moneyMarketSecurityNewRequest) {
this.moneyMarketSecurityNewRequest = moneyMarketSecurityNewRequest;
}
}