1. порядок сортировки по exchangeExecutionTime/exchangeExecutionId в шаге создания liabilities и claims

2. TCR/TKR/ТКР
This commit is contained in:
ialbert 2024-07-03 13:06:36 +03:00
parent 24fe8346d3
commit 1b72d20ee5
4 changed files with 19 additions and 10 deletions

View file

@ -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)) {

View file

@ -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<ExecutionCommon> data) {
data.sort(Comparator.comparing(ExecutionCommon::getExchangeExecutionId));
data.sort(tradeTimeComparator.thenComparing(execIdComparator));
//см. описание к #matchExecutions
for (int i = 0; i < data.size(); ) {
Pair<ExecutionCommon, ExecutionCommon> matched = matchExecutions(data, i);

View file

@ -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<ExecutionCommon> tradeTimeComparator
= Comparator.comparing(ExecutionCommon::getExchangeExecutionTime);
private static final Comparator<ExecutionCommon> execIdComparator
= Comparator.comparing(ExecutionCommon::getExchangeExecutionId);
@Autowired
public RequirementsAndObligationCreationCompound(ImdgProvider imdgProvider) {

View file

@ -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<ExecutionCommon> tradeTimeComparator
= Comparator.comparing(ExecutionCommon::getExchangeExecutionTime);
public static final Comparator<ExecutionCommon> execIdComparator
= Comparator.comparing(ExecutionCommon::getExchangeExecutionId);
}