diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java
index 3cf079b85..04e18b1e3 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java
@@ -28,6 +28,7 @@ public abstract class CSVReportBuilder
{
protected DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss");
protected DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
protected DateTimeFormatter dateTimeFormatter_YYMMDDHHmmssSSS = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS");
+ protected DateTimeFormatter dateFormatter_yyMMdd = DateTimeFormatter.ofPattern("yyMMdd");
protected InstantFormatter instantFormatter = new InstantFormatter();
/**
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashNettoReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashNettoReportBuilder.java
index 25e0a63cd..eea7b085d 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashNettoReportBuilder.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashNettoReportBuilder.java
@@ -12,6 +12,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
+import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -59,14 +60,63 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
+ Map registryAlreadySaved = new HashMap<>();
+ Map omtRegistries = new HashMap<>();
+ Map tmtRegistries = new HashMap<>();
+ for (Registry registry : registries) {
+ if (registry.getSettlementDate() == null || registry.getGroupId() == null) continue;
+ registryAlreadySaved.put(registry.getGroupId() + registry.getSettlementDate().toString(), false);
+ if (registry.getRegistryCode().startsWith("O")) {
+ Registry existOMTRegistry = omtRegistries.get(registry.getGroupId() + registry.getSettlementDate().toString());
+ if (existOMTRegistry != null && existOMTRegistry.getBalance() != null) {
+ log.warn("Duplicated registry OM*T (id = {} and id = {}). Use id = {}",
+ registry.getId(),
+ existOMTRegistry,
+ existOMTRegistry);
+ } else omtRegistries.put(registry.getGroupId() + registry.getSettlementDate().toString(), registry);
+ }
+ if (registry.getRegistryCode().startsWith("T")) {
+ Registry existTMTRegistry = tmtRegistries.get(registry.getGroupId() + registry.getSettlementDate().toString());
+ if (existTMTRegistry != null && existTMTRegistry.getBalance() != null) {
+ log.warn("Duplicated registry TM*T (id = {} and id = {}). Use id = {}",
+ registry.getId(),
+ existTMTRegistry,
+ existTMTRegistry);
+ } else tmtRegistries.put(registry.getGroupId() + registry.getSettlementDate().toString(), registry);
+ }
+ }
+
Map createdAtForSessionId = new HashMap<>();
lines = new ArrayList<>(registries.size());
for (Registry registry : registries) {
try {
+ if (registry.getSettlementDate() == null || registry.getGroupId() == null) {
+ log.warn("Registry without GroupId or SettlementDate, id = {}. Skipped", registry.getId());
+ continue;
+ }
+ if (registryAlreadySaved.get(registry.getGroupId() + registry.getSettlementDate().toString())) continue;
+
+ Registry tmtRegistry = tmtRegistries.get(registry.getGroupId() + registry.getSettlementDate().toString());
+ Registry omtRegistry = omtRegistries.get(registry.getGroupId() + registry.getSettlementDate().toString());
+
+ if (!tmtRegistry.getTradingCode().equalsIgnoreCase(omtRegistry.getTradingCode()) ||
+ !tmtRegistry.getSessionId().equals(omtRegistry.getSessionId()) ||
+ !tmtRegistry.getAccount().equals(omtRegistry.getAccount())) {
+ log.warn("Invalid registry OM*T (id = {}) and TM*T (id = {}) registry pair: fields not equal. GroupId = {}, SettlementDate = {}. Skipped",
+ omtRegistry.getId(),
+ tmtRegistry.getId(),
+ registry.getSettlementDate().toString(),
+ registry.getGroupId());
+ continue;
+ }
String firmId = registry.getTradingCode() != null ? registry.getTradingCode() : "";
String sessionId = String.valueOf(registry.getSessionId());
@@ -78,12 +128,11 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
@@ -79,30 +83,38 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
@@ -84,10 +88,7 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
+ Map registryAlreadySaved = new HashMap<>();
+ Map ostRegistries = new HashMap<>();
+ Map tstRegistries = new HashMap<>();
+ for (Registry registry : registries) {
+ if (registry.getGroupId() == null || registry.getSettlementDate() == null) continue;
+ registryAlreadySaved.put(registry.getGroupId() + registry.getSettlementDate().toString(), false);
+ if (registry.getRegistryCode().startsWith("O")) {
+ Registry existOSTRegistry = ostRegistries.get(registry.getGroupId() + registry.getSettlementDate().toString());
+ if (existOSTRegistry != null && existOSTRegistry.getBalance() != null) {
+ log.warn("Duplicated registry OM*T (id = {} and id = {}). Use id = {}",
+ registry.getId(),
+ existOSTRegistry,
+ existOSTRegistry);
+ } else ostRegistries.put(registry.getGroupId() + registry.getSettlementDate().toString(), registry);
+ }
+ if (registry.getRegistryCode().startsWith("T")) {
+ Registry existTSTRegistry = tstRegistries.get(registry.getGroupId() + registry.getSettlementDate().toString());
+ if (existTSTRegistry != null && existTSTRegistry.getBalance() != null) {
+ log.warn("Duplicated registry TM*T (id = {} and id = {}). Use id = {}",
+ registry.getId(),
+ existTSTRegistry,
+ existTSTRegistry);
+ } else tstRegistries.put(registry.getGroupId() + registry.getSettlementDate().toString(), registry);
+ }
+ }
+
Map createdAtForSessionId = new HashMap<>();
lines = new ArrayList<>(registries.size());
for (Registry registry : registries) {
try {
+ if (registry.getGroupId() == null || registry.getSettlementDate() == null) {
+ log.warn("Registry without GroupId or SettlementDate, id = {}. Skipped", registry.getId());
+ continue;
+ }
+ if (registryAlreadySaved.get(registry.getGroupId() + registry.getSettlementDate().toString())) continue;
+
+ Registry tstRegistry = tstRegistries.get(registry.getGroupId() + registry.getSettlementDate().toString());
+ Registry ostRegistry = ostRegistries.get(registry.getGroupId() + registry.getSettlementDate().toString());
+
+ if (!tstRegistry.getTradingCode().equalsIgnoreCase(ostRegistry.getTradingCode()) ||
+ !tstRegistry.getSessionId().equals(ostRegistry.getSessionId()) ||
+ !tstRegistry.getAccount().equals(ostRegistry.getAccount())) {
+ log.warn("Invalid registry OS*T (id = {}) and TS*T (id = {}) registry pair: fields not equal. GroupId = {}, SettlementDate = {}. Skipped",
+ ostRegistry.getId(),
+ tstRegistry.getId(),
+ registry.getSettlementDate(),
+ registry.getGroupId());
+ continue;
+ }
String firmId = registry.getTradingCode() != null ? registry.getTradingCode() : "";
String sessionId = String.valueOf(registry.getSessionId());
@@ -78,13 +125,12 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
@@ -80,32 +81,41 @@ public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
@@ -84,10 +85,7 @@ public class KSRepDepoRegistersReportBuilder extends CSVReportBuilder {
private final Imdg executionDepositImdg;
@@ -82,6 +84,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder {
Map sessionDateForSessionId = new HashMap<>();
lines = new ArrayList<>(executions.size());
for (ExecutionCommon execution : executions) {
+ boolean brokenExecution = false;
try {
String sessionId = execution.getSessionId() != null ? String.valueOf(execution.getSessionId()) : "";
@@ -97,7 +100,6 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder {
String trId = String.valueOf(execution.getId());
- // todo выяснить, так ли это
String firmId = "";
if (execution.getCompanyId() != null) {
firmId = tradingCodeForCompanyId.get(execution.getCompanyId());
@@ -132,20 +134,84 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder {
} else if (coverage == CoverageStatus.ALWD) {
status = "1";
} else if (coverage == CoverageStatus.DNED) {
- // todo обсудить
+
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
- Registry registry = registryImdg.getSingleObjectByPredicate(
+ String groupId = "%s%d%s".formatted(
+ dateFormatter_yyMMdd.format(nowDate),
+ execution.getExchangeExecutionId(),
+ execution.getMarket()
+ );
+ Collection registryCollection = registryImdg.getCollectionObjectsByPredicate(
pb.and(
- pb.equals("sessionId", execution.getSessionId()),
- pb.regex("registryCode", "[O|T][S|M].[T]")
+ pb.regex("registryCode", "[O|T][S|M].[T]"),
+ pb.equals("groupId", groupId)
)
);
- if (registry.getRegistryStatus() != null) {
- String registryStatusStr = registry.getRegistryStatus().toUpperCase();
- RegistryStatus registryStatus = IEnumKey.getEnumByKey(RegistryStatus.class, registryStatusStr);
- if (registryStatus == RegistryStatus.NACC || registryStatus == RegistryStatus.NACK) status = "0";
- else if (registryStatus == RegistryStatus.FAIL) status = "3";
+ if (registryCollection.isEmpty()) {
+ log.warn(
+ "Broken execution (empty registries). Registry for groupId = {} not found. Execution (id = {}) skipped",
+ groupId,
+ execution.getId()
+ );
+ continue;
}
+
+ Boolean fail = null;
+ boolean brokenRegistries = false;
+ for (Registry registry : registryCollection) {
+ if (registry.getRegistryStatus() == null) continue;
+ String regStatus = registry.getRegistryStatus();
+
+ if (regStatus.equals(RegistryStatus.NACK.getKey()) ||
+ regStatus.equals(RegistryStatus.NACC.getKey())) {
+ if (fail != null && fail) {
+ brokenRegistries = true;
+ break;
+ }
+ fail = false;
+ } else if (regStatus.equals(RegistryStatus.FAIL.getKey()) ||
+ regStatus.equals(RegistryStatus.UNCV.getKey())) {
+ if (fail != null && !fail) {
+ brokenRegistries = true;
+ break;
+ }
+ fail = true;
+ }
+ }
+
+ if (brokenRegistries || fail == null) {
+ log.warn(
+ "Broken execution (invalid registry statuses). Registry for groupId = {} has invalid registry set. Id = [{}]. Execution (id = {}) skipped",
+ groupId,
+ registryCollection.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(",")),
+ execution.getId()
+ );
+ continue;
+ }
+
+ if (fail) {
+ boolean allS = true;
+ boolean allM = true;
+ for (Registry registry : registryCollection) {
+ if (registry.getRegistryInstrumentType() == null) continue;
+ if (registry.getRegistryInstrumentType().equals(RegistryInstrumentType.S.getKey()))
+ allM = false;
+ if (registry.getRegistryInstrumentType().equals(RegistryInstrumentType.M.getKey()))
+ allS = false;
+ }
+ if (allS) status = "3";
+ if (allM) status = "2";
+ if (allS == allM) {
+ log.warn(
+ "Broken execution (different instrument types). Registry for groupId = {} has invalid registry set. Id = [{}]. Execution (id = {}) skipped",
+ groupId,
+ registryCollection.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(",")),
+ execution.getId()
+ );
+ continue;
+ }
+ } else status = "0";
+
}
}
diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java
index 3d8e3d4e8..5040ee734 100644
--- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java
+++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java
@@ -52,6 +52,7 @@ import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -68,6 +69,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
})
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class ReportServiceTest_KS {
+ protected DateTimeFormatter dateFormatter_yyMMdd = DateTimeFormatter.ofPattern("yyMMdd");
private static File outFolder;
private static int reportRequestCnt = 0;
private static int reportRequestWithSessionIdCnt = 0;
@@ -164,15 +166,16 @@ public class ReportServiceTest_KS {
ReportRequest reportRequest = new ReportRequest();
reportRequest.setReportId(ReportType.KS_REP_CASH_REGISTER_SUMS.getKey());
- Registry registry = new Registry();
- registry.setCompanyId(COMPANY_ID);
- registry.setRegistryCode("AM__");
- registry.setUpdated(Instant.now());
- registry.setTradingCode("TRADING_CODE");
- registry.setAccount("ACCOUNT");
- registry.setAccountType(AccountType.Clrn.getKey());
- registry.setDebit(BigDecimal.valueOf(22.2222222));
- registryImdg.insert(registry);
+ Registry registry_1 = new Registry();
+ registry_1.setCompanyId(COMPANY_ID);
+ registry_1.setRegistryCode("AM__");
+ registry_1.setUpdated(Instant.now());
+ registry_1.setTradingCode("TRADING_CODE");
+ registry_1.setAccount("ACCOUNT");
+ registry_1.setAccountType(AccountType.Clrn.getKey());
+ registry_1.setDebit(BigDecimal.valueOf(22.2222222));
+ registry_1.setCredit(BigDecimal.valueOf(44.4444444));
+ registryImdg.insert(registry_1);
String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L);
@@ -188,7 +191,7 @@ public class ReportServiceTest_KS {
File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv").getFile());
compareCSVFiles(expectedFile, outFile, Arrays.asList("ADD_DATE"));
- registryImdg.delete(registry);
+ registryImdg.delete(registry_1);
}
@Test
@@ -245,16 +248,17 @@ public class ReportServiceTest_KS {
ReportRequest reportRequest = new ReportRequest();
reportRequest.setReportId(ReportType.KS_REP_DEPO_REGISTER_QUANTITIES.getKey());
- Registry registry = new Registry();
- registry.setCompanyId(COMPANY_ID);
- registry.setRegistryCode("AS__");
- registry.setSecuritySymbol("SECURITY_SYMBOL");
- registry.setUpdated(Instant.now());
- registry.setTradingCode("TRADING_CODE");
- registry.setAccount("ACCOUNT");
- registry.setAccountType(AccountType.Depo.getKey());
- registry.setDebit(BigDecimal.valueOf(22.2222222));
- registryImdg.insert(registry);
+ Registry registry_1 = new Registry();
+ registry_1.setCompanyId(COMPANY_ID);
+ registry_1.setRegistryCode("AS__");
+ registry_1.setSecuritySymbol("SECURITY_SYMBOL");
+ registry_1.setUpdated(Instant.now());
+ registry_1.setTradingCode("TRADING_CODE");
+ registry_1.setAccount("ACCOUNT");
+ registry_1.setAccountType(AccountType.Depo.getKey());
+ registry_1.setDebit(BigDecimal.valueOf(22.2222222));
+ registry_1.setCredit(BigDecimal.valueOf(44.4444444));
+ registryImdg.insert(registry_1);
String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L);
@@ -270,7 +274,7 @@ public class ReportServiceTest_KS {
File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv").getFile());
compareCSVFiles(expectedFile, outFile, Arrays.asList("ADD_DATE"));
- registryImdg.delete(registry);
+ registryImdg.delete(registry_1);
}
@Test
@@ -304,10 +308,13 @@ public class ReportServiceTest_KS {
Registry registry = new Registry();
registry.setSessionId(sessionId_2);
registry.setRegistryCode("OM_T");
+ registry.setGroupId(Long.parseLong("%s%d%s".formatted(dateFormatter_yyMMdd.format(LocalDate.now()), 222, "333")));
registry.setRegistryStatus(RegistryStatus.FAIL.getKey());
+ registry.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
registryImdg.insert(registry);
ExecutionDeposit executionDeposit = new ExecutionDeposit();
+ executionDeposit.setMarket("333");
executionDeposit.setCompanyId(COMPANY_ID);
executionDeposit.setTradingDate(LocalDate.now());
executionDeposit.setSessionId(sessionId_2);
@@ -352,15 +359,29 @@ public class ReportServiceTest_KS {
reportRequest.setReportId(ReportType.KS_REP_CASH_NETTO.getKey());
reportRequest.setSessionId(sessionId);
- Registry registry = new Registry();
- registry.setTradingCode("TRADING_CODE");
- registry.setClearingDate(LocalDate.now());
- registry.setRegistryCode("TM_T");
- registry.setSessionId(sessionId);
- registry.setAccount("ACCOUNT");
- registry.setAccountType(AccountType.Clrn.getKey());
- registry.setBalance(BigDecimal.valueOf(22.2222222));
- registryImdg.insert(registry);
+ Registry registry_1 = new Registry();
+ registry_1.setTradingCode("TRADING_CODE");
+ registry_1.setSettlementDate(LocalDate.now());
+ registry_1.setGroupId(Long.MAX_VALUE);
+ registry_1.setClearingDate(LocalDate.now());
+ registry_1.setRegistryCode("OM_T");
+ registry_1.setSessionId(sessionId);
+ registry_1.setAccount("ACCOUNT");
+ registry_1.setAccountType(AccountType.Clrn.getKey());
+ registry_1.setBalance(BigDecimal.valueOf(22.2222222));
+ registryImdg.insert(registry_1);
+
+ Registry registry_2 = new Registry();
+ registry_2.setTradingCode("TRADING_CODE");
+ registry_2.setSettlementDate(LocalDate.now());
+ registry_2.setGroupId(Long.MAX_VALUE);
+ registry_2.setClearingDate(LocalDate.now());
+ registry_2.setRegistryCode("TM_T");
+ registry_2.setSessionId(sessionId);
+ registry_2.setAccount("ACCOUNT");
+ registry_2.setAccountType(AccountType.Clrn.getKey());
+ registry_2.setBalance(BigDecimal.valueOf(44.4444444));
+ registryImdg.insert(registry_2);
String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L);
@@ -376,7 +397,8 @@ public class ReportServiceTest_KS {
File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv").getFile());
compareCSVFiles(expectedFile, outFile, Arrays.asList("SESSION_ID", "DATE"));
- registryImdg.delete(registry);
+ registryImdg.delete(registry_1);
+ registryImdg.delete(registry_2);
sessionImdg.delete(session);
}
@@ -393,16 +415,31 @@ public class ReportServiceTest_KS {
reportRequest.setReportId(ReportType.KS_REP_DEPO_NETTO.getKey());
reportRequest.setSessionId(sessionId);
- Registry registry = new Registry();
- registry.setTradingCode("TRADING_CODE");
- registry.setClearingDate(LocalDate.now());
- registry.setRegistryCode("TS_T");
- registry.setSecuritySymbol("SECURITY_SYMBOL");
- registry.setSessionId(sessionId);
- registry.setAccount("ACCOUNT");
- registry.setAccountType(AccountType.Depo.getKey());
- registry.setBalance(BigDecimal.valueOf(22.2222222));
- registryImdg.insert(registry);
+ Registry registry_1 = new Registry();
+ registry_1.setTradingCode("TRADING_CODE");
+ registry_1.setClearingDate(LocalDate.now());
+ registry_1.setGroupId(Long.MAX_VALUE);
+ registry_1.setSettlementDate(LocalDate.now());
+ registry_1.setRegistryCode("TS_T");
+ registry_1.setSecuritySymbol("SECURITY_SYMBOL");
+ registry_1.setSessionId(sessionId);
+ registry_1.setAccount("ACCOUNT");
+ registry_1.setAccountType(AccountType.Depo.getKey());
+ registry_1.setBalance(BigDecimal.valueOf(44.4444444));
+ registryImdg.insert(registry_1);
+
+ Registry registry_2 = new Registry();
+ registry_2.setTradingCode("TRADING_CODE");
+ registry_2.setClearingDate(LocalDate.now());
+ registry_2.setGroupId(Long.MAX_VALUE);
+ registry_2.setSettlementDate(LocalDate.now());
+ registry_2.setRegistryCode("OS_T");
+ registry_2.setSecuritySymbol("SECURITY_SYMBOL");
+ registry_2.setSessionId(sessionId);
+ registry_2.setAccount("ACCOUNT");
+ registry_2.setAccountType(AccountType.Depo.getKey());
+ registry_2.setBalance(BigDecimal.valueOf(22.2222222));
+ registryImdg.insert(registry_2);
String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L);
@@ -418,7 +455,8 @@ public class ReportServiceTest_KS {
File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_REP_DEPO_NETTO_expected.csv").getFile());
compareCSVFiles(expectedFile, outFile, Arrays.asList("SESSION_ID", "DATE"));
- registryImdg.delete(registry);
+ registryImdg.delete(registry_1);
+ registryImdg.delete(registry_2);
sessionImdg.delete(session);
}
diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv
index 2e4e749c1..3d4a9ed9f 100644
--- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv
+++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv
@@ -1,2 +1,3 @@
FIRMID,ACCOUNT,REGISTER_CODE,ADD_SUM,ADD_TIME,ADD_DATE
-"TRADING_CODE","ACCOUNT","AM__","22,22","","30.06.2023"
+"TRADING_CODE","ACCOUNT","AM__","44,44","","04.07.2023"
+"TRADING_CODE","ACCOUNT","AM__","-22,22","","04.07.2023"
diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv
index 0bd1253ae..54f7e4e31 100644
--- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv
+++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv
@@ -1,2 +1,3 @@
FIRMID,ACCOUNT,SECURITYID,REGISTER_CODE,ADD_QUANTITY,ADD_TIME,ADD_DATE
-"TRADING_CODE","ACCOUNT","SECURITY_SYMBOL","AS__","22,22","","30.06.2023"
+"TRADING_CODE","ACCOUNT","SECURITY_SYMBOL","AS__","44,44","","04.07.2023"
+"TRADING_CODE","ACCOUNT","SECURITY_SYMBOL","AS__","-22,22","","04.07.2023"