From bfca0aadf50bc22371bf846c60e00d00d56442fa Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 19 Jul 2023 11:31:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20registry#securitySymbol=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B5?= =?UTF-8?q?=20SDF01/57?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/builder/RegistryBuilder.java | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistryBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistryBuilder.java index 28971ac45..24a99b7bb 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistryBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistryBuilder.java @@ -3,8 +3,12 @@ package ru.spcex.clearing.service.builder; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity; +import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity; +import ru.clearing.classes.statics.data.misc.Currency; import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.classes.statics.data.security.MoneyMarketSecurity; import ru.clearing.classes.statics.data.security.Security; import ru.clearing.classes.statics.data.statement.Statement; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -30,6 +34,11 @@ public class RegistryBuilder { private final Imdg clearingAccountImdg; private final Imdg tradingClearingRegistryImdg; private final Imdg securityImdg; + private final Imdg fixedIncomeSecurityImdg; + private final Imdg moneyMarketSecurityImdg; + private final Imdg equitySecurityImdg; + private final Imdg currencyImdg; + public static RegistryBuilder builder(ImdgProvider imdgProvider) { return new RegistryBuilder(imdgProvider); @@ -40,6 +49,10 @@ public class RegistryBuilder { this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); this.securityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class); + this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class); + this.moneyMarketSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class); + this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class); + this.currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class); } public RegistryBuilder statement(Statement statement) { @@ -101,10 +114,8 @@ public class RegistryBuilder { rgs.setRegistryStatus(RegistryStatus.PROC.getKey()); rgs.setSecurityId(statement.getSecurityId()); if (statement.getSecurityId() != null) { - Security security = securityImdg.getSingleObjectByID(statement.getSecurityId()); - if (security != null) { - rgs.setSecuritySymbol(security.getSecuritySymbol()); - } + String securitySymbol = obtainSecuritySymbol(statement.getSecurityId()); + rgs.setSecuritySymbol(securitySymbol); } //fixme !rgs.setSettlementCode(); rgs.setTradingDate(statement.getSettlementDate()); //fixme ! today ? @@ -124,4 +135,16 @@ public class RegistryBuilder { rgs.setCheckBalance(BigDecimal.ZERO); return rgs; } + + private String obtainSecuritySymbol(Long securityId) { + Security security = fixedIncomeSecurityImdg.getSingleObjectByID(securityId); + if (security != null) return security.getSecuritySymbol(); + security = moneyMarketSecurityImdg.getSingleObjectByID(securityId); + if (security != null) return security.getSecuritySymbol(); + security = equitySecurityImdg.getSingleObjectByID(securityId); + if (security != null) return security.getSecuritySymbol(); + Currency currency = currencyImdg.getSingleObjectByID(securityId); + if (currency != null) return currency.getCurrencyCode(); + return null; + } }