diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/ExecutedDealReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/ExecutedDealReport.java index 8c21990cc..8d7936322 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/ExecutedDealReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/ExecutedDealReport.java @@ -6,8 +6,8 @@ import com.opencsv.bean.CsvDate; import com.opencsv.bean.CsvNumber; import java.math.BigDecimal; -import java.time.Instant; import java.time.LocalDate; +import java.time.LocalDateTime; public class ExecutedDealReport { @CsvBindByName(column = "SECURITYID") @@ -26,7 +26,7 @@ public class ExecutedDealReport { @CsvBindByName(column = "TRADETIME") @CsvBindByPosition(position = 3) @CsvDate(value = "HH:mm:ss") - private Instant tradeTime; + private LocalDateTime tradeTime; @CsvBindByName(column = "SETTLEDATE") @CsvBindByPosition(position = 4) @@ -77,11 +77,11 @@ public class ExecutedDealReport { this.tradeDate = tradeDate; } - public Instant getTradeTime() { + public LocalDateTime getTradeTime() { return tradeTime; } - public void setTradeTime(Instant tradeTime) { + public void setTradeTime(LocalDateTime tradeTime) { this.tradeTime = tradeTime; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepCashNettoReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepCashNettoReport.java index 7eb605f6e..386d06a4f 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepCashNettoReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepCashNettoReport.java @@ -6,8 +6,8 @@ import com.opencsv.bean.CsvDate; import com.opencsv.bean.CsvNumber; import java.math.BigDecimal; -import java.time.Instant; import java.time.LocalDate; +import java.time.LocalDateTime; public class KSRepCashNettoReport { @CsvBindByName(column = "FIRMID") @@ -21,7 +21,7 @@ public class KSRepCashNettoReport { @CsvBindByName(column = "SESSION_DATE") @CsvBindByPosition(position = 2) @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") - private Instant sessionDate; + private LocalDateTime sessionDate; @CsvBindByName(column = "ACCOUNT") @CsvBindByPosition(position = 3) @@ -54,11 +54,11 @@ public class KSRepCashNettoReport { this.sessionId = sessionId; } - public Instant getSessionDate() { + public LocalDateTime getSessionDate() { return sessionDate; } - public void setSessionDate(Instant sessionDate) { + public void setSessionDate(LocalDateTime sessionDate) { this.sessionDate = sessionDate; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepDepoNettoReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepDepoNettoReport.java index 404bef736..e0cd96de8 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepDepoNettoReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepDepoNettoReport.java @@ -6,8 +6,8 @@ import com.opencsv.bean.CsvDate; import com.opencsv.bean.CsvNumber; import java.math.BigDecimal; -import java.time.Instant; import java.time.LocalDate; +import java.time.LocalDateTime; public class KSRepDepoNettoReport { @CsvBindByName(column = "FIRMID") @@ -21,7 +21,7 @@ public class KSRepDepoNettoReport { @CsvBindByName(column = "SESSION_DATE") @CsvBindByPosition(position = 2) @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") - private Instant sessionDate; + private LocalDateTime sessionDate; @CsvBindByName(column = "ACCOUNT") @CsvBindByPosition(position = 3) @@ -58,11 +58,11 @@ public class KSRepDepoNettoReport { this.sessionId = sessionId; } - public Instant getSessionDate() { + public LocalDateTime getSessionDate() { return sessionDate; } - public void setSessionDate(Instant sessionDate) { + public void setSessionDate(LocalDateTime sessionDate) { this.sessionDate = sessionDate; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepTradesReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepTradesReport.java index cc856ae48..d01a851eb 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepTradesReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSRepTradesReport.java @@ -7,7 +7,7 @@ import com.opencsv.bean.CsvDate; import com.opencsv.bean.CsvNumber; import java.math.BigDecimal; -import java.time.Instant; +import java.time.LocalDateTime; public class KSRepTradesReport { @CsvBindByName(column = "SESSION_ID") @@ -17,7 +17,7 @@ public class KSRepTradesReport { @CsvBindByName(column = "SESSION_DATE") @CsvBindByPosition(position = 1) @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") - private Instant sessionDate; + private LocalDateTime sessionDate; @CsvBindByName(column = "TR_ID") @CsvBindByPosition(position = 2) @@ -52,7 +52,7 @@ public class KSRepTradesReport { @CsvBindByName(column = "TRADE_DATE") @CsvBindByPosition(position = 9) @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") - private Instant tradeDate; + private LocalDateTime tradeDate; @CsvBindByName(column = "STATUS") @CsvBindByPosition(position = 10) @@ -67,11 +67,11 @@ public class KSRepTradesReport { this.sessionId = sessionId; } - public Instant getSessionDate() { + public LocalDateTime getSessionDate() { return sessionDate; } - public void setSessionDate(Instant sessionDate) { + public void setSessionDate(LocalDateTime sessionDate) { this.sessionDate = sessionDate; } @@ -131,11 +131,11 @@ public class KSRepTradesReport { this.classCode = classCode; } - public Instant getTradeDate() { + public LocalDateTime getTradeDate() { return tradeDate; } - public void setTradeDate(Instant tradeDate) { + public void setTradeDate(LocalDateTime tradeDate) { this.tradeDate = tradeDate; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSSessionListReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSSessionListReport.java index fd5babde3..e79c1bdd4 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSSessionListReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSSessionListReport.java @@ -4,7 +4,7 @@ import com.opencsv.bean.CsvBindByName; import com.opencsv.bean.CsvBindByPosition; import com.opencsv.bean.CsvDate; -import java.time.Instant; +import java.time.LocalDateTime; public class KSSessionListReport { @CsvBindByName(column = "ID") @@ -14,14 +14,14 @@ public class KSSessionListReport { @CsvBindByName(column = "CREATED_AT") @CsvBindByPosition(position = 1) @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") - private Instant createdAt; + private LocalDateTime createdAt; @CsvBindByName(column = "UPDATED_AT") @CsvBindByPosition(position = 2) @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") - private Instant updatedAt; + private LocalDateTime updatedAt; - @CsvBindByName(column = "SESSION_DATE") + @CsvBindByName(column = "SECTION") @CsvBindByPosition(position = 3) private String section; @@ -41,19 +41,19 @@ public class KSSessionListReport { this.id = id; } - public Instant getCreatedAt() { + public LocalDateTime getCreatedAt() { return createdAt; } - public void setCreatedAt(Instant createdAt) { + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } - public Instant getUpdatedAt() { + public LocalDateTime getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(Instant updatedAt) { + public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; } 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 0deb3a40e..7ae648cbd 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 @@ -13,12 +13,12 @@ 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.LocalDateTime; +import java.time.ZoneId; 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"); @@ -77,18 +77,18 @@ public abstract class ExecutedDealReportBuilderCommon
extends CSVReportBuilde
executedDealReport.setSecurityId(executionFond.getSecuritySymbol());
executedDealReport.setTradeNo(executionFond.getExchangeExecutionId());
executedDealReport.setTradeDate(executionFond.getTradingDate());
- executedDealReport.setTradeTime(executionFond.getExchangeExecutionTime());
+
+ if (executionFond.getExchangeExecutionTime() != null)
+ executedDealReport.setTradeTime(LocalDateTime.ofInstant(executionFond.getExchangeExecutionTime(), ZoneId.systemDefault()));
+
executedDealReport.setSettleDate(executionFond.getSettlementDate());
executedDealReport.setSettleCode(executionFond.getSettlementCode());
BigDecimal settlementAmount = executionFond.getSettlementAmount() != null ? executionFond.getSettlementAmount() : BigDecimal.ZERO;
BigDecimal quantity = executionFond.getQuantity() != null ? executionFond.getQuantity() : BigDecimal.ZERO;
+ BigDecimal price = executionFond.getPrice() != null ? executionFond.getPrice() : 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));
- }
+ executedDealReport.setPrice(price);
lines.add(executedDealReport);
} catch (Throwable e) {
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java
index efc4f1e79..272ac42ae 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java
@@ -4,6 +4,7 @@ import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.execution.ExecutionFond;
import ru.spcex.clearing.reports.reports.SessionIdParam;
import ru.spcex.platform.enumeration.ReportKeys;
+import ru.spcex.platform.enumeration.Side;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
@@ -34,7 +35,8 @@ public class ExecutedDealReportBuilder_INFTYPE_1 extends ExecutedDealReportBuild
pb.and(
pb.notNull("sessionId"),
pb.less("tradingDate", LocalDate.now()),
- pb.equals("settlementDate", LocalDate.now())
+ pb.equals("settlementDate", LocalDate.now()),
+ pb.equals("side", Side.SELL.getKey())
)
);
}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java
index 7b4917075..ca795e318 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java
@@ -4,6 +4,7 @@ import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.execution.ExecutionFond;
import ru.spcex.clearing.reports.reports.SessionIdParam;
import ru.spcex.platform.enumeration.ReportKeys;
+import ru.spcex.platform.enumeration.Side;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
@@ -34,7 +35,8 @@ public class ExecutedDealReportBuilder_INFTYPE_2 extends ExecutedDealReportBuild
pb.and(
pb.notNull("sessionId"),
pb.equals("tradingDate", LocalDate.now()),
- pb.equals("settlementDate", LocalDate.now())
+ pb.equals("settlementDate", LocalDate.now()),
+ pb.equals("side", Side.SELL.getKey())
)
);
}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java
index a4dd63137..ba5bfb406 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java
@@ -4,6 +4,7 @@ import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.execution.ExecutionFond;
import ru.spcex.clearing.reports.reports.SessionIdParam;
import ru.spcex.platform.enumeration.ReportKeys;
+import ru.spcex.platform.enumeration.Side;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
@@ -30,6 +31,11 @@ public class ExecutedDealReportBuilder_INFTYPE_3 extends ExecutedDealReportBuild
@Override
protected Collection