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();