diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregator.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregator.java index b444b55..7be1c9d 100644 --- a/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregator.java +++ b/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregator.java @@ -9,13 +9,11 @@ import ru.nbch.indicsearchservice.model.enums.DataType; import ru.nbch.indicsearchservice.model.enums.SearchParameter; public interface FileAggregator { - List getSuitableDataTypes(); - List getSuitableSearchParameters(); - List getRequiredTables(); - - default boolean isSuitableForDataTypeAndSearchParameter(DataType dataType, SearchParameter searchParameter) { - return getSuitableDataTypes().contains(dataType) && getSuitableSearchParameters().contains(searchParameter); - } - - Path aggregateFiles(Map tableFileMap, String memberCode, MutableLong rowCounter, UUID taskId); + Path aggregateFiles(UUID taskId, + DataType dataType, + SearchParameter searchParameter, + String searchValue, + String memberCode, + Map tableFileMap, + MutableLong rowCounter); } diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregatorCommon.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregatorCommon.java index 27fc4c0..c33705a 100644 --- a/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregatorCommon.java +++ b/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregatorCommon.java @@ -52,7 +52,12 @@ public class FileAggregatorCommon { "RU_ALL_ARREARS" ); - void aggregateRuUidFiles(BufferedWriter aggregatedFileWriter, Map tableFileMap, String memberCode, MutableLong rowCounter) { + void aggregateRuUidFiles(BufferedWriter aggregatedFileWriter, + Map tableFileMap, + String memberCode, + String acctNum, + String uuid, + MutableLong rowCounter) { try (BufferedReader ruUidFileReader = Files.newBufferedReader(tableFileMap.get("RU_UID"))) { Map childTablesReadersMap = new LinkedHashMap<>(); for (String tableName : RU_UID_CHILD_TABLES) { @@ -75,6 +80,21 @@ public class FileAggregatorCommon { continue; } + if (acctNum != null) { + Optional foundAcctNum = IndicSearchCommon.getRowValue(lineList, "ACCT_NUM"); + + if (foundAcctNum.isPresent() && !foundAcctNum.get().equals(acctNum)) { + continue; + } + } + if (uuid != null) { + Optional foundUuid = IndicSearchCommon.getRowValue(lineList, "UUID"); + + if (foundUuid.isPresent() && !foundUuid.get().equals(uuid)) { + continue; + } + } + aggregatedFileWriter.write(ruUidLine); aggregatedFileWriter.newLine(); rowCounter.increment(); diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidFileAggregator.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidFileAggregator.java deleted file mode 100644 index 6fdf91b..0000000 --- a/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidFileAggregator.java +++ /dev/null @@ -1,95 +0,0 @@ -package ru.nbch.indicsearchservice.aggregator; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardOpenOption; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; -import org.apache.commons.lang3.mutable.MutableLong; -import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.config.settings.ApplicationSettings; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; -import ru.nbch.indicsearchservice.util.IndicSearchCommon; - -@Component -public class GutdfFidFileAggregator implements FileAggregator { - private static final List REQUIRED_TABLES = List.of( - "RU_UID", - "RU_APPLICATION", - "RU_OBLIGPARTTAKE", - "RU_BANKRUPTCY", - "RU_SETTLED", - "RU_OTHERLEGAL", - "RU_CAPABILITY", - "RU_DEBT_BURDEN_INFO" - ); - - private final ApplicationSettings settings; - private final FileAggregatorCommon fileAggregatorCommon; - - public GutdfFidFileAggregator(ApplicationSettings settings, - FileAggregatorCommon fileAggregatorCommon) { - this.settings = settings; - this.fileAggregatorCommon = fileAggregatorCommon; - } - - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - - @Override - public List getRequiredTables() { - return REQUIRED_TABLES; - } - - @Override - public Path aggregateFiles(Map tableFileMap, String memberCode, MutableLong rowCounter, UUID taskId) { - Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv"); - - try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) { - for (String tableName : getRequiredTables()) { - if (tableName.equals("RU_UID")) { - fileAggregatorCommon.aggregateRuUidFiles(aggregatedFileWriter, tableFileMap, memberCode, rowCounter); - } else if (tableName.equals("RU_BANKRUPTCY")) { - fileAggregatorCommon.aggregateBlocksTableFile(tableName, aggregatedFileWriter, tableFileMap, memberCode, rowCounter); - } else { - try (BufferedReader reader = Files.newBufferedReader(tableFileMap.get(tableName))) { - String line; - - while ((line = reader.readLine()) != null) { - Optional foundMemberCode = IndicSearchCommon.getRowValue(line, "MEMBER_CODE"); - - if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) { - continue; - } - - aggregatedFileWriter.write(line); - aggregatedFileWriter.newLine(); - rowCounter.increment(); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - aggregatedFileWriter.write("EOF"); - } catch (IOException e) { - throw new RuntimeException(e); - } - - return aggregatedFile; - } -} diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidPassportOgrnFileAggregator.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidPassportOgrnFileAggregator.java new file mode 100644 index 0000000..1e3b58b --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidPassportOgrnFileAggregator.java @@ -0,0 +1,92 @@ +package ru.nbch.indicsearchservice.aggregator; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import org.apache.commons.lang3.mutable.MutableLong; +import org.springframework.stereotype.Component; +import ru.nbch.indicsearchservice.config.settings.ApplicationSettings; +import ru.nbch.indicsearchservice.model.enums.DataType; +import ru.nbch.indicsearchservice.model.enums.SearchParameter; +import ru.nbch.indicsearchservice.util.IndicSearchCommon; + +@Component +public class GutdfFidPassportOgrnFileAggregator implements FileAggregator { + private static final List REQUIRED_TABLES = List.of( + "RU_UID", + "RU_APPLICATION", + "RU_OBLIGPARTTAKE", + "RU_BANKRUPTCY", + "RU_SETTLED", + "RU_OTHERLEGAL", + "RU_CAPABILITY", + "RU_DEBT_BURDEN_INFO" + ); + + private final ApplicationSettings settings; + private final FileAggregatorCommon fileAggregatorCommon; + + public GutdfFidPassportOgrnFileAggregator(ApplicationSettings settings, + FileAggregatorCommon fileAggregatorCommon) { + this.settings = settings; + this.fileAggregatorCommon = fileAggregatorCommon; + } + + @Override + public Path aggregateFiles(UUID taskId, + DataType dataType, + SearchParameter searchParameter, + String searchValue, + String memberCode, + Map tableFileMap, + MutableLong rowCounter) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.FID || searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) { + Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv"); + + try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) { + for (String tableName : REQUIRED_TABLES) { + if (tableName.equals("RU_UID")) { + fileAggregatorCommon.aggregateRuUidFiles(aggregatedFileWriter, tableFileMap, memberCode, null, null, rowCounter); + } else if (tableName.equals("RU_BANKRUPTCY")) { + fileAggregatorCommon.aggregateBlocksTableFile(tableName, aggregatedFileWriter, tableFileMap, memberCode, rowCounter); + } else { + try (BufferedReader reader = Files.newBufferedReader(tableFileMap.get(tableName))) { + String line; + + while ((line = reader.readLine()) != null) { + Optional foundMemberCode = IndicSearchCommon.getRowValue(line, "MEMBER_CODE"); + + if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) { + continue; + } + + aggregatedFileWriter.write(line); + aggregatedFileWriter.newLine(); + rowCounter.increment(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + aggregatedFileWriter.write("EOF"); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return aggregatedFile; + } + } + + return null; + } +} diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfRuApplicationFileAggregator.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfRuApplicationFileAggregator.java new file mode 100644 index 0000000..a508c1d --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfRuApplicationFileAggregator.java @@ -0,0 +1,77 @@ +package ru.nbch.indicsearchservice.aggregator; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import org.apache.commons.lang3.mutable.MutableLong; +import org.springframework.stereotype.Component; +import ru.nbch.indicsearchservice.config.settings.ApplicationSettings; +import ru.nbch.indicsearchservice.model.enums.DataType; +import ru.nbch.indicsearchservice.model.enums.SearchParameter; +import ru.nbch.indicsearchservice.util.IndicSearchCommon; + +@Component +public class GutdfRuApplicationFileAggregator implements FileAggregator { + private final ApplicationSettings settings; + + public GutdfRuApplicationFileAggregator(ApplicationSettings settings) { + this.settings = settings; + } + + @Override + public Path aggregateFiles(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap, MutableLong rowCounter) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.APPLICATION_NUMBER || searchParameter == SearchParameter.OLD_APP_NUM) { + Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv"); + + try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND); + BufferedReader reader = Files.newBufferedReader(tableFileMap.get("RU_APPLICATION"))) { + String line; + + while ((line = reader.readLine()) != null) { + Optional foundMemberCode = IndicSearchCommon.getRowValue(line, "MEMBER_CODE"); + + if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) { + continue; + } + + if (searchParameter == SearchParameter.APPLICATION_NUMBER && searchValue != null) { + searchValue = searchValue.length() > 38 ? searchValue.substring(0, 38) : searchValue; + + Optional foundApplicationNumber = IndicSearchCommon.getRowValue(line, "APPLICATION_NUMBER"); + + if (foundApplicationNumber.isPresent() && !foundApplicationNumber.get().equals(searchValue)) { + continue; + } + } + if (searchParameter == SearchParameter.OLD_APP_NUM && searchValue != null) { + Optional foundOldAppNum = IndicSearchCommon.getRowValue(line, "OLD_APP_NUM"); + + if (foundOldAppNum.isPresent() && !foundOldAppNum.get().equals(searchValue)) { + continue; + } + } + + aggregatedFileWriter.write(line); + aggregatedFileWriter.newLine(); + rowCounter.increment(); + } + + aggregatedFileWriter.write("EOF"); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return aggregatedFile; + } + } + + return null; + } +} diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfRuUidFileAggregator.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfRuUidFileAggregator.java new file mode 100644 index 0000000..1b7d81f --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfRuUidFileAggregator.java @@ -0,0 +1,55 @@ +package ru.nbch.indicsearchservice.aggregator; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import org.apache.commons.lang3.mutable.MutableLong; +import org.springframework.stereotype.Component; +import ru.nbch.indicsearchservice.config.settings.ApplicationSettings; +import ru.nbch.indicsearchservice.model.enums.DataType; +import ru.nbch.indicsearchservice.model.enums.SearchParameter; +import ru.nbch.indicsearchservice.util.IndicSearchCommon; + +@Component +public class GutdfRuUidFileAggregator implements FileAggregator { + private final ApplicationSettings settings; + private final FileAggregatorCommon fileAggregatorCommon; + + public GutdfRuUidFileAggregator(ApplicationSettings settings, + FileAggregatorCommon fileAggregatorCommon) { + this.settings = settings; + this.fileAggregatorCommon = fileAggregatorCommon; + } + + @Override + public Path aggregateFiles(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap, MutableLong rowCounter) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.UUID || searchParameter == SearchParameter.ACCT_NUM) { + Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv"); + + try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) { + if (searchParameter == SearchParameter.UUID) { + fileAggregatorCommon.aggregateRuUidFiles(aggregatedFileWriter, tableFileMap, memberCode, null, searchValue, rowCounter); + } else { + fileAggregatorCommon.aggregateRuUidFiles(aggregatedFileWriter, tableFileMap, memberCode, searchValue, null, rowCounter); + } + + aggregatedFileWriter.write("EOF"); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return aggregatedFile; + } + } + + return null; + } +} diff --git a/src/main/java/ru/nbch/indicsearchservice/exporter/ExcelExporter.java b/src/main/java/ru/nbch/indicsearchservice/exporter/ExcelExporter.java index 4f12630..563b00e 100644 --- a/src/main/java/ru/nbch/indicsearchservice/exporter/ExcelExporter.java +++ b/src/main/java/ru/nbch/indicsearchservice/exporter/ExcelExporter.java @@ -41,7 +41,11 @@ public class ExcelExporter implements Exporter { this.settings = settings; } - public void writeExcelFile(Path aggregatedFile, UUID taskId, Long totalRows) { + public void writeExcelFile(@Nullable Path aggregatedFile, UUID taskId, Long totalRows) { + if (aggregatedFile == null) { + return; + } + Path excelFile = settings.getStorageDirectory().toPath().resolve(taskId.toString() + ".xlsx"); try (OutputStream os = Files.newOutputStream(excelFile); diff --git a/src/main/java/ru/nbch/indicsearchservice/exporter/JsonExporter.java b/src/main/java/ru/nbch/indicsearchservice/exporter/JsonExporter.java index 2736530..9b77759 100644 --- a/src/main/java/ru/nbch/indicsearchservice/exporter/JsonExporter.java +++ b/src/main/java/ru/nbch/indicsearchservice/exporter/JsonExporter.java @@ -1,5 +1,6 @@ package ru.nbch.indicsearchservice.exporter; +import jakarta.annotation.Nullable; import java.io.BufferedReader; import java.io.IOException; import java.nio.file.Files; @@ -30,7 +31,11 @@ public class JsonExporter implements Exporter { this.jsonMapper = jsonMapper; } - public void writeJsonFile(Path aggregatedFile, UUID taskId) { + public void writeJsonFile(@Nullable Path aggregatedFile, UUID taskId) { + if (aggregatedFile == null) { + return; + } + Path jsonFile = settings.getStorageDirectory().toPath().resolve(taskId.toString() + ".json"); try (BufferedReader reader = Files.newBufferedReader(aggregatedFile); diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/FirstLevelTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/FirstLevelTableLoader.java new file mode 100644 index 0000000..da9bb84 --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/loader/FirstLevelTableLoader.java @@ -0,0 +1,16 @@ +package ru.nbch.indicsearchservice.loader; + +import java.nio.file.Path; +import java.util.Map; +import java.util.UUID; +import ru.nbch.indicsearchservice.model.enums.DataType; +import ru.nbch.indicsearchservice.model.enums.SearchParameter; + +public interface FirstLevelTableLoader extends TableLoader { + void searchBy(UUID taskId, + DataType dataType, + SearchParameter searchParameter, + String searchValue, + String memberCode, + Map tableFileMap); +} diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/IdTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/IdTableLoader.java new file mode 100644 index 0000000..c7f1361 --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/loader/IdTableLoader.java @@ -0,0 +1,71 @@ +package ru.nbch.indicsearchservice.loader; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import ru.nbch.indicsearchservice.model.enums.DataType; +import ru.nbch.indicsearchservice.model.enums.SearchParameter; +import ru.nbch.indicsearchservice.util.MapperHolder; + +@Component +public class IdTableLoader implements FirstLevelTableLoader { + private final MapperHolder mapperHolder; + private final List tableLoaders; + + public IdTableLoader(MapperHolder mapperHolder, + List tableLoaders) { + this.mapperHolder = mapperHolder; + this.tableLoaders = tableLoaders; + } + + @Override + public String getTableName() { + return "ID"; + } + + @Override + @Transactional(readOnly = true) + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) { + Set foundFids = new HashSet<>(); + + try (Cursor> cursor = searchParameter == SearchParameter.OGRN ? + mapperHolder.getIndicMapper().findFidsByOgrnFromId(searchValue) : + mapperHolder.getIndicMapper().findFidsByPassportFromId(searchValue)) { + for (LinkedHashMap row : cursor) { + for (Map.Entry entry : row.entrySet()) { + String columnName = entry.getKey(); + Object columnValue = entry.getValue(); + + if (columnName != null && columnValue != null) { + if (columnName.equals("FID")) { + foundFids.add(Integer.parseInt(columnValue.toString())); + } + } + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + + tableLoaders.parallelStream().forEach(tl -> tl.searchById( + taskId, + dataType, + searchParameter, + foundFids, + memberCode, + tableFileMap + )); + } + } + } +} diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuApplicationTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuApplicationTableLoader.java index 8cc4502..47321f7 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuApplicationTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuApplicationTableLoader.java @@ -1,9 +1,14 @@ package ru.nbch.indicsearchservice.loader; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import ru.nbch.indicsearchservice.model.enums.DataType; @@ -12,7 +17,7 @@ import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuApplicationTableLoader implements TableLoader { +public class RuApplicationTableLoader implements FirstLevelTableLoader, TableLoaderForId { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +27,6 @@ public class RuApplicationTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_APPLICATION"; @@ -39,7 +34,37 @@ public class RuApplicationTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuApplication(fidSet), taskId); + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.APPLICATION_NUMBER || searchParameter == SearchParameter.OLD_APP_NUM) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromRuApplication(memberCode)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else if (searchParameter == SearchParameter.FID) { + Set fids = Set.of(Integer.parseInt(searchValue)); + + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuApplication(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } + + @Override + @Transactional(readOnly = true) + public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuApplication(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyTableLoader.java index 9966ac5..cc3a6a8 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyTableLoader.java @@ -1,9 +1,14 @@ package ru.nbch.indicsearchservice.loader; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import ru.nbch.indicsearchservice.model.enums.DataType; @@ -12,7 +17,7 @@ import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuBankruptcyTableLoader implements TableLoader { +public class RuBankruptcyTableLoader implements FirstLevelTableLoader, TableLoaderForId { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +27,6 @@ public class RuBankruptcyTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_BANKRUPTCY"; @@ -39,7 +34,31 @@ public class RuBankruptcyTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuBankruptcy(fidSet), taskId); + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.FID) { + Set fids = Set.of(Integer.parseInt(searchValue)); + + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcy(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } + + @Override + @Transactional(readOnly = true) + public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcy(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCapabilityTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuCapabilityTableLoader.java index f9fdb00..48ae213 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCapabilityTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuCapabilityTableLoader.java @@ -1,9 +1,14 @@ package ru.nbch.indicsearchservice.loader; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import ru.nbch.indicsearchservice.model.enums.DataType; @@ -12,7 +17,7 @@ import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuCapabilityTableLoader implements TableLoader { +public class RuCapabilityTableLoader implements FirstLevelTableLoader, TableLoaderForId { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +27,6 @@ public class RuCapabilityTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_CAPABILITY"; @@ -39,7 +34,31 @@ public class RuCapabilityTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCapability(fidSet), taskId); + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.FID) { + Set fids = Set.of(Integer.parseInt(searchValue)); + + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCapability(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } + + @Override + @Transactional(readOnly = true) + public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCapability(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuDebtBurdenInfoTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuDebtBurdenInfoTableLoader.java index 3b72442..bbfb18a 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuDebtBurdenInfoTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuDebtBurdenInfoTableLoader.java @@ -1,9 +1,14 @@ package ru.nbch.indicsearchservice.loader; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import ru.nbch.indicsearchservice.model.enums.DataType; @@ -12,7 +17,7 @@ import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuDebtBurdenInfoTableLoader implements TableLoader { +public class RuDebtBurdenInfoTableLoader implements FirstLevelTableLoader, TableLoaderForId { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +27,6 @@ public class RuDebtBurdenInfoTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_DEBT_BURDEN_INFO"; @@ -39,7 +34,31 @@ public class RuDebtBurdenInfoTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuDebtBurdenInfo(fidSet), taskId); + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.FID) { + Set fids = Set.of(Integer.parseInt(searchValue)); + + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDebtBurdenInfo(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } + + @Override + @Transactional(readOnly = true) + public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDebtBurdenInfo(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligPartTakeTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligPartTakeTableLoader.java index b5d5790..00ac126 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligPartTakeTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligPartTakeTableLoader.java @@ -1,9 +1,14 @@ package ru.nbch.indicsearchservice.loader; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import ru.nbch.indicsearchservice.model.enums.DataType; @@ -12,7 +17,7 @@ import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuObligPartTakeTableLoader implements TableLoader { +public class RuObligPartTakeTableLoader implements FirstLevelTableLoader, TableLoaderForId { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +27,6 @@ public class RuObligPartTakeTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_OBLIGPARTTAKE"; @@ -39,7 +34,31 @@ public class RuObligPartTakeTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligPartTake(fidSet), taskId); + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.FID) { + Set fids = Set.of(Integer.parseInt(searchValue)); + + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligPartTake(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } + + @Override + @Transactional(readOnly = true) + public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligPartTake(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuOtherLegalTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuOtherLegalTableLoader.java index 17246b7..e49819f 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuOtherLegalTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuOtherLegalTableLoader.java @@ -1,9 +1,14 @@ package ru.nbch.indicsearchservice.loader; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import ru.nbch.indicsearchservice.model.enums.DataType; @@ -12,7 +17,7 @@ import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuOtherLegalTableLoader implements TableLoader { +public class RuOtherLegalTableLoader implements FirstLevelTableLoader, TableLoaderForId { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +27,6 @@ public class RuOtherLegalTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_OTHERLEGAL"; @@ -39,7 +34,31 @@ public class RuOtherLegalTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuOtherLegal(fidSet), taskId); + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.FID) { + Set fids = Set.of(Integer.parseInt(searchValue)); + + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOtherLegal(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } + + @Override + @Transactional(readOnly = true) + public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOtherLegal(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuSettledTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuSettledTableLoader.java index 3bff805..564fac4 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuSettledTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuSettledTableLoader.java @@ -1,9 +1,14 @@ package ru.nbch.indicsearchservice.loader; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import ru.nbch.indicsearchservice.model.enums.DataType; @@ -12,7 +17,7 @@ import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuSettledTableLoader implements TableLoader { +public class RuSettledTableLoader implements FirstLevelTableLoader, TableLoaderForId { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +27,6 @@ public class RuSettledTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_SETTLED"; @@ -39,7 +34,31 @@ public class RuSettledTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuSettled(fidSet), taskId); + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.FID) { + Set fids = Set.of(Integer.parseInt(searchValue)); + + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSettled(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } + + @Override + @Transactional(readOnly = true) + public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSettled(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuUidTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuUidTableLoader.java index 82451b9..1935aed 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuUidTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuUidTableLoader.java @@ -1,35 +1,36 @@ package ru.nbch.indicsearchservice.loader; +import java.io.IOException; import java.nio.file.Path; +import java.util.Arrays; +import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import ru.nbch.indicsearchservice.loader.subtable.RuUidSubTableLoader; import ru.nbch.indicsearchservice.model.enums.DataType; import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuUidTableLoader implements TableLoader { +public class RuUidTableLoader implements FirstLevelTableLoader, TableLoaderForId { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; + private final List ruUidSubTableLoaders; public RuUidTableLoader(MapperHolder mapperHolder, - IndicSearchUtils indicSearchUtils) { + IndicSearchUtils indicSearchUtils, + List ruUidSubTableLoaders) { this.mapperHolder = mapperHolder; this.indicSearchUtils = indicSearchUtils; - } - - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); + this.ruUidSubTableLoaders = ruUidSubTableLoaders; } @Override @@ -39,7 +40,40 @@ public class RuUidTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuUid(fidSet), taskId); + public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.UUID || searchParameter == SearchParameter.ACCT_NUM) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromRuUid(memberCode)) { + Set foundFids = new HashSet<>(); + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, foundFids)); + ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, foundFids, tableFileMap)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else if (searchParameter == SearchParameter.FID) { + Set fids = Set.of(Integer.parseInt(searchValue)); + + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuUid(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, fids, tableFileMap)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } + + @Override + @Transactional(readOnly = true) + public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap) { + if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { + if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuUid(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/TableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/TableLoader.java index 23ada24..721b3e7 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/TableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/TableLoader.java @@ -1,20 +1,11 @@ package ru.nbch.indicsearchservice.loader; import java.nio.file.Path; -import java.util.List; -import java.util.Set; +import java.util.Map; import java.util.UUID; import ru.nbch.indicsearchservice.model.enums.DataType; import ru.nbch.indicsearchservice.model.enums.SearchParameter; public interface TableLoader { - List getSuitableDataTypes(); - List getSuitableSearchParameters(); String getTableName(); - - default boolean isSuitableForDataTypeAndSearchParameter(DataType dataType, SearchParameter searchParameter) { - return getSuitableDataTypes().contains(dataType) && getSuitableSearchParameters().contains(searchParameter); - } - - Path searchByFid(Set fids, UUID taskId); } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/TableLoaderForId.java b/src/main/java/ru/nbch/indicsearchservice/loader/TableLoaderForId.java new file mode 100644 index 0000000..e49efca --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/loader/TableLoaderForId.java @@ -0,0 +1,12 @@ +package ru.nbch.indicsearchservice.loader; + +import java.nio.file.Path; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import ru.nbch.indicsearchservice.model.enums.DataType; +import ru.nbch.indicsearchservice.model.enums.SearchParameter; + +public interface TableLoaderForId extends FirstLevelTableLoader { + void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set fids, String memberCode, Map tableFileMap); +} diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAccountAmtTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAccountAmtTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuAccountAmtTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAccountAmtTableLoader.java index 8e56b1c..148ae10 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAccountAmtTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAccountAmtTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuAccountAmtTableLoader implements TableLoader { +public class RuAccountAmtTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuAccountAmtTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_ACCOUNT_AMT"; @@ -39,7 +30,11 @@ public class RuAccountAmtTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAccountAmt(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAccountAmt(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerIndividTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAcquirerIndividTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerIndividTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAcquirerIndividTableLoader.java index 7a61187..a4e4922 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerIndividTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAcquirerIndividTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuAcquirerIndividTableLoader implements TableLoader { +public class RuAcquirerIndividTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuAcquirerIndividTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_ACQUIRERINDIVID"; @@ -39,7 +30,11 @@ public class RuAcquirerIndividTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAcquirerIndivid(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAcquirerIndivid(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerLegalTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAcquirerLegalTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerLegalTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAcquirerLegalTableLoader.java index 8aa76aa..74d0345 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerLegalTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAcquirerLegalTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuAcquirerLegalTableLoader implements TableLoader { +public class RuAcquirerLegalTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuAcquirerLegalTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_ACQUIRERLEGAL"; @@ -39,7 +30,11 @@ public class RuAcquirerLegalTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAcquirerLegal(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAcquirerLegal(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAllArrearsTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAllArrearsTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuAllArrearsTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAllArrearsTableLoader.java index 1d6361c..226558d 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAllArrearsTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAllArrearsTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuAllArrearsTableLoader implements TableLoader { +public class RuAllArrearsTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuAllArrearsTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_ALL_ARREARS"; @@ -39,7 +30,11 @@ public class RuAllArrearsTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAllArrears(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAllArrears(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAmendmentTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAmendmentTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuAmendmentTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAmendmentTableLoader.java index 3b2ae88..3d476ab 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAmendmentTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAmendmentTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuAmendmentTableLoader implements TableLoader { +public class RuAmendmentTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuAmendmentTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_AMENDMENT"; @@ -39,7 +30,11 @@ public class RuAmendmentTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAmendment(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAmendment(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAmountInfoTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAmountInfoTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuAmountInfoTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAmountInfoTableLoader.java index 6f99413..4db53f7 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAmountInfoTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAmountInfoTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuAmountInfoTableLoader implements TableLoader { +public class RuAmountInfoTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuAmountInfoTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_AMOUNT_INFO"; @@ -39,7 +30,11 @@ public class RuAmountInfoTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAmountInfo(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAmountInfo(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuArrearTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuArrearTableLoader.java similarity index 51% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuArrearTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuArrearTableLoader.java index 88cef8d..cfd0d1d 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuArrearTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuArrearTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuArrearTableLoader implements TableLoader { +public class RuArrearTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuArrearTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_ARREAR"; @@ -39,7 +30,11 @@ public class RuArrearTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuArrear(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuArrear(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyBlocksTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuBankruptcyBlocksTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyBlocksTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuBankruptcyBlocksTableLoader.java index e0f78d1..2b2c626 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyBlocksTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuBankruptcyBlocksTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuBankruptcyBlocksTableLoader implements TableLoader { +public class RuBankruptcyBlocksTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuBankruptcyBlocksTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_BANKRUPTCY_BLOCKS"; @@ -39,7 +30,11 @@ public class RuBankruptcyBlocksTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuBankruptcyBlocks(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcyBlocks(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCoborrowerTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCoborrowerTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuCoborrowerTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCoborrowerTableLoader.java index 5a1c591..52a7e8d 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCoborrowerTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCoborrowerTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuCoborrowerTableLoader implements TableLoader { +public class RuCoborrowerTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuCoborrowerTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_COBORROWER"; @@ -39,7 +30,11 @@ public class RuCoborrowerTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCoborrower(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCoborrower(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatInsuredTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollatInsuredTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuCollatInsuredTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollatInsuredTableLoader.java index 32ef276..faa5eab 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatInsuredTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollatInsuredTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuCollatInsuredTableLoader implements TableLoader { +public class RuCollatInsuredTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuCollatInsuredTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_COLLATINSURED"; @@ -39,7 +30,11 @@ public class RuCollatInsuredTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCollatInsured(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollatInsured(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatRepayTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollatRepayTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuCollatRepayTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollatRepayTableLoader.java index a9cba5f..8fa2c1c 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatRepayTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollatRepayTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuCollatRepayTableLoader implements TableLoader { +public class RuCollatRepayTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuCollatRepayTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_COLLATREPAY"; @@ -39,7 +30,11 @@ public class RuCollatRepayTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCollatRepay(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollatRepay(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralBlocksTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollateralBlocksTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralBlocksTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollateralBlocksTableLoader.java index 87ddb67..b51bc77 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralBlocksTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollateralBlocksTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuCollateralBlocksTableLoader implements TableLoader { +public class RuCollateralBlocksTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuCollateralBlocksTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_COLLATERAL_BLOCKS"; @@ -39,7 +30,11 @@ public class RuCollateralBlocksTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCollateralBlocks(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollateralBlocks(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollateralTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollateralTableLoader.java index 7338588..17342b5 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuCollateralTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuCollateralTableLoader implements TableLoader { +public class RuCollateralTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuCollateralTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_COLLATERAL"; @@ -39,7 +30,11 @@ public class RuCollateralTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCollateral(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollateral(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuContractTermsChangesTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuContractTermsChangesTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuContractTermsChangesTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuContractTermsChangesTableLoader.java index d92d876..a599445 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuContractTermsChangesTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuContractTermsChangesTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuContractTermsChangesTableLoader implements TableLoader { +public class RuContractTermsChangesTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuContractTermsChangesTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_CONTRACT_TERMS_CHANGES"; @@ -39,7 +30,11 @@ public class RuContractTermsChangesTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuContractTermsChanges(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuContractTermsChanges(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuDueArrearTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuDueArrearTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuDueArrearTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuDueArrearTableLoader.java index dcd5e1e..863e72c 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuDueArrearTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuDueArrearTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuDueArrearTableLoader implements TableLoader { +public class RuDueArrearTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuDueArrearTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_DUEARREAR"; @@ -39,7 +30,11 @@ public class RuDueArrearTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuDueArrear(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDueArrear(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuFundDateTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuFundDateTableLoader.java similarity index 51% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuFundDateTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuFundDateTableLoader.java index 882a38a..38c825e 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuFundDateTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuFundDateTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuFundDateTableLoader implements TableLoader { +public class RuFundDateTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuFundDateTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_FUNDDATE"; @@ -39,7 +30,11 @@ public class RuFundDateTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuFundDate(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuFundDate(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuGuaranteeRepayTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuGuaranteeRepayTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuGuaranteeRepayTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuGuaranteeRepayTableLoader.java index 54bc83c..b5b6b13 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuGuaranteeRepayTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuGuaranteeRepayTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuGuaranteeRepayTableLoader implements TableLoader { +public class RuGuaranteeRepayTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuGuaranteeRepayTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_GUARANTEEREPAY"; @@ -39,7 +30,11 @@ public class RuGuaranteeRepayTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuGuaranteeRepay(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuGuaranteeRepay(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuGuarantorTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuGuarantorTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuGuarantorTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuGuarantorTableLoader.java index d14c418..6eb4963 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuGuarantorTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuGuarantorTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuGuarantorTableLoader implements TableLoader { +public class RuGuarantorTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuGuarantorTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_GUARANTOR"; @@ -39,7 +30,11 @@ public class RuGuarantorTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuGuarantor(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuGuarantor(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuIndepGuarantorTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuIndepGuarantorTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuIndepGuarantorTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuIndepGuarantorTableLoader.java index b6d1b87..475d7ed 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuIndepGuarantorTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuIndepGuarantorTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuIndepGuarantorTableLoader implements TableLoader { +public class RuIndepGuarantorTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuIndepGuarantorTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_INDEPGUARANTOR"; @@ -39,7 +30,11 @@ public class RuIndepGuarantorTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuIndepGuarantor(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuIndepGuarantor(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuLegalRecordTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuLegalRecordTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuLegalRecordTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuLegalRecordTableLoader.java index 47849aa..202c137 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuLegalRecordTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuLegalRecordTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuLegalRecordTableLoader implements TableLoader { +public class RuLegalRecordTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuLegalRecordTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_LEGALRECORD"; @@ -39,7 +30,11 @@ public class RuLegalRecordTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuLegalRecord(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuLegalRecord(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuMonthAverPaymtTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuMonthAverPaymtTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuMonthAverPaymtTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuMonthAverPaymtTableLoader.java index c3e9236..451ffa6 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuMonthAverPaymtTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuMonthAverPaymtTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuMonthAverPaymtTableLoader implements TableLoader { +public class RuMonthAverPaymtTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuMonthAverPaymtTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_MONTHAVERPAYMT"; @@ -39,7 +30,11 @@ public class RuMonthAverPaymtTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuMonthAverPaymt(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuMonthAverPaymt(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligAccountTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligAccountTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuObligAccountTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligAccountTableLoader.java index 6fcdd68..8615a8a 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligAccountTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligAccountTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuObligAccountTableLoader implements TableLoader { +public class RuObligAccountTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuObligAccountTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_OBLIGACCOUNT"; @@ -39,7 +30,11 @@ public class RuObligAccountTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligAccount(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligAccount(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligTerminationTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligTerminationTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuObligTerminationTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligTerminationTableLoader.java index 3d3ccea..4fdc21a 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligTerminationTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligTerminationTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuObligTerminationTableLoader implements TableLoader { +public class RuObligTerminationTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuObligTerminationTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_OBLIGTERMINATION"; @@ -39,7 +30,11 @@ public class RuObligTerminationTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligTermination(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligTermination(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcBankruptTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligsRcBankruptTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcBankruptTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligsRcBankruptTableLoader.java index e0dfb20..3e7897e 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcBankruptTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligsRcBankruptTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuObligsRcBankruptTableLoader implements TableLoader { +public class RuObligsRcBankruptTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuObligsRcBankruptTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_OBLIGSRCBANKRUPT"; @@ -39,7 +30,11 @@ public class RuObligsRcBankruptTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligsRcBankrupt(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligsRcBankrupt(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcLiquidTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligsRcLiquidTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcLiquidTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligsRcLiquidTableLoader.java index eb1901d..d9b33db 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcLiquidTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuObligsRcLiquidTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuObligsRcLiquidTableLoader implements TableLoader { +public class RuObligsRcLiquidTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuObligsRcLiquidTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_OBLIGSRCLIQUID"; @@ -39,7 +30,11 @@ public class RuObligsRcLiquidTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligsRcLiquid(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligsRcLiquid(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuOverallvalTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuOverallvalTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuOverallvalTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuOverallvalTableLoader.java index 8566c9d..c8d8b9b 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuOverallvalTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuOverallvalTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuOverallvalTableLoader implements TableLoader { +public class RuOverallvalTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -23,16 +24,6 @@ public class RuOverallvalTableLoader implements TableLoader { } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_OVERALLVAL"; @@ -40,7 +31,11 @@ public class RuOverallvalTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuOverallval(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOverallval(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuPastDueArrearTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPastDueArrearTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuPastDueArrearTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPastDueArrearTableLoader.java index 70bd218..f93dc8f 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuPastDueArrearTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPastDueArrearTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuPastDueArrearTableLoader implements TableLoader { +public class RuPastDueArrearTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuPastDueArrearTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_PASTDUEARREAR"; @@ -39,7 +30,11 @@ public class RuPastDueArrearTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuPastDueArrear(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPastDueArrear(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtConditionTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPaymtConditionTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtConditionTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPaymtConditionTableLoader.java index 284ce9f..7b9068f 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtConditionTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPaymtConditionTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuPaymtConditionTableLoader implements TableLoader { +public class RuPaymtConditionTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuPaymtConditionTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_PAYMT_CONDITION"; @@ -39,7 +30,11 @@ public class RuPaymtConditionTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuPaymtCondition(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPaymtCondition(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPaymtTableLoader.java similarity index 51% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPaymtTableLoader.java index 48c2d52..1da1ef6 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuPaymtTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuPaymtTableLoader implements TableLoader { +public class RuPaymtTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuPaymtTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_PAYMT"; @@ -39,7 +30,11 @@ public class RuPaymtTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuPaymt(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPaymt(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuServiceCoTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuServiceCoTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuServiceCoTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuServiceCoTableLoader.java index 21e42df..17bd8ce 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuServiceCoTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuServiceCoTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuServiceCoTableLoader implements TableLoader { +public class RuServiceCoTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuServiceCoTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_SERVICECO"; @@ -39,7 +30,11 @@ public class RuServiceCoTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuServiceCo(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuServiceCo(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuSourceNonMonetObligTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSourceNonMonetObligTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuSourceNonMonetObligTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSourceNonMonetObligTableLoader.java index 9ba9455..e6d6e4f 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuSourceNonMonetObligTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSourceNonMonetObligTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuSourceNonMonetObligTableLoader implements TableLoader { +public class RuSourceNonMonetObligTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuSourceNonMonetObligTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_SOURCENONMONETOBLIG"; @@ -39,7 +30,11 @@ public class RuSourceNonMonetObligTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuSourceNonMonetOblig(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSourceNonMonetOblig(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuSubjectNonMonetObligTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSubjectNonMonetObligTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuSubjectNonMonetObligTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSubjectNonMonetObligTableLoader.java index ca7ea01..4fb2a41 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuSubjectNonMonetObligTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSubjectNonMonetObligTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuSubjectNonMonetObligTableLoader implements TableLoader { +public class RuSubjectNonMonetObligTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuSubjectNonMonetObligTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_SUBJECTNONMONETOBLIG"; @@ -39,7 +30,11 @@ public class RuSubjectNonMonetObligTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuSubjectNonMonetOblig(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSubjectNonMonetOblig(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuSubmitHoldTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSubmitHoldTableLoader.java similarity index 52% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuSubmitHoldTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSubmitHoldTableLoader.java index 3dfa3b0..8263006 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuSubmitHoldTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuSubmitHoldTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuSubmitHoldTableLoader implements TableLoader { +public class RuSubmitHoldTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuSubmitHoldTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_SUBMITHOLD"; @@ -39,7 +30,11 @@ public class RuSubmitHoldTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuSubmitHold(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSubmitHold(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuTradeTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuTradeTableLoader.java similarity index 51% rename from src/main/java/ru/nbch/indicsearchservice/loader/RuTradeTableLoader.java rename to src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuTradeTableLoader.java index d7c0566..3317df6 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuTradeTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuTradeTableLoader.java @@ -1,18 +1,19 @@ -package ru.nbch.indicsearchservice.loader; +package ru.nbch.indicsearchservice.loader.subtable; +import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component -public class RuTradeTableLoader implements TableLoader { +public class RuTradeTableLoader implements RuUidSubTableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; @@ -22,16 +23,6 @@ public class RuTradeTableLoader implements TableLoader { this.indicSearchUtils = indicSearchUtils; } - @Override - public List getSuitableDataTypes() { - return List.of(DataType.GUTDF, DataType.RUTDF); - } - - @Override - public List getSuitableSearchParameters() { - return List.of(SearchParameter.FID); - } - @Override public String getTableName() { return "RU_TRADE"; @@ -39,7 +30,11 @@ public class RuTradeTableLoader implements TableLoader { @Override @Transactional(readOnly = true) - public Path searchByFid(Set fids, UUID taskId) { - return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuTrade(fidSet), taskId); + public void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap) { + try (Cursor> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuTrade(fids)) { + tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor)); + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuUidSubTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuUidSubTableLoader.java new file mode 100644 index 0000000..8ef2f52 --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuUidSubTableLoader.java @@ -0,0 +1,10 @@ +package ru.nbch.indicsearchservice.loader.subtable; + +import java.nio.file.Path; +import java.util.Map; +import java.util.Set; +import java.util.UUID; + +public interface RuUidSubTableLoader extends SubTableLoader { + void searchByRuUidFid(UUID taskId, Set fids, Map tableFileMap); +} diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/subtable/SubTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/SubTableLoader.java new file mode 100644 index 0000000..88e9765 --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/loader/subtable/SubTableLoader.java @@ -0,0 +1,10 @@ +package ru.nbch.indicsearchservice.loader.subtable; + +import java.nio.file.Path; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import ru.nbch.indicsearchservice.loader.TableLoader; + +public interface SubTableLoader extends TableLoader { +} diff --git a/src/main/java/ru/nbch/indicsearchservice/repository/indic/IndicMapper.java b/src/main/java/ru/nbch/indicsearchservice/repository/indic/IndicMapper.java index ae59417..f338180 100644 --- a/src/main/java/ru/nbch/indicsearchservice/repository/indic/IndicMapper.java +++ b/src/main/java/ru/nbch/indicsearchservice/repository/indic/IndicMapper.java @@ -11,212 +11,52 @@ import ru.nbch.indicsearchservice.repository.MyBatisRepository; public interface IndicMapper extends MyBatisRepository { List> getTableColumnsByTableNames(List tables); - Cursor> findAllByFidFromRuUid(Set fids); - Cursor> findAllByFidFromRuTrade(Set fids); - Cursor> findAllByFidFromRuApplication(Set fids); - Cursor> findAllByFidFromRuAccountAmt(Set fids); - Cursor> findAllByFidFromRuAcquirerIndivid(Set fids); - Cursor> findAllByFidFromRuAcquirerLegal(Set fids); - Cursor> findAllByFidFromRuAllArrears(Set fids); - Cursor> findAllByFidFromRuAmendment(Set fids); - Cursor> findAllByFidFromRuAmountInfo(Set fids); - Cursor> findAllByFidFromRuArrear(Set fids); - Cursor> findAllByFidFromRuBankruptcy(Set fids); - Cursor> findAllByFidFromRuBankruptcyBlocks(Set fids); - Cursor> findAllByFidFromRuCapability(Set fids); - Cursor> findAllByFidFromRuCoborrower(Set fids); - Cursor> findAllByFidFromRuCollateral(Set fids); - Cursor> findAllByFidFromRuCollateralBlocks(Set fids); - Cursor> findAllByFidFromRuCollatInsured(Set fids); - Cursor> findAllByFidFromRuCollatRepay(Set fids); - Cursor> findAllByFidFromRuContractTermsChanges(Set fids); - Cursor> findAllByFidFromRuDebtBurdenInfo(Set fids); - Cursor> findAllByFidFromRuDueArrear(Set fids); - Cursor> findAllByFidFromRuFundDate(Set fids); - Cursor> findAllByFidFromRuGuaranteeRepay(Set fids); - Cursor> findAllByFidFromRuGuarantor(Set fids); - Cursor> findAllByFidFromRuIndepGuarantor(Set fids); - Cursor> findAllByFidFromRuLegalRecord(Set fids); - Cursor> findAllByFidFromRuMonthAverPaymt(Set fids); - Cursor> findAllByFidFromRuObligAccount(Set fids); - Cursor> findAllByFidFromRuObligPartTake(Set fids); - Cursor> findAllByFidFromRuObligsRcBankrupt(Set fids); - Cursor> findAllByFidFromRuObligsRcLiquid(Set fids); - Cursor> findAllByFidFromRuObligTermination(Set fids); - Cursor> findAllByFidFromRuOtherLegal(Set fids); - Cursor> findAllByFidFromRuOverallval(Set fids); - Cursor> findAllByFidFromRuPastDueArrear(Set fids); - Cursor> findAllByFidFromRuPaymtCondition(Set fids); - Cursor> findAllByFidFromRuPaymt(Set fids); - Cursor> findAllByFidFromRuServiceCo(Set fids); - Cursor> findAllByFidFromRuSettled(Set fids); - Cursor> findAllByFidFromRuSourceNonMonetOblig(Set fids); - Cursor> findAllByFidFromRuSubjectNonMonetOblig(Set fids); - Cursor> findAllByFidFromRuSubmitHold(Set fids); + Cursor> findAllByFidsFromRuUid(Set fids); + Cursor> findAllByFidsFromRuApplication(Set fids); + Cursor> findAllByFidsFromRuObligPartTake(Set fids); + Cursor> findAllByFidsFromRuBankruptcy(Set fids); + Cursor> findAllByFidsFromRuSettled(Set fids); + Cursor> findAllByFidsFromRuOtherLegal(Set fids); + Cursor> findAllByFidsFromRuCapability(Set fids); + Cursor> findAllByFidsFromRuDebtBurdenInfo(Set fids); - List> findAllByAcctNumAndMemberCodeFromRuUid(String columns, String acctNum, String memberCode); - Cursor> findAllByAcctNumAndMemberCodeFromRuUidCursor(String columns, String acctNum, String memberCode); - List> findAllByApplicationNumberAndMemberCodeFromRuApplication(String columns, String applicationNumber, String memberCode); - Cursor> findAllByApplicationNumberAndMemberCodeFromRuApplicationCursor(String columns, String applicationNumber, String memberCode); - Long countAllByApplicationNumberAndMemberCodeFromRuApplication(String applicationNumber, String memberCode); - List> findAllByUuidFromRuUid(String columns, String uuid, String memberCode); - Cursor> findAllByUuidFromRuUidCursor(String columns, String uuid, String memberCode); - List> findAllByOgrnFromId(String idNorm); - Cursor> findAllByOgrnFromIdCursor(String idNorm); - List findAllDistinctFidByOgrnFromId(String idNorm); - List> findAllByOgrnTutdfFromId(String idNorm); - Cursor> findAllByOgrnTutdfFromIdCursor(String idNorm); - List findAllDistinctFidByOgrnTutdfFromId(String idNorm); - List> findAllByPassportFromId(String idNorm); - Cursor> findAllByPassportFromIdCursor(String idNorm); - List findAllDistinctFidByPassportFromId(String idNorm); - List> findAllByPassportTutdfFromId(String idNorm); - Cursor> findAllByPassportTutdfFromIdCursor(String idNorm); - List findAllDistinctFidByPassportTutdfFromId(String idNorm); - List> findAllByOldAppNumFromRuApplication(String columns, String oldAppNum, String memberCode); - Cursor> findAllByOldAppNumFromRuApplicationCursor(String columns, String oldAppNum, String memberCode); - Long countAllByOldAppNumFromRuApplication(String oldAppNum, String memberCode); - List> findAllByAcctNumFromAccount(String columns, String acctNum, String memberCode); - Cursor> findAllByAcctNumFromAccountCursor(String columns, String acctNum, String memberCode); - List> findAllBySerialNumFromAccount(String columns, String serialNum, String memberCode); - Cursor> findAllBySerialNumFromAccountCursor(String columns, String serialNum, String memberCode); - List> findAllByUuidFromAccount(String columns, String uuid, String memberCode); - Cursor> findAllByUuidFromAccountCursor(String columns, String uuid, String memberCode); - List> findAllBySerialNumAndMemberCodeFromInformation(String columns, String serialNum, String memberCode); - Cursor> findAllBySerialNumAndMemberCodeFromInformationCursor(String columns, String serialNum, String memberCode); - Long countAllBySerialNumAndMemberCodeFromInformation(String serialNum, String memberCode); - List> findAllByAppNumAndMemberCodeFromInformation(String columns, String appNum, String memberCode); - Cursor> findAllByAppNumAndMemberCodeFromInformationCursor(String columns, String appNum, String memberCode); - Long countAllByAppNumAndMemberCodeFromInformation(String appNum, String memberCode); + Cursor> findAllByMemberCodeFromRuUid(String memberCode); + Cursor> findAllByMemberCodeFromRuApplication(String memberCode); + Cursor> findFidsByOgrnFromId(String idNorm); + Cursor> findFidsByPassportFromId(String idNorm); - List> findAllByAccSerialNumAndFidFromRuTrade(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuTradeCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuAccountAmt(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuAccountAmtCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuCoborrower(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuCoborrowerCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuPaymtCondition(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuPaymtConditionCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuOverallval(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuOverallvalCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuAmendment(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuAmendmentCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuFunddate(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuFunddateCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuArrear(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuArrearCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuDuearrear(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuDuearrearCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuPastduearrear(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuPastduearrearCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuPaymt(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuPaymtCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuMonthaverpaymt(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuMonthaverpaymtCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuSourcenonmonetoblig(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuSourcenonmonetobligCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuSubjectnonmonetoblig(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuSubjectnonmonetobligCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuCollateral(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuCollateralCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuGuarantor(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuGuarantorCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuIndepguarantor(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuIndepguarantorCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuCollatinsured(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuCollatinsuredCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuCollatrepay(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuCollatrepayCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuGuaranteerepay(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuGuaranteerepayCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuObligtermination(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuObligterminationCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuSubmithold(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuSubmitholdCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuAcquirerlegal(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuAcquirerlegalCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuAcquirerindivid(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuAcquirerindividCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuServiceco(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuServicecoCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuObligaccount(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuObligaccountCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuLegalrecord(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuLegalrecordCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuObligsrcbankrupt(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuObligsrcbankruptCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuObligsrcliquid(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuObligsrcliquidCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuAmountInfo(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuAmountInfoCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuContractTermsChanges(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuContractTermsChangesCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromRuAllArrears(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromRuAllArrearsCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromAccountAmend(String columns, String accSerialNum, String fid); - Cursor> findAllByAccSerialNumAndFidFromAccountAmendCursor(String columns, String accSerialNum, String fid); - List> findAllByAccSerialNumAndFidFromPayment(String columns, String accSerialNum, String memberCode, String fid); - Cursor> findAllByAccSerialNumAndFidFromPaymentCursor(String columns, String accSerialNum, String memberCode, String fid); - List> findAllByAccSerialNumAndFidFromCollateral(String columns, String accSerialNum, String memberCode, String fid); - Cursor> findAllByAccSerialNumAndFidFromCollateralCursor(String columns, String accSerialNum, String memberCode, String fid); - List> findAllByAccSerialNumAndFidFromGuarantor(String columns, String accSerialNum, String memberCode, String fid); - Cursor> findAllByAccSerialNumAndFidFromGuarantorCursor(String columns, String accSerialNum, String memberCode, String fid); - List> findAllByAccSerialNumAndFidFromBankGuarantee(String columns, String accSerialNum, String memberCode, String fid); - Cursor> findAllByAccSerialNumAndFidFromBankGuaranteeCursor(String columns, String accSerialNum, String memberCode, String fid); - - List> findAllByFidAndMemberCodeFromRuUid(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuUidCursor(String columns, String fid, String memberCode); - List> findAllByFidAndMemberCodeFromRuUidWithoutRealMemberCode(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuUidWithoutRealMemberCodeCursor(String columns, String fid, String memberCode); - List> findAllByFidAndMemberCodeFromRuApplication(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuApplicationCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromRuApplication(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromRuObligparttake(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuObligparttakeCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromRuObligparttake(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromRuBankruptcy(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuBankruptcyCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromRuBankruptcyWithBlocks(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromRuSettled(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuSettledCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromRuSettled(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromRuOtherlegal(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuOtherlegalCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromRuOtherlegal(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromRuCapability(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuCapabilityCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromRuCapability(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromRuDebtBurdenInfo(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromRuDebtBurdenInfoCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromRuDebtBurdenInfo(String fid, String memberCode); - - List> findAllByFidAndMemberCodeFromAccount(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromAccountCursor(String columns, String fid, String memberCode); - List> findAllByFidAndMemberCodeFromInformation(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromInformationCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromInformation(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromBankruptcy(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromBankruptcyCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromBankruptcy(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromConsumerBankruptcy(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromConsumerBankruptcyCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromConsumerBankruptcy(String fid, String memberCode); - List> findAllByFidAndMemberCodeFromLegal(String columns, String fid, String memberCode); - Cursor> findAllByFidAndMemberCodeFromLegalCursor(String columns, String fid, String memberCode); - Long countAllByFidAndMemberCodeFromLegal(String fid, String memberCode); - - List> findAllByFidAndParentSerialNumFromRuCollateralBlocks(String columns, String fid, String parentSerialNum); - Cursor> findAllByFidAndParentSerialNumFromRuCollateralBlocksCursor(String columns, String fid, String parentSerialNum); - List> findAllByFidAndParentSerialNumFromRuBankruptcyBlocks(String columns, String fid, String parentSerialNum); - Cursor> findAllByFidAndParentSerialNumFromRuBankruptcyBlocksCursor(String columns, String fid, String parentSerialNum); - - List> countAllRuUidChildTablesByAcctNum(String acctNum, String memberCode); - List> countAllRuUidChildTablesByFid(String fid, String memberCode); - List> countAllRuUidChildTablesByFidWithoutRealMemberCode(String fid, String memberCode); - List> countAllRuUidChildTablesByUuid(String uuid, String memberCode); - - List> countAllAccountChildTablesByAcctNum(String acctNum, String memberCode); - List> countAllAccountChildTablesByFid(String fid, String memberCode); - List> countAllAccountChildTablesBySerialNum(String serialNum, String memberCode); - List> countAllAccountChildTablesByUuid(String uuid, String memberCode); + Cursor> findAllByFidsFromRuTrade(Set fids); + Cursor> findAllByFidsFromRuAccountAmt(Set fids); + Cursor> findAllByFidsFromRuAcquirerIndivid(Set fids); + Cursor> findAllByFidsFromRuAcquirerLegal(Set fids); + Cursor> findAllByFidsFromRuAllArrears(Set fids); + Cursor> findAllByFidsFromRuAmendment(Set fids); + Cursor> findAllByFidsFromRuAmountInfo(Set fids); + Cursor> findAllByFidsFromRuArrear(Set fids); + Cursor> findAllByFidsFromRuBankruptcyBlocks(Set fids); + Cursor> findAllByFidsFromRuCoborrower(Set fids); + Cursor> findAllByFidsFromRuCollateral(Set fids); + Cursor> findAllByFidsFromRuCollateralBlocks(Set fids); + Cursor> findAllByFidsFromRuCollatInsured(Set fids); + Cursor> findAllByFidsFromRuCollatRepay(Set fids); + Cursor> findAllByFidsFromRuContractTermsChanges(Set fids); + Cursor> findAllByFidsFromRuDueArrear(Set fids); + Cursor> findAllByFidsFromRuFundDate(Set fids); + Cursor> findAllByFidsFromRuGuaranteeRepay(Set fids); + Cursor> findAllByFidsFromRuGuarantor(Set fids); + Cursor> findAllByFidsFromRuIndepGuarantor(Set fids); + Cursor> findAllByFidsFromRuLegalRecord(Set fids); + Cursor> findAllByFidsFromRuMonthAverPaymt(Set fids); + Cursor> findAllByFidsFromRuObligAccount(Set fids); + Cursor> findAllByFidsFromRuObligsRcBankrupt(Set fids); + Cursor> findAllByFidsFromRuObligsRcLiquid(Set fids); + Cursor> findAllByFidsFromRuObligTermination(Set fids); + Cursor> findAllByFidsFromRuOverallval(Set fids); + Cursor> findAllByFidsFromRuPastDueArrear(Set fids); + Cursor> findAllByFidsFromRuPaymtCondition(Set fids); + Cursor> findAllByFidsFromRuPaymt(Set fids); + Cursor> findAllByFidsFromRuServiceCo(Set fids); + Cursor> findAllByFidsFromRuSourceNonMonetOblig(Set fids); + Cursor> findAllByFidsFromRuSubjectNonMonetOblig(Set fids); + Cursor> findAllByFidsFromRuSubmitHold(Set fids); } diff --git a/src/main/java/ru/nbch/indicsearchservice/service/IndicSearchService.java b/src/main/java/ru/nbch/indicsearchservice/service/IndicSearchService.java index 5ba567d..dd1303f 100644 --- a/src/main/java/ru/nbch/indicsearchservice/service/IndicSearchService.java +++ b/src/main/java/ru/nbch/indicsearchservice/service/IndicSearchService.java @@ -3,10 +3,8 @@ package ru.nbch.indicsearchservice.service; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import org.apache.commons.lang3.mutable.MutableLong; @@ -21,8 +19,7 @@ import ru.nbch.indicsearchservice.dto.response.AddSearchJobResponseDto; import ru.nbch.indicsearchservice.dto.response.JobStatusResponseDto; import ru.nbch.indicsearchservice.exporter.ExcelExporter; import ru.nbch.indicsearchservice.exporter.JsonExporter; -import ru.nbch.indicsearchservice.loader.TableLoader; -import ru.nbch.indicsearchservice.util.IndicSearchUtils; +import ru.nbch.indicsearchservice.loader.FirstLevelTableLoader; @Service public class IndicSearchService { @@ -30,20 +27,17 @@ public class IndicSearchService { private static final boolean IS_EXPORT_AS_EXCEL = false; - private final List tableLoaders; + private final List tableLoaders; private final List fileAggregators; - private final IndicSearchUtils indicSearchUtils; private final ExcelExporter excelExporter; private final JsonExporter jsonExporter; - public IndicSearchService(List tableLoaders, + public IndicSearchService(List tableLoaders, List fileAggregators, - IndicSearchUtils indicSearchUtils, ExcelExporter excelExporter, JsonExporter jsonExporter) { this.tableLoaders = tableLoaders; this.fileAggregators = fileAggregators; - this.indicSearchUtils = indicSearchUtils; this.excelExporter = excelExporter; this.jsonExporter = jsonExporter; } @@ -57,26 +51,15 @@ public class IndicSearchService { log.info("First step started. Getting data from database and filling csv files"); sw.start(); - List suitableTableLoaders = new ArrayList<>(); - for (TableLoader tableLoader : tableLoaders) { - if (tableLoader.isSuitableForDataTypeAndSearchParameter(request.getDataType(), request.getSearchParameter())) { - suitableTableLoaders.add(tableLoader); - } - } - - Set foundFids = indicSearchUtils.getFidsBasedOnDataTypeAndSearchParameter( + Map tableFileMap = new ConcurrentHashMap<>(); + tableLoaders.parallelStream().forEach(tl -> tl.searchBy( + taskId, request.getDataType(), request.getSearchParameter(), - request.getSearchValue() - ); - - Map tableFileMap = new ConcurrentHashMap<>(); - suitableTableLoaders.parallelStream().forEach(tl -> { - String tableName = tl.getTableName(); - Path tableFile = tl.searchByFid(foundFids, taskId); - - tableFileMap.put(tableName, tableFile); - }); + request.getSearchValue(), + request.getMemberCode().substring(0, 6), + tableFileMap + )); sw.stop(); log.info(sw.prettyPrint()); @@ -86,13 +69,17 @@ public class IndicSearchService { log.info("Second step started. Aggregating table files into one."); sw.start(); - FileAggregator fileAggregator = fileAggregators.stream() - .filter(fa -> fa.isSuitableForDataTypeAndSearchParameter(request.getDataType(), request.getSearchParameter())) - .findFirst() - .orElseThrow(() -> new RuntimeException("There is no suitable file aggregator for data type " + request.getDataType() + " and search parameter " + request.getSearchParameter())); - MutableLong rowCounter = new MutableLong(); - Path aggregatedFile = fileAggregator.aggregateFiles(tableFileMap, request.getMemberCode().substring(0, 6), rowCounter, taskId); + Path aggregatedFile = fileAggregators.stream().map(fa -> fa.aggregateFiles( + taskId, + request.getDataType(), + request.getSearchParameter(), + request.getSearchValue(), + request.getMemberCode().substring(0, 6), + tableFileMap, + rowCounter)) + .findFirst() + .orElse(null); sw.stop(); log.info(sw.prettyPrint()); diff --git a/src/main/java/ru/nbch/indicsearchservice/util/IndicSearchUtils.java b/src/main/java/ru/nbch/indicsearchservice/util/IndicSearchUtils.java index 8ee152c..6e6923d 100644 --- a/src/main/java/ru/nbch/indicsearchservice/util/IndicSearchUtils.java +++ b/src/main/java/ru/nbch/indicsearchservice/util/IndicSearchUtils.java @@ -5,17 +5,13 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; -import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import java.util.UUID; -import java.util.function.Function; import org.apache.ibatis.cursor.Cursor; import org.springframework.stereotype.Component; import ru.nbch.indicsearchservice.config.settings.ApplicationSettings; -import ru.nbch.indicsearchservice.model.enums.DataType; -import ru.nbch.indicsearchservice.model.enums.SearchParameter; @Component public class IndicSearchUtils { @@ -25,15 +21,20 @@ public class IndicSearchUtils { this.settings = settings; } - public Path writeRowsToFile(String tableName, - Set fids, - Function, Cursor>> mapperFunc, - UUID taskId) { + public Path writeRowsToFile(UUID taskId, + String tableName, + Cursor> databaseCursor) { + return writeRowsToFile(taskId, tableName, databaseCursor, null); + } + + public Path writeRowsToFile(UUID taskId, + String tableName, + Cursor> databaseCursor, + Set foundFids) { Path resultFile = settings.getStorageDirectory().toPath().resolve(tableName + "_" + taskId + ".csv"); - try (BufferedWriter writer = Files.newBufferedWriter(resultFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND); - Cursor> cursor = mapperFunc.apply(fids)) { - for (LinkedHashMap row : cursor) { + try (BufferedWriter writer = Files.newBufferedWriter(resultFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) { + for (LinkedHashMap row : databaseCursor) { StringBuilder sb = new StringBuilder(); sb.append(tableName).append("%%%"); @@ -44,6 +45,10 @@ public class IndicSearchUtils { sb.append(columnName.toUpperCase()).append("%%%"); if (columnValue != null) { + if (foundFids != null && columnName.equals("FID")) { + foundFids.add(Integer.parseInt(columnValue.toString())); + } + sb.append(columnValue).append("%%%"); } else { sb.append("%%%"); @@ -60,24 +65,4 @@ public class IndicSearchUtils { return resultFile; } - - public Set getFidsBasedOnDataTypeAndSearchParameter(DataType dataType, SearchParameter searchParameter, String searchValue) { - Set fids = new HashSet<>(); - - if (dataType == null || searchParameter == null) { - return fids; - } - - if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) { - if (searchParameter == SearchParameter.FID) { - return Set.of(Integer.parseInt(searchValue)); - } - } else if (dataType == DataType.TUTDF) { - if (searchParameter == SearchParameter.FID) { - return Set.of(Integer.parseInt(searchValue)); - } - } - - return fids; - } } diff --git a/src/main/resources/mappers/indic/indic_mapper.xml b/src/main/resources/mappers/indic/indic_mapper.xml index ad67abc..341c60b 100644 --- a/src/main/resources/mappers/indic/indic_mapper.xml +++ b/src/main/resources/mappers/indic/indic_mapper.xml @@ -14,18 +14,132 @@ WITH UR - SELECT * FROM INDIC.RU_UID WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY SERIAL_NUM WITH UR - + SELECT * + FROM INDIC.RU_APPLICATION + WHERE FID IN + + #{fid} + + ORDER BY SERIAL_NUM + WITH UR + + + + + + + + + + + + + + + + + + + + + + + - - - SELECT * FROM INDIC.RU_ACCOUNT_AMT WHERE FID IN @@ -58,40 +161,40 @@ WITH UR - SELECT * FROM INDIC.RU_ACQUIRERINDIVID WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_ACQUIRERLEGAL WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_ALL_ARREARS WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_AMENDMENT WHERE FID IN @@ -102,18 +205,18 @@ WITH UR - SELECT * FROM INDIC.RU_AMOUNT_INFO WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_ARREAR WHERE FID IN @@ -124,40 +227,18 @@ WITH UR - - - SELECT * FROM INDIC.RU_BANKRUPTCY_BLOCKS WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, PARENT_SERIAL_NUM WITH UR - - - SELECT * FROM INDIC.RU_COBORROWER WHERE FID IN @@ -168,73 +249,62 @@ WITH UR - SELECT * FROM INDIC.RU_COLLATERAL WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_COLLATERAL_BLOCKS WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, PARENT_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_COLLATINSURED WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_COLLATREPAY WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_CONTRACT_TERMS_CHANGES WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - - - SELECT * FROM INDIC.RU_DUEARREAR WHERE FID IN @@ -245,7 +315,7 @@ WITH UR - SELECT * FROM INDIC.RU_FUNDDATE WHERE FID IN @@ -256,51 +326,51 @@ WITH UR - SELECT * FROM INDIC.RU_GUARANTEEREPAY WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_GUARANTOR WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_INDEPGUARANTOR WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_LEGALRECORD WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_MONTHAVERPAYMT WHERE FID IN @@ -311,73 +381,51 @@ WITH UR - SELECT * FROM INDIC.RU_OBLIGACCOUNT WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - - - SELECT * FROM INDIC.RU_OBLIGSRCBANKRUPT WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OBLIGSRCLIQUID WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OBLIGTERMINATION WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - - - SELECT * FROM INDIC.RU_OVERALLVAL WHERE FID IN @@ -388,7 +436,7 @@ WITH UR - SELECT * FROM INDIC.RU_PASTDUEARREAR WHERE FID IN @@ -399,7 +447,7 @@ WITH UR - SELECT * FROM INDIC.RU_PAYMT_CONDITION WHERE FID IN @@ -410,7 +458,7 @@ WITH UR - SELECT * FROM INDIC.RU_PAYMT WHERE FID IN @@ -421,29 +469,18 @@ WITH UR - SELECT * FROM INDIC.RU_SERVICECO WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - - - SELECT * FROM INDIC.RU_SOURCENONMONETOBLIG WHERE FID IN @@ -454,1699 +491,25 @@ WITH UR - SELECT * FROM INDIC.RU_SUBJECTNONMONETOBLIG WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_SUBMITHOLD WHERE FID IN #{fid} - ORDER BY FID, SERIAL_NUM - WITH UR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SELECT COUNT(*) AS UID_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_TRADE ru_trade - WHERE ru_trade.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_trade.FID = u.FID) AS RU_TRADE_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_ACCOUNT_AMT ru_accountAmt - WHERE ru_accountAmt.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_accountAmt.FID = u.FID) AS RU_ACCOUNT_AMT_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_COBORROWER ru_coborrower - WHERE ru_coborrower.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_coborrower.FID = u.FID) AS RU_COBORROWER_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_PAYMT_CONDITION ru_paymtCondition - WHERE ru_paymtCondition.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_paymtCondition.FID = u.FID) AS RU_PAYMT_CONDITION_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_OVERALLVAL ru_overallval - WHERE ru_overallval.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_overallval.FID = u.FID) AS RU_OVERALLVAL_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_AMENDMENT ru_amendment - WHERE ru_amendment.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_amendment.FID = u.FID) AS RU_AMENDMENT_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_FUNDDATE ru_funddate - WHERE ru_funddate.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_funddate.FID = u.FID) AS RU_FUNDDATE_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_ARREAR ru_arrear - WHERE ru_arrear.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_arrear.FID = u.FID) AS RU_ARREAR_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_DUEARREAR ru_duearrear - WHERE ru_duearrear.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_duearrear.FID = u.FID) AS RU_DUEARREAR_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_PASTDUEARREAR ru_pastduearrear - WHERE ru_pastduearrear.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_pastduearrear.FID = u.FID) AS RU_PASTDUEARREAR_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_PAYMT ru_paymt - WHERE ru_paymt.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_paymt.FID = u.FID) AS RU_PAYMT_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_MONTHAVERPAYMT ru_monthaverpaymt - WHERE ru_monthaverpaymt.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_monthaverpaymt.FID = u.FID) AS RU_MONTHAVERPAYMT_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_SOURCENONMONETOBLIG ru_sourcenonmonetoblig - WHERE ru_sourcenonmonetoblig.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_sourcenonmonetoblig.FID = u.FID) AS RU_SOURCENONMONETOBLIG_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_SUBJECTNONMONETOBLIG ru_subjectnonmonetoblig - WHERE ru_subjectnonmonetoblig.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_subjectnonmonetoblig.FID = u.FID) AS RU_SUBJECTNONMONETOBLIG_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_COLLATERAL ru_collateral - WHERE ru_collateral.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_collateral.FID = u.FID) AS RU_COLLATERAL_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_GUARANTOR ru_guarantor - WHERE ru_guarantor.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_guarantor.FID = u.FID) AS RU_GUARANTOR_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_INDEPGUARANTOR ru_indepguarantor - WHERE ru_indepguarantor.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_indepguarantor.FID = u.FID) AS RU_INDEPGUARANTOR_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_COLLATINSURED ru_collatinsured - WHERE ru_collatinsured.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_collatinsured.FID = u.FID) AS RU_COLLATINSURED_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_COLLATREPAY ru_collatrepay - WHERE ru_collatrepay.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_collatrepay.FID = u.FID) AS RU_COLLATREPAY_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_GUARANTEEREPAY ru_guaranteerepay - WHERE ru_guaranteerepay.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_guaranteerepay.FID = u.FID) AS RU_GUARANTEEREPAY_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_OBLIGTERMINATION ru_obligtermination - WHERE ru_obligtermination.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_obligtermination.FID = u.FID) AS RU_OBLIGTERMINATION_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_SUBMITHOLD ru_submithold - WHERE ru_submithold.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_submithold.FID = u.FID) AS RU_SUBMITHOLD_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_ACQUIRERLEGAL ru_acquirerlegal - WHERE ru_acquirerlegal.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_acquirerlegal.FID = u.FID) AS RU_ACQUIRERLEGAL_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_ACQUIRERINDIVID ru_acquirerindivid - WHERE ru_acquirerindivid.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_acquirerindivid.FID = u.FID) AS RU_ACQUIRERINDIVID_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_SERVICECO ru_serviceco - WHERE ru_serviceco.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_serviceco.FID = u.FID) AS RU_SERVICECO_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_OBLIGACCOUNT ru_obligaccount - WHERE ru_obligaccount.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_obligaccount.FID = u.FID) AS RU_OBLIGACCOUNT_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_LEGALRECORD ru_legalrecord - WHERE ru_legalrecord.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_legalrecord.FID = u.FID) AS RU_LEGALRECORD_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_OBLIGSRCBANKRUPT ru_obligsrcbankrupt - WHERE ru_obligsrcbankrupt.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_obligsrcbankrupt.FID = u.FID) AS RU_OBLIGSRCBANKRUPT_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_OBLIGSRCLIQUID ru_obligsrcliquid - WHERE ru_obligsrcliquid.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_obligsrcliquid.FID = u.FID) AS RU_OBLIGSRCLIQUID_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_AMOUNT_INFO ru_amountInfo - WHERE ru_amountInfo.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_amountInfo.FID = u.FID) AS RU_AMOUNT_INFO_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_CONTRACT_TERMS_CHANGES ru_contractTermsChanges - WHERE ru_contractTermsChanges.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_contractTermsChanges.FID = u.FID) AS RU_CONTRACT_TERMS_CHANGES_COUNT, - - (SELECT COUNT(*) - FROM INDIC.RU_ALL_ARREARS ru_allArrears - WHERE ru_allArrears.ACC_SERIAL_NUM = u.SERIAL_NUM - AND ru_allArrears.FID = u.FID) AS RU_ALL_ARREARS_COUNT - - FROM INDIC.RU_UID u - - - - SELECT COUNT(*) AS ACCOUNT_COUNT, - (SELECT COUNT(*) - FROM INDIC.ACCOUNT_AMEND account_amend - WHERE account_amend.ACC_SERIAL_NUM = a.SERIAL_NUM - AND account_amend.FID = a.FID) AS ACCOUNT_AMEND_COUNT, - (SELECT COUNT(*) - FROM INDIC.PAYMENT payment - WHERE payment.ACC_SERIAL_NUM = a.SERIAL_NUM - AND MEMBER_CODE LIKE #{memberCode} || '%' - AND payment.FID = a.FID) AS PAYMENT_COUNT, - (SELECT COUNT(*) - FROM INDIC.COLLATERAL collateral - WHERE collateral.ACC_SERIAL_NUM = a.SERIAL_NUM - AND MEMBER_CODE LIKE #{memberCode} || '%' - AND collateral.FID = a.FID) AS COLLATERAL_COUNT, - (SELECT COUNT(*) - FROM INDIC.GUARANTOR guarantor - WHERE guarantor.ACC_SERIAL_NUM = a.SERIAL_NUM - AND MEMBER_CODE LIKE #{memberCode} || '%' - AND guarantor.FID = a.FID) AS GUARANTOR_COUNT, - (SELECT COUNT(*) - FROM INDIC.BANK_GUARANTEE bank_guarantee - WHERE bank_guarantee.ACC_SERIAL_NUM = a.SERIAL_NUM - AND MEMBER_CODE LIKE #{memberCode} || '%' - AND bank_guarantee.FID = a.FID) AS BANK_GUARANTEE_COUNT - - FROM INDIC.ACCOUNT a - - - - - - - - - - - - - - - - -