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_CONTRACT_TERMS_CHANGES",
|
||||||
"RU_ALL_ARREARS"
|
"RU_ALL_ARREARS"
|
||||||
);
|
);
|
||||||
|
private static final List<String> ACCOUNT_CHILD_TABLES = List.of(
|
||||||
|
"ACCOUNT_AMEND",
|
||||||
|
"PAYMENT",
|
||||||
|
"COLLATERAL",
|
||||||
|
"GUARANTOR",
|
||||||
|
"BANK_GUARANTEE"
|
||||||
|
);
|
||||||
|
|
||||||
void aggregateRuUidFiles(BufferedWriter aggregatedFileWriter,
|
void aggregateRuUidFiles(BufferedWriter aggregatedFileWriter,
|
||||||
Map<String, Path> tableFileMap,
|
Map<String, Path> tableFileMap,
|
||||||
|
|
@ -117,7 +124,7 @@ public class FileAggregatorCommon {
|
||||||
List<String> childLineList = Arrays.asList(childLine.split("%%%"));
|
List<String> childLineList = Arrays.asList(childLine.split("%%%"));
|
||||||
Optional<String> foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
Optional<String> foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||||
if (foundChildAccSerialNum.isEmpty()) {
|
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());
|
Long childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||||
|
|
||||||
|
|
@ -126,7 +133,7 @@ public class FileAggregatorCommon {
|
||||||
childLineList = Arrays.asList(childLine.split("%%%"));
|
childLineList = Arrays.asList(childLine.split("%%%"));
|
||||||
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||||
if (foundChildAccSerialNum.isEmpty()) {
|
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());
|
childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||||
|
|
||||||
|
|
@ -157,7 +164,7 @@ public class FileAggregatorCommon {
|
||||||
childLineList = Arrays.asList(childLine.split("%%%"));
|
childLineList = Arrays.asList(childLine.split("%%%"));
|
||||||
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||||
if (foundChildAccSerialNum.isEmpty()) {
|
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());
|
childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||||
|
|
||||||
|
|
@ -269,4 +276,134 @@ public class FileAggregatorCommon {
|
||||||
throw new RuntimeException(e);
|
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.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import org.apache.commons.lang3.mutable.MutableLong;
|
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.BorderStyle;
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
|
|
@ -29,6 +33,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class ExcelExporter implements Exporter {
|
public class ExcelExporter implements Exporter {
|
||||||
|
|
@ -41,7 +46,7 @@ public class ExcelExporter implements Exporter {
|
||||||
this.settings = settings;
|
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) {
|
if (aggregatedFile == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -72,7 +77,7 @@ public class ExcelExporter implements Exporter {
|
||||||
|
|
||||||
if (!isFirst && (FIRST_LEVEL_TABLES.contains(lineList.getFirst()) || line.equals("EOF"))) {
|
if (!isFirst && (FIRST_LEVEL_TABLES.contains(lineList.getFirst()) || line.equals("EOF"))) {
|
||||||
lastTableName = rows.getFirst().split("%%%")[0];
|
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())) {
|
if (lastTableName != null && !lastTableName.equals(lineList.getFirst())) {
|
||||||
sheetRowCounter.setValue(0L);
|
sheetRowCounter.setValue(0L);
|
||||||
sheetTableCounter.setValue(1L);
|
sheetTableCounter.setValue(1L);
|
||||||
|
|
@ -95,7 +100,8 @@ public class ExcelExporter implements Exporter {
|
||||||
MutableLong sheetRowCounter,
|
MutableLong sheetRowCounter,
|
||||||
MutableLong sheetTableCounter,
|
MutableLong sheetTableCounter,
|
||||||
CellStyle headerCellStyle,
|
CellStyle headerCellStyle,
|
||||||
CellStyle cellStyle) {
|
CellStyle cellStyle,
|
||||||
|
Map<String, TableMetaData> tableMetaDataMap) {
|
||||||
if (rows == null || rows.isEmpty()) {
|
if (rows == null || rows.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -115,30 +121,41 @@ public class ExcelExporter implements Exporter {
|
||||||
List<String> rowList = Arrays.asList(row.split("%%%", -1));
|
List<String> rowList = Arrays.asList(row.split("%%%", -1));
|
||||||
String tableName = rowList.getFirst();
|
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());
|
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) {
|
for (int i = 0; i + 1 <= rowSublist.size(); i = i + 2) {
|
||||||
try {
|
String columnName = rowSublist.get(i);
|
||||||
rowValues.put(rowSublist.get(i), rowSublist.get(i + 1));
|
String columnValue = rowSublist.get(i + 1);
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
if (columnName != null && allowedFields.contains(columnName.toUpperCase())) {
|
||||||
|
rowValues.put(columnName, Pair.of(rowMetaData.getFieldMetaData().get(columnName).fieldLocalization(), columnValue));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
createHeaderRow(
|
createHeaderRow(
|
||||||
tableName,
|
rowMetaData != null ? rowMetaData.getTableNameLocalization() : tableName,
|
||||||
tableSheet,
|
tableSheet,
|
||||||
sheetRowCounter,
|
sheetRowCounter,
|
||||||
headerCellStyle
|
headerCellStyle
|
||||||
);
|
);
|
||||||
|
|
||||||
for (Map.Entry<String, String> entry : rowValues.entrySet()) {
|
for (Map.Entry<String, Pair<String, String>> entry : rowValues.entrySet()) {
|
||||||
String columnName = entry.getKey();
|
String columnName = entry.getKey();
|
||||||
String columnValue = entry.getValue();
|
String columnLocalization = entry.getValue().getLeft();
|
||||||
|
String columnValue = entry.getValue().getRight();
|
||||||
|
|
||||||
writeFieldDataIntoSheetRow(
|
writeFieldDataIntoSheetRow(
|
||||||
columnName,
|
columnName,
|
||||||
columnName,
|
columnLocalization,
|
||||||
columnValue,
|
columnValue,
|
||||||
tableSheet,
|
tableSheet,
|
||||||
sheetRowCounter,
|
sheetRowCounter,
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,19 @@ import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||||
import ru.nbch.indicsearchservice.model.TableData;
|
import ru.nbch.indicsearchservice.model.TableData;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import tools.jackson.core.JsonGenerator;
|
import tools.jackson.core.JsonGenerator;
|
||||||
import tools.jackson.databind.json.JsonMapper;
|
import tools.jackson.databind.json.JsonMapper;
|
||||||
|
|
||||||
|
|
@ -31,7 +36,7 @@ public class JsonExporter implements Exporter {
|
||||||
this.jsonMapper = jsonMapper;
|
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) {
|
if (aggregatedFile == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -57,7 +62,7 @@ public class JsonExporter implements Exporter {
|
||||||
String tableName = lineList.getFirst();
|
String tableName = lineList.getFirst();
|
||||||
|
|
||||||
if (!isFirst && (FIRST_LEVEL_TABLES.contains(tableName) || line.equals("EOF"))) {
|
if (!isFirst && (FIRST_LEVEL_TABLES.contains(tableName) || line.equals("EOF"))) {
|
||||||
TableData parentData = buildTableDataHierarchy(rows);
|
TableData parentData = buildTableDataHierarchy(rows, tableMetaDataMap);
|
||||||
if (parentData != null) {
|
if (parentData != null) {
|
||||||
jsonMapper.writeValue(jsonGenerator, parentData);
|
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()) {
|
if (rows == null || rows.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
TableData parentTableData = parseSingleRow(rows.getFirst());
|
TableData parentTableData = parseSingleRow(rows.getFirst(), tableMetaDataMap);
|
||||||
if (parentTableData == null) {
|
if (parentTableData == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 1; i < rows.size(); i++) {
|
for (int i = 1; i < rows.size(); i++) {
|
||||||
TableData childTableData = parseSingleRow(rows.get(i));
|
TableData childTableData = parseSingleRow(rows.get(i), tableMetaDataMap);
|
||||||
if (childTableData != null) {
|
if (childTableData != null) {
|
||||||
parentTableData.getRelatedTableData().add(childTableData);
|
parentTableData.getRelatedTableData().add(childTableData);
|
||||||
}
|
}
|
||||||
|
|
@ -94,7 +99,7 @@ public class JsonExporter implements Exporter {
|
||||||
return parentTableData;
|
return parentTableData;
|
||||||
}
|
}
|
||||||
|
|
||||||
private TableData parseSingleRow(String row) {
|
private TableData parseSingleRow(String row, Map<String, TableMetaData> tableMetaDataMap) {
|
||||||
String[] parts = row.split("%%%", -1);
|
String[] parts = row.split("%%%", -1);
|
||||||
|
|
||||||
if (parts.length == 0 || parts[0].isEmpty()) {
|
if (parts.length == 0 || parts[0].isEmpty()) {
|
||||||
|
|
@ -102,6 +107,12 @@ public class JsonExporter implements Exporter {
|
||||||
}
|
}
|
||||||
|
|
||||||
String tableName = parts[0];
|
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<>();
|
List<TableData.FieldData> fieldData = new ArrayList<>();
|
||||||
|
|
||||||
for (int i = 1; i + 1 < parts.length; i += 2) {
|
for (int i = 1; i + 1 < parts.length; i += 2) {
|
||||||
|
|
@ -109,7 +120,9 @@ public class JsonExporter implements Exporter {
|
||||||
String columnValue = parts[i + 1];
|
String columnValue = parts[i + 1];
|
||||||
|
|
||||||
if (columnName != null && !columnName.isEmpty()) {
|
if (columnName != null && !columnName.isEmpty()) {
|
||||||
fieldData.add(new TableData.FieldData(columnName, columnValue));
|
if (allowedFields.contains(columnName.toUpperCase())) {
|
||||||
|
fieldData.add(new TableData.FieldData(columnName, columnValue));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.nio.file.Path;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
|
|
||||||
|
|
@ -12,5 +14,8 @@ public interface FirstLevelTableLoader extends TableLoader {
|
||||||
SearchParameter searchParameter,
|
SearchParameter searchParameter,
|
||||||
String searchValue,
|
String searchValue,
|
||||||
String memberCode,
|
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.io.IOException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -11,6 +12,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
@ -31,9 +33,34 @@ public class IdTableLoader implements FirstLevelTableLoader {
|
||||||
return "ID";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) {
|
if (searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) {
|
||||||
Set<Integer> foundFids = new HashSet<>();
|
Set<Integer> foundFids = new HashSet<>();
|
||||||
|
|
@ -63,7 +90,41 @@ public class IdTableLoader implements FirstLevelTableLoader {
|
||||||
searchParameter,
|
searchParameter,
|
||||||
foundFids,
|
foundFids,
|
||||||
memberCode,
|
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.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
|
|
@ -30,13 +31,33 @@ public class RuApplicationTableLoader implements FirstLevelTableLoader, TableLoa
|
||||||
return "RU_APPLICATION";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.APPLICATION_NUMBER || searchParameter == SearchParameter.OLD_APP_NUM) {
|
if (searchParameter == SearchParameter.APPLICATION_NUMBER || searchParameter == SearchParameter.OLD_APP_NUM) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromRuApplication(memberCode)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -44,7 +65,7 @@ public class RuApplicationTableLoader implements FirstLevelTableLoader, TableLoa
|
||||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||||
|
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuApplication(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -54,11 +75,17 @@ public class RuApplicationTableLoader implements FirstLevelTableLoader, TableLoa
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuApplication(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
|
|
@ -30,15 +31,33 @@ public class RuBankruptcyTableLoader implements FirstLevelTableLoader, TableLoad
|
||||||
return "RU_BANKRUPTCY";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.FID) {
|
if (searchParameter == SearchParameter.FID) {
|
||||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||||
|
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcy(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +67,17 @@ public class RuBankruptcyTableLoader implements FirstLevelTableLoader, TableLoad
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcy(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
|
|
@ -30,15 +31,33 @@ public class RuCapabilityTableLoader implements FirstLevelTableLoader, TableLoad
|
||||||
return "RU_CAPABILITY";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.FID) {
|
if (searchParameter == SearchParameter.FID) {
|
||||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||||
|
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCapability(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +67,17 @@ public class RuCapabilityTableLoader implements FirstLevelTableLoader, TableLoad
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCapability(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
|
|
@ -30,15 +31,33 @@ public class RuDebtBurdenInfoTableLoader implements FirstLevelTableLoader, Table
|
||||||
return "RU_DEBT_BURDEN_INFO";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.FID) {
|
if (searchParameter == SearchParameter.FID) {
|
||||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||||
|
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDebtBurdenInfo(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +67,17 @@ public class RuDebtBurdenInfoTableLoader implements FirstLevelTableLoader, Table
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDebtBurdenInfo(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
|
|
@ -30,15 +31,33 @@ public class RuObligPartTakeTableLoader implements FirstLevelTableLoader, TableL
|
||||||
return "RU_OBLIGPARTTAKE";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.FID) {
|
if (searchParameter == SearchParameter.FID) {
|
||||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||||
|
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligPartTake(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +67,17 @@ public class RuObligPartTakeTableLoader implements FirstLevelTableLoader, TableL
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligPartTake(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
|
|
@ -30,15 +31,33 @@ public class RuOtherLegalTableLoader implements FirstLevelTableLoader, TableLoad
|
||||||
return "RU_OTHERLEGAL";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.FID) {
|
if (searchParameter == SearchParameter.FID) {
|
||||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||||
|
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOtherLegal(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +67,17 @@ public class RuOtherLegalTableLoader implements FirstLevelTableLoader, TableLoad
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOtherLegal(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
|
|
@ -30,15 +31,33 @@ public class RuSettledTableLoader implements FirstLevelTableLoader, TableLoaderF
|
||||||
return "RU_SETTLED";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.FID) {
|
if (searchParameter == SearchParameter.FID) {
|
||||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||||
|
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSettled(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +67,17 @@ public class RuSettledTableLoader implements FirstLevelTableLoader, TableLoaderF
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSettled(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import ru.nbch.indicsearchservice.loader.subtable.RuUidSubTableLoader;
|
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.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
|
|
@ -36,15 +37,40 @@ public class RuUidTableLoader implements FirstLevelTableLoader, TableLoaderForId
|
||||||
return "RU_UID";
|
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
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.UUID || searchParameter == SearchParameter.ACCT_NUM) {
|
if (searchParameter == SearchParameter.UUID || searchParameter == SearchParameter.ACCT_NUM) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromRuUid(memberCode)) {
|
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByMemberCodeFromRuUid(memberCode)) {
|
||||||
Set<Integer> foundFids = new HashSet<>();
|
Set<Integer> foundFids = new HashSet<>();
|
||||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, foundFids));
|
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, foundFids, tableMetaDataMap));
|
||||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, foundFids, tableFileMap));
|
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, foundFids, tableFileMap, tableMetaDataMap));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -52,8 +78,8 @@ public class RuUidTableLoader implements FirstLevelTableLoader, TableLoaderForId
|
||||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||||
|
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuUid(fids)) {
|
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));
|
||||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, fids, tableFileMap));
|
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, fids, tableFileMap, tableMetaDataMap));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -63,11 +89,17 @@ public class RuUidTableLoader implements FirstLevelTableLoader, TableLoaderForId
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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 (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuUid(fids)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,16 @@ import java.nio.file.Path;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||||
|
|
||||||
public interface TableLoaderForId extends FirstLevelTableLoader {
|
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.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuAccountAmtTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuAcquirerIndividTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuAcquirerLegalTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuAllArrearsTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuAmendmentTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuAmountInfoTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuArrearTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuBankruptcyBlocksTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuCoborrowerTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuCollatInsuredTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuCollatRepayTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuCollateralBlocksTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuCollateralTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuContractTermsChangesTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuDueArrearTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuFundDateTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuGuaranteeRepayTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuGuarantorTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuIndepGuarantorTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuLegalRecordTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuMonthAverPaymtTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuObligAccountTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuObligTerminationTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuObligsRcBankruptTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuObligsRcLiquidTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -31,9 +32,12 @@ public class RuOverallvalTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuPastDueArrearTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuPaymtConditionTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuPaymtTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuServiceCoTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuSourceNonMonetObligTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuSubjectNonMonetObligTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuSubmitHoldTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import java.util.UUID;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||||
|
|
||||||
|
|
@ -30,9 +31,12 @@ public class RuTradeTableLoader implements RuUidSubTableLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@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)) {
|
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) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,11 @@ import java.nio.file.Path;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||||
|
|
||||||
public interface RuUidSubTableLoader extends SubTableLoader {
|
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);
|
List<Settings> findAllByNames(@Param("names") List<String> names);
|
||||||
|
|
||||||
Collection<Settings> findAll();
|
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 {
|
public interface IndicMapper extends MyBatisRepository {
|
||||||
List<LinkedHashMap<String, String>> getTableColumnsByTableNames(List<String> tables);
|
List<LinkedHashMap<String, String>> getTableColumnsByTableNames(List<String> tables);
|
||||||
|
|
||||||
|
// GUTDF/RUTDF tables
|
||||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuUid(Set<Integer> fids);
|
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuUid(Set<Integer> fids);
|
||||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuApplication(Set<Integer> fids);
|
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuApplication(Set<Integer> fids);
|
||||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuObligPartTake(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>> findAllByFidsFromRuSourceNonMonetOblig(Set<Integer> fids);
|
||||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSubjectNonMonetOblig(Set<Integer> fids);
|
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSubjectNonMonetOblig(Set<Integer> fids);
|
||||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSubmitHold(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.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
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.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
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.apache.commons.lang3.mutable.MutableLong;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
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.ExcelExporter;
|
||||||
import ru.nbch.indicsearchservice.exporter.JsonExporter;
|
import ru.nbch.indicsearchservice.exporter.JsonExporter;
|
||||||
import ru.nbch.indicsearchservice.loader.FirstLevelTableLoader;
|
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
|
@Service
|
||||||
public class IndicSearchService {
|
public class IndicSearchService {
|
||||||
private static final Logger log = LoggerFactory.getLogger(IndicSearchService.class);
|
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<FirstLevelTableLoader> tableLoaders;
|
||||||
private final List<FileAggregator> fileAggregators;
|
private final List<FileAggregator> fileAggregators;
|
||||||
private final ExcelExporter excelExporter;
|
private final ExcelExporter excelExporter;
|
||||||
private final JsonExporter jsonExporter;
|
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,
|
public IndicSearchService(List<FirstLevelTableLoader> tableLoaders,
|
||||||
List<FileAggregator> fileAggregators,
|
List<FileAggregator> fileAggregators,
|
||||||
ExcelExporter excelExporter,
|
ExcelExporter excelExporter,
|
||||||
JsonExporter jsonExporter) {
|
JsonExporter jsonExporter,
|
||||||
|
SettingsService settingsService,
|
||||||
|
LocalizationObjectMapper localizationObjectMapper,
|
||||||
|
SettingsMapper settingsMapper,
|
||||||
|
MapperHolder mapperHolder,
|
||||||
|
IndicSearchUtils indicSearchUtils) {
|
||||||
this.tableLoaders = tableLoaders;
|
this.tableLoaders = tableLoaders;
|
||||||
this.fileAggregators = fileAggregators;
|
this.fileAggregators = fileAggregators;
|
||||||
this.excelExporter = excelExporter;
|
this.excelExporter = excelExporter;
|
||||||
this.jsonExporter = jsonExporter;
|
this.jsonExporter = jsonExporter;
|
||||||
|
this.settingsService = settingsService;
|
||||||
|
this.localizationObjectMapper = localizationObjectMapper;
|
||||||
|
this.settingsMapper = settingsMapper;
|
||||||
|
this.mapperHolder = mapperHolder;
|
||||||
|
this.indicSearchUtils = indicSearchUtils;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AddSearchJobResponseDto addSearchJob(AddSearchJobRequestDto request) {
|
public AddSearchJobResponseDto addSearchJob(AddSearchJobRequestDto request) {
|
||||||
|
|
@ -47,6 +79,17 @@ public class IndicSearchService {
|
||||||
|
|
||||||
StopWatch sw = new StopWatch();
|
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");
|
log.info("First step started. Getting data from database and filling csv files");
|
||||||
sw.start();
|
sw.start();
|
||||||
|
|
@ -58,7 +101,8 @@ public class IndicSearchService {
|
||||||
request.getSearchParameter(),
|
request.getSearchParameter(),
|
||||||
request.getSearchValue(),
|
request.getSearchValue(),
|
||||||
request.getMemberCode().substring(0, 6),
|
request.getMemberCode().substring(0, 6),
|
||||||
tableFileMap
|
tableFileMap,
|
||||||
|
tableMetaDataMap
|
||||||
));
|
));
|
||||||
|
|
||||||
sw.stop();
|
sw.stop();
|
||||||
|
|
@ -97,10 +141,11 @@ public class IndicSearchService {
|
||||||
log.info("Third step started. Exporting aggregated file into JSON/XLSX.");
|
log.info("Third step started. Exporting aggregated file into JSON/XLSX.");
|
||||||
sw.start();
|
sw.start();
|
||||||
|
|
||||||
if (!IS_EXPORT_AS_EXCEL) {
|
if (rowCounter.longValue() < rowLimit && !IS_EXPORT_AS_EXCEL) {
|
||||||
jsonExporter.writeJsonFile(aggregatedFile, taskId);
|
jsonExporter.writeJsonFile(aggregatedFile, taskId, tableMetaDataMap);
|
||||||
} else {
|
} else {
|
||||||
excelExporter.writeExcelFile(aggregatedFile, taskId, rowCounter.longValue());
|
fillTableMetaDataWithLocalization(tableMetaDataMap);
|
||||||
|
excelExporter.writeExcelFile(aggregatedFile, taskId, rowCounter.longValue(), tableMetaDataMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
sw.stop();
|
sw.stop();
|
||||||
|
|
@ -122,4 +167,154 @@ public class IndicSearchService {
|
||||||
public ResponseEntity<?> export(Long id, String exportType) {
|
public ResponseEntity<?> export(Long id, String exportType) {
|
||||||
return null;
|
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.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.StandardOpenOption;
|
import java.nio.file.StandardOpenOption;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
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
|
@Component
|
||||||
public class IndicSearchUtils {
|
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 ApplicationSettings settings;
|
||||||
|
private final LocalizationObjectMapper localizationObjectMapper;
|
||||||
|
|
||||||
public IndicSearchUtils(ApplicationSettings settings) {
|
public IndicSearchUtils(ApplicationSettings settings,
|
||||||
|
LocalizationObjectMapper localizationObjectMapper) {
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
}
|
this.localizationObjectMapper = localizationObjectMapper;
|
||||||
|
|
||||||
public Path writeRowsToFile(UUID taskId,
|
|
||||||
String tableName,
|
|
||||||
Cursor<LinkedHashMap<String, Object>> databaseCursor) {
|
|
||||||
return writeRowsToFile(taskId, tableName, databaseCursor, null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Path writeRowsToFile(UUID taskId,
|
public Path writeRowsToFile(UUID taskId,
|
||||||
String tableName,
|
String tableName,
|
||||||
Cursor<LinkedHashMap<String, Object>> databaseCursor,
|
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");
|
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)) {
|
try (BufferedWriter writer = Files.newBufferedWriter(resultFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) {
|
||||||
for (LinkedHashMap<String, Object> row : databaseCursor) {
|
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();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(tableName).append("%%%");
|
sb.append(tableName).append("%%%");
|
||||||
|
|
||||||
for (Map.Entry<String, Object> entry : row.entrySet()) {
|
for (Map.Entry<String, Object> entry : row.entrySet()) {
|
||||||
String columnName = entry.getKey();
|
String columnName = entry.getKey();
|
||||||
Object columnValue = entry.getValue();
|
String columnNameUpper = columnName.toUpperCase();
|
||||||
|
|
||||||
sb.append(columnName.toUpperCase()).append("%%%");
|
if (configuredFields.contains(columnName) || REQUIRED_FIELDS.contains(columnNameUpper)) {
|
||||||
|
sb.append(columnNameUpper).append("%%%");
|
||||||
|
|
||||||
if (columnValue != null) {
|
Object columnValue = entry.getValue();
|
||||||
if (foundFids != null && columnName.equals("FID")) {
|
if (columnValue != null) {
|
||||||
foundFids.add(Integer.parseInt(columnValue.toString()));
|
sb.append(columnValue).append("%%%");
|
||||||
|
} else {
|
||||||
|
sb.append("%%%");
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.append(columnValue).append("%%%");
|
|
||||||
} else {
|
|
||||||
sb.append("%%%");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.deleteCharAt(sb.length() - 1);
|
if (sb.length() >= 3) {
|
||||||
|
sb.setLength(sb.length() - 3);
|
||||||
|
}
|
||||||
|
|
||||||
writer.write(sb.toString());
|
writer.write(sb.toString());
|
||||||
writer.newLine();
|
writer.newLine();
|
||||||
}
|
}
|
||||||
|
|
@ -65,4 +99,17 @@ public class IndicSearchUtils {
|
||||||
|
|
||||||
return resultFile;
|
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.data-source.keep-alive-time=120000
|
||||||
|
|
||||||
app.storage-directory=C:\\Users\\inikolaev\\Desktop\\1
|
app.storage-directory=C:\\Users\\inikolaev\\Desktop\\1
|
||||||
|
#app.storage-directory=C:\\Users\\ivan\\Desktop\\storage
|
||||||
|
|
@ -38,6 +38,7 @@
|
||||||
<include refid="baseSelect"/>
|
<include refid="baseSelect"/>
|
||||||
WHERE CODE IN
|
WHERE CODE IN
|
||||||
<foreach item='code' collection='codes' open='(' separator=',' close=')'>#{code}</foreach>
|
<foreach item='code' collection='codes' open='(' separator=',' close=')'>#{code}</foreach>
|
||||||
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,28 @@
|
||||||
<include refid="baseSelect"/>
|
<include refid="baseSelect"/>
|
||||||
WHERE NAME IN
|
WHERE NAME IN
|
||||||
<foreach item='name' collection='names' open='(' separator=',' close=')'>#{name}</foreach>
|
<foreach item='name' collection='names' open='(' separator=',' close=')'>#{name}</foreach>
|
||||||
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAll" resultMap="settingsResultMap">
|
<select id="findAll" resultMap="settingsResultMap">
|
||||||
<include refid="baseSelect"/>
|
<include refid="baseSelect"/>
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|
@ -111,7 +111,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByMemberCodeFromRuApplication" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByMemberCodeFromRuApplication" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_APPLICATION
|
FROM INDIC.RU_APPLICATION
|
||||||
WHERE (MEMBER_CODE LIKE #{memberCode} || '%'
|
WHERE (MEMBER_CODE LIKE #{memberCode} || '%'
|
||||||
|
|
@ -161,7 +162,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByFidsFromRuAcquirerIndivid" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByFidsFromRuAcquirerIndivid" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_ACQUIRERINDIVID
|
FROM INDIC.RU_ACQUIRERINDIVID
|
||||||
WHERE FID IN
|
WHERE FID IN
|
||||||
|
|
@ -227,7 +229,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByFidsFromRuBankruptcyBlocks" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByFidsFromRuBankruptcyBlocks" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_BANKRUPTCY_BLOCKS
|
FROM INDIC.RU_BANKRUPTCY_BLOCKS
|
||||||
WHERE FID IN
|
WHERE FID IN
|
||||||
|
|
@ -260,7 +263,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByFidsFromRuCollateralBlocks" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByFidsFromRuCollateralBlocks" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_COLLATERAL_BLOCKS
|
FROM INDIC.RU_COLLATERAL_BLOCKS
|
||||||
WHERE FID IN
|
WHERE FID IN
|
||||||
|
|
@ -293,7 +297,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByFidsFromRuContractTermsChanges" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByFidsFromRuContractTermsChanges" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_CONTRACT_TERMS_CHANGES
|
FROM INDIC.RU_CONTRACT_TERMS_CHANGES
|
||||||
WHERE FID IN
|
WHERE FID IN
|
||||||
|
|
@ -392,7 +397,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByFidsFromRuObligsRcBankrupt" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByFidsFromRuObligsRcBankrupt" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_OBLIGSRCBANKRUPT
|
FROM INDIC.RU_OBLIGSRCBANKRUPT
|
||||||
WHERE FID IN
|
WHERE FID IN
|
||||||
|
|
@ -414,7 +420,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByFidsFromRuObligTermination" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByFidsFromRuObligTermination" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_OBLIGTERMINATION
|
FROM INDIC.RU_OBLIGTERMINATION
|
||||||
WHERE FID IN
|
WHERE FID IN
|
||||||
|
|
@ -480,7 +487,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByFidsFromRuSourceNonMonetOblig" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByFidsFromRuSourceNonMonetOblig" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_SOURCENONMONETOBLIG
|
FROM INDIC.RU_SOURCENONMONETOBLIG
|
||||||
WHERE FID IN
|
WHERE FID IN
|
||||||
|
|
@ -491,7 +499,8 @@
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findAllByFidsFromRuSubjectNonMonetOblig" resultType="java.util.LinkedHashMap" fetchSize="1000" timeout="3600">
|
<select id="findAllByFidsFromRuSubjectNonMonetOblig" resultType="java.util.LinkedHashMap" fetchSize="1000"
|
||||||
|
timeout="3600">
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM INDIC.RU_SUBJECTNONMONETOBLIG
|
FROM INDIC.RU_SUBJECTNONMONETOBLIG
|
||||||
WHERE FID IN
|
WHERE FID IN
|
||||||
|
|
@ -512,4 +521,151 @@
|
||||||
ORDER BY ACC_SERIAL_NUM, SERIAL_NUM
|
ORDER BY ACC_SERIAL_NUM, SERIAL_NUM
|
||||||
WITH UR
|
WITH UR
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue