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;
|
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.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.Registry;
|
||||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
import ru.spcex.platform.classes.base.interfaces.ExecutionType;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
public class RegistryUpdater {
|
public class RegistryUpdater {
|
||||||
public static RegistryUpdater updater() {
|
public static RegistryUpdater updater() {
|
||||||
|
|
@ -16,19 +18,9 @@ public class RegistryUpdater {
|
||||||
private RegistryUpdater() {
|
private RegistryUpdater() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private Imdg<Registry> registryImdg;
|
|
||||||
private Imdg<Company> companyImdg;
|
|
||||||
private Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
|
||||||
private ExecutionCommon exec;
|
private ExecutionCommon exec;
|
||||||
private Registry rgs;
|
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) {
|
public RegistryUpdater registry(Registry rgs) {
|
||||||
this.rgs = rgs;
|
this.rgs = rgs;
|
||||||
return this;
|
return this;
|
||||||
|
|
@ -39,28 +31,25 @@ public class RegistryUpdater {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Registry update() {
|
public void update() {
|
||||||
Registry reg = new Registry();
|
if (exec.type().equals(ExecutionType.ExecutionDeposit)) {
|
||||||
reg.setCompanyId(exec.getCompanyId());
|
rgs.setBalance(safe(rgs.getBalance()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount())));
|
||||||
Company company = searchCompany();
|
if (rgs.getRegistryDesignation().equals(RegistryDesignation.T.getKey())) {
|
||||||
reg.setTradingCode(company.getTradingCode());
|
rgs.setSettledCredit(safe(rgs.getSettledCredit()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount())));
|
||||||
reg.setClearingCode(company.getClearingCode());
|
}
|
||||||
reg.setShortName(company.getShortName());
|
if (rgs.getRegistryDesignation().equals(RegistryDesignation.O.getKey())) {
|
||||||
reg.setFullName(company.getFullName());
|
rgs.setSettledDebit(safe(rgs.getSettledDebit()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount())));
|
||||||
TradingClearingRegistry tcr = searchTradingClearingRegistry();
|
}
|
||||||
return null;
|
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() {
|
private BigDecimal safe(BigDecimal value) {
|
||||||
return companyImdg.getSingleObjectBySQL("id = " + exec.getCompanyId());
|
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) ->
|
BiConsumer<ExecutionCommon, RegistryDesignation> findAndUpdateOrCreate = (exec, regDsgn) ->
|
||||||
findReg(exec, regDsgn).ifPresentOrElse(registry -> {
|
findReg(exec, regDsgn).ifPresentOrElse(registry -> {
|
||||||
RegistryUpdater.updater()
|
RegistryUpdater.updater()
|
||||||
.imdg(imdgProvider)
|
|
||||||
.exec(partyExec)
|
.exec(partyExec)
|
||||||
.registry(registry)
|
.registry(registry)
|
||||||
.update();
|
.update();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue