From 1b72d20ee56e30585576d230a74e12a1a40a4aef Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 3 Jul 2024 13:06:36 +0300 Subject: [PATCH] =?UTF-8?q?1.=20=D0=BF=D0=BE=D1=80=D1=8F=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=20=D1=81=D0=BE=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=BE=20exchangeExecutionTime/exchangeExecutionId=20?= =?UTF-8?q?=D0=B2=20=D1=88=D0=B0=D0=B3=D0=B5=20=D1=81=D0=BE=D0=B7=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20liabilities=20=D0=B8=20claims=202.?= =?UTF-8?q?=20TCR/TKR/=D0=A2=D0=9A=D0=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/spcex/clearing/service/AnltSearcher.java | 2 +- .../impl/RequirementsAndObligationCreation.java | 5 +++-- .../RequirementsAndObligationCreationCompound.java | 9 ++------- .../java/ru/spcex/clearing/util/ComparatorUtil.java | 13 +++++++++++++ 4 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/util/ComparatorUtil.java diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/AnltSearcher.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/AnltSearcher.java index 37adad501..5cbac4d47 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/AnltSearcher.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/AnltSearcher.java @@ -116,7 +116,7 @@ public class AnltSearcher { return new AnltSearch(infoAcc, company, tcr, tcrList, currencyCode); } - private static final Pattern tcrPattern = Pattern.compile("(?:ТКР|TKR).*?([0-9A-Z-]{12})"); + private static final Pattern tcrPattern = Pattern.compile("(?:ТКР|TKR|TCR).*?([0-9A-Z-]{12})"); private static String getTkrCodeFromComment(String comment) { if (TextUtil.isEmpty(comment)) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java index 8d8fa8ab0..b84fd9561 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java @@ -1,7 +1,6 @@ package ru.spcex.clearing.session.stage.impl; import java.time.LocalDate; -import java.util.Comparator; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -23,6 +22,8 @@ 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.TaskType; +import static ru.spcex.clearing.util.ComparatorUtil.execIdComparator; +import static ru.spcex.clearing.util.ComparatorUtil.tradeTimeComparator; import ru.spcex.platform.classes.base.interfaces.ExecutionType; import ru.spcex.platform.enumeration.ISide; import ru.spcex.platform.enumeration.MoneyFlowSide; @@ -66,7 +67,7 @@ public class RequirementsAndObligationCreation implements ISessionStage { } protected StageResult createRegisters(List data) { - data.sort(Comparator.comparing(ExecutionCommon::getExchangeExecutionId)); + data.sort(tradeTimeComparator.thenComparing(execIdComparator)); //см. описание к #matchExecutions for (int i = 0; i < data.size(); ) { Pair matched = matchExecutions(data, i); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreationCompound.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreationCompound.java index f21bfa922..af826fb1d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreationCompound.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreationCompound.java @@ -2,7 +2,6 @@ package ru.spcex.clearing.session.stage.impl; import java.util.ArrayList; import java.util.Arrays; -import java.util.Comparator; import java.util.List; import java.util.Objects; import java.util.stream.Stream; @@ -17,6 +16,8 @@ import ru.spcex.clearing.session.stage.StageResult; import ru.spcex.clearing.session.stage.Task; import ru.spcex.clearing.session.stage.TaskType; import ru.spcex.clearing.session.stage.task.RequirementsAndObligationCreationCompoundPayload; +import static ru.spcex.clearing.util.ComparatorUtil.execIdComparator; +import static ru.spcex.clearing.util.ComparatorUtil.tradeTimeComparator; import ru.spcex.platform.classes.base.interfaces.ExecutionType; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.collection.Pair; @@ -28,12 +29,6 @@ import ru.spcex.platform.utils.collection.Pair; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class RequirementsAndObligationCreationCompound extends RequirementsAndObligationCreation { private final Logger log = LoggerFactory.getLogger(getClass()); - private static final Comparator tradeTimeComparator - = Comparator.comparing(ExecutionCommon::getExchangeExecutionTime); - - private static final Comparator execIdComparator - = Comparator.comparing(ExecutionCommon::getExchangeExecutionId); - @Autowired public RequirementsAndObligationCreationCompound(ImdgProvider imdgProvider) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/util/ComparatorUtil.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/util/ComparatorUtil.java new file mode 100644 index 000000000..a681d542f --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/util/ComparatorUtil.java @@ -0,0 +1,13 @@ +package ru.spcex.clearing.util; + +import java.util.Comparator; +import ru.clearing.classes.statics.data.execution.ExecutionCommon; + +public class ComparatorUtil { + public static final Comparator tradeTimeComparator + = Comparator.comparing(ExecutionCommon::getExchangeExecutionTime); + + public static final Comparator execIdComparator + = Comparator.comparing(ExecutionCommon::getExchangeExecutionId); + +}