remove C/L

This commit is contained in:
ialbert 2024-08-02 19:17:09 +03:00
parent d7b3189a80
commit 360414e75d
13 changed files with 116 additions and 75 deletions

View file

@ -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())
);

View file

@ -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;

View file

@ -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())
)

View file

@ -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(

View file

@ -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();

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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());

View file

@ -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)

View file

@ -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);