From cec9a0de7b229f86255a6ec5435a985bc01c3821 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 7 May 2025 14:56:12 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-839=20?= =?UTF-8?q?=D0=BE=D0=BA=D1=80=D1=83=D0=B3=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=BE=202=20=D0=B7=D0=BD=D0=B0=D0=BA=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=B7=D0=B0=D0=BF=D1=8F=D1=82?= =?UTF-8?q?=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/spcex/clearing/utility/service/AmatAmafChecker.java | 6 +++++- .../clearing/utility/service/AmatAmafCheckerTest.java | 7 ++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/AmatAmafChecker.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/AmatAmafChecker.java index 20a61f625..dd04a245c 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/AmatAmafChecker.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/AmatAmafChecker.java @@ -28,6 +28,7 @@ import ru.spcex.platform.utils.collection.Pair; import ru.spcex.platform.utils.number.BigDecimalUtil; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -200,10 +201,13 @@ public class AmatAmafChecker extends QueueConsumer implements InitializingBean { equalsCount++; } else { mismatchCount++; + BigDecimal diff = am_tSumm.subtract(am_fSumm); + if (diff.scale() > 2) + diff = diff.setScale(2, RoundingMode.UP); // HALF_UP может показать 0 когда там чуть больше 0. String describe = String.format("по ТКР %s выявлено расхождение на регистрах AMAT/AMAF по %s на сумму %s", group.getKey().getFirst(), // TradingClearingRegistry group.getKey().getSecond(), // SecuritySymbol - am_tSumm.subtract(am_fSumm) + diff ); resultMismatch.add(describe); log.info("Balance not match (am_tSumm={}, am_fSumm={}) in register group (size {}): {}", am_tSumm, am_fSumm, diff --git a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/AmatAmafCheckerTest.java b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/AmatAmafCheckerTest.java index 0c8a9598e..18fd9737d 100644 --- a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/AmatAmafCheckerTest.java +++ b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/AmatAmafCheckerTest.java @@ -212,9 +212,10 @@ class AmatAmafCheckerTest { assertEquals("Проведена сверка по регистрам AMAT/AMAF.\n" + "2025.05.05 12:37:56.\n" + - "Результат сверки: по ТКР 0620CAV00001 выявлено расхождение на регистрах AMAT/AMAF по CNY на сумму 678.000000000000000000;" + - " по ТКР 0620CAV00001 выявлено расхождение на регистрах AMAT/AMAF по BYN на сумму 95.000000000000000000;" + - " по ТКР null выявлено расхождение на регистрах AMAT/AMAF по RUB на сумму 233184292.440000000000000000.", + "Результат сверки:" + + " по ТКР 0620CAV00001 выявлено расхождение на регистрах AMAT/AMAF по CNY на сумму 678.00;" + + " по ТКР 0620CAV00001 выявлено расхождение на регистрах AMAT/AMAF по BYN на сумму 95.00;" + + " по ТКР null выявлено расхождение на регистрах AMAT/AMAF по RUB на сумму 233184292.44.", checker.makeErrorMessage( LocalDateTime.of(2025, 5, 5, 12, 37, 56), errors)); }