сессия шаг 5 контроль обязательств по возвратам: поиск DM*X и DM*T(info)
This commit is contained in:
parent
a14ee21fd6
commit
cba1772bf6
2 changed files with 16 additions and 75 deletions
|
|
@ -12,6 +12,7 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryAssetPredicate;
|
|||
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||
import ru.spcex.platform.imdg.api.predicate.specific.RegistryDm_tClrnPredicate;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
|
@ -28,19 +29,23 @@ public class RegistryManager {
|
|||
}
|
||||
|
||||
public Optional<Registry> searchDmx(Registry rgs) {
|
||||
String sqlCondition = String.format("(%s) and companyId = %d",
|
||||
if (TextUtil.isEmpty(rgs.getContract())) return Optional.empty();
|
||||
String sqlCondition = String.format("(%s) and companyId = %d and contract = '%s'",
|
||||
RegistryCodeSqlBuilder.getInstance(DM_X).build(),
|
||||
rgs.getCounterPartyId());
|
||||
rgs.getCounterPartyId(),
|
||||
rgs.getContract());
|
||||
Registry dmx = rgsImdg.getFirstObjectBySQL(sqlCondition);
|
||||
return Optional.ofNullable(dmx);
|
||||
}
|
||||
|
||||
public Optional<Registry> searchDmtInfo(Registry rgs) {
|
||||
String sqlCondition = String.format("(%s) and accountType='%s' and companyId = %d and counterPartyId = %d",
|
||||
if (TextUtil.isEmpty(rgs.getContract())) return Optional.empty();
|
||||
String sqlCondition = String.format("(%s) and accountType='%s' and companyId = %d and counterPartyId = %d and contract = '%s'",
|
||||
RegistryCodeSqlBuilder.getInstance(DM_T).build(),
|
||||
AccountType.Info.getKey(),
|
||||
rgs.getCompanyId(),
|
||||
rgs.getCounterPartyId());
|
||||
rgs.getCounterPartyId(),
|
||||
rgs.getContract());
|
||||
Registry dmt = rgsImdg.getFirstObjectBySQL(sqlCondition);
|
||||
return Optional.ofNullable(dmt);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import org.springframework.context.annotation.Scope;
|
|||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.service.RegistryManager;
|
||||
import ru.spcex.clearing.session.stage.ISessionStage;
|
||||
import ru.spcex.clearing.session.stage.StageResult;
|
||||
import ru.spcex.clearing.session.stage.Task;
|
||||
|
|
@ -24,6 +25,7 @@ import java.util.Map;
|
|||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.*;
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||
|
||||
|
||||
|
|
@ -33,54 +35,12 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
|
|||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<Registry> registryImdg;
|
||||
private SessionType sessionType;
|
||||
|
||||
private final static RegistryTradingParams OS_T;
|
||||
private final static RegistryTradingParams OM_T;
|
||||
private final static RegistryTradingParams TS_T;
|
||||
private final static RegistryTradingParams TM_T;
|
||||
private final static RegistryTradingParams DM_X;
|
||||
private final static RegistryTradingParams DM_T;
|
||||
private final static RegistryTradingParams AM_F;
|
||||
|
||||
static {
|
||||
OS_T = new RegistryTradingParams(RegistryDesignation.O,
|
||||
RegistryInstrumentType.S,
|
||||
null,
|
||||
RegistryUnit.T);
|
||||
|
||||
OM_T = new RegistryTradingParams(RegistryDesignation.O,
|
||||
RegistryInstrumentType.M,
|
||||
null,
|
||||
RegistryUnit.T);
|
||||
|
||||
TS_T = new RegistryTradingParams(RegistryDesignation.T,
|
||||
RegistryInstrumentType.S,
|
||||
null,
|
||||
RegistryUnit.T);
|
||||
|
||||
TM_T = new RegistryTradingParams(RegistryDesignation.T,
|
||||
RegistryInstrumentType.M,
|
||||
null,
|
||||
RegistryUnit.T);
|
||||
DM_X = new RegistryTradingParams(RegistryDesignation.D,
|
||||
RegistryInstrumentType.M,
|
||||
null,
|
||||
RegistryUnit.X);
|
||||
DM_T = new RegistryTradingParams(RegistryDesignation.D,
|
||||
RegistryInstrumentType.M,
|
||||
null,
|
||||
RegistryUnit.T);
|
||||
AM_F = new RegistryTradingParams(RegistryDesignation.A,
|
||||
RegistryInstrumentType.M,
|
||||
null,
|
||||
RegistryUnit.F);
|
||||
|
||||
|
||||
}
|
||||
private final RegistryManager rgsMng;
|
||||
|
||||
@Autowired
|
||||
public InspectionObligationsDepositReturn(ImdgProvider imdgProvider) {
|
||||
public InspectionObligationsDepositReturn(ImdgProvider imdgProvider, RegistryManager rgsMng) {
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.rgsMng = rgsMng;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -123,7 +83,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
|
|||
}
|
||||
|
||||
//вторая часть сделки - возврат депозита
|
||||
Optional<Registry> dmx = searchDmx(omtRgs);
|
||||
Optional<Registry> dmx = rgsMng.searchDmx(omtRgs);
|
||||
if (dmx.isPresent()) {
|
||||
BigDecimal dmxBalance = safeBD(dmx.get().getBalance());
|
||||
log.debug("OM*T.id={} -> DM*X.id={}, dmxBalance={}, omtBalance={}",
|
||||
|
|
@ -152,7 +112,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
|
|||
Registry amfAsset = amfAssetO.get();
|
||||
log.debug("groupId={}, AM*F.id={}", entry.getKey(), amfAsset.getId());
|
||||
BigDecimal amfBalance = safeBD(amfAsset.getBalance());
|
||||
Optional<Registry> dmtInfo = searchDmtInfo(omtRgs);
|
||||
Optional<Registry> dmtInfo = rgsMng.searchDmtInfo(omtRgs);
|
||||
if (dmtInfo.isPresent()) {
|
||||
BigDecimal dmtBalance = safeBD(dmtInfo.get().getBalance());
|
||||
log.debug("OM*T.id={} -> DM*T(INFO).id={}, dmtBalance={}, omtBalance={}, amfBalance={}",
|
||||
|
|
@ -196,30 +156,6 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
|
|||
registryImdg.update(registry);
|
||||
}
|
||||
|
||||
/**
|
||||
* Если УК зачисляет средства на ТБС Инициатора
|
||||
*/
|
||||
private Optional<Registry> searchDmx(Registry rgs) {
|
||||
String sqlCondition = String.format("(%s) and companyId = %d",
|
||||
RegistryCodeSqlBuilder.getInstance(DM_X).build(),
|
||||
rgs.getCounterPartyId());
|
||||
Registry dmx = registryImdg.getFirstObjectBySQL(sqlCondition);
|
||||
return Optional.ofNullable(dmx);
|
||||
}
|
||||
|
||||
/**
|
||||
* Если УК зачисляет средства на свой регистр на КС
|
||||
*/
|
||||
private Optional<Registry> searchDmtInfo(Registry rgs) {
|
||||
String sqlCondition = String.format("(%s) and accountType='%s' and companyId = %d and counterPartyId = %d",
|
||||
RegistryCodeSqlBuilder.getInstance(DM_T).build(),
|
||||
AccountType.Info.getKey(),
|
||||
rgs.getCompanyId(),
|
||||
rgs.getCounterPartyId());
|
||||
Registry dmt = registryImdg.getFirstObjectBySQL(sqlCondition);
|
||||
return Optional.ofNullable(dmt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Если УК зачисляет средства на свой ТБС
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue