From 4382cc5572d08c69ccc77075bb656a3b53aa51d9 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Tue, 20 Jun 2023 18:36:07 +0300 Subject: [PATCH] =?UTF-8?q?swt-exporter=20http://jira.mfd.msk:8088/browse/?= =?UTF-8?q?CLS-317=20=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/AbstractExporterService.java | 15 ++++++++++++--- .../services/exportimpl/DF09Exporter.java | 7 +++++++ .../services/exportimpl/DF11Exporter.java | 8 ++++++++ .../services/exportimpl/DF12Exporter.java | 6 +++--- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java index eb6e32ff3..f2597a46e 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java @@ -127,6 +127,15 @@ public abstract class AbstractExporterService { return sdfImdg.getAllValues(); } + /** + * Последняя строка - количество + * @param records + * @return + */ + protected int countIssues(Collection records) { + return records.size(); + } + // Конвертация (поля см. meta.xml) protected abstract String convertRecord(T record, ConvertionContext context); @@ -135,7 +144,7 @@ public abstract class AbstractExporterService { protected void makeSWTData(SWTHeaderData header, Collection records, OutputStream outStream) { try (PrintWriter out = new PrintWriter(outStream)) { out.print(header.buildString()); - int counter = 0; + int counter = 1; // нумерация начинается с 1 int totalSize = records.size(); for (T row : records) { ConvertionContext context = new ConvertionContext(mapClass, counter, totalSize); @@ -143,8 +152,8 @@ public abstract class AbstractExporterService { out.print(data); counter++; } - out.print(totalSize); - out.print(lineSeparator); + int checkSumCount = countIssues(records); + out.print(checkSumCount); // количество out.flush(); } } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java index 9403de12c..57510cf87 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java @@ -12,7 +12,9 @@ import ru.spcex.platform.enumeration.SwtTable; import ru.spcex.platform.imdg.api.ImdgProvider; import java.time.LocalDateTime; +import java.util.Collection; import java.util.LinkedHashMap; +import java.util.Objects; @Service public class DF09Exporter extends AbstractExporterService { @@ -70,4 +72,9 @@ public class DF09Exporter extends AbstractExporterService { return stringBuilder.toString(); } + @Override + protected int countIssues(Collection records) { + return (int) records.stream().map(SDf09::getSecurityCode).filter(Objects::nonNull).distinct().count(); + } + } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11Exporter.java index 739f60ce4..cc5170761 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11Exporter.java @@ -13,7 +13,9 @@ import ru.spcex.platform.enumeration.SwtTable; import ru.spcex.platform.imdg.api.ImdgProvider; import java.time.LocalDateTime; +import java.util.Collection; import java.util.LinkedHashMap; +import java.util.Objects; @Service @@ -71,4 +73,10 @@ public class DF11Exporter extends AbstractExporterService { } return swtHeaderData; } + + @Override + protected int countIssues(Collection records) { + return (int) records.stream().map(SDf11::getSecurityCode).filter(Objects::nonNull).distinct().count(); + } + } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java index 7f7a67346..5da283396 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java @@ -39,7 +39,7 @@ public class DF12Exporter extends AbstractExporterService { @Override protected String typeForHeader() { - return "012"; + return "580"; } @Override @@ -57,8 +57,8 @@ public class DF12Exporter extends AbstractExporterService { stringBuilder.append(context.getCountOfRecord()).append(lineSeparator); stringBuilder.append(context.getTotalCountOfRecords()).append(lineSeparator); stringBuilder.append(":23:").append(record.getDirection()).append(lineSeparator); - stringBuilder.append(":35A:").append(record.getQuantity()).append(lineSeparator); - stringBuilder.append(":35B:").append(record.getSecurityCode()).append(lineSeparator); + stringBuilder.append(":35A:SHS").append(record.getQuantity()).append(lineSeparator); + stringBuilder.append(":35B:ISIN ").append(record.getSecurityCode()).append(lineSeparator); stringBuilder.append(":82D:").append(record.getDepoCodeSender()).append(lineSeparator); stringBuilder.append(":87C:").append(record.getDepoCodeAdressee()).append(lineSeparator); return stringBuilder.toString();