This commit is contained in:
akulikov 2023-01-10 15:48:36 +03:00
parent 94e29853af
commit d3c9bf2576
27 changed files with 319 additions and 351 deletions

View file

@ -0,0 +1,75 @@
package ru.spcex.clearing.reports.reports.bt_13;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamConverter;
import ru.spcex.clearing.reports.reports.AbstractReport;
import ru.spcex.clearing.reports.reports.ReportId;
import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
import ru.spcex.clearing.reports.xml_test.FormattedLocalTimeConverter;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
@XStreamAlias("incomingDocuments")
public class ReportDOCIN extends AbstractReport {
/**
* Дата в формате: dd.MM.yyyy
*/
@XStreamAsAttribute
@XStreamAlias("date")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private final LocalDate date;
/**
* Время в формате: hh:mm:ss
*/
@XStreamAsAttribute
@XStreamAlias("time")
@XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"})
private final LocalTime time;
@XStreamAlias("rows")
private List<Info_DOCIN> rows = new ArrayList<>();
public ReportDOCIN(LocalDate date,
LocalTime time) {
super(ReportId.BT13_11,
"0.0.1",
"BT 13.11",
"Журнал Входящих документов");
this.date = date;
this.time = time;
}
public List<Info_DOCIN> getRows() {
return rows;
}
@Override
public String getReportName(LocalDateTime reportDateTime) {
return "DOCIN.%s".formatted(
DATE_TIME_FORMATTER.format(reportDateTime)
);
}
@XStreamAlias("row")
public record Info_DOCIN(
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_registrationDate") String inDocumentJournalRegistrationDate,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_registrationTime") String inDocumentJournalRegistrationTime,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_registrationNumber") String inDocumentJournalRegistrationNumber,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_documentName") String inDocumentJournalDocumentName,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_sender") String inDocumentJournalSender,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_quantity") String inDocumentJournalQuantity,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_clearingCode") String inDocumentJournalClearingCode,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_courierType") String inDocumentJournalCourierType,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_emailDate") String inDocumentJournal_emailDate,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_Amount") String inDocumentJournalAmount,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_dossierNumber") String inDocumentJournalDossierNumber,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_Comment") String inDocumentJournalComment,
@XStreamAsAttribute @XStreamAlias("inDocumentJournal_receiptDate") String inDocumentJournalReceiptDate) {
}
}

View file

@ -1,101 +0,0 @@
package ru.spcex.clearing.reports.reports.bt_13;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports.reports.AbstractReport;
import ru.spcex.clearing.reports.reports.ReportId;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@XStreamAlias("incomingDocuments")
public class Report_BT13_11 extends AbstractReport {
@XStreamAsAttribute
@XStreamAlias("date")
private LocalDate date;
@XStreamAsAttribute
@XStreamAlias("time")
private LocalTime time;
@XStreamAlias("inDocumentJournal_registrationDate")
private String inDocumentJournalRegistrationDate;
@XStreamAlias("inDocumentJournal_registrationTime")
private String inDocumentJournalRegistrationTime;
@XStreamAlias("inDocumentJournal_registrationNumber")
private String inDocumentJournalRegistrationNumber;
@XStreamAlias("inDocumentJournal_documentName")
private String inDocumentJournalDocumentName;
@XStreamAlias("inDocumentJournal_sender")
private String inDocumentJournalSender;
@XStreamAlias("inDocumentJournal_quantity")
private String inDocumentJournalQuantity;
@XStreamAlias("inDocumentJournal_clearingCode")
private String inDocumentJournalClearingCode;
@XStreamAlias("inDocumentJournal_courierType")
private String inDocumentJournalCourierType;
@XStreamAlias("inDocumentJournal_emailDate")
private String inDocumentJournal_emailDate;
@XStreamAlias("inDocumentJournal_Amount")
private String inDocumentJournalAmount;
@XStreamAlias("inDocumentJournal_dossierNumber")
private String inDocumentJournalDossierNumber;
@XStreamAlias("inDocumentJournal_Comment")
private String inDocumentJournalComment;
@XStreamAlias("inDocumentJournal_receiptDate")
private String inDocumentJournalReceiptDate;
public Report_BT13_11(LocalDate date,
LocalTime time,
String inDocumentJournalRegistrationDate,
String inDocumentJournalRegistrationTime,
String inDocumentJournalRegistrationNumber,
String inDocumentJournalDocumentName,
String inDocumentJournalSender,
String inDocumentJournalQuantity,
String inDocumentJournalClearingCode,
String inDocumentJournalCourierType,
String inDocumentJournal_emailDate,
String inDocumentJournalAmount,
String inDocumentJournalDossierNumber,
String inDocumentJournalComment,
String inDocumentJournalReceiptDate) {
super(ReportId.BT13_11, "0.0.1", "BT 13.11", "Журнал Входящих документов");
this.date = date;
this.time = time;
this.inDocumentJournalRegistrationDate = inDocumentJournalRegistrationDate;
this.inDocumentJournalRegistrationTime = inDocumentJournalRegistrationTime;
this.inDocumentJournalRegistrationNumber = inDocumentJournalRegistrationNumber;
this.inDocumentJournalDocumentName = inDocumentJournalDocumentName;
this.inDocumentJournalSender = inDocumentJournalSender;
this.inDocumentJournalQuantity = inDocumentJournalQuantity;
this.inDocumentJournalClearingCode = inDocumentJournalClearingCode;
this.inDocumentJournalCourierType = inDocumentJournalCourierType;
this.inDocumentJournal_emailDate = inDocumentJournal_emailDate;
this.inDocumentJournalAmount = inDocumentJournalAmount;
this.inDocumentJournalDossierNumber = inDocumentJournalDossierNumber;
this.inDocumentJournalComment = inDocumentJournalComment;
this.inDocumentJournalReceiptDate = inDocumentJournalReceiptDate;
}
@Override
public String getReportName(LocalDateTime reportDateTime) {
return "DOCIN.%s".formatted(
DATE_TIME_FORMATTER.format(reportDateTime)
);
}
}

View file

@ -1,99 +1,89 @@
package ru.spcex.clearing.reports.services;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.reports.reports.AbstractReport;
import ru.spcex.clearing.reports.reports.ReportId;
import ru.spcex.platform.utils.time.TimeUtil;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public abstract class ReportDataCollector<T extends AbstractReport> {
public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss");
protected final Logger log = LoggerFactory.getLogger(getClass());
/**
* T extends ReportWithPeriod
*
* @return
*/
abstract public T collectReportWithPeriod(LocalDate startDate, LocalDate endDate);
abstract public Class<T> getReportClass();
public ReportId getReportId() {
Class<T> theClass = getReportClass();
Constructor[] constructors = theClass.getConstructors(); // getConstructors - public, getDeclaredConstructors - all
Constructor<T> useConstructor = null;
for (int i = 0; i < constructors.length; i++) {
if (useConstructor == null || useConstructor.getParameterCount() > constructors[i].getParameterCount()) {
useConstructor = constructors[i];
}
}
Object[] cArg = new Object[useConstructor.getParameterCount()]; // all null
try {
T object = useConstructor.newInstance(cArg);
ReportId theId = object.getReportId();
return theId;
} catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException("Can not found ReportId from class " + theClass.getName(), e);
}
}
protected void validateDateRange(LocalDate startDate, LocalDate endDate) throws IllegalArgumentException {
if (startDate.isAfter(endDate)) {
throw new IllegalArgumentException("startDate(" + startDate + ") > endDate(" + endDate + ")");
}
}
protected Instant toInstantStartDay(LocalDate date) {
return date.atStartOfDay(TimeUtil.zone).toInstant();
}
protected Instant toInstantEndDay(LocalDate date) {
return date.plusDays(1).atStartOfDay(TimeUtil.zone).minusSeconds(1).toInstant();
}
protected String toString(Long val) {
if (val == null) return null;
return val.toString();
}
protected String toString(Double val) {
if (val == null) return null;
// точность 2 знака после запятой.
return String.format(Locale.US, "%.2f", val.doubleValue());
}
protected String toString(BigDecimal val) {
if (val == null) return null;
// точность 2 знака после запятой.
return val.setScale(2, RoundingMode.HALF_UP).toString();
}
protected String toString(Instant val) {
if (val == null) return null;
return DATE_TIME_FORMATTER.format(val.atZone(ZoneId.systemDefault()));
}
protected String toString(LocalDate date) {
if (date == null) return null;
return DATE_FORMATTER.format(date);
}
// protected String formatToIMDGInstant(LocalDate date) {
// LocalDateTime ldt = date.atStartOfDay();
// return DATE_TIME_FORMATTER.format(ldt);
// }
}
package ru.spcex.clearing.reports.services;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.reports.reports.AbstractReport;
import ru.spcex.clearing.reports.reports.ReportId;
import ru.spcex.platform.utils.time.TimeUtil;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public abstract class AbstractReportCollector<T extends AbstractReport> {
public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss");
protected final Logger log = LoggerFactory.getLogger(getClass());
abstract public Class<T> getReportClass();
public ReportId getReportId() {
Class<T> theClass = getReportClass();
Constructor[] constructors = theClass.getConstructors(); // getConstructors - public, getDeclaredConstructors - all
Constructor<T> useConstructor = null;
for (int i = 0; i < constructors.length; i++) {
if (useConstructor == null || useConstructor.getParameterCount() > constructors[i].getParameterCount()) {
useConstructor = constructors[i];
}
}
Object[] cArg = new Object[useConstructor.getParameterCount()]; // all null
try {
T object = useConstructor.newInstance(cArg);
ReportId theId = object.getReportId();
return theId;
} catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException("Can not found ReportId from class " + theClass.getName(), e);
}
}
protected void validateDateRange(LocalDate startDate, LocalDate endDate) throws IllegalArgumentException {
if (startDate.isAfter(endDate)) {
throw new IllegalArgumentException("startDate(" + startDate + ") > endDate(" + endDate + ")");
}
}
protected Instant toInstantStartDay(LocalDate date) {
return date.atStartOfDay(TimeUtil.zone).toInstant();
}
protected Instant toInstantEndDay(LocalDate date) {
return date.plusDays(1).atStartOfDay(TimeUtil.zone).minusSeconds(1).toInstant();
}
protected String toString(Long val) {
if (val == null) return null;
return val.toString();
}
/**
* Обеспечивает точность 2 знака после запятой
*/
protected String toString(Double val) {
if (val == null) return null;
return String.format(Locale.US, "%.2f", val.doubleValue());
}
/**
* Обеспечивает точность 2 знака после запятой
*/
protected String toString(BigDecimal val) {
if (val == null) return null;
return val.setScale(2, RoundingMode.HALF_UP).toString();
}
protected String toString(Instant val) {
if (val == null) return null;
return DATE_TIME_FORMATTER.format(val.atZone(ZoneId.systemDefault()));
}
protected String toString(LocalDate date) {
if (date == null) return null;
return DATE_FORMATTER.format(date);
}
}

