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)); }