From 524d59eece1e97b6be1c3b7729f91c21c24c5a77 Mon Sep 17 00:00:00 2001 From: ialbert Date: Tue, 27 Jun 2023 12:02:59 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-357=20SDF06?= =?UTF-8?q?=20inOutDirection=20in=20=D0=BD=D0=B5=20=D1=82=D1=80=D0=B5?= =?UTF-8?q?=D0=B1=D1=83=D0=B5=D1=82=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20gateway?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/executors/Sdf06Executor.java | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java index 177779d87..d8d7bc7c9 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java @@ -155,7 +155,12 @@ public class Sdf06Executor { Statement stmt = createStatementBySdf06(sDf06, company.getId(), account); statementImdg.insert(stmt); log.debug("Statement created: {}", stmt.getId()); - requests.add(requestFromStatement(stmt, company.getTradingCode(), tcr.getCode())); + if (InOutDirection.in.getKey().equals(stmt.getInOutDirection())) { + processedApproved(stmt, sDf06, now); + sdf07WasCreated = true; + } else { + requests.add(requestFromStatement(stmt, company.getTradingCode(), tcr.getCode())); + } } if (requests.size() > 0) { this.sdf06GroupId = groupId; @@ -168,6 +173,20 @@ public class Sdf06Executor { } } + private void processedApproved(Statement stmt, SDf06 sDf06, Instant time) { + log.trace("statement.id={}, sdf07.id={}, sdf06.id={} executed", + stmt.getId(), + sDf06.getGenerationId(), + sDf06.getId()); + SDf07 sdf07 = createSdf07(sDf06, time, successResult); + sdf07.setGenerationId(sdf07GroupId); + sdf07Imdg.insert(sdf07); + stmt.setOperationStatus(OperationStatus.Executed.getKey()); + stmt.setUpdated(time); + stmt.setOutSDfId(sdf07.getId()); + statementImdg.update(stmt); + } + private boolean needToCreateStatement(EnumMessage err) { return ClearingError.ActiveSessionIsPresent.equals(err.getSubject()) || ClearingError.BalanceInsufficient.equals(err.getSubject()); } @@ -203,17 +222,7 @@ public class Sdf06Executor { Instant updatedTime = Instant.now(); if (gatewayMsg.isApproved()) { - log.trace("statement.id={}, sdf07.id={}, sdf06.id={} executed", - statementId, - sdf06.getGenerationId(), - sdf06.getId()); - SDf07 sdf07 = createSdf07(sdf06, updatedTime, successResult); - sdf07.setGenerationId(sdf07GroupId); - sdf07Imdg.insert(sdf07); - stmt.setOperationStatus(OperationStatus.Executed.getKey()); - stmt.setUpdated(updatedTime); - stmt.setOutSDfId(sdf07.getId()); - statementImdg.update(stmt); + processedApproved(stmt, sdf06, updatedTime); } else { log.trace("statement.id={}, sdf07.id={}, sdf06.id={} rejected (by gateway answer)", statementId,