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 Sdf06Executor sdf06Executor;
private final BalanceRevise balanceRevise;
private final Sdf05Sender sdf05Sender;
@Autowired
public EventsReceiver(Consumer<String, Object> kafkaQueue, Producer<String, Object> 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();
}
}

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.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<SDf05> 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<Collection<Registry>> 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());
}
}

View file

@ -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;