reports-service точность 2 знака после запятой

This commit is contained in:
AKurakin 2022-12-30 14:52:24 +03:00
parent 2d2a0f5b9c
commit 9e9229588c
4 changed files with 38 additions and 7 deletions

View file

@ -6,12 +6,12 @@ import ru.spcex.clearing.reports.reports.AbstractReport;
import ru.spcex.platform.utils.time.TimeUtil;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Locale;
public abstract class ReportDataCollector<T extends AbstractReport> {
public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy");
@ -55,9 +55,17 @@ public abstract class ReportDataCollector<T extends AbstractReport> {
return val.toString();
}
protected String toString(Double val) {
if (val == null) return null;
// точность 2 знака после запятой.
return String.format(Locale.US, "%.2f", val.doubleValue());
}
protected String toString(BigDecimal val) {
if (val == null) return null;
return val.toString();
// точность 2 знака после запятой.
return val.setScale(2, RoundingMode.HALF_UP).toString();
}
protected String toString(Instant val) {

View file

@ -130,8 +130,8 @@ public class Bt17_1_P1_collector extends ReportDataCollector<ReportBR_0420315_P1
ReportBR_0420315_P1.Info_0420315_P1 info_0420315_p1 = new ReportBR_0420315_P1.Info_0420315_P1(company.getId().toString(),
company.getFullName(),
onMarketString,
String.valueOf(contractorQty),
String.valueOf(liabilitiesAmount));
toString(contractorQty),
toString(liabilitiesAmount));
reportBR_0420315_p1.getRows().add(info_0420315_p1);
}
}

View file

@ -58,8 +58,8 @@ public class Bt17_1_P2_collector extends ReportDataCollector<ReportBR_0420315_P2
ReportBR_0420315_P2 reportBR_0420315_p2 = new ReportBR_0420315_P2(startDate, endDate,
"BR",
String.valueOf(contractorQty),
String.valueOf(liabilitiesAmount));
toString(contractorQty),
toString(liabilitiesAmount));
return reportBR_0420315_p2;
}

View file

@ -3,6 +3,7 @@ package ru.spcex.clearing.reports.services;
import org.junit.jupiter.api.Test;
import ru.spcex.clearing.reports.reports.AbstractReport;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@ -35,6 +36,28 @@ class ReportDataCollectorTest extends ReportDataCollector {
assertEquals("26.12.2022", instance.toString(val));
}
@Test
void testToString3() {
ReportDataCollectorTest instance = new ReportDataCollectorTest();
assertEquals(null, instance.toString((BigDecimal)null));
assertEquals("0.00", instance.toString(BigDecimal.ZERO));
assertEquals("1.10", instance.toString(BigDecimal.valueOf(1.10)));
assertEquals("100.12", instance.toString(BigDecimal.valueOf(100.12)));
assertEquals("100.12", instance.toString(BigDecimal.valueOf(100.120012)));
assertEquals("100.13", instance.toString(BigDecimal.valueOf(100.125012)));
}
@Test
void testToString4() {
ReportDataCollectorTest instance = new ReportDataCollectorTest();
assertEquals(null, instance.toString((Double) null));
assertEquals("0.00", instance.toString(0.0));
assertEquals("1.10", instance.toString(1.10));
assertEquals("100.12", instance.toString(100.12));
assertEquals("100.12", instance.toString(100.120012));
assertEquals("100.13", instance.toString(100.125012));
}
@Override
public AbstractReport collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
throw new IllegalStateException("test");