diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java index 9150f0b07..8e23fefe6 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java @@ -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()) ); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/PaymentStateMarkService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/PaymentStateMarkService.java index 60b60b7e5..9aaf4694f 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/PaymentStateMarkService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/PaymentStateMarkService.java @@ -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; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionTerminator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionTerminator.java index ea11f5bda..6f2aaeca9 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionTerminator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionTerminator.java @@ -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()) ) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java index 06b569cc2..0c1a8aa66 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java @@ -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 obligations = registryImdg.getCollectionObjectsBySQL(registryCodeCondition); + ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); + Collection obligations = registryImdg.getCollectionObjectsByPredicate( + pb.and( + pb.sql(registryCodeCondition), + pb.equals("registryStatus", RegistryStatus.OK.getKey()) + ) + ); List obligationsByMoney = obligations.stream().filter(registry -> new RegistryTradingParams(RegistryDesignation.L, RegistryInstrumentType.M, null, RegistryUnit.T).equalByRegistry( diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java index efa48f3cd..0b17bf4b7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java @@ -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(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java index 40c642dee..a5c24d42a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java @@ -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 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 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; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDepositReturn.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDepositReturn.java index 050450fd5..2ac818e3f 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDepositReturn.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDepositReturn.java @@ -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 obligations = registryImdg.getCollectionObjectsByPredicate(prdct) @@ -132,8 +134,8 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { ArrayList pmtCreated = new ArrayList<>(); for (Map.Entry> entry : registriesByGroup.entrySet()) { List groupRgs = entry.getValue(); - Optional lmtO = groupRgs.stream().filter(rgs -> RegistryManager.equalsByCode(LM_T, rgs)).findFirst(); - Optional cmtO = groupRgs.stream().filter(rgs -> RegistryManager.equalsByCode(CM_T, rgs)).findFirst(); + Optional lmtO = groupRgs.stream().filter(rgs -> RegistryManager.equalsByCode(RegistryTradingParams.OM_T, rgs)).findFirst(); + Optional 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; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java index 7ed8bec5f..30d788d3c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java @@ -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 rgsAll = registryImdg.getCollectionObjectsByPredicate(prdct) @@ -130,7 +132,7 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { log.debug("changing assets by CM*T"); List 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> entry : registriesByGroup.entrySet()) { List groupRgs = entry.getValue(); - Optional lmtO = groupRgs.stream().filter(rgs -> equalByRgs(LM_T, rgs)).findFirst(); - Optional cmtO = groupRgs.stream().filter(rgs -> equalByRgs(CM_T, rgs)).findFirst(); + Optional lmtO = groupRgs.stream().filter(rgs -> equalByRgs(RegistryTradingParams.OM_T, rgs)).findFirst(); + Optional 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; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecondaryT0.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecondaryT0.java index dfdd41500..2ed66a1c2 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecondaryT0.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecondaryT0.java @@ -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 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 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; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java index 6a10d19fd..4bcd7c6c7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java @@ -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 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 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; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingRegistersOnOS.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingRegistersOnOS.java index 932ea2551..1515150fb 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingRegistersOnOS.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingRegistersOnOS.java @@ -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()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/RegistryLiabilitiesGroup.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/RegistryLiabilitiesGroup.java index b6934aecc..2db0608b7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/RegistryLiabilitiesGroup.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/RegistryLiabilitiesGroup.java @@ -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 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) diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java index 6976b2cf8..39ef654c0 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java @@ -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);