This commit is contained in:
parent
db14e0f8e8
commit
00a02ed7d2
2 changed files with 25 additions and 37 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue