From 547c993c53bb7d2ce033decc60e5bb889f5fb48b Mon Sep 17 00:00:00 2001 From: ialbert Date: Mon, 29 May 2023 15:48:29 +0300 Subject: [PATCH] SDF01 statement#clearingDate,securityId fix --- .../clearing/service/EventsReceiver.java | 21 +++++++------------ .../stage/PrimaryAuctionBnSession.java | 3 +-- .../stage/SecondaryAuctionT0Session.java | 6 ++---- .../session/stage/SessionManager.java | 7 ++++--- 4 files changed, 14 insertions(+), 23 deletions(-) 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 25025c63b..1ae19880c 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 @@ -4,6 +4,7 @@ import org.apache.kafka.clients.consumer.Consumer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.clearing.CreateRegistryRequest; @@ -15,6 +16,7 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.session.stage.PrimaryAuctionB0Session; import ru.spcex.clearing.session.stage.PrimaryAuctionBnSession; import ru.spcex.clearing.session.stage.SecondaryAuctionT0Session; +import ru.spcex.clearing.session.stage.SessionManager; import ru.spcex.platform.enumeration.Task; import static ru.spcex.clearing.platform.messaging.domain.Consts.S_TRADES_IMPORTED; @@ -27,19 +29,22 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { private final PrimaryAuctionBnSession primaryAuctionBnSession; private final SecondaryAuctionT0Session secondaryAuctionT0Session; private final PrimaryAuctionB0Session primaryAuctionB0Session; + private final SessionManager sessionManager; + @Autowired public EventsReceiver(Consumer kafkaQueue, ClearingService clearingService, RegistryService registryService, PrimaryAuctionBnSession primaryAuctionBnSession, SecondaryAuctionT0Session secondaryAuctionT0Session, - PrimaryAuctionB0Session primaryAuctionB0Session) { + PrimaryAuctionB0Session primaryAuctionB0Session, SessionManager sessionManager) { super(kafkaQueue); this.clearingService = clearingService; this.registryService = registryService; this.primaryAuctionBnSession = primaryAuctionBnSession; this.secondaryAuctionT0Session = secondaryAuctionT0Session; this.primaryAuctionB0Session = primaryAuctionB0Session; + this.sessionManager = sessionManager; } @Override @@ -60,22 +65,10 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { .setConsumer(clearingService::continueClearing) .forDestination(Consts.CONTINUE_CLEARING, callbacks::put); - callback(Object.class) - .setConsumer(primaryAuctionB0Session::runSession) - .forDestination(Task.startOfB0.topic(), callbacks::put); -// callback(Object.class) -// .setConsumer(primaryAuctionB0Session::continueSession) -// .forDestination(Task.startOfB0.topic(), callbacks::put); - - callback(LauncherCommandRequest.class) - .setConsumer(primaryAuctionBnSession::runSession) + .setConsumer(sessionManager::defineAndStartSession) .forDestination(Task.startOfClearing.topic(), callbacks::put); - callback(LauncherCommandRequest.class) - .setConsumer(secondaryAuctionT0Session::runSession) - .forDestination(Task.startOfT0.topic(), callbacks::put); - callback(Object.class) .setConsumer(req -> { primaryAuctionBnSession.continueSession(req); 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 c53adf15d..a9ea0fd10 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 @@ -110,8 +110,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali } else if (checkStage(TaskType.FormingPaymentInstruction)) { finishPart(req); } else { - log.error("cannot continue session, current stage is {}", currStage.get()); - throw new StageException(); + log.info("will not continue session, current stage is {}", currStage.get()); } } catch (StageException e) { //already logged 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 53709c31b..33fe7aa24 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 @@ -104,14 +104,12 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia if (!isRunning()) { return; } - if (!checkStage(TaskType.StartRevise)) { - log.error("cannot continue session, current stage is {}", currStage.get()); - throw new StageException(); - } if (checkStage(TaskType.StartRevise)) { firstPart(req); } else if (checkStage(TaskType.FormingPaymentInstruction)) { finishPart(req); + } else { + log.info("will not continue session, current stage is {}", currStage.get()); } } catch (StageException e) { //already logged diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java index 040664ab4..7d3f11576 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java @@ -24,10 +24,11 @@ public class SessionManager { this.primaryAuctionB0Session = primaryAuctionB0Session; } - public void defineAndStartSession(LauncherCommandRequest commandRequest) { + public void defineAndStartSession(BaseRequest r) { + LauncherCommandRequest payload = r.getRequestPayload(); // Long sessionId = commandRequest.getSessionId(); - SessionType sessionType = IEnumKey.getEnumByKey(SessionType.class, commandRequest.getSessionType()); - Section section = IEnumKey.getEnumByKey(Section.class, commandRequest.getSection()); + SessionType sessionType = IEnumKey.getEnumByKey(SessionType.class, payload.getSessionType()); + Section section = IEnumKey.getEnumByKey(Section.class, payload.getSection()); if (sessionType == null || section == null) { log.warn("Unknown sessionType: {} or section: {}", section, sessionType); return;