Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Ivan Nikolaev-Axenov 2024-12-10 12:39:26 +03:00
commit 5e4767c2d5
34 changed files with 113 additions and 70 deletions

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -11,7 +11,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -12,7 +12,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<properties>

View file

@ -6,13 +6,13 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<artifactId>cleaning-builders</artifactId>
<name>cleaning-builders</name>
<description>Cleaning builders module</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<packaging>jar</packaging>
@ -26,7 +26,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -8,12 +8,12 @@
<name>clearing-validation</name>
<description>Clearing-module, dependency version of platform-utils</description>
<packaging>jar</packaging>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<properties>
@ -35,13 +35,13 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>dictionary</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -7,12 +7,12 @@
<artifactId>db-scripts</artifactId>
<name>db-scripts</name>
<description>db-scripts for PostgreSQL</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<build>

View file

@ -7,12 +7,12 @@
<artifactId>dbf-exporter</artifactId>
<name>dbf-exporter</name>
<description>DBF exporter for DBF files</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<dependencies>

View file

@ -8,12 +8,12 @@
<artifactId>dbf-importer</artifactId>
<name>dbf-importer</name>
<description>DBF loader for DBF files</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<dependencies>

View file

@ -8,12 +8,12 @@
<name>Clearing dictionary</name>
<description>Clearing dictionary</description>
<packaging>jar</packaging>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<properties>

View file

@ -4,12 +4,12 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<artifactId>extdb-importer</artifactId>
<name>extdb-importer</name>
<description>Extdb importer module. Аналог trade-importer.</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<packaging>jar</packaging>
<properties>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -5,12 +5,12 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>imdg-hist</artifactId>
<packaging>jar</packaging>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
@ -36,13 +36,13 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>dictionary</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
@ -82,7 +82,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>cleaning-builders</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -7,12 +7,12 @@
<artifactId>imdg</artifactId>
<name>Clearing in memory data grid</name>
<packaging>jar</packaging>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<properties>
@ -32,13 +32,13 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>dictionary</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
@ -89,7 +89,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>cleaning-builders</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -3,13 +3,13 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>lim-exporter</artifactId>
<name>Lim exporter</name>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<packaging>jar</packaging>
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<properties>
@ -35,7 +35,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -7,12 +7,12 @@
<name>_parent_clearing</name>
<description>Clearing parent module</description>
<packaging>pom</packaging>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modules>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -8,12 +8,12 @@
<artifactId>reports-service</artifactId>
<name>reports-service</name>
<description>Service for creating reports</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<dependencies>
<!-- Spring boot -->

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);
@ -185,7 +226,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
);
posMoneys.put(currencyId, posMoney);
log.debug("tkr = {}: ObligMoney[{}] = {}", tkr, rate.getCurrency(), obligMoneys.get(currencyId));
log.debug("tkr = {}: DemandMoney[{}} = {}", tkr, rate.getCurrency(), demandMoneys.get(currencyId));
log.debug("tkr = {}: DemandMoney[{}] = {}", tkr, rate.getCurrency(), demandMoneys.get(currencyId));
log.debug("tkr = {}: PosMoney[{}] = {}", tkr, rate.getCurrency(), posMoney);
ImdgPredicateBuilder currencyPairPB = currencyPairDictionaryImdg.predicateBuilder();
@ -246,6 +287,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
BigDecimal quantity = quantities.get(rate.getCurrencyId());
BigDecimal freeQuantity;
boolean freeQuantityIsDelta = false;
if (quantity.compareTo(BigDecimal.ZERO) <= 0 || NPR.compareTo(BigDecimal.ZERO) < 0) {
freeQuantity = BigDecimal.ZERO;
} else {
@ -268,8 +310,9 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
BigDecimal delta = posMoney.subtract(minPos);
if (delta.compareTo(BigDecimal.ZERO) >= 0 && delta.compareTo(quantity) <= 0) {
freeQuantityIsDelta = true;
freeQuantity = delta;
} else if (delta.compareTo(BigDecimal.ZERO) < 0 && delta.compareTo(quantity) > 0) {
} else if (delta.compareTo(BigDecimal.ZERO) < 0 || delta.compareTo(quantity) > 0) {
freeQuantity = quantity;
} else freeQuantity = BigDecimal.ZERO;
}
@ -279,7 +322,7 @@ public class KSRepLccValueReportBuilder extends CSVReportBuilder<EmptyParams, KS
row.setFreeQuantity(freeQuantity);
log.debug("tkr = {}: Quantity[{}] = {}", tkr, rate.getCurrency(), quantity);
log.debug("tkr = {}: FreeQuantity (delta) [{}] = {}", tkr, rate.getCurrency(), freeQuantity);
log.debug("tkr = {}: FreeQuantity (from {}) [{}] = {}", tkr, freeQuantityIsDelta ? "delta" : "quantity", rate.getCurrency(), freeQuantity);
log.debug("tkr = {}: LockQuantity [{}] = {}", tkr, rate.getCurrency(), lockQuantity);
lockValue = lockValue.add(lockQuantity.multiply(rate.getValue()));

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -51,7 +51,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>cleaning-builders</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -8,12 +8,12 @@
<name>security-util clearing</name>
<description>Clearing misc util for verify user roles</description>
<packaging>jar</packaging>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<properties>
@ -35,13 +35,13 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>dictionary</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -3,13 +3,13 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>swt-exporter</artifactId>
<name>Swt exporter</name>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<packaging>jar</packaging>
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<properties>
@ -35,7 +35,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -4,11 +4,11 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<artifactId>test-clearing</artifactId>
<name>Test-clearing</name>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<dependencies>
<dependency>
<groupId>ru.spcex.platform</groupId>

View file

@ -4,12 +4,12 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<artifactId>trade-importer</artifactId>
<name>trade-importer</name>
<description>Trade importer module</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<packaging>jar</packaging>
<properties>
@ -51,7 +51,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -7,12 +7,12 @@
<artifactId>xml-exporter</artifactId>
<name>xml-exporter</name>
<description>XML exporter for XML files</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<dependencies>

View file

@ -8,12 +8,12 @@
<artifactId>xml-importer</artifactId>
<name>xml-importer</name>
<description>XML loader for XML files</description>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<dependencies>

View file

@ -14,7 +14,7 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing</artifactId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modules>

View file

@ -9,7 +9,7 @@
<name>__parent_ROOT</name>
<description>Clearing main parent</description>
<packaging>pom</packaging>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
<modules>
<module>clearing-parent</module>
@ -24,7 +24,7 @@
<project.java.version>17</project.java.version>
<built.by>Maven</built.by>
<global.project.version>SPCEX-3.16.210</global.project.version>
<global.project.version>SPCEX-3.16.211</global.project.version>
<spring-boot.version>2.6.3</spring-boot.version>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.16.210</version>
<version>SPCEX-3.16.211</version>
</parent>
<modelVersion>4.0.0</modelVersion>