http://jira.mfd.msk:8088/browse/CLS-396 создание SDF05 по команде из кафки с pr="9"

This commit is contained in:
ialbert 2023-07-04 16:40:30 +03:00
parent 5b3fedfc0c
commit be55af4c5f
4 changed files with 67 additions and 29 deletions

View file

@ -38,6 +38,7 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean {
private final SessionManager sessionManager; private final SessionManager sessionManager;
private final Sdf06Executor sdf06Executor; private final Sdf06Executor sdf06Executor;
private final BalanceRevise balanceRevise; private final BalanceRevise balanceRevise;
private final Sdf05Sender sdf05Sender;
@Autowired @Autowired
public EventsReceiver(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaResponseQueue, public EventsReceiver(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaResponseQueue,
@ -47,7 +48,7 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean {
SecondaryAuctionT0Session secondaryAuctionT0Session, SecondaryAuctionT0Session secondaryAuctionT0Session,
PrimaryAuctionB0Session primaryAuctionB0Session, PrimaryAuctionT0Session primaryAuctionT0Session, IntermediateMkrSession intermediateMkrSession, FinalMkrSession finalMkrSession, ReturnDepositSession returnDepositSession, SessionManager sessionManager, PrimaryAuctionB0Session primaryAuctionB0Session, PrimaryAuctionT0Session primaryAuctionT0Session, IntermediateMkrSession intermediateMkrSession, FinalMkrSession finalMkrSession, ReturnDepositSession returnDepositSession, SessionManager sessionManager,
Sdf06Executor sdf06Executor, Sdf06Executor sdf06Executor,
BalanceRevise balanceRevise) { BalanceRevise balanceRevise, Sdf05Sender sdf05Sender) {
super(kafkaQueue, kafkaResponseQueue); super(kafkaQueue, kafkaResponseQueue);
this.clearingService = clearingService; this.clearingService = clearingService;
this.registryService = registryService; this.registryService = registryService;
@ -61,6 +62,7 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean {
this.sessionManager = sessionManager; this.sessionManager = sessionManager;
this.sdf06Executor = sdf06Executor; this.sdf06Executor = sdf06Executor;
this.balanceRevise = balanceRevise; this.balanceRevise = balanceRevise;
this.sdf05Sender = sdf05Sender;
} }
@Override @Override
@ -126,6 +128,10 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean {
balanceRevise.submit(new ru.spcex.clearing.session.stage.Task<>(TaskType.StartRevise, null)); balanceRevise.submit(new ru.spcex.clearing.session.stage.Task<>(TaskType.StartRevise, null));
}) })
.forDestination(Task.getVerification.topic(), callbacks::put); .forDestination(Task.getVerification.topic(), callbacks::put);
callback(LauncherCommandRequest.class)
.setConsumer(task -> sdf05Sender.sendSdf05("9"))
.forDestination(Task.sdf05WithCode9Final.topic(), callbacks::put);
init(); init();
} }
} }

View file

@ -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<SDf05> 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());
}
}

View file

@ -10,10 +10,10 @@ import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.sdf.SDf05; import ru.clearing.classes.statics.data.sdf.SDf05;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts; 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.ReportRequestWithRegistryId;
import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; 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.ISessionStage;
import ru.spcex.clearing.session.stage.StageResult; import ru.spcex.clearing.session.stage.StageResult;
import ru.spcex.clearing.session.stage.Task; 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.EnumMessage;
import ru.spcex.platform.utils.enumeration.IMessageResolver; 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 java.util.Collection;
import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError; import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError;
@ -47,14 +42,16 @@ public class FinishingSession implements ISessionStage {
private final Imdg<SDf05> sDf05Imdg; private final Imdg<SDf05> sDf05Imdg;
private final KafkaSender kafkaSender; private final KafkaSender kafkaSender;
private final IMessageResolver msgResolver; private final IMessageResolver msgResolver;
private final Sdf05Sender sdf05Sender;
@Autowired @Autowired
public FinishingSession(ImdgProvider imdgProvider, KafkaSender kafkaSender, IMessageResolver msgResolver) { public FinishingSession(ImdgProvider imdgProvider, KafkaSender kafkaSender, IMessageResolver msgResolver, Sdf05Sender sdf05Sender) {
this.imdgProvider = imdgProvider; this.imdgProvider = imdgProvider;
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
this.sDf05Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf05, SDf05.class); this.sDf05Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf05, SDf05.class);
this.kafkaSender = kafkaSender; this.kafkaSender = kafkaSender;
this.msgResolver = msgResolver; this.msgResolver = msgResolver;
this.sdf05Sender = sdf05Sender;
} }
@Override @Override
@ -91,7 +88,7 @@ public class FinishingSession implements ISessionStage {
return sResult; return sResult;
} }
} }
sendSdf05(); sdf05Sender.sendSdf05("3");
StageResult<Collection<Registry>> res = new StageResult<>(null, true); StageResult<Collection<Registry>> res = new StageResult<>(null, true);
return res; return res;
} }
@ -136,24 +133,4 @@ public class FinishingSession implements ISessionStage {
log.trace("Selected {} registry's by sql: {}", result.size(), condition); log.trace("Selected {} registry's by sql: {}", result.size(), condition);
return result; 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());
}
} }

View file

@ -49,6 +49,7 @@ public enum Task implements IEnumKey {
loadParty_LOCM("LOCM"), // Загрузка участников loadParty_LOCM("LOCM"), // Загрузка участников
loadIssue_LOSC("LOSC"), // Загрузка инструментов loadIssue_LOSC("LOSC"), // Загрузка инструментов
dbfExport_OUTV("OUTV"), // для dbf-exporter сообщение на создание файла ДФ-54 dbfExport_OUTV("OUTV"), // для dbf-exporter сообщение на создание файла ДФ-54
sdf05WithCode9Final("FDFF"), //Формирование ДФ-05 с кодом 9 (финальный)
; ;
private final String key; private final String key;