http://jira.mfd.msk:8088/browse/CLS-839 округление до 2 знаков после запятой

This commit is contained in:
AKurakin 2025-05-07 14:56:12 +03:00
parent 318d8bba62
commit cec9a0de7b
2 changed files with 9 additions and 4 deletions

View file

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

View file

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