From cba1772bf67601e67f0f81acdc9d31d56962f38e Mon Sep 17 00:00:00 2001 From: ialbert Date: Thu, 20 Jul 2023 13:39:13 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B5=D1=81=D1=81=D0=B8=D1=8F=20=D1=88?= =?UTF-8?q?=D0=B0=D0=B3=205=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=20=D0=BE=D0=B1=D1=8F=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D1=81=D1=82=D0=B2=20=D0=BF=D0=BE=20=D0=B2=D0=BE=D0=B7=D0=B2?= =?UTF-8?q?=D1=80=D0=B0=D1=82=D0=B0=D0=BC:=20=D0=BF=D0=BE=D0=B8=D1=81?= =?UTF-8?q?=D0=BA=20DM*X=20=D0=B8=20DM*T(info)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/service/RegistryManager.java | 13 +++- .../InspectionObligationsDepositReturn.java | 78 ++----------------- 2 files changed, 16 insertions(+), 75 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryManager.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryManager.java index f6e4c2722..baab4ae63 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryManager.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryManager.java @@ -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 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 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); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java index 744a352bf..95556413d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java @@ -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 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 dmx = searchDmx(omtRgs); + Optional 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 dmtInfo = searchDmtInfo(omtRgs); + Optional 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 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 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); - } - /** * Если УК зачисляет средства на свой ТБС */