diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java index ef695401e..89a3a644d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java @@ -38,6 +38,7 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { private final SessionManager sessionManager; private final Sdf06Executor sdf06Executor; private final BalanceRevise balanceRevise; + private final Sdf05Sender sdf05Sender; @Autowired public EventsReceiver(Consumer kafkaQueue, Producer kafkaResponseQueue, @@ -47,7 +48,7 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { SecondaryAuctionT0Session secondaryAuctionT0Session, PrimaryAuctionB0Session primaryAuctionB0Session, PrimaryAuctionT0Session primaryAuctionT0Session, IntermediateMkrSession intermediateMkrSession, FinalMkrSession finalMkrSession, ReturnDepositSession returnDepositSession, SessionManager sessionManager, Sdf06Executor sdf06Executor, - BalanceRevise balanceRevise) { + BalanceRevise balanceRevise, Sdf05Sender sdf05Sender) { super(kafkaQueue, kafkaResponseQueue); this.clearingService = clearingService; this.registryService = registryService; @@ -61,6 +62,7 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { this.sessionManager = sessionManager; this.sdf06Executor = sdf06Executor; this.balanceRevise = balanceRevise; + this.sdf05Sender = sdf05Sender; } @Override @@ -126,6 +128,10 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { balanceRevise.submit(new ru.spcex.clearing.session.stage.Task<>(TaskType.StartRevise, null)); }) .forDestination(Task.getVerification.topic(), callbacks::put); + + callback(LauncherCommandRequest.class) + .setConsumer(task -> sdf05Sender.sendSdf05("9")) + .forDestination(Task.sdf05WithCode9Final.topic(), callbacks::put); init(); } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf05Sender.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf05Sender.java new file mode 100644 index 000000000..3aee4d991 --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf05Sender.java @@ -0,0 +1,54 @@ +package ru.spcex.clearing.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.sdf.SDf05; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.balance.ExportToFileRequest; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgId; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + +@Component +public class Sdf05Sender { + private final ImdgId idGenerator; + private final Imdg sDf05Imdg; + private final KafkaSender kafkaSender; + private static DateTimeFormatter tmTimeFormatter = DateTimeFormatter.ofPattern("hh:mm:ss"); + private final Logger log = LoggerFactory.getLogger(getClass()); + + @Autowired + public Sdf05Sender(ImdgProvider imdgProvider, KafkaSender kafkaSender) { + this.idGenerator = imdgProvider.getImdgIdGenerator(); + this.sDf05Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf05, SDf05.class); + this.kafkaSender = kafkaSender; + } + + public void sendSdf05(String pr) { + SDf05 sdf05 = new SDf05(); + sdf05.setId(idGenerator.nextId()); + sdf05.setTp(BigDecimal.valueOf(753)); + sdf05.setDt(LocalDate.now()); + sdf05.setTm(LocalTime.now().format(tmTimeFormatter)); + sdf05.setPr(pr); + sdf05.setGenerationTime(Instant.now()); + sdf05.setGenerationId(idGenerator.nextId()); + sDf05Imdg.insert(sdf05); + + ExportToFileRequest exportRequest = new ExportToFileRequest(); + exportRequest.setSdfGroupId(sdf05.getGenerationId()); + exportRequest.setNameOfTable("DF-05"); + kafkaSender.sendRequestToQueue(Consts.EXPORT_PROCESS, exportRequest); + log.info("created sdf05.id {}, sent request to export", sdf05.getId()); + } +} diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FinishingSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FinishingSession.java index 26e433093..18165aad7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FinishingSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FinishingSession.java @@ -10,10 +10,10 @@ import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.sdf.SDf05; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.balance.ExportToFileRequest; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithRegistryId; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.service.Sdf05Sender; import ru.spcex.clearing.session.stage.ISessionStage; import ru.spcex.clearing.session.stage.StageResult; import ru.spcex.clearing.session.stage.Task; @@ -28,11 +28,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; -import java.time.LocalTime; -import java.time.format.DateTimeFormatter; import java.util.Collection; import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError; @@ -47,14 +42,16 @@ public class FinishingSession implements ISessionStage { private final Imdg sDf05Imdg; private final KafkaSender kafkaSender; private final IMessageResolver msgResolver; + private final Sdf05Sender sdf05Sender; @Autowired - public FinishingSession(ImdgProvider imdgProvider, KafkaSender kafkaSender, IMessageResolver msgResolver) { + public FinishingSession(ImdgProvider imdgProvider, KafkaSender kafkaSender, IMessageResolver msgResolver, Sdf05Sender sdf05Sender) { this.imdgProvider = imdgProvider; this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); this.sDf05Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf05, SDf05.class); this.kafkaSender = kafkaSender; this.msgResolver = msgResolver; + this.sdf05Sender = sdf05Sender; } @Override @@ -91,7 +88,7 @@ public class FinishingSession implements ISessionStage { return sResult; } } - sendSdf05(); + sdf05Sender.sendSdf05("3"); StageResult> res = new StageResult<>(null, true); return res; } @@ -136,24 +133,4 @@ public class FinishingSession implements ISessionStage { log.trace("Selected {} registry's by sql: {}", result.size(), condition); return result; } - - - private static DateTimeFormatter tmTimeFormatter = DateTimeFormatter.ofPattern("hh:mm:ss"); - private void sendSdf05() { - SDf05 sdf05 = new SDf05(); - sdf05.setId(imdgProvider.getImdgIdGenerator().nextId()); - sdf05.setTp(BigDecimal.valueOf(753)); - sdf05.setDt(LocalDate.now()); - sdf05.setTm(LocalTime.now().format(tmTimeFormatter)); - sdf05.setPr("3"); - sdf05.setGenerationTime(Instant.now()); - sdf05.setGenerationId(imdgProvider.getImdgIdGenerator().nextId()); - sDf05Imdg.insert(sdf05); - - ExportToFileRequest exportRequest = new ExportToFileRequest(); - exportRequest.setSdfGroupId(sdf05.getGenerationId()); - exportRequest.setNameOfTable("DF-05"); - kafkaSender.sendRequestToQueue(Consts.EXPORT_PROCESS, exportRequest); - log.info("created sdf05.id {}, sent request to export", sdf05.getId()); - } } diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java index 28820fe8c..46efc5d7f 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java @@ -49,6 +49,7 @@ public enum Task implements IEnumKey { loadParty_LOCM("LOCM"), // Загрузка участников loadIssue_LOSC("LOSC"), // Загрузка инструментов dbfExport_OUTV("OUTV"), // для dbf-exporter сообщение на создание файла ДФ-54 + sdf05WithCode9Final("FDFF"), //Формирование ДФ-05 с кодом 9 (финальный) ; private final String key;