From 38dab80e991262d2eedf9ff05073d51cdfd6800b Mon Sep 17 00:00:00 2001 From: AKurakin Date: Mon, 9 Oct 2023 15:23:35 +0300 Subject: [PATCH] lim-exporter http://jira.mfd.msk:8088/browse/CLS-262 --- .../services/MoneyExporterService.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index f534a1827..9c084436e 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -15,10 +15,12 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.function.Function; +import java.util.stream.Collectors; import static ru.spcex.platform.enumeration.RegistryTradingParams.*; @@ -50,9 +52,11 @@ public class MoneyExporterService extends AbstractExporterService { log.debug("Selected {} registriesA.", registriesA.size()); ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); + LocalDate today = LocalDate.now(); Function prdctDM_T = registry -> pb.and( pb.sql(RegistryCodeSqlBuilder.getInstance(DM_T).build()), pb.equals("registryStatus", RegistryStatus.PROC.getKey()), + pb.equals("settlementDate", today), pb.equals("tradingClearingRegistry", registry.getTradingClearingRegistry()), pb.equals("securityId", registry.getSecurityId()) ); @@ -66,8 +70,12 @@ public class MoneyExporterService extends AbstractExporterService { if (checkNotBlocked(registry)) { BigDecimal sumPositive = BigDecimal.ZERO; if (registry.getTradingClearingRegistry() != null && registry.getSecurityId() != null) { - sumPositive = sumNegativeABS(registryImdg.getCollectionObjectsByPredicate(prdctDM_I.apply(registry))); - sumPositive = sumPositive.add(sum(registryImdg.getCollectionObjectsByPredicate(prdctDM_T.apply(registry)))); + Collection regsDMI = registryImdg.getCollectionObjectsByPredicate(prdctDM_I.apply(registry)); + log.trace("Found {} DM_I registries for registry AM_F {}", regsDMI.size(), registry); + Collection regsDMT = filterByDate(registryImdg.getCollectionObjectsByPredicate(prdctDM_T.apply(registry))); + log.trace("Found {} DM_T registries for registry AM_F {}", regsDMT.size(), registry); + sumPositive = sumNegativeABS(regsDMI); + sumPositive = sumPositive.add(sum(regsDMT)); } limFileRows.add(getRow(registry, sumPositive)); } @@ -76,6 +84,12 @@ public class MoneyExporterService extends AbstractExporterService { return limFileRows; } + List filterByDate(Collection regs) { + return regs.stream() + .filter((Registry reg) -> reg.getSettlementDate().equals(reg.getClearingDate())) + .collect(Collectors.toList()); + } + public String getRow(Registry registryA, BigDecimal sumPositive) { StringBuilder row = new StringBuilder();