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 1901d631a..1bdf7b79e 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 @@ -66,7 +66,7 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder sessionIds = params.getSessionId(); if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg); ImdgPredicate finalPredicate = pb.and( @@ -89,7 +89,7 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder groupedRegistry = entry.getValue(); try { if (groupedRegistry.isEmpty()) { - log.warn("Empty OM_T and TM_T registries for account = {} and session_id = {}. Registries with id = [{}] was skipped", + log.warn("Empty LM_T and CM_T registries for account = {} and session_id = {}. Registries with id = [{}] was skipped", pairRegistryId.getAccount(), pairRegistryId.getSessionId(), groupedRegistry.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(", ")) @@ -97,32 +97,32 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder tmtRegistries = new ArrayList<>(); - List omtRegistries = new ArrayList<>(); + List cmtRegistries = new ArrayList<>(); + List lmtRegistries = new ArrayList<>(); Registry registry = null; for (Registry currRegistry : groupedRegistry) { registry = currRegistry; - if (RegistryDesignation.O.equalsByKey(currRegistry.getRegistryDesignation())) - omtRegistries.add(currRegistry); - if (RegistryDesignation.T.equalsByKey(currRegistry.getRegistryDesignation())) - tmtRegistries.add(currRegistry); + if (RegistryDesignation.L.equalsByKey(currRegistry.getRegistryDesignation())) + lmtRegistries.add(currRegistry); + if (RegistryDesignation.C.equalsByKey(currRegistry.getRegistryDesignation())) + cmtRegistries.add(currRegistry); } boolean invalid = false; - if (!tmtRegistries.isEmpty() || !omtRegistries.isEmpty()) { + if (!cmtRegistries.isEmpty() || !lmtRegistries.isEmpty()) { String sourceTradingCode = ""; - if (!tmtRegistries.isEmpty()) sourceTradingCode = tmtRegistries.iterator().next().getTradingCode(); - if (!omtRegistries.isEmpty()) sourceTradingCode = omtRegistries.iterator().next().getTradingCode(); - for (Registry currRegistry : tmtRegistries) { + if (!cmtRegistries.isEmpty()) sourceTradingCode = cmtRegistries.iterator().next().getTradingCode(); + if (!lmtRegistries.isEmpty()) sourceTradingCode = lmtRegistries.iterator().next().getTradingCode(); + for (Registry currRegistry : cmtRegistries) { if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue; invalid = true; - log.warn("Invalid TM_T registries set, tradingCode not equals. Registries was skipped"); + log.warn("Invalid CM_T registries set, tradingCode not equals. Registries was skipped"); break; } - for (Registry currRegistry : omtRegistries) { + for (Registry currRegistry : lmtRegistries) { if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue; invalid = true; - log.warn("Invalid OM_T registries set, tradingCode not equals. Registries was skipped"); + log.warn("Invalid LM_T registries set, tradingCode not equals. Registries was skipped"); break; } if (invalid) continue; @@ -140,15 +140,15 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder { - private final Imdg statementImdg; - private final Imdg registryImdg; private final Imdg companyImdg; - private final Imdg accountImdg; - private final Imdg tradingClearingRegistryImdg; + private final Imdg registryImdg; private List rows = null; public KSRepCashRegisterSumsReportBuilder(ImdgProvider imdgProvider) { - statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); - tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); - accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); + companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); } @Override @@ -69,196 +62,51 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder statements = statementImdg.getCollectionObjectsByPredicate(finalPredicate); - log.debug("Found {} Statements by query: {}", statements.size(), finalPredicate); - rows = new ArrayList<>(statements.size()); - for (Statement statement : statements) { - if (statement.getAmount() == null) { - log.warn("Statement id={} has null amount, statement was skipped", statement.getId()); + Collection registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate); + log.debug("Found {} registries by query: {}", registries.size(), finalPredicate); + rows = new ArrayList<>(registries.size()); + for (Registry registry : registries) { + Company company = companyImdg.getSingleObjectByID(registry.getCompanyId()); + if (company == null) { + log.warn("For registry id = {} company with id = {} not found, registry was skipped", + registry.getId(), + registry.getCompanyId()); continue; } - try { - boolean searchTCRAsInfo; - if (Arrays.asList(1L, 2L).contains(statement.getAccountId())) { - searchTCRAsInfo = true; - } else { - Account account = accountImdg.getSingleObjectByID(statement.getAccountId()); - if (account == null) { - log.warn("Unexpected state: for statement (id = {}) not found account for accountId = {}. Statement was skipped", - statement.getId(), - statement.getAccountId()); - continue; - } - searchTCRAsInfo = AccountType.Info.equalsByKey(account.getAccountType()); - if (!searchTCRAsInfo && !AccountType.Clrn.equalsByKey(account.getAccountType())) { - log.warn("Unexpected account[{}] type {}", account.getId(), account.getAccountType()); - } - } - TradingClearingRegistry tkr; - if (searchTCRAsInfo) { - String code = parseCodeFromStatementComment(statement.getComment()); - if (code == null || code.isBlank()) { - log.warn("For statement id = {} empty or unparseable code=\"{}\" (comment \"{}\"), statement was skipped", - code, statement.getComment(), statement.getId()); - continue; - } - log.debug("Search TradingClearingRegistry by code={}", code); - tkr = tradingClearingRegistryImdg.getFirstObjectByFieldValues(Map.of("code", code)); - if (tkr == null) { - log.warn( - "For statement id = {} and code = {} (or unparseable comment=\"{}\") not found TradingClearingRegistry, statement was skipped", - statement.getId(), - code, statement.getComment() - ); - continue; - } - } else { - Long accountId = statement.getAccountId(); - if (accountId == null) { - log.warn("For statement id = {} empty accountId, statement was skipped", statement.getId()); - continue; - } - log.debug("Search TCR by moneyAccountId={}", accountId); - tkr = tradingClearingRegistryImdg.getFirstObjectByFieldValues(Map.of("moneyAccountId", accountId)); - if (tkr == null) { - log.warn( - "For statement id = {} and accountId = {} not found TradingClearingRegistry, statement was skipped", - statement.getId(), - accountId - ); - continue; - } - } + if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) continue; - Company company; - if (searchTCRAsInfo) { - company = companyImdg.getSingleObjectByID(tkr.getCompanyId()); - if (company == null) { - log.warn("For statement id = {}, tcr.id={}, company with id = {} not found, statement was skipped", - statement.getId(), - tkr.getId(), - tkr.getCompanyId()); - continue; - } - } else { - company = companyImdg.getSingleObjectByID(statement.getAddresseeId()); - if (company == null) { - log.warn("For statement id = {}, company with id = {} not found, statement was skipped", - statement.getId(), - statement.getAddresseeId()); - continue; - } - } - if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { - log.debug("For statement id = {}, company with id = {} not active", - statement.getId(), company.getId()); - continue; - } + String firmId = registry.getTradingCode(); + String account = registry.getAccount(); + String tkr = registry.getTradingClearingRegistry(); + String tradeNum = ""; + String registerCode = registry.getRegistryCode(); + BigDecimal addSum = registry.getBalance() != null ? registry.getBalance() :BigDecimal.ZERO; + Instant addTime = registry.getUpdated(); + LocalDate addDate = LocalDate.now(); - - ImdgPredicateBuilder pbRegistry = registryImdg.predicateBuilder(); - ImdgPredicate registryQuery; - if (searchTCRAsInfo) { - registryQuery = pbRegistry.and( - pbRegistry.equals("tradingClearingRegistry", tkr.getCode()), - pbRegistry.in("accountType", AccountType.Clrn.getKey(), AccountType.Info.getKey()), - RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM_T).buildPredicate(pbRegistry) - ); - } else { - registryQuery = pbRegistry.and( - pbRegistry.equals("companyId", statement.getAddresseeId()), - pbRegistry.equals("account", statement.getAccount()), - pbRegistry.in("accountType", AccountType.Clrn.getKey(), AccountType.Info.getKey()), - RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM_T).buildPredicate(pbRegistry) - ); - } - log.trace("For statement id={} search registry query: {}", statement.getId(), registryQuery); - Collection registries = registryImdg.getCollectionObjectsByPredicate(registryQuery); - if (registries.isEmpty()) { - log.warn( - "Can't find registry for {}. Statement id = {} skipped", - registryQuery, - statement.getId() - ); - continue; - } else if (registries.size() > 1) { - log.warn( - "More then one AM_T registry found for {}, statement id {}. Use first", - registryQuery, - statement.getId() - ); - } - Registry registry = registries.iterator().next(); - - KSRepCashRegisterSumsReport ksRepCashRegisterSumsReport = new KSRepCashRegisterSumsReport(); - ksRepCashRegisterSumsReport.setFirmId(company.getTradingCode()); - if (searchTCRAsInfo) { - Account account = accountImdg.getSingleObjectByID(tkr.getMoneyAccountId()); - if (account == null) { - log.debug("statement id={}, moneyAccount not found with id={}", - statement.getId(), tkr.getMoneyAccountId()); - } else { - ksRepCashRegisterSumsReport.setAccount(account.getAccount()); - } - } else { - ksRepCashRegisterSumsReport.setAccount(statement.getAccount()); - } - ksRepCashRegisterSumsReport.setTkr(tkr.getCode()); - ksRepCashRegisterSumsReport.setRegisterCode(registry.getRegistryCode()); - ksRepCashRegisterSumsReport.setAddDate(nowDate); - if (statement.getCreated() != null) - ksRepCashRegisterSumsReport.setAddTime(LocalTime.ofInstant(statement.getCreated(), getReportZoneId())); - - InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection()); - if (inOutDirection == InOutDirection.in) { - ksRepCashRegisterSumsReport.setAddSum(statement.getAmount()); - } else if (inOutDirection == InOutDirection.out) { - ksRepCashRegisterSumsReport.setAddSum(statement.getAmount().negate()); - } else { - log.warn( - "Invalid statement.in_out_direction ({}). Statement id = {} skipped", - statement.getInOutDirection(), - statement.getId() - ); - continue; - } - - rows.add(ksRepCashRegisterSumsReport); - - } catch (Throwable e) { - log.error("Can't create report row for registry (id = %d), skipped".formatted(statement.getId()), e); - } + KSRepCashRegisterSumsReport ksRepCashRegisterSumsReport = new KSRepCashRegisterSumsReport(); + ksRepCashRegisterSumsReport.setFirmId(firmId); + ksRepCashRegisterSumsReport.setAccount(account); + ksRepCashRegisterSumsReport.setTkr(tkr); + ksRepCashRegisterSumsReport.setTradeNum(tradeNum); + ksRepCashRegisterSumsReport.setRegisterCode(registerCode); + ksRepCashRegisterSumsReport.setAddSum(addSum); + ksRepCashRegisterSumsReport.setAddTime(LocalTime.ofInstant(addTime, getReportZoneId())); + ksRepCashRegisterSumsReport.setAddDate(addDate); + rows.add(ksRepCashRegisterSumsReport); } } - - protected String parseCodeFromStatementComment(String comment) { - if (comment == null) - return null; - int i = comment.lastIndexOf("ТКР"); - String code = comment; - if (i >= 0) { - code = code.substring(i + 3).trim(); - } else { - return null; - } - i = -1; - for (String end : Arrays.asList(".", ";", " ")) { - int p = code.indexOf(end); - if (p > 0 && (i <= 0 || i > p)) i = p; - } - if (i > 0) { - code = code.substring(0, i); - } - return code; - } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegistersReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegistersReportBuilder.java index 7b98e2a18..680571cfa 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegistersReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegistersReportBuilder.java @@ -114,9 +114,22 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder registriesForAddWithdraw = registryImdg.getCollectionObjectsByPredicate( + pb.and( + registryPredicate, + pb.equals("securityId", registry.getSecurityId()), + pb.equals("accountId", registry.getAccountId()), + pb.equals("companyId", registry.getCompanyId()), + pb.equals("registryStatus", RegistryStatus.OK.getKey()), + pb.greatEqual("updated", instantNow.truncatedTo(ChronoUnit.DAYS)), + pb.less("updated", instantNow.plus(1, ChronoUnit.DAYS).truncatedTo(ChronoUnit.DAYS)), + pb.notNull("balance") + ) + ); + BigDecimal addWithdraw = BigDecimal.ZERO; + for (Registry currRegistry : registriesForAddWithdraw) addWithdraw = addWithdraw.add(currRegistry.getBalance()); + ksRepCashRegistersReport.setAddWithdraw(addWithdraw); BigDecimal closeBalance = ksRepCashRegistersReport.getOpenBalance() .add(ksRepCashRegistersReport.getChangeBalance()) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java index 1e33b4e51..c0f6ada38 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java @@ -68,7 +68,7 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder sessionIds = params.getSessionId(); if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg); - String sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.TS_T, RegistryTradingParams.OS_T).build(); + String sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.CS_T, RegistryTradingParams.LS_T).build(); ImdgPredicate finalPredicate = pb.and( pb.in("sessionId", sessionIds.toArray(new Long[0])), pb.equals("clearingDate", nowDate), @@ -86,39 +86,39 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder groupedRegistry = entry.getValue(); try { if (groupedRegistry.isEmpty()) { - log.warn("Empty OS_T and TS_T registries for {}. Registries with id = [{}] was skipped", + log.warn("Empty LS_T and CS_T registries for {}. Registries with id = [{}] was skipped", pairRegistryId, groupedRegistry.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(", ")) ); continue; } - List tstRegistries = new ArrayList<>(); - List ostRegistries = new ArrayList<>(); + List cstRegistries = new ArrayList<>(); + List lstRegistries = new ArrayList<>(); Registry registry = null; for (Registry currRegistry : groupedRegistry) { registry = currRegistry; - if (RegistryDesignation.O.equalsByKey(currRegistry.getRegistryDesignation())) - ostRegistries.add(currRegistry); - if (RegistryDesignation.T.equalsByKey(currRegistry.getRegistryDesignation())) - tstRegistries.add(currRegistry); + if (RegistryDesignation.L.equalsByKey(currRegistry.getRegistryDesignation())) + lstRegistries.add(currRegistry); + if (RegistryDesignation.C.equalsByKey(currRegistry.getRegistryDesignation())) + cstRegistries.add(currRegistry); } boolean invalid = false; - if (!tstRegistries.isEmpty() || !ostRegistries.isEmpty()) { + if (!cstRegistries.isEmpty() || !lstRegistries.isEmpty()) { String sourceTradingCode = ""; - if (!tstRegistries.isEmpty()) sourceTradingCode = tstRegistries.iterator().next().getTradingCode(); - if (!ostRegistries.isEmpty()) sourceTradingCode = ostRegistries.iterator().next().getTradingCode(); - for (Registry currRegistry : tstRegistries) { + if (!cstRegistries.isEmpty()) sourceTradingCode = cstRegistries.iterator().next().getTradingCode(); + if (!lstRegistries.isEmpty()) sourceTradingCode = lstRegistries.iterator().next().getTradingCode(); + for (Registry currRegistry : cstRegistries) { if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue; invalid = true; - log.warn("Invalid TS_T registries set, tradingCode not equals. Registries was skipped"); + log.warn("Invalid CS_T registries set, tradingCode not equals. Registries was skipped"); break; } - for (Registry currRegistry : ostRegistries) { + for (Registry currRegistry : lstRegistries) { if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue; invalid = true; - log.warn("Invalid OS_T registries set, tradingCode not equals. Registries was skipped"); + log.warn("Invalid LS_T registries set, tradingCode not equals. Registries was skipped"); break; } if (invalid) continue; @@ -135,15 +135,15 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder { - private final Imdg statementImdg; private final Imdg registryImdg; private final Imdg companyImdg; - private final Imdg fixedIncomeSecurityImdg; - private final Imdg equitySecurityImdg; - private final Imdg moneyMarketSecurityImdg; private List rows = null; public KSRepDepoRegisterQuantitiesReportBuilder(ImdgProvider imdgProvider) { - statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class); - equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class); - moneyMarketSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class); } @Override @@ -75,126 +62,55 @@ public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder statements = statementImdg.getCollectionObjectsByPredicate(finalPredicate); - log.debug("Found {} Statement by query: {}", statements.size(), finalPredicate); - - rows = new ArrayList<>(statements.size()); - for (Statement statement : statements) { - try { - Company company = companyImdg.getSingleObjectByID(statement.getAddresseeId()); - if (company == null) { - log.warn("For statement id = {} company with id = {} not found, statement was skipped", - statement.getId(), - statement.getAddresseeId()); - continue; - } - if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) continue; - - ImdgPredicateBuilder pbRegistry = registryImdg.predicateBuilder(); - Collection registries = registryImdg.getCollectionObjectsByPredicate( - pbRegistry.and( - pbRegistry.equals("companyId", statement.getAddresseeId()), - pbRegistry.equals("account", statement.getAccount()), - pbRegistry.equals("accountType", AccountType.Depo.getKey()), - RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AS_T).buildPredicate(pbRegistry), - pbRegistry.equals("securityId", statement.getSecurityId()) - ) - ); - if (registries.isEmpty()) { - log.warn( - "Can't find registry for companyId = {}, securityId = {} and account: {}. Statement id = {} skipped", - statement.getAddresseeId(), - statement.getSecurityId(), - statement.getAccount(), - statement.getId() - ); - continue; - } else if (registries.size() > 1) { - log.warn( - "More then one AS_T registry found for companyId = {}, securityId = {} and account: {}, statement id {}. Use first", - statement.getAddresseeId(), - statement.getSecurityId(), - statement.getAccount(), - statement.getId() - ); - } - Registry registry = registries.iterator().next(); - - Security security = getSecurityWithSecuritySymbolForId(statement.getSecurityId()); - if (security == null) { - log.warn( - "Can't find security for securityId = {}. Statement id = {} skipped", - statement.getSecurityId(), - statement.getId() - ); - continue; - } - - KSRepDepoRegisterQuantitiesReport ksRepDepoRegisterQuantitiesReport = new KSRepDepoRegisterQuantitiesReport(); - ksRepDepoRegisterQuantitiesReport.setFirmId(company.getTradingCode()); - ksRepDepoRegisterQuantitiesReport.setAccount(statement.getAccount()); - ksRepDepoRegisterQuantitiesReport.setTkr(registry.getTradingClearingRegistry()); - ksRepDepoRegisterQuantitiesReport.setSecurityId(security.getSecuritySymbol()); - ksRepDepoRegisterQuantitiesReport.setRegisterCode(registry.getRegistryCode()); - ksRepDepoRegisterQuantitiesReport.setAddDate(nowDate); - if (statement.getCreated() != null) - ksRepDepoRegisterQuantitiesReport.setAddTime(LocalTime.ofInstant(statement.getCreated(), getReportZoneId())); - - InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection()); - if (inOutDirection == InOutDirection.in) { - ksRepDepoRegisterQuantitiesReport.setAddQuantity(statement.getAmount()); - } else if (inOutDirection == InOutDirection.out) { - ksRepDepoRegisterQuantitiesReport.setAddQuantity(statement.getAmount().negate()); - } else { - log.warn( - "Invalid statement.in_out_direction ({}). Statement id = {} skipped", - statement.getInOutDirection(), - statement.getId() - ); - continue; - } - - rows.add(ksRepDepoRegisterQuantitiesReport); - } catch (Throwable e) { - log.error("Can't create report row for registry (id = %d), skipped".formatted(statement.getId()), e); + Collection registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate); + log.debug("Found {} registries by query: {}", registries.size(), finalPredicate); + rows = new ArrayList<>(registries.size()); + for (Registry registry : registries) { + Company company = companyImdg.getSingleObjectByID(registry.getCompanyId()); + if (company == null) { + log.warn("For registry id = {} company with id = {} not found, registry was skipped", + registry.getId(), + registry.getCompanyId()); + continue; } + if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) continue; + + String firmId = registry.getTradingCode(); + String account = registry.getAccount(); + String tkr = registry.getTradingClearingRegistry(); + String tradeNum = ""; + String securityId = registry.getSecuritySymbol(); + String registerCode = registry.getRegistryCode(); + BigDecimal addQuantity = registry.getBalance() != null ? registry.getBalance() :BigDecimal.ZERO; + Instant addTime = registry.getUpdated(); + LocalDate addDate = LocalDate.now(); + + KSRepDepoRegisterQuantitiesReport ksRepDepoRegisterQuantitiesReport = new KSRepDepoRegisterQuantitiesReport(); + ksRepDepoRegisterQuantitiesReport.setFirmId(firmId); + ksRepDepoRegisterQuantitiesReport.setAccount(account); + ksRepDepoRegisterQuantitiesReport.setTkr(tkr); + ksRepDepoRegisterQuantitiesReport.setTradeNum(tradeNum); + ksRepDepoRegisterQuantitiesReport.setSecurityId(securityId); + ksRepDepoRegisterQuantitiesReport.setRegisterCode(registerCode); + ksRepDepoRegisterQuantitiesReport.setAddQuantity(addQuantity); + ksRepDepoRegisterQuantitiesReport.setAddTime(LocalTime.ofInstant(addTime, getReportZoneId())); + ksRepDepoRegisterQuantitiesReport.setAddDate(addDate); + rows.add(ksRepDepoRegisterQuantitiesReport); } + } - private Security getSecurityWithSecuritySymbolForId(Long securityId) { - Security security; - security = equitySecurityImdg.getFirstObjectByPredicate( - equitySecurityImdg.predicateBuilder().and( - equitySecurityImdg.predicateBuilder().equals("securityId", securityId), - equitySecurityImdg.predicateBuilder().notNull("securitySymbol") - ) - ); - if (security == null) { - security = fixedIncomeSecurityImdg.getFirstObjectByPredicate( - fixedIncomeSecurityImdg.predicateBuilder().and( - fixedIncomeSecurityImdg.predicateBuilder().equals("securityId", securityId), - fixedIncomeSecurityImdg.predicateBuilder().notNull("securitySymbol") - ) - ); - } - if (security == null) - security = moneyMarketSecurityImdg.getFirstObjectByPredicate( - moneyMarketSecurityImdg.predicateBuilder().and( - moneyMarketSecurityImdg.predicateBuilder().equals("securityId", securityId), - moneyMarketSecurityImdg.predicateBuilder().notNull("securitySymbol") - ) - ); - return security; - } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegistersReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegistersReportBuilder.java index b7d154b2c..d844a70e6 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegistersReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegistersReportBuilder.java @@ -69,9 +69,9 @@ public class KSRepDepoRegistersReportBuilder extends CSVReportBuilder registriesForAddWithdraw = registryImdg.getCollectionObjectsByPredicate( + pb.and( + registryPredicate, + pb.equals("securityId", registry.getSecurityId()), + pb.equals("accountId", registry.getAccountId()), + pb.equals("companyId", registry.getCompanyId()), + pb.equals("registryStatus", RegistryStatus.OK.getKey()), + pb.greatEqual("updated", instantNow.truncatedTo(ChronoUnit.DAYS)), + pb.less("updated", instantNow.plus(1, ChronoUnit.DAYS).truncatedTo(ChronoUnit.DAYS)), + pb.notNull("balance") + ) + ); + BigDecimal addWithdraw = BigDecimal.ZERO; + for (Registry currRegistry : registriesForAddWithdraw) addWithdraw = addWithdraw.add(currRegistry.getBalance()); + ksRepDepoRegistersReport.setAddWithdrawDepo(addWithdraw); BigDecimal closeBalance = ksRepDepoRegistersReport.getOpenQuantity() .add(ksRepDepoRegistersReport.getChangeQuantity()) diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilderTest.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilderTest.java deleted file mode 100644 index b9ec67e23..000000000 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilderTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package ru.spcex.clearing.reports.reports.ks; - -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import static org.junit.jupiter.api.Assertions.*; - -class KSRepCashRegisterSumsReportBuilderTest { - - @Test - void parseCodeFromStatementComment() { - KSRepCashRegisterSumsReportBuilder reportB = new KSRepCashRegisterSumsReportBuilder(Mockito.mock(ImdgProvider.class)); - assertNull(reportB.parseCodeFromStatementComment(null)); - assertEquals(null, reportB.parseCodeFromStatementComment("")); - assertEquals(null, reportB.parseCodeFromStatementComment(" TTTAAA ")); - assertEquals("0045CAT00001", reportB.parseCodeFromStatementComment("Возврат на депозит №DSTAA10S003/150923/45/23091500000008 по ТКР 0045CAT00001")); - assertEquals("0574MAT00001", reportB.parseCodeFromStatementComment("Вывод средств по ТКР 0574MAT00001. Поручения 777.")); - assertEquals("0574MAT00001", reportB.parseCodeFromStatementComment("ТКР 0574MAT00001")); - assertEquals("0574MAT00001", reportB.parseCodeFromStatementComment("ТКР0574MAT00001")); - assertEquals("", reportB.parseCodeFromStatementComment("ТКР")); - } -} \ No newline at end of file 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 ce94d4407..b223b9199 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 @@ -129,6 +129,8 @@ public class ReportServiceTest_KS { Registry registry = new Registry(); registry.setCompanyId(COMPANY_ID); + registry.setSecurityId(777L); + registry.setAccountId(888L); registry.setRegistryCode("AM_T"); registry.setRegistryDesignation(RegistryDesignation.A.getKey()); registry.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); @@ -146,6 +148,48 @@ public class ReportServiceTest_KS { registry.setCloseBalance(BigDecimal.valueOf(11.11111111)); registryImdg.insert(registry); + Registry addWithdrawRegistry_1 = new Registry(); + addWithdrawRegistry_1.setCompanyId(COMPANY_ID); + addWithdrawRegistry_1.setSecurityId(777L); + addWithdrawRegistry_1.setAccountId(888L); + addWithdrawRegistry_1.setRegistryStatus(RegistryStatus.OK.getKey()); + addWithdrawRegistry_1.setRegistryCode("DMAI"); + addWithdrawRegistry_1.setRegistryDesignation(RegistryDesignation.D.getKey()); + addWithdrawRegistry_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + addWithdrawRegistry_1.setRegistryCapacity(RegistryCapacity.A.getKey()); + addWithdrawRegistry_1.setRegistryUnit(RegistryUnit.I.getKey()); + addWithdrawRegistry_1.setUpdated(Instant.now()); + addWithdrawRegistry_1.setBalance(BigDecimal.TEN); + registryImdg.insert(addWithdrawRegistry_1); + + Registry addWithdrawRegistry_2 = new Registry(); + addWithdrawRegistry_2.setCompanyId(COMPANY_ID); + addWithdrawRegistry_2.setSecurityId(777L); + addWithdrawRegistry_2.setAccountId(888L); + addWithdrawRegistry_2.setRegistryStatus(RegistryStatus.OK.getKey()); + addWithdrawRegistry_2.setRegistryCode("DMAI"); + addWithdrawRegistry_2.setRegistryDesignation(RegistryDesignation.D.getKey()); + addWithdrawRegistry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + addWithdrawRegistry_2.setRegistryCapacity(RegistryCapacity.A.getKey()); + addWithdrawRegistry_2.setRegistryUnit(RegistryUnit.I.getKey()); + addWithdrawRegistry_2.setUpdated(Instant.now()); + addWithdrawRegistry_2.setBalance(BigDecimal.ONE); + registryImdg.insert(addWithdrawRegistry_2); + + Registry addWithdrawRegistry_3 = new Registry(); + addWithdrawRegistry_3.setCompanyId(COMPANY_ID); + addWithdrawRegistry_3.setSecurityId(777L); + addWithdrawRegistry_3.setAccountId(888L); + addWithdrawRegistry_3.setRegistryStatus(RegistryStatus.OK.getKey()); + addWithdrawRegistry_3.setRegistryCode("DMAI"); + addWithdrawRegistry_3.setRegistryDesignation(RegistryDesignation.D.getKey()); + addWithdrawRegistry_3.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + addWithdrawRegistry_3.setRegistryCapacity(RegistryCapacity.A.getKey()); + addWithdrawRegistry_3.setRegistryUnit(RegistryUnit.I.getKey()); + addWithdrawRegistry_3.setUpdated(Instant.now()); + addWithdrawRegistry_3.setBalance(BigDecimal.valueOf(100L)); + registryImdg.insert(addWithdrawRegistry_3); + String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), @@ -162,6 +206,9 @@ public class ReportServiceTest_KS { registryCodeDictionaryImdg.delete(registryCodeDictionary); registryImdg.delete(registry); + registryImdg.delete(addWithdrawRegistry_1); + registryImdg.delete(addWithdrawRegistry_2); + registryImdg.delete(addWithdrawRegistry_3); } @Test @@ -173,39 +220,18 @@ public class ReportServiceTest_KS { reportRequest.setReportId(ReportBuilderType.KS_REP_CASH_REGISTER_SUMS.getKey()); Registry registry_1 = new Registry(); + registry_1.setUpdated(Instant.now()); + registry_1.setRegistryStatus(RegistryStatus.OK.getKey()); + registry_1.setTradingCode("TRADING_CODE"); + registry_1.setTradingClearingRegistry("0008CAT00001"); registry_1.setCompanyId(COMPANY_ID); registry_1.setAccount("ACCOUNT"); - registry_1.setAccountType(AccountType.Clrn.getKey()); - registry_1.setRegistryCode("AM_T"); - registry_1.setRegistryDesignation("A"); + registry_1.setRegistryCode("DM_I"); + registry_1.setRegistryDesignation("D"); registry_1.setRegistryInstrumentType("M"); - registry_1.setRegistryUnit("T"); - registry_1.setTradingClearingRegistry("0008CAT00001"); + registry_1.setRegistryUnit("I"); registryImdg.insert(registry_1); - TradingClearingRegistry tkr = new TradingClearingRegistry(); - tkr.setMoneyAccountId(777L); - tkr.setCode("0008CAT00001"); - tkr.setCompanyId(COMPANY_ID); - tradingClearingRegistryImdg.insert(tkr); - - Account account = new Account(); - account.setAccountType(AccountType.Info.getKey()); - account.setAccount("ACCOUNT"); - Long accountId = accountImdg.insert(account); - - Statement statement_1 = new Statement(); - statement_1.setAddresseeId(COMPANY_ID); - statement_1.setAccount("ACCOUNT"); - statement_1.setAccountId(accountId); - statement_1.setInOutDirection(InOutDirection.in.getKey()); - statement_1.setInOutSDfType(InOutSDfType.type57.getKey()); - statement_1.setOperationStatus(OperationStatus.Executed.getKey()); - statement_1.setAmount(BigDecimal.valueOf(7777.777777777)); - statement_1.setCreated(Instant.now()); - statement_1.setComment("Зачислить на ТКР 0008CAT00001"); - statementImdg.insert(statement_1); - String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), @@ -221,9 +247,6 @@ public class ReportServiceTest_KS { compareCSVFiles(expectedFile, outFile, Arrays.asList("FIRMID", "ADD_DATE", "ADD_TIME")); registryImdg.delete(registry_1); - statementImdg.delete(statement_1); - tradingClearingRegistryImdg.delete(tkr); - accountImdg.delete(account); } @Test @@ -241,7 +264,10 @@ public class ReportServiceTest_KS { Registry registry = new Registry(); registry.setCompanyId(COMPANY_ID); + registry.setSecurityId(777L); + registry.setAccountId(888L); registry.setRegistryCode("AS_T"); + registry.setSecuritySymbol("SECURITY_SYMBOL"); registry.setRegistryDesignation(RegistryDesignation.A.getKey()); registry.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); registry.setRegistryUnit(RegistryUnit.T.getKey()); @@ -258,6 +284,48 @@ public class ReportServiceTest_KS { registry.setCloseBalance(BigDecimal.valueOf(11.11111111)); registryImdg.insert(registry); + Registry addWithdrawRegistry_1 = new Registry(); + addWithdrawRegistry_1.setCompanyId(COMPANY_ID); + addWithdrawRegistry_1.setSecurityId(777L); + addWithdrawRegistry_1.setAccountId(888L); + addWithdrawRegistry_1.setRegistryStatus(RegistryStatus.OK.getKey()); + addWithdrawRegistry_1.setRegistryCode("DMAI"); + addWithdrawRegistry_1.setRegistryDesignation(RegistryDesignation.D.getKey()); + addWithdrawRegistry_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + addWithdrawRegistry_1.setRegistryCapacity(RegistryCapacity.A.getKey()); + addWithdrawRegistry_1.setRegistryUnit(RegistryUnit.I.getKey()); + addWithdrawRegistry_1.setUpdated(Instant.now()); + addWithdrawRegistry_1.setBalance(BigDecimal.TEN); + registryImdg.insert(addWithdrawRegistry_1); + + Registry addWithdrawRegistry_2 = new Registry(); + addWithdrawRegistry_2.setCompanyId(COMPANY_ID); + addWithdrawRegistry_2.setSecurityId(777L); + addWithdrawRegistry_2.setAccountId(888L); + addWithdrawRegistry_2.setRegistryStatus(RegistryStatus.OK.getKey()); + addWithdrawRegistry_2.setRegistryCode("DMAI"); + addWithdrawRegistry_2.setRegistryDesignation(RegistryDesignation.D.getKey()); + addWithdrawRegistry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + addWithdrawRegistry_2.setRegistryCapacity(RegistryCapacity.A.getKey()); + addWithdrawRegistry_2.setRegistryUnit(RegistryUnit.I.getKey()); + addWithdrawRegistry_2.setUpdated(Instant.now()); + addWithdrawRegistry_2.setBalance(BigDecimal.ONE); + registryImdg.insert(addWithdrawRegistry_2); + + Registry addWithdrawRegistry_3 = new Registry(); + addWithdrawRegistry_3.setCompanyId(COMPANY_ID); + addWithdrawRegistry_3.setSecurityId(777L); + addWithdrawRegistry_3.setAccountId(888L); + addWithdrawRegistry_3.setRegistryStatus(RegistryStatus.OK.getKey()); + addWithdrawRegistry_3.setRegistryCode("DMAI"); + addWithdrawRegistry_3.setRegistryDesignation(RegistryDesignation.D.getKey()); + addWithdrawRegistry_3.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + addWithdrawRegistry_3.setRegistryCapacity(RegistryCapacity.A.getKey()); + addWithdrawRegistry_3.setRegistryUnit(RegistryUnit.I.getKey()); + addWithdrawRegistry_3.setUpdated(Instant.now()); + addWithdrawRegistry_3.setBalance(BigDecimal.valueOf(100L)); + registryImdg.insert(addWithdrawRegistry_3); + String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), @@ -274,6 +342,9 @@ public class ReportServiceTest_KS { registryCodeDictionaryImdg.delete(registryCodeDictionary); registryImdg.delete(registry); + registryImdg.delete(addWithdrawRegistry_1); + registryImdg.delete(addWithdrawRegistry_2); + registryImdg.delete(addWithdrawRegistry_3); } @Test @@ -285,34 +356,20 @@ public class ReportServiceTest_KS { reportRequest.setReportId(ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES.getKey()); Registry registry_1 = new Registry(); + registry_1.setUpdated(Instant.now()); + registry_1.setSecuritySymbol("SECURITY_SYMBOL"); + registry_1.setRegistryStatus(RegistryStatus.OK.getKey()); + registry_1.setTradingCode("TRADING_CODE"); + registry_1.setTradingClearingRegistry("0008CAT00001"); registry_1.setCompanyId(COMPANY_ID); registry_1.setAccount("ACCOUNT"); - registry_1.setTradingClearingRegistry("TRADING_CLEARING_REGISTRY"); - registry_1.setAccountType(AccountType.Depo.getKey()); - registry_1.setRegistryCode("AS_T"); - registry_1.setRegistryDesignation("A"); + registry_1.setRegistryCode("DS_I"); + registry_1.setRegistryDesignation("D"); registry_1.setRegistryInstrumentType("S"); - registry_1.setRegistryUnit("T"); - registry_1.setSecurityId(777L); - + registry_1.setRegistryUnit("I"); + registry_1.setBalance(BigDecimal.TEN); registryImdg.insert(registry_1); - EquitySecurity equitySecurity = new EquitySecurity(); - equitySecurity.setSecuritySymbol("value"); - equitySecurity.setSecurityId(777L); - equitySecurityImdg.insert(equitySecurity); - - Statement statement_1 = new Statement(); - statement_1.setAddresseeId(COMPANY_ID); - statement_1.setAccount("ACCOUNT"); - statement_1.setInOutDirection(InOutDirection.in.getKey()); - statement_1.setInOutSDfType(InOutSDfType.type21.getKey()); - statement_1.setOperationStatus(OperationStatus.Executed.getKey()); - statement_1.setAmount(BigDecimal.valueOf(7777.777777777)); - statement_1.setCreated(Instant.now()); - statement_1.setSecurityId(777L); - statementImdg.insert(statement_1); - String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), @@ -328,8 +385,6 @@ public class ReportServiceTest_KS { compareCSVFiles(expectedFile, outFile, Arrays.asList("FIRMID", "ADD_DATE", "ADD_TIME")); registryImdg.delete(registry_1); - equitySecurityImdg.delete(equitySecurity); - statementImdg.delete(statement_1); } @Test @@ -434,9 +489,9 @@ public class ReportServiceTest_KS { registry_1.setSettlementDate(LocalDate.now()); registry_1.setGroupId(Long.MAX_VALUE); registry_1.setClearingDate(LocalDate.now()); - registry_1.setRegistryCode("OM_T"); + registry_1.setRegistryCode("LM_T"); registry_1.setRegistryStatus(RegistryStatus.PROC.getKey()); - registry_1.setRegistryDesignation(RegistryDesignation.O.getKey()); + registry_1.setRegistryDesignation(RegistryDesignation.L.getKey()); registry_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); registry_1.setRegistryUnit(RegistryUnit.T.getKey()); registry_1.setSessionId(sessionId); @@ -450,9 +505,9 @@ public class ReportServiceTest_KS { registry_2.setSettlementDate(LocalDate.now()); registry_2.setGroupId(Long.MAX_VALUE); registry_2.setClearingDate(LocalDate.now()); - registry_2.setRegistryCode("TM_T"); + registry_2.setRegistryCode("CM_T"); registry_2.setRegistryStatus(RegistryStatus.PROC.getKey()); - registry_2.setRegistryDesignation(RegistryDesignation.T.getKey()); + registry_2.setRegistryDesignation(RegistryDesignation.C.getKey()); registry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); registry_2.setRegistryUnit(RegistryUnit.T.getKey()); registry_2.setSessionId(sessionId); @@ -498,8 +553,8 @@ public class ReportServiceTest_KS { registry_1.setClearingDate(LocalDate.now()); registry_1.setGroupId(Long.MAX_VALUE); registry_1.setSettlementDate(LocalDate.now()); - registry_1.setRegistryCode("TS_T"); - registry_1.setRegistryDesignation(RegistryDesignation.T.getKey()); + registry_1.setRegistryCode("CS_T"); + registry_1.setRegistryDesignation(RegistryDesignation.C.getKey()); registry_1.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); registry_1.setRegistryStatus(RegistryStatus.PROC.getKey()); registry_1.setRegistryUnit(RegistryUnit.T.getKey()); @@ -515,8 +570,8 @@ public class ReportServiceTest_KS { registry_2.setClearingDate(LocalDate.now()); registry_2.setGroupId(Long.MAX_VALUE); registry_2.setSettlementDate(LocalDate.now()); - registry_2.setRegistryCode("OS_T"); - registry_2.setRegistryDesignation(RegistryDesignation.O.getKey()); + registry_2.setRegistryCode("LS_T"); + registry_2.setRegistryDesignation(RegistryDesignation.L.getKey()); registry_2.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); registry_2.setRegistryUnit(RegistryUnit.T.getKey()); registry_2.setRegistryStatus(RegistryStatus.PROC.getKey()); diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv index 516c29866..fa10ee654 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv @@ -1,2 +1,2 @@ "FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","VALUE","DATE" -"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","22.22","07.07.2023" +"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","22.22","02.10.2023" diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTERS_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTERS_expected.csv index c35bdee4f..679b960c6 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTERS_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTERS_expected.csv @@ -1,2 +1,2 @@ "FIRMID","ACCOUNT","TKR","DATE","REGISTER_CODE","REGISTER_NAME","OPEN_BALANCE","CHANGE_BALANCE","ADD_WITHDRAW","CLOSE_BALANCE","REMARKS","TRADE_NUM" -"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","01.08.2023","AM_T","AM_T_NAME","77.78","66.67","66.67","211.11","","" +"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","02.10.2023","AM_T","AM_T_NAME","77.78","66.67","111.00","255.44","","" 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 73425c69a..8ccfdd127 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,2 @@ "FIRMID","ACCOUNT","TKR","REGISTER_CODE","ADD_SUM","ADD_TIME","ADD_DATE","TRADE_NUM" -"1","","0008CAT00001","AM_T","7777.78","15:49:30","01.08.2023","" +"TRADING_CODE","ACCOUNT","0008CAT00001","DM_I","0.00","13:02:50","02.10.2023","" diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTERS_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTERS_expected.csv index a2140ad54..e2345d222 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTERS_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTERS_expected.csv @@ -1,2 +1,2 @@ "FIRMID","ACCOUNT","TKR","DATE","SECURITYID","REGISTER_CODE","REGISTER_NAME","OPEN_QUANTITY","CHANGE_QUANTITY","ADD_WITHDRAW_DEPO","CLOSE_QUANTITY","REMARKS","TRADE_NUM" -"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","01.08.2023","","AS_T","AS_T_NAME","78","67","67","211","","" +"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","02.10.2023","SECURITY_SYMBOL","AS_T","AS_T_NAME","78","67","111","255","","" 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 526f4f940..c26be1cc2 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,2 @@ "FIRMID","ACCOUNT","TKR","SECURITYID","REGISTER_CODE","ADD_QUANTITY","ADD_TIME","ADD_DATE","TRADE_NUM" -"1","ACCOUNT","TRADING_CLEARING_REGISTRY","value","AS_T","7778","15:52:33","01.08.2023","" +"TRADING_CODE","ACCOUNT","0008CAT00001","SECURITY_SYMBOL","DS_I","10","13:55:53","02.10.2023","" diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java index b427a4aa2..42c07d279 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java @@ -105,6 +105,7 @@ public record RegistryTradingParams(RegistryDesignation registryDesignation, public final static RegistryTradingParams CM__; public final static RegistryTradingParams LM__; public final static RegistryTradingParams DMAU; + public final static RegistryTradingParams DMAI; public final static RegistryTradingParams D__I; public final static RegistryTradingParams D__V; @@ -218,6 +219,10 @@ public record RegistryTradingParams(RegistryDesignation registryDesignation, RegistryInstrumentType.M, RegistryCapacity.A, RegistryUnit.U); + DMAI = new RegistryTradingParams(RegistryDesignation.D, + RegistryInstrumentType.M, + RegistryCapacity.A, + RegistryUnit.I); DS_I = new RegistryTradingParams(RegistryDesignation.D, RegistryInstrumentType.S, null,