From 5f2dcba539bc4d5ebd7c941ab4a7d471a1f6d84c Mon Sep 17 00:00:00 2001 From: AKurakin Date: Tue, 4 Jun 2024 15:22:23 +0300 Subject: [PATCH] =?UTF-8?q?registry-service=20http://jira.mfd.msk:8088/bro?= =?UTF-8?q?wse/CLS-680=20=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BD?= =?UTF-8?q?=D0=B5=D0=BF=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D1=8F=D1=8E=D1=89?= =?UTF-8?q?=D0=B8=D0=B5=D1=81=D1=8F=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=BE=20=D0=B4=D0=BD=D1=8F=D0=BC=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20DepoBalanceRegisterReportBuilder,=20MoneyBalanceRegisterRepo?= =?UTF-8?q?rtBuilder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DepoBalanceRegisterReportBuilder.java | 28 +++++++++++++++++-- .../MoneyBalanceRegisterReportBuilder.java | 28 +++++++++++++++++-- 2 files changed, 52 insertions(+), 4 deletions(-) diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/builders/DepoBalanceRegisterReportBuilder.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/builders/DepoBalanceRegisterReportBuilder.java index f3694d5f9..e90b645aa 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/builders/DepoBalanceRegisterReportBuilder.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/builders/DepoBalanceRegisterReportBuilder.java @@ -1,6 +1,8 @@ package ru.spcex.clearing.registry.reports.builders; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Component; import ru.spcex.clearing.registry.reports.bean.BusinessEvent; import ru.spcex.clearing.registry.reports.bean.Registry; @@ -9,17 +11,19 @@ import ru.spcex.clearing.registry.reports.loaders.helpers.AccountType; import ru.spcex.clearing.registry.reports.loaders.helpers.IEnumKey; import ru.spcex.clearing.registry.reports.report.DepoBalanceRegisterReport; +import java.io.File; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.Collection; -import java.util.Comparator; +import java.util.*; import java.util.stream.Collectors; @Component public class DepoBalanceRegisterReportBuilder extends XLSXReportBuilder { private final static DateTimeFormatter yyyyMMddFormat = DateTimeFormatter.ofPattern("yyyyMMdd"); + private Map, BigDecimal> previousValues; @Override protected String reportName() { @@ -52,9 +56,29 @@ public class DepoBalanceRegisterReportBuilder extends XLSXReportBuilder key = new ImmutablePair<>(keyId, keyDate); + if (previousValues.containsKey(key) && Objects.equals(previousValues.get(key), value)) + return false; + previousValues.put(key, value); + return true; + } + + @Override + public synchronized File buildReport(Collection inputObj, File outFolder) { + previousValues = new HashMap<>(); + try { + return super.buildReport(inputObj, outFolder); + } finally { + previousValues = null; + } + } + @Override protected Collection sortInput(Collection input) { return input.stream() diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/builders/MoneyBalanceRegisterReportBuilder.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/builders/MoneyBalanceRegisterReportBuilder.java index 9292d643d..2c2080b81 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/builders/MoneyBalanceRegisterReportBuilder.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/reports/builders/MoneyBalanceRegisterReportBuilder.java @@ -1,5 +1,7 @@ package ru.spcex.clearing.registry.reports.builders; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Component; import ru.spcex.clearing.registry.reports.bean.BusinessEvent; import ru.spcex.clearing.registry.reports.bean.Registry; @@ -8,17 +10,19 @@ import ru.spcex.clearing.registry.reports.loaders.helpers.AccountType; import ru.spcex.clearing.registry.reports.loaders.helpers.IEnumKey; import ru.spcex.clearing.registry.reports.report.MoneyBalanceRegisterReport; +import java.io.File; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.Collection; -import java.util.Comparator; +import java.util.*; import java.util.stream.Collectors; @Component public class MoneyBalanceRegisterReportBuilder extends XLSXReportBuilder { private final static DateTimeFormatter yyyyMMddFormat = DateTimeFormatter.ofPattern("yyyyMMdd"); + private Map, BigDecimal> previousValues; @Override protected String reportName() { @@ -56,9 +60,29 @@ public class MoneyBalanceRegisterReportBuilder extends XLSXReportBuilder key = new ImmutablePair<>(keyId, keyDate); + if (previousValues.containsKey(key) && Objects.equals(previousValues.get(key), value)) + return false; + previousValues.put(key, value); + return true; + } + + @Override + public synchronized File buildReport(Collection inputObj, File outFolder) { + previousValues = new HashMap<>(); + try { + return super.buildReport(inputObj, outFolder); + } finally { + previousValues = null; + } + } + @Override protected Collection sortInput(Collection input) { return input.stream()