From df7ad80c248a8faa71e7f41daeb5646f3237a920 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 9 Jul 2025 15:48:36 +0300 Subject: [PATCH] fix unit session --- .../action/RequirementAndObligationCreationAction.java | 9 ++++++++- .../RequirementAndObligationCreationCompoundAction.java | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationAction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationAction.java index 2c339fa04..1b0cecf5a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationAction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationAction.java @@ -445,9 +445,16 @@ public class RequirementAndObligationCreationAction extends AbstractSessionActio invalid = String.format("exchangeExecutionId %d and %d not equal", exec1.getExchangeExecutionId(), exec2.getExchangeExecutionId()); } else if (Objects.equals(getSide(exec1), getSide(exec2))) { invalid = String.format("side %s and %s equal, must be opposite", getSide(exec1), getSide(exec1)); - } else if (!Objects.equals(exec1.getCompanyId(), exec2.getCounterPartyId()) || !Objects.equals(exec1.getCounterPartyId(), exec2.getCompanyId())) { + } else if (!isCk() + && (!Objects.equals(exec1.getCompanyId(), exec2.getCounterPartyId()) + || !Objects.equals(exec1.getCounterPartyId(), exec2.getCompanyId()))) { invalid = String.format("Execution#id(%d)#companyId(%d)#counterPartyId(%d), Execution#id(%d)#companyId(%d)#counterPartyId(%d)", exec1.getId(), exec1.getCompanyId(), exec1.getCounterPartyId(), exec2.getId(), exec2.getCompanyId(), exec2.getCounterPartyId()); + } else if (isCk() + && !Objects.equals(exec1.getTradingDate(), exec2.getTradingDate())) { + invalid = String.format("[Execution#id(%d)#tradingDate=%s, Execution#id(%d)#tradingDate=%s] exchangeExecutionId=%d; tradingDate must be equal", + exec1.getId(), exec1.getTradingDate(), + exec2.getId(), exec2.getTradingDate(), exec2.getExchangeExecutionId()); } if (invalid != null) { log.error("FATAL couldn't match Execution#id({}) with Execution#id({}) error: {}", exec1.getId(), exec2.getId(), invalid); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationCompoundAction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationCompoundAction.java index f0ea1a7d6..2c1057e3d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationCompoundAction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationCompoundAction.java @@ -58,6 +58,7 @@ public class RequirementAndObligationCreationCompoundAction extends RequirementA safeMatch(executionCurrency, iec) ); if (pair == null) continue; + log.info("Pair is not null with execType: {}", pair.getFirst().type()); if (pair.getFirst().type().equals(ExecutionType.ExecutionFond)) ief[0] += 2; if (pair.getFirst().type().equals(ExecutionType.ExecutionDeposit)) ied[0] += 2; if (pair.getFirst().type().equals(ExecutionType.ExecutionCurrency)) iec[0] += 2;