From 4a0df9bb48266691e5b025f87fab25b36964cb8a Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 16 Nov 2023 16:29:45 +0300 Subject: [PATCH] =?UTF-8?q?dbf-importer=20swt-importer=20=D0=97=D0=B0?= =?UTF-8?q?=D0=B1=D0=B8=D1=80=D0=B0=D1=82=D1=8C=20=D0=B8=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=B0=D1=82=D1=8B=D0=B2=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=8F=D0=B4=D0=BA=D0=B5=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BD=D0=B0=20sftp=20(2))?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbf/importer/services/DBFImporterService.java | 12 +++++++++++- .../swt/importer/services/SWTImporterService.java | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/DBFImporterService.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/DBFImporterService.java index 358604067..111a222aa 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/DBFImporterService.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/DBFImporterService.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import ru.spcex.clearing.dbf.importer.logic.Processor; import ru.spcex.clearing.dbf.importer.logic.data.ResultContainer; import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable; +import ru.spcex.platform.utils.collection.Pair; import java.io.File; import java.nio.file.Path; @@ -59,13 +60,22 @@ public class DBFImporterService { } else { log.trace("no files were found"); } + + // Сортировка по возрастанию времени изменения - обрабатывать только в таком порядке + List> orderByTimeFiles = new ArrayList<>(); for (Map.Entry> newFilesEntry : newFiles.entrySet()) { ETable currTable = newFilesEntry.getKey(); List fileList = newFilesEntry.getValue(); for (File dbfFile : fileList) { - processor.process(ResultContainer.createNewTask(currTable, dbfFile)); + orderByTimeFiles.add(new Pair<>(dbfFile, currTable)); } } + orderByTimeFiles.sort(Comparator.comparingLong(iF -> iF.getFirst().lastModified())); + for (Pair newFilesEntry : orderByTimeFiles) { + ETable currTable = newFilesEntry.getSecond(); + File dbfFile = newFilesEntry.getFirst(); + processor.process(ResultContainer.createNewTask(currTable, dbfFile)); + } } finally { if (newFiles != null && newFiles.size() > 0) { cleanFiles(newFiles); diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/services/SWTImporterService.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/services/SWTImporterService.java index b7b65395f..1a2b841c1 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/services/SWTImporterService.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/services/SWTImporterService.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import ru.spcex.clearing.swt.importer.logic.Processor; import ru.spcex.clearing.swt.importer.logic.data.ResultContainer; import ru.spcex.clearing.swt.importer.logic.data.enums.ETable; +import ru.spcex.platform.utils.collection.Pair; import java.io.File; import java.nio.file.Path; @@ -81,13 +82,21 @@ public class SWTImporterService { } else { log.trace("no files were found"); } + // Сортировка по возрастанию времени изменения - обрабатывать только в таком порядке + List> orderByTimeFiles = new ArrayList<>(); for (Map.Entry> newFilesEntry : newFiles.entrySet()) { ETable currTable = newFilesEntry.getKey(); List fileList = newFilesEntry.getValue(); for (File swtFile : fileList) { - processor.process(ResultContainer.createNewTask(currTable, swtFile)); + orderByTimeFiles.add(new Pair<>(swtFile, currTable)); } } + orderByTimeFiles.sort(Comparator.comparingLong(iF -> iF.getFirst().lastModified())); + for (Pair newFilesEntry : orderByTimeFiles) { + ETable currTable = newFilesEntry.getSecond(); + File swtFile = newFilesEntry.getFirst(); + processor.process(ResultContainer.createNewTask(currTable, swtFile)); + } } finally { if (newFiles != null && newFiles.size() > 0) { cleanFiles(newFiles);