diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06Table.java index e16ca8cdb..a98c58279 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06Table.java @@ -42,7 +42,9 @@ public class SDf06Table extends AbstractTable { return (BigDecimal) value; } if (value instanceof String) { - return BigDecimal.valueOf(Long.parseLong((String)value)); + //return BigDecimal.valueOf(Long.parseLong((String)value)); + String str = ((String)value).trim(); + return new BigDecimal(str); } if (value instanceof Number) { return BigDecimal.valueOf(((Number)value).longValue()); diff --git a/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06TableTest.java b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06TableTest.java new file mode 100644 index 000000000..4cb21e5d8 --- /dev/null +++ b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06TableTest.java @@ -0,0 +1,22 @@ +package ru.spcex.clearing.dbf.importer.logic.data.tables; + +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; + +import static org.junit.jupiter.api.Assertions.*; + +class SDf06TableTest { + + @Test + void anyNumberToBigDecimal() { + SDf06Table table=new SDf06Table(); + assertNull(table.anyNumberToBigDecimal(null)); + assertEquals(BigDecimal.valueOf(1234),table.anyNumberToBigDecimal("1234")); // это для INN + assertEquals(BigDecimal.valueOf(1234).setScale(0),table.anyNumberToBigDecimal(" 1234")); + assertEquals(BigDecimal.valueOf(1234),table.anyNumberToBigDecimal(" 1234 ")); + assertEquals(new BigDecimal("100000000.0"),table.anyNumberToBigDecimal(" 100000000.0")); // это для SUM + assertEquals(BigDecimal.ONE.scaleByPowerOfTen(3).setScale(2),table.anyNumberToBigDecimal(" 1000.00 ")); + assertNull(table.anyNumberToBigDecimal(null)); + } +} \ No newline at end of file