diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccValueReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccValueReport.java index 7463dadda..12ec3a9e1 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccValueReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepLccValueReport.java @@ -66,6 +66,7 @@ public class KSRepLccValueReport { @CsvBindByName(column = "VALUE") @CsvBindByPosition(position = 12) + @CsvNumber(value = "#0.00", writeFormat = "#0.00") private BigDecimal value; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccValueReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccValueReportBuilder.java index 499f320c9..ab779d23e 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccValueReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepLccValueReportBuilder.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; 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.security.Rates; import ru.clearing.classes.statics.data.security.RiskParameter; @@ -37,6 +38,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey; public class KSRepLccValueReportBuilder extends CSVReportBuilder { private final Imdg registryImdg; private final Imdg ratesImdg; + private final Imdg currencyImdg; private final Imdg riskParameterImdg; private final Imdg currencyPairDictionaryImdg; @@ -47,6 +49,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder currencyRates = new HashMap<>(); LocalDateTime nowTime = LocalDateTime.now(); for (Map.Entry> entryTKR : groupedByTKR.entrySet()) { + currencyRates.clear(); try { String tkr = entryTKR.getKey(); List registriesForTKR = entryTKR.getValue(); @@ -236,7 +240,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder= 0 && delta.compareTo(quantity) <= 0) { @@ -295,7 +301,14 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder currency = currencyImdg.getCollectionObjectsByPredicate( + currencyImdg.predicateBuilder().equals("currencyCode", securitySymbol) + ); + Long securityId = (long) securitySymbol.hashCode(); + if (!currency.isEmpty()) securityId = currency.iterator().next().getId(); currencyRate = new Rates(); + currencyRate.setCurrency(securitySymbol); + currencyRate.setCurrencyId(securityId); currencyRate.setValue(BigDecimal.ONE); } currencyRates.put(securitySymbol, currencyRate);