This commit is contained in:
parent
394782a6d0
commit
7efde73c9e
1 changed files with 20 additions and 5 deletions
|
|
@ -2,7 +2,6 @@ package ru.spcex.clearing.reports.builders.ks;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.DayOfWeek;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -14,6 +13,7 @@ import java.util.stream.Collectors;
|
|||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.misc.Currency;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.scheduler.ClearingCalendar;
|
||||
import ru.clearing.classes.statics.data.security.Rates;
|
||||
import ru.clearing.classes.statics.data.security.RiskParameter;
|
||||
import ru.clearing.platform.dictionary.CurrencyPairDictionary;
|
||||
|
|
@ -21,6 +21,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|||
import ru.spcex.clearing.reports.builders.CSVReportBuilder;
|
||||
import ru.spcex.clearing.reports.builders.EmptyParams;
|
||||
import ru.spcex.clearing.reports.builders.bean.KSRepLccValueReport;
|
||||
import ru.spcex.platform.enumeration.DayStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
|
|
@ -42,6 +43,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
|
|||
private final Imdg<Currency> currencyImdg;
|
||||
private final Imdg<RiskParameter> riskParameterImdg;
|
||||
private final Imdg<CurrencyPairDictionary> currencyPairDictionaryImdg;
|
||||
private final Imdg<ClearingCalendar> clearingCalendarImdg;
|
||||
|
||||
private List<KSRepLccValueReport> rows = null;
|
||||
|
||||
|
|
@ -51,6 +53,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
|
|||
riskParameterImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class);
|
||||
currencyPairDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairDictionary, CurrencyPairDictionary.class);
|
||||
currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class);
|
||||
clearingCalendarImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingCalendar, ClearingCalendar.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -111,10 +114,22 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
|
|||
.collect(Collectors.groupingBy(Registry::getTradingClearingRegistry));
|
||||
|
||||
Map<String, Rates> currencyRates = new HashMap<>();
|
||||
LocalDateTime reportDate = LocalDateTime.now();
|
||||
if (reportDate.getDayOfWeek() == DayOfWeek.MONDAY) reportDate = reportDate.minusDays(3);
|
||||
else if (reportDate.getDayOfWeek() == DayOfWeek.SUNDAY) reportDate = reportDate.minusDays(2);
|
||||
else reportDate = reportDate.minusDays(1);
|
||||
|
||||
|
||||
|
||||
LocalDateTime reportDate = LocalDateTime.now().minusDays(1);
|
||||
ImdgPredicateBuilder pb = clearingCalendarImdg.predicateBuilder();
|
||||
do {
|
||||
ClearingCalendar clearingDate = clearingCalendarImdg.getFirstObjectByPredicate(pb.equals("clearing_date", reportDate));
|
||||
if (clearingDate == null) {
|
||||
log.warn("Can't find clearing_date for report_date, use {}", reportDate.toLocalDate());
|
||||
break;
|
||||
}
|
||||
DayStatus status = IEnumKey.getEnumByKey(DayStatus.class, clearingDate.getDayStatus());
|
||||
if (status == DayStatus.Workday) break;
|
||||
reportDate = reportDate.minusDays(1);
|
||||
} while (true);
|
||||
|
||||
for (Map.Entry<String, List<Registry>> entryTKR : groupedByTKR.entrySet()) {
|
||||
currencyRates.clear();
|
||||
try {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue