Merge branch 'dev' into spring-state-machine-template-v2

This commit is contained in:
ialbert 2025-06-30 14:49:48 +03:00
commit a4ed85b2e2
2 changed files with 8 additions and 13 deletions

View file

@ -22,21 +22,17 @@ public record ExecUploadKey(LocalDate tradeDate, Long exchangeExecutionId, Strin
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!(o instanceof ExecUploadKey that)) return false;
ExecUploadKey that = (ExecUploadKey) o;
if (!Objects.equals(tradeDate, that.tradeDate)) return false;
if (!Objects.equals(exchangeExecutionId, that.exchangeExecutionId))
return false;
return Objects.equals(side, that.side);
return Objects.equals(side, that.side) && Objects.equals(market, that.market) && Objects.equals(tradeDate, that.tradeDate) && Objects.equals(exchangeExecutionId, that.exchangeExecutionId);
}
@Override
public int hashCode() {
int result = tradeDate != null ? tradeDate.hashCode() : 0;
result = 31 * result + (exchangeExecutionId != null ? exchangeExecutionId.hashCode() : 0);
result = 31 * result + (side != null ? side.hashCode() : 0);
int result = Objects.hashCode(tradeDate);
result = 31 * result + Objects.hashCode(exchangeExecutionId);
result = 31 * result + Objects.hashCode(market);
result = 31 * result + Objects.hashCode(side);
return result;
}
}

View file

@ -42,8 +42,7 @@ 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.RequirementsAndObligationCreationPayload;
import static ru.spcex.clearing.util.ComparatorUtil.execIdComparator;
import static ru.spcex.clearing.util.ComparatorUtil.tradeTimeComparator;
import static ru.spcex.clearing.util.ComparatorUtil.*;
import ru.spcex.platform.classes.base.interfaces.ExecutionType;
import ru.spcex.platform.enumeration.ISide;
import ru.spcex.platform.enumeration.MoneyFlowSide;
@ -206,7 +205,7 @@ public class RequirementsAndObligationCreation implements ISessionStage {
protected StageResult<?> createRegisters(List<ExecutionCommon> data, Long sessionId, Map<Long, Registry> rgsStorage) {
this.ckTcr = null;
data.sort(tradeTimeComparator.thenComparing(execIdComparator));
data.sort(tradeTimeComparator.thenComparing(execIdComparator).thenComparing(execMarketComparator));
Map<Long, Registry> newRgss = rgsStorage != null ? rgsStorage : storageMap(data);
//см. описание к #matchExecutions
for (int i = 0; i < data.size(); ) {