промежуточная сессия

заполнение баланса для регистра по облигациям в ExecutionFond
This commit is contained in:
ialbert 2023-08-02 21:46:48 +03:00
parent c8fa6e052e
commit aa755cbd89
2 changed files with 17 additions and 2 deletions

View file

@ -164,6 +164,7 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ
{
InspectionPoolPayload companyIdPayload = new InspectionPoolPayload();
companyIdPayload.setProcessedCompanyId(currSession.getCompanyId());
companyIdPayload.setSessionId(currSession.getId());
runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligationsReturn);
runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations);
}

View file

@ -12,17 +12,23 @@ import ru.clearing.classes.statics.data.misc.Market;
import ru.clearing.classes.statics.data.misc.Session;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.clearing.classes.statics.data.security.Security;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.session.stage.util.RegistryUtil;
import ru.spcex.platform.classes.base.interfaces.ExecutionType;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
import java.time.LocalDate;
import java.util.Map;
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
public class RegistryFondBuilder implements IRegistryBuilder {
private Imdg<Company> companyImdg;
private Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
@ -33,6 +39,7 @@ public class RegistryFondBuilder implements IRegistryBuilder {
private Imdg<InformationAccount> informationAccountImdg;
private Imdg<DepoAccount> depoAccountImdg;
private Imdg<Currency> currencyImdg;
private SecuritySelector<Security> scrSlctr;
private ExecutionCommon exec;
private RegistryDesignation regDsgn;
@ -54,6 +61,7 @@ public class RegistryFondBuilder implements IRegistryBuilder {
this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class);
this.informationAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class);
this.currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class);
this.scrSlctr = new SecuritySelector<>(imdgProvider, Security.class);
return this;
}
@ -132,8 +140,14 @@ public class RegistryFondBuilder implements IRegistryBuilder {
reg.setRegistryStatus(RegistryStatus.PROC.getKey());
ExecutionFond execFond = (ExecutionFond) this.exec;
if (isMoney) {
//todo ОКРУГЛЕНИЕ(fixedIncomeSecurity.nominalValue * quantity * price/100) + ОКРУГЛЕНИЕ (executionFond.interestAmount)
reg.setBalance(execFond.getSettlementAmount());
Security security = scrSlctr.selectSecurityById(execFond.getSecurityId());
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
BigDecimal stlAmt = safeBD(execFond.getSettlementAmount());
BigDecimal intAmt = safeBD(execFond.getInterestAmount());
reg.setBalance(stlAmt.add(intAmt.setScale(2, RoundingMode.HALF_UP)));
} else {
reg.setBalance(execFond.getSettlementAmount());
}
} else {
reg.setBalance(execFond.getQuantity());
}