From 0e3cdcac4ca9105c3d60e7205f7722306307d540 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 8 Jul 2026 13:11:19 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-1055 --- .../xml/exporter/logic/stages/PrepareXMLFile.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/PrepareXMLFile.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/PrepareXMLFile.java index b3c4534d0..fb1226a16 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/PrepareXMLFile.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/PrepareXMLFile.java @@ -85,7 +85,7 @@ public class PrepareXMLFile implements InitializingBean { if (template.needSftpFiles()) { xmlFile = new File(template.getFileName(resultContainer, files)); } else { - AtomicInteger counter = getOrInitCounter(table, template); + AtomicInteger counter = getOrInitCounter(resultContainer, template); xmlFile = new File(template.getFileName(resultContainer, counter)); } if (sftpConnectionError) { @@ -109,16 +109,24 @@ public class PrepareXMLFile implements InitializingBean { return StageResult.OK; } - private AtomicInteger getOrInitCounter(Table table, FilenameTemplate template) { + private AtomicInteger getOrInitCounter(ResultContainer resultContainer, FilenameTemplate template) { LocalDate today = LocalDate.now(); if (!today.equals(lastCounterDate)) { counters.clear(); this.lastCounterDate = today; } + Table table = resultContainer.getTableForExport(); return counters.computeIfAbsent(table, k -> { imdgProvider.waitAvailable(); Imdg imdg = imdgProvider.getImdg(k.getHazelcastMapName(), SpcexObjectBase.class); - ImdgPredicate counterPredicate = template.counterPredicate(imdg.predicateBuilder()); + var pb = imdg.predicateBuilder(); + ImdgPredicate counterPredicate = template.counterPredicate(pb); + if (resultContainer.getGroupId() != null) { + counterPredicate = pb.and( + counterPredicate, + pb.not(pb.equals("generationId", resultContainer.getGroupId())) + ); + } Collection items = imdg.getCollectionObjectsByPredicate(counterPredicate); return new AtomicInteger(items.size()); }