View file

@ -27,7 +27,7 @@ public class QCommandExecutor extends QueueConsumer implements InitializingBean
ReportsServiceSettings config;
public QCommandExecutor(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider,
List<ReportDataCollector> listOfCollectors,
List<ReportWithPeriodCollector> listOfCollectors,
ReportsServiceCommand reportsServiceCommand,
ReportsServiceSettings config) {
super(kafkaQueue);

View file

@ -0,0 +1,16 @@
package ru.spcex.clearing.reports.services;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.reports.reports.AbstractReport;
import java.time.LocalDate;
public abstract class ReportWithPeriodCollector<T extends AbstractReport> extends AbstractReportCollector<T> {
protected final Logger log = LoggerFactory.getLogger(getClass());
/**
* Подготовка отчета на период startDate..endDate
*/
abstract public T collectReportWithPeriod(LocalDate startDate, LocalDate endDate);
}

View file

@ -7,7 +7,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.reports.bt_13.Report_BT13_11;
import ru.spcex.clearing.reports.reports.bt_13.ReportDOCIN;
import ru.spcex.clearing.reports.reports.bt_13.Report_BT13_12;
import ru.spcex.clearing.reports.reports.bt_16_5.Report_BT16_5;
import ru.spcex.clearing.reports.reports.bt_17_1.ReportBR_0420315_P1;
@ -47,7 +47,7 @@ public class ReportsService {
xStream.processAnnotations(ReportPA_BT2_IV.class);
xStream.processAnnotations(ReportPA_BT2_B.class);
xStream.processAnnotations(Report_BT16_5.class);
xStream.processAnnotations(Report_BT13_11.class);
xStream.processAnnotations(ReportDOCIN.class);
xStream.processAnnotations(Report_BT13_12.class);
@ -141,85 +141,85 @@ public class ReportsService {
log.info("ReportBR_0420314_P2:\n{}\n", xStream.toXML(reportBR_0420314P2));
/* ========= БТ 17.5 ========== */
ReportBR_0420312_P1 reportBR_0420312P1 = new ReportBR_0420312_P1(LocalDate.now(),
LocalDate.now(),
"companyClearingCode",
"BR",
"liabilitesClaimsAssetsCompanyId",
"liabilitesClaimsAssetsFullName",
"companySymbolCode",
"companySymbolValue",
"companyInfoCountryCode",
"clearingMemberCategory");
log.info("ReportBR_0420312_P1:\n{}\n", xStream.toXML(reportBR_0420312P1));
ReportBR_0420312_P2 reportBR_0420312P2 = new ReportBR_0420312_P2(LocalDate.now(),
LocalDate.now(),
"BR",
"liabilitiesClaimsAssetsCompanyId",
"liabilitiesClaimsAssetsLiabilities");
log.info("ReportBR_0420312_P2:\n{}\n", xStream.toXML(reportBR_0420312P2));
ReportBR_0420312_P3 reportBR_0420312P3 = new ReportBR_0420312_P3(LocalDate.now(),
LocalDate.now(),
"BR",
"liabilitiesClaimsAssetsCompanyId",
"liabilitiesClaimsAssetsLiabilities");
log.info("ReportBR_0420312_P3:\n{}\n", xStream.toXML(reportBR_0420312P3));
ReportBR_0420312_P4 reportBR_0420312P4 = new ReportBR_0420312_P4(LocalDate.now(),
LocalDate.now(),
"BR",
"liabilitiesAmount");
log.info("ReportBR_0420312_P4:\n{}\n", xStream.toXML(reportBR_0420312P4));
ReportBR_0420312_P5 reportBR_0420312P5 = new ReportBR_0420312_P5(LocalDate.now(),
LocalDate.now(),
"BR",
"liabilitiesAmount");
log.info("ReportBR_0420312_P5:\n{}\n", xStream.toXML(reportBR_0420312P5));
ReportBR_0420312_P6 reportBR_0420312P6 = new ReportBR_0420312_P6(LocalDate.now(),
LocalDate.now(),
"BR",
"liabilitiesAmount");
log.info("ReportBR_0420312_P6:\n{}\n", xStream.toXML(reportBR_0420312P6));
ReportBR_0420312_P7 reportBR_0420312P7 = new ReportBR_0420312_P7(LocalDate.now(),
LocalDate.now(),
"BR",
"liabilitiesAmount");
log.info("ReportBR_0420312_P7:\n{}\n", xStream.toXML(reportBR_0420312P7));
ReportBR_0420312_P8 reportBR_0420312P8 = new ReportBR_0420312_P8(LocalDate.now(),
LocalDate.now(),
"BR",
"currencyId",
"liabilitiesClaimsAssetsCompanyId",
"liabilitiesClaimsAssetsFullName",
"companySymbolCode",
"companySymbolValue",
"companyInfoCountryCode",
"clearingMemberCategory");
log.info("ReportBR_0420312_P8:\n{}\n", xStream.toXML(reportBR_0420312P8));
ReportBR_0420312_P9 reportBR_0420312P9 = new ReportBR_0420312_P9(LocalDate.now(),
LocalDate.now(),
"BR",
"currencyId",
"liabilitiesClaimsAssetsCompanyId",
"liabilitiesClaimsMoneyCurrencyCode",
"liabilitiesClaimsAssetsLiabilities");
log.info("ReportBR_0420312_P9:\n{}\n", xStream.toXML(reportBR_0420312P9));
ReportBR_0420312_P10 reportBR_0420312P10 = new ReportBR_0420312_P10(LocalDate.now(),
LocalDate.now(),
"BR",
"liabilitiesAmount");
log.info("ReportBR_0420312_P10:\n{}\n", xStream.toXML(reportBR_0420312P10));
//
// /* ========= БТ 17.5 ========== */
// ReportBR_0420312_P1 reportBR_0420312P1 = new ReportBR_0420312_P1(LocalDate.now(),
// LocalDate.now(),
// "companyClearingCode",
// "BR",
// "liabilitesClaimsAssetsCompanyId",
// "liabilitesClaimsAssetsFullName",
// "companySymbolCode",
// "companySymbolValue",
// "companyInfoCountryCode",
// "clearingMemberCategory");
// log.info("ReportBR_0420312_P1:\n{}\n", xStream.toXML(reportBR_0420312P1));
//
// ReportBR_0420312_P2 reportBR_0420312P2 = new ReportBR_0420312_P2(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "liabilitiesClaimsAssetsCompanyId",
// "liabilitiesClaimsAssetsLiabilities");
// log.info("ReportBR_0420312_P2:\n{}\n", xStream.toXML(reportBR_0420312P2));
//
// ReportBR_0420312_P3 reportBR_0420312P3 = new ReportBR_0420312_P3(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "liabilitiesClaimsAssetsCompanyId",
// "liabilitiesClaimsAssetsLiabilities");
// log.info("ReportBR_0420312_P3:\n{}\n", xStream.toXML(reportBR_0420312P3));
//
// ReportBR_0420312_P4 reportBR_0420312P4 = new ReportBR_0420312_P4(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "liabilitiesAmount");
// log.info("ReportBR_0420312_P4:\n{}\n", xStream.toXML(reportBR_0420312P4));
//
// ReportBR_0420312_P5 reportBR_0420312P5 = new ReportBR_0420312_P5(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "liabilitiesAmount");
// log.info("ReportBR_0420312_P5:\n{}\n", xStream.toXML(reportBR_0420312P5));
//
// ReportBR_0420312_P6 reportBR_0420312P6 = new ReportBR_0420312_P6(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "liabilitiesAmount");
// log.info("ReportBR_0420312_P6:\n{}\n", xStream.toXML(reportBR_0420312P6));
//
// ReportBR_0420312_P7 reportBR_0420312P7 = new ReportBR_0420312_P7(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "liabilitiesAmount");
// log.info("ReportBR_0420312_P7:\n{}\n", xStream.toXML(reportBR_0420312P7));
//
// ReportBR_0420312_P8 reportBR_0420312P8 = new ReportBR_0420312_P8(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "currencyId",
// "liabilitiesClaimsAssetsCompanyId",
// "liabilitiesClaimsAssetsFullName",
// "companySymbolCode",
// "companySymbolValue",
// "companyInfoCountryCode",
// "clearingMemberCategory");
// log.info("ReportBR_0420312_P8:\n{}\n", xStream.toXML(reportBR_0420312P8));
//
// ReportBR_0420312_P9 reportBR_0420312P9 = new ReportBR_0420312_P9(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "currencyId",
// "liabilitiesClaimsAssetsCompanyId",
// "liabilitiesClaimsMoneyCurrencyCode",
// "liabilitiesClaimsAssetsLiabilities");
// log.info("ReportBR_0420312_P9:\n{}\n", xStream.toXML(reportBR_0420312P9));
//
// ReportBR_0420312_P10 reportBR_0420312P10 = new ReportBR_0420312_P10(LocalDate.now(),
// LocalDate.now(),
// "BR",
// "liabilitiesAmount");
// log.info("ReportBR_0420312_P10:\n{}\n", xStream.toXML(reportBR_0420312P10));
//
/* ========= БТ 12.2 ========== */
@ -266,7 +266,7 @@ public class ReportsService {
/* ========= БТ 13 ========== */
Report_BT13_11 report_bt13_11 = new Report_BT13_11(LocalDate.now(),
ReportDOCIN report_bt13_11 = new ReportDOCIN(LocalDate.now(),
LocalTime.now(),
"inDocumentJournalRegistrationDate",
"inDocumentJournalRegistrationTime",

View file

@ -30,17 +30,17 @@ public class ReportsServiceCommand implements InitializingBean {
protected ReportsServiceSettings settings;
protected ImdgProvider imdg;
protected List<ReportDataCollector> allReports; // Spring services
private final Map<ReportId, ReportDataCollector> collectorForReportById;
protected List<ReportWithPeriodCollector> allReports; // Spring services
private final Map<ReportId, ReportWithPeriodCollector> collectorForReportById;
@Autowired
public ReportsServiceCommand(ImdgProvider imdg, List<ReportDataCollector> allReports, ReportsServiceSettings settings) {
public ReportsServiceCommand(ImdgProvider imdg, List<ReportWithPeriodCollector> allReports, ReportsServiceSettings settings) {
this.imdg = imdg;
this.settings = settings;
this.allReports = allReports; // allReports = context.getBeansOfType(ReportDataCollector.class);
this.collectorForReportById = new HashMap<>();
for (ReportDataCollector<?> collector : allReports) {
for (ReportWithPeriodCollector<?> collector : allReports) {
ReportId rId = collector.getReportId();
collectorForReportById.put(rId, collector);
String idStr = rId == null ? null : rId.getKey();
@ -57,14 +57,14 @@ public class ReportsServiceCommand implements InitializingBean {
}
public void generateReportAll(LocalDate startDate, LocalDate endDate) throws IOException {
for (ReportDataCollector<?> reportDataCollector : allReports) {
for (ReportWithPeriodCollector<?> reportDataCollector : allReports) {
makeSingleReport(reportDataCollector, startDate, endDate);
}
}
public void generateReportById(String reportIdStr, LocalDate startDate, LocalDate endDate) throws IOException {
ReportId reportId = parseReportId(reportIdStr);
ReportDataCollector<?> reportDataCollector = collectorForReportById.get(reportId);
ReportWithPeriodCollector<?> reportDataCollector = collectorForReportById.get(reportId);
if (reportDataCollector == null)
throw new IllegalStateException("Collector for ReportID " + reportId + " not implemented yet");
@ -81,7 +81,7 @@ public class ReportsServiceCommand implements InitializingBean {
return id;
}
protected void makeSingleReport(ReportDataCollector<?> reportDataCollector, LocalDate startDate, LocalDate endDate) throws IOException {
protected void makeSingleReport(ReportWithPeriodCollector<?> reportDataCollector, LocalDate startDate, LocalDate endDate) throws IOException {
log.debug("Generate report by collector {} - {}", reportDataCollector.getClass().getSimpleName(), reportDataCollector.getReportClass().getSimpleName());
File outPath = new File(settings.getReportModuleOut());
XMLReportBuilder reportBuilder = new XMLReportBuilder(reportDataCollector.getReportClass(), outPath);
@ -96,7 +96,7 @@ public class ReportsServiceCommand implements InitializingBean {
public void writeAllXML() throws IOException {
log.info("Report types: {}", allReports);
for (ReportDataCollector collector : allReports) {
for (ReportWithPeriodCollector collector : allReports) {
log.info("Make report {}", collector);
LocalDate date2 = LocalDate.now();
LocalDate date1 = LocalDate.of(date2.getYear(), date2.getMonth(), 1);//date2.minusMonths(1);

View file

@ -9,7 +9,7 @@ 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_17_4.ReportBR_0420314_P1;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.enumeration.ClearingStatus;
import ru.spcex.platform.enumeration.DocumentTypes;
import ru.spcex.platform.imdg.api.Imdg;
@ -27,7 +27,7 @@ import java.util.Map;
* accountTransactionLiabilities
*/
@Component
public class Repbr0420314_P1_bt_17_4_collector extends ReportDataCollector<ReportBR_0420314_P1> {
public class Repbr0420314_P1_bt_17_4_collector extends ReportWithPeriodCollector<ReportBR_0420314_P1> {
private Imdg<Company> companyImdg;
private Imdg<CompanySymbols> companySymbolsImdg;
private Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;

View file

@ -9,7 +9,7 @@ import ru.clearing.classes.statics.data.payment.PaymentInstruction;
import ru.clearing.classes.statics.data.profile.ProfileDocument;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_4.ReportBR_0420314_P2;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.enumeration.AccountType;
import ru.spcex.platform.enumeration.DocumentTypes;
import ru.spcex.platform.imdg.api.Imdg;
@ -28,7 +28,7 @@ import java.util.Objects;
* accountTransactionLiabilities
*/
@Component
public class Repbr0420314_P2_bt_17_4_collector extends ReportDataCollector<ReportBR_0420314_P2> {
public class Repbr0420314_P2_bt_17_4_collector extends ReportWithPeriodCollector<ReportBR_0420314_P2> {
private Imdg<Company> companyImdg;
private Imdg<PaymentInstruction> paymentInstructionImdg;
private Imdg<AccountBalance> accountBalanceImdg;

View file

@ -2,11 +2,10 @@ package ru.spcex.clearing.reports.services.collector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P10;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -19,7 +18,7 @@ import java.util.Collection;
import java.util.Objects;
@Component
public class ReportBR_0420312_P10_collector extends ReportDataCollector<ReportBR_0420312_P10> {
public class ReportBR_0420312_P10_collector extends ReportWithPeriodCollector<ReportBR_0420312_P10> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@Autowired

View file

@ -8,7 +8,7 @@ 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_17_5.ReportBR_0420312_P1;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.enumeration.DocumentTypes;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -22,7 +22,7 @@ import java.util.List;
import java.util.Map;
@Component
public class ReportBR_0420312_P1_collector extends ReportDataCollector<ReportBR_0420312_P1> {
public class ReportBR_0420312_P1_collector extends ReportWithPeriodCollector<ReportBR_0420312_P1> {
private Imdg<Company> companyImdg;
private Imdg<CompanySymbols> companySymbolsImdg;
private Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;

View file

@ -2,11 +2,10 @@ package ru.spcex.clearing.reports.services.collector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P2;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -21,7 +20,7 @@ import java.util.Map;
import java.util.Objects;
@Component
public class ReportBR_0420312_P2_collector extends ReportDataCollector<ReportBR_0420312_P2> {
public class ReportBR_0420312_P2_collector extends ReportWithPeriodCollector<ReportBR_0420312_P2> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@Autowired

View file

@ -2,11 +2,10 @@ package ru.spcex.clearing.reports.services.collector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P3;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -21,7 +20,7 @@ import java.util.Map;
import java.util.Objects;
@Component
public class ReportBR_0420312_P3_collector extends ReportDataCollector<ReportBR_0420312_P3> {
public class ReportBR_0420312_P3_collector extends ReportWithPeriodCollector<ReportBR_0420312_P3> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@Autowired

View file

@ -5,7 +5,7 @@ import org.springframework.stereotype.Component;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P4;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -18,7 +18,7 @@ import java.util.Collection;
import java.util.Objects;
@Component
public class ReportBR_0420312_P4_collector extends ReportDataCollector<ReportBR_0420312_P4> {
public class ReportBR_0420312_P4_collector extends ReportWithPeriodCollector<ReportBR_0420312_P4> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@Autowired

View file

@ -2,11 +2,10 @@ package ru.spcex.clearing.reports.services.collector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P5;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -19,7 +18,7 @@ import java.util.Collection;
import java.util.Objects;
@Component
public class ReportBR_0420312_P5_collector extends ReportDataCollector<ReportBR_0420312_P5> {
public class ReportBR_0420312_P5_collector extends ReportWithPeriodCollector<ReportBR_0420312_P5> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@Autowired

View file

@ -2,11 +2,10 @@ package ru.spcex.clearing.reports.services.collector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P6;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -19,7 +18,7 @@ import java.util.Collection;
import java.util.Objects;
@Component
public class ReportBR_0420312_P6_collector extends ReportDataCollector<ReportBR_0420312_P6> {
public class ReportBR_0420312_P6_collector extends ReportWithPeriodCollector<ReportBR_0420312_P6> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@Autowired

View file

@ -2,11 +2,10 @@ package ru.spcex.clearing.reports.services.collector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P7;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -19,7 +18,7 @@ import java.util.Collection;
import java.util.Objects;
@Component
public class ReportBR_0420312_P7_collector extends ReportDataCollector<ReportBR_0420312_P7> {
public class ReportBR_0420312_P7_collector extends ReportWithPeriodCollector<ReportBR_0420312_P7> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@Autowired

View file

@ -9,14 +9,13 @@ import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P8;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.enumeration.DocumentTypes;
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 java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.util.Collection;
@ -24,7 +23,7 @@ import java.util.List;
import java.util.Map;
@Component
public class ReportBR_0420312_P8_collector extends ReportDataCollector<ReportBR_0420312_P8> {
public class ReportBR_0420312_P8_collector extends ReportWithPeriodCollector<ReportBR_0420312_P8> {
private Imdg<Company> companyImdg;
private Imdg<CompanySymbols> companySymbolsImdg;
private Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;

View file

@ -3,15 +3,11 @@ package ru.spcex.clearing.reports.services.collector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P1;
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P9;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.platform.enumeration.DocumentTypes;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -26,7 +22,7 @@ import java.util.Map;
import java.util.Objects;
@Component
public class ReportBR_0420312_P9_collector extends ReportDataCollector<ReportBR_0420312_P9> {
public class ReportBR_0420312_P9_collector extends ReportWithPeriodCollector<ReportBR_0420312_P9> {
private Imdg<Company> companyImdg;
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
private Imdg<CurrencyCodeDictionary> currencyCodeDictionaryImdg;

View file

@ -10,7 +10,7 @@ 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_17_1.ReportBR_0420315_P1;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.enumeration.ClearingCategory;
import ru.spcex.platform.enumeration.ClearingStatus;
import ru.spcex.platform.enumeration.Market;
@ -18,7 +18,6 @@ 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.utils.time.TimeUtil;
import java.math.BigDecimal;
import java.time.Instant;
@ -26,7 +25,7 @@ import java.time.LocalDate;
import java.util.*;
@Component
public class ReportBR_0420315_Collector extends ReportDataCollector<ReportBR_0420315_P1> {
public class ReportBR_0420315_Collector extends ReportWithPeriodCollector<ReportBR_0420315_P1> {
protected static final List<String> ALLOW_CLEARING_MEMBER_CATEGORY = Arrays.asList(ClearingCategory.I.getKey(), ClearingCategory.V.getKey());
private Imdg<Company> companyImdg;

View file

@ -6,7 +6,7 @@ import org.springframework.stereotype.Component;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_1.ReportBR_0420315_P2;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -14,10 +14,11 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.Instant;
import java.time.LocalDate;
import java.util.*;
import java.util.Collection;
import java.util.HashSet;
@Component
public class ReportBR_0420315_P2_collector extends ReportDataCollector<ReportBR_0420315_P2> {
public class ReportBR_0420315_P2_collector extends ReportWithPeriodCollector<ReportBR_0420315_P2> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@Autowired

View file

@ -7,7 +7,7 @@ import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.company.relation.Relation;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_2.ReportBR_0420317;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.enumeration.DocumentTypes;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -16,10 +16,11 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.Instant;
import java.time.LocalDate;
import java.util.*;
import java.util.Collection;
import java.util.Map;
@Component
public class ReportBR_0420317_collector extends ReportDataCollector<ReportBR_0420317> {
public class ReportBR_0420317_collector extends ReportWithPeriodCollector<ReportBR_0420317> {
private Imdg<Company> companyImdg;
private Imdg<Relation> relationImdg;
private Imdg<CompanySymbols> companySymbolsImdg;

View file

@ -1,11 +1,11 @@
package ru.spcex.clearing.reports.services.collector;
import ru.spcex.clearing.reports.reports.bt_17_3.ReportBR_0420318;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import java.time.LocalDate;
public class ReportBR_0420318_Collector extends ReportDataCollector<ReportBR_0420318> {
public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<ReportBR_0420318> {
@Override
public ReportBR_0420318 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {

View file

@ -4,7 +4,7 @@ import ru.clearing.classes.statics.data.account.AccountBalance;
import ru.clearing.classes.statics.data.company.Company;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.ReportINACCNT;
import ru.spcex.clearing.reports.services.ReportDataCollector;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -14,7 +14,7 @@ import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuild
import java.time.LocalDate;
import java.util.Collection;
public class ReportINACCNT_Collector extends ReportDataCollector<ReportINACCNT> {
public class ReportINACCNT_Collector extends ReportWithPeriodCollector<ReportINACCNT> {
private final Imdg<AccountBalance> accountBalanceImdg;
private final Imdg<Company> companyImdg;

View file

@ -2,25 +2,25 @@ 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.clearing.reports.services.ReportWithPeriodCollector;
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.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 ReportDataCollector<ReportPA_BT2_B> {
public class ReportPA_BT2_B_Collector extends ReportWithPeriodCollector<ReportPA_BT2_B> {
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;

View file

@ -4,9 +4,8 @@ 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.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -22,7 +21,7 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class ReportPA_BT2_IV_Collector extends ReportDataCollector<ReportPA_BT2_IV> {
public class ReportPA_BT2_IV_Collector extends ReportWithPeriodCollector<ReportPA_BT2_IV> {
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
private final Imdg<ClearingStatusDictionary> clearingStatusDictionaryImdg;
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;

View file

@ -6,11 +6,10 @@ import ru.spcex.clearing.reports.reports.AbstractReport;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
class ReportDataCollectorTest extends ReportDataCollector {
class ReportDataCollectorTest extends ReportWithPeriodCollector {
@Test
void testToString() {