From f00cf0ee3b48c5a6710eb884b187c6abc6279ec5 Mon Sep 17 00:00:00 2001 From: ialbert Date: Tue, 8 Aug 2023 21:26:51 +0300 Subject: [PATCH] SDF07 SUM/CLIENTN/INN/BIC/SPEC/NUMBER/RESULT swt-exporter Charset.forName("windows-1251") --- .../services/converters/S_DF07_Converter.java | 14 +++++++------- .../exporter/services/AbstractExporterService.java | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF07_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF07_Converter.java index f3c783556..638cd24f5 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF07_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF07_Converter.java @@ -31,16 +31,16 @@ public class S_DF07_Converter extends DFConverter { public DBFField[] getDBFHeaders() { List dbfFields = new LinkedList<>(); dbfFields.add(new DBFField("ACCOUNT", DBFDataType.CHARACTER, 20)); - dbfFields.add(new DBFField("SUM", DBFDataType.NUMERIC, 32, 18)); + dbfFields.add(new DBFField("SUM", DBFDataType.NUMERIC, 32, 2)); dbfFields.add(new DBFField("MARKET", DBFDataType.CHARACTER, 1)); dbfFields.add(new DBFField("TYPE", DBFDataType.CHARACTER, 2)); dbfFields.add(new DBFField("DEAL", DBFDataType.CHARACTER, 10)); - dbfFields.add(new DBFField("CLIENT_N", DBFDataType.CHARACTER, 35)); - dbfFields.add(new DBFField("_I_N_N", DBFDataType.NUMERIC, 32, 18)); - dbfFields.add(new DBFField("_B_I_C", DBFDataType.NUMERIC, 32, 18)); - dbfFields.add(new DBFField("_S_P_E_C", DBFDataType.CHARACTER, 254)); - dbfFields.add(new DBFField("NUMBER", DBFDataType.NUMERIC, 32, 18)); - dbfFields.add(new DBFField("RESULT", DBFDataType.NUMERIC, 32, 18)); + dbfFields.add(new DBFField("CLIENTN", DBFDataType.CHARACTER, 35)); + dbfFields.add(new DBFField("INN", DBFDataType.NUMERIC, 32, 18)); + dbfFields.add(new DBFField("BIC", DBFDataType.NUMERIC, 32, 18)); + dbfFields.add(new DBFField("SPEC", DBFDataType.CHARACTER, 254)); + dbfFields.add(new DBFField("NUMBER", DBFDataType.NUMERIC, 10)); + dbfFields.add(new DBFField("RESULT", DBFDataType.NUMERIC, 1)); return dbfFields.toArray(DBFField[]::new); } 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 d5633c1a6..b3c155f0c 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 @@ -16,6 +16,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import java.io.ByteArrayOutputStream; import java.io.OutputStream; import java.io.PrintWriter; +import java.nio.charset.Charset; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Collection; @@ -137,7 +138,7 @@ public abstract class AbstractExporterService { // protected abstract String[] swtHeader(); protected void makeSWTData(SWTHeaderData header, Collection records, OutputStream outStream) { - try (PrintWriter out = new PrintWriter(outStream)) { + try (PrintWriter out = new PrintWriter(outStream, false, Charset.forName("windows-1251"))) { out.print(header.buildString()); int totalSize = records.size(); int counter = totalSize == 0 ? 0 : 1; // нумерация начинается с 1