remove C/L
This commit is contained in:
parent
d7b3189a80
commit
360414e75d
13 changed files with 116 additions and 75 deletions
|
|
@ -248,7 +248,7 @@ public class PaymentInstructionBuilderV2 {
|
|||
ImdgPredicateBuilder pb = rgsImdg.predicateBuilder();
|
||||
ImdgPredicate prdct = pb.and(
|
||||
pb.equals("sessionId", sessionId),
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.CM__).build()),
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.TM__).build()),
|
||||
pb.equals("companyId", addresseeId),
|
||||
pb.equals("accountId", am_b.getAccountId())
|
||||
);
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
|||
import ru.spcex.platform.enumeration.CompanyRole;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.CM_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.LM_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.OM_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.TM_T;
|
||||
import ru.spcex.platform.enumeration.RegistryUnit;
|
||||
import ru.spcex.platform.enumeration.Section;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
|
|
@ -50,7 +50,7 @@ public class PaymentStateMarkService {
|
|||
public void createDmv(Long sessionId) {
|
||||
ImdgPredicateBuilder pb = rgsImdg.predicateBuilder();
|
||||
ImdgPredicate prdct = pb.and(
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(CM_T, LM_T).build()),
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(OM_T, TM_T).build()),
|
||||
pb.equals("sessionId", sessionId),
|
||||
pb.equals("section", Section.MKR.getKey()),
|
||||
pb.equals("registryStatus", RegistryStatus.OK.getKey())
|
||||
|
|
@ -70,8 +70,8 @@ public class PaymentStateMarkService {
|
|||
.filter(rgs -> rd.equalsByKey(rgs.getRegistryDesignation()))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
Registry cm_t = findRgs.apply(RegistryDesignation.C);
|
||||
Registry lm_t = findRgs.apply(RegistryDesignation.L);
|
||||
Registry cm_t = findRgs.apply(RegistryDesignation.T);
|
||||
Registry lm_t = findRgs.apply(RegistryDesignation.O);
|
||||
if (cm_t == null || lm_t == null) {
|
||||
log.warn("groupId {}, coudn't find CM*T or LM*T", groupId);
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -189,8 +189,8 @@ public class SessionTerminator {
|
|||
ImdgPredicate prdct = pb.and(
|
||||
pb.equals("sessionId", sessionId),
|
||||
pb.or(
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.C__T).build()),
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.L__T).build()),
|
||||
// pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.C__T).build()),
|
||||
// pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.L__T).build()),
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.O__T).build()),
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.T__T).build())
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,13 @@
|
|||
package ru.spcex.clearing.session.stage.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -24,7 +32,16 @@ import ru.spcex.clearing.session.stage.ISessionStage;
|
|||
import ru.spcex.clearing.session.stage.StageResult;
|
||||
import ru.spcex.clearing.session.stage.Task;
|
||||
import ru.spcex.clearing.session.stage.task.FormingPaymentInstructionPayload;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.InstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryCapacity;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.OS_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.TS_T;
|
||||
import ru.spcex.platform.enumeration.RegistryUnit;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -36,14 +53,6 @@ import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
|||
import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
|
||||
import ru.spcex.platform.utils.number.BigDecimalUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.CS_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.LS_T;
|
||||
|
||||
@Service
|
||||
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||
public class FormingPaymentInstruction implements ISessionStage {
|
||||
|
|
@ -93,10 +102,16 @@ public class FormingPaymentInstruction implements ISessionStage {
|
|||
|
||||
|
||||
private StageResult formingPaymentInstruction(Long sessionId) {
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(LS_T, CS_T);
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(OS_T, TS_T);
|
||||
String registryCodeCondition = registryCodeSqlBuilder.build();
|
||||
|
||||
Collection<Registry> obligations = registryImdg.getCollectionObjectsBySQL(registryCodeCondition);
|
||||
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
|
||||
Collection<Registry> obligations = registryImdg.getCollectionObjectsByPredicate(
|
||||
pb.and(
|
||||
pb.sql(registryCodeCondition),
|
||||
pb.equals("registryStatus", RegistryStatus.OK.getKey())
|
||||
)
|
||||
);
|
||||
|
||||
List<Registry> obligationsByMoney = obligations.stream().filter(registry ->
|
||||
new RegistryTradingParams(RegistryDesignation.L, RegistryInstrumentType.M, null, RegistryUnit.T).equalByRegistry(
|
||||
|
|
|
|||
|
|
@ -366,8 +366,8 @@ public class FormingPaymentInstructionAssets implements ISessionStage {
|
|||
pb.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
pb.equals("sessionId", sessionId),
|
||||
pb.or(
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(LM_T).build()),
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(CM_T).build())
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(OM_T).build()),
|
||||
pb.sql(RegistryCodeSqlBuilder.getInstance(TM_T).build())
|
||||
)
|
||||
);
|
||||
BigDecimal reduce = registryImdg.getCollectionObjectsByPredicate(cL)
|
||||
|
|
@ -376,7 +376,7 @@ public class FormingPaymentInstructionAssets implements ISessionStage {
|
|||
.filter(rgs -> rgs.getSettlementDate() != null)
|
||||
.filter(rgs -> rgs.getSettlementDate().isAfter(rgs.getValueDate()))
|
||||
.map(rgs -> {
|
||||
if (RegistryDesignation.C.equalsByKey(rgs.getRegistryDesignation())) {
|
||||
if (RegistryDesignation.T.equalsByKey(rgs.getRegistryDesignation())) {
|
||||
return rgs.getBalance();
|
||||
} else {
|
||||
return rgs.getBalance().abs().negate();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,15 @@
|
|||
package ru.spcex.clearing.session.stage.impl;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -26,7 +36,15 @@ import ru.spcex.clearing.session.stage.ISessionStage;
|
|||
import ru.spcex.clearing.session.stage.StageResult;
|
||||
import ru.spcex.clearing.session.stage.Task;
|
||||
import ru.spcex.clearing.session.stage.task.FormingPaymentInstructionDealsMkrPayload;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.enumeration.AccountStatus;
|
||||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.Allowed;
|
||||
import ru.spcex.platform.enumeration.InstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.OM_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.TM_T;
|
||||
import ru.spcex.platform.enumeration.Section;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -40,16 +58,6 @@ import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
|||
import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
|
||||
import ru.spcex.platform.utils.number.BigDecimalUtil;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.CM_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.LM_T;
|
||||
|
||||
@Service
|
||||
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||
public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage {
|
||||
|
|
@ -104,10 +112,11 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage {
|
|||
private Collection<Registry> selectRegistries() {
|
||||
ImdgPredicateBuilder rgsPb = registryImdg.predicateBuilder();
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(
|
||||
LM_T, CM_T
|
||||
OM_T, TM_T
|
||||
);
|
||||
ImdgPredicate rgsCodePrdct = rgsPb.and(
|
||||
rgsPb.sql(registryCodeSqlBuilder.build()),
|
||||
rgsPb.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
rgsPb.equals("settlementDate", LocalDate.now()));
|
||||
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(rgsCodePrdct);
|
||||
return registries.stream()
|
||||
|
|
@ -150,8 +159,8 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage {
|
|||
.findFirst()
|
||||
.orElse(null);
|
||||
//интересуют обязательства и требования по деньгам
|
||||
Registry cm_t = findByCode.apply(CM_T);
|
||||
Registry lm_t = findByCode.apply(LM_T);
|
||||
Registry cm_t = findByCode.apply(TM_T);
|
||||
Registry lm_t = findByCode.apply(OM_T);
|
||||
if (cm_t == null || lm_t == null) {
|
||||
log.error("groupId {} cmt_t {} lm_t {} - both must be present", groupId, cm_t, lm_t);
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ import ru.spcex.platform.enumeration.AccountStatus;
|
|||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.Allowed;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
|
|
@ -110,11 +111,12 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage {
|
|||
private StageResult formingPaymentInstruction(Long sessionId) {
|
||||
Instant now = Instant.now();
|
||||
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(LM_T,CM_T, LS_T, CS_T);
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.OM_T, RegistryTradingParams.TM_T, RegistryTradingParams.OS_T, RegistryTradingParams.TS_T);
|
||||
String registryCodeCondition = registryCodeSqlBuilder.build();
|
||||
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
|
||||
ImdgPredicate prdct = pb.and(
|
||||
pb.sql(registryCodeCondition),
|
||||
pb.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
pb.equals("sessionId", sessionId)
|
||||
);
|
||||
Collection<Registry> obligations = registryImdg.getCollectionObjectsByPredicate(prdct)
|
||||
|
|
@ -132,8 +134,8 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage {
|
|||
ArrayList<PaymentInstruction> pmtCreated = new ArrayList<>();
|
||||
for (Map.Entry<Long, List<Registry>> entry : registriesByGroup.entrySet()) {
|
||||
List<Registry> groupRgs = entry.getValue();
|
||||
Optional<Registry> lmtO = groupRgs.stream().filter(rgs -> RegistryManager.equalsByCode(LM_T, rgs)).findFirst();
|
||||
Optional<Registry> cmtO = groupRgs.stream().filter(rgs -> RegistryManager.equalsByCode(CM_T, rgs)).findFirst();
|
||||
Optional<Registry> lmtO = groupRgs.stream().filter(rgs -> RegistryManager.equalsByCode(RegistryTradingParams.OM_T, rgs)).findFirst();
|
||||
Optional<Registry> cmtO = groupRgs.stream().filter(rgs -> RegistryManager.equalsByCode(RegistryTradingParams.TM_T, rgs)).findFirst();
|
||||
if (lmtO.isEmpty() || cmtO.isEmpty()) {
|
||||
log.error("groupId {} LM*T or CM*T not found", entry.getKey());
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,8 @@ import ru.spcex.platform.enumeration.RegistryDesignation;
|
|||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.*;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.AM_B;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.AM_T;
|
||||
import ru.spcex.platform.enumeration.RegistryUnit;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
|
|
@ -112,12 +113,13 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage {
|
|||
|
||||
private StageResult formingPaymentInstruction(Long sessionId) {
|
||||
Instant now = Instant.now();
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(LM_T, CM_T);
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.OM_T, RegistryTradingParams.TM_T);
|
||||
String registryCodeCondition = registryCodeSqlBuilder.build();
|
||||
|
||||
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
|
||||
ImdgPredicate prdct = pb.and(
|
||||
pb.sql(registryCodeCondition),
|
||||
pb.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
pb.equals("sessionId", sessionId)
|
||||
);
|
||||
Collection<Registry> rgsAll = registryImdg.getCollectionObjectsByPredicate(prdct)
|
||||
|
|
@ -130,7 +132,7 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage {
|
|||
|
||||
log.debug("changing assets by CM*T");
|
||||
List<Registry> requirementsByMoney = rgsAll.stream()
|
||||
.filter(registry -> equalByRgs(CM_T, registry))
|
||||
.filter(registry -> equalByRgs(RegistryTradingParams.TM_T, registry))
|
||||
.toList();
|
||||
//изменяем активы по требованиям по деньгам CM_T
|
||||
for (Registry requirementByMoney : requirementsByMoney) {
|
||||
|
|
@ -155,8 +157,8 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage {
|
|||
log.info("registry groups found {}", registriesByGroup.size());
|
||||
for (Map.Entry<Long, List<Registry>> entry : registriesByGroup.entrySet()) {
|
||||
List<Registry> groupRgs = entry.getValue();
|
||||
Optional<Registry> lmtO = groupRgs.stream().filter(rgs -> equalByRgs(LM_T, rgs)).findFirst();
|
||||
Optional<Registry> cmtO = groupRgs.stream().filter(rgs -> equalByRgs(CM_T, rgs)).findFirst();
|
||||
Optional<Registry> lmtO = groupRgs.stream().filter(rgs -> equalByRgs(RegistryTradingParams.OM_T, rgs)).findFirst();
|
||||
Optional<Registry> cmtO = groupRgs.stream().filter(rgs -> equalByRgs(RegistryTradingParams.TM_T, rgs)).findFirst();
|
||||
if (lmtO.isEmpty() || cmtO.isEmpty()) {
|
||||
log.error("LM*T or CM*T not found for group {}", entry.getKey());
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,16 @@
|
|||
package ru.spcex.clearing.session.stage.impl;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -26,7 +37,13 @@ import ru.spcex.clearing.session.stage.ISessionStage;
|
|||
import ru.spcex.clearing.session.stage.StageResult;
|
||||
import ru.spcex.clearing.session.stage.Task;
|
||||
import ru.spcex.clearing.session.stage.task.FormingPaymentInstructionDealsMkrPayload;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.enumeration.AccountStatus;
|
||||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.Allowed;
|
||||
import ru.spcex.platform.enumeration.InstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -40,15 +57,6 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
|||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
|
||||
import ru.spcex.platform.utils.number.BigDecimalUtil;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.*;
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||
|
||||
@Service
|
||||
|
|
@ -106,10 +114,11 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage {
|
|||
private Collection<Registry> selectRegistries() {
|
||||
ImdgPredicateBuilder rgsPb = registryImdg.predicateBuilder();
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(
|
||||
CS_T, LS_T
|
||||
RegistryTradingParams.TS_T, RegistryTradingParams.OS_T
|
||||
);
|
||||
ImdgPredicate rgsCodePrdct = rgsPb.and(
|
||||
rgsPb.sql(registryCodeSqlBuilder.build()),
|
||||
rgsPb.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
rgsPb.equals("settlementDate", LocalDate.now()));
|
||||
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(rgsCodePrdct);
|
||||
return registries.stream()
|
||||
|
|
@ -151,8 +160,8 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage {
|
|||
.findFirst()
|
||||
.orElse(null);
|
||||
//интересуют обязательства и требования по деньгам
|
||||
Registry cs_t = findByCode.apply(CS_T);
|
||||
Registry ls_t = findByCode.apply(LS_T);
|
||||
Registry cs_t = findByCode.apply(RegistryTradingParams.TS_T);
|
||||
Registry ls_t = findByCode.apply(RegistryTradingParams.OS_T);
|
||||
if (cs_t == null || ls_t == null) {
|
||||
log.error("groupId {} cmt_t {} ls_t {} - both must be present", groupId, cs_t, ls_t);
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import ru.spcex.platform.enumeration.AccountStatus;
|
|||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.Allowed;
|
||||
import ru.spcex.platform.enumeration.InstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.*;
|
||||
import ru.spcex.platform.enumeration.Sender;
|
||||
|
|
@ -118,10 +119,11 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
|||
private Collection<Registry> selectSecurityRegistries(Long sessionId) {
|
||||
ImdgPredicateBuilder rgsPb = registryImdg.predicateBuilder();
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(
|
||||
CS_T, LS_T
|
||||
RegistryTradingParams.TS_T, RegistryTradingParams.OS_T
|
||||
);
|
||||
ImdgPredicate rgsCodePrdct = rgsPb.and(
|
||||
rgsPb.sql(registryCodeSqlBuilder.build()),
|
||||
rgsPb.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
rgsPb.equals("sessionId", sessionId),
|
||||
rgsPb.equals("settlementDate", LocalDate.now()));
|
||||
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(rgsCodePrdct);
|
||||
|
|
@ -171,8 +173,8 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
|||
.findFirst()
|
||||
.orElse(null);
|
||||
//интересуют обязательства и требования по деньгам
|
||||
Registry cs_t = findByCode.apply(CS_T);
|
||||
Registry ls_t = findByCode.apply(LS_T);
|
||||
Registry cs_t = findByCode.apply(RegistryTradingParams.TS_T);
|
||||
Registry ls_t = findByCode.apply(RegistryTradingParams.OS_T);
|
||||
if (cs_t == null || ls_t == null) {
|
||||
log.error("groupId {} cmt_t {} ls_t {} - both must be present", groupId, cs_t, ls_t);
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package ru.spcex.clearing.session.stage.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -22,9 +24,6 @@ import ru.spcex.platform.imdg.api.Imdg;
|
|||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
@Service
|
||||
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||
public class FormingRegistersOnOS implements ISessionStage {
|
||||
|
|
@ -45,7 +44,7 @@ public class FormingRegistersOnOS implements ISessionStage {
|
|||
FormingRegistersOnOSPayload payload = (FormingRegistersOnOSPayload) task.getData();
|
||||
switch (task.getTaskType()) {
|
||||
case FormingRegistersOnOS -> {
|
||||
return createRegistryOnObligationsAndSettlementRequirements(payload.getSessionId());
|
||||
return new StageResult<>(null, true);
|
||||
}
|
||||
default -> {
|
||||
throw new IllegalStateException("Unknown task type: " + task.getTaskType());
|
||||
|
|
|
|||
|
|
@ -1,20 +1,23 @@
|
|||
package ru.spcex.clearing.session.stage.payment.group;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.service.registry.RegistryManager;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.OS_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.TS_T;
|
||||
import ru.spcex.platform.utils.collection.Pair;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.CS_T;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.LS_T;
|
||||
|
||||
public class RegistryLiabilitiesGroup {
|
||||
private static final Logger log = LoggerFactory.getLogger(RegistryLiabilitiesGroup.class);
|
||||
|
||||
|
|
@ -25,8 +28,8 @@ public class RegistryLiabilitiesGroup {
|
|||
.map(entry -> {
|
||||
Long groupId = entry.getKey();
|
||||
List<Registry> value = entry.getValue();
|
||||
Registry ls_t = obtain(value, LS_T);
|
||||
Registry cs_t = obtain(value, CS_T);
|
||||
Registry ls_t = obtain(value, OS_T);
|
||||
Registry cs_t = obtain(value, TS_T);
|
||||
if (ls_t == null || cs_t == null) {
|
||||
log.error("groupId {} registries {} failed to find LS_T/CS_T", groupId, value.stream()
|
||||
.map(Registry::getId)
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ public record RegistryTradingParams(RegistryDesignation registryDesignation,
|
|||
public final static RegistryTradingParams DM__;
|
||||
public final static RegistryTradingParams AM__;
|
||||
public final static RegistryTradingParams AS__;
|
||||
public final static RegistryTradingParams CM__;
|
||||
public final static RegistryTradingParams TM__;
|
||||
public final static RegistryTradingParams C__T;
|
||||
public final static RegistryTradingParams O__T;
|
||||
public final static RegistryTradingParams T__T;
|
||||
|
|
@ -212,7 +212,7 @@ public record RegistryTradingParams(RegistryDesignation registryDesignation,
|
|||
RegistryInstrumentType.S,
|
||||
null,
|
||||
null);
|
||||
CM__ = new RegistryTradingParams(RegistryDesignation.C,
|
||||
TM__ = new RegistryTradingParams(RegistryDesignation.T,
|
||||
RegistryInstrumentType.M,
|
||||
null,
|
||||
null);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue