dbf-importer SDf06Table поправил формат - тримлю числа

This commit is contained in:
AKurakin 2023-08-04 11:17:24 +03:00
parent 7d51561c71
commit d8ad75dce9
2 changed files with 25 additions and 1 deletions

View file

@ -42,7 +42,9 @@ public class SDf06Table extends AbstractTable<SDf06> {
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());

View file

@ -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));
}
}