This commit is contained in:
akulikov 2024-12-09 18:26:52 +03:00
parent 95fd3012ec
commit a2e89e6a29

View file

@ -117,6 +117,46 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
String tkr = entryTKR.getKey();
List<Registry> registriesForTKR = entryTKR.getValue();
log.debug(
"tkr = {}: Found registries: {}, id = [{}]",
tkr,
registriesForTKR.size(),
registriesForTKR.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(","))
);
List<Registry> amfRegistries = registriesForTKR.stream().filter(
r -> r.getRegistryDesignation().equalsIgnoreCase(RegistryDesignation.A.getKey()) &&
r.getRegistryInstrumentType().equalsIgnoreCase(RegistryInstrumentType.M.getKey()) &&
r.getRegistryUnit().equalsIgnoreCase(RegistryUnit.F.getKey())
).toList();
log.debug(
"tkr = {}: AM_F registries {} id = [{}]",
tkr,
amfRegistries.size(),
amfRegistries.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(","))
);
List<Registry> omtRegistries = registriesForTKR.stream().filter(
r -> r.getRegistryDesignation().equalsIgnoreCase(RegistryDesignation.O.getKey()) &&
r.getRegistryInstrumentType().equalsIgnoreCase(RegistryInstrumentType.M.getKey()) &&
r.getRegistryUnit().equalsIgnoreCase(RegistryUnit.T.getKey())
).toList();
log.debug(
"tkr = {}: OM_T registries {} id = [{}]",
tkr,
omtRegistries.size(),
omtRegistries.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(","))
);
List<Registry> tmtRegistries = registriesForTKR.stream().filter(
r -> r.getRegistryDesignation().equalsIgnoreCase(RegistryDesignation.T.getKey()) &&
r.getRegistryInstrumentType().equalsIgnoreCase(RegistryInstrumentType.M.getKey()) &&
r.getRegistryUnit().equalsIgnoreCase(RegistryUnit.T.getKey())
).toList();
log.debug(
"tkr = {}: TM_T registries {} id = [{}]",
tkr,
tmtRegistries.size(),
tmtRegistries.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(","))
);
String firmId = registriesForTKR.iterator().next().getTradingCode();
BigDecimal sumValue = BigDecimal.ZERO;
@ -127,6 +167,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
Map<Long, String> currencies = new HashMap<>();
Map<Long, BigDecimal> rates = new HashMap<>();
for (Registry registry : registriesForTKR) {
String securitySymbol = registry.getSecuritySymbol();
RegistryStatus status = IEnumKey.getEnumByKey(RegistryStatus.class, registry.getRegistryStatus());
Rates currencyRate = getRate(securitySymbol, currencyRates);