diff --git a/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/SecuritySelector.java b/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/SecuritySelector.java new file mode 100644 index 000000000..bbc7f9794 --- /dev/null +++ b/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/SecuritySelector.java @@ -0,0 +1,37 @@ +package ru.spcex.clearing.util.security; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity; +import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity; +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.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; + +@Component +public class SecuritySelector { + + private final Imdg fixedIncomeSecurityImdg; + private final Imdg moneyMarketSecurityImdg; + private final Imdg equitySecurity; + + @Autowired + public SecuritySelector(ImdgProvider imdgProvider) { + this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class); + this.moneyMarketSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class); + this.equitySecurity = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class); + } + + public Security selectSecurityById(Long securityId) { + Security security = fixedIncomeSecurityImdg.getSingleObjectByID(securityId); + if (security != null) return security; + security = moneyMarketSecurityImdg.getSingleObjectByID(securityId); + if (security != null) return security; + security = equitySecurity.getSingleObjectByID(securityId); + if (security != null) return security; + + return security; // null + } +} diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index 4e656358b..a552a7d0a 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -26,6 +26,7 @@ public final class IMDGDistributedNames { public static final String Map_ClearingMemberCategory = "Map_ClearingMemberCategory"; public static final String Map_InformationAccountHistory = "Map_InformationAccountHistory"; public static final String Map_InformationAccount = "Map_InformationAccount"; + @Deprecated public static final String Map_Security = "Map_Security"; public static final String Map_SecurityHistory = "Map_SecurityHistory"; public static final String Map_RelationHistory = "Map_RelationHistory";