diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepDepoRegistersReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepDepoRegistersReport.java index 582477859..389c2757f 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepDepoRegistersReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepDepoRegistersReport.java @@ -40,22 +40,22 @@ public class KSRepDepoRegistersReport { @CsvBindByName(column = "OPEN_QUANTITY") @CsvBindByPosition(position = 7) - @CsvNumber(value = "#0.00", writeFormat = "#0.00") + @CsvNumber(value = "#0", writeFormat = "#0") private BigDecimal openQuantity; @CsvBindByName(column = "CHANGE_QUANTITY") @CsvBindByPosition(position = 8) - @CsvNumber(value = "#0.00", writeFormat = "#0.00") + @CsvNumber(value = "#0", writeFormat = "#0") private BigDecimal changeQuantity; @CsvBindByName(column = "ADD_WITHDRAW_DEPO") @CsvBindByPosition(position = 9) - @CsvNumber(value = "#0.00", writeFormat = "#0.00") + @CsvNumber(value = "#0", writeFormat = "#0") private BigDecimal addWithdrawDepo; @CsvBindByName(column = "CLOSE_QUANTITY") @CsvBindByPosition(position = 10) - @CsvNumber(value = "#0.00", writeFormat = "#0.00") + @CsvNumber(value = "#0", writeFormat = "#0") private BigDecimal closeQuantity; @CsvBindByName(column = "REMARKS") diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilderCommon.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilderCommon.java index 7b233dbc8..0deb3a40e 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilderCommon.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilderCommon.java @@ -12,11 +12,13 @@ import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import java.math.BigDecimal; import java.math.RoundingMode; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Objects; public abstract class ExecutedDealReportBuilderCommon
extends CSVReportBuilder
{ protected final DateTimeFormatter fileNameDateTimeFormatter = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS"); @@ -78,10 +80,15 @@ public abstract class ExecutedDealReportBuilderCommon
extends CSVReportBuilde
executedDealReport.setTradeTime(executionFond.getExchangeExecutionTime());
executedDealReport.setSettleDate(executionFond.getSettlementDate());
executedDealReport.setSettleCode(executionFond.getSettlementCode());
- executedDealReport.setQuantity(executionFond.getQuantity());
- executedDealReport.setValue(executionFond.getSettlementAmount());
- if (executionFond.getSettlementAmount() != null && executionFond.getQuantity() != null)
- executedDealReport.setPrice(executionFond.getSettlementAmount().divide(executionFond.getQuantity(), RoundingMode.HALF_UP));
+ BigDecimal settlementAmount = executionFond.getSettlementAmount() != null ? executionFond.getSettlementAmount() : BigDecimal.ZERO;
+ BigDecimal quantity = executionFond.getQuantity() != null ? executionFond.getQuantity() : BigDecimal.ZERO;
+ executedDealReport.setValue(settlementAmount);
+ executedDealReport.setQuantity(quantity);
+ if (Objects.equals(quantity, BigDecimal.ZERO)) {
+ executedDealReport.setPrice(settlementAmount);
+ } else {
+ executedDealReport.setPrice(settlementAmount.divide(quantity, RoundingMode.HALF_UP));
+ }
lines.add(executedDealReport);
} catch (Throwable e) {
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSCommissionTradesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSCommissionTradesReportBuilder.java
index 4850e13b9..76717a27b 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSCommissionTradesReportBuilder.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSCommissionTradesReportBuilder.java
@@ -17,6 +17,7 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
import ru.spcex.platform.utils.enumeration.IEnumKey;
+import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -196,7 +197,7 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder