ialbert 2023-05-22 10:15:10 +03:00
parent db14e0f8e8
commit 00a02ed7d2
2 changed files with 25 additions and 37 deletions

View file

@ -1,12 +1,14 @@
package ru.spcex.clearing.session.stage.impl;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.execution.ExecutionCommon;
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
import ru.clearing.classes.statics.data.execution.ExecutionFond;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.classes.base.interfaces.ExecutionType;
import ru.spcex.platform.enumeration.RegistryDesignation;
import java.math.BigDecimal;
import java.time.Instant;
public class RegistryUpdater {
public static RegistryUpdater updater() {
@ -16,19 +18,9 @@ public class RegistryUpdater {
private RegistryUpdater() {
}
private Imdg<Registry> registryImdg;
private Imdg<Company> companyImdg;
private Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
private ExecutionCommon exec;
private Registry rgs;
public RegistryUpdater imdg(ImdgProvider imdgProvider) {
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
return this;
}
public RegistryUpdater registry(Registry rgs) {
this.rgs = rgs;
return this;
@ -39,28 +31,25 @@ public class RegistryUpdater {
return this;
}
public Registry update() {
Registry reg = new Registry();
reg.setCompanyId(exec.getCompanyId());
Company company = searchCompany();
reg.setTradingCode(company.getTradingCode());
reg.setClearingCode(company.getClearingCode());
reg.setShortName(company.getShortName());
reg.setFullName(company.getFullName());
TradingClearingRegistry tcr = searchTradingClearingRegistry();
return null;
public void update() {
if (exec.type().equals(ExecutionType.ExecutionDeposit)) {
rgs.setBalance(safe(rgs.getBalance()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount())));
if (rgs.getRegistryDesignation().equals(RegistryDesignation.T.getKey())) {
rgs.setSettledCredit(safe(rgs.getSettledCredit()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount())));
}
if (rgs.getRegistryDesignation().equals(RegistryDesignation.O.getKey())) {
rgs.setSettledDebit(safe(rgs.getSettledDebit()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount())));
}
rgs.setValueDate(((ExecutionDeposit) exec).getFirstLegSettlementDate());
} else if (exec.type().equals(ExecutionType.ExecutionFond)) {
rgs.setBalance(safe(rgs.getBalance()).add(safe(((ExecutionFond) exec).getSettlementAmount())));
}
rgs.setUpdated(Instant.now());
}
private Company searchCompany() {
return companyImdg.getSingleObjectBySQL("id = " + exec.getCompanyId());
private BigDecimal safe(BigDecimal value) {
return value == null ? BigDecimal.ZERO : value;
}
private TradingClearingRegistry searchTradingClearingRegistry() {
return tradingClearingRegistryImdg.getSingleObjectBySQL("tradingClearingRegistryId = " + exec.getTradingClearingRegistryId());
}
// public
}

View file

@ -70,7 +70,6 @@ public class RequirmentsAndObligationCreation implements ISessionStage {
BiConsumer<ExecutionCommon, RegistryDesignation> findAndUpdateOrCreate = (exec, regDsgn) ->
findReg(exec, regDsgn).ifPresentOrElse(registry -> {
RegistryUpdater.updater()
.imdg(imdgProvider)
.exec(partyExec)
.registry(registry)
.update();