From e50a4eb33a7a97ebd2a56983e6e7d4e861f67168 Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 16 Oct 2024 11:31:58 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-783 new settings --- .../exporter/logic/data/ResultContainer.java | 13 +++++++++---- .../logic/data/enums/FilenameTemplate.java | 17 ++++++----------- .../exporter/logic/stages/PrepareDBFFile.java | 1 - .../dbf/exporter/services/CommandService.java | 17 ++++++++++------- .../src/main/resources/application.properties | 2 ++ .../logic/data/enums/FilenameTemplateTest.java | 14 ++++++-------- 6 files changed, 33 insertions(+), 31 deletions(-) diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/ResultContainer.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/ResultContainer.java index 14f144e2f..0ead1331a 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/ResultContainer.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/ResultContainer.java @@ -1,11 +1,10 @@ package ru.spcex.clearing.dbf.exporter.logic.data; -import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult; -import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table; - import java.io.File; import java.time.LocalDateTime; import java.util.UUID; +import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult; +import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table; /** * Контейнер для передачи результата между стадиями @@ -19,13 +18,15 @@ public class ResultContainer { private StageResult lastStageResult; private LocalDateTime registrationDateTime; private String memberCode; + private String section; protected ResultContainer() {} - public static ResultContainer createNewTask(Table tableForExport) { + public static ResultContainer createNewTask(Table tableForExport, String section) { ResultContainer container = new ResultContainer(); container.tableForExport = tableForExport; container.uuid = UUID.randomUUID(); + container.section = section; return container; } @@ -92,4 +93,8 @@ public class ResultContainer { public void setMemberCode(String memberCode) { this.memberCode = memberCode; } + + public String getSection() { + return section; + } } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplate.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplate.java index 02164284c..7c9ec86f1 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplate.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplate.java @@ -1,19 +1,14 @@ package ru.spcex.clearing.dbf.exporter.logic.data.enums; +import java.io.File; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; +import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.integration.sftp.session.SftpFileInfo; import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer; - -import java.io.File; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; - -import static ru.spcex.clearing.dbf.exporter.logic.stages.PrepareDBFFile.SECTION; import static ru.spcex.clearing.dbf.exporter.logic.stages.PrepareDBFFile.outDir; public enum FilenameTemplate { @@ -66,7 +61,7 @@ public enum FilenameTemplate { result.append(File.separator); result.append(resultContainer.getTableForExport().getFilePrefix().toUpperCase(Locale.ROOT)); result.append('_'); - result.append(SECTION); + result.append(resultContainer.getSection()); return result; } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/PrepareDBFFile.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/PrepareDBFFile.java index c38ddd3f7..6c6183766 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/PrepareDBFFile.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/PrepareDBFFile.java @@ -26,7 +26,6 @@ import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table; */ @Component public class PrepareDBFFile extends Stage implements InitializingBean { - public static final String SECTION = "S"; private final ExportDBFServiceSettings settings; public static String outDir; private final SFTPConfig.DbfGateway gateway; diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/CommandService.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/CommandService.java index d1a7c0bbe..5c851a027 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/CommandService.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/CommandService.java @@ -1,9 +1,12 @@ package ru.spcex.clearing.dbf.exporter.services; +import java.util.Arrays; +import java.util.Optional; import org.apache.kafka.clients.consumer.Consumer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import ru.spcex.clearing.dbf.exporter.logic.Processor; import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer; @@ -17,22 +20,22 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.platform.enumeration.Task; import ru.spcex.platform.imdg.api.ImdgProvider; -import java.util.Arrays; -import java.util.Optional; - @Service public class CommandService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); private final ImdgProvider imdgProvider; private final Processor processor; + private final String section; public CommandService(Consumer kafkaQueue, ImdgProvider imdgProvider, - Processor processor) { + Processor processor, + @Value("${export-dbf-service.section:S}") String section) { super(kafkaQueue); this.imdgProvider = imdgProvider; this.processor = processor; + this.section = section; } @Override @@ -79,7 +82,7 @@ public class CommandService extends QueueConsumer implements InitializingBean { if (tableForExport.isEmpty()) { throw new IllegalStateException(String.format("Unsupported table prefix: %s", request.getNameOfTable())); } - ResultContainer resultContainer = ResultContainer.createNewTask(tableForExport.get()); + ResultContainer resultContainer = ResultContainer.createNewTask(tableForExport.get(), section); resultContainer.setGroupId(request.getSdfGroupId()); resultContainer.setSourceName(request.getFileName()); processor.process(resultContainer); @@ -87,7 +90,7 @@ public class CommandService extends QueueConsumer implements InitializingBean { private void processSpecial(Table table, BaseRequest systemRequest) { SdfClearingRequest request = systemRequest.getRequestPayload(); - ResultContainer resultContainer = ResultContainer.createNewTask(table); + ResultContainer resultContainer = ResultContainer.createNewTask(table, section); resultContainer.setGroupId(request.getGroupId()); resultContainer.setSourceName(null); processor.process(resultContainer); @@ -96,7 +99,7 @@ public class CommandService extends QueueConsumer implements InitializingBean { private void processByLauncher(Table table, BaseRequest systemRequest) { LauncherCommandRequest request = systemRequest.getRequestPayload(); log.info("RequestId={}, LauncherCommandRequest task={}. Table {}", systemRequest.getId(), request.getTaskName(), table); - ResultContainer resultContainer = ResultContainer.createNewTask(table); + ResultContainer resultContainer = ResultContainer.createNewTask(table, section); resultContainer.setGroupId(null); resultContainer.setSourceName(null); processor.process(resultContainer); diff --git a/clearing-parent/dbf-exporter/src/main/resources/application.properties b/clearing-parent/dbf-exporter/src/main/resources/application.properties index 1f8e20723..400680e04 100644 --- a/clearing-parent/dbf-exporter/src/main/resources/application.properties +++ b/clearing-parent/dbf-exporter/src/main/resources/application.properties @@ -30,3 +30,5 @@ export-dbf-service.kafka-producer.retries=0 export-dbf-service.kafka-producer.batch-size=16384 export-dbf-service.kafka-producer.linger-ms=1 export-dbf-service.kafka-producer.buffer-memory=33554432 + +export-dbf-service.section=S \ No newline at end of file diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplateTest.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplateTest.java index f560f5c11..9baa7e5e0 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplateTest.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplateTest.java @@ -1,18 +1,16 @@ package ru.spcex.clearing.dbf.exporter.logic.data.enums; -import com.jcraft.jsch.ChannelSftp.LsEntry; -import org.junit.jupiter.api.Test; -import org.springframework.integration.sftp.session.SftpFileInfo; -import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer; -import ru.spcex.clearing.dbf.exporter.logic.stages.PrepareDBFFile; - import java.io.File; import java.time.LocalDateTime; import java.util.List; - +import com.jcraft.jsch.ChannelSftp.LsEntry; import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; import static org.mockito.Mockito.*; +import org.springframework.integration.sftp.session.SftpFileInfo; +import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer; import static ru.spcex.clearing.dbf.exporter.logic.data.enums.FilenameTemplate.df_section_sameName; +import ru.spcex.clearing.dbf.exporter.logic.stages.PrepareDBFFile; class FilenameTemplateTest { @@ -38,7 +36,7 @@ class FilenameTemplateTest { SftpFileInfo sftpFileInfo = spy(new SftpFileInfo(lsEntry)); doReturn(false).when(sftpFileInfo).isDirectory(); List files = List.of(sftpFileInfo); - ResultContainer resultContainer = ResultContainer.createNewTask(Table.S_DF02); + ResultContainer resultContainer = ResultContainer.createNewTask(Table.S_DF02, "S"); resultContainer.setGroupId(10L); resultContainer.setSourceName("DF-01_S_PRC1807230915_1.dbf"); PrepareDBFFile.outDir="TEST_DIR";