diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java index 194e7143c..a058ea604 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java @@ -229,14 +229,15 @@ public class ExecutionFondComponent { eFond.setInterestAmount(sTrades.getAccruedint()); eFond.setExchangeOrderId(sTrades.getOrderNum()); if (valuation) { - BigDecimal lots = safeBD(sTrades.getQty());// eFond.getLots + Listing listing = listingImdg.getFirstObjectBySQL("securityId = %d and market = '%s'".formatted(security.getId(), sTrades.getClassCode())); + BigDecimal lotSize = listing != null ? safeBD(listing.getLotSize()) : BigDecimal.ONE; + BigDecimal qty = safeBD(eFond.getLots()).multiply(lotSize); + eFond.setQuantity(qty); BigDecimal price = safeBD(sTrades.getPrice());// eFond.setPrice BigDecimal settlementAmount = BigDecimal.ZERO; if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { FixedIncomeSecurity fixedIncome = (FixedIncomeSecurity) security; BigDecimal nominalValue; - Listing listing = listingImdg.getFirstObjectBySQL("securityId = %d and market = '%s'".formatted(fixedIncome.getId(), sTrades.getClassCode())); - BigDecimal lotSize = listing != null ? safeBD(listing.getLotSize()) : BigDecimal.ONE; ImdgPredicateBuilder pb = fixedIncomeCashFlowImdg.predicateBuilder(); ImdgPredicate prdct = pb.and( pb.equals("securityId", fixedIncome.getId()), @@ -250,7 +251,7 @@ public class ExecutionFondComponent { nominalValue = safeBD(fixedIncome.getNominalValue()); } { - settlementAmount = lotSize.multiply(lots) + settlementAmount = eFond.getQuantity() .multiply(nominalValue) .multiply(price) .divide(new BigDecimal(100), RoundingMode.HALF_UP)