From f21bafb2d7d1b51bd0db1be286a6468ded18d303 Mon Sep 17 00:00:00 2001 From: ialbert Date: Mon, 23 Jun 2025 15:28:06 +0300 Subject: [PATCH] =?UTF-8?q?Execution=20=D1=83=D1=81=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BD=D0=B0=20=D0=BC=D0=B0=D1=80=D0=BA=D0=B5?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/service/execution/ExecUploadKey.java | 13 +++++++++---- .../execution/ExecutionCurrencyComponent.java | 1 + .../execution/ExecutionDepositComponent.java | 1 + .../service/execution/ExecutionFondComponent.java | 1 + .../ks/KSCommissionTradesReportBuilder.java | 3 +++ .../builders/ks/KSRepTradesReportBuilder.java | 7 ++++--- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecUploadKey.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecUploadKey.java index 678dbb3ea..de3290f73 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecUploadKey.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecUploadKey.java @@ -4,14 +4,19 @@ import java.time.LocalDate; import java.util.Objects; import ru.clearing.classes.statics.data.execution.ExecutionCommon; -public record ExecUploadKey(LocalDate tradeDate, Long exchangeExecutionId, String side) { +public record ExecUploadKey(LocalDate tradeDate, Long exchangeExecutionId, String market, String side) { - public static ExecUploadKey cash(LocalDate tradingDate, Long exchangeExecutionId, String side) { - return new ExecUploadKey(tradingDate, exchangeExecutionId, side); + public static ExecUploadKey cash(LocalDate tradingDate, Long exchangeExecutionId, String market, String side) { + return new ExecUploadKey(tradingDate, exchangeExecutionId, market, side); } public static ExecUploadKey cash(ExecutionCommon exec) { - return new ExecUploadKey(exec.getTradingDate(), exec.getExchangeExecutionId(), exec.getSide()); + return new ExecUploadKey( + exec.getTradingDate(), + exec.getExchangeExecutionId(), + exec.getMarket(), + exec.getSide() + ); } @Override diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionCurrencyComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionCurrencyComponent.java index 9d647d224..869c9ac8d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionCurrencyComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionCurrencyComponent.java @@ -176,6 +176,7 @@ public class ExecutionCurrencyComponent implements IExecutionUploadComponent { // MoneyFlowSide excDepSide = sTrdSide == Side.BUY ? MoneyFlowSide.BUY : MoneyFlowSide.SELL; ExecUploadKey excKey = ExecUploadKey.cash(sTrd.getTradeDate(), sTrd.getTradeNum(), + sTrd.getClassCode(), sTrdSide.getKey()); return cash.containsKey(excKey); }); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionDepositComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionDepositComponent.java index 943348330..999a5b21c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionDepositComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionDepositComponent.java @@ -160,6 +160,7 @@ public class ExecutionDepositComponent implements IExecutionUploadComponent { MoneyFlowSide excDepSide = sTrdSide.equals(Side.BUY) ? MoneyFlowSide.BUY : MoneyFlowSide.SELL; ExecUploadKey excKey = ExecUploadKey.cash(sTrd.getTradeDate(), sTrd.getTradeNum(), + sTrd.getClassCode(), excDepSide.getKey()); return cash.containsKey(excKey); }); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java index a499a2032..57d6d2de5 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java @@ -189,6 +189,7 @@ public class ExecutionFondComponent implements IExecutionUploadComponent { Side excDepSide = sTrdSide.equals(Side.BUY) ? Side.BUY : Side.SELL; ExecUploadKey excKey = ExecUploadKey.cash(sTrd.getTradeDate(), sTrd.getTradeNum(), + sTrd.getClassCode(), excDepSide.getKey()); return cash.containsKey(excKey); }); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSCommissionTradesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSCommissionTradesReportBuilder.java index 59fd03832..c4bea14ca 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSCommissionTradesReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSCommissionTradesReportBuilder.java @@ -32,6 +32,7 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder; import ru.spcex.platform.utils.enumeration.IEnumKey; +import ru.spcex.platform.utils.text.TextUtil; @Component public class KSCommissionTradesReportBuilder extends CSVReportBuilder { @@ -168,6 +169,8 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder executionDeposits = executionDepositImdg.getCollectionObjectsByPredicate( pb.and( pb.equals("exchangeExecutionId", registry.getGroupId()), + TextUtil.isEmpty(registry.getMarket()) ? + pb.alwaysTrue() : pb.equals("market", registry.getMarket()), pb.notNull("market") ) ); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepTradesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepTradesReportBuilder.java index 3bde5b548..acceeabce 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepTradesReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepTradesReportBuilder.java @@ -149,6 +149,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder registryCollection = registryImdg.getCollectionObjectsByPredicate( pbRegistry.and( pbRegistry.equals("groupId", groupId), + pbRegistry.equals("market", execution.getMarket()), //fixme может быть "старый" registry без market pbRegistry.equals("companyId", execution.getCompanyId()), pbRegistry.in("registryStatus", RegistryStatus.NACC.getKey(), @@ -170,7 +171,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder