diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java index 17e40b2f8..5c0f3368b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java @@ -114,7 +114,7 @@ public class Sdf06Executor { errorSdf07.setGenerationId(sdf07GroupId); sdf07Imdg.insert(errorSdf07); }); - sendToExporter(groupId); + sendToExporter(sdf07GroupId); return; } Collection requests = new ArrayList<>(); @@ -169,7 +169,7 @@ public class Sdf06Executor { assetOperationListRequest.setAssetOperationRequests(requests); kafkaSender.sendRequestToQueue(Consts.ASSET_OPERATION, assetOperationListRequest); } else if (sdf07WasCreated) { - sendToExporter(groupId); + sendToExporter(sdf07GroupId); } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java index 18ff2538e..595c59b07 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java @@ -18,8 +18,10 @@ import ru.clearing.classes.statics.data.statement.Statement; import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.error.ClearingErrorInternal; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.service.model.Result; import ru.spcex.clearing.service.validation.ValidationStored; @@ -86,11 +88,15 @@ public class Sdf08Executor extends AbstractExecutor { @Override public boolean isNeedToSendCommand() { - return false; + return true; } @Override public void sendCommand(KafkaSender kafkaSender, Result result) { + SwtExporterRequest swtReq = new SwtExporterRequest(); + swtReq.setType(SdfTable.SDF_09.getKey()); + swtReq.setGroupId(result.getGenerationId()); + kafkaSender.sendRequestToQueue(Consts.SWT_EXPORTER, swtReq); } Company searchCompany(String depoCode) { diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java index 53e962ffe..759bd70dc 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java @@ -13,10 +13,14 @@ import ru.spcex.platform.enumeration.SwtTable; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; -import java.io.*; +import java.io.ByteArrayOutputStream; +import java.io.OutputStream; +import java.io.PrintWriter; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.*; +import java.util.Collection; +import java.util.Objects; +import java.util.Optional; import static ru.spcex.clearing.platform.messaging.domain.Consts.JOURNAL_SERVICE; @@ -56,7 +60,7 @@ public abstract class AbstractExporterService { protected abstract SWTHeaderData getHeader(T record); - public void process() { + public void process(Long groupId) { LocalDateTime exportAt = LocalDateTime.now(); String fileName = formatFileName(typeForFileName(), sectionForFileName(), exportAt); @@ -66,7 +70,7 @@ public abstract class AbstractExporterService { byte[] data; { ByteArrayOutputStream outBuffer = new ByteArrayOutputStream(); - Collection records = selectItems(); + Collection records = selectItems(groupId); log.debug("Prepared {} record from {} to file {}", records.size(), sdfImdg.getMapName(), fileName); SWTHeaderData swtHeaderData = makeSwtHeader(records); @@ -123,8 +127,8 @@ public abstract class AbstractExporterService { } // Выборка - protected Collection selectItems() { - return sdfImdg.getAllValues(); + protected Collection selectItems(Long groupId) { + return sdfImdg.getCollectionObjectsBySQL("generationId = %d".formatted(groupId)); } // Конвертация (поля см. meta.xml) diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/LauncherCommandReceiver.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/LauncherCommandReceiver.java index f32040c21..24bb186e4 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/LauncherCommandReceiver.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/LauncherCommandReceiver.java @@ -42,7 +42,7 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi for (AbstractExporterService exporter : exporterServices) { log.debug("Export {}", exporter); try { - exporter.process(); + exporter.process(-1L); } catch (Exception e) { log.error("One of exporter has error: {}", ExceptionUtils.getStackTrace(e)); } @@ -57,7 +57,7 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi if (exporter.getType().getKey().equals(req.getType())) { log.debug("Export {}", exporter); try { - exporter.process(); + exporter.process(req.getGroupId()); } catch (Exception e) { log.error("Exporter has error: {}", ExceptionUtils.getStackTrace(e)); } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/importexport/SwtExporterRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/importexport/SwtExporterRequest.java index 4ee6c16e6..db82b97a1 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/importexport/SwtExporterRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/importexport/SwtExporterRequest.java @@ -6,6 +6,9 @@ public class SwtExporterRequest { @JsonProperty public String type; + @JsonProperty + public Long groupId; + public String getType() { return type; } @@ -13,4 +16,12 @@ public class SwtExporterRequest { public void setType(String type) { this.type = type; } + + public Long getGroupId() { + return groupId; + } + + public void setGroupId(Long groupId) { + this.groupId = groupId; + } }