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 f126a5837..fbdf859a4 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 @@ -33,7 +33,7 @@ public class RegistryManager { this.rgsImdg = rgsImdg; } - public Optional searchDmx(Registry rgs) { + public Optional searchDmxByCounterParty(Registry rgs) { if (TextUtil.isEmpty(rgs.getContract())) return Optional.empty(); String sqlCondition = String.format("(%s) and companyId = %d and contract = '%s'", RegistryCodeSqlBuilder.getInstance(DM_X).build(), @@ -43,6 +43,16 @@ public class RegistryManager { return Optional.ofNullable(dmx); } + public Optional searchDmxByCompanyId(Registry rgs) { + 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.getCompanyId(), + rgs.getContract()); + Registry dmx = rgsImdg.getFirstObjectBySQL(sqlCondition); + return Optional.ofNullable(dmx); + } + public Optional searchDmtInfo(Registry rgs) { 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'", diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ReturnDepositValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ReturnDepositValidationRule.java index 89b444376..92c4f7253 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ReturnDepositValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ReturnDepositValidationRule.java @@ -45,7 +45,7 @@ public enum ReturnDepositValidationRule implements IValidationRule rgsImdg = context.obtainMap(IMDGDistributedNames.Map_Registry, Registry.class); RegistryManager rgsMng = new RegistryManager(rgsImdg); - Optional dmx = rgsMng.searchDmx(rgs); + Optional dmx = rgsMng.searchDmxByCompanyId(rgs); if (dmx.isPresent() && RegistryStatus.OK.equalsByKey(dmx.get().getRegistryStatus()) ) { return of(ClearingError.ObligationsAlreadyCalculated); } 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 1cf219faf..6811a846d 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 @@ -125,7 +125,7 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { } Registry lm_t = lmtO.get(); //obligation by money Registry cm_t = cmtO.get(); - Optional dmx = rgsMng.searchDmx(lm_t); + Optional dmx = rgsMng.searchDmxByCounterParty(lm_t); if (dmx.isPresent()) { log.debug("LM*T#id={}, DM*X#id={} found, no action needed for group {}, skipping liability", lm_t.getId(), dmx.get().getId(), lm_t.getGroupId()); 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 9d8930645..a8017181f 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 @@ -142,7 +142,7 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { } Registry lm_t = lmtO.get(); //obligation by money Registry cm_t = cmtO.get(); - Optional dmx = rgsMng.searchDmx(lm_t); + Optional dmx = rgsMng.searchDmxByCounterParty(lm_t); if (dmx.isPresent()) { log.debug("LM*T#id={}, DM*X#id={} found, no action needed for group {}, skipping liability", lm_t.getId(), dmx.get().getId(), lm_t.getGroupId()); 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 63cd30d24..9b4fb04cc 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 @@ -87,7 +87,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage { } //вторая часть сделки - возврат депозита - Optional dmx = rgsMng.searchDmx(omtRgs); + Optional dmx = rgsMng.searchDmxByCounterParty(omtRgs); if (dmx.isPresent()) { BigDecimal dmxBalance = safeBD(dmx.get().getBalance()); log.debug("OM*T.id={} -> DM*X.id={}, dmxBalance={}, omtBalance={}",