cls-52/53
This commit is contained in:
parent
0b27f29865
commit
52365c093f
8 changed files with 548 additions and 229 deletions
|
|
@ -1,15 +1,23 @@
|
|||
package ru.spcex.clearing.reports;
|
||||
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import com.thoughtworks.xstream.io.naming.NoNameCoder;
|
||||
import com.thoughtworks.xstream.io.xml.XppDriver;
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
import org.slf4j.Logger;
|
||||
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.notifications.REXNotificationBuilder;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_BT2_B;
|
||||
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_BT2_IV;
|
||||
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||
import ru.spcex.clearing.reports.services.ReportsService;
|
||||
import ru.spcex.clearing.reports.services.builders.XMLReportBuilder;
|
||||
import ru.spcex.clearing.reports.services.collector.ReportPA_BT2_B_Collector;
|
||||
import ru.spcex.clearing.reports.services.collector.ReportPA_BT2_IV_Collector;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.io.File;
|
||||
|
|
@ -21,32 +29,49 @@ public class ReportsServiceApplication {
|
|||
public static void main(String[] args) {
|
||||
try {
|
||||
SpringApplicationBuilder builder = new SpringApplicationBuilder(ReportsServiceApplication.class);
|
||||
builder.run(args);
|
||||
ConfigurableApplicationContext context = builder.run(args);
|
||||
|
||||
test(context);
|
||||
|
||||
//todo это тест. Переписать код:
|
||||
Logger log = LoggerFactory.getLogger(ReportsServiceApplication.class);
|
||||
ImdgProvider imdg = context.getBean(ImdgProvider.class);
|
||||
log.info("Wait IMDG...");
|
||||
imdg.waitAvailable();
|
||||
log.info("Run generate report.");
|
||||
Map<String, ReportDataCollector> allReports = context.getBeansOfType(ReportDataCollector.class);
|
||||
log.info("Report types: {}", allReports);
|
||||
for (ReportDataCollector collector : allReports.values()) {
|
||||
log.info("Make report {}", collector);
|
||||
File outPath=new File(".");
|
||||
XMLReportBuilder xmlReportBuilder = new XMLReportBuilder(collector.getReportClass(), outPath);
|
||||
LocalDate date2 = LocalDate.now();
|
||||
LocalDate date1 = LocalDate.of(date2.getYear(), date2.getMonth(), 1);//date2.minusMonths(1);
|
||||
AbstractReport report = collector.collectReportWithPeriod(date1, date2);
|
||||
xmlReportBuilder.createReport(report);
|
||||
}
|
||||
log.info("Shutdown application after work");
|
||||
context.close(); // todo если будет запущен как сервис, сделать выход опционально, по другому.
|
||||
// Logger log = LoggerFactory.getLogger(ReportsServiceApplication.class);
|
||||
// ImdgProvider imdg = context.getBean(ImdgProvider.class);
|
||||
// log.info("Wait IMDG...");
|
||||
// imdg.waitAvailable();
|
||||
// log.info("Run generate report.");
|
||||
// Map<String, ReportDataCollector> allReports = context.getBeansOfType(ReportDataCollector.class);
|
||||
// log.info("Report types: {}", allReports);
|
||||
// for (ReportDataCollector collector : allReports.values()) {
|
||||
// log.info("Make report {}", collector);
|
||||
// File outPath=new File(".");
|
||||
// XMLReportBuilder xmlReportBuilder = new XMLReportBuilder(collector.getReportClass(), outPath);
|
||||
// LocalDate date2 = LocalDate.now();
|
||||
// LocalDate date1 = LocalDate.of(date2.getYear(), date2.getMonth(), 1);//date2.minusMonths(1);
|
||||
// AbstractReport report = collector.collectReportWithPeriod(date1, date2);
|
||||
// xmlReportBuilder.createReport(report);
|
||||
// }
|
||||
// log.info("Shutdown application after work");
|
||||
// context.close(); // todo если будет запущен как сервис, сделать выход опционально, по другому.
|
||||
} catch (Throwable e) {
|
||||
LoggerFactory.getLogger(ReportsServiceApplication.class).error("Report-service start failed: {} -> {}", e.getClass().getSimpleName(), ExceptionUtils.getStackTrace(e));
|
||||
System.exit(-1);
|
||||
}
|
||||
ReportsService reportsService = new ReportsService();
|
||||
reportsService.writeXML();
|
||||
// ReportsService reportsService = new ReportsService();
|
||||
// reportsService.writeXML();
|
||||
}
|
||||
|
||||
|
||||
public static void test(ConfigurableApplicationContext context) {
|
||||
ImdgProvider imdg = context.getBean(ImdgProvider.class);
|
||||
ReportPA_BT2_IV_Collector collector = new ReportPA_BT2_IV_Collector(imdg);
|
||||
ReportPA_BT2_IV report = collector.collectReportWithPeriod(
|
||||
LocalDate.of(2022, 12, 1),
|
||||
LocalDate.of(2023, 1, 1)
|
||||
);
|
||||
XStream xStream = new XStream(new XppDriver(new NoNameCoder()));
|
||||
xStream.processAnnotations(ReportPA_BT2_IV.class);
|
||||
String out = xStream.toXML(report);
|
||||
System.out.println(out);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,15 @@ 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 {
|
||||
|
|
@ -14,111 +18,155 @@ public class ReportPA_BT2_B extends ReportWithPeriod {
|
|||
@XStreamAlias("clearingMemberCategory")
|
||||
private String clearingMemberCategory;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_fullName")
|
||||
private String liabilitiesClaimsAssetsFullName;
|
||||
|
||||
@XStreamAlias("company_clearingCode")
|
||||
private String companyClearingCode;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_settlementDate")
|
||||
private String liabilitiesClaimsAssetsSettlementDate;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_refundDate")
|
||||
private String liabilitiesClaimsAssetsRefundDate;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_tradingDate")
|
||||
private String liabilitiesClaimsAssetsTradingDate;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_contract")
|
||||
private String liabilitiesClaimsAssetsContract;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity")
|
||||
private String liabilitiesClaimsAssetsLiabilitiesQuantity;
|
||||
|
||||
@XStreamAlias("chargeCommission")
|
||||
private String chargeCommission;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity")
|
||||
private String liabilitiesClaimsAssetsClaimsQuantity;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_refundPaymentId")
|
||||
private String liabilitiesClaimsAssetsRefundPaymentId;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_clearingStatus")
|
||||
private String liabilitiesClaimsAssetsClearingStatus;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_comment")
|
||||
private String liabilitiesClaimsAssetsComment;
|
||||
@XStreamAlias("rows")
|
||||
private List<Row> rows;
|
||||
|
||||
@XStreamAlias("total")
|
||||
private Total total;
|
||||
|
||||
|
||||
public ReportPA_BT2_B(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String clearingMemberCategory,
|
||||
String liabilitiesClaimsAssetsFullName,
|
||||
String companyClearingCode,
|
||||
String liabilitiesClaimsAssetsSettlementDate,
|
||||
String liabilitiesClaimsAssetsRefundDate,
|
||||
String liabilitiesClaimsAssetsTradingDate,
|
||||
String liabilitiesClaimsAssetsContract,
|
||||
String liabilitiesClaimsAssetsLiabilitiesQuantity,
|
||||
String chargeCommission,
|
||||
String liabilitiesClaimsAssetsClaimsQuantity,
|
||||
String liabilitiesClaimsAssetsRefundPaymentId,
|
||||
String liabilitiesClaimsAssetsClearingStatus,
|
||||
String liabilitiesClaimsAssetsComment,
|
||||
String claimsAmount,
|
||||
String liabilitiesAmount,
|
||||
String paymentAmount) {
|
||||
LocalDate endDate) {
|
||||
super(ReportId.PA_BT2_B,
|
||||
"0.0.1",
|
||||
"BT2",
|
||||
"BT12.2",
|
||||
"Отчет по нетто-позиции участника клиринга в секции МКР (Уполномоченный банк)",
|
||||
startDate,
|
||||
endDate);
|
||||
this.clearingMemberCategory = clearingMemberCategory;
|
||||
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;
|
||||
this.total = new Total(claimsAmount, liabilitiesAmount, paymentAmount);
|
||||
this.clearingMemberCategory = "B";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getReportName(LocalDateTime reportDateTime) {
|
||||
return "REPPA.BT12.2.B.%s-%s.%s".formatted(
|
||||
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 String claimsAmount;
|
||||
private BigDecimal claimsAmount;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesAmount")
|
||||
private String liabilitiesAmount;
|
||||
private BigDecimal liabilitiesAmount;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("paymentAmount")
|
||||
private String paymentAmount;
|
||||
private BigDecimal paymentAmount;
|
||||
|
||||
public Total(String claimsAmount, String liabilitiesAmount, String 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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,15 @@ 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 {
|
||||
|
|
@ -14,84 +18,22 @@ public class ReportPA_BT2_IV extends ReportWithPeriod {
|
|||
@XStreamAlias("clearingMemberCategory")
|
||||
private String clearingMemberCategory;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_fullName")
|
||||
private String liabilitiesClaimsAssetsFullName;
|
||||
|
||||
@XStreamAlias("company_clearingCode")
|
||||
private String companyClearingCode;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_settlementDate")
|
||||
private String liabilitiesClaimsAssetsSettlementDate;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_refundDate")
|
||||
private String liabilitiesClaimsAssetsRefundDate;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_tradingDate")
|
||||
private String liabilitiesClaimsAssetsTradingDate;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_contract")
|
||||
private String liabilitiesClaimsAssetsContract;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity")
|
||||
private String liabilitiesClaimsAssetsLiabilitiesQuantity;
|
||||
|
||||
@XStreamAlias("chargeCommission")
|
||||
private String chargeCommission;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity")
|
||||
private String liabilitiesClaimsAssetsClaimsQuantity;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_refundPaymentId")
|
||||
private String liabilitiesClaimsAssetsRefundPaymentId;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_clearingStatus")
|
||||
private String liabilitiesClaimsAssetsClearingStatus;
|
||||
|
||||
@XStreamAlias("liabilitiesClaimsAssets_comment")
|
||||
private String liabilitiesClaimsAssetsComment;
|
||||
@XStreamAlias("rows")
|
||||
private List<Row> rows;
|
||||
|
||||
@XStreamAlias("total")
|
||||
private Total total;
|
||||
|
||||
|
||||
public ReportPA_BT2_IV(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String clearingMemberCategory,
|
||||
String liabilitiesClaimsAssetsFullName,
|
||||
String companyClearingCode,
|
||||
String liabilitiesClaimsAssetsSettlementDate,
|
||||
String liabilitiesClaimsAssetsRefundDate,
|
||||
String liabilitiesClaimsAssetsTradingDate,
|
||||
String liabilitiesClaimsAssetsContract,
|
||||
String liabilitiesClaimsAssetsLiabilitiesQuantity,
|
||||
String chargeCommission,
|
||||
String liabilitiesClaimsAssetsClaimsQuantity,
|
||||
String liabilitiesClaimsAssetsRefundPaymentId,
|
||||
String liabilitiesClaimsAssetsClearingStatus,
|
||||
String liabilitiesClaimsAssetsComment,
|
||||
String claimsAmount,
|
||||
String liabilitiesAmount,
|
||||
String paymentAmount) {
|
||||
LocalDate endDate) {
|
||||
super(ReportId.PA_BT2_IV,
|
||||
"0.0.1",
|
||||
"BT2",
|
||||
"Отчет по нетто-позиции участника клиринга в секции МКР (Вкладчик)",
|
||||
startDate,
|
||||
endDate);
|
||||
this.clearingMemberCategory = clearingMemberCategory;
|
||||
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;
|
||||
this.total = new Total(claimsAmount, liabilitiesAmount, paymentAmount);
|
||||
this.clearingMemberCategory = "I,V";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -103,22 +45,125 @@ public class ReportPA_BT2_IV extends ReportWithPeriod {
|
|||
);
|
||||
}
|
||||
|
||||
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 String claimsAmount;
|
||||
private BigDecimal claimsAmount;
|
||||
|
||||
@XStreamAlias("liabilitiesAmount")
|
||||
private String liabilitiesAmount;
|
||||
private BigDecimal liabilitiesAmount;
|
||||
|
||||
@XStreamAlias("paymentAmount")
|
||||
private String paymentAmount;
|
||||
private BigDecimal paymentAmount;
|
||||
|
||||
public Total(String claimsAmount, String liabilitiesAmount, String 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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -226,45 +226,45 @@ public class ReportsService {
|
|||
|
||||
|
||||
/* ========= БТ 12.2 ========== */
|
||||
ReportPA_BT2_IV reportPA_bt2_iv = new ReportPA_BT2_IV(LocalDate.now(),
|
||||
LocalDate.now(),
|
||||
"clearingMemberCategory",
|
||||
"liabilitiesClaimsAssetsFullName",
|
||||
"companyClearingCode",
|
||||
"liabilitiesClaimsAssetsSettlementDate",
|
||||
"liabilitiesClaimsAssetsRefundDate",
|
||||
"liabilitiesClaimsAssetsTradingDate",
|
||||
"liabilitiesClaimsAssetsContract",
|
||||
"liabilitiesClaimsAssetsLiabilitiesQuantity",
|
||||
"chargeCommission",
|
||||
"liabilitiesClaimsAssetsClaimsQuantity",
|
||||
"liabilitiesClaimsAssetsRefundPaymentId",
|
||||
"liabilitiesClaimsAssetsClearingStatus",
|
||||
"liabilitiesClaimsAssetsComment",
|
||||
"claimsAmount",
|
||||
"liabilitiesAmount",
|
||||
"paymentAmount");
|
||||
log.info("ReportPA_BT2_IV:\n{}\n", xStream.toXML(reportPA_bt2_iv));
|
||||
// ReportPA_BT2_IV reportPA_bt2_iv = new ReportPA_BT2_IV(LocalDate.now(),
|
||||
// LocalDate.now(),
|
||||
// "clearingMemberCategory",
|
||||
// "liabilitiesClaimsAssetsFullName",
|
||||
// "companyClearingCode",
|
||||
// "liabilitiesClaimsAssetsSettlementDate",
|
||||
// "liabilitiesClaimsAssetsRefundDate",
|
||||
// "liabilitiesClaimsAssetsTradingDate",
|
||||
// "liabilitiesClaimsAssetsContract",
|
||||
// "liabilitiesClaimsAssetsLiabilitiesQuantity",
|
||||
// "chargeCommission",
|
||||
// "liabilitiesClaimsAssetsClaimsQuantity",
|
||||
// "liabilitiesClaimsAssetsRefundPaymentId",
|
||||
// "liabilitiesClaimsAssetsClearingStatus",
|
||||
// "liabilitiesClaimsAssetsComment",
|
||||
// "claimsAmount",
|
||||
// "liabilitiesAmount",
|
||||
// "paymentAmount");
|
||||
// log.info("ReportPA_BT2_IV:\n{}\n", xStream.toXML(reportPA_bt2_iv));
|
||||
|
||||
ReportPA_BT2_B reportPA_bt2_b = new ReportPA_BT2_B(LocalDate.now(),
|
||||
LocalDate.now(),
|
||||
"clearingMemberCategory",
|
||||
"liabilitiesClaimsAssetsFullName",
|
||||
"companyClearingCode",
|
||||
"liabilitiesClaimsAssetsSettlementDate",
|
||||
"liabilitiesClaimsAssetsRefundDate",
|
||||
"liabilitiesClaimsAssetsTradingDate",
|
||||
"liabilitiesClaimsAssetsContract",
|
||||
"liabilitiesClaimsAssetsLiabilitiesQuantity",
|
||||
"chargeCommission",
|
||||
"liabilitiesClaimsAssetsClaimsQuantity",
|
||||
"liabilitiesClaimsAssetsRefundPaymentId",
|
||||
"liabilitiesClaimsAssetsClearingStatus",
|
||||
"liabilitiesClaimsAssetsComment",
|
||||
"claimsAmount",
|
||||
"liabilitiesAmount",
|
||||
"paymentAmount");
|
||||
log.info("ReportPA_BT2_B:\n{}\n", xStream.toXML(reportPA_bt2_b));
|
||||
// ReportPA_BT2_B reportPA_bt2_b = new ReportPA_BT2_B(LocalDate.now(),
|
||||
// LocalDate.now(),
|
||||
// "clearingMemberCategory",
|
||||
// "liabilitiesClaimsAssetsFullName",
|
||||
// "companyClearingCode",
|
||||
// "liabilitiesClaimsAssetsSettlementDate",
|
||||
// "liabilitiesClaimsAssetsRefundDate",
|
||||
// "liabilitiesClaimsAssetsTradingDate",
|
||||
// "liabilitiesClaimsAssetsContract",
|
||||
// "liabilitiesClaimsAssetsLiabilitiesQuantity",
|
||||
// "chargeCommission",
|
||||
// "liabilitiesClaimsAssetsClaimsQuantity",
|
||||
// "liabilitiesClaimsAssetsRefundPaymentId",
|
||||
// "liabilitiesClaimsAssetsClearingStatus",
|
||||
// "liabilitiesClaimsAssetsComment",
|
||||
// "claimsAmount",
|
||||
// "liabilitiesAmount",
|
||||
// "paymentAmount");
|
||||
// log.info("ReportPA_BT2_B:\n{}\n", xStream.toXML(reportPA_bt2_b));
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
package ru.spcex.clearing.reports.services.builders;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class DOCXReportBuilder extends FileReportBuilder {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
protected DOCXReportBuilder(Class<? extends AbstractReport> reportClass, File templateResource) throws IOException {
|
||||
super(reportClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File createReport(AbstractReport report) throws IOException {
|
||||
// todo implement
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
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.clearing.platform.dictionary.ClearingStatusDictionary;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_BT2_B;
|
||||
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuilderHazelcast;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateHazelcast;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ReportPA_BT2_B_Collector extends ReportDataCollector<ReportPA_BT2_B> {
|
||||
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||
private final Imdg<ClearingStatusDictionary> clearingStatusDictionaryImdg;
|
||||
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
|
||||
public ReportPA_BT2_B_Collector(ImdgProvider imdgProvider) {
|
||||
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(
|
||||
IMDGDistributedNames.Map_LiabilitiesClaimsAssets,
|
||||
LiabilitiesClaimsAssets.class
|
||||
);
|
||||
clearingStatusDictionaryImdg = imdgProvider.getImdg(
|
||||
IMDGDistributedNames.Map_ClearingStatusDictionary,
|
||||
ClearingStatusDictionary.class
|
||||
);
|
||||
clearingMemberCategoryImdg = imdgProvider.getImdg(
|
||||
IMDGDistributedNames.Map_ClearingMemberCategory,
|
||||
ClearingMemberCategory.class
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportPA_BT2_B collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
|
||||
|
||||
ImdgPredicate clearingMemberCategoryPredicate = builder.equals("clearingMemberCategory", "B");
|
||||
Collection<ClearingMemberCategory> clearingMemberCategories =
|
||||
clearingMemberCategoryImdg.getCollectionObjectsByPredicate(clearingMemberCategoryPredicate);
|
||||
Set<Long> companyIds = clearingMemberCategories.stream()
|
||||
.map(ClearingMemberCategory::getCompanyId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
ImdgPredicate refundDatePredicate = builder.and(
|
||||
builder.greatEqual("refundDate", toInstantStartDay(startDate)),
|
||||
builder.lessEqual("refundDate", toInstantStartDay(endDate))
|
||||
);
|
||||
ImdgPredicate companyIdPredicates = builder.equals("companyId", -1);
|
||||
for (Long companyId : companyIds) {
|
||||
companyIdPredicates = builder.or(companyIdPredicates, builder.equals("companyId", companyId));
|
||||
}
|
||||
ImdgPredicate finalPredicate = builder.and(refundDatePredicate, companyIdPredicates);
|
||||
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());
|
||||
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()
|
||||
);
|
||||
rows.add(row);
|
||||
|
||||
if (liabilitiesClaimsAsset.getClaimsQuantity() != null)
|
||||
claimsAmount = claimsAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
|
||||
|
||||
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null)
|
||||
liabilitiesAmount = liabilitiesAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity());
|
||||
|
||||
paymentAmount = paymentAmount.add(BigDecimal.ZERO); // todo спросить в таске, в тз не указано поле для подсчёта
|
||||
}
|
||||
ReportPA_BT2_B.Total total = new ReportPA_BT2_B.Total(claimsAmount, liabilitiesAmount, paymentAmount);
|
||||
report.setRows(rows);
|
||||
report.setTotal(total);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<ReportPA_BT2_B> getReportClass() {
|
||||
return ReportPA_BT2_B.class;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
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.clearing.platform.dictionary.ClearingStatusDictionary;
|
||||
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_BT2_IV;
|
||||
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuilderHazelcast;
|
||||
|
||||
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 ReportDataCollector<ReportPA_BT2_IV> {
|
||||
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||
private final Imdg<ClearingStatusDictionary> clearingStatusDictionaryImdg;
|
||||
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
|
||||
public ReportPA_BT2_IV_Collector(ImdgProvider imdgProvider) {
|
||||
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(
|
||||
IMDGDistributedNames.Map_LiabilitiesClaimsAssets,
|
||||
LiabilitiesClaimsAssets.class
|
||||
);
|
||||
clearingStatusDictionaryImdg = imdgProvider.getImdg(
|
||||
IMDGDistributedNames.Map_ClearingStatusDictionary,
|
||||
ClearingStatusDictionary.class
|
||||
);
|
||||
clearingMemberCategoryImdg = imdgProvider.getImdg(
|
||||
IMDGDistributedNames.Map_ClearingMemberCategory,
|
||||
ClearingMemberCategory.class
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportPA_BT2_IV collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
|
||||
|
||||
ImdgPredicate clearingMemberCategoryPredicate = builder.or(
|
||||
builder.equals("clearingMemberCategory", "I"),
|
||||
builder.equals("clearingMemberCategory", "V")
|
||||
);
|
||||
Collection<ClearingMemberCategory> clearingMemberCategories =
|
||||
clearingMemberCategoryImdg.getCollectionObjectsByPredicate(clearingMemberCategoryPredicate);
|
||||
Set<Long> companyIds = clearingMemberCategories.stream()
|
||||
.map(ClearingMemberCategory::getCompanyId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
ImdgPredicate refundDatePredicate = builder.and(
|
||||
builder.greatEqual("refundDate", toInstantStartDay(startDate)),
|
||||
builder.lessEqual("refundDate", toInstantStartDay(endDate))
|
||||
);
|
||||
ImdgPredicate companyIdPredicates = builder.equals("companyId", -1);
|
||||
for (Long companyId : companyIds) {
|
||||
companyIdPredicates = builder.or(companyIdPredicates, builder.equals("companyId", companyId));
|
||||
}
|
||||
ImdgPredicate finalPredicate = builder.and(refundDatePredicate, companyIdPredicates);
|
||||
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());
|
||||
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)
|
||||
claimsAmount = claimsAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
|
||||
|
||||
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null)
|
||||
liabilitiesAmount = liabilitiesAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity());
|
||||
|
||||
paymentAmount = paymentAmount.add(BigDecimal.ZERO); // todo спросить в таске, в тз не указано поле для подсчёта
|
||||
}
|
||||
ReportPA_BT2_IV.Total total = new ReportPA_BT2_IV.Total(claimsAmount, liabilitiesAmount, paymentAmount);
|
||||
report.setRows(rows);
|
||||
report.setTotal(total);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<ReportPA_BT2_IV> getReportClass() {
|
||||
return ReportPA_BT2_IV.class;
|
||||
}
|
||||
}
|
||||
|
|
@ -11,12 +11,12 @@ reports-service.kafka-consumer.auto-offset-reset=latest
|
|||
reports-service.kafka-consumer.linger-ms=1
|
||||
reports-service.kafka-consumer.buffer-memory=33554432
|
||||
|
||||
#reports-service.kafka-producer.bootstrap-servers=localhost:9092
|
||||
#reports-service.kafka-producer.acks=all
|
||||
#reports-service.kafka-producer.retries=0
|
||||
#reports-service.kafka-producer.batch-size=16384
|
||||
#reports-service.kafka-producer.linger-ms=1
|
||||
#reports-service.kafka-producer.buffer-memory=33554432
|
||||
reports-service.kafka-producer.bootstrap-servers=localhost:9092
|
||||
reports-service.kafka-producer.acks=all
|
||||
reports-service.kafka-producer.retries=0
|
||||
reports-service.kafka-producer.batch-size=16384
|
||||
reports-service.kafka-producer.linger-ms=1
|
||||
reports-service.kafka-producer.buffer-memory=33554432
|
||||
|
||||
reports-service.hazelcast.cluster-members=127.0.0.1:5701
|
||||
#,10.200.200.181:5701
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue