registry-service http://jira.mfd.msk:8088/browse/CLS-788
This commit is contained in:
parent
cf317b252b
commit
bf63c85837
6 changed files with 39 additions and 16 deletions
|
|
@ -30,9 +30,9 @@ registry-service.kafka-consumer.* и registry-service.kafka-producer.* не об
|
|||
|
||||
Соответствие отчётам
|
||||
--------------------
|
||||
executionDepositLoader + executionFondLoader = executionRegisterReportBuilder (contract_register)
|
||||
executionDepositLoader + executionFondLoader = executionRegisterReportBuilder (contract_register) Реестр сделок
|
||||
depoInstructionLoader = depoPaymentInstructionBuilder (rdc_register)
|
||||
moneyPaymentInstructionLoader = moneyPaymentInstructionRegisterReportBuilder (prc_register)
|
||||
moneyBalanceLoader = moneyBalanceRegisterReportBuilder (money_register)
|
||||
depoBalanceLoader = depoBalanceRegisterReportBuilder (security_register)
|
||||
registryLoader = liabilitiesRegistryReportBuilder (registry)
|
||||
registryLoader = liabilitiesRegistryReportBuilder (registry) Реестр обязательств
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ public class AProperties {
|
|||
@Value("${registry-service.outFolder}")
|
||||
private String outFolder;
|
||||
|
||||
@Value("${registry-service.lck:false}")
|
||||
private Boolean lckLoadExecutionCurrency;
|
||||
|
||||
public AProperties(CmdArgsParser argsParser) {
|
||||
period = argsParser.parsePeriodProperties();
|
||||
LoggerFactory.getLogger(getClass()).info("Period from CMD: {}", period);
|
||||
|
|
@ -60,6 +63,14 @@ public class AProperties {
|
|||
this.reportsStore = reportsStore;
|
||||
}
|
||||
|
||||
public Boolean getLckLoadExecutionCurrency() {
|
||||
return lckLoadExecutionCurrency;
|
||||
}
|
||||
|
||||
public void setLckLoadExecutionCurrency(Boolean lckLoadExecutionCurrency) {
|
||||
this.lckLoadExecutionCurrency = lckLoadExecutionCurrency;
|
||||
}
|
||||
|
||||
public KafkaConsumerSettings getKafkaConsumer() {
|
||||
return kafkaConsumer;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ public abstract class IDBLoader<T extends IDBObject> {
|
|||
|
||||
public List<T> loadObjects() {
|
||||
log.trace("Загрузчик {}", getClass().getSimpleName());
|
||||
int count = 0;
|
||||
long timer = System.currentTimeMillis();
|
||||
try {
|
||||
String sql = sqlQuery();
|
||||
|
|
@ -34,13 +35,15 @@ public abstract class IDBLoader<T extends IDBObject> {
|
|||
parameterSource.addValue("endDate", endDate);
|
||||
log.debug("Запрос SQL: \"{}\", с параметрами: startDate={}, endDate={}",
|
||||
sql, periodProperties.getStartDate(), endDate);
|
||||
return clearingJdbc.query(sql, parameterSource, (rs, rowNum) -> fromRS(rs));
|
||||
List<T> result = clearingJdbc.query(sql, parameterSource, (rs, rowNum) -> fromRS(rs));
|
||||
count = result.size();
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
log.error("Не могу загрузить объект класса %s, причина:".formatted(getDBObjectClass()), e);
|
||||
throw new RuntimeException(e);
|
||||
} finally {
|
||||
timer = System.currentTimeMillis() - timer;
|
||||
log.debug("Загрузка {} завершена за {} ms", getDBObjectClass().getSimpleName(), timer);
|
||||
log.debug("Загрузка {} завершена за {} ms. {} записей прочитано.", getDBObjectClass().getSimpleName(), timer, count);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,7 @@ import org.springframework.stereotype.Component;
|
|||
import ru.spcex.clearing.registry.conf.properties.AProperties;
|
||||
import ru.spcex.clearing.registry.reports.ReportUtils;
|
||||
import ru.spcex.clearing.registry.reports.bean.*;
|
||||
import ru.spcex.clearing.registry.reports.loaders.helpers.ADictionaryRowMapper;
|
||||
import ru.spcex.clearing.registry.reports.loaders.helpers.RegistryCodeSqlBuilder;
|
||||
import ru.spcex.clearing.registry.reports.loaders.helpers.RegistryTradingParams;
|
||||
import ru.spcex.clearing.registry.reports.loaders.helpers.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.ResultSet;
|
||||
|
|
@ -75,7 +73,10 @@ public class RegistryLoader extends IDBLoader<Registry> {
|
|||
|
||||
@Override
|
||||
protected String sqlQuery() {
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.OM_T, RegistryTradingParams.OS_T);
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(
|
||||
RegistryTradingParams.OM_T, RegistryTradingParams.OS_T,
|
||||
RegistryTradingParams.TM_T, RegistryTradingParams.TS_T
|
||||
);
|
||||
return ("select * from REGISTRY where SETTLEMENT_DATE >= :startDate and SETTLEMENT_DATE < :endDate " +
|
||||
"and (%s) and REGISTRY_STATUS='%s'") // and TRADING_CLEARING_REGISTRY is not null
|
||||
.formatted(registryCodeSqlBuilder.buildSql(), RegistryStatus.CLRD.getKey());
|
||||
|
|
|
|||
|
|
@ -3,15 +3,13 @@ package ru.spcex.clearing.registry.service;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.spcex.clearing.registry.conf.properties.AProperties;
|
||||
import ru.spcex.clearing.registry.reports.bean.*;
|
||||
import ru.spcex.clearing.registry.reports.builders.*;
|
||||
import ru.spcex.clearing.registry.reports.loaders.*;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
|
||||
@Service
|
||||
|
|
@ -34,6 +32,7 @@ public class RegisterUtilityRunner {
|
|||
private final LiabilitiesRegistryReportBuilder liabilitiesRegistryReportBuilder;
|
||||
|
||||
private final File outFolder;
|
||||
private final boolean executionCurrencyLCK;
|
||||
|
||||
public RegisterUtilityRunner(DepoInstructionLoader depoInstructionLoader,
|
||||
DepoBalanceLoader depoBalanceLoader,
|
||||
|
|
@ -49,7 +48,8 @@ public class RegisterUtilityRunner {
|
|||
MoneyBalanceRegisterReportBuilder moneyBalanceRegisterReportBuilder,
|
||||
ExecutionRegisterReportBuilder executionRegisterReportBuilder,
|
||||
LiabilitiesRegistryReportBuilder liabilitiesRegistryReportBuilder,
|
||||
File outFolder) {
|
||||
File outFolder,
|
||||
AProperties properties) {
|
||||
this.depoInstructionLoader = depoInstructionLoader;
|
||||
this.depoBalanceLoader = depoBalanceLoader;
|
||||
this.moneyInstructionLoader = moneyInstructionLoader;
|
||||
|
|
@ -65,7 +65,8 @@ public class RegisterUtilityRunner {
|
|||
this.executionRegisterReportBuilder = executionRegisterReportBuilder;
|
||||
this.liabilitiesRegistryReportBuilder = liabilitiesRegistryReportBuilder;
|
||||
this.outFolder = outFolder;
|
||||
log.info("Папка outFolder: {}", outFolder.getAbsolutePath());
|
||||
this.executionCurrencyLCK = properties.getLckLoadExecutionCurrency() == null ? false : properties.getLckLoadExecutionCurrency();
|
||||
log.info("Папка outFolder: \"{}\". Настройка LCK={}", outFolder.getAbsolutePath(), executionCurrencyLCK);
|
||||
}
|
||||
|
||||
public void process() throws InterruptedException {
|
||||
|
|
@ -113,10 +114,16 @@ public class RegisterUtilityRunner {
|
|||
moneyBalanceRegisterReportBuilder.buildReport(moneyBalances, outFolder);
|
||||
liabilitiesRegistryReportBuilder.buildReport(registrys, outFolder);
|
||||
|
||||
Set<ExecutionCommon> executionCommons = new HashSet<>();
|
||||
Collection<ExecutionCommon> executionCommons = new HashSet<>();
|
||||
executionCommons.addAll(executionDeposits);
|
||||
executionCommons.addAll(executionFonds);
|
||||
executionCommons.addAll(executionCurrencys);
|
||||
if (executionCurrencyLCK) {
|
||||
executionCommons = new ArrayList<>(executionCommons);
|
||||
executionCommons.addAll(executionCurrencys); // без дедупликации по ExecutionCommon.ExchangeExecutionId
|
||||
} else {
|
||||
executionCommons.addAll(executionCurrencys);
|
||||
}
|
||||
log.debug("ExecutionCommons size={}, make execution report", executionCommons.size());
|
||||
executionRegisterReportBuilder.buildReport(executionCommons, outFolder);
|
||||
log.info("Все отчёты завершены.");
|
||||
// todo возможно понадобится отсылать на SFTP ReportUtils.sendFilesToSftp
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ registry-service.db-clearing.username=clearing
|
|||
registry-service.db-clearing.password=Aa111111
|
||||
|
||||
registry-service.outFolder=/opt/mfd/clearing/reestr_out/
|
||||
registry-service.LCK=true
|
||||
|
||||
# use SFTP (not implemented):
|
||||
#registry-service.reports-store.local-temp-dir=./reports_out_temp
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue