http://jira.mfd.msk:8088/browse/CLS-357 SDF06 inOutDirection in не требует проверки через gateway

This commit is contained in:
ialbert 2023-06-27 12:02:59 +03:00
parent 7a9b9b6eff
commit 524d59eece

View file

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