cls-52/53, cls-92/93
This commit is contained in:
parent
552fbe26d0
commit
a966d80995
10 changed files with 236 additions and 420 deletions
|
|
@ -9,11 +9,13 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import ru.spcex.clearing.reports.reports.bt_13.ReportDOCIN;
|
||||
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_IV;
|
||||
import ru.spcex.clearing.reports.services.ReportsServiceCommand;
|
||||
import ru.spcex.clearing.reports.services.collector.ReportDOCIN_Collector;
|
||||
import ru.spcex.clearing.reports.services.collector.ReportPA_IV_Collector;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@SpringBootApplication
|
||||
public class ReportsServiceApplication {
|
||||
public static void main(String[] args) {
|
||||
|
|
@ -41,10 +43,10 @@ public class ReportsServiceApplication {
|
|||
public static void test(ConfigurableApplicationContext context) {
|
||||
ImdgProvider imdg = context.getBean(ImdgProvider.class);
|
||||
|
||||
ReportDOCIN_Collector collector = new ReportDOCIN_Collector(imdg);
|
||||
ReportDOCIN report = collector.collectReport();
|
||||
ReportPA_IV_Collector collector = new ReportPA_IV_Collector(imdg);
|
||||
ReportPA_IV report = collector.collectReportWithPeriod(LocalDate.of(2020, 1, 1), LocalDate.now());
|
||||
XStream xStream = new XStream(new XppDriver(new NoNameCoder()));
|
||||
xStream.processAnnotations(ReportDOCIN.class);
|
||||
xStream.processAnnotations(ReportPA_IV.class);
|
||||
String out = xStream.toXML(report);
|
||||
System.out.println(out);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
|||
* Идентификаторы отчётов
|
||||
*/
|
||||
public enum ReportId implements IEnumKey {
|
||||
PA_BT2_B("REPPA.BT12.2.B"), PA_BT2_IV("REPPA.BT12.2.IV"),
|
||||
PA_B("REPPA.B"), PA_IV("REPPA.IV"),
|
||||
|
||||
BT13_11("DOCIN"), BT13_12("DOCOUT"),
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
package ru.spcex.clearing.reports.reports.bt_12_2;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports.reports.ReportId;
|
||||
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||
import ru.spcex.platform.enumeration.ClearingMemberCategoryD;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("netPositionBank")
|
||||
public class ReportPA_B extends ReportWithPeriod {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("clearingMemberCategory")
|
||||
private String clearingMemberCategory;
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private List<Info_PA_B> rows = new ArrayList<>();
|
||||
|
||||
@XStreamAlias("total")
|
||||
private Total total;
|
||||
|
||||
public ReportPA_B(LocalDate startDate,
|
||||
LocalDate endDate) {
|
||||
super(ReportId.PA_B,
|
||||
"0.0.1",
|
||||
"BT12.2",
|
||||
"Отчет по нетто-позиции участника клиринга в секции МКР (Уполномоченный банк)",
|
||||
startDate,
|
||||
endDate);
|
||||
this.clearingMemberCategory = ClearingMemberCategoryD.B.getKey();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getReportName(LocalDateTime reportDateTime) {
|
||||
return "REPPA.B.%s-%s.%s".formatted(
|
||||
DATE_FORMATTER.format(startDate),
|
||||
DATE_FORMATTER.format(endDate),
|
||||
DATE_TIME_FORMATTER.format(reportDateTime)
|
||||
);
|
||||
}
|
||||
|
||||
public void setTotal(Total total) {
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
public List<Info_PA_B> getRows() {
|
||||
return rows;
|
||||
}
|
||||
|
||||
@XStreamAlias("total")
|
||||
public record Total(@XStreamAsAttribute @XStreamAlias("claimsAmount") String claimsAmount,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesAmount") String liabilitiesAmount,
|
||||
@XStreamAsAttribute @XStreamAlias("paymentAmount") String paymentAmount) {
|
||||
}
|
||||
|
||||
|
||||
@XStreamAlias("row")
|
||||
public record Info_PA_B(
|
||||
@XStreamAsAttribute @XStreamAlias("id") String id,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName,
|
||||
@XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_settlementDate") String liabilitiesClaimsAssetsSettlementDate,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundDate") String liabilitiesClaimsAssetsRefundDate,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_tradingDate") String liabilitiesClaimsAssetsTradingDate,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_contract") String liabilitiesClaimsAssetsContract,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity,
|
||||
@XStreamAsAttribute @XStreamAlias("chargeCommission") String chargeCommission,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity") String liabilitiesClaimsAssetsClaimsQuantity,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundPaymentId") String liabilitiesClaimsAssetsRefundPaymentId,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_clearingStatus") String liabilitiesClaimsAssetsClearingStatus,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_comment") String liabilitiesClaimsAssetsComment
|
||||
) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,172 +0,0 @@
|
|||
package ru.spcex.clearing.reports.reports.bt_12_2;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||
import ru.spcex.clearing.reports.reports.ReportId;
|
||||
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||
import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("netPositionBank")
|
||||
public class ReportPA_BT2_B extends ReportWithPeriod {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("clearingMemberCategory")
|
||||
private String clearingMemberCategory;
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private List<Row> rows;
|
||||
|
||||
@XStreamAlias("total")
|
||||
private Total total;
|
||||
|
||||
public ReportPA_BT2_B(LocalDate startDate,
|
||||
LocalDate endDate) {
|
||||
super(ReportId.PA_BT2_B,
|
||||
"0.0.1",
|
||||
"BT12.2",
|
||||
"Отчет по нетто-позиции участника клиринга в секции МКР (Уполномоченный банк)",
|
||||
startDate,
|
||||
endDate);
|
||||
this.clearingMemberCategory = "B";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getReportName(LocalDateTime reportDateTime) {
|
||||
return "REPPA.B.%s-%s.%s".formatted(
|
||||
DATE_FORMATTER.format(startDate),
|
||||
DATE_FORMATTER.format(endDate),
|
||||
DATE_TIME_FORMATTER.format(reportDateTime)
|
||||
);
|
||||
}
|
||||
|
||||
public Total getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
public void setTotal(Total total) {
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
public List<Row> getRows() {
|
||||
return rows;
|
||||
}
|
||||
|
||||
public void setRows(List<Row> rows) {
|
||||
this.rows = rows;
|
||||
}
|
||||
|
||||
|
||||
@XStreamAlias("total")
|
||||
public static class Total {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("claimsAmount")
|
||||
private BigDecimal claimsAmount;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesAmount")
|
||||
private BigDecimal liabilitiesAmount;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("paymentAmount")
|
||||
private BigDecimal paymentAmount;
|
||||
|
||||
public Total(BigDecimal claimsAmount, BigDecimal liabilitiesAmount, BigDecimal paymentAmount) {
|
||||
this.claimsAmount = claimsAmount;
|
||||
this.liabilitiesAmount = liabilitiesAmount;
|
||||
this.paymentAmount = paymentAmount;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@XStreamAlias("row")
|
||||
public static class Row {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("id")
|
||||
private Long id;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_fullName")
|
||||
private String liabilitiesClaimsAssetsFullName;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("company_clearingCode")
|
||||
private String companyClearingCode;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_settlementDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
private LocalDate liabilitiesClaimsAssetsSettlementDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_refundDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
private LocalDate liabilitiesClaimsAssetsRefundDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_tradingDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
private LocalDate liabilitiesClaimsAssetsTradingDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_contract")
|
||||
private String liabilitiesClaimsAssetsContract;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity")
|
||||
private BigDecimal liabilitiesClaimsAssetsLiabilitiesQuantity;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("chargeCommission")
|
||||
private String chargeCommission;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity")
|
||||
private BigDecimal liabilitiesClaimsAssetsClaimsQuantity;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_refundPaymentId")
|
||||
private Long liabilitiesClaimsAssetsRefundPaymentId;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_clearingStatus")
|
||||
private Long liabilitiesClaimsAssetsClearingStatus;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_comment")
|
||||
private String liabilitiesClaimsAssetsComment;
|
||||
|
||||
public Row(Long id,
|
||||
String liabilitiesClaimsAssetsFullName,
|
||||
String companyClearingCode,
|
||||
LocalDate liabilitiesClaimsAssetsSettlementDate,
|
||||
LocalDate liabilitiesClaimsAssetsRefundDate,
|
||||
LocalDate liabilitiesClaimsAssetsTradingDate,
|
||||
String liabilitiesClaimsAssetsContract,
|
||||
BigDecimal liabilitiesClaimsAssetsLiabilitiesQuantity,
|
||||
String chargeCommission,
|
||||
BigDecimal liabilitiesClaimsAssetsClaimsQuantity,
|
||||
Long liabilitiesClaimsAssetsRefundPaymentId,
|
||||
Long liabilitiesClaimsAssetsClearingStatus,
|
||||
String liabilitiesClaimsAssetsComment) {
|
||||
this.id = id;
|
||||
this.liabilitiesClaimsAssetsFullName = liabilitiesClaimsAssetsFullName;
|
||||
this.companyClearingCode = companyClearingCode;
|
||||
this.liabilitiesClaimsAssetsSettlementDate = liabilitiesClaimsAssetsSettlementDate;
|
||||
this.liabilitiesClaimsAssetsRefundDate = liabilitiesClaimsAssetsRefundDate;
|
||||
this.liabilitiesClaimsAssetsTradingDate = liabilitiesClaimsAssetsTradingDate;
|
||||
this.liabilitiesClaimsAssetsContract = liabilitiesClaimsAssetsContract;
|
||||
this.liabilitiesClaimsAssetsLiabilitiesQuantity = liabilitiesClaimsAssetsLiabilitiesQuantity;
|
||||
this.chargeCommission = chargeCommission;
|
||||
this.liabilitiesClaimsAssetsClaimsQuantity = liabilitiesClaimsAssetsClaimsQuantity;
|
||||
this.liabilitiesClaimsAssetsRefundPaymentId = liabilitiesClaimsAssetsRefundPaymentId;
|
||||
this.liabilitiesClaimsAssetsClearingStatus = liabilitiesClaimsAssetsClearingStatus;
|
||||
this.liabilitiesClaimsAssetsComment = liabilitiesClaimsAssetsComment;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
package ru.spcex.clearing.reports.reports.bt_12_2;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||
import ru.spcex.clearing.reports.reports.ReportId;
|
||||
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||
import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("netPositionInitiator")
|
||||
public class ReportPA_BT2_IV extends ReportWithPeriod {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("clearingMemberCategory")
|
||||
private String clearingMemberCategory;
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private List<Row> rows;
|
||||
|
||||
@XStreamAlias("total")
|
||||
private Total total;
|
||||
|
||||
|
||||
public ReportPA_BT2_IV(LocalDate startDate,
|
||||
LocalDate endDate) {
|
||||
super(ReportId.PA_BT2_IV,
|
||||
"0.0.1",
|
||||
"BT2",
|
||||
"Отчет по нетто-позиции участника клиринга в секции МКР (Вкладчик)",
|
||||
startDate,
|
||||
endDate);
|
||||
this.clearingMemberCategory = "I,V";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getReportName(LocalDateTime reportDateTime) {
|
||||
return "REPPA.BT12.2.IV.%s-%s.%s".formatted(
|
||||
DATE_FORMATTER.format(startDate),
|
||||
DATE_FORMATTER.format(endDate),
|
||||
DATE_TIME_FORMATTER.format(reportDateTime)
|
||||
);
|
||||
}
|
||||
|
||||
public List<Row> getRows() {
|
||||
return rows;
|
||||
}
|
||||
|
||||
public void setRows(List<Row> rows) {
|
||||
this.rows = rows;
|
||||
}
|
||||
|
||||
public Total getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
public void setTotal(Total total) {
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
@XStreamAlias("total")
|
||||
public static class Total {
|
||||
@XStreamAlias("claimsAmount")
|
||||
private BigDecimal claimsAmount;
|
||||
|
||||
@XStreamAlias("liabilitiesAmount")
|
||||
private BigDecimal liabilitiesAmount;
|
||||
|
||||
@XStreamAlias("paymentAmount")
|
||||
private BigDecimal paymentAmount;
|
||||
|
||||
public Total(BigDecimal claimsAmount, BigDecimal liabilitiesAmount, BigDecimal paymentAmount) {
|
||||
this.claimsAmount = claimsAmount;
|
||||
this.liabilitiesAmount = liabilitiesAmount;
|
||||
this.paymentAmount = paymentAmount;
|
||||
}
|
||||
}
|
||||
|
||||
@XStreamAlias("row")
|
||||
public static class Row {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("id")
|
||||
private Long id;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_fullName")
|
||||
private String liabilitiesClaimsAssetsFullName;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("company_clearingCode")
|
||||
private String companyClearingCode;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_settlementDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
private LocalDate liabilitiesClaimsAssetsSettlementDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_refundDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
private LocalDate liabilitiesClaimsAssetsRefundDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_tradingDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
private LocalDate liabilitiesClaimsAssetsTradingDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_contract")
|
||||
private String liabilitiesClaimsAssetsContract;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity")
|
||||
private BigDecimal liabilitiesClaimsAssetsLiabilitiesQuantity;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("chargeCommission")
|
||||
private String chargeCommission;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity")
|
||||
private BigDecimal liabilitiesClaimsAssetsClaimsQuantity;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_refundPaymentId")
|
||||
private Long liabilitiesClaimsAssetsRefundPaymentId;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_clearingStatus")
|
||||
private Long liabilitiesClaimsAssetsClearingStatus;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_comment")
|
||||
private String liabilitiesClaimsAssetsComment;
|
||||
|
||||
|
||||
public Row(Long id,
|
||||
String liabilitiesClaimsAssetsFullName,
|
||||
String companyClearingCode,
|
||||
LocalDate liabilitiesClaimsAssetsSettlementDate,
|
||||
LocalDate liabilitiesClaimsAssetsRefundDate,
|
||||
LocalDate liabilitiesClaimsAssetsTradingDate,
|
||||
String liabilitiesClaimsAssetsContract,
|
||||
BigDecimal liabilitiesClaimsAssetsLiabilitiesQuantity,
|
||||
String chargeCommission,
|
||||
BigDecimal liabilitiesClaimsAssetsClaimsQuantity,
|
||||
Long liabilitiesClaimsAssetsRefundPaymentId,
|
||||
Long liabilitiesClaimsAssetsClearingStatus,
|
||||
String liabilitiesClaimsAssetsComment) {
|
||||
this.id = id;
|
||||
this.liabilitiesClaimsAssetsFullName = liabilitiesClaimsAssetsFullName;
|
||||
this.companyClearingCode = companyClearingCode;
|
||||
this.liabilitiesClaimsAssetsSettlementDate = liabilitiesClaimsAssetsSettlementDate;
|
||||
this.liabilitiesClaimsAssetsRefundDate = liabilitiesClaimsAssetsRefundDate;
|
||||
this.liabilitiesClaimsAssetsTradingDate = liabilitiesClaimsAssetsTradingDate;
|
||||
this.liabilitiesClaimsAssetsContract = liabilitiesClaimsAssetsContract;
|
||||
this.liabilitiesClaimsAssetsLiabilitiesQuantity = liabilitiesClaimsAssetsLiabilitiesQuantity;
|
||||
this.chargeCommission = chargeCommission;
|
||||
this.liabilitiesClaimsAssetsClaimsQuantity = liabilitiesClaimsAssetsClaimsQuantity;
|
||||
this.liabilitiesClaimsAssetsRefundPaymentId = liabilitiesClaimsAssetsRefundPaymentId;
|
||||
this.liabilitiesClaimsAssetsClearingStatus = liabilitiesClaimsAssetsClearingStatus;
|
||||
this.liabilitiesClaimsAssetsComment = liabilitiesClaimsAssetsComment;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
package ru.spcex.clearing.reports.reports.bt_12_2;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports.reports.ReportId;
|
||||
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||
import ru.spcex.platform.enumeration.ClearingMemberCategoryD;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("netPositionInitiator")
|
||||
public class ReportPA_IV extends ReportWithPeriod {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("clearingMemberCategory")
|
||||
private String clearingMemberCategory;
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private List<Info_PA_IV> rows = new ArrayList<>();
|
||||
|
||||
@XStreamAlias("total")
|
||||
private Total total;
|
||||
|
||||
|
||||
public ReportPA_IV(LocalDate startDate,
|
||||
LocalDate endDate) {
|
||||
super(ReportId.PA_IV,
|
||||
"0.0.1",
|
||||
"BT2",
|
||||
"Отчет по нетто-позиции участника клиринга в секции МКР (Вкладчик)",
|
||||
startDate,
|
||||
endDate);
|
||||
this.clearingMemberCategory = "%s,%s".formatted(
|
||||
ClearingMemberCategoryD.I.getKey(),
|
||||
ClearingMemberCategoryD.V.getKey()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getReportName(LocalDateTime reportDateTime) {
|
||||
return "REPPA.BT12.2.IV.%s-%s.%s".formatted(
|
||||
DATE_FORMATTER.format(startDate),
|
||||
DATE_FORMATTER.format(endDate),
|
||||
DATE_TIME_FORMATTER.format(reportDateTime)
|
||||
);
|
||||
}
|
||||
|
||||
public void setTotal(Total total) {
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
public List<Info_PA_IV> getRows() {
|
||||
return rows;
|
||||
}
|
||||
|
||||
@XStreamAlias("total")
|
||||
public record Total(@XStreamAsAttribute @XStreamAlias("claimsAmount") String claimsAmount,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesAmount") String liabilitiesAmount,
|
||||
@XStreamAsAttribute @XStreamAlias("paymentAmount") String paymentAmount) {
|
||||
}
|
||||
|
||||
@XStreamAlias("row")
|
||||
public record Info_PA_IV(
|
||||
@XStreamAsAttribute @XStreamAlias("id") String id,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName,
|
||||
@XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_settlementDate") String liabilitiesClaimsAssetsSettlementDate,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundDate") String liabilitiesClaimsAssetsRefundDate,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_tradingDate") String liabilitiesClaimsAssetsTradingDate,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_contract") String liabilitiesClaimsAssetsContract,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity,
|
||||
@XStreamAsAttribute @XStreamAlias("chargeCommission") String chargeCommission,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity") String liabilitiesClaimsAssetsClaimsQuantity,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundPaymentId") String liabilitiesClaimsAssetsRefundPaymentId,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_clearingStatus") String liabilitiesClaimsAssetsClearingStatus,
|
||||
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_comment") String liabilitiesClaimsAssetsComment
|
||||
) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -19,7 +19,6 @@ public class Report_BT16_5 extends AbstractReport {
|
|||
@XStreamAlias("time")
|
||||
private LocalTime time;
|
||||
|
||||
|
||||
@XStreamAlias("id")
|
||||
private String id;
|
||||
|
||||
|
|
|
|||
|
|
@ -49,8 +49,7 @@ public class ReportDOCIN_Collector extends SimpleReportCollector<ReportDOCIN> {
|
|||
toString(inDocumentJournal.getAmount()),
|
||||
toString(inDocumentJournal.getDossierNumber()),
|
||||
toString(inDocumentJournal.getComment()),
|
||||
toString(inDocumentJournal.getReceiptDate())
|
||||
);
|
||||
toString(inDocumentJournal.getReceiptDate()));
|
||||
reportDOCIN.getRows().add(infoDOCIN);
|
||||
}
|
||||
return reportDOCIN;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@ package ru.spcex.clearing.reports.services.collector;
|
|||
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
|
||||
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_BT2_B;
|
||||
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_B;
|
||||
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
|
||||
import ru.spcex.platform.enumeration.ClearingMemberCategoryD;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
|
|
@ -13,18 +14,15 @@ import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuild
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ReportPA_BT2_B_Collector extends ReportWithPeriodCollector<ReportPA_BT2_B> {
|
||||
public class ReportPA_B_Collector extends ReportWithPeriodCollector<ReportPA_B> {
|
||||
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
|
||||
public ReportPA_BT2_B_Collector(ImdgProvider imdgProvider) {
|
||||
public ReportPA_B_Collector(ImdgProvider imdgProvider) {
|
||||
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(
|
||||
IMDGDistributedNames.Map_LiabilitiesClaimsAssets,
|
||||
LiabilitiesClaimsAssets.class
|
||||
|
|
@ -36,11 +34,11 @@ public class ReportPA_BT2_B_Collector extends ReportWithPeriodCollector<ReportPA
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReportPA_BT2_B collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
public ReportPA_B collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
|
||||
|
||||
ImdgPredicate clearingMemberCategoryPredicate = builder.equals("clearingMemberCategory", "B");
|
||||
ImdgPredicate clearingMemberCategoryPredicate = builder.equals("clearingMemberCategory", ClearingMemberCategoryD.B.getKey());
|
||||
Collection<ClearingMemberCategory> clearingMemberCategories =
|
||||
clearingMemberCategoryImdg.getCollectionObjectsByPredicate(clearingMemberCategoryPredicate);
|
||||
Set<Long> companyIds = clearingMemberCategories.stream()
|
||||
|
|
@ -59,46 +57,47 @@ public class ReportPA_BT2_B_Collector extends ReportWithPeriodCollector<ReportPA
|
|||
Collection<LiabilitiesClaimsAssets> liabilitiesClaimsAssets =
|
||||
liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate);
|
||||
|
||||
ReportPA_BT2_B report = new ReportPA_BT2_B(startDate, endDate);
|
||||
List<ReportPA_BT2_B.Row> rows = new ArrayList<>(liabilitiesClaimsAssets.size());
|
||||
ReportPA_B report = new ReportPA_B(startDate, endDate);
|
||||
BigDecimal claimsAmount = BigDecimal.ZERO;
|
||||
BigDecimal liabilitiesAmount = BigDecimal.ZERO;
|
||||
BigDecimal paymentAmount = BigDecimal.ZERO;
|
||||
for (LiabilitiesClaimsAssets liabilitiesClaimsAsset : liabilitiesClaimsAssets) {
|
||||
ReportPA_BT2_B.Row row = new ReportPA_BT2_B.Row(
|
||||
liabilitiesClaimsAsset.getId(),
|
||||
liabilitiesClaimsAsset.getFullName(),
|
||||
liabilitiesClaimsAsset.getClearingCode(),
|
||||
liabilitiesClaimsAsset.getSettlementDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getSettlementDate(), ZoneId.systemDefault()) : null,
|
||||
liabilitiesClaimsAsset.getRefundDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getRefundDate(), ZoneId.systemDefault()) : null,
|
||||
liabilitiesClaimsAsset.getTradingDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getTradingDate(), ZoneId.systemDefault()) : null,
|
||||
liabilitiesClaimsAsset.getContract(),
|
||||
liabilitiesClaimsAsset.getLiabilitiesQuantity(),
|
||||
"NOT PRESENTED ON DB", // todo спросить в таске, в базе нету этого поля
|
||||
liabilitiesClaimsAsset.getClaimsQuantity(),
|
||||
liabilitiesClaimsAsset.getRefundPaymentId(),
|
||||
liabilitiesClaimsAsset.getClearingStatus(),
|
||||
liabilitiesClaimsAsset.getComment()
|
||||
ReportPA_B.Info_PA_B infoPAB = new ReportPA_B.Info_PA_B(
|
||||
toString(liabilitiesClaimsAsset.getId()),
|
||||
toString(liabilitiesClaimsAsset.getFullName()),
|
||||
toString(liabilitiesClaimsAsset.getClearingCode()),
|
||||
toString(liabilitiesClaimsAsset.getSettlementDate()),
|
||||
toString(liabilitiesClaimsAsset.getRefundDate()),
|
||||
toString(liabilitiesClaimsAsset.getTradingDate()),
|
||||
toString(liabilitiesClaimsAsset.getContract()),
|
||||
toString(liabilitiesClaimsAsset.getLiabilitiesQuantity()),
|
||||
"",
|
||||
toString(liabilitiesClaimsAsset.getClaimsQuantity()),
|
||||
toString(liabilitiesClaimsAsset.getRefundPaymentId()),
|
||||
toString(liabilitiesClaimsAsset.getClearingStatus()),
|
||||
toString(liabilitiesClaimsAsset.getComment())
|
||||
);
|
||||
rows.add(row);
|
||||
|
||||
if (liabilitiesClaimsAsset.getClaimsQuantity() != null)
|
||||
report.getRows().add(infoPAB);
|
||||
if (liabilitiesClaimsAsset.getClaimsQuantity() != null) {
|
||||
claimsAmount = claimsAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
|
||||
|
||||
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null)
|
||||
paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
|
||||
}
|
||||
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null) {
|
||||
liabilitiesAmount = liabilitiesAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity());
|
||||
|
||||
paymentAmount = paymentAmount.add(BigDecimal.ZERO); // todo спросить в таске, в тз не указано поле для подсчёта
|
||||
paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity().negate());
|
||||
}
|
||||
}
|
||||
ReportPA_BT2_B.Total total = new ReportPA_BT2_B.Total(claimsAmount, liabilitiesAmount, paymentAmount);
|
||||
report.setRows(rows);
|
||||
ReportPA_B.Total total = new ReportPA_B.Total(
|
||||
toString(claimsAmount),
|
||||
toString(liabilitiesAmount),
|
||||
toString(paymentAmount));
|
||||
report.setTotal(total);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<ReportPA_BT2_B> getReportClass() {
|
||||
return ReportPA_BT2_B.class;
|
||||
public Class<ReportPA_B> getReportClass() {
|
||||
return ReportPA_B.class;
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
|
|||
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||
import ru.clearing.platform.dictionary.ClearingStatusDictionary;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_BT2_IV;
|
||||
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_IV;
|
||||
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -14,19 +14,16 @@ import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuild
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ReportPA_BT2_IV_Collector extends ReportWithPeriodCollector<ReportPA_BT2_IV> {
|
||||
public class ReportPA_IV_Collector extends ReportWithPeriodCollector<ReportPA_IV> {
|
||||
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||
private final Imdg<ClearingStatusDictionary> clearingStatusDictionaryImdg;
|
||||
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
|
||||
public ReportPA_BT2_IV_Collector(ImdgProvider imdgProvider) {
|
||||
public ReportPA_IV_Collector(ImdgProvider imdgProvider) {
|
||||
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(
|
||||
IMDGDistributedNames.Map_LiabilitiesClaimsAssets,
|
||||
LiabilitiesClaimsAssets.class
|
||||
|
|
@ -42,7 +39,7 @@ public class ReportPA_BT2_IV_Collector extends ReportWithPeriodCollector<ReportP
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReportPA_BT2_IV collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
public ReportPA_IV collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
|
||||
|
||||
|
|
@ -68,46 +65,46 @@ public class ReportPA_BT2_IV_Collector extends ReportWithPeriodCollector<ReportP
|
|||
Collection<LiabilitiesClaimsAssets> liabilitiesClaimsAssets =
|
||||
liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate);
|
||||
|
||||
ReportPA_BT2_IV report = new ReportPA_BT2_IV(startDate, endDate);
|
||||
List<ReportPA_BT2_IV.Row> rows = new ArrayList<>(liabilitiesClaimsAssets.size());
|
||||
ReportPA_IV report = new ReportPA_IV(startDate, endDate);
|
||||
BigDecimal claimsAmount = BigDecimal.ZERO;
|
||||
BigDecimal liabilitiesAmount = BigDecimal.ZERO;
|
||||
BigDecimal paymentAmount = BigDecimal.ZERO;
|
||||
for (LiabilitiesClaimsAssets liabilitiesClaimsAsset : liabilitiesClaimsAssets) {
|
||||
ReportPA_BT2_IV.Row row = new ReportPA_BT2_IV.Row(
|
||||
liabilitiesClaimsAsset.getId(),
|
||||
liabilitiesClaimsAsset.getFullName(),
|
||||
liabilitiesClaimsAsset.getClearingCode(),
|
||||
liabilitiesClaimsAsset.getSettlementDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getSettlementDate(), ZoneId.systemDefault()) : null,
|
||||
liabilitiesClaimsAsset.getRefundDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getRefundDate(), ZoneId.systemDefault()) : null,
|
||||
liabilitiesClaimsAsset.getTradingDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getTradingDate(), ZoneId.systemDefault()) : null,
|
||||
liabilitiesClaimsAsset.getContract(),
|
||||
liabilitiesClaimsAsset.getLiabilitiesQuantity(),
|
||||
"NOT PRESENTED ON DB", // todo спросить в таске, в базе нету этого поля
|
||||
liabilitiesClaimsAsset.getClaimsQuantity(),
|
||||
liabilitiesClaimsAsset.getRefundPaymentId(),
|
||||
liabilitiesClaimsAsset.getClearingStatus(),
|
||||
liabilitiesClaimsAsset.getComment()
|
||||
);
|
||||
rows.add(row);
|
||||
|
||||
if (liabilitiesClaimsAsset.getClaimsQuantity() != null)
|
||||
ReportPA_IV.Info_PA_IV row = new ReportPA_IV.Info_PA_IV(
|
||||
toString(liabilitiesClaimsAsset.getId()),
|
||||
toString(liabilitiesClaimsAsset.getFullName()),
|
||||
toString(liabilitiesClaimsAsset.getClearingCode()),
|
||||
toString(liabilitiesClaimsAsset.getSettlementDate()),
|
||||
toString(liabilitiesClaimsAsset.getRefundDate()),
|
||||
toString(liabilitiesClaimsAsset.getTradingDate()),
|
||||
toString(liabilitiesClaimsAsset.getContract()),
|
||||
toString(liabilitiesClaimsAsset.getLiabilitiesQuantity()),
|
||||
"",
|
||||
toString(liabilitiesClaimsAsset.getClaimsQuantity()),
|
||||
toString(liabilitiesClaimsAsset.getRefundPaymentId()),
|
||||
toString(liabilitiesClaimsAsset.getClearingStatus()),
|
||||
toString(liabilitiesClaimsAsset.getComment()));
|
||||
report.getRows().add(row);
|
||||
if (liabilitiesClaimsAsset.getClaimsQuantity() != null) {
|
||||
claimsAmount = claimsAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
|
||||
|
||||
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null)
|
||||
paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
|
||||
}
|
||||
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null) {
|
||||
liabilitiesAmount = liabilitiesAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity());
|
||||
|
||||
paymentAmount = paymentAmount.add(BigDecimal.ZERO); // todo спросить в таске, в тз не указано поле для подсчёта
|
||||
paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity().negate());
|
||||
}
|
||||
}
|
||||
ReportPA_BT2_IV.Total total = new ReportPA_BT2_IV.Total(claimsAmount, liabilitiesAmount, paymentAmount);
|
||||
report.setRows(rows);
|
||||
ReportPA_IV.Total total = new ReportPA_IV.Total(
|
||||
toString(claimsAmount),
|
||||
toString(liabilitiesAmount),
|
||||
toString(paymentAmount));
|
||||
report.setTotal(total);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<ReportPA_BT2_IV> getReportClass() {
|
||||
return ReportPA_BT2_IV.class;
|
||||
public Class<ReportPA_IV> getReportClass() {
|
||||
return ReportPA_IV.class;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue