diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java index 3ddea924f..d768be5a7 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java @@ -24,7 +24,8 @@ public class ReportBuildersConfig { KSRepDepoRegistersReportBuilder ksRepDepoRegistersReportBuilder, KSRepDepoRegisterQuantitiesReportBuilder ksRepDepoRegisterQuantitiesReportBuilder, KSRepTradesReportBuilder ksRepTradesReportBuilder, - KSRepFirmDetailsReportBuilder ksRepFirmDetailsReportBuilder + KSRepFirmDetailsReportBuilder ksRepFirmDetailsReportBuilder, + KSSessionListReportBuilder ksSessionListReportBuilder ) { Map>> resultMap = new HashMap<>(); resultMap.put(ReportBuilderType.KS_REP_CASH_REGISTERS, List.of(ksRepCashRegistersReportBuilder)); @@ -33,6 +34,7 @@ public class ReportBuildersConfig { resultMap.put(ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES, List.of(ksRepDepoRegisterQuantitiesReportBuilder)); resultMap.put(ReportBuilderType.KS_REP_TRADES, List.of(ksRepTradesReportBuilder)); resultMap.put(ReportBuilderType.KS_REP_FIRM_DETAILS, List.of(ksRepFirmDetailsReportBuilder)); + resultMap.put(ReportBuilderType.KS_SESSION_LIST, List.of(ksSessionListReportBuilder)); return resultMap; } @@ -70,7 +72,8 @@ public class ReportBuildersConfig { KSRepTradesReportBuilder ksRepTradesReportBuilder, KSRepFirmDetailsReportBuilder ksRepFirmDetailsReportBuilder, KSRepCashNettoReportBuilder ksRepCashNettoReportBuilder, - KSRepDepoNettoReportBuilder ksRepDepoNettoReportBuilder + KSRepDepoNettoReportBuilder ksRepDepoNettoReportBuilder, + KSSessionListReportBuilder ksSessionListReportBuilder ) { Map>> resultMap = new HashMap<>(); resultMap.put(ReportBuilderType.KS_REP_CASH_REGISTERS, List.of(ksRepCashRegistersReportBuilder)); @@ -81,6 +84,7 @@ public class ReportBuildersConfig { resultMap.put(ReportBuilderType.KS_REP_FIRM_DETAILS, List.of(ksRepFirmDetailsReportBuilder)); resultMap.put(ReportBuilderType.KS_REP_CASH_NETTO, List.of(ksRepCashNettoReportBuilder)); resultMap.put(ReportBuilderType.KS_REP_DEPO_NETTO, List.of(ksRepDepoNettoReportBuilder)); + resultMap.put(ReportBuilderType.KS_SESSION_LIST, List.of(ksSessionListReportBuilder)); return resultMap; } @@ -93,7 +97,8 @@ public class ReportBuildersConfig { KSRepTradesReportBuilder ksRepTradesReportBuilder, KSRepFirmDetailsReportBuilder ksRepFirmDetailsReportBuilder, KSRepCashNettoReportBuilder ksRepCashNettoReportBuilder, - KSRepDepoNettoReportBuilder ksRepDepoNettoReportBuilder + KSRepDepoNettoReportBuilder ksRepDepoNettoReportBuilder, + KSSessionListReportBuilder ksSessionListReportBuilder ) { Map>> resultMap = new HashMap<>(); resultMap.put(ReportBuilderType.KS_REP_CASH_REGISTERS, List.of(ksRepCashRegistersReportBuilder)); @@ -104,6 +109,7 @@ public class ReportBuildersConfig { resultMap.put(ReportBuilderType.KS_REP_FIRM_DETAILS, List.of(ksRepFirmDetailsReportBuilder)); resultMap.put(ReportBuilderType.KS_REP_CASH_NETTO, List.of(ksRepCashNettoReportBuilder)); resultMap.put(ReportBuilderType.KS_REP_DEPO_NETTO, List.of(ksRepDepoNettoReportBuilder)); + resultMap.put(ReportBuilderType.KS_SESSION_LIST, List.of(ksSessionListReportBuilder)); return resultMap; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java index ed1c129c4..d505ac135 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java @@ -61,7 +61,8 @@ public class ValidationConfig { ReportBuilderType.KS_REP_DEPO_REGISTERS, ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES, ReportBuilderType.KS_REP_TRADES, - ReportBuilderType.KS_REP_FIRM_DETAILS + ReportBuilderType.KS_REP_FIRM_DETAILS, + ReportBuilderType.KS_SESSION_LIST }, ReportError.WrongFieldValue, ReportError.RequiredFieldEmpty) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSSessionListReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSSessionListReport.java new file mode 100644 index 000000000..fd5babde3 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bean/KSSessionListReport.java @@ -0,0 +1,83 @@ +package ru.spcex.clearing.reports.reports.bean; + +import com.opencsv.bean.CsvBindByName; +import com.opencsv.bean.CsvBindByPosition; +import com.opencsv.bean.CsvDate; + +import java.time.Instant; + +public class KSSessionListReport { + @CsvBindByName(column = "ID") + @CsvBindByPosition(position = 0) + private Long id; + + @CsvBindByName(column = "CREATED_AT") + @CsvBindByPosition(position = 1) + @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") + private Instant createdAt; + + @CsvBindByName(column = "UPDATED_AT") + @CsvBindByPosition(position = 2) + @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss") + private Instant updatedAt; + + @CsvBindByName(column = "SESSION_DATE") + @CsvBindByPosition(position = 3) + private String section; + + @CsvBindByName(column = "SESSION_TYPE") + @CsvBindByPosition(position = 4) + private String sessionType; + + @CsvBindByName(column = "WORKFLOW_STATUS") + @CsvBindByPosition(position = 5) + private String workflowStatus; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } + + public Instant getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Instant updatedAt) { + this.updatedAt = updatedAt; + } + + public String getSection() { + return section; + } + + public void setSection(String section) { + this.section = section; + } + + public String getSessionType() { + return sessionType; + } + + public void setSessionType(String sessionType) { + this.sessionType = sessionType; + } + + public String getWorkflowStatus() { + return workflowStatus; + } + + public void setWorkflowStatus(String workflowStatus) { + this.workflowStatus = workflowStatus; + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java index 188bedf37..625915547 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.bp; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.execution.ExecutionFond; import ru.spcex.clearing.reports.reports.SessionIdParam; @@ -13,7 +11,6 @@ import java.time.LocalDate; import java.util.Collection; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class ExecutedDealReportBuilder_INFTYPE_1 extends ExecutedDealReportBuilderCommon { public ExecutedDealReportBuilder_INFTYPE_1(ImdgProvider imdgProvider) { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java index 0faf0cf2f..176120811 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.bp; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.execution.ExecutionFond; import ru.spcex.clearing.reports.reports.SessionIdParam; @@ -13,7 +11,6 @@ import java.time.LocalDate; import java.util.Collection; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class ExecutedDealReportBuilder_INFTYPE_2 extends ExecutedDealReportBuilderCommon { public ExecutedDealReportBuilder_INFTYPE_2(ImdgProvider imdgProvider) { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java index 819c1526d..a4dd63137 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.bp; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.execution.ExecutionFond; import ru.spcex.clearing.reports.reports.SessionIdParam; @@ -13,7 +11,6 @@ import java.time.LocalDate; import java.util.Collection; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class ExecutedDealReportBuilder_INFTYPE_3 extends ExecutedDealReportBuilderCommon { public ExecutedDealReportBuilder_INFTYPE_3(ImdgProvider imdgProvider) { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_4.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_4.java index 67f36cc29..e5f58fee1 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_4.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_4.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.bp; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.execution.ExecutionFond; import ru.spcex.clearing.reports.reports.SessionIdParam; @@ -14,7 +12,6 @@ import java.time.LocalDate; import java.util.Collection; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class ExecutedDealReportBuilder_INFTYPE_4 extends ExecutedDealReportBuilderCommon { public ExecutedDealReportBuilder_INFTYPE_4(ImdgProvider imdgProvider) { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReportBuilder.java index 90a58a1ae..754c4e56d 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReportBuilder.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.bp; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.execution.ExecutionFond; @@ -25,7 +23,6 @@ import java.util.List; import java.util.Map; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class UnfulfilledDealReportBuilder extends CSVReportBuilder { private final Imdg executionFondImdg; private final Imdg companyImdg; 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 6ea25c7d5..10a50bf48 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 @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.ks; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.registry.Registry; @@ -23,7 +21,6 @@ import java.util.*; import java.util.stream.Collectors; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class KSRepCashNettoReportBuilder extends CSVReportBuilder { private final Imdg registryImdg; private final Imdg sessionImdg; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilder.java index a1ce56c2e..73fac3484 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilder.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.ks; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.Registry; @@ -24,7 +22,6 @@ import java.util.Collection; import java.util.List; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder { private final Imdg registryImdg; private final Imdg companyImdg; 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 4c2405137..3f40c5a71 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 @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.ks; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.Registry; @@ -26,7 +24,6 @@ import java.util.List; import java.util.Map; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class KSRepCashRegistersReportBuilder extends CSVReportBuilder { private final Imdg registryImdg; private final Imdg companyImdg; 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 761ec11be..2cb1b6803 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 @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.ks; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.registry.Registry; @@ -23,7 +21,6 @@ import java.util.*; import java.util.stream.Collectors; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class KSRepDepoNettoReportBuilder extends CSVReportBuilder { private final Imdg registryImdg; private final Imdg sessionImdg; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegisterQuantitiesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegisterQuantitiesReportBuilder.java index 0d479b75d..e3133d21a 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegisterQuantitiesReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegisterQuantitiesReportBuilder.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.ks; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.Registry; @@ -24,7 +22,6 @@ import java.util.Collection; import java.util.List; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder { private final Imdg registryImdg; private final Imdg companyImdg; 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 af361854e..cba01bc6a 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 @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.ks; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.Registry; @@ -26,7 +24,6 @@ import java.util.List; import java.util.Map; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class KSRepDepoRegistersReportBuilder extends CSVReportBuilder { private final Imdg registryImdg; private final Imdg companyImdg; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepFirmDetailsReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepFirmDetailsReportBuilder.java index 8f650c31b..db55c5854 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepFirmDetailsReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepFirmDetailsReportBuilder.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.ks; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; @@ -20,7 +18,6 @@ import java.util.List; import java.util.Map; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class KSRepFirmDetailsReportBuilder extends CSVReportBuilder { private final Imdg companyImdg; private final Imdg companySymbolsImdg; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepTradesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepTradesReportBuilder.java index 17bb84b8e..eb64ecb38 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepTradesReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepTradesReportBuilder.java @@ -1,7 +1,5 @@ package ru.spcex.clearing.reports.reports.ks; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.execution.ExecutionCommon; @@ -29,7 +27,6 @@ import java.util.Map; import java.util.stream.Collectors; @Component -@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) public class KSRepTradesReportBuilder extends CSVReportBuilder { private final Imdg executionDepositImdg; private final Imdg executionFondImdg; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSSessionListReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSSessionListReportBuilder.java new file mode 100644 index 000000000..0cdd2ee04 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSSessionListReportBuilder.java @@ -0,0 +1,75 @@ +package ru.spcex.clearing.reports.reports.ks; + +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.misc.Session; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.reports.reports.CSVReportBuilder; +import ru.spcex.clearing.reports.reports.EmptyParams; +import ru.spcex.clearing.reports.reports.bean.KSSessionListReport; +import ru.spcex.platform.enumeration.ReportBuilderType; +import ru.spcex.platform.enumeration.ReportKeys; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +@Component +public class KSSessionListReportBuilder extends CSVReportBuilder { + private final Imdg sessionImdg; + + private List rows = null; + + public KSSessionListReportBuilder(ImdgProvider imdgProvider) { + sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + } + + @Override + protected List getRows() { + return rows; + } + + @Override + public ReportBuilderType getReportType() { + return ReportBuilderType.KS_REP_FIRM_DETAILS; + } + + @Override + public ReportKeys getReportKey() { + return ReportKeys.KS_SESSION_LIST; + } + + @Override + public Class getParamsClass() { + return EmptyParams.class; + } + + @Override + public Class getReportClass() { + return KSSessionListReport.class; + } + + @Override + protected void collect(EmptyParams params) { + Collection sessions = sessionImdg.getCollectionObjectsByFieldValues(Map.of("clearingDate", LocalDate.now())); + rows = new ArrayList<>(sessions.size()); + for (Session session : sessions) { + try { + KSSessionListReport ksSessionListReport = new KSSessionListReport(); + ksSessionListReport.setId(session.getId()); + ksSessionListReport.setCreatedAt(session.getCreated()); + ksSessionListReport.setUpdatedAt(session.getUpdated()); + ksSessionListReport.setSection(session.getSection()); + ksSessionListReport.setSessionType(session.getSessionType()); + ksSessionListReport.setWorkflowStatus(session.getWorkflowStatus()); + + rows.add(ksSessionListReport); + } catch (Throwable e) { + log.error("Can't create report row for session (id = %d), skipped".formatted(session.getId()), e); + } + } + } +} 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 8a77fbcd4..8782c42d0 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 @@ -546,6 +546,52 @@ public class ReportServiceTest_KS { } + @Test + @Order(9) + public void createReportTest_KSListSessionReport() throws IOException, CsvValidationException { + clearTestDir(); + + Session session_1 = new Session(); + session_1.setCreated(Instant.ofEpochSecond(1777777777L)); + session_1.setUpdated(Instant.ofEpochSecond(2777777777L)); + session_1.setSection(Section.MKR.getKey()); + session_1.setSessionType(SessionType.FINL.getKey()); + session_1.setWorkflowStatus(WorkflowStatus.Active.getKey()); + session_1.setClearingDate(LocalDate.now()); + sessionImdg.insert(session_1); + + Session session_2 = new Session(); + session_2.setCreated(Instant.ofEpochSecond(3777777777L)); + session_2.setUpdated(Instant.ofEpochSecond(4777777777L)); + session_2.setSection(Section.FOND.getKey()); + session_2.setSessionType(SessionType.IPO0.getKey()); + session_2.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); + session_2.setClearingDate(LocalDate.now()); + sessionImdg.insert(session_2); + + ReportRequest reportRequest = new ReportRequest(); + reportRequest.setReportId(ReportBuilderType.KS_SESSION_LIST.getKey()); + + String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); + + TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), + Consts.CREATE_REPORT, + reportRequestCnt++, + 0, + jsonString); + + TestUtils.waitingSendAndCheckRecord(0L, producer); + + File outFile = outFolder.listFiles()[0]; + File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_SESSION_LIST_expected.csv").getFile()); + compareCSVFiles(expectedFile, outFile, List.of("ID")); + + sessionImdg.delete(session_1); + sessionImdg.delete(session_2); + + } + + private void compareCSVFiles(File expectedFile, File actualFile, List columnsForSkip) throws IOException, CsvValidationException { if (columnsForSkip == null) columnsForSkip = Collections.emptyList(); CSVParser csvParser = new CSVParserBuilder().withSeparator(',').withQuoteChar('\"').build(); diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_SESSION_LIST_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_SESSION_LIST_expected.csv new file mode 100644 index 000000000..374a8343d --- /dev/null +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_SESSION_LIST_expected.csv @@ -0,0 +1,3 @@ +"ID","CREATED_AT","UPDATED_AT","SESSION_DATE","SESSION_TYPE","WORKFLOW_STATUS" +"2","03.05.2026T03:09:37","09.01.2058T04:56:17","MKR","FINL","ACTV" +"3","17.09.2089T06:42:57","27.05.2121T08:29:37","FOND","IPO0","BLKD" diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java index 66ba08544..b3ec76fa4 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java @@ -17,6 +17,7 @@ public enum ReportBuilderType implements IEnumKey { KS_REP_CASH_NETTO("ks_rep_cash_netto"), KS_REP_DEPO_NETTO("ks_rep_depo_netto"), KS_REP_FIRM_DETAILS("ks_rep_firm_details"), + KS_SESSION_LIST("ks_session_list"), ; private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportKeys.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportKeys.java index 188602013..9d94028a4 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportKeys.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportKeys.java @@ -17,6 +17,7 @@ public enum ReportKeys implements IEnumKey { KS_REP_CASH_NETTO("KS_REP_CASH_NETTO"), KS_REP_DEPO_NETTO("KS_REP_DEPO_NETTO"), KS_REP_FIRM_DETAILS("KS_REP_FIRM_DETAILS"), + KS_SESSION_LIST("KS_SESSION_LIST"), ; private final String key;