TUTDF processing added, localization added
This commit is contained in:
parent
deae009128
commit
4d9cdf9c9f
80 changed files with 2158 additions and 484 deletions
|
|
@ -51,6 +51,13 @@ public class FileAggregatorCommon {
|
|||
"RU_CONTRACT_TERMS_CHANGES",
|
||||
"RU_ALL_ARREARS"
|
||||
);
|
||||
private static final List<String> ACCOUNT_CHILD_TABLES = List.of(
|
||||
"ACCOUNT_AMEND",
|
||||
"PAYMENT",
|
||||
"COLLATERAL",
|
||||
"GUARANTOR",
|
||||
"BANK_GUARANTEE"
|
||||
);
|
||||
|
||||
void aggregateRuUidFiles(BufferedWriter aggregatedFileWriter,
|
||||
Map<String, Path> tableFileMap,
|
||||
|
|
@ -117,7 +124,7 @@ public class FileAggregatorCommon {
|
|||
List<String> childLineList = Arrays.asList(childLine.split("%%%"));
|
||||
Optional<String> foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||
if (foundChildAccSerialNum.isEmpty()) {
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found!");
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found in table " + childTableName);
|
||||
}
|
||||
Long childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
|
|
@ -126,7 +133,7 @@ public class FileAggregatorCommon {
|
|||
childLineList = Arrays.asList(childLine.split("%%%"));
|
||||
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||
if (foundChildAccSerialNum.isEmpty()) {
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found!");
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found in table " + childTableName);
|
||||
}
|
||||
childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
|
|
@ -157,7 +164,7 @@ public class FileAggregatorCommon {
|
|||
childLineList = Arrays.asList(childLine.split("%%%"));
|
||||
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||
if (foundChildAccSerialNum.isEmpty()) {
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found!");
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found in table " + childTableName);
|
||||
}
|
||||
childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
|
|
@ -269,4 +276,134 @@ public class FileAggregatorCommon {
|
|||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void aggregateAccountFiles(BufferedWriter aggregatedFileWriter,
|
||||
Map<String, Path> tableFileMap,
|
||||
String memberCode,
|
||||
String acctNum,
|
||||
String uuid,
|
||||
String serialNum,
|
||||
MutableLong rowCounter) {
|
||||
try (BufferedReader accountFileReader = Files.newBufferedReader(tableFileMap.get("ACCOUNT"))) {
|
||||
Map<String, MovableBufferedReader> childTablesReadersMap = new LinkedHashMap<>();
|
||||
for (String tableName : ACCOUNT_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 accountLine;
|
||||
while ((accountLine = accountFileReader.readLine()) != null) {
|
||||
List<String> lineList = Arrays.asList(accountLine.split("%%%"));
|
||||
Optional<String> foundMemberCode = IndicSearchCommon.getRowValue(lineList, "MEMBER_CODE");
|
||||
|
||||
if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (acctNum != null) {
|
||||
Optional<String> foundAcctNum = IndicSearchCommon.getRowValue(lineList, "ACCT_NUM");
|
||||
|
||||
if (foundAcctNum.isPresent() && !foundAcctNum.get().equals(acctNum)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (uuid != null) {
|
||||
Optional<String> foundUuid = IndicSearchCommon.getRowValue(lineList, "UUID");
|
||||
|
||||
if (foundUuid.isPresent() && !foundUuid.get().equals(uuid)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Optional<String> foundAccountSerialNum = IndicSearchCommon.getRowValue(lineList, "SERIAL_NUM");
|
||||
if (serialNum != null) {
|
||||
if (foundAccountSerialNum.isPresent() && !foundAccountSerialNum.get().equals(serialNum)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write(accountLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
if (foundAccountSerialNum.isEmpty()) {
|
||||
throw new RuntimeException("SERIAL_NUM was not found!");
|
||||
}
|
||||
Long accountSerialNum = Long.parseLong(foundAccountSerialNum.get());
|
||||
|
||||
for (Map.Entry<String, MovableBufferedReader> entry : childTablesReadersMap.entrySet()) {
|
||||
String childTableName = entry.getKey();
|
||||
MovableBufferedReader childReader = entry.getValue();
|
||||
|
||||
String childLine = childReader.getCurrentLine();
|
||||
if (childLine == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
List<String> childLineList = Arrays.asList(childLine.split("%%%"));
|
||||
Optional<String> foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||
if (foundChildAccSerialNum.isEmpty()) {
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found in table " + childTableName);
|
||||
}
|
||||
Long childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
if (accountSerialNum > childAccSerialNum) {
|
||||
while ((childLine = childReader.nextLine()) != null) {
|
||||
childLineList = Arrays.asList(childLine.split("%%%"));
|
||||
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||
if (foundChildAccSerialNum.isEmpty()) {
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found in table " + childTableName);
|
||||
}
|
||||
childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
if (childAccSerialNum.equals(accountSerialNum)) {
|
||||
aggregatedFileWriter.write(childLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
}
|
||||
|
||||
if (childAccSerialNum > accountSerialNum) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (accountSerialNum.equals(childAccSerialNum)) {
|
||||
aggregatedFileWriter.write(childLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
while ((childLine = childReader.nextLine()) != null) {
|
||||
childLineList = Arrays.asList(childLine.split("%%%"));
|
||||
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||
if (foundChildAccSerialNum.isEmpty()) {
|
||||
throw new RuntimeException("ACC_SERIAL_NUM was not found in table " + childTableName);
|
||||
}
|
||||
childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
if (childAccSerialNum.equals(accountSerialNum)) {
|
||||
aggregatedFileWriter.write(childLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
}
|
||||
|
||||
if (childAccSerialNum > accountSerialNum) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (MovableBufferedReader br : childTablesReadersMap.values()) {
|
||||
br.getReader().close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.Map;
|
||||
import java.util.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 TutdfAccountFileAggregator implements FileAggregator {
|
||||
private final ApplicationSettings settings;
|
||||
private final FileAggregatorCommon fileAggregatorCommon;
|
||||
|
||||
public TutdfAccountFileAggregator(ApplicationSettings settings,
|
||||
FileAggregatorCommon fileAggregatorCommon) {
|
||||
this.settings = settings;
|
||||
this.fileAggregatorCommon = fileAggregatorCommon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path aggregateFiles(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap, MutableLong rowCounter) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.UUID || searchParameter == SearchParameter.ACCT_NUM || searchParameter == SearchParameter.SERIAL_NUM_ACCT) {
|
||||
Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv");
|
||||
|
||||
try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) {
|
||||
if (searchParameter == SearchParameter.UUID) {
|
||||
fileAggregatorCommon.aggregateAccountFiles(aggregatedFileWriter, tableFileMap, memberCode, null, searchValue, null, rowCounter);
|
||||
} else if (searchParameter == SearchParameter.ACCT_NUM) {
|
||||
fileAggregatorCommon.aggregateAccountFiles(aggregatedFileWriter, tableFileMap, memberCode, searchValue, null, null, rowCounter);
|
||||
} else {
|
||||
fileAggregatorCommon.aggregateAccountFiles(aggregatedFileWriter, tableFileMap, memberCode, null, null, searchValue, rowCounter);
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchCommon;
|
||||
|
||||
@Component
|
||||
public class TutdfFidPassportOgrnFileAggregator implements FileAggregator {
|
||||
private static final List<String> REQUIRED_TABLES = List.of(
|
||||
"ACCOUNT",
|
||||
"INFORMATION",
|
||||
"BANKRUPTCY",
|
||||
"CONSUMER_BANKRUPTCY",
|
||||
"LEGAL"
|
||||
);
|
||||
|
||||
private final ApplicationSettings settings;
|
||||
private final FileAggregatorCommon fileAggregatorCommon;
|
||||
|
||||
public TutdfFidPassportOgrnFileAggregator(ApplicationSettings settings,
|
||||
FileAggregatorCommon fileAggregatorCommon) {
|
||||
this.settings = settings;
|
||||
this.fileAggregatorCommon = fileAggregatorCommon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path aggregateFiles(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
MutableLong rowCounter) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.FID || searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) {
|
||||
Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv");
|
||||
|
||||
try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) {
|
||||
for (String tableName : REQUIRED_TABLES) {
|
||||
if (tableName.equals("ACCOUNT")) {
|
||||
fileAggregatorCommon.aggregateAccountFiles(aggregatedFileWriter, tableFileMap, memberCode, null, null, null, rowCounter);
|
||||
} else {
|
||||
try (BufferedReader reader = Files.newBufferedReader(tableFileMap.get(tableName))) {
|
||||
String line;
|
||||
|
||||
while ((line = reader.readLine()) != null) {
|
||||
Optional<String> foundMemberCode = IndicSearchCommon.getRowValue(line, "MEMBER_CODE");
|
||||
|
||||
if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write(line);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchCommon;
|
||||
|
||||
@Component
|
||||
public class TutdfInformationFileAggregator implements FileAggregator {
|
||||
private final ApplicationSettings settings;
|
||||
|
||||
public TutdfInformationFileAggregator(ApplicationSettings settings) {
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path aggregateFiles(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap, MutableLong rowCounter) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.OLD_APP_NUM || searchParameter == SearchParameter.SERIAL_NUM_APP) {
|
||||
Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv");
|
||||
|
||||
try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND);
|
||||
BufferedReader reader = Files.newBufferedReader(tableFileMap.get("INFORMATION"))) {
|
||||
String line;
|
||||
|
||||
while ((line = reader.readLine()) != null) {
|
||||
Optional<String> foundMemberCode = IndicSearchCommon.getRowValue(line, "MEMBER_CODE");
|
||||
|
||||
if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (searchParameter == SearchParameter.OLD_APP_NUM && searchValue != null) {
|
||||
Optional<String> foundOldAppNum = IndicSearchCommon.getRowValue(line, "APP_NUM");
|
||||
|
||||
if (foundOldAppNum.isPresent() && !foundOldAppNum.get().equals(searchValue)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (searchParameter == SearchParameter.SERIAL_NUM_APP && searchValue != null) {
|
||||
Optional<String> foundSerialNum = IndicSearchCommon.getRowValue(line, "SERIAL_NUM");
|
||||
|
||||
if (foundSerialNum.isPresent() && !foundSerialNum.get().equals(searchValue)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write(line);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -8,13 +8,17 @@ import java.nio.file.Files;
|
|||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.apache.poi.ss.usermodel.BorderStyle;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
|
|
@ -29,6 +33,7 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
|
||||
@Component
|
||||
public class ExcelExporter implements Exporter {
|
||||
|
|
@ -41,7 +46,7 @@ public class ExcelExporter implements Exporter {
|
|||
this.settings = settings;
|
||||
}
|
||||
|
||||
public void writeExcelFile(@Nullable Path aggregatedFile, UUID taskId, Long totalRows) {
|
||||
public void writeExcelFile(@Nullable Path aggregatedFile, UUID taskId, Long totalRows, Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (aggregatedFile == null) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -72,7 +77,7 @@ public class ExcelExporter implements Exporter {
|
|||
|
||||
if (!isFirst && (FIRST_LEVEL_TABLES.contains(lineList.getFirst()) || line.equals("EOF"))) {
|
||||
lastTableName = rows.getFirst().split("%%%")[0];
|
||||
writeToExcel(workbook, rows, sheetRowCounter, sheetTableCounter, headerCellStyle, cellStyle);
|
||||
writeToExcel(workbook, rows, sheetRowCounter, sheetTableCounter, headerCellStyle, cellStyle, tableMetaDataMap);
|
||||
if (lastTableName != null && !lastTableName.equals(lineList.getFirst())) {
|
||||
sheetRowCounter.setValue(0L);
|
||||
sheetTableCounter.setValue(1L);
|
||||
|
|
@ -95,7 +100,8 @@ public class ExcelExporter implements Exporter {
|
|||
MutableLong sheetRowCounter,
|
||||
MutableLong sheetTableCounter,
|
||||
CellStyle headerCellStyle,
|
||||
CellStyle cellStyle) {
|
||||
CellStyle cellStyle,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (rows == null || rows.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -115,30 +121,41 @@ public class ExcelExporter implements Exporter {
|
|||
List<String> rowList = Arrays.asList(row.split("%%%", -1));
|
||||
String tableName = rowList.getFirst();
|
||||
|
||||
TableMetaData rowMetaData = tableMetaDataMap.get(tableName);
|
||||
|
||||
Set<String> allowedFields = new HashSet<>();
|
||||
if (rowMetaData != null && rowMetaData.getFieldMetaData() != null) {
|
||||
allowedFields = rowMetaData.getFieldMetaData().keySet().stream()
|
||||
.map(String::toUpperCase)
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
List<String> rowSublist = rowList.subList(1, rowList.size());
|
||||
Map<String, String> rowValues = new LinkedHashMap<>();
|
||||
Map<String, Pair<String, String>> rowValues = new LinkedHashMap<>();
|
||||
for (int i = 0; i + 1 <= rowSublist.size(); i = i + 2) {
|
||||
try {
|
||||
rowValues.put(rowSublist.get(i), rowSublist.get(i + 1));
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
String columnName = rowSublist.get(i);
|
||||
String columnValue = rowSublist.get(i + 1);
|
||||
|
||||
if (columnName != null && allowedFields.contains(columnName.toUpperCase())) {
|
||||
rowValues.put(columnName, Pair.of(rowMetaData.getFieldMetaData().get(columnName).fieldLocalization(), columnValue));
|
||||
}
|
||||
}
|
||||
|
||||
createHeaderRow(
|
||||
tableName,
|
||||
rowMetaData != null ? rowMetaData.getTableNameLocalization() : tableName,
|
||||
tableSheet,
|
||||
sheetRowCounter,
|
||||
headerCellStyle
|
||||
);
|
||||
|
||||
for (Map.Entry<String, String> entry : rowValues.entrySet()) {
|
||||
for (Map.Entry<String, Pair<String, String>> entry : rowValues.entrySet()) {
|
||||
String columnName = entry.getKey();
|
||||
String columnValue = entry.getValue();
|
||||
String columnLocalization = entry.getValue().getLeft();
|
||||
String columnValue = entry.getValue().getRight();
|
||||
|
||||
writeFieldDataIntoSheetRow(
|
||||
columnName,
|
||||
columnName,
|
||||
columnLocalization,
|
||||
columnValue,
|
||||
tableSheet,
|
||||
sheetRowCounter,
|
||||
|
|
|
|||
|
|
@ -7,14 +7,19 @@ import java.nio.file.Files;
|
|||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import tools.jackson.core.JsonGenerator;
|
||||
import tools.jackson.databind.json.JsonMapper;
|
||||
|
||||
|
|
@ -31,7 +36,7 @@ public class JsonExporter implements Exporter {
|
|||
this.jsonMapper = jsonMapper;
|
||||
}
|
||||
|
||||
public void writeJsonFile(@Nullable Path aggregatedFile, UUID taskId) {
|
||||
public void writeJsonFile(@Nullable Path aggregatedFile, UUID taskId, Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (aggregatedFile == null) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -57,7 +62,7 @@ public class JsonExporter implements Exporter {
|
|||
String tableName = lineList.getFirst();
|
||||
|
||||
if (!isFirst && (FIRST_LEVEL_TABLES.contains(tableName) || line.equals("EOF"))) {
|
||||
TableData parentData = buildTableDataHierarchy(rows);
|
||||
TableData parentData = buildTableDataHierarchy(rows, tableMetaDataMap);
|
||||
if (parentData != null) {
|
||||
jsonMapper.writeValue(jsonGenerator, parentData);
|
||||
}
|
||||
|
|
@ -74,18 +79,18 @@ public class JsonExporter implements Exporter {
|
|||
}
|
||||
}
|
||||
|
||||
private TableData buildTableDataHierarchy(List<String> rows) {
|
||||
private TableData buildTableDataHierarchy(List<String> rows, Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (rows == null || rows.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
TableData parentTableData = parseSingleRow(rows.getFirst());
|
||||
TableData parentTableData = parseSingleRow(rows.getFirst(), tableMetaDataMap);
|
||||
if (parentTableData == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (int i = 1; i < rows.size(); i++) {
|
||||
TableData childTableData = parseSingleRow(rows.get(i));
|
||||
TableData childTableData = parseSingleRow(rows.get(i), tableMetaDataMap);
|
||||
if (childTableData != null) {
|
||||
parentTableData.getRelatedTableData().add(childTableData);
|
||||
}
|
||||
|
|
@ -94,7 +99,7 @@ public class JsonExporter implements Exporter {
|
|||
return parentTableData;
|
||||
}
|
||||
|
||||
private TableData parseSingleRow(String row) {
|
||||
private TableData parseSingleRow(String row, Map<String, TableMetaData> tableMetaDataMap) {
|
||||
String[] parts = row.split("%%%", -1);
|
||||
|
||||
if (parts.length == 0 || parts[0].isEmpty()) {
|
||||
|
|
@ -102,6 +107,12 @@ public class JsonExporter implements Exporter {
|
|||
}
|
||||
|
||||
String tableName = parts[0];
|
||||
TableMetaData metaData = tableMetaDataMap.get(tableName);
|
||||
|
||||
Set<String> allowedFields = metaData != null ?
|
||||
metaData.getFieldMetaData().keySet().stream().map(String::toUpperCase).collect(Collectors.toSet()) :
|
||||
new HashSet<>();
|
||||
|
||||
List<TableData.FieldData> fieldData = new ArrayList<>();
|
||||
|
||||
for (int i = 1; i + 1 < parts.length; i += 2) {
|
||||
|
|
@ -109,9 +120,11 @@ public class JsonExporter implements Exporter {
|
|||
String columnValue = parts[i + 1];
|
||||
|
||||
if (columnName != null && !columnName.isEmpty()) {
|
||||
if (allowedFields.contains(columnName.toUpperCase())) {
|
||||
fieldData.add(new TableData.FieldData(columnName, columnValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return new TableData(tableName, fieldData);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.filter;
|
||||
|
||||
public interface TableFilter {
|
||||
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.filter.firstlevel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
|
||||
@Component
|
||||
public class DefaultFirstLevelTableFilter implements FirstLevelTableFilter {
|
||||
private static final Set<String> SUPPORTED_TABLE_NAMES = Set.of(
|
||||
"RU_UID",
|
||||
"RU_APPLICATION",
|
||||
"RU_OBLIGPARTTAKE",
|
||||
"RU_BANKRUPTCY",
|
||||
"RU_SETTLED",
|
||||
"RU_OTHERLEGAL",
|
||||
"RU_CAPABILITY",
|
||||
"RU_DEBT_BURDEN_INFO",
|
||||
"ACCOUNT",
|
||||
"INFORMATION",
|
||||
"BANKRUPTCY",
|
||||
"CONSUMER_BANKRUPTCY",
|
||||
"LEGAL"
|
||||
);
|
||||
|
||||
@Override
|
||||
public List<TableData> applyFilter(Map<String, List<TableData>> tableDataMapByFid, String memberCode) {
|
||||
List<TableData> result = new ArrayList<>();
|
||||
|
||||
for (Map.Entry<String, List<TableData>> entry : tableDataMapByFid.entrySet()) {
|
||||
String tableName = entry.getKey();
|
||||
List<TableData> tableRows = entry.getValue();
|
||||
|
||||
if (SUPPORTED_TABLE_NAMES.contains(tableName)) {
|
||||
List<TableData> tableRowsWithMatchingMemberCode = tableRows.stream()
|
||||
.filter(row -> row.getFieldData().stream()
|
||||
.anyMatch(field -> "MEMBER_CODE".equals(field.columnName()) &&
|
||||
field.columnValue() != null &&
|
||||
field.columnValue().toString().startsWith(memberCode)))
|
||||
.toList();
|
||||
|
||||
result.addAll(tableRowsWithMatchingMemberCode);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.filter.firstlevel;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import ru.nbch.indicsearchservice.filter.TableFilter;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
|
||||
public interface FirstLevelTableFilter extends TableFilter {
|
||||
List<TableData> applyFilter(Map<String, List<TableData>> tableDataMapByFid, String memberCode);
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.filter.secondlevel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
|
||||
@Component
|
||||
public class AccountSecondLevelTableFilter implements SecondLevelTableFilter {
|
||||
private static final Set<String> SUPPORTED_TABLE_NAMES = Set.of(
|
||||
"ACCOUNT_AMEND",
|
||||
"PAYMENT",
|
||||
"COLLATERAL",
|
||||
"GUARANTOR",
|
||||
"BANK_GUARANTEE"
|
||||
);
|
||||
|
||||
@Override
|
||||
public void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid) {
|
||||
if (firstLevelTableDataList == null || firstLevelTableDataList.isEmpty() || tableDataMapByFid == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Map<Object, List<TableData>> relatedTablesByAccSerialNum = new HashMap<>();
|
||||
|
||||
for (String supportedTableName : SUPPORTED_TABLE_NAMES) {
|
||||
List<TableData> childTables = tableDataMapByFid.get(supportedTableName);
|
||||
|
||||
if (childTables != null) {
|
||||
for (TableData childTable : childTables) {
|
||||
Object accSerialNum = getFieldValue(childTable, "ACC_SERIAL_NUM");
|
||||
if (accSerialNum != null) {
|
||||
relatedTablesByAccSerialNum
|
||||
.computeIfAbsent(accSerialNum, k -> new ArrayList<>())
|
||||
.add(childTable);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (TableData parentTable : firstLevelTableDataList) {
|
||||
Object serialNum = getFieldValue(parentTable, "SERIAL_NUM");
|
||||
|
||||
if (serialNum != null) {
|
||||
List<TableData> matchedParentTables = relatedTablesByAccSerialNum.get(serialNum);
|
||||
if (matchedParentTables != null) {
|
||||
parentTable.getRelatedTableData().addAll(matchedParentTables);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Object getFieldValue(TableData tableData, String targetColumnName) {
|
||||
if (tableData.getFieldData() == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (TableData.FieldData field : tableData.getFieldData()) {
|
||||
if (targetColumnName.equals(field.columnName())) {
|
||||
return field.columnValue();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.filter.secondlevel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
|
||||
@Component
|
||||
public class RuUidSecondLevelTableFilter implements SecondLevelTableFilter {
|
||||
private static final Set<String> SUPPORTED_TABLE_NAMES = Set.of(
|
||||
"RU_ACCOUNT_AMT",
|
||||
"RU_AMENDMENT",
|
||||
"RU_ARREAR",
|
||||
"RU_COBORROWER",
|
||||
"RU_DUEARREAR",
|
||||
"RU_FUNDDATE",
|
||||
"RU_MONTHAVERPAYMT",
|
||||
"RU_OVERALLVAL",
|
||||
"RU_PASTDUEARREAR",
|
||||
"RU_PAYMT",
|
||||
"RU_PAYMT_CONDITION",
|
||||
"RU_SOURCENONMONETOBLIG",
|
||||
"RU_TRADE"
|
||||
);
|
||||
|
||||
@Override
|
||||
public void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid) {
|
||||
if (firstLevelTableDataList == null || firstLevelTableDataList.isEmpty() || tableDataMapByFid == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Map<Object, List<TableData>> relatedTablesByAccSerialNum = new HashMap<>();
|
||||
|
||||
for (String supportedTableName : SUPPORTED_TABLE_NAMES) {
|
||||
List<TableData> childTables = tableDataMapByFid.get(supportedTableName);
|
||||
|
||||
if (childTables != null) {
|
||||
for (TableData childTable : childTables) {
|
||||
Object accSerialNum = getFieldValue(childTable, "ACC_SERIAL_NUM");
|
||||
if (accSerialNum != null) {
|
||||
relatedTablesByAccSerialNum
|
||||
.computeIfAbsent(accSerialNum, k -> new ArrayList<>())
|
||||
.add(childTable);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (TableData parentTable : firstLevelTableDataList) {
|
||||
Object serialNum = getFieldValue(parentTable, "SERIAL_NUM");
|
||||
|
||||
if (serialNum != null) {
|
||||
List<TableData> matchedParentTables = relatedTablesByAccSerialNum.get(serialNum);
|
||||
if (matchedParentTables != null) {
|
||||
parentTable.getRelatedTableData().addAll(matchedParentTables);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Object getFieldValue(TableData tableData, String targetColumnName) {
|
||||
if (tableData.getFieldData() == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (TableData.FieldData field : tableData.getFieldData()) {
|
||||
if (targetColumnName.equals(field.columnName())) {
|
||||
return field.columnValue();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.filter.secondlevel;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import ru.nbch.indicsearchservice.filter.TableFilter;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
|
||||
public interface SecondLevelTableFilter extends TableFilter {
|
||||
void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid);
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.filter.thirdlevel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
|
||||
@Component
|
||||
public class BlocksThirdLevelTableFilter implements ThirdLevelTableFilter {
|
||||
private static final Set<String> SUPPORTED_TABLE_NAMES = Set.of(
|
||||
"RU_COLLATERAL_BLOCKS",
|
||||
"RU_BANKRUPTCY_BLOCKS"
|
||||
);
|
||||
|
||||
@Override
|
||||
public void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid) {
|
||||
if (firstLevelTableDataList == null || firstLevelTableDataList.isEmpty() || tableDataMapByFid == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, Map<Object, List<TableData>>> childTablesByParentAndSerial = new HashMap<>();
|
||||
|
||||
for (String tableName : SUPPORTED_TABLE_NAMES) {
|
||||
String parentTableName = tableName.replace("_BLOCKS", "");
|
||||
String childTableName = tableName;
|
||||
|
||||
List<TableData> childTables = tableDataMapByFid.get(childTableName);
|
||||
|
||||
if (childTables != null) {
|
||||
Map<Object, List<TableData>> groupedChildTables = new HashMap<>();
|
||||
for (TableData childTable : childTables) {
|
||||
Object parentSerialNum = getFieldValue(childTable, "PARENT_SERIAL_NUM");
|
||||
if (parentSerialNum != null) {
|
||||
groupedChildTables
|
||||
.computeIfAbsent(parentSerialNum, k -> new ArrayList<>())
|
||||
.add(childTable);
|
||||
}
|
||||
}
|
||||
childTablesByParentAndSerial.put(parentTableName, groupedChildTables);
|
||||
}
|
||||
}
|
||||
|
||||
for (TableData firstLevelTable : firstLevelTableDataList) {
|
||||
if (firstLevelTable.getRelatedTableData() == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (TableData secondLevelTable : firstLevelTable.getRelatedTableData()) {
|
||||
String tableName = secondLevelTable.getTableName();
|
||||
|
||||
String parentTableName = tableName;
|
||||
String childTableName = tableName + "_BLOCKS";
|
||||
|
||||
if (SUPPORTED_TABLE_NAMES.contains(childTableName)) {
|
||||
Map<Object, List<TableData>> availableChildTables = childTablesByParentAndSerial.get(parentTableName);
|
||||
|
||||
if (availableChildTables != null) {
|
||||
Object serialNum = getFieldValue(secondLevelTable, "SERIAL_NUM");
|
||||
|
||||
if (serialNum != null) {
|
||||
List<TableData> matchingChildTables = availableChildTables.get(serialNum);
|
||||
if (matchingChildTables != null) {
|
||||
secondLevelTable.getRelatedTableData().addAll(matchingChildTables);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Object getFieldValue(TableData tableData, String targetColumnName) {
|
||||
if (tableData.getFieldData() == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (TableData.FieldData field : tableData.getFieldData()) {
|
||||
if (targetColumnName.equals(field.columnName())) {
|
||||
return field.columnValue();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.filter.thirdlevel;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import ru.nbch.indicsearchservice.filter.TableFilter;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
|
||||
public interface ThirdLevelTableFilter extends TableFilter {
|
||||
void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid);
|
||||
}
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.loader.subtable.AccountSubTableLoader;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class AccountTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
private final List<AccountSubTableLoader> accountSubTableLoaders;
|
||||
|
||||
public AccountTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils,
|
||||
List<AccountSubTableLoader> accountSubTableLoaders) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
this.accountSubTableLoaders = accountSubTableLoaders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "ACCOUNT";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if (dataType == DataType.TUTDF &&
|
||||
(searchParameter == SearchParameter.UUID ||
|
||||
searchParameter == SearchParameter.ACCT_NUM ||
|
||||
searchParameter == SearchParameter.SERIAL_NUM_ACCT ||
|
||||
searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
Set<String> result = new HashSet<>();
|
||||
|
||||
result.add(getTableName());
|
||||
result.addAll(accountSubTableLoaders.stream().map(TableLoader::getTableName).toList());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.UUID || searchParameter == SearchParameter.ACCT_NUM || searchParameter == SearchParameter.SERIAL_NUM_ACCT) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromAccount(memberCode)) {
|
||||
Set<Integer> foundFids = new HashSet<>();
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, foundFids, tableMetaDataMap));
|
||||
accountSubTableLoaders.parallelStream().forEach(tl -> tl.searchByAccountFid(taskId, foundFids, tableFileMap, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromAccount(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
accountSubTableLoaders.parallelStream().forEach(tl -> tl.searchByAccountFid(taskId, fids, tableFileMap, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromAccount(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class BankruptcyTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public BankruptcyTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "BANKRUPTCY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if (dataType == DataType.TUTDF &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromBankruptcy(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromBankruptcy(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class ConsumerBankruptcyTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public ConsumerBankruptcyTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "CONSUMER_BANKRUPTCY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if (dataType == DataType.TUTDF &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromConsumerBankruptcy(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromConsumerBankruptcy(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,9 @@ package ru.nbch.indicsearchservice.loader;
|
|||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
|
||||
|
|
@ -12,5 +14,8 @@ public interface FirstLevelTableLoader extends TableLoader {
|
|||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap);
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap);
|
||||
|
||||
Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package ru.nbch.indicsearchservice.loader;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -11,6 +12,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
|
@ -31,9 +33,34 @@ public class IdTableLoader implements FirstLevelTableLoader {
|
|||
return "ID";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF || dataType == DataType.TUTDF) &&
|
||||
(searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
Set<String> result = new HashSet<>();
|
||||
|
||||
result.add(getTableName());
|
||||
result.addAll(tableLoaders.stream()
|
||||
.map(l -> l.getTableNamesIfSuitable(dataType, searchParameter))
|
||||
.flatMap(Collection::stream)
|
||||
.toList());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) {
|
||||
Set<Integer> foundFids = new HashSet<>();
|
||||
|
|
@ -63,7 +90,41 @@ public class IdTableLoader implements FirstLevelTableLoader {
|
|||
searchParameter,
|
||||
foundFids,
|
||||
memberCode,
|
||||
tableFileMap
|
||||
tableFileMap,
|
||||
tableMetaDataMap
|
||||
));
|
||||
}
|
||||
} else if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) {
|
||||
Set<Integer> foundFids = new HashSet<>();
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = searchParameter == SearchParameter.OGRN ?
|
||||
mapperHolder.getIndicMapper().findFidsByOgrnFromIdForTutdf(searchValue) :
|
||||
mapperHolder.getIndicMapper().findFidsByPassportFromIdForTutdf(searchValue)) {
|
||||
for (LinkedHashMap<String, Object> row : cursor) {
|
||||
for (Map.Entry<String, Object> entry : row.entrySet()) {
|
||||
String columnName = entry.getKey();
|
||||
Object columnValue = entry.getValue();
|
||||
|
||||
if (columnName != null && columnValue != null) {
|
||||
if (columnName.equals("FID")) {
|
||||
foundFids.add(Integer.parseInt(columnValue.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
tableLoaders.parallelStream().forEach(tl -> tl.searchById(
|
||||
taskId,
|
||||
dataType,
|
||||
searchParameter,
|
||||
foundFids,
|
||||
memberCode,
|
||||
tableFileMap,
|
||||
tableMetaDataMap
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,95 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class InformationTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public InformationTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "INFORMATION";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if (dataType == DataType.TUTDF &&
|
||||
(searchParameter == SearchParameter.OLD_APP_NUM ||
|
||||
searchParameter == SearchParameter.SERIAL_NUM_APP ||
|
||||
searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.OLD_APP_NUM || searchParameter == SearchParameter.SERIAL_NUM_APP) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromInformation(memberCode)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromInformation(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromInformation(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class LegalTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public LegalTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "LEGAL";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if (dataType == DataType.TUTDF &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromLegal(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromLegal(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
|
|
@ -30,13 +31,33 @@ public class RuApplicationTableLoader implements FirstLevelTableLoader, TableLoa
|
|||
return "RU_APPLICATION";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.APPLICATION_NUMBER ||
|
||||
searchParameter == SearchParameter.OLD_APP_NUM ||
|
||||
searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.APPLICATION_NUMBER || searchParameter == SearchParameter.OLD_APP_NUM) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromRuApplication(memberCode)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -44,7 +65,7 @@ public class RuApplicationTableLoader implements FirstLevelTableLoader, TableLoa
|
|||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuApplication(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -54,11 +75,17 @@ public class RuApplicationTableLoader implements FirstLevelTableLoader, TableLoa
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuApplication(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
|
|
@ -30,15 +31,33 @@ public class RuBankruptcyTableLoader implements FirstLevelTableLoader, TableLoad
|
|||
return "RU_BANKRUPTCY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcy(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -48,11 +67,17 @@ public class RuBankruptcyTableLoader implements FirstLevelTableLoader, TableLoad
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcy(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
|
|
@ -30,15 +31,33 @@ public class RuCapabilityTableLoader implements FirstLevelTableLoader, TableLoad
|
|||
return "RU_CAPABILITY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCapability(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -48,11 +67,17 @@ public class RuCapabilityTableLoader implements FirstLevelTableLoader, TableLoad
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCapability(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
|
|
@ -30,15 +31,33 @@ public class RuDebtBurdenInfoTableLoader implements FirstLevelTableLoader, Table
|
|||
return "RU_DEBT_BURDEN_INFO";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDebtBurdenInfo(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -48,11 +67,17 @@ public class RuDebtBurdenInfoTableLoader implements FirstLevelTableLoader, Table
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDebtBurdenInfo(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
|
|
@ -30,15 +31,33 @@ public class RuObligPartTakeTableLoader implements FirstLevelTableLoader, TableL
|
|||
return "RU_OBLIGPARTTAKE";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligPartTake(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -48,11 +67,17 @@ public class RuObligPartTakeTableLoader implements FirstLevelTableLoader, TableL
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligPartTake(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
|
|
@ -30,15 +31,33 @@ public class RuOtherLegalTableLoader implements FirstLevelTableLoader, TableLoad
|
|||
return "RU_OTHERLEGAL";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOtherLegal(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -48,11 +67,17 @@ public class RuOtherLegalTableLoader implements FirstLevelTableLoader, TableLoad
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOtherLegal(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
|
|
@ -30,15 +31,33 @@ public class RuSettledTableLoader implements FirstLevelTableLoader, TableLoaderF
|
|||
return "RU_SETTLED";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSettled(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -48,11 +67,17 @@ public class RuSettledTableLoader implements FirstLevelTableLoader, TableLoaderF
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSettled(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import org.apache.ibatis.cursor.Cursor;
|
|||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.loader.subtable.RuUidSubTableLoader;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
|
|
@ -36,15 +37,40 @@ public class RuUidTableLoader implements FirstLevelTableLoader, TableLoaderForId
|
|||
return "RU_UID";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.UUID ||
|
||||
searchParameter == SearchParameter.ACCT_NUM ||
|
||||
searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
Set<String> result = new HashSet<>();
|
||||
|
||||
result.add(getTableName());
|
||||
result.addAll(ruUidSubTableLoaders.stream().map(TableLoader::getTableName).toList());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.UUID || searchParameter == SearchParameter.ACCT_NUM) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromRuUid(memberCode)) {
|
||||
Set<Integer> foundFids = new HashSet<>();
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, foundFids));
|
||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, foundFids, tableFileMap));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, foundFids, tableMetaDataMap));
|
||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, foundFids, tableFileMap, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -52,8 +78,8 @@ public class RuUidTableLoader implements FirstLevelTableLoader, TableLoaderForId
|
|||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuUid(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, fids, tableFileMap));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, fids, tableFileMap, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -63,11 +89,17 @@ public class RuUidTableLoader implements FirstLevelTableLoader, TableLoaderForId
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap) {
|
||||
public void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuUid(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,16 @@ import java.nio.file.Path;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
|
||||
public interface TableLoaderForId extends FirstLevelTableLoader {
|
||||
void searchById(UUID taskId, DataType dataType, SearchParameter searchParameter, Set<Integer> fids, String memberCode, Map<String, Path> tableFileMap);
|
||||
void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
package ru.nbch.indicsearchservice.loader.subtable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class AccountAmendTableLoader implements AccountSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public AccountAmendTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "ACCOUNT_AMEND";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByAccountFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromAccountAmend(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package ru.nbch.indicsearchservice.loader.subtable;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
|
||||
public interface AccountSubTableLoader extends SubTableLoader {
|
||||
void searchByAccountFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap);
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package ru.nbch.indicsearchservice.loader.subtable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class BankGuaranteeTableLoader implements AccountSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public BankGuaranteeTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "BANK_GUARANTEE";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByAccountFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromBankGuarantee(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package ru.nbch.indicsearchservice.loader.subtable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class CollateralTableLoader implements AccountSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public CollateralTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "COLLATERAL";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByAccountFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromCollateral(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package ru.nbch.indicsearchservice.loader.subtable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class GuarantorTableLoader implements AccountSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public GuarantorTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "GUARANTOR";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByAccountFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromGuarantor(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package ru.nbch.indicsearchservice.loader.subtable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class PaymentTableLoader implements AccountSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public PaymentTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "PAYMENT";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByAccountFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromPayment(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuAccountAmtTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAccountAmt(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuAcquirerIndividTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAcquirerIndivid(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuAcquirerLegalTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAcquirerLegal(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuAllArrearsTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAllArrears(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuAmendmentTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAmendment(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuAmountInfoTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAmountInfo(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuArrearTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuArrear(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuBankruptcyBlocksTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcyBlocks(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuCoborrowerTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCoborrower(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuCollatInsuredTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollatInsured(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuCollatRepayTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollatRepay(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuCollateralBlocksTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollateralBlocks(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuCollateralTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollateral(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuContractTermsChangesTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuContractTermsChanges(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuDueArrearTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDueArrear(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuFundDateTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuFundDate(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuGuaranteeRepayTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuGuaranteeRepay(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuGuarantorTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuGuarantor(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuIndepGuarantorTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuIndepGuarantor(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuLegalRecordTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuLegalRecord(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuMonthAverPaymtTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuMonthAverPaymt(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuObligAccountTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligAccount(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuObligTerminationTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligTermination(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuObligsRcBankruptTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligsRcBankrupt(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuObligsRcLiquidTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligsRcLiquid(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -31,9 +32,12 @@ public class RuOverallvalTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOverallval(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuPastDueArrearTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPastDueArrear(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuPaymtConditionTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPaymtCondition(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuPaymtTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPaymt(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuServiceCoTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuServiceCo(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuSourceNonMonetObligTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSourceNonMonetOblig(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuSubjectNonMonetObligTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSubjectNonMonetOblig(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuSubmitHoldTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSubmitHold(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
|||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
|
|
@ -30,9 +31,12 @@ public class RuTradeTableLoader implements RuUidSubTableLoader {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuTrade(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,11 @@ import java.nio.file.Path;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
|
||||
public interface RuUidSubTableLoader extends SubTableLoader {
|
||||
void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap);
|
||||
void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
package ru.nbch.indicsearchservice.model;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class TableMetaData {
|
||||
private final String tableName;
|
||||
private String tableNameLocalization;
|
||||
private final Map<String, FieldMetaData> fieldMetaData = new LinkedHashMap<>();
|
||||
|
||||
public TableMetaData(String tableName) {
|
||||
this.tableName = tableName;
|
||||
}
|
||||
|
||||
public String getTableName() {
|
||||
return tableName;
|
||||
}
|
||||
|
||||
public String getTableNameLocalization() {
|
||||
return tableNameLocalization;
|
||||
}
|
||||
|
||||
public void setTableNameLocalization(String tableNameLocalization) {
|
||||
this.tableNameLocalization = tableNameLocalization;
|
||||
}
|
||||
|
||||
public Map<String, FieldMetaData> getFieldMetaData() {
|
||||
return Collections.unmodifiableMap(fieldMetaData);
|
||||
}
|
||||
|
||||
public boolean addField(String fieldName) {
|
||||
if (fieldMetaData.containsKey(fieldName)) {
|
||||
return false;
|
||||
}
|
||||
fieldMetaData.put(fieldName, new FieldMetaData(fieldName));
|
||||
return true;
|
||||
}
|
||||
|
||||
public void addLocalization(String fieldName, String fieldLocalization) {
|
||||
fieldMetaData.compute(fieldName, (key, existingRecord) ->
|
||||
new FieldMetaData(fieldName, fieldLocalization)
|
||||
);
|
||||
}
|
||||
|
||||
public record FieldMetaData(String fieldName, String fieldLocalization) {
|
||||
public FieldMetaData(String fieldName) {
|
||||
this(fieldName, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -14,4 +14,8 @@ public interface SettingsMapper {
|
|||
List<Settings> findAllByNames(@Param("names") List<String> names);
|
||||
|
||||
Collection<Settings> findAll();
|
||||
|
||||
void insert(@Param("settings") Settings settings);
|
||||
|
||||
void insertBatch(@Param("list") List<Settings> list);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import ru.nbch.indicsearchservice.repository.MyBatisRepository;
|
|||
public interface IndicMapper extends MyBatisRepository {
|
||||
List<LinkedHashMap<String, String>> getTableColumnsByTableNames(List<String> tables);
|
||||
|
||||
// GUTDF/RUTDF tables
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuUid(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuApplication(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuObligPartTake(Set<Integer> fids);
|
||||
|
|
@ -59,4 +60,22 @@ public interface IndicMapper extends MyBatisRepository {
|
|||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSourceNonMonetOblig(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSubjectNonMonetOblig(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSubmitHold(Set<Integer> fids);
|
||||
|
||||
// TUTDF tables
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromAccount(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromInformation(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromBankruptcy(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromConsumerBankruptcy(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromLegal(Set<Integer> fids);
|
||||
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByMemberCodeFromAccount(String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByMemberCodeFromInformation(String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findFidsByOgrnFromIdForTutdf(String idNorm);
|
||||
Cursor<LinkedHashMap<String, Object>> findFidsByPassportFromIdForTutdf(String idNorm);
|
||||
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromAccountAmend(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromPayment(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromCollateral(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromGuarantor(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromBankGuarantee(Set<Integer> fids);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,18 @@ package ru.nbch.indicsearchservice.service;
|
|||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -20,26 +28,50 @@ import ru.nbch.indicsearchservice.dto.response.JobStatusResponseDto;
|
|||
import ru.nbch.indicsearchservice.exporter.ExcelExporter;
|
||||
import ru.nbch.indicsearchservice.exporter.JsonExporter;
|
||||
import ru.nbch.indicsearchservice.loader.FirstLevelTableLoader;
|
||||
import ru.nbch.indicsearchservice.model.LocalizationObject;
|
||||
import ru.nbch.indicsearchservice.model.Settings;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.repository.bank.LocalizationObjectMapper;
|
||||
import ru.nbch.indicsearchservice.repository.bank.SettingsMapper;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Service
|
||||
public class IndicSearchService {
|
||||
private static final Logger log = LoggerFactory.getLogger(IndicSearchService.class);
|
||||
|
||||
private static final boolean IS_EXPORT_AS_EXCEL = false;
|
||||
private static final boolean IS_EXPORT_AS_EXCEL = true;
|
||||
|
||||
private final List<FirstLevelTableLoader> tableLoaders;
|
||||
private final List<FileAggregator> fileAggregators;
|
||||
private final ExcelExporter excelExporter;
|
||||
private final JsonExporter jsonExporter;
|
||||
private final SettingsService settingsService;
|
||||
private final LocalizationObjectMapper localizationObjectMapper;
|
||||
private final SettingsMapper settingsMapper;
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public IndicSearchService(List<FirstLevelTableLoader> tableLoaders,
|
||||
List<FileAggregator> fileAggregators,
|
||||
ExcelExporter excelExporter,
|
||||
JsonExporter jsonExporter) {
|
||||
JsonExporter jsonExporter,
|
||||
SettingsService settingsService,
|
||||
LocalizationObjectMapper localizationObjectMapper,
|
||||
SettingsMapper settingsMapper,
|
||||
MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.tableLoaders = tableLoaders;
|
||||
this.fileAggregators = fileAggregators;
|
||||
this.excelExporter = excelExporter;
|
||||
this.jsonExporter = jsonExporter;
|
||||
this.settingsService = settingsService;
|
||||
this.localizationObjectMapper = localizationObjectMapper;
|
||||
this.settingsMapper = settingsMapper;
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
public AddSearchJobResponseDto addSearchJob(AddSearchJobRequestDto request) {
|
||||
|
|
@ -47,6 +79,17 @@ public class IndicSearchService {
|
|||
|
||||
StopWatch sw = new StopWatch();
|
||||
|
||||
// Подготовительный этап. Получение мета данных из БД
|
||||
log.info("Prep step started. Getting metadata from database");
|
||||
sw.start();
|
||||
|
||||
Map<String, TableMetaData> tableMetaDataMap = prepareTableMetaData(request.getDataType(), request.getSearchParameter());
|
||||
long rowLimit = Long.parseLong(settingsService.getSettingsValueByName("LimitDB"));
|
||||
|
||||
sw.stop();
|
||||
log.info(sw.prettyPrint());
|
||||
sw = new StopWatch();
|
||||
|
||||
// Первый этап. Получение данных из БД и заполнение файлов
|
||||
log.info("First step started. Getting data from database and filling csv files");
|
||||
sw.start();
|
||||
|
|
@ -58,7 +101,8 @@ public class IndicSearchService {
|
|||
request.getSearchParameter(),
|
||||
request.getSearchValue(),
|
||||
request.getMemberCode().substring(0, 6),
|
||||
tableFileMap
|
||||
tableFileMap,
|
||||
tableMetaDataMap
|
||||
));
|
||||
|
||||
sw.stop();
|
||||
|
|
@ -97,10 +141,11 @@ public class IndicSearchService {
|
|||
log.info("Third step started. Exporting aggregated file into JSON/XLSX.");
|
||||
sw.start();
|
||||
|
||||
if (!IS_EXPORT_AS_EXCEL) {
|
||||
jsonExporter.writeJsonFile(aggregatedFile, taskId);
|
||||
if (rowCounter.longValue() < rowLimit && !IS_EXPORT_AS_EXCEL) {
|
||||
jsonExporter.writeJsonFile(aggregatedFile, taskId, tableMetaDataMap);
|
||||
} else {
|
||||
excelExporter.writeExcelFile(aggregatedFile, taskId, rowCounter.longValue());
|
||||
fillTableMetaDataWithLocalization(tableMetaDataMap);
|
||||
excelExporter.writeExcelFile(aggregatedFile, taskId, rowCounter.longValue(), tableMetaDataMap);
|
||||
}
|
||||
|
||||
sw.stop();
|
||||
|
|
@ -122,4 +167,154 @@ public class IndicSearchService {
|
|||
public ResponseEntity<?> export(Long id, String exportType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private Map<String, TableMetaData> prepareTableMetaData(DataType dataType, SearchParameter searchParameter) {
|
||||
Map<String, TableMetaData> tableMetaDataMap = new ConcurrentHashMap<>();
|
||||
|
||||
// Получаем список таблиц
|
||||
Set<String> tableNames = tableLoaders.parallelStream()
|
||||
.map(tl -> tl.getTableNamesIfSuitable(dataType, searchParameter))
|
||||
.flatMap(Set::stream)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (tableNames.isEmpty()) {
|
||||
return tableMetaDataMap;
|
||||
}
|
||||
|
||||
tableNames.forEach(name -> tableMetaDataMap.put(name, new TableMetaData(name)));
|
||||
|
||||
// Составляем массив ключей из SETTINGS
|
||||
Map<String, String> keyToTable = new HashMap<>();
|
||||
List<String> columnKeys = new ArrayList<>();
|
||||
for (String table : tableNames) {
|
||||
String key = "db.table." + table.toUpperCase() + ".fields";
|
||||
columnKeys.add(key);
|
||||
keyToTable.put(key, table);
|
||||
}
|
||||
|
||||
// Получаем данные из SETTINGS одним запросом
|
||||
Map<String, Optional<String>> settingsValues = settingsService.getSettingsValuesByNames(columnKeys);
|
||||
Set<String> missingTables = new HashSet<>();
|
||||
List<Settings> batchInsertSettings = new ArrayList<>();
|
||||
|
||||
for (String key : columnKeys) {
|
||||
String table = keyToTable.get(key);
|
||||
Optional<String> valueOpt = settingsValues.getOrDefault(key, Optional.empty());
|
||||
|
||||
if (valueOpt.isPresent() && StringUtils.isNotBlank(valueOpt.get())) {
|
||||
String[] fields = valueOpt.get().split(";");
|
||||
for (String field : fields) {
|
||||
tableMetaDataMap.get(table).addField(field.trim());
|
||||
}
|
||||
} else {
|
||||
missingTables.add(table);
|
||||
}
|
||||
}
|
||||
|
||||
// Если найдены пропущенные значения, то добавляем их в БД
|
||||
if (!missingTables.isEmpty()) {
|
||||
List<LinkedHashMap<String, String>> rows =
|
||||
mapperHolder.getIndicMapper().getTableColumnsByTableNames(new ArrayList<>(missingTables));
|
||||
|
||||
Map<String, List<String>> tableToColumns = new HashMap<>();
|
||||
for (Map<String, String> row : rows) {
|
||||
tableToColumns.computeIfAbsent(row.get("TBNAME"), t -> new ArrayList<>()).add(row.get("NAME"));
|
||||
}
|
||||
|
||||
for (String table : missingTables) {
|
||||
List<String> columns = tableToColumns.getOrDefault(table, List.of());
|
||||
String key = "db.table." + table.toUpperCase() + ".fields";
|
||||
String value = String.join(";", columns);
|
||||
|
||||
Settings newSettings = new Settings();
|
||||
newSettings.setName(key);
|
||||
newSettings.setValue(value);
|
||||
batchInsertSettings.add(newSettings);
|
||||
|
||||
for (String column : columns) {
|
||||
tableMetaDataMap.get(table).addField(column.trim());
|
||||
}
|
||||
}
|
||||
|
||||
if (!batchInsertSettings.isEmpty()) {
|
||||
settingsMapper.insertBatch(batchInsertSettings);
|
||||
}
|
||||
}
|
||||
|
||||
return tableMetaDataMap;
|
||||
}
|
||||
|
||||
private void fillTableMetaDataWithLocalization(Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (tableMetaDataMap == null || tableMetaDataMap.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Получаем все ключи для LOCALIZATION_OBJECT
|
||||
Set<String> localizationKeys = new HashSet<>();
|
||||
for (TableMetaData metaData : tableMetaDataMap.values()) {
|
||||
String tableUpper = metaData.getTableName().toUpperCase();
|
||||
localizationKeys.add("db.viewer.table." + tableUpper);
|
||||
|
||||
for (String field : metaData.getFieldMetaData().keySet()) {
|
||||
String fieldUpper = field.toUpperCase();
|
||||
localizationKeys.add("db.viewer." + tableUpper + ".field." + fieldUpper);
|
||||
localizationKeys.add("db.viewer.field." + fieldUpper);
|
||||
}
|
||||
}
|
||||
|
||||
// Получаем данные из LOCALIZATION_OBJECT одним запросом
|
||||
Map<String, Optional<String>> localizationValues = indicSearchUtils.getOptionalLocalizationStrings(new ArrayList<>(localizationKeys));
|
||||
List<LocalizationObject> toInsertLocalizations = new ArrayList<>();
|
||||
|
||||
// Вставляем локализацию в tableMetaDataMap
|
||||
for (TableMetaData metaData : tableMetaDataMap.values()) {
|
||||
String tableUpper = metaData.getTableName().toUpperCase();
|
||||
String tableKey = "db.viewer.table." + tableUpper;
|
||||
|
||||
// Локализация для таблиц
|
||||
Optional<String> tableLoc = localizationValues.getOrDefault(tableKey, Optional.empty());
|
||||
if (tableLoc.isPresent() && StringUtils.isNotBlank(tableLoc.get())) {
|
||||
metaData.setTableNameLocalization(tableLoc.get());
|
||||
} else {
|
||||
String fallbackText = "Таблица " + tableUpper;
|
||||
metaData.setTableNameLocalization(fallbackText);
|
||||
|
||||
LocalizationObject newLocalizationObject = new LocalizationObject();
|
||||
newLocalizationObject.setCode(tableKey);
|
||||
newLocalizationObject.setText(fallbackText);
|
||||
toInsertLocalizations.add(newLocalizationObject);
|
||||
}
|
||||
|
||||
// Локализация для полей
|
||||
for (String field : metaData.getFieldMetaData().keySet()) {
|
||||
String fieldUpper = field.toUpperCase();
|
||||
String primaryKey = "db.viewer." + tableUpper + ".field." + fieldUpper;
|
||||
String fallbackKey = "db.viewer.field." + fieldUpper;
|
||||
|
||||
Optional<String> primaryLoc = localizationValues.getOrDefault(primaryKey, Optional.empty());
|
||||
|
||||
if (primaryLoc.isPresent() && StringUtils.isNotBlank(primaryLoc.get())) {
|
||||
metaData.addLocalization(field, primaryLoc.get());
|
||||
} else {
|
||||
Optional<String> fallbackLoc = localizationValues.getOrDefault(fallbackKey, Optional.empty());
|
||||
if (fallbackLoc.isPresent() && StringUtils.isNotBlank(fallbackLoc.get())) {
|
||||
metaData.addLocalization(field, fallbackLoc.get());
|
||||
} else {
|
||||
String fallbackText = "Поле " + fieldUpper;
|
||||
metaData.addLocalization(field, fallbackText);
|
||||
|
||||
LocalizationObject newLocalizationObject = new LocalizationObject();
|
||||
newLocalizationObject.setCode(primaryKey);
|
||||
newLocalizationObject.setText(fallbackText);
|
||||
toInsertLocalizations.add(newLocalizationObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Если найдены пропущенные значения, то добавляем их в БД
|
||||
if (!toInsertLocalizations.isEmpty()) {
|
||||
localizationObjectMapper.insertBatch(toInsertLocalizations);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,57 +5,91 @@ import java.io.IOException;
|
|||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.model.LocalizationObject;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.repository.bank.LocalizationObjectMapper;
|
||||
|
||||
@Component
|
||||
public class IndicSearchUtils {
|
||||
private static final Set<String> REQUIRED_FIELDS = Set.of(
|
||||
"FID",
|
||||
"SERIAL_NUM",
|
||||
"ACC_SERIAL_NUM",
|
||||
"PARENT_SERIAL_NUM"
|
||||
);
|
||||
|
||||
private final ApplicationSettings settings;
|
||||
private final LocalizationObjectMapper localizationObjectMapper;
|
||||
|
||||
public IndicSearchUtils(ApplicationSettings settings) {
|
||||
public IndicSearchUtils(ApplicationSettings settings,
|
||||
LocalizationObjectMapper localizationObjectMapper) {
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
public Path writeRowsToFile(UUID taskId,
|
||||
String tableName,
|
||||
Cursor<LinkedHashMap<String, Object>> databaseCursor) {
|
||||
return writeRowsToFile(taskId, tableName, databaseCursor, null);
|
||||
this.localizationObjectMapper = localizationObjectMapper;
|
||||
}
|
||||
|
||||
public Path writeRowsToFile(UUID taskId,
|
||||
String tableName,
|
||||
Cursor<LinkedHashMap<String, Object>> databaseCursor,
|
||||
Set<Integer> foundFids) {
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
return writeRowsToFile(taskId, tableName, databaseCursor, null, tableMetaDataMap);
|
||||
}
|
||||
|
||||
public Path writeRowsToFile(UUID taskId,
|
||||
String tableName,
|
||||
Cursor<LinkedHashMap<String, Object>> databaseCursor,
|
||||
Set<Integer> foundFids,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
|
||||
Path resultFile = settings.getStorageDirectory().toPath().resolve(tableName + "_" + taskId + ".csv");
|
||||
|
||||
TableMetaData tableMetaData = tableMetaDataMap.get(tableName);
|
||||
Set<String> configuredFields = tableMetaData != null ?
|
||||
tableMetaData.getFieldMetaData().keySet() :
|
||||
new HashSet<>();
|
||||
|
||||
try (BufferedWriter writer = Files.newBufferedWriter(resultFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) {
|
||||
for (LinkedHashMap<String, Object> row : databaseCursor) {
|
||||
if (foundFids != null) {
|
||||
Object fidValue = row.get("FID");
|
||||
if (fidValue != null) {
|
||||
foundFids.add(Integer.parseInt(fidValue.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(tableName).append("%%%");
|
||||
|
||||
for (Map.Entry<String, Object> entry : row.entrySet()) {
|
||||
String columnName = entry.getKey();
|
||||
String columnNameUpper = columnName.toUpperCase();
|
||||
|
||||
if (configuredFields.contains(columnName) || REQUIRED_FIELDS.contains(columnNameUpper)) {
|
||||
sb.append(columnNameUpper).append("%%%");
|
||||
|
||||
Object columnValue = entry.getValue();
|
||||
|
||||
sb.append(columnName.toUpperCase()).append("%%%");
|
||||
|
||||
if (columnValue != null) {
|
||||
if (foundFids != null && columnName.equals("FID")) {
|
||||
foundFids.add(Integer.parseInt(columnValue.toString()));
|
||||
}
|
||||
|
||||
sb.append(columnValue).append("%%%");
|
||||
} else {
|
||||
sb.append("%%%");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (sb.length() >= 3) {
|
||||
sb.setLength(sb.length() - 3);
|
||||
}
|
||||
|
||||
sb.deleteCharAt(sb.length() - 1);
|
||||
writer.write(sb.toString());
|
||||
writer.newLine();
|
||||
}
|
||||
|
|
@ -65,4 +99,17 @@ public class IndicSearchUtils {
|
|||
|
||||
return resultFile;
|
||||
}
|
||||
|
||||
public Map<String, Optional<String>> getOptionalLocalizationStrings(List<String> localizationCodes) {
|
||||
if (localizationCodes == null || localizationCodes.isEmpty()) {
|
||||
return Map.of();
|
||||
}
|
||||
|
||||
List<LocalizationObject> foundValues = localizationObjectMapper.findAllByCodes(localizationCodes);
|
||||
if (foundValues == null || foundValues.isEmpty()) {
|
||||
return Map.of();
|
||||
}
|
||||
|
||||
return foundValues.stream().collect(Collectors.toMap(LocalizationObject::getCode, s -> Optional.ofNullable(s.getText())));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,3 +15,4 @@ app.data-source.max-lifetime=1800000
|
|||
app.data-source.keep-alive-time=120000
|
||||
|
||||
app.storage-directory=C:\\Users\\inikolaev\\Desktop\\1
|
||||
#app.storage-directory=C:\\Users\\ivan\\Desktop\\storage
|
||||
|
|
@ -38,6 +38,7 @@
|
|||
<include refid="baseSelect"/>
|
||||
WHERE CODE IN
|
||||
<foreach item='code' collection='codes' open='(' separator=',' close=')'>#{code}</foreach>
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
||||
|
|
|
|||
|
|
@ -27,10 +27,28 @@
|
|||
<include refid="baseSelect"/>
|
||||
WHERE NAME IN
|
||||
<foreach item='name' collection='names' open='(' separator=',' close=')'>#{name}</foreach>
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAll" resultMap="settingsResultMap">
|
||||
<include refid="baseSelect"/>
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="settings.id" keyColumn="ID">
|
||||
insert into SETTINGS (VERSION,
|
||||
NAME,
|
||||
"VALUE")
|
||||
values (0,
|
||||
#{settings.name},
|
||||
#{settings.value})
|
||||
</insert>
|
||||
|
||||
<insert id="insertBatch">
|
||||
insert into SETTINGS (VERSION, NAME, "VALUE")
|
||||
values
|
||||
<foreach collection="list" item="s" separator=",">
|
||||
(0, #{s.name}, #{s.value})
|
||||
</foreach>
|
||||
</insert>
|
||||
</mapper>
|
||||
|
|
@ -111,7 +111,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByMemberCodeFromRuApplication" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByMemberCodeFromRuApplication" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_APPLICATION
|
||||
WHERE (MEMBER_CODE LIKE #{memberCode} || '%'
|
||||
|
|
@ -161,7 +162,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromRuAcquirerIndivid" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByFidsFromRuAcquirerIndivid" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_ACQUIRERINDIVID
|
||||
WHERE FID IN
|
||||
|
|
@ -227,7 +229,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromRuBankruptcyBlocks" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByFidsFromRuBankruptcyBlocks" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_BANKRUPTCY_BLOCKS
|
||||
WHERE FID IN
|
||||
|
|
@ -260,7 +263,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromRuCollateralBlocks" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByFidsFromRuCollateralBlocks" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_COLLATERAL_BLOCKS
|
||||
WHERE FID IN
|
||||
|
|
@ -293,7 +297,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromRuContractTermsChanges" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByFidsFromRuContractTermsChanges" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_CONTRACT_TERMS_CHANGES
|
||||
WHERE FID IN
|
||||
|
|
@ -392,7 +397,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromRuObligsRcBankrupt" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByFidsFromRuObligsRcBankrupt" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_OBLIGSRCBANKRUPT
|
||||
WHERE FID IN
|
||||
|
|
@ -414,7 +420,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromRuObligTermination" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByFidsFromRuObligTermination" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_OBLIGTERMINATION
|
||||
WHERE FID IN
|
||||
|
|
@ -480,7 +487,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromRuSourceNonMonetOblig" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByFidsFromRuSourceNonMonetOblig" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_SOURCENONMONETOBLIG
|
||||
WHERE FID IN
|
||||
|
|
@ -491,7 +499,8 @@
|
|||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromRuSubjectNonMonetOblig" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
<select id="findAllByFidsFromRuSubjectNonMonetOblig" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.RU_SUBJECTNONMONETOBLIG
|
||||
WHERE FID IN
|
||||
|
|
@ -512,4 +521,151 @@
|
|||
ORDER BY ACC_SERIAL_NUM, SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromAccount" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.ACCOUNT
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromInformation" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.INFORMATION
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromBankruptcy" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.BANKRUPTCY
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromConsumerBankruptcy" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.CONSUMER_BANKRUPTCY
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromLegal" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.LEGAL
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByMemberCodeFromAccount" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.ACCOUNT
|
||||
WHERE MEMBER_CODE LIKE #{memberCode} || '%'
|
||||
ORDER BY SERIAL_NUM, LAST_UPDATED_DT DESC
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByMemberCodeFromInformation" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||
timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.INFORMATION
|
||||
WHERE MEMBER_CODE LIKE #{memberCode} || '%'
|
||||
AND (CANCELLATION_FLAG != 'Y' OR CANCELLATION_FLAG IS NULL)
|
||||
ORDER BY LAST_UPDATED_DT DESC
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findFidsByOgrnFromIdForTutdf" resultType="java.util.LinkedHashMap" timeout="3600">
|
||||
SELECT FID
|
||||
FROM INDIC.ID
|
||||
WHERE CAST(ID_NORM AS VARCHAR(2000)) = #{idNorm}
|
||||
AND ID_TYPE in ('34')
|
||||
ORDER BY LAST_UPDATED_DT DESC
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findFidsByPassportFromIdForTutdf" resultType="java.util.LinkedHashMap" timeout="3600">
|
||||
SELECT FID
|
||||
FROM INDIC.ID
|
||||
WHERE CAST(ID_NORM AS VARCHAR(2000)) = #{idNorm}
|
||||
AND ID_TYPE in ('10', '21')
|
||||
ORDER BY LAST_UPDATED_DT DESC
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromAccountAmend" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.ACCOUNT_AMEND
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY ACC_SERIAL_NUM, SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromPayment" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.PAYMENT
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY ACC_SERIAL_NUM, SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromCollateral" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.COLLATERAL
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY ACC_SERIAL_NUM, SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromGuarantor" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.GUARANTOR
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY ACC_SERIAL_NUM, SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByFidsFromBankGuarantee" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
||||
SELECT *
|
||||
FROM INDIC.BANK_GUARANTEE
|
||||
WHERE FID IN
|
||||
<foreach item="fid" collection="fids" open="(" separator="," close=")">
|
||||
#{fid}
|
||||
</foreach>
|
||||
ORDER BY ACC_SERIAL_NUM, SERIAL_NUM
|
||||
WITH UR
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue