From 374ff0ca34bc184e6ce9bc859b2a5a50cbe36878 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Tue, 30 May 2023 13:51:47 +0300 Subject: [PATCH] =?UTF-8?q?lim-exporter=20http://jira.mfd.msk:8088/browse/?= =?UTF-8?q?CLS-262=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=20=D1=87=D0=B8?= =?UTF-8?q?=D1=81=D0=B5=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lim/exporter/config/LimFormat.java | 27 +++++++++++++++++++ .../services/MoneyExporterService.java | 3 ++- .../services/SecurityExporterService.java | 3 ++- .../clearing/lim/exporter/LimFormatTest.java | 18 +++++++++++++ 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimFormat.java create mode 100644 clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/LimFormatTest.java diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimFormat.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimFormat.java new file mode 100644 index 000000000..d49aa149b --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimFormat.java @@ -0,0 +1,27 @@ +package ru.spcex.clearing.lim.exporter.config; + +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.Locale; + +public class LimFormat { + private static final DecimalFormat D_FORMAT_2; + static { + D_FORMAT_2 = new DecimalFormat("#0.00"); +// D_FORMAT_2.setMaximumFractionDigits(2); +// D_FORMAT_2.setMinimumFractionDigits(2); + D_FORMAT_2.setGroupingUsed(false); + D_FORMAT_2.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ENGLISH)); + } + + public static String toString(Long n) { + return String.valueOf(n); + } + + public static String toStringD2(BigDecimal n) { + if (n == null) return String.valueOf(n); + return D_FORMAT_2.format(n); + } + +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index 8b38fd616..e08c15b37 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -4,6 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.registry.Registry; +import ru.spcex.clearing.lim.exporter.config.LimFormat; import ru.spcex.clearing.lim.exporter.config.SFTPConfig; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -85,7 +86,7 @@ public class MoneyExporterService extends AbstractExporterService { BigDecimal balance = registryA.getBalance() != null ? registryD != null && registryD.getBalance() != null ? registryA.getBalance().subtract(registryD.getBalance()) : registryA.getBalance() : BigDecimal.ZERO; - row.append(balance); + row.append(LimFormat.toStringD2(balance)); row.append("; OPEN_LIMIT = 0.00"); diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java index 2f5c3e7f4..7244b2d83 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java @@ -4,6 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.registry.Registry; +import ru.spcex.clearing.lim.exporter.config.LimFormat; import ru.spcex.clearing.lim.exporter.config.SFTPConfig; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -65,7 +66,7 @@ public class SecurityExporterService extends AbstractExporterService { row.append(registry.getTradingClearingRegistry()); row.append("; OPEN_BALANCE = "); - row.append(registry.getBalance()); + row.append(LimFormat.toStringD2(registry.getBalance())); row.append("; OPEN_LIMIT = 0"); diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/LimFormatTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/LimFormatTest.java new file mode 100644 index 000000000..9cb08d1c9 --- /dev/null +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/LimFormatTest.java @@ -0,0 +1,18 @@ +package ru.spcex.clearing.lim.exporter; + +import org.junit.jupiter.api.Test; +import ru.spcex.clearing.lim.exporter.config.LimFormat; + +import java.math.BigDecimal; + +import static org.junit.jupiter.api.Assertions.*; + +class LimFormatTest { + @Test + void formatBigDecimal2() { + assertEquals("null", LimFormat.toStringD2(null)); + assertEquals("0.00", LimFormat.toStringD2(BigDecimal.valueOf(0.00000000001))); + assertEquals("102.43", LimFormat.toStringD2(BigDecimal.valueOf(102.43))); + assertEquals("0.50", LimFormat.toStringD2(BigDecimal.valueOf(0.5))); + } +} \ No newline at end of file