From 385992cdb16643ccbfe4dee3924b862a9858ca02 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 22 Jun 2023 18:50:23 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-348 --- .../service/validation/STradesValidationRule.java | 9 +++++---- .../gatewayapi/service/SecurityService.java | 7 +++++-- .../service/cud/GatewaySecurityService.java | 13 +++++++------ .../clearing/platform/messaging/domain/Consts.java | 3 ++- .../cud/company/EquitySecurityGatewayRequest.java | 3 +++ .../cud/company/FixedIncomeGatewayRequest.java | 3 +++ .../cud/company/SecurityFondGatewayRequest.java | 2 -- 7 files changed, 25 insertions(+), 15 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java index 97c2ed117..0e205a722 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java @@ -89,6 +89,7 @@ public enum STradesValidationRule implements IValidationRule validate(ImdgValidationContext context) { STrades validatedObject = context.getValidatedObject(); if (TextUtil.isEmpty(validatedObject.getAccount())) { - return of(ClearingError.TradingClearingRegistryNotFound, validatedObject.getAccount()); + return of(ClearingError.TradingClearingRegistryNotFound, "", validatedObject.getAccount()); } if (context.getStoredObject(ValidationStored.STradesCompany) == null) { //maybe unnecessary return of(ClearingError.CompanyNotFound, validatedObject.getSecCode()); } Imdg registryImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); TradingClearingRegistry tcRegister = registryImdg.getSingleObjectByFieldValues( - Map.of("code", validatedObject.getAccount(), + Map.of("code", validatedObject.getAccount().trim(), "companyId", ((Company) context.getStoredObject(ValidationStored.STradesCompany)).getId() - )); + )); if (tcRegister == null) { - return of(ClearingError.TradingClearingRegistryNotFound, validatedObject.getAccount()); + return of(ClearingError.TradingClearingRegistryNotFound, "", validatedObject.getAccount()); } // 2.4. Проверить, что найденный торгово-клиринговый регистр в активном состоянии: // tradingClearingRegistry.status≠BLKD/SSPD/CLOS (см. справочник serviceStatus). diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/SecurityService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/SecurityService.java index af6bac1a6..251889646 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/SecurityService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/SecurityService.java @@ -51,12 +51,15 @@ public class SecurityService { if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security); securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest); + fillRequest(securityGatewayRequest, security, listingRequests, couponPeriodRequests, cashFlowRequests); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_BOND_GATEWAY, securityGatewayRequest); } else { EquitySecurityNewRequest equitySecurityNewRequest = securityRequestAdapter.toEquitySecurityNewRequest(security); securityGatewayRequest = new EquitySecurityGatewayRequest(equitySecurityNewRequest); + fillRequest(securityGatewayRequest, security, listingRequests, couponPeriodRequests, cashFlowRequests); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_EQTY_GATEWAY, securityGatewayRequest); } - fillRequest(securityGatewayRequest, security, listingRequests, couponPeriodRequests, cashFlowRequests); - kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_GATEWAY, securityGatewayRequest); + } } diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java index ddadbbc3a..2619be4f6 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java @@ -17,7 +17,6 @@ import ru.clearing.classes.statics.data.misc.Listing; import ru.clearing.classes.statics.data.security.MoneyMarketSecurity; import ru.clearing.classes.statics.data.security.Security; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.company.EquitySecurityGatewayRequest; @@ -109,9 +108,12 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin @Override public void afterPropertiesSet() { - callback(SecurityFondGatewayRequest.class) + callback(FixedIncomeGatewayRequest.class) .setFunction(this::newSecurities) - .forDestination(Consts.DESTINATION_SECURITY_GATEWAY, callbacks::put); + .forDestination(Consts.DESTINATION_SECURITY_BOND_GATEWAY, callbacks::put); + callback(EquitySecurityGatewayRequest.class) + .setFunction(this::newSecurities) + .forDestination(Consts.DESTINATION_SECURITY_EQTY_GATEWAY, callbacks::put); callback(MoneyMarketSecurityNewRequest.class) .setFunction(this::newMoneyMarketSecurity) .forDestination(Consts.DESTINATION_GATEWAY_MONEY_MARKET_SECURITY, callbacks::put); @@ -163,10 +165,9 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin } } - private RequestInfoUpdate newSecurities(BaseRequest baseRequest) { + private RequestInfoUpdate newSecurities(BaseRequest baseRequest) { log.debug("SecurityFondGatewayRequest id={} received", baseRequest.getId()); - SecurityFondGatewayRequest req = baseRequest.getRequestPayload(); - + SecurityFondGatewayRequest req = (SecurityFondGatewayRequest) baseRequest.getRequestPayload(); Long companyId = findCompany(req);//issuerId findCompany if (companyId == null) { log.debug("CompanyId (issuer) not found."); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index 3c59d5b5a..d3f8f6ee4 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -14,7 +14,8 @@ public interface Consts { String DESTINATION_FIXED_INCOME_SECURITY_UPDATE = "fixed-income-security-update"; String DESTINATION_FIXED_INCOME_SECURITY_DELETE = "fixed-income-security-delete"; - String DESTINATION_SECURITY_GATEWAY = "security-gateway-request-new"; + String DESTINATION_SECURITY_BOND_GATEWAY = "security-bond-gateway-request-new"; + String DESTINATION_SECURITY_EQTY_GATEWAY = "security-eqty-gateway-request-new"; String DESTINATION_FIXED_INCOME_CASH_FLOW_NEW = "fixed-income-cash-flow-new"; String DESTINATION_FIXED_INCOME_CASH_FLOW_UPDATE = "fixed-income-cash-flow-update"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java index 5b03e0ad0..8ae1c64fa 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java @@ -7,6 +7,9 @@ public class EquitySecurityGatewayRequest extends SecurityFondGatewayRequest { @JsonProperty private EquitySecurityNewRequest security; + public EquitySecurityGatewayRequest() { + } + public EquitySecurityGatewayRequest(EquitySecurityNewRequest security) { this.security = security; } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java index d0b921ede..3a444ebdc 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java @@ -7,6 +7,9 @@ public class FixedIncomeGatewayRequest extends SecurityFondGatewayRequest { @JsonProperty private FixedIncomeSecurityNewRequest security; + public FixedIncomeGatewayRequest() { + } + public FixedIncomeGatewayRequest(FixedIncomeSecurityNewRequest security) { this.security = security; } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityFondGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityFondGatewayRequest.java index 084bd89ac..bf11dc5e5 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityFondGatewayRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityFondGatewayRequest.java @@ -1,7 +1,6 @@ package ru.spcex.clearing.platform.messaging.domain.cud.company; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonTypeInfo; 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; @@ -9,7 +8,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.securitites.ListingNewReq import java.util.ArrayList; import java.util.List; -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) public abstract class SecurityFondGatewayRequest { @JsonProperty private String uuid;