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.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.DayOfWeek;
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -14,6 +13,7 @@ import java.util.stream.Collectors;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.clearing.classes.statics.data.misc.Currency;
|
import ru.clearing.classes.statics.data.misc.Currency;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
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.Rates;
|
||||||
import ru.clearing.classes.statics.data.security.RiskParameter;
|
import ru.clearing.classes.statics.data.security.RiskParameter;
|
||||||
import ru.clearing.platform.dictionary.CurrencyPairDictionary;
|
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.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.builders.EmptyParams;
|
import ru.spcex.clearing.reports.builders.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.builders.bean.KSRepLccValueReport;
|
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.RegistryDesignation;
|
||||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
||||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
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<Currency> currencyImdg;
|
||||||
private final Imdg<RiskParameter> riskParameterImdg;
|
private final Imdg<RiskParameter> riskParameterImdg;
|
||||||
private final Imdg<CurrencyPairDictionary> currencyPairDictionaryImdg;
|
private final Imdg<CurrencyPairDictionary> currencyPairDictionaryImdg;
|
||||||
|
private final Imdg<ClearingCalendar> clearingCalendarImdg;
|
||||||
|
|
||||||
private List<KSRepLccValueReport> rows = null;
|
private List<KSRepLccValueReport> rows = null;
|
||||||
|
|
||||||
|
|
@ -51,6 +53,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
|
||||||
riskParameterImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class);
|
riskParameterImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class);
|
||||||
currencyPairDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairDictionary, CurrencyPairDictionary.class);
|
currencyPairDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairDictionary, CurrencyPairDictionary.class);
|
||||||
currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class);
|
currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class);
|
||||||
|
clearingCalendarImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingCalendar, ClearingCalendar.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -111,10 +114,22 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
|
||||||
.collect(Collectors.groupingBy(Registry::getTradingClearingRegistry));
|
.collect(Collectors.groupingBy(Registry::getTradingClearingRegistry));
|
||||||
|
|
||||||
Map<String, Rates> currencyRates = new HashMap<>();
|
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()) {
|
for (Map.Entry<String, List<Registry>> entryTKR : groupedByTKR.entrySet()) {
|
||||||
currencyRates.clear();
|
currencyRates.clear();
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue