SDF13 assets fix, SDF06 DM*T search status conditions
This commit is contained in:
parent
d06be93bc0
commit
7a7468b9f2
2 changed files with 15 additions and 12 deletions
|
|
@ -1,6 +1,5 @@
|
|||
package ru.spcex.clearing.service.executors;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -12,6 +11,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|||
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.clearing.service.model.Result;
|
||||
import ru.spcex.clearing.service.registry.AssetTBFProcessing;
|
||||
import ru.spcex.clearing.service.registry.RegistryManager;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
||||
|
|
@ -37,12 +37,14 @@ public class Sdf13Executor extends AbstractExecutor<SDf13> {
|
|||
private final Imdg<Registry> registryImdg;
|
||||
protected final Imdg<Session> sessionImdg;
|
||||
protected final RegistryManager registryManager;
|
||||
public Sdf13Executor(ImdgProvider imdgProvider, RegistryManager registryManager) {
|
||||
private final AssetTBFProcessing assets;
|
||||
public Sdf13Executor(ImdgProvider imdgProvider, RegistryManager registryManager, AssetTBFProcessing assets) {
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.sdf12Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf12, SDf12.class);
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.registryManager = registryManager;
|
||||
this.assets = assets;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -88,12 +90,8 @@ public class Sdf13Executor extends AbstractExecutor<SDf13> {
|
|||
Optional<Registry> registryUnitF = registryManager.findRegByUnit(registry.getCompanyId(), registry.getAccountId(), registry.getContract(), registry, RegistryUnit.F);
|
||||
Optional<Registry> registryUnitT = registryManager.findRegByUnit(registry.getCompanyId(), registry.getAccountId(), registry.getContract(), registry, RegistryUnit.T);
|
||||
if (registryUnitF.isPresent() && registryUnitT.isPresent()) {
|
||||
registryUnitF.get().setBalance(registryUnitT.get().getBalance().subtract(registry.getBalance()));
|
||||
registryUnitF.get().setUpdated(now);
|
||||
registryImdg.update(registryUnitF.get());
|
||||
assets.process(registry, registryUnitT.get(), registryUnitF.get(), BigDecimal.ZERO);
|
||||
}
|
||||
registry.setUpdated(now);
|
||||
registryImdg.update(registry);
|
||||
});
|
||||
}
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -11,10 +11,7 @@ import ru.clearing.classes.statics.data.sdf.SDf06;
|
|||
import ru.spcex.clearing.error.ClearingError;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.service.AnltSearcher;
|
||||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.InOutDirection;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
|
|
@ -130,7 +127,15 @@ public enum Sdf06NewValidationRule implements IValidationRule<ImdgValidationCont
|
|||
prdctBldr.equals("companyId", company.getId()),
|
||||
prdctBldr.sql(RegistryCodeSqlBuilder.getInstance(code).build()));
|
||||
Registry rgsAmf = registryImdg.getSingleObjectByPredicate(prdctByRegistryCode.apply(RegistryTradingParams.AM_F));
|
||||
Registry rgsDmt = registryImdg.getSingleObjectByPredicate(prdctByRegistryCode.apply(RegistryTradingParams.DM_T));
|
||||
Registry rgsDmt = registryImdg.getSingleObjectByPredicate(
|
||||
prdctBldr.and(
|
||||
prdctByRegistryCode.apply(RegistryTradingParams.DM_T),
|
||||
prdctBldr.or(
|
||||
prdctBldr.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
prdctBldr.equals("registryStatus", RegistryStatus.MNG.getKey())
|
||||
)
|
||||
)
|
||||
);
|
||||
log.trace("validating sdf06 id={} account={} companyId={} found registries: AM*F.id={} DM*T.id={}",
|
||||
sdf06.getId(), sdf06.getAccount(), company.getId(),
|
||||
rgsAmf == null ? null : rgsAmf.getId(),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue