This commit is contained in:
parent
3c480922d7
commit
b6f6b74e39
2 changed files with 104 additions and 31 deletions
|
|
@ -0,0 +1,88 @@
|
||||||
|
package ru.spcex.clearing.securities.service.builder;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.DigitalCertificateSecurityGatewayRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.DigitalCertificateSecurityNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.DigitalCertificateSecurityUpdateRequest;
|
||||||
|
import ru.spcex.platform.enumeration.InstrumentType;
|
||||||
|
|
||||||
|
public class DigitalCertificateRequestBuilder {
|
||||||
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
private DigitalCertificateSecurityGatewayRequest gatewayRequest;
|
||||||
|
private Long companyId;
|
||||||
|
private DigitalCertificateRequestBuilder() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DigitalCertificateRequestBuilder builder() {
|
||||||
|
return new DigitalCertificateRequestBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DigitalCertificateRequestBuilder gatewayRequest(final DigitalCertificateSecurityGatewayRequest gatewayRequest) {
|
||||||
|
this.gatewayRequest = gatewayRequest;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DigitalCertificateRequestBuilder companyId(final Long companyId) {
|
||||||
|
this.companyId = companyId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public DigitalCertificateSecurityNewRequest buildNewRequest() {
|
||||||
|
DigitalCertificateSecurityNewRequest newRequest = new DigitalCertificateSecurityNewRequest();
|
||||||
|
|
||||||
|
InstrumentType clrInstrumentType = Arrays.asList("DC", "D")
|
||||||
|
.contains(gatewayRequest.getInstrumentType()) ? InstrumentType.DGCT : null;
|
||||||
|
if (clrInstrumentType == null) {
|
||||||
|
log.warn("Not defined instrumentType={}", gatewayRequest.getInstrumentType());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
newRequest.setInstrumentType(clrInstrumentType.getKey());
|
||||||
|
newRequest.setBaseCode(gatewayRequest.getDepoDcId());
|
||||||
|
newRequest.setIssuerId(companyId);
|
||||||
|
newRequest.setShortName(gatewayRequest.getShortName());
|
||||||
|
newRequest.setFullName(gatewayRequest.getFullName());
|
||||||
|
newRequest.setShortNameEng(gatewayRequest.getShortNameEng());
|
||||||
|
newRequest.setFullNameEng(gatewayRequest.getFullNameEng());
|
||||||
|
newRequest.setBaseUnitSize(gatewayRequest.getNumberOfUcp().longValue());
|
||||||
|
newRequest.setPriceVarianceLimit(gatewayRequest.getDeltaPrice());
|
||||||
|
newRequest.setSecuritySymbol(gatewayRequest.getSecuritySymbol());
|
||||||
|
newRequest.setWorkflowStatus(gatewayRequest.getWorkflowStatus());
|
||||||
|
newRequest.setNominalTypeCode(gatewayRequest.getTypeCode());
|
||||||
|
newRequest.setSettlementHouse(gatewayRequest.getSettlementOrganization());
|
||||||
|
newRequest.setDepository(gatewayRequest.getSettlementDepository());
|
||||||
|
newRequest.setNominalIndexationDate(gatewayRequest.getNominalIndexDate());
|
||||||
|
newRequest.setNominalValue(gatewayRequest.getNominalDenominationUnitForDate());
|
||||||
|
newRequest.setNominalIndexationSign(gatewayRequest.getNominalIndexFact());
|
||||||
|
return newRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DigitalCertificateSecurityUpdateRequest buildUpdateRequest() {
|
||||||
|
DigitalCertificateSecurityUpdateRequest updateRequest = new DigitalCertificateSecurityUpdateRequest();
|
||||||
|
|
||||||
|
InstrumentType clrInstrumentType = Arrays.asList("DC", "D")
|
||||||
|
.contains(gatewayRequest.getInstrumentType()) ? InstrumentType.DGCT : null;
|
||||||
|
if (clrInstrumentType == null) {
|
||||||
|
log.warn("Not defined instrumentType={}", gatewayRequest.getInstrumentType());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
updateRequest.setInstrumentType(clrInstrumentType.getKey());
|
||||||
|
updateRequest.setBaseCode(gatewayRequest.getDepoDcId());
|
||||||
|
updateRequest.setIssuerId(companyId);
|
||||||
|
updateRequest.setShortName(gatewayRequest.getShortName());
|
||||||
|
updateRequest.setFullName(gatewayRequest.getFullName());
|
||||||
|
updateRequest.setShortNameEng(gatewayRequest.getShortNameEng());
|
||||||
|
updateRequest.setFullNameEng(gatewayRequest.getFullNameEng());
|
||||||
|
updateRequest.setBaseUnitSize(gatewayRequest.getNumberOfUcp().longValue());
|
||||||
|
updateRequest.setPriceVarianceLimit(gatewayRequest.getDeltaPrice());
|
||||||
|
updateRequest.setSecuritySymbol(gatewayRequest.getSecuritySymbol());
|
||||||
|
updateRequest.setWorkflowStatus(gatewayRequest.getWorkflowStatus());
|
||||||
|
updateRequest.setNominalTypeCode(gatewayRequest.getTypeCode());
|
||||||
|
updateRequest.setSettlementHouse(gatewayRequest.getSettlementOrganization());
|
||||||
|
updateRequest.setDepository(gatewayRequest.getSettlementDepository());
|
||||||
|
updateRequest.setNominalIndexationDate(gatewayRequest.getNominalIndexDate());
|
||||||
|
updateRequest.setNominalValue(gatewayRequest.getNominalDenominationUnitForDate());
|
||||||
|
updateRequest.setNominalIndexationSign(gatewayRequest.getNominalIndexFact());
|
||||||
|
return updateRequest;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package ru.spcex.clearing.securities.service.cud;
|
package ru.spcex.clearing.securities.service.cud;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -53,6 +52,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.security.CurrencyPairSecu
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.security.CurrencyPairSecurityUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.security.CurrencyPairSecurityUpdateRequest;
|
||||||
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;
|
||||||
|
import ru.spcex.clearing.securities.service.builder.DigitalCertificateRequestBuilder;
|
||||||
import ru.spcex.clearing.securities.service.facade.DigitalCertificateSecurityFacade;
|
import ru.spcex.clearing.securities.service.facade.DigitalCertificateSecurityFacade;
|
||||||
import ru.spcex.clearing.securities.service.facade.ListingFacade;
|
import ru.spcex.clearing.securities.service.facade.ListingFacade;
|
||||||
import ru.spcex.clearing.securities.validation.ListingValidationProvider;
|
import ru.spcex.clearing.securities.validation.ListingValidationProvider;
|
||||||
|
|
@ -479,47 +479,32 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
|
|
||||||
private RequestInfoUpdate newDigitalSecurities(BaseRequest<DigitalCertificateSecurityGatewayRequest> baseRequest) {
|
private RequestInfoUpdate newDigitalSecurities(BaseRequest<DigitalCertificateSecurityGatewayRequest> baseRequest) {
|
||||||
DigitalCertificateSecurityGatewayRequest request = baseRequest.getRequestPayload();
|
DigitalCertificateSecurityGatewayRequest request = baseRequest.getRequestPayload();
|
||||||
DigitalCertificateSecurityNewRequest newRequest = new DigitalCertificateSecurityNewRequest();
|
|
||||||
newRequest.setBaseCode(request.getDepoDcId());
|
|
||||||
|
|
||||||
InstrumentType clrInstrumentType = Arrays.asList("DC", "D")
|
|
||||||
.contains(request.getInstrumentType()) ? InstrumentType.DGCT : null;
|
|
||||||
if (clrInstrumentType == null) {
|
|
||||||
log.warn("Not defined instrumentType={}", request.getInstrumentType());
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
newRequest.setInstrumentType(request.getInstrumentType());
|
|
||||||
|
|
||||||
Map<String, Comparable<?>> query = new HashMap<>();
|
Map<String, Comparable<?>> query = new HashMap<>();
|
||||||
query.put("companySymbol", CompanySymbol.UUID.getKey());
|
query.put("companySymbol", CompanySymbol.UUID.getKey());
|
||||||
query.put("companySymbolValue", request.getIssuerId());
|
query.put("companySymbolValue", request.getIssuerId());
|
||||||
|
|
||||||
CompanySymbols companySymbols = companySymbolsImdg.getSingleObjectByFieldValues(query);
|
CompanySymbols companySymbols = companySymbolsImdg.getSingleObjectByFieldValues(query);
|
||||||
|
Long companyId = null;
|
||||||
if (companySymbols != null) {
|
if (companySymbols != null) {
|
||||||
Long companyId = companySymbols.getCompanyId();
|
companyId = companySymbols.getCompanyId();
|
||||||
newRequest.setIssuerId(companyId);
|
|
||||||
} else {
|
} else {
|
||||||
log.warn("Not found company symbols..skip request");
|
log.warn("Not found company symbols..");
|
||||||
}
|
}
|
||||||
|
DigitalCertificateRequestBuilder builder = DigitalCertificateRequestBuilder.builder()
|
||||||
newRequest.setShortName(request.getShortName());
|
.gatewayRequest(request)
|
||||||
newRequest.setFullName(request.getFullName());
|
.companyId(companyId);
|
||||||
newRequest.setShortNameEng(request.getShortNameEng());
|
|
||||||
newRequest.setFullNameEng(request.getFullNameEng());
|
|
||||||
newRequest.setBaseUnitSize(request.getNumberOfUcp().longValue());
|
|
||||||
newRequest.setPriceVarianceLimit(request.getDeltaPrice());
|
|
||||||
newRequest.setSecuritySymbol(request.getSecuritySymbol());
|
|
||||||
newRequest.setWorkflowStatus(request.getWorkflowStatus());
|
|
||||||
newRequest.setNominalTypeCode(request.getTypeCode());
|
|
||||||
newRequest.setSettlementHouse(request.getSettlementOrganization());
|
|
||||||
newRequest.setDepository(request.getSettlementDepository());
|
|
||||||
newRequest.setNominalIndexationDate(request.getNominalIndexDate());
|
|
||||||
newRequest.setNominalValue(request.getNominalDenominationUnitForDate());
|
|
||||||
newRequest.setNominalIndexationSign(request.getNominalIndexFact());
|
|
||||||
|
|
||||||
digitalCertificateSecurityFacade.newDigitalCertificate(newRequest);
|
|
||||||
|
|
||||||
Security security = securitySelector.selectSecurityBySymbol(request.getSecuritySymbol());
|
Security security = securitySelector.selectSecurityBySymbol(request.getSecuritySymbol());
|
||||||
|
if (security == null) {
|
||||||
|
DigitalCertificateSecurityNewRequest newRequest = builder.buildNewRequest();
|
||||||
|
digitalCertificateSecurityFacade.newDigitalCertificate(newRequest);
|
||||||
|
} else {
|
||||||
|
DigitalCertificateSecurityUpdateRequest updateRequest = builder.buildUpdateRequest();
|
||||||
|
digitalCertificateSecurityFacade.updateDigitalCertificate(updateRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
security = securitySelector.selectSecurityBySymbol(request.getSecuritySymbol());
|
||||||
Long securityId = security.getId();
|
Long securityId = security.getId();
|
||||||
for (ListingNewRequest listingReq : request.getListing()) {
|
for (ListingNewRequest listingReq : request.getListing()) {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue