From 492e2bef95bd9b4a2c5c5822d9c8cf777543f820 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 31 Oct 2024 17:58:39 +0300 Subject: [PATCH] =?UTF-8?q?registry-service=20http://jira.mfd.msk:8088/bro?= =?UTF-8?q?wse/CLS-788=20=D0=B7=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=A2=D0=9A=D0=A0=20=D0=B4=D0=BB=D1=8F=20=D0=9B?= =?UTF-8?q?=D0=9A=D0=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../loaders/ExecutionCurrencyLoader.java | 77 +++++++++++++++---- 1 file changed, 60 insertions(+), 17 deletions(-) diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/loaders/ExecutionCurrencyLoader.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/loaders/ExecutionCurrencyLoader.java index 9a070bfc0..52c68c5bd 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/loaders/ExecutionCurrencyLoader.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/loaders/ExecutionCurrencyLoader.java @@ -24,6 +24,8 @@ import static ru.spcex.clearing.registry.reports.ReportUtils.getLocalDateFromSql @Component public class ExecutionCurrencyLoader extends IDBLoader { + static final Long COMPANY_LKC_ID = 5L; + public ExecutionCurrencyLoader(AProperties properties, NamedParameterJdbcTemplate clearingJdbc) { super(properties.getPeriod(), clearingJdbc); } @@ -48,6 +50,7 @@ public class ExecutionCurrencyLoader extends IDBLoader { } Map tradingClearingRegistryById = new HashMap<>(); + TradingClearingRegistry tcrForCompanyLKC = null; { Set tkrIds = executionCurrencys.stream() .filter(eDep -> eDep.getPartyTradingClearingRegistry() == null) // оптимизация; @@ -70,6 +73,22 @@ public class ExecutionCurrencyLoader extends IDBLoader { tradingClearingRegistryById.put(tkr.getId(), tkr); } } + { + MapSqlParameterSource parameterSource = new MapSqlParameterSource(); + parameterSource.addValue("ids", COMPANY_LKC_ID); + List tradingClearingRegistries = clearingJdbc.query( + "select ID, CODE from TRADING_CLEARING_REGISTRY where COMPANY_ID = :ids", + parameterSource, new TradingClearingRegistryRowMapper() + ); + for (TradingClearingRegistry tcr5 : tradingClearingRegistries) { + if (tcrForCompanyLKC != null) + log.warn("Has many TCR for company {}: another {}", COMPANY_LKC_ID, tcrForCompanyLKC.getCode()); + tcrForCompanyLKC = tcr5; + } + if (tcrForCompanyLKC == null) { + log.warn("TCR for companyId={} not found", COMPANY_LKC_ID); + } + } } Map> companySymbolsForCompanyIdMap; @@ -153,16 +172,28 @@ public class ExecutionCurrencyLoader extends IDBLoader { } } - executionCurrency.setBuyerTkrCode(getTCRCodeFromValueOrById( + if (COMPANY_LKC_ID.equals(executionCurrency.getCounterPartyId())) { // 800 ЛЦК 5 + if (tcrForCompanyLKC != null) { + executionCurrency.setBuyerTkrCode(tcrForCompanyLKC.getCode()); + } + } else { + executionCurrency.setBuyerTkrCode(getTCRCodeFromValueOrById( executionCurrency.getCounterPartyTradingClearingRegistry(), // В execution Currency они заполнены executionCurrency.getCounterPartyTradingClearingRegistryId(), tradingClearingRegistryById - )); - executionCurrency.setSellerTkrCode(getTCRCodeFromValueOrById( - executionCurrency.getPartyTradingClearingRegistry(), // В execution Currency они заполнены - executionCurrency.getTradingClearingRegistryId(), - tradingClearingRegistryById - )); + )); + } + if (COMPANY_LKC_ID.equals(executionCurrency.getCompanyId())) { // 800 ЛЦК 5 + if (tcrForCompanyLKC != null) { + executionCurrency.setSellerTkrCode(tcrForCompanyLKC.getCode()); + } + } else { + executionCurrency.setSellerTkrCode(getTCRCodeFromValueOrById( + executionCurrency.getPartyTradingClearingRegistry(), // В execution Currency они заполнены + executionCurrency.getTradingClearingRegistryId(), + tradingClearingRegistryById + )); + } } else if (MoneyFlowSide.BUY.equalsByKey(side) || Side.BUY.equalsByKey(side)) { if (companyByCompanyId != null) { executionCurrency.setBuyer(companyByCompanyId.getShortName()); @@ -184,16 +215,28 @@ public class ExecutionCurrencyLoader extends IDBLoader { executionCurrency.setSellerCode(companySymbols.getCompanySymbolValue()); } } - executionCurrency.setBuyerTkrCode(getTCRCodeFromValueOrById( - executionCurrency.getPartyTradingClearingRegistry(), // В execution Currency они заполнены - executionCurrency.getTradingClearingRegistryId(), - tradingClearingRegistryById - )); - executionCurrency.setSellerTkrCode(getTCRCodeFromValueOrById( - executionCurrency.getCounterPartyTradingClearingRegistry(), // В execution Currency они заполнены - executionCurrency.getCounterPartyTradingClearingRegistryId(), - tradingClearingRegistryById - )); + if (COMPANY_LKC_ID.equals(executionCurrency.getCompanyId())) { // 800 ЛЦК 5 + if (tcrForCompanyLKC != null) { + executionCurrency.setBuyerTkrCode(tcrForCompanyLKC.getCode()); + } + } else { + executionCurrency.setBuyerTkrCode(getTCRCodeFromValueOrById( + executionCurrency.getPartyTradingClearingRegistry(), // В execution Currency они заполнены + executionCurrency.getTradingClearingRegistryId(), + tradingClearingRegistryById + )); + } + if (COMPANY_LKC_ID.equals(executionCurrency.getCounterPartyId())) { // 800 ЛЦК 5 + if (tcrForCompanyLKC != null) { + executionCurrency.setSellerTkrCode(tcrForCompanyLKC.getCode()); + } + } else { + executionCurrency.setSellerTkrCode(getTCRCodeFromValueOrById( + executionCurrency.getCounterPartyTradingClearingRegistry(), // В execution Currency они заполнены + executionCurrency.getCounterPartyTradingClearingRegistryId(), + tradingClearingRegistryById + )); + } } else { log.warn("Unknown executionCurrency[{}].side={}", executionCurrency.getId(), executionCurrency.getSide()); }