diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/SDFProcessService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/SDFProcessService.java index 12213ffab..a42ac96c2 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/SDFProcessService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/SDFProcessService.java @@ -20,10 +20,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import java.time.Instant; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; @Service public class SDFProcessService { @@ -70,6 +67,7 @@ public class SDFProcessService { ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); boolean txOk = false; imdgTransaction.beginTransaction(); + HashSet fileNames = new HashSet<>(); try { // 2. обновление данных, в транзакции Imdg sdf53Imdg = imdgTransaction.getImdg(IMDGDistributedNames.Map_SDf53, SDf53.class); @@ -77,6 +75,7 @@ public class SDFProcessService { for (Triple item : toProcessSDF53) { SDf53 sDf53 = createBy(item.getLeft(), item.getRight(), now, generationId); sdf53Imdg.insert(sDf53); + fileNames.add(item.getLeft().getFileName()); } txOk = true; @@ -89,8 +88,12 @@ public class SDFProcessService { } } - log.info("Send export command for SDF53 generationId={}", generationId); - messageStatementToExport53(generationId); + if (fileNames.size() > 1) + log.warn("generationId={}, too many different file names in S_DF52: {}", generationId, fileNames); + String fileNameSingle = fileNames.stream().filter(Objects::nonNull).findAny().orElse(null); + log.info("Send export command for SDF53 generationId={} with source file name {}", + generationId, (fileNameSingle == null ? null : "\"" + fileNameSingle + "\"")); + messageStatementToExport53(generationId, fileNameSingle); } SDf53 createBy(SDf52 sdf52, String result, Instant now, Long newGenerationId) { @@ -130,12 +133,12 @@ public class SDFProcessService { } - void messageStatementToExport53(Long groupId) { + void messageStatementToExport53(Long groupId, String fileName) { final String destination = Consts.EXPORT_PROCESS; // dbf-exporter ExportToFileRequest request = new ExportToFileRequest(); request.setNameOfTable("DF-53"); // SdfTable.SDF_53 request.setSdfGroupId(groupId); - request.setFileName(null); + request.setFileName(fileName); Long msgId = kafkaSender.sendRequestToQueue(destination, request); log.debug("Send ExportToFileRequest({}, {}) message id={} to kafka \"{}\"", groupId, request.getNameOfTable(), msgId, destination);