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 ru.spcex.platform.utils.number.BigDecimalUtil;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
@ -200,10 +201,13 @@ public class AmatAmafChecker extends QueueConsumer implements InitializingBean {
equalsCount++; equalsCount++;
} else { } else {
mismatchCount++; 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", String describe = String.format("по ТКР %s выявлено расхождение на регистрах AMAT/AMAF по %s на сумму %s",
group.getKey().getFirst(), // TradingClearingRegistry group.getKey().getFirst(), // TradingClearingRegistry
group.getKey().getSecond(), // SecuritySymbol group.getKey().getSecond(), // SecuritySymbol
am_tSumm.subtract(am_fSumm) diff
); );
resultMismatch.add(describe); resultMismatch.add(describe);
log.info("Balance not match (am_tSumm={}, am_fSumm={}) in register group (size {}): {}", am_tSumm, am_fSumm, 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" + assertEquals("Проведена сверка по регистрам AMAT/AMAF.\n" +
"2025.05.05 12:37:56.\n" + "2025.05.05 12:37:56.\n" +
"Результат сверки: по ТКР 0620CAV00001 выявлено расхождение на регистрах AMAT/AMAF по CNY на сумму 678.000000000000000000;" + "Результат сверки:" +
" по ТКР 0620CAV00001 выявлено расхождение на регистрах AMAT/AMAF по BYN на сумму 95.000000000000000000;" + " по ТКР 0620CAV00001 выявлено расхождение на регистрах AMAT/AMAF по CNY на сумму 678.00;" +
" по ТКР null выявлено расхождение на регистрах AMAT/AMAF по RUB на сумму 233184292.440000000000000000.", " по ТКР 0620CAV00001 выявлено расхождение на регистрах AMAT/AMAF по BYN на сумму 95.00;" +
" по ТКР null выявлено расхождение на регистрах AMAT/AMAF по RUB на сумму 233184292.44.",
checker.makeErrorMessage( checker.makeErrorMessage(
LocalDateTime.of(2025, 5, 5, 12, 37, 56), errors)); LocalDateTime.of(2025, 5, 5, 12, 37, 56), errors));
} }