This commit is contained in:
akulikov 2023-07-07 19:45:50 +03:00
parent 705b24910d
commit a4f2da37d4
17 changed files with 77 additions and 104 deletions

View file

@ -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;

View file

@ -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();
/** /**
* Тип параметров для построения отчетов * Тип параметров для построения отчетов
*/ */

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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());

View file

@ -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;