diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf14Sender.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf14Sender.java new file mode 100644 index 000000000..e46a44823 --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf14Sender.java @@ -0,0 +1,50 @@ +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.SDf14; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.platform.enumeration.SdfResult; +import ru.spcex.platform.enumeration.SwtTable; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgId; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import java.time.Instant; +import java.time.format.DateTimeFormatter; + +@Component +public class Sdf14Sender { + private final ImdgId idGenerator; + private final Imdg sDf14Imdg; + private final KafkaSender kafkaSender; + private static DateTimeFormatter tmTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss"); + private final Logger log = LoggerFactory.getLogger(getClass()); + + @Autowired + public Sdf14Sender(ImdgProvider imdgProvider, KafkaSender kafkaSender) { + this.idGenerator = imdgProvider.getImdgIdGenerator(); + this.sDf14Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf14, SDf14.class); + this.kafkaSender = kafkaSender; + } + + public void sendSdf14(Long sessionId) { + SDf14 sDf14 = new SDf14(); + sDf14.setId(idGenerator.nextId()); + sDf14.setResult(SdfResult.OK.getKey()); + sDf14.setGenerationTime(Instant.now()); + sDf14.setGenerationId(idGenerator.nextId()); + + SwtExporterRequest swtReq = new SwtExporterRequest(); + swtReq.setGroupId(sDf14.getGenerationId()); + swtReq.setType(SwtTable.SDF_14.getKey()); + swtReq.setSessionId(sessionId); + kafkaSender.sendRequestToQueue(Consts.SWT_EXPORTER, swtReq); + log.info("created sdf14.id {}, sent request to export", sDf14.getId()); + } +} diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java index 1aaeddc14..2e92d441e 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java @@ -298,7 +298,7 @@ public class Sdf01Executor extends AbstractExecutor { sDf02.setInSDfId(sdf01.getId()); sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationTime(Instant.now()); - sDf02.setResult("OK"); + sDf02.setResult(SdfResult.OK.getKey()); return sDf02; } 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 00d4940ce..9b18b0a2b 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 @@ -300,7 +300,7 @@ public class Sdf08Executor extends AbstractExecutor { sDf09.setClientName(sdf08.getClientName()); sDf09.setGenerationId(generationIdForGroup); sDf09.setGenerationTime(Instant.now()); - sDf09.setResult("OK"); + sDf09.setResult(SdfResult.OK.getKey()); return sDf09; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf10Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf10Executor.java index f7ed880e2..397734da4 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf10Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf10Executor.java @@ -103,7 +103,7 @@ public class Sdf10Executor { for (SDf10 sdf10 : sdfs) { SDf11 sdf11 = createSdf11(sdf10, now); sdf11.setGenerationId(sdf11GroupId); - sdf11.setResult("OK"); + sdf11.setResult(SdfResult.OK.getKey()); sdf11Imdg.insert(sdf11); log.debug("sdf10.id={} created sdf11.id={}", sdf10.getId(), sdf11.getId()); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java index 98ad5f1b8..fe67416e2 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java @@ -94,6 +94,7 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali dealsPrepare.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0]))); inclusionObligations.setSessionType(sessionType()); inspectionObligations.setSection(section()); + finishingSession.setSection(section()); imdgProvider.waitAvailable(); initSessionIfPresent(); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java index efd9df20a..b8ce4e012 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java @@ -95,6 +95,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali dealsPrepare.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0]))); inclusionObligations.setSessionType(sessionType()); inspectionObligations.setSection(section()); + finishingSession.setSection(section()); imdgProvider.waitAvailable(); initSessionIfPresent(); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java index 0c3f093a2..9cb0d0d8b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java @@ -95,6 +95,7 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali dealsPrepare.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0]))); inclusionObligations.setSessionType(sessionType()); inspectionObligations.setSection(section()); + finishingSession.setSection(section()); imdgProvider.waitAvailable(); initSessionIfPresent(); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java index b6a198499..624b63913 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java @@ -91,6 +91,7 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia dealsPrepare.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0]))); inclusionObligations.setSessionType(sessionType()); inspectionObligations.setSection(section()); + finishingSession.setSection(section()); imdgProvider.waitAvailable(); initSessionIfPresent(); } 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 18e878653..9ff28c253 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 @@ -14,12 +14,14 @@ import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWith 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.service.Sdf14Sender; import ru.spcex.clearing.session.stage.ISessionStage; import ru.spcex.clearing.session.stage.StageResult; import ru.spcex.clearing.session.stage.Task; import ru.spcex.clearing.session.stage.task.FinishingSessionPayload; import ru.spcex.platform.enumeration.RegistryDesignation; import ru.spcex.platform.enumeration.RegistryTradingParams; +import ru.spcex.platform.enumeration.Section; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -43,15 +45,22 @@ public class FinishingSession implements ISessionStage { private final KafkaSender kafkaSender; private final IMessageResolver msgResolver; private final Sdf05Sender sdf05Sender; + private final Sdf14Sender sdf14Sender; + private Section section; @Autowired - public FinishingSession(ImdgProvider imdgProvider, KafkaSender kafkaSender, IMessageResolver msgResolver, Sdf05Sender sdf05Sender) { + public FinishingSession(ImdgProvider imdgProvider, KafkaSender kafkaSender, IMessageResolver msgResolver, Sdf05Sender sdf05Sender, Sdf14Sender sdf14Sender) { 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; + this.sdf14Sender = sdf14Sender; + } + + public void setSection(Section section) { + this.section = section; } @Override @@ -89,6 +98,9 @@ public class FinishingSession implements ISessionStage { } } sdf05Sender.sendSdf05(pr); + if (Section.FOND.equals(section)) { + sdf14Sender.sendSdf14(sessionId); + } StageResult> res = new StageResult<>(null, true); return res; } 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 85b752eb6..c823c4688 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 @@ -2,6 +2,7 @@ package ru.spcex.clearing.swt.exporter.services; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest; import ru.spcex.clearing.platform.messaging.domain.cud.utilities.JournalEventExportedRequest; import ru.spcex.clearing.platform.messaging.serialization.LogFormatter; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; @@ -54,17 +55,17 @@ public abstract class AbstractExporterService { protected abstract String typeForFileName(); - protected abstract String sectionForFileName(); + protected abstract String sectionForFileName(SwtExporterRequest req); protected abstract String typeForHeader(); protected abstract SWTHeaderData getHeader(T record, int count); - public void process(Long groupId) { + public void process(SwtExporterRequest req) { LocalDateTime exportAt = LocalDateTime.now(); - - String fileName = formatFileName(typeForFileName(), sectionForFileName(), exportAt); + Long groupId = req.getGroupId(); + String fileName = formatFileName(typeForFileName(), sectionForFileName(req), exportAt); log.debug("Start export {} Lim file", fileName); try { 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 cd8c1904c..fd1f6062c 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(-1L); + exporter.process(null); } 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(req.getGroupId()); + exporter.process(req); } catch (Exception e) { log.error("Exporter has error: {}", ExceptionUtils.getStackTrace(e)); } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java index c12c10399..3030212c0 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java @@ -4,6 +4,7 @@ import com.hazelcast.aws.utility.StringUtil; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.sdf.SDf09; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.swt.exporter.services.AbstractExporterService; import ru.spcex.clearing.swt.exporter.services.FileStorage; @@ -35,7 +36,7 @@ public class DF09Exporter extends AbstractExporterService { } @Override - protected String sectionForFileName() { + protected String sectionForFileName(SwtExporterRequest req) { return null; } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11Exporter.java index 8d4c786e8..3083d3ab7 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11Exporter.java @@ -4,6 +4,7 @@ import com.hazelcast.aws.utility.StringUtil; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.sdf.SDf11; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.swt.exporter.services.AbstractExporterService; import ru.spcex.clearing.swt.exporter.services.FileStorage; @@ -34,7 +35,7 @@ public class DF11Exporter extends AbstractExporterService { } @Override - protected String sectionForFileName() { + protected String sectionForFileName(SwtExporterRequest req) { return null; } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java index 5e458c135..d06478265 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java @@ -4,6 +4,7 @@ import com.hazelcast.aws.utility.StringUtil; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.sdf.SDf12; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.swt.exporter.services.AbstractExporterService; import ru.spcex.clearing.swt.exporter.services.FileStorage; @@ -35,7 +36,7 @@ public class DF12Exporter extends AbstractExporterService { } @Override - protected String sectionForFileName() { + protected String sectionForFileName(SwtExporterRequest req) { return "bond"; // todo bond / fund } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF14Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF14Exporter.java index 35f138dbc..7e9356ec9 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF14Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF14Exporter.java @@ -1,25 +1,33 @@ package ru.spcex.clearing.swt.exporter.services.exportimpl; import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.sdf.SDf14; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.swt.exporter.services.AbstractExporterService; import ru.spcex.clearing.swt.exporter.services.FileStorage; import ru.spcex.clearing.swt.exporter.util.ConvertionContext; import ru.spcex.clearing.swt.exporter.util.SWTHeaderData; +import ru.spcex.platform.enumeration.Section; +import ru.spcex.platform.enumeration.SessionType; import ru.spcex.platform.enumeration.SwtTable; +import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.enumeration.IEnumKey; import java.io.PrintWriter; import java.time.LocalDateTime; import java.util.Collection; +import java.util.Objects; @Service public class DF14Exporter extends AbstractExporterService { private static final String RESULT_CONST = "OK"; + private final Imdg sessionImdg; public DF14Exporter(FileStorage fileStorage, KafkaSender kafkaSender, @@ -27,6 +35,7 @@ public class DF14Exporter extends AbstractExporterService { super(fileStorage, kafkaSender, imdgProvider, SwtTable.SDF_14, IMDGDistributedNames.Map_SDf14, SDf14.class); + this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); } @Override @@ -35,8 +44,20 @@ public class DF14Exporter extends AbstractExporterService { } @Override - protected String sectionForFileName() { - return "bond"; // todo bond / fund + protected String sectionForFileName(SwtExporterRequest req) { + Long sessionId = req.getSessionId(); + Objects.requireNonNull(sessionId, "cannot process DF-14 without session id"); + Session session = sessionImdg.getSingleObjectByID(sessionId); + Objects.requireNonNull(session, "cannot process DF-14: couldn't find session.id=%d".formatted(sessionId)); + SessionType type = IEnumKey.getEnumByKey(SessionType.class, session.getSessionType()); + Objects.requireNonNull(type, "cannot process DF-14: session.id=%d couldn't determine session type %s".formatted(sessionId, session.getSessionType())); + if (!Section.FOND.equalsByKey(session.getSection())) { + throw new IllegalStateException("DF-14 is only processed for FOND section"); + } + if (type == SessionType.TRDT) { + return "fund"; + } + return "bond"; } @Override @@ -56,7 +77,7 @@ public class DF14Exporter extends AbstractExporterService { @Override protected String convertRecord(SDf14 record, ConvertionContext context) { StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(RESULT_CONST).append(SWTHeaderData.LINE_SEPARATOR); + stringBuilder.append(record.getResult()).append(SWTHeaderData.LINE_SEPARATOR); return stringBuilder.toString(); } diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/SdfResult.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/SdfResult.java new file mode 100644 index 000000000..1da8e66fd --- /dev/null +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/SdfResult.java @@ -0,0 +1,19 @@ +package ru.spcex.platform.enumeration; + +import ru.spcex.platform.utils.enumeration.IEnumKey; + +public enum SdfResult implements IEnumKey { + OK("OK"), + ; + + private final String key; + + SdfResult(String key) { + this.key = key; + } + + @Override + public String getKey() { + return key; + } +} 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 db82b97a1..8a2c48307 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 @@ -9,6 +9,9 @@ public class SwtExporterRequest { @JsonProperty public Long groupId; + @JsonProperty + public Long sessionId; + public String getType() { return type; } @@ -24,4 +27,12 @@ public class SwtExporterRequest { public void setGroupId(Long groupId) { this.groupId = groupId; } + + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } }