diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregator.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregator.java new file mode 100644 index 0000000..b444b55 --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregator.java @@ -0,0 +1,21 @@ +package ru.nbch.indicsearchservice.aggregator; + +import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.apache.commons.lang3.mutable.MutableLong; +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); +} diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregatorCommon.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregatorCommon.java new file mode 100644 index 0000000..1512c00 --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/aggregator/FileAggregatorCommon.java @@ -0,0 +1,217 @@ +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.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang3.mutable.MutableLong; +import org.springframework.stereotype.Component; +import ru.nbch.indicsearchservice.util.MovableBufferedReader; + +@Component +public class FileAggregatorCommon { + private static final List RU_UID_CHILD_TABLES = List.of( + "RU_TRADE", + "RU_ACCOUNT_AMT", + "RU_COBORROWER", + "RU_PAYMT_CONDITION", + "RU_OVERALLVAL", + "RU_AMENDMENT", + "RU_FUNDDATE", + "RU_ARREAR", + "RU_DUEARREAR", + "RU_PASTDUEARREAR", + "RU_PAYMT", + "RU_MONTHAVERPAYMT", + "RU_SOURCENONMONETOBLIG", + "RU_SUBJECTNONMONETOBLIG", + "RU_COLLATERAL", + "RU_GUARANTOR", + "RU_INDEPGUARANTOR", + "RU_COLLATINSURED", + "RU_COLLATREPAY", + "RU_GUARANTEEREPAY", + "RU_OBLIGTERMINATION", + "RU_SUBMITHOLD", + "RU_ACQUIRERLEGAL", + "RU_ACQUIRERINDIVID", + "RU_SERVICECO", + "RU_OBLIGACCOUNT", + "RU_LEGALRECORD", + "RU_OBLIGSRCBANKRUPT", + "RU_OBLIGSRCLIQUID", + "RU_AMOUNT_INFO", + "RU_CONTRACT_TERMS_CHANGES", + "RU_ALL_ARREARS" + ); + + void aggregateRuUidFiles(Path aggregatedFile, Map tableFileMap, String memberCode, MutableLong rowCounter) { + try (BufferedReader ruUidFileReader = Files.newBufferedReader(tableFileMap.get("RU_UID")); + BufferedWriter writer = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) { + Map childTablesReadersMap = new LinkedHashMap<>(); + for (String tableName : RU_UID_CHILD_TABLES) { + if (!tableFileMap.containsKey(tableName)) { + continue; + } + + MovableBufferedReader childTablesReader = new MovableBufferedReader(Files.newBufferedReader(tableFileMap.get(tableName))); + if (childTablesReader.getCurrentLine() != null) { + childTablesReadersMap.put(tableName, childTablesReader); + } + } + + String ruUidLine; + while ((ruUidLine = ruUidFileReader.readLine()) != null) { + List lineList = Arrays.asList(ruUidLine.split(";")); + int memberCodeIndex = lineList.indexOf("MEMBER_CODE"); + if (memberCodeIndex != -1) { + if (!lineList.get(memberCodeIndex + 1).startsWith(memberCode)) { + continue; + } + } + + writer.write(ruUidLine); + writer.newLine(); + rowCounter.increment(); + + Long ruUidSerialNum = Long.parseLong(ruUidLine.split(";")[2]); + + for (Map.Entry entry : childTablesReadersMap.entrySet()) { + String childTableName = entry.getKey(); + MovableBufferedReader childReader = entry.getValue(); + + String childLine = childReader.getCurrentLine(); + if (childLine == null) { + continue; + } + + Long childAccSerialNum = Long.parseLong(childLine.split(";")[3]); + + if (ruUidSerialNum > childAccSerialNum) { + while ((childLine = childReader.nextLine()) != null) { + childAccSerialNum = Long.parseLong(childLine.split(";")[3]); + + if (childAccSerialNum.equals(ruUidSerialNum)) { + writer.write(childLine); + writer.newLine(); + rowCounter.increment(); + + if (childTableName.equals("RU_COLLATERAL")) { + aggregateBlocksTableFile(childTableName, aggregatedFile, tableFileMap, memberCode, rowCounter); + } + } + + if (childAccSerialNum > ruUidSerialNum) { + break; + } + } + } else if (ruUidSerialNum.equals(childAccSerialNum)) { + writer.write(childLine); + writer.newLine(); + rowCounter.increment(); + + if (childTableName.equals("RU_COLLATERAL")) { + aggregateBlocksTableFile(childTableName, aggregatedFile, tableFileMap, memberCode, rowCounter); + } + + while ((childLine = childReader.nextLine()) != null) { + childAccSerialNum = Long.parseLong(childLine.split(";")[3]); + + if (childAccSerialNum.equals(ruUidSerialNum)) { + writer.write(childLine); + writer.newLine(); + rowCounter.increment(); + + if (childTableName.equals("RU_COLLATERAL")) { + aggregateBlocksTableFile(childTableName, aggregatedFile, tableFileMap, memberCode, rowCounter); + } + } + + if (childAccSerialNum > ruUidSerialNum) { + break; + } + } + } + } + } + + for (MovableBufferedReader br : childTablesReadersMap.values()) { + br.getReader().close(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + void aggregateBlocksTableFile(String parentTableName, Path aggregatedFile, Map tableFileMap, String memberCode, MutableLong rowCounter) { + try (BufferedReader parentFileReader = Files.newBufferedReader(tableFileMap.get(parentTableName)); + MovableBufferedReader blocksFileReader = new MovableBufferedReader(Files.newBufferedReader(tableFileMap.get(parentTableName + "_BLOCKS"))); + BufferedWriter writer = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) { + String parentLine; + while ((parentLine = parentFileReader.readLine()) != null) { + List lineList = Arrays.asList(parentLine.split(";")); + int memberCodeIndex = lineList.indexOf("MEMBER_CODE"); + if (memberCodeIndex != -1) { + if (!lineList.get(memberCodeIndex + 1).startsWith(memberCode)) { + continue; + } + } + + writer.write(parentLine); + writer.newLine(); + rowCounter.increment(); + + Long parentSerialNum = Long.parseLong(parentLine.split(";")[2]); + + String blocksLine = blocksFileReader.getCurrentLine(); + if (blocksLine == null) { + continue; + } + + Long blocksParentSerialNum = Long.parseLong(blocksLine.split(";")[4]); + + if (parentSerialNum > blocksParentSerialNum) { + while ((blocksLine = blocksFileReader.nextLine()) != null) { + blocksParentSerialNum = Long.parseLong(blocksLine.split(";")[4]); + + if (blocksParentSerialNum.equals(parentSerialNum)) { + writer.write(blocksLine); + writer.newLine(); + rowCounter.increment(); + } + + if (blocksParentSerialNum > parentSerialNum) { + break; + } + } + } else if (parentSerialNum.equals(blocksParentSerialNum)) { + writer.write(blocksLine); + writer.newLine(); + rowCounter.increment(); + + while ((blocksLine = blocksFileReader.nextLine()) != null) { + blocksParentSerialNum = Long.parseLong(blocksLine.split(";")[4]); + + if (blocksParentSerialNum.equals(parentSerialNum)) { + writer.write(blocksLine); + writer.newLine(); + rowCounter.increment(); + } + + if (blocksParentSerialNum > parentSerialNum) { + break; + } + } + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidFileAggregator.java b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidFileAggregator.java new file mode 100644 index 0000000..d0777d5 --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/aggregator/GutdfFidFileAggregator.java @@ -0,0 +1,97 @@ +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.Arrays; +import java.util.List; +import java.util.Map; +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; + +@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"); + + for (String tableName : getRequiredTables()) { + if (tableName.equals("RU_UID")) { + fileAggregatorCommon.aggregateRuUidFiles(aggregatedFile, tableFileMap, memberCode, rowCounter); + } else if (tableName.equals("RU_BANKRUPTCY")) { + fileAggregatorCommon.aggregateBlocksTableFile(tableName, aggregatedFile, tableFileMap, memberCode, rowCounter); + } else { + try (BufferedReader reader = Files.newBufferedReader(tableFileMap.get(tableName)); + BufferedWriter writer = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) { + String line; + + while ((line = reader.readLine()) != null) { + List lineList = Arrays.asList(line.split(";")); + int memberCodeIndex = lineList.indexOf("MEMBER_CODE"); + if (memberCodeIndex != -1) { + if (!lineList.get(memberCodeIndex + 1).startsWith(memberCode)) { + continue; + } + } + + writer.write(line); + writer.newLine(); + rowCounter.increment(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + try (BufferedWriter writer = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) { + writer.write("EOF"); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return aggregatedFile; + } +} diff --git a/src/main/java/ru/nbch/indicsearchservice/filter/secondlevel/RuUidSecondLevelTableFilter.java b/src/main/java/ru/nbch/indicsearchservice/filter/secondlevel/RuUidSecondLevelTableFilter.java index 9deaa2d..4f351e9 100644 --- a/src/main/java/ru/nbch/indicsearchservice/filter/secondlevel/RuUidSecondLevelTableFilter.java +++ b/src/main/java/ru/nbch/indicsearchservice/filter/secondlevel/RuUidSecondLevelTableFilter.java @@ -11,19 +11,19 @@ import ru.nbch.indicsearchservice.model.TableData; @Component public class RuUidSecondLevelTableFilter implements SecondLevelTableFilter { private static final Set SUPPORTED_TABLE_NAMES = Set.of( - "RU_TRADE", "RU_ACCOUNT_AMT", - "RU_COBORROWER", - "RU_PAYMT_CONDITION", - "RU_OVERALLVAL", "RU_AMENDMENT", - "RU_FUNDDATE", "RU_ARREAR", + "RU_COBORROWER", "RU_DUEARREAR", + "RU_FUNDDATE", + "RU_MONTHAVERPAYMT", + "RU_OVERALLVAL", "RU_PASTDUEARREAR", "RU_PAYMT", - "RU_MONTHAVERPAYMT", - "RU_SOURCENONMONETOBLIG" + "RU_PAYMT_CONDITION", + "RU_SOURCENONMONETOBLIG", + "RU_TRADE" ); @Override diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAccountAmtTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuAccountAmtTableLoader.java index b4c736d..8e56b1c 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAccountAmtTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuAccountAmtTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuAccountAmtTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAccountAmt(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAccountAmt(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerIndividTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerIndividTableLoader.java index 596fe19..7a61187 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerIndividTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerIndividTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuAcquirerIndividTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAcquirerIndivid(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAcquirerIndivid(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerLegalTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerLegalTableLoader.java index 50e8ac8..8aa76aa 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerLegalTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuAcquirerLegalTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuAcquirerLegalTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAcquirerLegal(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAcquirerLegal(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAllArrearsTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuAllArrearsTableLoader.java index fde1844..1d6361c 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAllArrearsTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuAllArrearsTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuAllArrearsTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAllArrears(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAllArrears(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAmendmentTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuAmendmentTableLoader.java index 4d1645e..3b2ae88 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAmendmentTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuAmendmentTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuAmendmentTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAmendment(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAmendment(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuAmountInfoTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuAmountInfoTableLoader.java index 71ac678..6f99413 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuAmountInfoTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuAmountInfoTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuAmountInfoTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAmountInfo(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuAmountInfo(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuApplicationTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuApplicationTableLoader.java index f5f1ae9..8cc4502 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuApplicationTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuApplicationTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuApplicationTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuApplication(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuApplication(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuArrearTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuArrearTableLoader.java index 761f9a8..88cef8d 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuArrearTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuArrearTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuArrearTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuArrear(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuArrear(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyBlocksTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyBlocksTableLoader.java index 1dd136f..e0f78d1 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyBlocksTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyBlocksTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuBankruptcyBlocksTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuBankruptcyBlocks(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuBankruptcyBlocks(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyTableLoader.java index f82ec60..9966ac5 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuBankruptcyTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuBankruptcyTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuBankruptcy(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuBankruptcy(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCapabilityTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuCapabilityTableLoader.java index e93b359..f9fdb00 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCapabilityTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuCapabilityTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuCapabilityTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCapability(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCapability(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCoborrowerTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuCoborrowerTableLoader.java index 54ca0ef..5a1c591 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCoborrowerTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuCoborrowerTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuCoborrowerTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCoborrower(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCoborrower(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatInsuredTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatInsuredTableLoader.java index e5e25d0..32ef276 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatInsuredTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatInsuredTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuCollatInsuredTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCollatInsured(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCollatInsured(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatRepayTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatRepayTableLoader.java index d384585..a9cba5f 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatRepayTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuCollatRepayTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuCollatRepayTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCollatRepay(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCollatRepay(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralBlocksTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralBlocksTableLoader.java index e5ef500..87ddb67 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralBlocksTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralBlocksTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuCollateralBlocksTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCollateralBlocks(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCollateralBlocks(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralTableLoader.java index 57fa78f..7338588 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuCollateralTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuCollateralTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCollateral(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuCollateral(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuContractTermsChangesTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuContractTermsChangesTableLoader.java index 76e964f..d92d876 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuContractTermsChangesTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuContractTermsChangesTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuContractTermsChangesTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuContractTermsChanges(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuContractTermsChanges(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuDebtBurdenInfoTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuDebtBurdenInfoTableLoader.java index 92f56f5..3b72442 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuDebtBurdenInfoTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuDebtBurdenInfoTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuDebtBurdenInfoTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuDebtBurdenInfo(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuDebtBurdenInfo(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuDueArrearTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuDueArrearTableLoader.java index f209a7c..dcd5e1e 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuDueArrearTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuDueArrearTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuDueArrearTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuDueArrear(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuDueArrear(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuFundDateTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuFundDateTableLoader.java index 5983478..882a38a 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuFundDateTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuFundDateTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuFundDateTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuFundDate(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuFundDate(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuGuaranteeRepayTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuGuaranteeRepayTableLoader.java index a234113..54bc83c 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuGuaranteeRepayTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuGuaranteeRepayTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuGuaranteeRepayTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuGuaranteeRepay(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuGuaranteeRepay(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuGuarantorTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuGuarantorTableLoader.java index 0b344f9..d14c418 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuGuarantorTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuGuarantorTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuGuarantorTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuGuarantor(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuGuarantor(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuIndepGuarantorTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuIndepGuarantorTableLoader.java index 2c76999..b6d1b87 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuIndepGuarantorTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuIndepGuarantorTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuIndepGuarantorTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuIndepGuarantor(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuIndepGuarantor(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuLegalRecordTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuLegalRecordTableLoader.java index 1c47485..47849aa 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuLegalRecordTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuLegalRecordTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuLegalRecordTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuLegalRecord(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuLegalRecord(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuMonthAverPaymtTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuMonthAverPaymtTableLoader.java index 521ecbf..c3e9236 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuMonthAverPaymtTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuMonthAverPaymtTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuMonthAverPaymtTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuMonthAverPaymt(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuMonthAverPaymt(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligAccountTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligAccountTableLoader.java index bfc758e..6fcdd68 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligAccountTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligAccountTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuObligAccountTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligAccount(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligAccount(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligPartTakeTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligPartTakeTableLoader.java index ee0bce3..b5d5790 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligPartTakeTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligPartTakeTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuObligPartTakeTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligPartTake(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligPartTake(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligTerminationTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligTerminationTableLoader.java index 131bbf6..3d3ccea 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligTerminationTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligTerminationTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuObligTerminationTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligTermination(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligTermination(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcBankruptTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcBankruptTableLoader.java index dd1a5ec..e0dfb20 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcBankruptTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcBankruptTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuObligsRcBankruptTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligsRcBankrupt(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligsRcBankrupt(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcLiquidTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcLiquidTableLoader.java index b54b18c..eb1901d 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcLiquidTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuObligsRcLiquidTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuObligsRcLiquidTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligsRcLiquid(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuObligsRcLiquid(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuOtherLegalTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuOtherLegalTableLoader.java index 2418394..17246b7 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuOtherLegalTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuOtherLegalTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuOtherLegalTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuOtherLegal(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuOtherLegal(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuOverallvalTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuOverallvalTableLoader.java index dbcb87b..8566c9d 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuOverallvalTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuOverallvalTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -20,6 +20,7 @@ public class RuOverallvalTableLoader implements TableLoader { IndicSearchUtils indicSearchUtils) { this.mapperHolder = mapperHolder; this.indicSearchUtils = indicSearchUtils; + } @Override @@ -38,15 +39,8 @@ public class RuOverallvalTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuOverallval(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuOverallval(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuPastDueArrearTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuPastDueArrearTableLoader.java index 447e50c..70bd218 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuPastDueArrearTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuPastDueArrearTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuPastDueArrearTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuPastDueArrear(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuPastDueArrear(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtConditionTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtConditionTableLoader.java index 00530b9..284ce9f 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtConditionTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtConditionTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuPaymtConditionTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuPaymtCondition(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuPaymtCondition(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtTableLoader.java index 618cbda..48c2d52 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuPaymtTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuPaymtTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuPaymt(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuPaymt(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuServiceCoTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuServiceCoTableLoader.java index 3f41f03..21e42df 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuServiceCoTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuServiceCoTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuServiceCoTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuServiceCo(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuServiceCo(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuSettledTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuSettledTableLoader.java index 5c19d06..3bff805 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuSettledTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuSettledTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuSettledTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuSettled(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuSettled(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuSourceNonMonetObligTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuSourceNonMonetObligTableLoader.java index 1ff11a7..9ba9455 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuSourceNonMonetObligTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuSourceNonMonetObligTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuSourceNonMonetObligTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuSourceNonMonetOblig(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuSourceNonMonetOblig(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuSubjectNonMonetObligTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuSubjectNonMonetObligTableLoader.java index 8fed736..ca7ea01 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuSubjectNonMonetObligTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuSubjectNonMonetObligTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuSubjectNonMonetObligTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuSubjectNonMonetOblig(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuSubjectNonMonetOblig(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuSubmitHoldTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuSubmitHoldTableLoader.java index d86ecba..3dfa3b0 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuSubmitHoldTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuSubmitHoldTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuSubmitHoldTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuSubmitHold(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuSubmitHold(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuTradeTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuTradeTableLoader.java index f3f88c4..d7c0566 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuTradeTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuTradeTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuTradeTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuTrade(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuTrade(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/RuUidTableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/RuUidTableLoader.java index 857fa6d..82451b9 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/RuUidTableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/RuUidTableLoader.java @@ -1,11 +1,11 @@ package ru.nbch.indicsearchservice.loader; -import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.nio.file.Path; import java.util.List; import java.util.Set; +import java.util.UUID; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +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; @@ -38,15 +38,8 @@ public class RuUidTableLoader implements TableLoader { } @Override - public List searchByFid(Set fids) { - List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuUid(fids); - - List resultTableData = new ArrayList<>(); - for (LinkedHashMap row : foundTableRows) { - TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); - resultTableData.add(parsedTableData); - } - - return resultTableData; + @Transactional(readOnly = true) + public Path searchByFid(Set fids, UUID taskId) { + return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuUid(fidSet), taskId); } } diff --git a/src/main/java/ru/nbch/indicsearchservice/loader/TableLoader.java b/src/main/java/ru/nbch/indicsearchservice/loader/TableLoader.java index 072a85b..23ada24 100644 --- a/src/main/java/ru/nbch/indicsearchservice/loader/TableLoader.java +++ b/src/main/java/ru/nbch/indicsearchservice/loader/TableLoader.java @@ -1,8 +1,9 @@ package ru.nbch.indicsearchservice.loader; +import java.nio.file.Path; import java.util.List; import java.util.Set; -import ru.nbch.indicsearchservice.model.TableData; +import java.util.UUID; import ru.nbch.indicsearchservice.model.enums.DataType; import ru.nbch.indicsearchservice.model.enums.SearchParameter; @@ -15,5 +16,5 @@ public interface TableLoader { return getSuitableDataTypes().contains(dataType) && getSuitableSearchParameters().contains(searchParameter); } - List searchByFid(Set fids); + Path searchByFid(Set fids, UUID taskId); } 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 a21aa56..ae59417 100644 --- a/src/main/java/ru/nbch/indicsearchservice/repository/indic/IndicMapper.java +++ b/src/main/java/ru/nbch/indicsearchservice/repository/indic/IndicMapper.java @@ -11,48 +11,48 @@ import ru.nbch.indicsearchservice.repository.MyBatisRepository; public interface IndicMapper extends MyBatisRepository { List> getTableColumnsByTableNames(List tables); - List> findAllByFidFromRuUid(Set fids); - List> findAllByFidFromRuTrade(Set fids); - List> findAllByFidFromRuApplication(Set fids); - List> findAllByFidFromRuAccountAmt(Set fids); - List> findAllByFidFromRuAcquirerIndivid(Set fids); - List> findAllByFidFromRuAcquirerLegal(Set fids); - List> findAllByFidFromRuAllArrears(Set fids); - List> findAllByFidFromRuAmendment(Set fids); - List> findAllByFidFromRuAmountInfo(Set fids); - List> findAllByFidFromRuArrear(Set fids); - List> findAllByFidFromRuBankruptcy(Set fids); - List> findAllByFidFromRuBankruptcyBlocks(Set fids); - List> findAllByFidFromRuCapability(Set fids); - List> findAllByFidFromRuCoborrower(Set fids); - List> findAllByFidFromRuCollateral(Set fids); - List> findAllByFidFromRuCollateralBlocks(Set fids); - List> findAllByFidFromRuCollatInsured(Set fids); - List> findAllByFidFromRuCollatRepay(Set fids); - List> findAllByFidFromRuContractTermsChanges(Set fids); - List> findAllByFidFromRuDebtBurdenInfo(Set fids); - List> findAllByFidFromRuDueArrear(Set fids); - List> findAllByFidFromRuFundDate(Set fids); - List> findAllByFidFromRuGuaranteeRepay(Set fids); - List> findAllByFidFromRuGuarantor(Set fids); - List> findAllByFidFromRuIndepGuarantor(Set fids); - List> findAllByFidFromRuLegalRecord(Set fids); - List> findAllByFidFromRuMonthAverPaymt(Set fids); - List> findAllByFidFromRuObligAccount(Set fids); - List> findAllByFidFromRuObligPartTake(Set fids); - List> findAllByFidFromRuObligsRcBankrupt(Set fids); - List> findAllByFidFromRuObligsRcLiquid(Set fids); - List> findAllByFidFromRuObligTermination(Set fids); - List> findAllByFidFromRuOtherLegal(Set fids); - List> findAllByFidFromRuOverallval(Set fids); - List> findAllByFidFromRuPastDueArrear(Set fids); - List> findAllByFidFromRuPaymtCondition(Set fids); - List> findAllByFidFromRuPaymt(Set fids); - List> findAllByFidFromRuServiceCo(Set fids); - List> findAllByFidFromRuSettled(Set fids); - List> findAllByFidFromRuSourceNonMonetOblig(Set fids); - List> findAllByFidFromRuSubjectNonMonetOblig(Set fids); - List> findAllByFidFromRuSubmitHold(Set fids); + 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); List> findAllByAcctNumAndMemberCodeFromRuUid(String columns, String acctNum, String memberCode); Cursor> findAllByAcctNumAndMemberCodeFromRuUidCursor(String columns, String acctNum, String memberCode); diff --git a/src/main/java/ru/nbch/indicsearchservice/service/IndicSearchService.java b/src/main/java/ru/nbch/indicsearchservice/service/IndicSearchService.java index 3755d40..fc6b6a3 100644 --- a/src/main/java/ru/nbch/indicsearchservice/service/IndicSearchService.java +++ b/src/main/java/ru/nbch/indicsearchservice/service/IndicSearchService.java @@ -7,20 +7,19 @@ 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; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.util.StopWatch; +import ru.nbch.indicsearchservice.aggregator.FileAggregator; import ru.nbch.indicsearchservice.dto.request.AddSearchJobRequestDto; import ru.nbch.indicsearchservice.dto.response.AddSearchJobResponseDto; import ru.nbch.indicsearchservice.dto.response.JobStatusResponseDto; -import ru.nbch.indicsearchservice.filter.firstlevel.DefaultFirstLevelTableFilter; -import ru.nbch.indicsearchservice.filter.secondlevel.SecondLevelTableFilter; -import ru.nbch.indicsearchservice.filter.thirdlevel.ThirdLevelTableFilter; import ru.nbch.indicsearchservice.loader.TableLoader; -import ru.nbch.indicsearchservice.model.TableData; import ru.nbch.indicsearchservice.util.ExcelWriter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import tools.jackson.databind.json.JsonMapper; @@ -32,32 +31,31 @@ public class IndicSearchService { private static final boolean IS_EXPORT_AS_EXCEL = true; private final List tableLoaders; - private final DefaultFirstLevelTableFilter firstLevelTableFilter; - private final List secondLevelTableFilters; - private final List thirdLevelTableFilters; + private final List fileAggregators; private final IndicSearchUtils indicSearchUtils; private final ExcelWriter excelWriter; private final JsonMapper jsonMapper; public IndicSearchService(List tableLoaders, - DefaultFirstLevelTableFilter firstLevelTableFilter, - List secondLevelTableFilters, - List thirdLevelTableFilters, + List fileAggregators, IndicSearchUtils indicSearchUtils, ExcelWriter excelWriter, JsonMapper jsonMapper) { this.tableLoaders = tableLoaders; - this.firstLevelTableFilter = firstLevelTableFilter; - this.secondLevelTableFilters = secondLevelTableFilters; - this.thirdLevelTableFilters = thirdLevelTableFilters; + this.fileAggregators = fileAggregators; this.indicSearchUtils = indicSearchUtils; this.excelWriter = excelWriter; this.jsonMapper = jsonMapper; } public AddSearchJobResponseDto addSearchJob(AddSearchJobRequestDto request) { + UUID taskId = UUID.randomUUID(); + StopWatch sw = new StopWatch(); + + // Первый этап. Получение данных из БД и заполнение файлов + log.info("First step started. Getting data from database and filling csv files"); sw.start(); List suitableTableLoaders = new ArrayList<>(); @@ -73,28 +71,64 @@ public class IndicSearchService { request.getSearchValue() ); - Map> tableDataMapByFid = new ConcurrentHashMap<>(); - suitableTableLoaders.parallelStream().forEach(tl -> tableDataMapByFid.put(tl.getTableName(), tl.searchByFid(foundFids))); -// for (TableLoader tableLoader : suitableTableLoaders) { -// tableDataMapByFid.put(tableLoader.getTableName(), tableLoader.searchByFid(foundFids)); -// } + Map tableFileMap = new ConcurrentHashMap<>(); + suitableTableLoaders.parallelStream().forEach(tl -> { + String tableName = tl.getTableName(); + Path tableFile = tl.searchByFid(foundFids, taskId); - List result = firstLevelTableFilter.applyFilter(tableDataMapByFid, request.getMemberCode()); - secondLevelTableFilters.forEach(f -> f.applyFilter(result, tableDataMapByFid)); - thirdLevelTableFilters.forEach(f -> f.applyFilter(result, tableDataMapByFid)); + tableFileMap.put(tableName, tableFile); + }); + + sw.stop(); + log.info(sw.prettyPrint()); + sw = new StopWatch(); + + // Второй этап. Объединение файлов в один + 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); + + sw.stop(); + log.info(sw.prettyPrint()); + sw = new StopWatch(); + + for (Path tableFilePath : tableFileMap.values()) { + try { + Files.deleteIfExists(tableFilePath); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + // Третий этап. Экспорт агрегированного файла в JSON или XLSX + log.info("Third step started. Exporting aggregated file into JSON/XLSX."); + sw.start(); + + if (!IS_EXPORT_AS_EXCEL) { +// try { +// Files.write(Path.of("1.json"), jsonMapper.writeValueAsBytes(result)); +// } catch (IOException e) { +// throw new RuntimeException(e); +// } + } else { + excelWriter.writeExcelFile(aggregatedFile, taskId); + } sw.stop(); log.info(sw.prettyPrint()); - if (!IS_EXPORT_AS_EXCEL) { - try { - Files.write(Path.of("1.json"), jsonMapper.writeValueAsBytes(result)); - } catch (IOException e) { - throw new RuntimeException(e); - } - } else { - excelWriter.writeExcelFile(result); - } +// try { +// Files.deleteIfExists(aggregatedFile); +// } catch (IOException e) { +// throw new RuntimeException(e); +// } return null; } diff --git a/src/main/java/ru/nbch/indicsearchservice/util/ExcelWriter.java b/src/main/java/ru/nbch/indicsearchservice/util/ExcelWriter.java index 08cb75b..b59cda5 100644 --- a/src/main/java/ru/nbch/indicsearchservice/util/ExcelWriter.java +++ b/src/main/java/ru/nbch/indicsearchservice/util/ExcelWriter.java @@ -1,15 +1,21 @@ package ru.nbch.indicsearchservice.util; import jakarta.annotation.Nullable; +import java.io.BufferedReader; import java.io.IOException; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.stream.Collectors; -import org.apache.commons.lang3.mutable.MutableInt; +import java.util.Set; +import java.util.UUID; +import org.apache.commons.lang3.mutable.MutableLong; import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; @@ -23,39 +29,62 @@ import org.apache.poi.xssf.usermodel.XSSFFont; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import ru.nbch.indicsearchservice.model.TableData; +import ru.nbch.indicsearchservice.config.settings.ApplicationSettings; @Component public class ExcelWriter { private static final Logger log = LoggerFactory.getLogger(ExcelWriter.class); + private static final Long EXCEL_SHEET_MAX_SIZE = 1_048_575L; - public void writeExcelFile(List tableDataList) { - Map> tableDataGroupedByTables = tableDataList.stream() - .collect(Collectors.groupingBy(TableData::getTableName)); + private static final Set FIRST_LEVEL_TABLES = Set.of( + "RU_UID", + "RU_APPLICATION", + "RU_OBLIGPARTTAKE", + "RU_BANKRUPTCY", + "RU_SETTLED", + "RU_OTHERLEGAL", + "RU_CAPABILITY", + "RU_DEBT_BURDEN_INFO" + ); - Path excelFile = Path.of("2.xlsx"); + private final ApplicationSettings settings; - try (SXSSFWorkbook workbook = new SXSSFWorkbook(); - OutputStream os = Files.newOutputStream(excelFile)) { + public ExcelWriter(ApplicationSettings settings) { + this.settings = settings; + } + + public void writeExcelFile(Path aggregatedFile, UUID taskId) { + Path excelFile = settings.getStorageDirectory().toPath().resolve(taskId.toString() + ".xlsx"); + + try (OutputStream os = Files.newOutputStream(excelFile); + BufferedReader aggregatedFileReader = Files.newBufferedReader(aggregatedFile); + SXSSFWorkbook workbook = new SXSSFWorkbook()) { CellStyle headerCellStyle = createHeaderCellStyle(workbook); CellStyle cellStyle = createCellStyle(workbook); - for (Map.Entry> entry : tableDataGroupedByTables.entrySet()) { - String tableName = entry.getKey(); - List tableRows = entry.getValue(); + Iterator iterator = aggregatedFileReader.lines().iterator(); - Sheet tableSheet = createSheet(workbook, tableName.toUpperCase()); - MutableInt currentRow = new MutableInt(0); + MutableLong sheetRowCounter = new MutableLong(0L); + MutableLong sheetTableCounter = new MutableLong(1L); - for (TableData tableRow : tableRows) { - writeDataSheetIntoSheetRow( - tableRow, - tableSheet, - currentRow, - headerCellStyle, - cellStyle - ); + boolean isFirst = true; + String lastTableName = null; + List rows = new ArrayList<>(); + while (iterator.hasNext()) { + String line = iterator.next(); + + if (!isFirst && (FIRST_LEVEL_TABLES.contains(line.split(";")[0]) || line.equals("EOF"))) { + lastTableName = rows.getFirst().split(";")[0]; + writeToExcel(workbook, rows, sheetRowCounter, sheetTableCounter, headerCellStyle, cellStyle); + if (lastTableName != null && !lastTableName.equals(line.split(";")[0])) { + sheetRowCounter.setValue(0L); + sheetTableCounter.setValue(1L); + } + rows.clear(); } + + rows.add(line); + isFirst = false; } workbook.write(os); @@ -64,6 +93,61 @@ public class ExcelWriter { } } + private void writeToExcel(Workbook workbook, + List rows, + MutableLong sheetRowCounter, + MutableLong sheetTableCounter, + CellStyle headerCellStyle, + CellStyle cellStyle) { + if (rows == null || rows.isEmpty()) { + return; + } + + String parentTableName = rows.getFirst().split(";")[0]; + + Sheet tableSheet; + if (sheetRowCounter.longValue() + (rows.size() * 2L) >= EXCEL_SHEET_MAX_SIZE) { + tableSheet = createSheet(workbook, parentTableName.toUpperCase() + "_" + sheetTableCounter.incrementAndGet()); + sheetRowCounter.setValue(0L); + } else { + tableSheet = createSheet(workbook, parentTableName.toUpperCase() + "_" + sheetTableCounter.longValue()); + } + + for (String row : rows) { + List rowList = Arrays.asList(row.split(";", -1)); + String tableName = rowList.getFirst(); + + List rowSublist = rowList.subList(5, rowList.size()); + Map rowValues = new HashMap<>(); + for (int i = 0; i + 1 <= rowSublist.size(); i = i + 2) { + rowValues.put(rowSublist.get(i), rowSublist.get(i + 1)); + } + + createHeaderRow( + tableName, + tableSheet, + sheetRowCounter, + headerCellStyle + ); + + for (Map.Entry entry : rowValues.entrySet()) { + String columnName = entry.getKey(); + String columnValue = entry.getValue(); + + writeFieldDataIntoSheetRow( + columnName, + columnName, + columnValue, + tableSheet, + sheetRowCounter, + cellStyle + ); + } + + sheetRowCounter.increment(); + } + } + private CellStyle createHeaderCellStyle(Workbook workbook) { CellStyle headerCellStyle = workbook.createCellStyle(); headerCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); @@ -94,17 +178,23 @@ public class ExcelWriter { } private Sheet createSheet(Workbook workbook, String sheetName) { - Sheet sheet = workbook.createSheet(sheetName); - sheet.setColumnWidth(0, 25 * 256); - sheet.setColumnWidth(1, 115 * 256); - sheet.setColumnWidth(2, 38 * 256); + Sheet foundSheet = workbook.getSheet(sheetName); - return sheet; + if (foundSheet == null) { + Sheet sheet = workbook.createSheet(sheetName); + sheet.setColumnWidth(0, 25 * 256); + sheet.setColumnWidth(1, 115 * 256); + sheet.setColumnWidth(2, 38 * 256); + + return sheet; + } + + return foundSheet; } private void createHeaderRow(String localizedTableName, Sheet sheet, - MutableInt currentRow, + MutableLong currentRow, CellStyle headerCellStyle) { Row headerRow = sheet.createRow(currentRow.intValue()); headerRow.setHeightInPoints(15); @@ -117,49 +207,11 @@ public class ExcelWriter { currentRow.increment(); } - public void writeDataSheetIntoSheetRow(TableData tableData, - Sheet sheet, - MutableInt currentRow, - CellStyle headerCellStyle, - CellStyle cellStyle) { - createHeaderRow( - tableData.getTableName(), - sheet, - currentRow, - headerCellStyle - ); - - for (TableData.FieldData fieldData : tableData.getFieldData()) { - writeFieldDataIntoSheetRow( - fieldData.columnName(), - fieldData.columnName(), - fieldData.columnValue(), - sheet, - currentRow, - cellStyle - ); - } - - currentRow.increment(); - - if (!tableData.getRelatedTableData().isEmpty()) { - for (TableData relatedTableData : tableData.getRelatedTableData()) { - writeDataSheetIntoSheetRow( - relatedTableData, - sheet, - currentRow, - headerCellStyle, - cellStyle - ); - } - } - } - private void writeFieldDataIntoSheetRow(String fieldKey, String localizedFieldKey, @Nullable Object fieldValue, Sheet sheet, - MutableInt currentRow, + MutableLong currentRow, CellStyle cellStyle) { Row dataRow = sheet.createRow(currentRow.intValue()); dataRow.setHeightInPoints(15); diff --git a/src/main/java/ru/nbch/indicsearchservice/util/IndicSearchUtils.java b/src/main/java/ru/nbch/indicsearchservice/util/IndicSearchUtils.java index 2a7a6ad..b9e3880 100644 --- a/src/main/java/ru/nbch/indicsearchservice/util/IndicSearchUtils.java +++ b/src/main/java/ru/nbch/indicsearchservice/util/IndicSearchUtils.java @@ -1,21 +1,97 @@ package ru.nbch.indicsearchservice.util; +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.sql.Date; import java.sql.Timestamp; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; 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.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.TableData; import ru.nbch.indicsearchservice.model.enums.DataType; import ru.nbch.indicsearchservice.model.enums.SearchParameter; @Component public class IndicSearchUtils { + private final ApplicationSettings settings; + + public IndicSearchUtils(ApplicationSettings settings) { + this.settings = settings; + } + + public Path writeRowsToFile(String tableName, + Set fids, + Function, Cursor>> mapperFunc, + UUID taskId) { + 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) { + StringBuilder sb = new StringBuilder(); + sb.append(tableName).append(";"); + + if (row.containsKey("FID") && row.get("FID") != null) { + sb.append(row.get("FID").toString()).append(";"); + } else { + sb.append(";"); + } + + if (row.containsKey("SERIAL_NUM") && row.get("SERIAL_NUM") != null) { + sb.append(row.get("SERIAL_NUM").toString()).append(";"); + } else { + sb.append(";"); + } + + if (row.containsKey("ACC_SERIAL_NUM") && row.get("ACC_SERIAL_NUM") != null) { + sb.append(row.get("ACC_SERIAL_NUM").toString()).append(";"); + } else { + sb.append(";"); + } + + if (row.containsKey("PARENT_SERIAL_NUM") && row.get("PARENT_SERIAL_NUM") != null) { + sb.append(row.get("PARENT_SERIAL_NUM").toString()).append(";"); + } else { + sb.append(";"); + } + + for (Map.Entry entry : row.entrySet()) { + String columnName = entry.getKey(); + Object columnValue = entry.getValue(); + + sb.append(columnName.toUpperCase()).append(";"); + + if (columnValue != null) { + sb.append(columnValue).append(";"); + } else { + sb.append(";"); + } + } + + sb.deleteCharAt(sb.length() - 1); + writer.write(sb.toString()); + writer.newLine(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + + return resultFile; + } + public Set getFidsBasedOnDataTypeAndSearchParameter(DataType dataType, SearchParameter searchParameter, String searchValue) { Set fids = new HashSet<>(); diff --git a/src/main/java/ru/nbch/indicsearchservice/util/MovableBufferedReader.java b/src/main/java/ru/nbch/indicsearchservice/util/MovableBufferedReader.java new file mode 100644 index 0000000..6824aed --- /dev/null +++ b/src/main/java/ru/nbch/indicsearchservice/util/MovableBufferedReader.java @@ -0,0 +1,61 @@ +package ru.nbch.indicsearchservice.util; + +import java.io.BufferedReader; +import java.io.Closeable; +import java.io.IOException; +import java.util.Objects; + +public class MovableBufferedReader implements Closeable { + private final BufferedReader reader; + private String currentLine; + + public MovableBufferedReader(BufferedReader reader) { + this.reader = reader; + try { + this.currentLine = reader.readLine(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public String nextLine() { + try { + this.currentLine = reader.readLine(); + } catch (IOException e) { + throw new RuntimeException(e); + } + return this.currentLine; + } + + public BufferedReader getReader() { + return reader; + } + + public String getCurrentLine() { + return currentLine; + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + MovableBufferedReader that = (MovableBufferedReader) o; + return Objects.equals(reader, that.reader) && Objects.equals(currentLine, that.currentLine); + } + + @Override + public int hashCode() { + return Objects.hash(reader, currentLine); + } + + @Override + public String toString() { + return "MovableBufferedReader{" + + "currentLine='" + currentLine + '\'' + + '}'; + } + + @Override + public void close() throws IOException { + this.reader.close(); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index c5da63e..5d15a42 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -12,4 +12,6 @@ app.data-source.validation-timeout=5000 app.data-source.idle-timeout=600000 app.data-source.max-pool-size=10 app.data-source.max-lifetime=1800000 -app.data-source.keep-alive-time=120000 \ No newline at end of file +app.data-source.keep-alive-time=120000 + +app.storage-directory=C:\\Users\\inikolaev\\Desktop\\1 \ No newline at end of file diff --git a/src/main/resources/mappers/indic/indic_mapper.xml b/src/main/resources/mappers/indic/indic_mapper.xml index aa2a226..ad67abc 100644 --- a/src/main/resources/mappers/indic/indic_mapper.xml +++ b/src/main/resources/mappers/indic/indic_mapper.xml @@ -14,423 +14,465 @@ WITH UR - SELECT * FROM INDIC.RU_UID WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_TRADE WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_APPLICATION WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_ACCOUNT_AMT WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_ACQUIRERINDIVID WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_ACQUIRERLEGAL WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_ALL_ARREARS WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_AMENDMENT WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_AMOUNT_INFO WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_ARREAR WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_BANKRUPTCY WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_BANKRUPTCY_BLOCKS WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_CAPABILITY WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_COBORROWER WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_COLLATERAL WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_COLLATERAL_BLOCKS WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_COLLATINSURED WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_COLLATREPAY WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_CONTRACT_TERMS_CHANGES WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_DEBT_BURDEN_INFO WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_DUEARREAR WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_FUNDDATE WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_GUARANTEEREPAY WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_GUARANTOR WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_INDEPGUARANTOR WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_LEGALRECORD WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_MONTHAVERPAYMT WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OBLIGACCOUNT WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OBLIGPARTTAKE WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OBLIGSRCBANKRUPT WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OBLIGSRCLIQUID WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OBLIGTERMINATION WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OTHERLEGAL WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_OVERALLVAL WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_PASTDUEARREAR WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_PAYMT_CONDITION WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_PAYMT WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_SERVICECO WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_SETTLED WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_SOURCENONMONETOBLIG WHERE FID IN #{fid} + ORDER BY FID, ACC_SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_SUBJECTNONMONETOBLIG WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR - SELECT * FROM INDIC.RU_SUBMITHOLD WHERE FID IN #{fid} + ORDER BY FID, SERIAL_NUM WITH UR