This commit is contained in:
parent
705b24910d
commit
a4f2da37d4
17 changed files with 77 additions and 104 deletions
|
|
@ -35,7 +35,6 @@ import ru.spcex.platform.enumeration.Task;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
|
@ -236,12 +235,7 @@ public class GatewayService extends QueueConsumer implements InitializingBean {
|
||||||
|
|
||||||
protected Map<String, Object> makeContentByReportRequest(ReportPart reportPart) {
|
protected Map<String, Object> makeContentByReportRequest(ReportPart reportPart) {
|
||||||
Map<String, Object> content = new HashMap<>();
|
Map<String, Object> content = new HashMap<>();
|
||||||
Matcher matcher = REPORT_FILE_NAME_PATTERN.matcher(reportPart.getFileName());
|
ReportKeys reportKey = IEnumKey.getEnumByKey(ReportKeys.class, reportPart.getReportType());
|
||||||
ReportKeys reportKey = null;
|
|
||||||
if (matcher.matches()) {
|
|
||||||
String rowKey = matcher.group(1);
|
|
||||||
reportKey = IEnumKey.getEnumByKeyOrUndefined(ReportKeys.class, rowKey);
|
|
||||||
}
|
|
||||||
if (reportKey == null) {
|
if (reportKey == null) {
|
||||||
log.warn("Mismatched filename pattern : {}; {}", reportPart.getFileName(), REPORT_FILE_NAME_PATTERN);
|
log.warn("Mismatched filename pattern : {}; {}", reportPart.getFileName(), REPORT_FILE_NAME_PATTERN);
|
||||||
return content;
|
return content;
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import com.opencsv.exceptions.CsvRequiredFieldEmptyException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
import ru.spcex.platform.enumeration.ReportBuilderType;
|
||||||
|
import ru.spcex.platform.enumeration.ReportKeys;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
|
|
@ -18,6 +19,7 @@ import java.io.Writer;
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
@ -43,13 +45,17 @@ public abstract class CSVReportBuilder<P, R> {
|
||||||
*
|
*
|
||||||
* @param params Параметры формирования отчета
|
* @param params Параметры формирования отчета
|
||||||
*/
|
*/
|
||||||
protected abstract String getReportFilename(P params);
|
protected String getReportFilename(P params) {
|
||||||
|
return "%s_%s".formatted(getReportKey().getKey(), dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Тип отчета по {@link ReportBuilderType}
|
* Тип отчета по {@link ReportBuilderType}
|
||||||
*/
|
*/
|
||||||
public abstract ReportBuilderType getReportType();
|
public abstract ReportBuilderType getReportType();
|
||||||
|
|
||||||
|
public abstract ReportKeys getReportKey();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Тип параметров для построения отчетов
|
* Тип параметров для построения отчетов
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@ import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
||||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
|
import ru.spcex.platform.enumeration.ReportKeys;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -21,8 +21,8 @@ public class ExecutedDealReportBuilder_INFTYPE_1 extends ExecutedDealReportBuild
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(SessionIdParam params) {
|
public ReportKeys getReportKey() {
|
||||||
return "KS_BR_PFX64_INFTYPE_1_%s".formatted(fileNameDateTimeFormatter.format(LocalDateTime.now()));
|
return ReportKeys.KS_BR_PFX64_INFTYPE_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@ import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
||||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
|
import ru.spcex.platform.enumeration.ReportKeys;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -21,8 +21,8 @@ public class ExecutedDealReportBuilder_INFTYPE_2 extends ExecutedDealReportBuild
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(SessionIdParam params) {
|
public ReportKeys getReportKey() {
|
||||||
return "KS_BR_PFX64_INFTYPE_2_%s".formatted(fileNameDateTimeFormatter.format(LocalDateTime.now()));
|
return ReportKeys.KS_BR_PFX64_INFTYPE_2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@ import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
||||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
|
import ru.spcex.platform.enumeration.ReportKeys;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -21,8 +21,8 @@ public class ExecutedDealReportBuilder_INFTYPE_3 extends ExecutedDealReportBuild
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(SessionIdParam params) {
|
public ReportKeys getReportKey() {
|
||||||
return "KS_BR_PFX64_INFTYPE_3_%s".formatted(fileNameDateTimeFormatter.format(LocalDateTime.now()));
|
return ReportKeys.KS_BR_PFX64_INFTYPE_3;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@ import org.springframework.stereotype.Component;
|
||||||
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
||||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
import ru.spcex.platform.enumeration.Allowed;
|
import ru.spcex.platform.enumeration.Allowed;
|
||||||
|
import ru.spcex.platform.enumeration.ReportKeys;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -22,8 +22,8 @@ public class ExecutedDealReportBuilder_INFTYPE_4 extends ExecutedDealReportBuild
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(SessionIdParam params) {
|
public ReportKeys getReportKey() {
|
||||||
return "KS_BR_PFX64_INFTYPE_4_%s".formatted(fileNameDateTimeFormatter.format(LocalDateTime.now()));
|
return ReportKeys.KS_BR_PFX64_INFTYPE_4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,13 @@ import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
import ru.spcex.clearing.reports.reports.bean.UnfulfilledDealReport;
|
import ru.spcex.clearing.reports.reports.bean.UnfulfilledDealReport;
|
||||||
import ru.spcex.platform.enumeration.Allowed;
|
import ru.spcex.platform.enumeration.Allowed;
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
import ru.spcex.platform.enumeration.ReportBuilderType;
|
||||||
|
import ru.spcex.platform.enumeration.ReportKeys;
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -45,13 +45,13 @@ public class UnfulfilledDealReportBuilder extends CSVReportBuilder<SessionIdPara
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(SessionIdParam params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "UNFULFILLED_DEAL_REPORT.%s".formatted(dateTimeFormatter.format(LocalDateTime.now()));
|
return ReportBuilderType.UNFULFILLED_DEAL_REPORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.UNFULFILLED_DEAL_REPORT;
|
return ReportKeys.UNFULFILLED_DEAL_REPORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,7 @@ import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.PairRegistryId;
|
import ru.spcex.clearing.reports.reports.PairRegistryId;
|
||||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepCashNettoReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepCashNettoReport;
|
||||||
import ru.spcex.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
|
||||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
|
@ -22,7 +19,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -45,13 +41,13 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(SessionIdParam params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "KS_REP_CASH_NETTO_%s".formatted(dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
return ReportBuilderType.KS_REP_CASH_NETTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.KS_REP_CASH_NETTO;
|
return ReportKeys.KS_REP_CASH_NETTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepCashRegisterSumsReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepCashRegisterSumsReport;
|
||||||
import ru.spcex.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
|
@ -21,7 +18,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -46,13 +42,13 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder<EmptyPa
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(EmptyParams params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "KS_REP_CASH_REGISTER_SUMS_%s".formatted(dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
return ReportBuilderType.KS_REP_CASH_REGISTER_SUMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.KS_REP_CASH_REGISTER_SUMS;
|
return ReportKeys.KS_REP_CASH_REGISTER_SUMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepCashRegistersReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepCashRegistersReport;
|
||||||
import ru.spcex.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
|
@ -22,7 +19,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -45,20 +41,19 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
||||||
registryCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RegistryCodeDictionary, RegistryCodeDictionary.class);
|
registryCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RegistryCodeDictionary, RegistryCodeDictionary.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<KSRepCashRegistersReport> getRows() {
|
protected List<KSRepCashRegistersReport> getRows() {
|
||||||
return rows;
|
return rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(EmptyParams params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "KS_REP_CASH_REGISTERS_%s".formatted(dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
return ReportBuilderType.KS_REP_CASH_REGISTERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.KS_REP_CASH_REGISTERS;
|
return ReportKeys.KS_REP_CASH_REGISTERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,7 @@ import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.PairRegistryId;
|
import ru.spcex.clearing.reports.reports.PairRegistryId;
|
||||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepDepoNettoReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepDepoNettoReport;
|
||||||
import ru.spcex.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
|
||||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
|
@ -22,7 +19,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -45,13 +41,13 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(SessionIdParam params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "KS_REP_DEPO_NETTO_%s".formatted(dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
return ReportBuilderType.KS_REP_DEPO_NETTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.KS_REP_DEPO_NETTO;
|
return ReportKeys.KS_REP_DEPO_NETTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepDepoRegisterQuantitiesReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepDepoRegisterQuantitiesReport;
|
||||||
import ru.spcex.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
|
@ -21,7 +18,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -46,13 +42,13 @@ public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder<E
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(EmptyParams params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "KS_REP_DEPO_REGISTER_QUANTITIES_%s".formatted(dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
return ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES;
|
return ReportKeys.KS_REP_DEPO_REGISTER_QUANTITIES;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepDepoRegistersReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepDepoRegistersReport;
|
||||||
import ru.spcex.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
|
@ -22,7 +19,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -50,13 +46,13 @@ public class KSRepDepoRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(EmptyParams params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "KS_REP_DEPO_REGISTERS_%s".formatted(dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
return ReportBuilderType.KS_REP_DEPO_REGISTERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.KS_REP_DEPO_REGISTERS;
|
return ReportKeys.KS_REP_DEPO_REGISTERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,10 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepFirmDetailsReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepFirmDetailsReport;
|
||||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.DocumentTypes;
|
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -44,13 +40,13 @@ public class KSRepFirmDetailsReportBuilder extends CSVReportBuilder<EmptyParams,
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(EmptyParams params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "KS_REP_FIRM_DETAILS_%s".formatted(dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
return ReportBuilderType.KS_REP_FIRM_DETAILS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.KS_REP_FIRM_DETAILS;
|
return ReportKeys.KS_REP_FIRM_DETAILS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -52,13 +51,13 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getReportFilename(EmptyParams params) {
|
public ReportBuilderType getReportType() {
|
||||||
return "KS_REP_TRADES_%s".formatted(dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now()));
|
return ReportBuilderType.KS_REP_TRADES;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReportBuilderType getReportType() {
|
public ReportKeys getReportKey() {
|
||||||
return ReportBuilderType.KS_REP_TRADES;
|
return ReportKeys.KS_REP_TRADES;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
import ru.spcex.platform.enumeration.ReportBuilderType;
|
||||||
|
import ru.spcex.platform.enumeration.ReportKeys;
|
||||||
import ru.spcex.platform.enumeration.ReportType;
|
import ru.spcex.platform.enumeration.ReportType;
|
||||||
import ru.spcex.platform.enumeration.Task;
|
import ru.spcex.platform.enumeration.Task;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
|
@ -206,7 +207,7 @@ public class ReportService extends QueueConsumer implements InitializingBean {
|
||||||
logUnknownProperties(userRequest);
|
logUnknownProperties(userRequest);
|
||||||
|
|
||||||
Long sessionId = userRequest.getRequestPayload().getSessionId();
|
Long sessionId = userRequest.getRequestPayload().getSessionId();
|
||||||
Map<String, ReportBuilderType> outFilenames = createReportsForTask(sessionId, reportBuildersForGREP.values());
|
Map<String, ReportKeys> outFilenames = createReportsForTask(sessionId, reportBuildersForGREP.values());
|
||||||
|
|
||||||
sendReportsToGateway(sessionId, outFilenames, ReportType.REPORT_KS_TMP.getKey());
|
sendReportsToGateway(sessionId, outFilenames, ReportType.REPORT_KS_TMP.getKey());
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -222,7 +223,7 @@ public class ReportService extends QueueConsumer implements InitializingBean {
|
||||||
logUnknownProperties(userRequest);
|
logUnknownProperties(userRequest);
|
||||||
|
|
||||||
Long sessionId = userRequest.getRequestPayload().getSessionId();
|
Long sessionId = userRequest.getRequestPayload().getSessionId();
|
||||||
Map<String, ReportBuilderType> outFilenames = createReportsForTask(sessionId, reportBuildersForGRET.values());
|
Map<String, ReportKeys> outFilenames = createReportsForTask(sessionId, reportBuildersForGRET.values());
|
||||||
|
|
||||||
sendReportsToGateway(sessionId, outFilenames, null);
|
sendReportsToGateway(sessionId, outFilenames, null);
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -238,14 +239,14 @@ public class ReportService extends QueueConsumer implements InitializingBean {
|
||||||
logUnknownProperties(userRequest);
|
logUnknownProperties(userRequest);
|
||||||
|
|
||||||
Long sessionId = userRequest.getRequestPayload().getSessionId();
|
Long sessionId = userRequest.getRequestPayload().getSessionId();
|
||||||
Map<String, ReportBuilderType> outFilenames = createReportsForTask(sessionId, reportBuildersForGREF.values());
|
Map<String, ReportKeys> outFilenames = createReportsForTask(sessionId, reportBuildersForGREF.values());
|
||||||
|
|
||||||
sendReportsToGateway(sessionId, outFilenames, "REPORT_KS_FINAL");
|
sendReportsToGateway(sessionId, outFilenames, ReportType.REPORT_KS_FINAL.getKey());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, ReportBuilderType> createReportsForTask(Long sessionId, Collection<List<CSVReportBuilder<?, ?>>> buildersForTask) {
|
private Map<String, ReportKeys> createReportsForTask(Long sessionId, Collection<List<CSVReportBuilder<?, ?>>> buildersForTask) {
|
||||||
Map<String, ReportBuilderType> outFilenames = new HashMap<>();
|
Map<String, ReportKeys> outFilenames = new HashMap<>();
|
||||||
int cntErrors = 0;
|
int cntErrors = 0;
|
||||||
for (List<CSVReportBuilder<?, ?>> builders : buildersForTask) {
|
for (List<CSVReportBuilder<?, ?>> builders : buildersForTask) {
|
||||||
for (CSVReportBuilder<?, ?> builder : builders) {
|
for (CSVReportBuilder<?, ?> builder : builders) {
|
||||||
|
|
@ -256,7 +257,7 @@ public class ReportService extends QueueConsumer implements InitializingBean {
|
||||||
cntErrors++;
|
cntErrors++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
outFilenames.put(outFile.getName(), builder.getReportType());
|
outFilenames.put(outFile.getName(), builder.getReportKey());
|
||||||
} else if (builder.getParamsClass() == SessionIdParam.class && sessionId != null) {
|
} else if (builder.getParamsClass() == SessionIdParam.class && sessionId != null) {
|
||||||
SessionIdParam sessionIdParam = new SessionIdParam();
|
SessionIdParam sessionIdParam = new SessionIdParam();
|
||||||
sessionIdParam.setSessionId(sessionId);
|
sessionIdParam.setSessionId(sessionId);
|
||||||
|
|
@ -266,7 +267,7 @@ public class ReportService extends QueueConsumer implements InitializingBean {
|
||||||
cntErrors++;
|
cntErrors++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
outFilenames.put(outFile.getName(), builder.getReportType());
|
outFilenames.put(outFile.getName(), builder.getReportKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -276,12 +277,12 @@ public class ReportService extends QueueConsumer implements InitializingBean {
|
||||||
return outFilenames;
|
return outFilenames;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendReportsToGateway(Long sessionId, Map<String, ReportBuilderType> reportsWithReportType, String type) {
|
private void sendReportsToGateway(Long sessionId, Map<String, ReportKeys> reportsWithReportType, String type) {
|
||||||
SendReportRequest sendReportRequest = new SendReportRequest();
|
SendReportRequest sendReportRequest = new SendReportRequest();
|
||||||
sendReportRequest.setSessionId(sessionId);
|
sendReportRequest.setSessionId(sessionId);
|
||||||
sendReportRequest.setType(type);
|
sendReportRequest.setType(type);
|
||||||
List<ReportPart> reports = new ArrayList<>(reportsWithReportType.size());
|
List<ReportPart> reports = new ArrayList<>(reportsWithReportType.size());
|
||||||
for (Map.Entry<String, ReportBuilderType> entry : reportsWithReportType.entrySet()) {
|
for (Map.Entry<String, ReportKeys> entry : reportsWithReportType.entrySet()) {
|
||||||
ReportPart reportPart = new ReportPart();
|
ReportPart reportPart = new ReportPart();
|
||||||
reportPart.setReportType(entry.getValue().getKey());
|
reportPart.setReportType(entry.getValue().getKey());
|
||||||
reportPart.setFileName(entry.getKey());
|
reportPart.setFileName(entry.getKey());
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ public enum ReportKeys implements IEnumKey {
|
||||||
KS_BR_PFX64_INFTYPE_2("KS_BR_PFX64_INFTYPE_2"),
|
KS_BR_PFX64_INFTYPE_2("KS_BR_PFX64_INFTYPE_2"),
|
||||||
KS_BR_PFX64_INFTYPE_3("KS_BR_PFX64_INFTYPE_3"),
|
KS_BR_PFX64_INFTYPE_3("KS_BR_PFX64_INFTYPE_3"),
|
||||||
KS_BR_PFX64_INFTYPE_4("KS_BR_PFX64_INFTYPE_4"),
|
KS_BR_PFX64_INFTYPE_4("KS_BR_PFX64_INFTYPE_4"),
|
||||||
|
UNFULFILLED_DEAL_REPORT("UNFULFILLED_DEAL_REPORT"),
|
||||||
KS_BR_PFX65_DEALS("KS_BR_PFX65_DEALS"),
|
KS_BR_PFX65_DEALS("KS_BR_PFX65_DEALS"),
|
||||||
KS_REP_CASH_REGISTERS("KS_REP_CASH_REGISTERS"),
|
KS_REP_CASH_REGISTERS("KS_REP_CASH_REGISTERS"),
|
||||||
KS_REP_CASH_REGISTER_SUMS("KS_REP_CASH_REGISTER_SUMS"),
|
KS_REP_CASH_REGISTER_SUMS("KS_REP_CASH_REGISTER_SUMS"),
|
||||||
|
|
@ -15,6 +16,7 @@ public enum ReportKeys implements IEnumKey {
|
||||||
KS_REP_TRADES("KS_REP_TRADES"),
|
KS_REP_TRADES("KS_REP_TRADES"),
|
||||||
KS_REP_CASH_NETTO("KS_REP_CASH_NETTO"),
|
KS_REP_CASH_NETTO("KS_REP_CASH_NETTO"),
|
||||||
KS_REP_DEPO_NETTO("KS_REP_DEPO_NETTO"),
|
KS_REP_DEPO_NETTO("KS_REP_DEPO_NETTO"),
|
||||||
|
KS_REP_FIRM_DETAILS("KS_REP_FIRM_DETAILS"),
|
||||||
;
|
;
|
||||||
|
|
||||||
private final String key;
|
private final String key;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue