From fa09badd70ec35307f28508240304fce8347ca5c Mon Sep 17 00:00:00 2001 From: etreshenkov Date: Thu, 1 Jun 2023 14:35:01 +0300 Subject: [PATCH] fix reset balance --- .../ru/spcex/clearing/service/RegistryService.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java index de9045b2a..0a250883c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java @@ -16,6 +16,7 @@ import java.math.BigDecimal; import java.time.Instant; import java.util.Collection; import java.util.Map; +import java.util.Optional; @Service public class RegistryService { @@ -91,10 +92,20 @@ public class RegistryService { ); for (Registry registry : registriesA) { + if (RegistryUnit.F.equalsByKey(registry.getRegistryUnit())) { + continue; + } if (RegistryUnit.B.equalsByKey(registry.getRegistryUnit())) { registry.setBalance(BigDecimal.ZERO); + Optional registryFOptional = registriesA.stream().filter(rgs -> rgs.getSecurityId().equals(registry.getSecurityId()) && + rgs.getCompanyId().equals(registry.getCompanyId()) && + RegistryUnit.F.equalsByKey(rgs.getRegistryUnit())).findFirst(); + registryFOptional.ifPresent(rgsF -> rgsF.getBalance().subtract(registry.getBalance())); } - registry.setOpenBalance(BigDecimal.ZERO); + if (RegistryUnit.T.equalsByKey(registry.getRegistryUnit())) { + registry.setOpenBalance(registry.getBalance()); + } + registry.setCloseBalance(BigDecimal.ZERO); registry.setCheckBalance(BigDecimal.ZERO); registry.setDiffBalance(BigDecimal.ZERO);