This commit is contained in:
AKurakin 2023-10-09 15:23:35 +03:00
parent aa1e5f7ac1
commit 38dab80e99

View file

@ -15,10 +15,12 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
import static ru.spcex.platform.enumeration.RegistryTradingParams.*;
@ -50,9 +52,11 @@ public class MoneyExporterService extends AbstractExporterService {
log.debug("Selected {} registriesA.", registriesA.size());
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
LocalDate today = LocalDate.now();
Function<Registry, ImdgPredicate> prdctDM_T = registry -> pb.and(
pb.sql(RegistryCodeSqlBuilder.getInstance(DM_T).build()),
pb.equals("registryStatus", RegistryStatus.PROC.getKey()),
pb.equals("settlementDate", today),
pb.equals("tradingClearingRegistry", registry.getTradingClearingRegistry()),
pb.equals("securityId", registry.getSecurityId())
);
@ -66,8 +70,12 @@ public class MoneyExporterService extends AbstractExporterService {
if (checkNotBlocked(registry)) {
BigDecimal sumPositive = BigDecimal.ZERO;
if (registry.getTradingClearingRegistry() != null && registry.getSecurityId() != null) {
sumPositive = sumNegativeABS(registryImdg.getCollectionObjectsByPredicate(prdctDM_I.apply(registry)));
sumPositive = sumPositive.add(sum(registryImdg.getCollectionObjectsByPredicate(prdctDM_T.apply(registry))));
Collection<Registry> regsDMI = registryImdg.getCollectionObjectsByPredicate(prdctDM_I.apply(registry));
log.trace("Found {} DM_I registries for registry AM_F {}", regsDMI.size(), registry);
Collection<Registry> regsDMT = filterByDate(registryImdg.getCollectionObjectsByPredicate(prdctDM_T.apply(registry)));
log.trace("Found {} DM_T registries for registry AM_F {}", regsDMT.size(), registry);
sumPositive = sumNegativeABS(regsDMI);
sumPositive = sumPositive.add(sum(regsDMT));
}
limFileRows.add(getRow(registry, sumPositive));
}
@ -76,6 +84,12 @@ public class MoneyExporterService extends AbstractExporterService {
return limFileRows;
}
List<Registry> filterByDate(Collection<Registry> regs) {
return regs.stream()
.filter((Registry reg) -> reg.getSettlementDate().equals(reg.getClearingDate()))
.collect(Collectors.toList());
}
public String getRow(Registry registryA, BigDecimal sumPositive) {
StringBuilder row = new StringBuilder();