From a99104d8ddef9ac23ce46d24c552b25b70fa6f32 Mon Sep 17 00:00:00 2001 From: akulikov Date: Tue, 6 Aug 2024 19:11:48 +0300 Subject: [PATCH] reports-service: http://jira.mfd.msk:8088/browse/CLS-711 (1st comment) --- .../ks/KSRepCashNettoReportBuilder.java | 80 +++---- .../ks/KSRepCashRegistersReportBuilder.java | 34 +-- .../ks/KSRepDepoNettoReportBuilder.java | 46 ++-- .../NotificationBuilderTest.java | 4 + .../services/ReportServiceTest_BP.java | 52 +++-- .../services/ReportServiceTest_KS.java | 207 +++++++++--------- .../ks/KS_REP_CASH_NETTO_expected.csv | 4 +- .../ks/KS_REP_CASH_REGISTERS_expected.csv | 3 +- .../ks/ksRepCashNetto_registries.csv | 36 +-- 9 files changed, 247 insertions(+), 219 deletions(-) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepCashNettoReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepCashNettoReportBuilder.java index 8c67cc23d..be787af67 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepCashNettoReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepCashNettoReportBuilder.java @@ -21,6 +21,7 @@ import ru.spcex.clearing.reports.builders.SessionIdParam; import ru.spcex.clearing.reports.builders.bean.KSRepCashNettoReport; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.RegistryDesignation; +import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.enumeration.RegistryTradingParams; import ru.spcex.platform.enumeration.ReportBuilderType; import ru.spcex.platform.enumeration.ReportKeys; @@ -77,13 +78,14 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder sessionIds = params.getSessionId(); if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg); ImdgPredicate finalPredicate = pb.and( pb.in("sessionId", sessionIds.toArray(new Long[0])), pb.equals("clearingDate", nowDate), registryPredicate, + pb.in("registryStatus", RegistryStatus.OK.getKey(), RegistryStatus.CLRD.getKey()), pb.or( pb.equals("accountType", AccountType.Clrn.getKey()), pb.equals("accountType", AccountType.Info.getKey()) @@ -100,7 +102,7 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder groupedRegistry = entry.getValue(); try { if (groupedRegistry.isEmpty()) { - log.warn("Empty LM_T and CM_T registries for account = {} and session_id = {}. Registries with id = [{}] was skipped", + log.warn("Empty TM_T and OM_T registries for account = {} and session_id = {}. Registries with id = [{}] was skipped", pairRegistryId.getAccount(), pairRegistryId.getSessionId(), groupedRegistry.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(", ")) @@ -108,52 +110,52 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder cmtRegistries = new ArrayList<>(); - List lmtRegistries = new ArrayList<>(); + List omtRegistries = new ArrayList<>(); + List tmtRegistries = new ArrayList<>(); Registry registry = null; for (Registry currRegistry : groupedRegistry) { registry = currRegistry; - if (RegistryDesignation.L.equalsByKey(currRegistry.getRegistryDesignation())) - lmtRegistries.add(currRegistry); - if (RegistryDesignation.C.equalsByKey(currRegistry.getRegistryDesignation())) - cmtRegistries.add(currRegistry); + if (RegistryDesignation.T.equalsByKey(currRegistry.getRegistryDesignation())) + tmtRegistries.add(currRegistry); + if (RegistryDesignation.O.equalsByKey(currRegistry.getRegistryDesignation())) + omtRegistries.add(currRegistry); } boolean invalid = false; - if (!cmtRegistries.isEmpty() || !lmtRegistries.isEmpty()) { + if (!omtRegistries.isEmpty() || !tmtRegistries.isEmpty()) { String sourceTradingCode = null; String sourceTkr = null; - if (!cmtRegistries.isEmpty()) { - Registry next = cmtRegistries.iterator().next(); + if (!omtRegistries.isEmpty()) { + Registry next = omtRegistries.iterator().next(); sourceTradingCode = next.getTradingCode(); sourceTkr = next.getTradingClearingRegistry(); } - if (!lmtRegistries.isEmpty()) { - Registry next = lmtRegistries.iterator().next(); + if (!tmtRegistries.isEmpty()) { + Registry next = tmtRegistries.iterator().next(); sourceTradingCode = next.getTradingCode(); sourceTkr = next.getTradingClearingRegistry(); } - for (Registry currRegistry : cmtRegistries) { + for (Registry currRegistry : omtRegistries) { if (!Objects.equals(sourceTradingCode, currRegistry.getTradingCode())) { invalid = true; - log.warn("Invalid CM_T registries set, tradingCode not equals. Registries was skipped"); + log.warn("Invalid OM_T registries set, tradingCode not equals. Registries was skipped"); break; } if (!Objects.equals(sourceTkr, currRegistry.getTradingClearingRegistry())) { invalid = true; - log.warn("Invalid CM_T registries set, tradingClearingRegistry not equals. Registries was skipped"); + log.warn("Invalid OM_T registries set, tradingClearingRegistry not equals. Registries was skipped"); break; } } - for (Registry currRegistry : lmtRegistries) { + for (Registry currRegistry : tmtRegistries) { if (!Objects.equals(sourceTradingCode, currRegistry.getTradingCode())) { invalid = true; - log.warn("Invalid LM_T registries set, tradingCode not equals. Registries was skipped"); + log.warn("Invalid TM_T registries set, tradingCode not equals. Registries was skipped"); break; } if (!Objects.equals(sourceTkr, currRegistry.getTradingClearingRegistry())) { invalid = true; - log.warn("Invalid CM_T registries set, tradingClearingRegistry not equals. Registries was skipped"); + log.warn("Invalid OM_T registries set, tradingClearingRegistry not equals. Registries was skipped"); break; } } @@ -187,10 +189,10 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder cmtRegistries = registryImdg.getCollectionObjectsByPredicate( + ImdgPredicate omtPredicate = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.OM_T).buildPredicate(pb); + Collection omtRegistries = registryImdg.getCollectionObjectsByPredicate( pb.and( - cmtPredicate, + omtPredicate, pb.in("sessionId", sessionIds), pb.equals("tradingCode", registry.getTradingCode()), pb.equals("companyId", registry.getCompanyId()), pb.equals("account", registry.getAccount()), - pb.equals("registryStatus", RegistryStatus.CLRD.getKey()) + pb.in("registryStatus", RegistryStatus.OK.getKey(), RegistryStatus.CLRD.getKey()) ) ); - ImdgPredicate lmtPredicate = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.LM_T).buildPredicate(pb); - Collection lmtRegistries = registryImdg.getCollectionObjectsByPredicate( + ImdgPredicate tmtPredicate = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.TM_T).buildPredicate(pb); + Collection tmtRegistries = registryImdg.getCollectionObjectsByPredicate( pb.and( - lmtPredicate, + tmtPredicate, pb.in("sessionId", sessionIds), pb.equals("tradingCode", registry.getTradingCode()), pb.equals("companyId", registry.getCompanyId()), pb.equals("account", registry.getAccount()), - pb.equals("registryStatus", RegistryStatus.CLRD.getKey()) + pb.in("registryStatus", RegistryStatus.OK.getKey(), RegistryStatus.CLRD.getKey()) ) ); Set contracts = new HashSet<>(); - BigDecimal cmtBalanceSum = BigDecimal.ZERO; - for (Registry cmtRegistry : cmtRegistries) { - Long counterPartyId = cmtRegistry.getCounterPartyId(); + BigDecimal omtBalanceSum = BigDecimal.ZERO; + for (Registry omtRegistry : omtRegistries) { + Long counterPartyId = omtRegistry.getCounterPartyId(); if (counterPartyId != null) { Collection clearingMemberCategory = clearingMemberCategoryImdg.getCollectionObjectsByPredicate( clearingMemberCategoryImdg.predicateBuilder().equals("companyId", counterPartyId) @@ -182,15 +182,15 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder dmxRegistries = registryImdg.getCollectionObjectsByPredicate( @@ -204,7 +204,7 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder { Long counterPartyId = reg.getCounterPartyId(); if (counterPartyId != null) { @@ -222,7 +222,7 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder sessionIds = params.getSessionId(); if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg); - ImdgPredicate registryPredicate = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.CS_T, RegistryTradingParams.LS_T).buildPredicate(pb); + ImdgPredicate registryPredicate = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.OS_T, RegistryTradingParams.TS_T).buildPredicate(pb); ImdgPredicate finalPredicate = pb.and( pb.in("sessionId", sessionIds.toArray(new Long[0])), pb.equals("clearingDate", nowDate), registryPredicate, + pb.in("registryStatus", RegistryStatus.OK.getKey(), RegistryStatus.CLRD.getKey()), pb.equals("accountType", AccountType.Depo.getKey()), pb.notNull("account") ); @@ -94,38 +96,38 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder groupedRegistry = entry.getValue(); try { if (groupedRegistry.isEmpty()) { - log.warn("Empty LS_T and CS_T registries for {}", + log.warn("Empty TS_T and OS_T registries for {}", pairRegistryId ); continue; } - List cstRegistries = new ArrayList<>(); - List lstRegistries = new ArrayList<>(); + List ostRegistries = new ArrayList<>(); + List tstRegistries = new ArrayList<>(); Registry registry = null; for (Registry currRegistry : groupedRegistry) { registry = currRegistry; - if (RegistryDesignation.L.equalsByKey(currRegistry.getRegistryDesignation())) - lstRegistries.add(currRegistry); - if (RegistryDesignation.C.equalsByKey(currRegistry.getRegistryDesignation())) - cstRegistries.add(currRegistry); + if (RegistryDesignation.T.equalsByKey(currRegistry.getRegistryDesignation())) + tstRegistries.add(currRegistry); + if (RegistryDesignation.O.equalsByKey(currRegistry.getRegistryDesignation())) + ostRegistries.add(currRegistry); } boolean invalid = false; - if (!cstRegistries.isEmpty() || !lstRegistries.isEmpty()) { + if (!ostRegistries.isEmpty() || !tstRegistries.isEmpty()) { String sourceTradingCode = null; - if (!cstRegistries.isEmpty()) sourceTradingCode = cstRegistries.iterator().next().getTradingCode(); - if (!lstRegistries.isEmpty()) sourceTradingCode = lstRegistries.iterator().next().getTradingCode(); - for (Registry currRegistry : cstRegistries) { + if (!ostRegistries.isEmpty()) sourceTradingCode = ostRegistries.iterator().next().getTradingCode(); + if (!tstRegistries.isEmpty()) sourceTradingCode = tstRegistries.iterator().next().getTradingCode(); + for (Registry currRegistry : ostRegistries) { if (Objects.equals(sourceTradingCode, currRegistry.getTradingCode())) continue; invalid = true; - log.warn("Invalid CS_T registries set, tradingCode not equals. Registries was skipped"); + log.warn("Invalid OS_T registries set, tradingCode not equals. Registries was skipped"); break; } - for (Registry currRegistry : lstRegistries) { + for (Registry currRegistry : tstRegistries) { if (Objects.equals(sourceTradingCode, currRegistry.getTradingCode())) continue; invalid = true; - log.warn("Invalid LS_T registries set, tradingCode not equals. Registries was skipped"); + log.warn("Invalid TS_T registries set, tradingCode not equals. Registries was skipped"); break; } if (invalid) continue; @@ -151,15 +153,15 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder allValues = registryImdg.getAllValues(); + for (Registry registry : allValues) registryImdg.delete(registry); Session session = new Session(); session.setCreated( @@ -1234,6 +1236,7 @@ public class ReportServiceTest_KS { registry.setRegistryCapacity(row[10]); registry.setRegistryUnit(row[11]); registry.setRegistryCode(row[12]); + registry.setRegistryStatus(row[15]); registry.setAccountType(row[6]); registry.setAccount(row[7]); if (row[6].equalsIgnoreCase(AccountType.Info.getKey())) { diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv index f671ff6a5..038b6a150 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv @@ -1,3 +1,3 @@ "FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","TKR","VALUE","DATE","OBL_VALUE","REQ_VALUE","LOT_CURRENCY","CURRENCY_NETTO","TR_EXECDATE" -"TRADING_CODE","146","20.01.1970T02:49:58","ACCOUNT","TKR","22.22","26.06.2024",,,,, -"TRADING_CODE","146","20.01.1970T02:49:58","ACCOUNT_FROM_ACCOUNT","TKR",,"26.06.2024","22.22","44.44",,, +"TRADING_CODE","146","20.01.1970T02:49:58","ACCOUNT","TKR","22.22","06.08.2024",,,,, +"TRADING_CODE","146","20.01.1970T02:49:58","ACCOUNT_FROM_ACCOUNT","TKR",,"06.08.2024","22.22","44.44",,, diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTERS_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTERS_expected.csv index 2d9508a04..59b529206 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTERS_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTERS_expected.csv @@ -1,2 +1,3 @@ "FIRMID","ACCOUNT","TKR","DATE","REGISTER_CODE","REGISTER_NAME","OPEN_BALANCE","CHANGE_BALANCE","ADD_WITHDRAW","CLOSE_BALANCE","REMARKS","TRADE_NUM","CURRENCY" -"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","01.07.2024","AM_T","AM_T_NAME","77.78","189.00","111.00","377.78",,, +"TRADING_CODE","ACCOUNT_FROM_ACCOUNT","TRADING_CLEARING_REGISTRY","06.08.2024","AM_T","AM_T_NAME","77.78","189.00","111.00","377.78",,, +"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","06.08.2024","AM_T","AM_T_NAME","77.78","189.00","111.00","377.78",,, diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/ksRepCashNetto_registries.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/ksRepCashNetto_registries.csv index ee191b2e6..38f4f7aa1 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/ksRepCashNetto_registries.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/ksRepCashNetto_registries.csv @@ -1,19 +1,19 @@ company_id;trading_code;clearing_code;short_name;full_name;account_id;account_type;account;registry_designation;registry_instrument_type;registry_capacity;registry_unit;registry_code;trading_clearing_registry_id;trading_clearing_registry;registry_status;security_id;security_symbol;balance;open_balance;close_balance;credit;debit;settled_credit;settled_debit;check_balance;diff_balance;plan_balance;balance_dimension;settlement_date;settlement_code;trading_date;clearing_date;refund_date;value_date;price;contract;counter_party_id;comment;parent_id;group_id;session_id;session_type;payment_id;id;created_at;updated_at;section -4500120;95;95;Банк ВТБ (ПАО);Банк ВТБ (публичное акционерное общество);4410078;CLRN;30411810300000002094;C;M;A;T;CMAT;21240012;0095CAT00001;CLRD;643;RUB;69,75;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;80162;(null);(null);507;47580029;UNIT;(null);47580094;24.06.2024 14:16;24.06.2024 15:19;CURR -80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;38690096;CLRN;3,04118607E+019;C;M;A;T;CMAT;130040;0008MAT00001;CLRD;860;UZS;10000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;4500120;(null);(null);507;47580029;UNIT;(null);47580076;24.06.2024 14:16;24.06.2024 15:19;CURR -80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;38690028;CLRN;3,04111569E+019;C;M;A;T;CMAT;1860016;0472CAT00001;CLRD;156;CNY;10;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;4500072;(null);(null);508;47580029;UNIT;(null);47580074;24.06.2024 14:16;24.06.2024 15:19;CURR -80136;45;45;АО "АБ "РОССИЯ";Акционерное общество «Акционерный Банк «РОССИЯ»;130023;CLRN;3,04118103E+019;C;M;A;T;CMAT;1860025;0045CAT00001;CLRD;643;RUB;3000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;17,12;DT1000S001U/240624/45/24062400000001;80074;(null);(null);24062400000001;47580029;UNIT;(null);47580072;24.06.2024 14:16;24.06.2024 15:19;MKR -4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";47130002;INFO;3,99118600000001E+019;C;M;A;T;CMAT;47130004;0234CAT00001;CLRD;860;UZS;10000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;80022;(null);(null);1518298;47580029;UNIT;(null);47580093;24.06.2024 14:16;24.06.2024 15:19;CURR -80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130013;CLRN;3,041181E+019;C;M;A;T;CMAT;1930000;0008CAT00001;CLRD;643;RUB;7000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;16,88;DT1000S001U/240624/8/24062400000002;80074;(null);(null);24062400000002;47580029;UNIT;(null);47580079;24.06.2024 14:16;24.06.2024 15:19;MKR -4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";4410023;INFO;3,99118100000003E+019;C;M;A;T;CMAT;47130004;0234CAT00001;CLRD;643;RUB;129,58;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;80022;(null);(null);508;47580029;UNIT;(null);47580073;24.06.2024 14:16;24.06.2024 15:19;CURR -80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130013;CLRN;3,041181E+019;C;M;A;T;CMAT;1930000;0008CAT00001;CLRD;643;RUB;9743,9;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;97;(null);80022;(null);(null);1461034;47580029;UNIT;(null);47580085;24.06.2024 14:16;24.06.2024 15:19;FOND -80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;C;M;A;T;CMAT;1860016;0472CAT00001;CLRD;643;RUB;69757,5;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;4500072;(null);(null);1518298;47580029;UNIT;(null);47580090;24.06.2024 14:16;24.06.2024 15:19;CURR -80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;38690032;CLRN;3,04118605E+019;L;M;A;T;LMAT;1860016;0472CAT00001;CLRD;860;UZS;10000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;4500072;(null);(null);1518298;47580029;UNIT;(null);47580075;24.06.2024 14:16;24.06.2024 15:19;CURR -4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";47130000;INFO;3,99111560000002E+019;L;M;A;T;LMAT;47130004;0234CAT00001;CLRD;156;CNY;10;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;80022;(null);(null);508;47580029;UNIT;(null);47580087;24.06.2024 14:16;24.06.2024 15:19;CURR -80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;L;M;A;T;LMAT;1860016;0472CAT00001;CLRD;643;RUB;129,58;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;4500072;(null);(null);508;47580029;UNIT;(null);47580083;24.06.2024 14:16;24.06.2024 15:19;CURR -80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;L;M;A;T;LMAT;1860016;0472CAT00001;CLRD;643;RUB;9743,9;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;97;(null);80162;(null);(null);1461034;47580029;UNIT;(null);47580095;24.06.2024 14:16;24.06.2024 15:19;FOND -80074;302;302;Комитет финансов СПб;Комитет финансов Санкт-Петербурга;130019;CLRN;3,04118107E+019;L;M;A;T;LMAT;130034;0302MAT00001;CLRD;643;RUB;7000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;16,88;DT1000S001U/240624/8/24062400000002;80162;(null);(null);24062400000002;47580029;UNIT;(null);47580089;24.06.2024 14:16;24.06.2024 15:19;MKR -4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";4410023;INFO;3,99118100000003E+019;L;M;A;T;LMAT;47130004;0234CAT00001;CLRD;643;RUB;69757,5;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;80022;(null);(null);1518298;47580029;UNIT;(null);47580078;24.06.2024 14:16;24.06.2024 15:19;CURR -80074;302;302;Комитет финансов СПб;Комитет финансов Санкт-Петербурга;130019;CLRN;3,04118107E+019;L;M;A;T;LMAT;130034;0302MAT00001;CLRD;643;RUB;3000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;17,12;DT1000S001U/240624/45/24062400000001;80136;(null);(null);24062400000001;47580029;UNIT;(null);47580086;24.06.2024 14:16;24.06.2024 15:19;MKR -80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130017;CLRN;3,04118102E+019;L;M;A;T;LMAT;130040;0008MAT00001;CLRD;643;RUB;69,75;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;4500120;(null);(null);507;47580029;UNIT;(null);47580084;24.06.2024 14:16;24.06.2024 15:19;CURR -4500120;95;95;Банк ВТБ (ПАО);Банк ВТБ (публичное акционерное общество);38690016;CLRN;30411810300000002049;L;M;A;T;LMAT;21240012;0095CAT00001;CLRD;860;UZS;10000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;80162;(null);(null);507;47580029;UNIT;(null);47580088;24.06.2024 14:16;24.06.2024 15:19;CURR +4500120;95;95;Банк ВТБ (ПАО);Банк ВТБ (публичное акционерное общество);4410078;CLRN;30411810300000002094;O;M;A;T;OMAT;21240012;0095CAT00001;CLRD;643;RUB;69,75;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;80162;(null);(null);507;47580029;UNIT;(null);47580094;24.06.2024 14:16;24.06.2024 15:19;CURR +80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;38690096;CLRN;3,04118607E+019;O;M;A;T;OMAT;130040;0008MAT00001;CLRD;860;UZS;10000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;4500120;(null);(null);507;47580029;UNIT;(null);47580076;24.06.2024 14:16;24.06.2024 15:19;CURR +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;38690028;CLRN;3,04111569E+019;O;M;A;T;OMAT;1860016;0472CAT00001;CLRD;156;CNY;10;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;4500072;(null);(null);508;47580029;UNIT;(null);47580074;24.06.2024 14:16;24.06.2024 15:19;CURR +80136;45;45;АО "АБ "РОССИЯ";Акционерное общество «Акционерный Банк «РОССИЯ»;130023;CLRN;3,04118103E+019;O;M;A;T;OMAT;1860025;0045CAT00001;CLRD;643;RUB;3000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;17,12;DT1000S001U/240624/45/24062400000001;80074;(null);(null);24062400000001;47580029;UNIT;(null);47580072;24.06.2024 14:16;24.06.2024 15:19;MKR +4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";47130002;INFO;3,99118600000001E+019;O;M;A;T;OMAT;47130004;0234CAT00001;CLRD;860;UZS;10000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;80022;(null);(null);1518298;47580029;UNIT;(null);47580093;24.06.2024 14:16;24.06.2024 15:19;CURR +80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130013;CLRN;3,041181E+019;O;M;A;T;OMAT;1930000;0008CAT00001;CLRD;643;RUB;7000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;16,88;DT1000S001U/240624/8/24062400000002;80074;(null);(null);24062400000002;47580029;UNIT;(null);47580079;24.06.2024 14:16;24.06.2024 15:19;MKR +4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";4410023;INFO;3,99118100000003E+019;O;M;A;T;OMAT;47130004;0234CAT00001;CLRD;643;RUB;129,58;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;80022;(null);(null);508;47580029;UNIT;(null);47580073;24.06.2024 14:16;24.06.2024 15:19;CURR +80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130013;CLRN;3,041181E+019;O;M;A;T;OMAT;1930000;0008CAT00001;CLRD;643;RUB;9743,9;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;97;(null);80022;(null);(null);1461034;47580029;UNIT;(null);47580085;24.06.2024 14:16;24.06.2024 15:19;FOND +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;O;M;A;T;OMAT;1860016;0472CAT00001;CLRD;643;RUB;69757,5;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;4500072;(null);(null);1518298;47580029;UNIT;(null);47580090;24.06.2024 14:16;24.06.2024 15:19;CURR +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;38690032;CLRN;3,04118605E+019;T;M;A;T;TMAT;1860016;0472CAT00001;CLRD;860;UZS;10000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;4500072;(null);(null);1518298;47580029;UNIT;(null);47580075;24.06.2024 14:16;24.06.2024 15:19;CURR +4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";47130000;INFO;3,99111560000002E+019;T;M;A;T;TMAT;47130004;0234CAT00001;CLRD;156;CNY;10;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;80022;(null);(null);508;47580029;UNIT;(null);47580087;24.06.2024 14:16;24.06.2024 15:19;CURR +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;T;M;A;T;TMAT;1860016;0472CAT00001;CLRD;643;RUB;129,58;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;4500072;(null);(null);508;47580029;UNIT;(null);47580083;24.06.2024 14:16;24.06.2024 15:19;CURR +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;T;M;A;T;TMAT;1860016;0472CAT00001;CLRD;643;RUB;9743,9;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;97;(null);80162;(null);(null);1461034;47580029;UNIT;(null);47580095;24.06.2024 14:16;24.06.2024 15:19;FOND +80074;302;302;Комитет финансов СПб;Комитет финансов Санкт-Петербурга;130019;CLRN;3,04118107E+019;T;M;A;T;TMAT;130034;0302MAT00001;CLRD;643;RUB;7000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;16,88;DT1000S001U/240624/8/24062400000002;80162;(null);(null);24062400000002;47580029;UNIT;(null);47580089;24.06.2024 14:16;24.06.2024 15:19;MKR +4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";4410023;INFO;3,99118100000003E+019;T;M;A;T;TMAT;47130004;0234CAT00001;CLRD;643;RUB;69757,5;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;80022;(null);(null);1518298;47580029;UNIT;(null);47580078;24.06.2024 14:16;24.06.2024 15:19;CURR +80074;302;302;Комитет финансов СПб;Комитет финансов Санкт-Петербурга;130019;CLRN;3,04118107E+019;T;M;A;T;TMAT;130034;0302MAT00001;CLRD;643;RUB;3000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;17,12;DT1000S001U/240624/45/24062400000001;80136;(null);(null);24062400000001;47580029;UNIT;(null);47580086;24.06.2024 14:16;24.06.2024 15:19;MKR +80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130017;CLRN;3,04118102E+019;T;M;A;T;TMAT;130040;0008MAT00001;CLRD;643;RUB;69,75;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;4500120;(null);(null);507;47580029;UNIT;(null);47580084;24.06.2024 14:16;24.06.2024 15:19;CURR +4500120;95;95;Банк ВТБ (ПАО);Банк ВТБ (публичное акционерное общество);38690016;CLRN;30411810300000002049;T;M;A;T;TMAT;21240012;0095CAT00001;CLRD;860;UZS;10000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;80162;(null);(null);507;47580029;UNIT;(null);47580088;24.06.2024 14:16;24.06.2024 15:19;CURR