From 4478644316306ade5d07f3c95cd9e1e96f9aeefa Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 24 May 2023 11:54:29 +0300 Subject: [PATCH] some refactoring --- .../stage/impl/FormingPaymentInstruction.java | 67 +++++++++++++++---- 1 file changed, 54 insertions(+), 13 deletions(-) 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 49302f1b4..69a6ce97f 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 @@ -13,12 +13,14 @@ import ru.spcex.clearing.service.builder.sql.RegistryCodeSqlBuilder; import ru.spcex.clearing.session.stage.ISessionStage; import ru.spcex.clearing.session.stage.StageResult; import ru.spcex.clearing.session.stage.Task; +import ru.spcex.platform.enumeration.RegistryCapacity; import ru.spcex.platform.enumeration.RegistryDesignation; import ru.spcex.platform.enumeration.RegistryInstrumentType; 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; +import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.enumeration.SimpleMessageResolver; @@ -69,7 +71,11 @@ public class FormingPaymentInstruction implements ISessionStage { Collection obligations = registryImdg.getCollectionObjectsBySQL(registryCodeCondition); List obligationsByMoney = obligations.stream().filter(registry -> - new RegistryTradingParams(RegistryDesignation.L, RegistryInstrumentType.M, null, RegistryUnit.T).equalByRegistry(registry)) + new RegistryTradingParams(RegistryDesignation.L, RegistryInstrumentType.M, null, RegistryUnit.T).equalByRegistry( + IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, registry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) .toList(); for (Registry obligationByMoney : obligationsByMoney) { @@ -85,11 +91,20 @@ public class FormingPaymentInstruction implements ISessionStage { RegistryInstrumentType.M, null, RegistryUnit.B); for (Registry relatedRegistry : relatedRegistries) { - if (registryTradingParamsF.equalByRegistry(relatedRegistry)) { + if (registryTradingParamsF.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { relatedRegistry.setBalance(relatedRegistry.getBalance().subtract(obligationByMoney.getBalance())); - } else if (registryTradingParamsT.equalByRegistry(relatedRegistry)) { + } else if (registryTradingParamsT.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { relatedRegistry.setSettledDebit(relatedRegistry.getSettledDebit().add(obligationByMoney.getBalance())); - } else if (registryTradingParamsB.equalByRegistry(relatedRegistry)) { + } else if (registryTradingParamsB.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { relatedRegistry.setBalance(relatedRegistry.getBalance().add(obligationByMoney.getBalance())); } registryImdg.update(relatedRegistry); @@ -97,7 +112,10 @@ public class FormingPaymentInstruction implements ISessionStage { } List requirementsByIssue = obligations.stream().filter(registry -> - new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.S, null, RegistryUnit.T).equalByRegistry(registry)) + new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.S, null, RegistryUnit.T).equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, registry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) .toList(); for (Registry requirementByIssue : requirementsByIssue) { @@ -109,7 +127,10 @@ public class FormingPaymentInstruction implements ISessionStage { RegistryInstrumentType.S, null, RegistryUnit.T); for (Registry relatedRegistry : relatedRegistries) { - if (registryTradingParamsA.equalByRegistry(relatedRegistry)) { + if (registryTradingParamsA.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { relatedRegistry.setSettledDebit(relatedRegistry.getSettledDebit().add(requirementByIssue.getBalance())); } registryImdg.update(relatedRegistry); @@ -117,7 +138,11 @@ public class FormingPaymentInstruction implements ISessionStage { } List requirementsByMoney = obligations.stream().filter(registry -> - new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.M, null, RegistryUnit.T).equalByRegistry(registry)) + new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.M, null, RegistryUnit.T).equalByRegistry( + IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, registry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) .toList(); for (Registry requirementByMoney : requirementsByMoney) { @@ -129,7 +154,10 @@ public class FormingPaymentInstruction implements ISessionStage { RegistryInstrumentType.M, null, RegistryUnit.T); for (Registry relatedRegistry : relatedRegistries) { - if (registryTradingParamsA.equalByRegistry(relatedRegistry)) { + if (registryTradingParamsA.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { relatedRegistry.setSettledDebit(relatedRegistry.getSettledDebit().add(requirementByMoney.getBalance())); } registryImdg.update(relatedRegistry); @@ -137,7 +165,11 @@ public class FormingPaymentInstruction implements ISessionStage { } List obligationsByIssue = obligations.stream().filter(registry -> - new RegistryTradingParams(RegistryDesignation.L, RegistryInstrumentType.S, null, RegistryUnit.T).equalByRegistry(registry)) + new RegistryTradingParams(RegistryDesignation.L, RegistryInstrumentType.S, null, RegistryUnit.T).equalByRegistry( + IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, registry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) .toList(); for (Registry obligationByIssue : obligationsByIssue) { @@ -153,11 +185,20 @@ public class FormingPaymentInstruction implements ISessionStage { RegistryInstrumentType.S, null, RegistryUnit.B); for (Registry relatedRegistry : relatedRegistries) { - if (registryTradingParamsF.equalByRegistry(relatedRegistry)) { + if (registryTradingParamsF.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { relatedRegistry.setBalance(relatedRegistry.getBalance().subtract(obligationByIssue.getBalance())); - } else if (registryTradingParamsT.equalByRegistry(relatedRegistry)) { + } else if (registryTradingParamsT.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { relatedRegistry.setSettledDebit(relatedRegistry.getSettledDebit().add(obligationByIssue.getBalance())); - } else if (registryTradingParamsB.equalByRegistry(relatedRegistry)) { + } else if (registryTradingParamsB.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), + IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), + IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { relatedRegistry.setBalance(relatedRegistry.getBalance().add(obligationByIssue.getBalance())); } registryImdg.update(relatedRegistry); @@ -185,7 +226,7 @@ public class FormingPaymentInstruction implements ISessionStage { return new StageResult(null, true); } - private PaymentInstruction createPaymentInstruction(Registry registry, BigDecimal balance){ + private PaymentInstruction createPaymentInstruction(Registry registry, BigDecimal balance) { PaymentInstruction paymentInstruction = new PaymentInstruction(); paymentInstruction.setSenderId(registry.getCompanyId()); paymentInstruction.setAddresseeId(registry.getCounterPartyId());