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 statements = statementImdg.getCollectionObjectsByPredicate(finalPredicate); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegistersReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegistersReportBuilder.java index 39b0ecae9..93dbf2d47 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegistersReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegistersReportBuilder.java @@ -97,8 +97,12 @@ public class KSRepDepoRegistersReportBuilder extends CSVReportBuilder