some refactroing gateway
This commit is contained in:
parent
9e095a1825
commit
2d2a89264d
14 changed files with 275 additions and 83 deletions
|
|
@ -0,0 +1,7 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.controller.request;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public interface WithSecurityId {
|
||||||
|
UUID getSecurityId();
|
||||||
|
}
|
||||||
|
|
@ -1,12 +1,9 @@
|
||||||
package ru.spcex.clearing.gatewayapi.controller.request.company;
|
package ru.spcex.clearing.gatewayapi.controller.request.company;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -62,32 +59,6 @@ public class Company extends WithMapId {
|
||||||
)
|
)
|
||||||
private String initiatorCode;
|
private String initiatorCode;
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
|
||||||
@JsonIgnore
|
|
||||||
private CompanyInfo companyInfo;
|
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
|
||||||
@JsonIgnore
|
|
||||||
private List<CompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
|
||||||
@JsonIgnore
|
|
||||||
private List<CompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
|
||||||
@JsonIgnore
|
|
||||||
private List<Contact> contactList = new ArrayList<>();
|
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
|
||||||
@JsonIgnore
|
|
||||||
private List<ProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
|
||||||
@JsonIgnore
|
|
||||||
private List<Client> memberClientList = new ArrayList<>();
|
|
||||||
|
|
||||||
|
|
||||||
public UUID getId() {
|
public UUID getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
@ -144,51 +115,4 @@ public class Company extends WithMapId {
|
||||||
this.initiatorCode = initiatorCode;
|
this.initiatorCode = initiatorCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompanyInfo getCompanyInfo() {
|
|
||||||
return companyInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCompanyInfo(CompanyInfo companyInfo) {
|
|
||||||
this.companyInfo = companyInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<CompanyClearingCategory> getCompanyClearingCategoryList() {
|
|
||||||
return companyClearingCategoryList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCompanyClearingCategoryList(List<CompanyClearingCategory> companyClearingCategoryList) {
|
|
||||||
this.companyClearingCategoryList = companyClearingCategoryList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<CompanySymbols> getMemberCompanySymbolsList() {
|
|
||||||
return memberCompanySymbolsList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMemberCompanySymbolsList(List<CompanySymbols> memberCompanySymbolsList) {
|
|
||||||
this.memberCompanySymbolsList = memberCompanySymbolsList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Contact> getContactList() {
|
|
||||||
return contactList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactList(List<Contact> contactList) {
|
|
||||||
this.contactList = contactList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ProfileDocument> getProfileDocumentList() {
|
|
||||||
return memberProfileDocumentList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProfileDocumentList(List<ProfileDocument> memberProfileDocumentList) {
|
|
||||||
this.memberProfileDocumentList = memberProfileDocumentList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Client> getClientList() {
|
|
||||||
return memberClientList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClientList(List<Client> memberClientList) {
|
|
||||||
this.memberClientList = memberClientList;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,13 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.WithSecurityId;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class CouponSchedule extends WithMapId {
|
public class CouponSchedule extends WithMapId implements WithSecurityId {
|
||||||
@JsonProperty("security_id")
|
@JsonProperty("security_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на security",
|
value = "Ссылка на security",
|
||||||
|
|
@ -73,6 +74,7 @@ public class CouponSchedule extends WithMapId {
|
||||||
private Boolean isDeleted;
|
private Boolean isDeleted;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getSecurityId() {
|
public UUID getSecurityId() {
|
||||||
return securityId;
|
return securityId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,13 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.WithSecurityId;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class IncomeListing extends WithMapId {
|
public class IncomeListing extends WithMapId implements WithSecurityId {
|
||||||
@JsonProperty("security_id")
|
@JsonProperty("security_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на security",
|
value = "Ссылка на security",
|
||||||
|
|
@ -121,6 +122,7 @@ public class IncomeListing extends WithMapId {
|
||||||
)
|
)
|
||||||
private LocalDate endDate;
|
private LocalDate endDate;
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getSecurityId() {
|
public UUID getSecurityId() {
|
||||||
return securityId;
|
return securityId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,13 @@ package ru.spcex.clearing.gatewayapi.controller.request.listing.fond;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.WithCompanyId;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
||||||
@ApiModel("Профиль компании эмитента")
|
@ApiModel("Профиль компании эмитента")
|
||||||
public class IssuerCompanyInfo {
|
public class IssuerCompanyInfo implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на company",
|
value = "Ссылка на company",
|
||||||
|
|
@ -55,7 +56,7 @@ public class IssuerCompanyInfo {
|
||||||
)
|
)
|
||||||
private String fullNameEng;
|
private String fullNameEng;
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,13 @@ package ru.spcex.clearing.gatewayapi.controller.request.listing.fond;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.WithCompanyId;
|
||||||
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ApiModel("Реквизиты компании эмитента")
|
@ApiModel("Реквизиты компании эмитента")
|
||||||
public class IssuerCompanySymbols extends WithMapId {
|
public class IssuerCompanySymbols extends WithMapId implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на company",
|
value = "Ссылка на company",
|
||||||
|
|
@ -49,6 +50,7 @@ public class IssuerCompanySymbols extends WithMapId {
|
||||||
private String companySymbolValue;
|
private String companySymbolValue;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,13 @@ package ru.spcex.clearing.gatewayapi.controller.request.listing.fond;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.WithCompanyId;
|
||||||
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ApiModel("Контакты компании эмитента")
|
@ApiModel("Контакты компании эмитента")
|
||||||
public class IssuerContact extends WithMapId {
|
public class IssuerContact extends WithMapId implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на company",
|
value = "Ссылка на company",
|
||||||
|
|
@ -53,6 +54,7 @@ public class IssuerContact extends WithMapId {
|
||||||
private String contactValue;
|
private String contactValue;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,13 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.controller.request.WithMapId;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.WithSecurityId;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class Nominal extends WithMapId {
|
public class Nominal extends WithMapId implements WithSecurityId {
|
||||||
@JsonProperty("security_id")
|
@JsonProperty("security_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на security",
|
value = "Ссылка на security",
|
||||||
|
|
@ -51,6 +52,7 @@ public class Nominal extends WithMapId {
|
||||||
private BigDecimal accruedCoupon;
|
private BigDecimal accruedCoupon;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getSecurityId() {
|
public UUID getSecurityId() {
|
||||||
return securityId;
|
return securityId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.service;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.WithSecurityId;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.*;
|
||||||
|
import ru.spcex.clearing.gatewayapi.service.adapter.SecurityRequestAdapter;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.EquitySecurityGatewayRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.FixedIncomeGatewayRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.SecurityGatewayRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
|
||||||
|
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||||
|
import ru.spcex.platform.enumeration.InstrumentType;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ListingFondProcessor {
|
||||||
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
|
private final SecurityRequestAdapter securityRequestAdapter;
|
||||||
|
private final KafkaSender kafkaSender;
|
||||||
|
|
||||||
|
public ListingFondProcessor(SecurityRequestAdapter securityRequestAdapter,
|
||||||
|
KafkaSender kafkaSender) {
|
||||||
|
this.securityRequestAdapter = securityRequestAdapter;
|
||||||
|
this.kafkaSender = kafkaSender;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void process(FondListingsRequest request) {
|
||||||
|
List<FondSecurity> securityList = request.getSecurities();
|
||||||
|
for (FondSecurity security : securityList) {
|
||||||
|
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();
|
||||||
|
|
||||||
|
SecurityGatewayRequest<?> securityGatewayRequest;
|
||||||
|
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
|
||||||
|
FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security);
|
||||||
|
securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest);
|
||||||
|
} else {
|
||||||
|
EquitySecurityNewRequest equitySecurityNewRequest = securityRequestAdapter.toEquitySecurityNewRequest(security);
|
||||||
|
securityGatewayRequest = new EquitySecurityGatewayRequest(equitySecurityNewRequest);
|
||||||
|
}
|
||||||
|
securityGatewayRequest.setListing(listingRequests);
|
||||||
|
securityGatewayRequest.setCouponPeriods(couponPeriodRequests);
|
||||||
|
securityGatewayRequest.setFixedIncomesCashFlow(cashFlowRequests);
|
||||||
|
|
||||||
|
kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_MULTIREQUEST, securityGatewayRequest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T extends WithSecurityId> List<T> groupByCompanyId(List<T> listToProcess, UUID securityId) {
|
||||||
|
return listToProcess.stream().filter(t -> t.getSecurityId().equals(securityId)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.service.adapter;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.CouponSchedule;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.FondSecurity;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.IncomeListing;
|
||||||
|
import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.Nominal;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class SecurityRequestAdapter {
|
||||||
|
|
||||||
|
public FixedIncomeSecurityNewRequest toFixedIncomeSecurityRequest(FondSecurity fondSecurity) {
|
||||||
|
FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = new FixedIncomeSecurityNewRequest();
|
||||||
|
fixedIncomeSecurityNewRequest.setSecuritySymbol(fondSecurity.getSecuritySymbol());
|
||||||
|
fixedIncomeSecurityNewRequest.setShortName(fondSecurity.getShortName());
|
||||||
|
fixedIncomeSecurityNewRequest.setFullName(fondSecurity.getFullName());
|
||||||
|
fixedIncomeSecurityNewRequest.setIsin(fondSecurity.getIsin());
|
||||||
|
fixedIncomeSecurityNewRequest.setBondType(fondSecurity.getBondType());
|
||||||
|
fixedIncomeSecurityNewRequest.setNominalValue(fondSecurity.getNominalValue());
|
||||||
|
fixedIncomeSecurityNewRequest.setNominalCurrency(fondSecurity.getNominalCurrency());
|
||||||
|
fixedIncomeSecurityNewRequest.setMaturityDate(fondSecurity.getMaturityDate());
|
||||||
|
fixedIncomeSecurityNewRequest.setCouponFrequency(fondSecurity.getCouponFrequency().longValue());
|
||||||
|
fixedIncomeSecurityNewRequest.setShortNameEng(fondSecurity.getShortNameEng());
|
||||||
|
fixedIncomeSecurityNewRequest.setFullNameEng(fondSecurity.getFullNameEng());
|
||||||
|
fixedIncomeSecurityNewRequest.setWorkflowStatus(fondSecurity.getWorkflowStatus());
|
||||||
|
fixedIncomeSecurityNewRequest.setInstrumentType(fondSecurity.getInstrumentType());
|
||||||
|
return fixedIncomeSecurityNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EquitySecurityNewRequest toEquitySecurityNewRequest(FondSecurity fondSecurity) {
|
||||||
|
EquitySecurityNewRequest equitySecurityNewRequest = new EquitySecurityNewRequest();
|
||||||
|
equitySecurityNewRequest.setSecuritySymbol(fondSecurity.getSecuritySymbol());
|
||||||
|
equitySecurityNewRequest.setShortName(fondSecurity.getShortName());
|
||||||
|
equitySecurityNewRequest.setFullName(fondSecurity.getFullName());
|
||||||
|
equitySecurityNewRequest.setIsin(fondSecurity.getIsin());
|
||||||
|
equitySecurityNewRequest.setShareType(fondSecurity.getShareType());
|
||||||
|
equitySecurityNewRequest.setShortNameEng(fondSecurity.getShortNameEng());
|
||||||
|
equitySecurityNewRequest.setFullNameEng(fondSecurity.getFullNameEng());
|
||||||
|
equitySecurityNewRequest.setWorkflowStatus(fondSecurity.getWorkflowStatus());
|
||||||
|
equitySecurityNewRequest.setInstrumentType(fondSecurity.getInstrumentType());
|
||||||
|
return equitySecurityNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListingNewRequest toIncomeListing(IncomeListing incomeListing) {
|
||||||
|
ListingNewRequest listingNewRequest = new ListingNewRequest();
|
||||||
|
listingNewRequest.setMarket(incomeListing.getCode());
|
||||||
|
listingNewRequest.setLotSize(incomeListing.getLotSize());
|
||||||
|
listingNewRequest.setTradingCurrency(incomeListing.getTradingCurrency());
|
||||||
|
listingNewRequest.setWorkflowStatus(incomeListing.getWorkflowStatus());
|
||||||
|
return listingNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CouponPeriodNewRequest toCouponPeriodRequest(CouponSchedule couponSchedule) {
|
||||||
|
CouponPeriodNewRequest couponPeriodNewRequest = new CouponPeriodNewRequest();
|
||||||
|
couponPeriodNewRequest.setCouponRate(couponSchedule.getCouponRate());
|
||||||
|
couponPeriodNewRequest.setNumber(couponSchedule.getCouponNumber());
|
||||||
|
couponPeriodNewRequest.setPeriodEndDate(couponSchedule.getPeriodEndDate());
|
||||||
|
couponPeriodNewRequest.setPeriodStartDate(couponSchedule.getPeriodStartDate());
|
||||||
|
return couponPeriodNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FixedIncomeCashFlowNewRequest toFixedIncomeCashFlowRequest(Nominal nominal) {
|
||||||
|
FixedIncomeCashFlowNewRequest fixedIncomeCashFlowNewRequest = new FixedIncomeCashFlowNewRequest();
|
||||||
|
fixedIncomeCashFlowNewRequest.setAccruedCoupon(nominal.getAccruedCoupon());
|
||||||
|
fixedIncomeCashFlowNewRequest.setNominalValue(nominal.getNominal());
|
||||||
|
fixedIncomeCashFlowNewRequest.setNumber(nominal.getCouponNumber());
|
||||||
|
return fixedIncomeCashFlowNewRequest;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -44,6 +44,7 @@ public interface Consts {
|
||||||
String DESTINATION_PLANNER_DELETE = "planner-delete";
|
String DESTINATION_PLANNER_DELETE = "planner-delete";
|
||||||
|
|
||||||
String DESTINATION_COMPANY_MULTIREQUEST = "company-multirequest-new";
|
String DESTINATION_COMPANY_MULTIREQUEST = "company-multirequest-new";
|
||||||
|
String DESTINATION_SECURITY_MULTIREQUEST = "company-multirequest-new";
|
||||||
String DESTINATION_COMPANY_NEW = "company-new";
|
String DESTINATION_COMPANY_NEW = "company-new";
|
||||||
String DESTINATION_COMPANY_DELETE = "company-delete";
|
String DESTINATION_COMPANY_DELETE = "company-delete";
|
||||||
String DESTINATION_COMPANY_UPDATE = "company-update";
|
String DESTINATION_COMPANY_UPDATE = "company-update";
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package ru.spcex.clearing.platform.messaging.domain.cud.company;
|
||||||
|
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest;
|
||||||
|
|
||||||
|
public class EquitySecurityGatewayRequest extends SecurityGatewayRequest<EquitySecurityNewRequest> {
|
||||||
|
public EquitySecurityGatewayRequest(EquitySecurityNewRequest request) {
|
||||||
|
super(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EquitySecurityNewRequest getSecurity() {
|
||||||
|
return super.getSecurity();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSecurity(EquitySecurityNewRequest security) {
|
||||||
|
super.setSecurity(security);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package ru.spcex.clearing.platform.messaging.domain.cud.company;
|
||||||
|
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityNewRequest;
|
||||||
|
|
||||||
|
public class FixedIncomeGatewayRequest extends SecurityGatewayRequest<FixedIncomeSecurityNewRequest> {
|
||||||
|
public FixedIncomeGatewayRequest(FixedIncomeSecurityNewRequest request) {
|
||||||
|
super(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FixedIncomeSecurityNewRequest getSecurity() {
|
||||||
|
return super.getSecurity();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSecurity(FixedIncomeSecurityNewRequest security) {
|
||||||
|
super.setSecurity(security);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
package ru.spcex.clearing.platform.messaging.domain.cud.company;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CouponPeriodNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeCashFlowNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.ListingNewRequest;
|
||||||
|
import ru.spcex.platform.classes.base.interfaces.WithInstrumentType;
|
||||||
|
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public abstract class SecurityGatewayRequest<T extends WithSecuritySymbol & WithInstrumentType> {
|
||||||
|
@JsonProperty
|
||||||
|
private String uuid;
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
protected T security;
|
||||||
|
@JsonProperty
|
||||||
|
private List<ListingNewRequest> listing = new ArrayList<>();
|
||||||
|
@JsonProperty
|
||||||
|
private List<CouponPeriodNewRequest> couponPeriods = new ArrayList<>();
|
||||||
|
@JsonProperty
|
||||||
|
private List<FixedIncomeCashFlowNewRequest> fixedIncomesCashFlow = new ArrayList<>();
|
||||||
|
|
||||||
|
public SecurityGatewayRequest(T security) {
|
||||||
|
this.security = security;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
private String securityType;
|
||||||
|
|
||||||
|
public String getUuid() {
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUuid(String uuid) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getSecurity() {
|
||||||
|
return security;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecurity(T security) {
|
||||||
|
this.security = security;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ListingNewRequest> getListing() {
|
||||||
|
return listing;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListing(List<ListingNewRequest> listing) {
|
||||||
|
this.listing = listing;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CouponPeriodNewRequest> getCouponPeriods() {
|
||||||
|
return couponPeriods;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCouponPeriods(List<CouponPeriodNewRequest> couponPeriods) {
|
||||||
|
this.couponPeriods = couponPeriods;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<FixedIncomeCashFlowNewRequest> getFixedIncomesCashFlow() {
|
||||||
|
return fixedIncomesCashFlow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFixedIncomesCashFlow(List<FixedIncomeCashFlowNewRequest> fixedIncomesCashFlow) {
|
||||||
|
this.fixedIncomesCashFlow = fixedIncomesCashFlow;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue