Compare commits
No commits in common. "v4" and "dev" have entirely different histories.
94 changed files with 1795 additions and 6152 deletions
|
|
@ -1,18 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
|
||||
public interface FileAggregator {
|
||||
Path aggregateFiles(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
MutableLong rowCounter);
|
||||
}
|
||||
|
|
@ -1,369 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchCommon;
|
||||
import ru.nbch.indicsearchservice.util.MovableBufferedReader;
|
||||
|
||||
@Component
|
||||
public class FileAggregatorCommon {
|
||||
private static final List<String> RU_UID_CHILD_TABLES = List.of(
|
||||
"RU_TRADE",
|
||||
"RU_ACCOUNT_AMT",
|
||||
"RU_COBORROWER",
|
||||
"RU_PAYMT_CONDITION",
|
||||
"RU_OVERALLVAL",
|
||||
"RU_AMENDMENT",
|
||||
"RU_FUNDDATE",
|
||||
"RU_ARREAR",
|
||||
"RU_DUEARREAR",
|
||||
"RU_PASTDUEARREAR",
|
||||
"RU_PAYMT",
|
||||
"RU_MONTHAVERPAYMT",
|
||||
"RU_SOURCENONMONETOBLIG",
|
||||
"RU_SUBJECTNONMONETOBLIG",
|
||||
"RU_COLLATERAL",
|
||||
"RU_GUARANTOR",
|
||||
"RU_INDEPGUARANTOR",
|
||||
"RU_COLLATINSURED",
|
||||
"RU_COLLATREPAY",
|
||||
"RU_GUARANTEEREPAY",
|
||||
"RU_OBLIGTERMINATION",
|
||||
"RU_SUBMITHOLD",
|
||||
"RU_ACQUIRERLEGAL",
|
||||
"RU_ACQUIRERINDIVID",
|
||||
"RU_SERVICECO",
|
||||
"RU_OBLIGACCOUNT",
|
||||
"RU_LEGALRECORD",
|
||||
"RU_OBLIGSRCBANKRUPT",
|
||||
"RU_OBLIGSRCLIQUID",
|
||||
"RU_AMOUNT_INFO",
|
||||
"RU_CONTRACT_TERMS_CHANGES",
|
||||
"RU_ALL_ARREARS"
|
||||
);
|
||||
private static final List<String> ACCOUNT_CHILD_TABLES = List.of(
|
||||
"ACCOUNT_AMEND",
|
||||
"PAYMENT",
|
||||
"COLLATERAL",
|
||||
"GUARANTOR",
|
||||
"BANK_GUARANTEE"
|
||||
);
|
||||
|
||||
void aggregateRuUidFiles(BufferedWriter aggregatedFileWriter,
|
||||
Map<String, Path> tableFileMap,
|
||||
String memberCode,
|
||||
MutableLong rowCounter) {
|
||||
try (BufferedReader ruUidFileReader = Files.newBufferedReader(tableFileMap.get("RU_UID"))) {
|
||||
Map<String, MovableBufferedReader> childTablesReadersMap = new LinkedHashMap<>();
|
||||
for (String tableName : RU_UID_CHILD_TABLES) {
|
||||
if (!tableFileMap.containsKey(tableName)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
MovableBufferedReader childTablesReader = new MovableBufferedReader(Files.newBufferedReader(tableFileMap.get(tableName)));
|
||||
if (childTablesReader.getCurrentLine() != null) {
|
||||
childTablesReadersMap.put(tableName, childTablesReader);
|
||||
}
|
||||
}
|
||||
|
||||
String ruUidLine;
|
||||
while ((ruUidLine = ruUidFileReader.readLine()) != null) {
|
||||
List<String> lineList = Arrays.asList(ruUidLine.split("%%%"));
|
||||
Optional<String> foundMemberCode = IndicSearchCommon.getRowValue(lineList, "MEMBER_CODE");
|
||||
|
||||
if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write(ruUidLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
Optional<String> foundRuUidSerialNum = IndicSearchCommon.getRowValue(lineList, "SERIAL_NUM");
|
||||
if (foundRuUidSerialNum.isEmpty()) {
|
||||
throw new InternalException("SERIAL_NUM was not found in line " + ruUidLine);
|
||||
}
|
||||
Long ruUidSerialNum = Long.parseLong(foundRuUidSerialNum.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 InternalException("ACC_SERIAL_NUM was not found in table " + childTableName + " in line " + childLine);
|
||||
}
|
||||
Long childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
if (ruUidSerialNum > childAccSerialNum) {
|
||||
while ((childLine = childReader.nextLine()) != null) {
|
||||
childLineList = Arrays.asList(childLine.split("%%%"));
|
||||
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||
if (foundChildAccSerialNum.isEmpty()) {
|
||||
throw new InternalException("ACC_SERIAL_NUM was not found in table " + childTableName + " in line " + childLine);
|
||||
}
|
||||
childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
if (childAccSerialNum.equals(ruUidSerialNum)) {
|
||||
aggregatedFileWriter.write(childLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
if (childTableName.equals("RU_COLLATERAL")) {
|
||||
aggregateBlocksTableFile(childTableName, aggregatedFileWriter, tableFileMap, memberCode, rowCounter);
|
||||
}
|
||||
}
|
||||
|
||||
if (childAccSerialNum > ruUidSerialNum) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (ruUidSerialNum.equals(childAccSerialNum)) {
|
||||
aggregatedFileWriter.write(childLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
if (childTableName.equals("RU_COLLATERAL")) {
|
||||
aggregateBlocksTableFile(childTableName, aggregatedFileWriter, tableFileMap, memberCode, rowCounter);
|
||||
}
|
||||
|
||||
while ((childLine = childReader.nextLine()) != null) {
|
||||
childLineList = Arrays.asList(childLine.split("%%%"));
|
||||
foundChildAccSerialNum = IndicSearchCommon.getRowValue(childLineList, "ACC_SERIAL_NUM");
|
||||
if (foundChildAccSerialNum.isEmpty()) {
|
||||
throw new InternalException("ACC_SERIAL_NUM was not found in table " + childTableName + " in line " + childLine);
|
||||
}
|
||||
childAccSerialNum = Long.parseLong(foundChildAccSerialNum.get());
|
||||
|
||||
if (childAccSerialNum.equals(ruUidSerialNum)) {
|
||||
aggregatedFileWriter.write(childLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
if (childTableName.equals("RU_COLLATERAL")) {
|
||||
aggregateBlocksTableFile(childTableName, aggregatedFileWriter, tableFileMap, memberCode, rowCounter);
|
||||
}
|
||||
}
|
||||
|
||||
if (childAccSerialNum > ruUidSerialNum) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (MovableBufferedReader br : childTablesReadersMap.values()) {
|
||||
br.getReader().close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new InternalException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void aggregateBlocksTableFile(String parentTableName, BufferedWriter aggregatedFileWriter, Map<String, Path> tableFileMap, String memberCode, MutableLong rowCounter) {
|
||||
try (BufferedReader parentFileReader = Files.newBufferedReader(tableFileMap.get(parentTableName));
|
||||
MovableBufferedReader blocksFileReader = new MovableBufferedReader(Files.newBufferedReader(tableFileMap.get(parentTableName + "_BLOCKS")))) {
|
||||
String parentLine;
|
||||
while ((parentLine = parentFileReader.readLine()) != null) {
|
||||
List<String> parentLineList = Arrays.asList(parentLine.split("%%%"));
|
||||
Optional<String> foundMemberCode = IndicSearchCommon.getRowValue(parentLineList, "MEMBER_CODE");
|
||||
|
||||
if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write(parentLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
Optional<String> foundParentSerialNum = IndicSearchCommon.getRowValue(parentLineList, "SERIAL_NUM");
|
||||
if (foundParentSerialNum.isEmpty()) {
|
||||
throw new InternalException("SERIAL_NUM was not found in line " + parentLine);
|
||||
}
|
||||
Long parentSerialNum = Long.parseLong(foundParentSerialNum.get());
|
||||
|
||||
String blocksLine = blocksFileReader.getCurrentLine();
|
||||
if (blocksLine == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
List<String> childLineList = Arrays.asList(blocksLine.split("%%%"));
|
||||
Optional<String> foundChildParentSerialNum = IndicSearchCommon.getRowValue(childLineList, "PARENT_SERIAL_NUM");
|
||||
if (foundChildParentSerialNum.isEmpty()) {
|
||||
throw new InternalException("PARENT_SERIAL_NUM was not found in line " + blocksLine);
|
||||
}
|
||||
Long blocksParentSerialNum = Long.parseLong(foundChildParentSerialNum.get());
|
||||
|
||||
if (parentSerialNum > blocksParentSerialNum) {
|
||||
while ((blocksLine = blocksFileReader.nextLine()) != null) {
|
||||
childLineList = Arrays.asList(blocksLine.split("%%%"));
|
||||
foundChildParentSerialNum = IndicSearchCommon.getRowValue(childLineList, "PARENT_SERIAL_NUM");
|
||||
if (foundChildParentSerialNum.isEmpty()) {
|
||||
throw new InternalException("PARENT_SERIAL_NUM was not found in line " + blocksLine);
|
||||
}
|
||||
blocksParentSerialNum = Long.parseLong(foundChildParentSerialNum.get());
|
||||
|
||||
if (blocksParentSerialNum.equals(parentSerialNum)) {
|
||||
aggregatedFileWriter.write(blocksLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
}
|
||||
|
||||
if (blocksParentSerialNum > parentSerialNum) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (parentSerialNum.equals(blocksParentSerialNum)) {
|
||||
aggregatedFileWriter.write(blocksLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
while ((blocksLine = blocksFileReader.nextLine()) != null) {
|
||||
childLineList = Arrays.asList(blocksLine.split("%%%"));
|
||||
foundChildParentSerialNum = IndicSearchCommon.getRowValue(childLineList, "PARENT_SERIAL_NUM");
|
||||
if (foundChildParentSerialNum.isEmpty()) {
|
||||
throw new InternalException("PARENT_SERIAL_NUM was not found in line " + blocksLine);
|
||||
}
|
||||
blocksParentSerialNum = Long.parseLong(foundChildParentSerialNum.get());
|
||||
|
||||
if (blocksParentSerialNum.equals(parentSerialNum)) {
|
||||
aggregatedFileWriter.write(blocksLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
}
|
||||
|
||||
if (blocksParentSerialNum > parentSerialNum) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new InternalException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void aggregateAccountFiles(BufferedWriter aggregatedFileWriter,
|
||||
Map<String, Path> tableFileMap,
|
||||
String memberCode,
|
||||
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;
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write(accountLine);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
|
||||
Optional<String> foundAccountSerialNum = IndicSearchCommon.getRowValue(lineList, "SERIAL_NUM");
|
||||
if (foundAccountSerialNum.isEmpty()) {
|
||||
throw new InternalException("SERIAL_NUM was not found in line " + accountLine);
|
||||
}
|
||||
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 InternalException("ACC_SERIAL_NUM was not found in table " + childTableName + " in line " + childLine);
|
||||
}
|
||||
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 InternalException("ACC_SERIAL_NUM was not found in table " + childTableName + " in line " + childLine);
|
||||
}
|
||||
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 InternalException("ACC_SERIAL_NUM was not found in table " + childTableName + " in line " + childLine);
|
||||
}
|
||||
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 InternalException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchCommon;
|
||||
|
||||
@Component
|
||||
public class GutdfFidPassportOgrnFileAggregator implements FileAggregator {
|
||||
private static final List<String> REQUIRED_TABLES = List.of(
|
||||
"RU_UID",
|
||||
"RU_APPLICATION",
|
||||
"RU_OBLIGPARTTAKE",
|
||||
"RU_BANKRUPTCY",
|
||||
"RU_SETTLED",
|
||||
"RU_OTHERLEGAL",
|
||||
"RU_CAPABILITY",
|
||||
"RU_DEBT_BURDEN_INFO"
|
||||
);
|
||||
|
||||
private final ApplicationSettings settings;
|
||||
private final FileAggregatorCommon fileAggregatorCommon;
|
||||
|
||||
public GutdfFidPassportOgrnFileAggregator(ApplicationSettings settings,
|
||||
FileAggregatorCommon fileAggregatorCommon) {
|
||||
this.settings = settings;
|
||||
this.fileAggregatorCommon = fileAggregatorCommon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path aggregateFiles(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
MutableLong rowCounter) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID || searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) {
|
||||
Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv");
|
||||
|
||||
try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) {
|
||||
for (String tableName : REQUIRED_TABLES) {
|
||||
if (tableName.equals("RU_UID")) {
|
||||
fileAggregatorCommon.aggregateRuUidFiles(aggregatedFileWriter, tableFileMap, memberCode, rowCounter);
|
||||
} else if (tableName.equals("RU_BANKRUPTCY")) {
|
||||
fileAggregatorCommon.aggregateBlocksTableFile(tableName, aggregatedFileWriter, tableFileMap, memberCode, rowCounter);
|
||||
} else {
|
||||
try (BufferedReader reader = Files.newBufferedReader(tableFileMap.get(tableName))) {
|
||||
String line;
|
||||
|
||||
while ((line = reader.readLine()) != null) {
|
||||
Optional<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 InternalException("Failed to read file " + tableFileMap.get(tableName) + " " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new InternalException(e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchCommon;
|
||||
|
||||
@Component
|
||||
public class GutdfRuApplicationFileAggregator implements FileAggregator {
|
||||
private final ApplicationSettings settings;
|
||||
|
||||
public GutdfRuApplicationFileAggregator(ApplicationSettings settings) {
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path aggregateFiles(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap, MutableLong rowCounter) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.APPLICATION_NUMBER || searchParameter == SearchParameter.OLD_APP_NUM) {
|
||||
Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv");
|
||||
|
||||
try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND);
|
||||
BufferedReader reader = Files.newBufferedReader(tableFileMap.get("RU_APPLICATION"))) {
|
||||
String line;
|
||||
|
||||
while ((line = reader.readLine()) != null) {
|
||||
Optional<String> foundMemberCode = IndicSearchCommon.getRowValue(line, "MEMBER_CODE");
|
||||
|
||||
if (foundMemberCode.isPresent() && !foundMemberCode.get().startsWith(memberCode)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write(line);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read file " + tableFileMap.get("RU_APPLICATION") + " " + e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
|
||||
@Component
|
||||
public class GutdfRuUidFileAggregator implements FileAggregator {
|
||||
private final ApplicationSettings settings;
|
||||
private final FileAggregatorCommon fileAggregatorCommon;
|
||||
|
||||
public GutdfRuUidFileAggregator(ApplicationSettings settings,
|
||||
FileAggregatorCommon fileAggregatorCommon) {
|
||||
this.settings = settings;
|
||||
this.fileAggregatorCommon = fileAggregatorCommon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path aggregateFiles(UUID taskId, DataType dataType, SearchParameter searchParameter, String searchValue, String memberCode, Map<String, Path> tableFileMap, MutableLong rowCounter) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.UUID || searchParameter == SearchParameter.ACCT_NUM) {
|
||||
Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("AGGREGATED-" + taskId + ".csv");
|
||||
|
||||
try (BufferedWriter aggregatedFileWriter = Files.newBufferedWriter(aggregatedFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) {
|
||||
fileAggregatorCommon.aggregateRuUidFiles(aggregatedFileWriter, tableFileMap, memberCode, rowCounter);
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to write file " + aggregatedFile + " " + e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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)) {
|
||||
fileAggregatorCommon.aggregateAccountFiles(aggregatedFileWriter, tableFileMap, memberCode, rowCounter);
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to write file " + aggregatedFile + " " + e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
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, 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 InternalException("Failed to read file " + tableFileMap.get(tableName) + " " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to write file " + aggregatedFile + " " + e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.aggregator;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.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.exception.InternalException;
|
||||
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;
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write(line);
|
||||
aggregatedFileWriter.newLine();
|
||||
rowCounter.increment();
|
||||
}
|
||||
|
||||
aggregatedFileWriter.write("EOF");
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read file " + tableFileMap.get("INFORMATION") + " " + e);
|
||||
}
|
||||
|
||||
return aggregatedFile;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -6,13 +6,14 @@ import org.springframework.context.annotation.Configuration;
|
|||
import tools.jackson.core.StreamReadConstraints;
|
||||
import tools.jackson.core.json.JsonFactory;
|
||||
import tools.jackson.databind.MapperFeature;
|
||||
import tools.jackson.databind.ObjectMapper;
|
||||
import tools.jackson.databind.PropertyNamingStrategies;
|
||||
import tools.jackson.databind.json.JsonMapper;
|
||||
|
||||
@Configuration
|
||||
public class ObjectMapperConfig {
|
||||
@Bean
|
||||
public JsonMapper objectMapper() {
|
||||
public ObjectMapper objectMapper() {
|
||||
JsonFactory factory = JsonFactory.builder()
|
||||
.streamReadConstraints(StreamReadConstraints.builder()
|
||||
.maxStringLength(100_000_000)
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.dto.response;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@Schema(description = "Internal exception response data transfer object")
|
||||
public record InternalExceptionResponseDto(
|
||||
@Schema(description = "Error message", example = "При обработке запроса произошла ошибка.") String message) {
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.exception;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.converter.HttpMessageNotReadableException;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
import ru.nbch.indicsearchservice.dto.response.InternalExceptionResponseDto;
|
||||
|
||||
@RestControllerAdvice
|
||||
public class ExceptionHandlerAdvice {
|
||||
@ExceptionHandler(InternalException.class)
|
||||
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||
public @ResponseBody InternalExceptionResponseDto handleInternalException(InternalException ex) {
|
||||
return ex.getInternalExceptionResponseDto();
|
||||
}
|
||||
|
||||
@ExceptionHandler(HttpMessageNotReadableException.class)
|
||||
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||
public @ResponseBody InternalExceptionResponseDto handleHttpMessageNotReadableException(HttpMessageNotReadableException ex) {
|
||||
return new InternalExceptionResponseDto("Invalid JSON " + ex);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
package ru.nbch.indicsearchservice.exception;
|
||||
|
||||
import ru.nbch.indicsearchservice.dto.response.InternalExceptionResponseDto;
|
||||
|
||||
public class InternalException extends RuntimeException {
|
||||
private final String message;
|
||||
|
||||
|
|
@ -9,13 +7,4 @@ public class InternalException extends RuntimeException {
|
|||
super(message);
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public InternalException(Throwable cause) {
|
||||
super(cause);
|
||||
this.message = cause.getMessage();
|
||||
}
|
||||
|
||||
public InternalExceptionResponseDto getInternalExceptionResponseDto() {
|
||||
return new InternalExceptionResponseDto(this.message);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,252 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.exporter;
|
||||
|
||||
import jakarta.annotation.Nullable;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.apache.poi.ss.usermodel.BorderStyle;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFFont;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
|
||||
@Component
|
||||
public class ExcelExporter implements Exporter {
|
||||
private static final Logger log = LoggerFactory.getLogger(ExcelExporter.class);
|
||||
private static final Long EXCEL_SHEET_MAX_SIZE = 1_048_575L;
|
||||
|
||||
private final ApplicationSettings settings;
|
||||
|
||||
public ExcelExporter(ApplicationSettings settings) {
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
public void writeExcelFile(@Nullable Path aggregatedFile, UUID taskId, Long totalRows, Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (aggregatedFile == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Path excelFile = settings.getStorageDirectory().toPath().resolve(taskId.toString() + ".xlsx");
|
||||
|
||||
try (OutputStream os = Files.newOutputStream(excelFile);
|
||||
BufferedReader aggregatedFileReader = Files.newBufferedReader(aggregatedFile);
|
||||
SXSSFWorkbook workbook = new SXSSFWorkbook()) {
|
||||
CellStyle headerCellStyle = createHeaderCellStyle(workbook);
|
||||
CellStyle cellStyle = createCellStyle(workbook);
|
||||
|
||||
Iterator<String> iterator = aggregatedFileReader.lines().iterator();
|
||||
|
||||
MutableLong sheetRowCounter = new MutableLong(0L);
|
||||
MutableLong sheetTableCounter = new MutableLong(1L);
|
||||
|
||||
long count = 0L;
|
||||
|
||||
boolean isFirst = true;
|
||||
String lastTableName;
|
||||
List<String> rows = new ArrayList<>();
|
||||
while (iterator.hasNext()) {
|
||||
String line = iterator.next();
|
||||
List<String> lineList = Arrays.asList(line.split("%%%"));
|
||||
|
||||
log.info("Processing row: {} / {}", count++, totalRows);
|
||||
|
||||
if (!isFirst && (FIRST_LEVEL_TABLES.contains(lineList.getFirst()) || line.equals("EOF"))) {
|
||||
lastTableName = rows.getFirst().split("%%%")[0];
|
||||
writeToExcel(workbook, rows, sheetRowCounter, sheetTableCounter, headerCellStyle, cellStyle, tableMetaDataMap);
|
||||
if (lastTableName != null && !lastTableName.equals(lineList.getFirst())) {
|
||||
sheetRowCounter.setValue(0L);
|
||||
sheetTableCounter.setValue(1L);
|
||||
}
|
||||
rows.clear();
|
||||
}
|
||||
|
||||
rows.add(line);
|
||||
isFirst = false;
|
||||
}
|
||||
|
||||
workbook.write(os);
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private void writeToExcel(Workbook workbook,
|
||||
List<String> rows,
|
||||
MutableLong sheetRowCounter,
|
||||
MutableLong sheetTableCounter,
|
||||
CellStyle headerCellStyle,
|
||||
CellStyle cellStyle,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (rows == null || rows.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String parentTableName = rows.getFirst().split("%%%")[0];
|
||||
|
||||
Sheet tableSheet;
|
||||
int rowsApproximateSize = rows.stream().mapToInt(r -> r.split("%%%", -1).length).sum();
|
||||
if (sheetRowCounter.longValue() + (rowsApproximateSize * 2L) >= EXCEL_SHEET_MAX_SIZE) {
|
||||
tableSheet = createSheet(workbook, parentTableName.toUpperCase() + "_" + sheetTableCounter.incrementAndGet());
|
||||
sheetRowCounter.setValue(0L);
|
||||
} else {
|
||||
tableSheet = createSheet(workbook, parentTableName.toUpperCase());
|
||||
}
|
||||
|
||||
for (String row : rows) {
|
||||
List<String> rowList = Arrays.asList(row.split("%%%", -1));
|
||||
String tableName = rowList.getFirst();
|
||||
|
||||
TableMetaData rowMetaData = tableMetaDataMap.get(tableName);
|
||||
|
||||
Set<String> allowedFields = new HashSet<>();
|
||||
if (rowMetaData != null && rowMetaData.getFieldMetaData() != null) {
|
||||
allowedFields = rowMetaData.getFieldMetaData().keySet().stream()
|
||||
.map(String::toUpperCase)
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
List<String> rowSublist = rowList.subList(1, rowList.size());
|
||||
Map<String, Pair<String, String>> rowValues = new LinkedHashMap<>();
|
||||
for (int i = 0; i + 1 <= rowSublist.size(); i = i + 2) {
|
||||
String columnName = rowSublist.get(i);
|
||||
String columnValue = rowSublist.get(i + 1);
|
||||
|
||||
if (columnName != null && allowedFields.contains(columnName.toUpperCase())) {
|
||||
rowValues.put(columnName, Pair.of(rowMetaData.getFieldMetaData().get(columnName).getFieldLocalization(), columnValue));
|
||||
}
|
||||
}
|
||||
|
||||
createHeaderRow(
|
||||
rowMetaData != null ? rowMetaData.getTableNameLocalization() : tableName,
|
||||
tableSheet,
|
||||
sheetRowCounter,
|
||||
headerCellStyle
|
||||
);
|
||||
|
||||
for (Map.Entry<String, Pair<String, String>> entry : rowValues.entrySet()) {
|
||||
String columnName = entry.getKey();
|
||||
String columnLocalization = entry.getValue().getLeft();
|
||||
String columnValue = entry.getValue().getRight();
|
||||
|
||||
writeFieldDataIntoSheetRow(
|
||||
columnName,
|
||||
columnLocalization,
|
||||
columnValue,
|
||||
tableSheet,
|
||||
sheetRowCounter,
|
||||
cellStyle
|
||||
);
|
||||
}
|
||||
|
||||
sheetRowCounter.increment();
|
||||
}
|
||||
}
|
||||
|
||||
private CellStyle createHeaderCellStyle(Workbook workbook) {
|
||||
CellStyle headerCellStyle = workbook.createCellStyle();
|
||||
headerCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||
|
||||
XSSFFont font = (XSSFFont) workbook.createFont();
|
||||
font.setFontName("SansSerif");
|
||||
font.setFontHeightInPoints((short) 11);
|
||||
font.setBold(true);
|
||||
headerCellStyle.setFont(font);
|
||||
|
||||
return headerCellStyle;
|
||||
}
|
||||
|
||||
private CellStyle createCellStyle(Workbook workbook) {
|
||||
CellStyle cellStyle = workbook.createCellStyle();
|
||||
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||
cellStyle.setBorderBottom(BorderStyle.THIN);
|
||||
cellStyle.setBorderLeft(BorderStyle.THIN);
|
||||
cellStyle.setBorderTop(BorderStyle.THIN);
|
||||
cellStyle.setBorderRight(BorderStyle.THIN);
|
||||
|
||||
XSSFFont font = (XSSFFont) workbook.createFont();
|
||||
font.setFontName("Calibri");
|
||||
font.setFontHeightInPoints((short) 11);
|
||||
cellStyle.setFont(font);
|
||||
|
||||
return cellStyle;
|
||||
}
|
||||
|
||||
private Sheet createSheet(Workbook workbook, String sheetName) {
|
||||
Sheet foundSheet = workbook.getSheet(sheetName);
|
||||
|
||||
if (foundSheet == null) {
|
||||
Sheet sheet = workbook.createSheet(sheetName);
|
||||
sheet.setColumnWidth(0, 25 * 256);
|
||||
sheet.setColumnWidth(1, 115 * 256);
|
||||
sheet.setColumnWidth(2, 38 * 256);
|
||||
|
||||
return sheet;
|
||||
}
|
||||
|
||||
return foundSheet;
|
||||
}
|
||||
|
||||
private void createHeaderRow(String localizedTableName,
|
||||
Sheet sheet,
|
||||
MutableLong currentRow,
|
||||
CellStyle headerCellStyle) {
|
||||
Row headerRow = sheet.createRow(currentRow.intValue());
|
||||
headerRow.setHeightInPoints(15);
|
||||
|
||||
Cell headerCell = headerRow.createCell(0);
|
||||
headerCell.setCellValue(localizedTableName);
|
||||
headerCell.setCellStyle(headerCellStyle);
|
||||
sheet.addMergedRegion(new CellRangeAddress(currentRow.intValue(), currentRow.intValue(), 0, 2));
|
||||
|
||||
currentRow.increment();
|
||||
}
|
||||
|
||||
private void writeFieldDataIntoSheetRow(String fieldKey,
|
||||
String localizedFieldKey,
|
||||
@Nullable Object fieldValue,
|
||||
Sheet sheet,
|
||||
MutableLong currentRow,
|
||||
CellStyle cellStyle) {
|
||||
Row dataRow = sheet.createRow(currentRow.intValue());
|
||||
dataRow.setHeightInPoints(15);
|
||||
|
||||
Cell dataFieldCell = dataRow.createCell(0);
|
||||
dataFieldCell.setCellValue(fieldKey.toUpperCase());
|
||||
dataFieldCell.setCellStyle(cellStyle);
|
||||
|
||||
Cell descriptionCell = dataRow.createCell(1);
|
||||
descriptionCell.setCellValue(localizedFieldKey);
|
||||
descriptionCell.setCellStyle(cellStyle);
|
||||
|
||||
Cell dataValueCell = dataRow.createCell(2);
|
||||
dataValueCell.setCellValue(Optional.ofNullable(fieldValue).orElse("").toString());
|
||||
dataValueCell.setCellStyle(cellStyle);
|
||||
|
||||
currentRow.increment();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.exporter;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public interface Exporter {
|
||||
Set<String> FIRST_LEVEL_TABLES = 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"
|
||||
);
|
||||
}
|
||||
|
|
@ -1,176 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.exporter;
|
||||
|
||||
import jakarta.annotation.Nullable;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.model.TableData;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import tools.jackson.core.JsonGenerator;
|
||||
import tools.jackson.databind.json.JsonMapper;
|
||||
|
||||
@Component
|
||||
public class JsonExporter implements Exporter {
|
||||
private static final Logger log = LoggerFactory.getLogger(JsonExporter.class);
|
||||
|
||||
private final ApplicationSettings settings;
|
||||
private final JsonMapper jsonMapper;
|
||||
|
||||
public JsonExporter(ApplicationSettings settings,
|
||||
JsonMapper jsonMapper) {
|
||||
this.settings = settings;
|
||||
this.jsonMapper = jsonMapper;
|
||||
}
|
||||
|
||||
public void writeJsonFile(@Nullable Path aggregatedFile,
|
||||
UUID taskId,
|
||||
SearchParameter searchParameter,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (aggregatedFile == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
boolean isPassportOgrnFid = searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN ||
|
||||
searchParameter == SearchParameter.FID;
|
||||
|
||||
Path jsonFile = settings.getStorageDirectory().toPath().resolve(taskId.toString() + ".json");
|
||||
|
||||
try (BufferedReader reader = Files.newBufferedReader(aggregatedFile);
|
||||
JsonGenerator jsonGenerator = jsonMapper.createGenerator(Files.newOutputStream(jsonFile))) {
|
||||
jsonGenerator.writeStartObject();
|
||||
jsonGenerator.writeName("datasheets");
|
||||
jsonGenerator.writeStartArray();
|
||||
|
||||
Iterator<String> iterator = reader.lines().iterator();
|
||||
List<String> rows = new ArrayList<>();
|
||||
boolean isFirst = true;
|
||||
boolean isFirstArray = true;
|
||||
boolean isFileEmpty = true;
|
||||
|
||||
AtomicReference<Integer> previousFid = new AtomicReference<>();
|
||||
while (iterator.hasNext()) {
|
||||
String line = iterator.next();
|
||||
|
||||
if (line == null || line.trim().isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
List<String> lineList = Arrays.asList(line.split("%%%", -1));
|
||||
String tableName = lineList.getFirst();
|
||||
|
||||
if (!isFirst && (FIRST_LEVEL_TABLES.contains(tableName) || line.equals("EOF"))) {
|
||||
TableData parentData = buildTableDataHierarchy(rows, tableMetaDataMap);
|
||||
if (parentData != null) {
|
||||
if (isPassportOgrnFid) {
|
||||
Object currentFidField = parentData.getFieldData().stream()
|
||||
.filter(fd -> fd.columnName().equals("FID") && fd.columnValue() != null)
|
||||
.findFirst()
|
||||
.orElse(new TableData.FieldData("FID", null))
|
||||
.columnValue();
|
||||
|
||||
if (previousFid.get() == null || (currentFidField != null && Integer.parseInt(currentFidField.toString()) != previousFid.get())) {
|
||||
previousFid.set(Integer.parseInt(currentFidField.toString()));
|
||||
if (!isFirstArray) {
|
||||
jsonGenerator.writeEndArray();
|
||||
}
|
||||
jsonGenerator.writeStartArray();
|
||||
jsonMapper.writeValue(jsonGenerator, parentData);
|
||||
isFirstArray = false;
|
||||
isFileEmpty = false;
|
||||
} else {
|
||||
jsonMapper.writeValue(jsonGenerator, parentData);
|
||||
}
|
||||
} else {
|
||||
jsonGenerator.writeStartArray();
|
||||
jsonMapper.writeValue(jsonGenerator, parentData);
|
||||
jsonGenerator.writeEndArray();
|
||||
}
|
||||
}
|
||||
rows.clear();
|
||||
}
|
||||
|
||||
rows.add(line);
|
||||
isFirst = false;
|
||||
}
|
||||
|
||||
if (!isPassportOgrnFid) {
|
||||
jsonGenerator.writeEndArray(); // Закрываем массив объекта
|
||||
} else if (!isFileEmpty) {
|
||||
jsonGenerator.writeEndArray(); // Закрываем массивы объектов с одним FID для PASSPORT, OGRN, FID
|
||||
jsonGenerator.writeEndArray(); // Закрываем общий массив
|
||||
} else {
|
||||
jsonGenerator.writeEndArray(); // Если файл пуст, закрываем только общий массив
|
||||
}
|
||||
jsonGenerator.writeEndObject();
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private TableData buildTableDataHierarchy(List<String> rows, Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (rows == null || rows.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
TableData parentTableData = parseSingleRow(rows.getFirst(), tableMetaDataMap);
|
||||
if (parentTableData == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (int i = 1; i < rows.size(); i++) {
|
||||
TableData childTableData = parseSingleRow(rows.get(i), tableMetaDataMap);
|
||||
if (childTableData != null) {
|
||||
parentTableData.getRelatedTableData().add(childTableData);
|
||||
}
|
||||
}
|
||||
|
||||
return parentTableData;
|
||||
}
|
||||
|
||||
private TableData parseSingleRow(String row, Map<String, TableMetaData> tableMetaDataMap) {
|
||||
String[] parts = row.split("%%%", -1);
|
||||
|
||||
if (parts.length == 0 || parts[0].isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String tableName = parts[0];
|
||||
TableMetaData metaData = tableMetaDataMap.get(tableName);
|
||||
|
||||
Set<String> allowedFields = metaData != null ?
|
||||
metaData.getFieldMetaData().keySet().stream().map(String::toUpperCase).collect(Collectors.toSet()) :
|
||||
new HashSet<>();
|
||||
|
||||
List<TableData.FieldData> fieldData = new ArrayList<>();
|
||||
|
||||
for (int i = 1; i + 1 < parts.length; i += 2) {
|
||||
String columnName = parts[i];
|
||||
String columnValue = parts[i + 1];
|
||||
|
||||
if (columnName != null && !columnName.isEmpty()) {
|
||||
if (allowedFields.contains(columnName.toUpperCase())) {
|
||||
fieldData.add(new TableData.FieldData(columnName, columnValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return new TableData(tableName, fieldData);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,137 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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.IndicSearchCommon;
|
||||
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) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "UUID")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("UUID").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByUuidAndMemberCodeFromAccount(searchValue, 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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.ACCT_NUM) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "ACCT_NUM")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("ACCT_NUM").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByAcctNumAndMemberCodeFromAccount(searchValue, 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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.SERIAL_NUM_ACCT) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "SERIAL_NUM")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("SERIAL_NUM").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllBySerialNumAndMemberCodeFromAccount(searchValue, 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 InternalException("Failed to read cursor " + 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 InternalException("Failed to read cursor " + 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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 InternalException("Failed to read cursor " + 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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 InternalException("Failed to read cursor " + 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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
|
||||
public interface FirstLevelTableLoader extends TableLoader {
|
||||
void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap);
|
||||
|
||||
Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter);
|
||||
}
|
||||
|
|
@ -1,142 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
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.exception.InternalException;
|
||||
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.IndicSearchCommon;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class IdTableLoader implements FirstLevelTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final List<TableLoaderForId> tableLoaders;
|
||||
|
||||
public IdTableLoader(MapperHolder mapperHolder,
|
||||
List<TableLoaderForId> tableLoaders) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.tableLoaders = tableLoaders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "ID";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF || dataType == DataType.TUTDF) &&
|
||||
(searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
Set<String> result = new HashSet<>();
|
||||
|
||||
result.add(getTableName());
|
||||
result.addAll(tableLoaders.stream()
|
||||
.map(l -> l.getTableNamesIfSuitable(dataType, searchParameter))
|
||||
.flatMap(Collection::stream)
|
||||
.toList());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) {
|
||||
Set<Integer> foundFids = new HashSet<>();
|
||||
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "ID_NORM")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("ID_NORM").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = searchParameter == SearchParameter.OGRN ?
|
||||
mapperHolder.getIndicMapper().findFidsByOgrnFromId(searchValue) :
|
||||
mapperHolder.getIndicMapper().findFidsByPassportFromId(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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
|
||||
tableLoaders.parallelStream().forEach(tl -> tl.searchById(
|
||||
taskId,
|
||||
dataType,
|
||||
searchParameter,
|
||||
foundFids,
|
||||
memberCode,
|
||||
tableFileMap,
|
||||
tableMetaDataMap
|
||||
));
|
||||
}
|
||||
} else if (dataType == DataType.TUTDF) {
|
||||
if (searchParameter == SearchParameter.OGRN || searchParameter == SearchParameter.PASSPORT) {
|
||||
Set<Integer> foundFids = new HashSet<>();
|
||||
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "ID_NORM")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("ID_NORM").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
|
||||
tableLoaders.parallelStream().forEach(tl -> tl.searchById(
|
||||
taskId,
|
||||
dataType,
|
||||
searchParameter,
|
||||
foundFids,
|
||||
memberCode,
|
||||
tableFileMap,
|
||||
tableMetaDataMap
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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.IndicSearchCommon;
|
||||
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) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "APP_NUM")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("APP_NUM").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByAppNumAndMemberCodeFromInformation(searchValue, memberCode)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.SERIAL_NUM_APP) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "SERIAL_NUM")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("SERIAL_NUM").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllBySerialNumAndMemberCodeFromInformation(searchValue, memberCode)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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 InternalException("Failed to read cursor " + 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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 InternalException("Failed to read cursor " + 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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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.IndicSearchCommon;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuApplicationTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuApplicationTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_APPLICATION";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.APPLICATION_NUMBER ||
|
||||
searchParameter == SearchParameter.OLD_APP_NUM ||
|
||||
searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.APPLICATION_NUMBER) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "APPLICATION_NUMBER")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("APPLICATION_NUMBER").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByApplicationNumberAndMemberCodeFromRuApplication(searchValue, memberCode)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.OLD_APP_NUM) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "OLD_APP_NUM")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("OLD_APP_NUM").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByOldAppNumAndMemberCodeFromRuApplication(searchValue, memberCode)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuApplication(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuApplication(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 RuBankruptcyTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuBankruptcyTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_BANKRUPTCY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcy(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcy(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 RuCapabilityTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuCapabilityTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_CAPABILITY";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCapability(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCapability(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 RuDebtBurdenInfoTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuDebtBurdenInfoTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_DEBT_BURDEN_INFO";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDebtBurdenInfo(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDebtBurdenInfo(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 RuObligPartTakeTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuObligPartTakeTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_OBLIGPARTTAKE";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligPartTake(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligPartTake(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 RuOtherLegalTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuOtherLegalTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_OTHERLEGAL";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOtherLegal(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOtherLegal(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 RuSettledTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuSettledTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_SETTLED";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
return Set.of(getTableName());
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSettled(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSettled(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.loader.subtable.RuUidSubTableLoader;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchCommon;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuUidTableLoader implements FirstLevelTableLoader, TableLoaderForId {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
private final List<RuUidSubTableLoader> ruUidSubTableLoaders;
|
||||
|
||||
public RuUidTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils,
|
||||
List<RuUidSubTableLoader> ruUidSubTableLoaders) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
this.ruUidSubTableLoaders = ruUidSubTableLoaders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_UID";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTableNamesIfSuitable(DataType dataType, SearchParameter searchParameter) {
|
||||
if ((dataType == DataType.GUTDF || dataType == DataType.RUTDF) &&
|
||||
(searchParameter == SearchParameter.UUID ||
|
||||
searchParameter == SearchParameter.ACCT_NUM ||
|
||||
searchParameter == SearchParameter.FID ||
|
||||
searchParameter == SearchParameter.PASSPORT ||
|
||||
searchParameter == SearchParameter.OGRN)) {
|
||||
Set<String> result = new HashSet<>();
|
||||
|
||||
result.add(getTableName());
|
||||
result.addAll(ruUidSubTableLoaders.stream().map(TableLoader::getTableName).toList());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return Set.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchBy(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
String searchValue,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
if (dataType == DataType.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.UUID) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "UUID")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("UUID").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByUuidAndMemberCodeFromRuUid(searchValue, memberCode)) {
|
||||
Set<Integer> foundFids = new HashSet<>();
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, foundFids, tableMetaDataMap));
|
||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, foundFids, tableFileMap, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.ACCT_NUM) {
|
||||
if (IndicSearchCommon.isCastableField(getTableName(), "ACCT_NUM")) {
|
||||
int maxSearchValueSize = tableMetaDataMap.get(getTableName()).getFieldMetaData().get("ACCT_NUM").getColumnSize();
|
||||
searchValue = searchValue.length() > maxSearchValueSize ? searchValue.substring(0, maxSearchValueSize) : searchValue;
|
||||
}
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByAcctNumAndMemberCodeFromRuUid(searchValue, memberCode)) {
|
||||
Set<Integer> foundFids = new HashSet<>();
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, foundFids, tableMetaDataMap));
|
||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, foundFids, tableFileMap, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
} else if (searchParameter == SearchParameter.FID) {
|
||||
Set<Integer> fids = Set.of(Integer.parseInt(searchValue));
|
||||
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuUid(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
ruUidSubTableLoaders.parallelStream().forEach(tl -> tl.searchByRuUidFid(taskId, fids, tableFileMap, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + 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.GUTDF || dataType == DataType.RUTDF) {
|
||||
if (searchParameter == SearchParameter.PASSPORT || searchParameter == SearchParameter.OGRN) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuUid(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
public interface TableLoader {
|
||||
String getTableName();
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.loader;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.DataType;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
|
||||
public interface TableLoaderForId extends FirstLevelTableLoader {
|
||||
void searchById(UUID taskId,
|
||||
DataType dataType,
|
||||
SearchParameter searchParameter,
|
||||
Set<Integer> fids,
|
||||
String memberCode,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap);
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
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);
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
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 InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuAccountAmtTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuAccountAmtTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_ACCOUNT_AMT";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAccountAmt(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuAcquirerIndividTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuAcquirerIndividTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_ACQUIRERINDIVID";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAcquirerIndivid(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuAcquirerLegalTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuAcquirerLegalTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_ACQUIRERLEGAL";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAcquirerLegal(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuAllArrearsTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuAllArrearsTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_ALL_ARREARS";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAllArrears(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuAmendmentTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuAmendmentTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_AMENDMENT";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAmendment(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuAmountInfoTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuAmountInfoTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_AMOUNT_INFO";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAmountInfo(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuArrearTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuArrearTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_ARREAR";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuArrear(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuBankruptcyBlocksTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuBankruptcyBlocksTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_BANKRUPTCY_BLOCKS";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuBankruptcyBlocks(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuCoborrowerTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuCoborrowerTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_COBORROWER";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCoborrower(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuCollatInsuredTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuCollatInsuredTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_COLLATINSURED";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollatInsured(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuCollatRepayTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuCollatRepayTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_COLLATREPAY";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollatRepay(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuCollateralBlocksTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuCollateralBlocksTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_COLLATERAL_BLOCKS";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollateralBlocks(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuCollateralTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuCollateralTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_COLLATERAL";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuCollateral(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuContractTermsChangesTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuContractTermsChangesTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_CONTRACT_TERMS_CHANGES";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuContractTermsChanges(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuDueArrearTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuDueArrearTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_DUEARREAR";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuDueArrear(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuFundDateTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuFundDateTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_FUNDDATE";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuFundDate(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuGuaranteeRepayTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuGuaranteeRepayTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_GUARANTEEREPAY";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuGuaranteeRepay(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuGuarantorTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuGuarantorTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_GUARANTOR";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuGuarantor(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuIndepGuarantorTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuIndepGuarantorTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_INDEPGUARANTOR";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuIndepGuarantor(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuLegalRecordTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuLegalRecordTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_LEGALRECORD";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuLegalRecord(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuMonthAverPaymtTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuMonthAverPaymtTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_MONTHAVERPAYMT";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuMonthAverPaymt(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuObligAccountTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuObligAccountTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_OBLIGACCOUNT";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligAccount(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuObligTerminationTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuObligTerminationTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_OBLIGTERMINATION";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligTermination(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuObligsRcBankruptTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuObligsRcBankruptTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_OBLIGSRCBANKRUPT";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligsRcBankrupt(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuObligsRcLiquidTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuObligsRcLiquidTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_OBLIGSRCLIQUID";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuObligsRcLiquid(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuOverallvalTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuOverallvalTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_OVERALLVAL";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuOverallval(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuPastDueArrearTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuPastDueArrearTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_PASTDUEARREAR";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPastDueArrear(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuPaymtConditionTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuPaymtConditionTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_PAYMT_CONDITION";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPaymtCondition(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuPaymtTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuPaymtTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_PAYMT";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuPaymt(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuServiceCoTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuServiceCoTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_SERVICECO";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuServiceCo(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuSourceNonMonetObligTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuSourceNonMonetObligTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_SOURCENONMONETOBLIG";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSourceNonMonetOblig(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuSubjectNonMonetObligTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuSubjectNonMonetObligTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_SUBJECTNONMONETOBLIG";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSubjectNonMonetOblig(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuSubmitHoldTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuSubmitHoldTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_SUBMITHOLD";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuSubmitHold(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
|
||||
import ru.nbch.indicsearchservice.util.MapperHolder;
|
||||
|
||||
@Component
|
||||
public class RuTradeTableLoader implements RuUidSubTableLoader {
|
||||
private final MapperHolder mapperHolder;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
|
||||
public RuTradeTableLoader(MapperHolder mapperHolder,
|
||||
IndicSearchUtils indicSearchUtils) {
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "RU_TRADE";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuTrade(fids)) {
|
||||
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor, tableMetaDataMap));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read cursor " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
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 RuUidSubTableLoader extends SubTableLoader {
|
||||
void searchByRuUidFid(UUID taskId,
|
||||
Set<Integer> fids,
|
||||
Map<String, Path> tableFileMap,
|
||||
Map<String, TableMetaData> tableMetaDataMap);
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.loader.subtable;
|
||||
|
||||
import ru.nbch.indicsearchservice.loader.TableLoader;
|
||||
|
||||
public interface SubTableLoader extends TableLoader {
|
||||
}
|
||||
|
|
@ -16,7 +16,7 @@ public class Settings {
|
|||
public Settings() {
|
||||
}
|
||||
|
||||
public Settings(Long id, @Nullable Long version, @Nullable String name, @Nullable String value) {
|
||||
public Settings(Long id, Long version, String name, String value) {
|
||||
this.id = id;
|
||||
this.version = version;
|
||||
this.name = name;
|
||||
|
|
@ -31,28 +31,27 @@ public class Settings {
|
|||
this.id = id;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(@Nullable Long version) {
|
||||
public void setVersion(Long version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public @Nullable String getName() {
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(@Nullable String name) {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public @Nullable String getValue() {
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(@Nullable String value) {
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,67 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@JsonPropertyOrder({"tableName", "fieldData", "relatedTableData"})
|
||||
public class TableData {
|
||||
private String tableName;
|
||||
private List<FieldData> fieldData = new ArrayList<>();
|
||||
|
||||
@JsonProperty("related_data")
|
||||
private List<TableData> relatedTableData = new ArrayList<>();
|
||||
|
||||
public TableData() {
|
||||
}
|
||||
|
||||
public TableData(String tableName, List<FieldData> fieldData) {
|
||||
this.tableName = tableName;
|
||||
this.fieldData = fieldData;
|
||||
}
|
||||
|
||||
public TableData(String tableName, List<FieldData> fieldData, List<TableData> relatedTableData) {
|
||||
this.tableName = tableName;
|
||||
this.fieldData = fieldData;
|
||||
this.relatedTableData = relatedTableData;
|
||||
}
|
||||
|
||||
public String getTableName() {
|
||||
return tableName;
|
||||
}
|
||||
|
||||
public List<FieldData> getFieldData() {
|
||||
return fieldData;
|
||||
}
|
||||
|
||||
public List<TableData> getRelatedTableData() {
|
||||
return relatedTableData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
TableData tableData = (TableData) o;
|
||||
return Objects.equals(tableName, tableData.tableName) && Objects.equals(fieldData, tableData.fieldData) && Objects.equals(relatedTableData, tableData.relatedTableData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(tableName, fieldData, relatedTableData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TableData{" +
|
||||
"tableName='" + tableName + '\'' +
|
||||
", fieldData=" + fieldData +
|
||||
", relatedTableData=" + relatedTableData +
|
||||
'}';
|
||||
}
|
||||
|
||||
public record FieldData(@JsonProperty("key") String columnName,
|
||||
@JsonProperty("value") Object columnValue) {
|
||||
}
|
||||
}
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.model;
|
||||
|
||||
import jakarta.annotation.Nullable;
|
||||
import java.sql.JDBCType;
|
||||
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 static class FieldMetaData {
|
||||
private final String fieldName;
|
||||
@Nullable
|
||||
private final String fieldLocalization;
|
||||
@Nullable
|
||||
private JDBCType jdbcType;
|
||||
@Nullable
|
||||
private Integer columnSize;
|
||||
|
||||
public FieldMetaData(String fieldName, @Nullable String fieldLocalization) {
|
||||
this.fieldName = fieldName;
|
||||
this.fieldLocalization = fieldLocalization;
|
||||
this.jdbcType = null;
|
||||
this.columnSize = null;
|
||||
}
|
||||
|
||||
public FieldMetaData(String fieldName) {
|
||||
this.fieldName = fieldName;
|
||||
this.fieldLocalization = null;
|
||||
this.jdbcType = null;
|
||||
this.columnSize = null;
|
||||
}
|
||||
|
||||
public String getFieldName() {
|
||||
return fieldName;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getFieldLocalization() {
|
||||
return fieldLocalization;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public JDBCType getJdbcType() {
|
||||
return jdbcType;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getColumnSize() {
|
||||
return columnSize;
|
||||
}
|
||||
|
||||
public void setJdbcType(@Nullable JDBCType jdbcType) {
|
||||
this.jdbcType = jdbcType;
|
||||
}
|
||||
|
||||
public void setColumnSize(@Nullable Integer columnSize) {
|
||||
this.columnSize = columnSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,11 @@ import ru.nbch.indicsearchservice.model.LocalizationObject;
|
|||
|
||||
@Mapper
|
||||
public interface LocalizationObjectMapper {
|
||||
List<LocalizationObject> findByCode(String code);
|
||||
|
||||
List<LocalizationObject> findAllByCodes(@Param("codes") List<String> codes);
|
||||
|
||||
void insert(LocalizationObject localization);
|
||||
|
||||
void insertBatch(@Param("list") List<LocalizationObject> list);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package ru.nbch.indicsearchservice.repository.bank;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
|
@ -12,5 +13,5 @@ public interface SettingsMapper {
|
|||
|
||||
List<Settings> findAllByNames(@Param("names") List<String> names);
|
||||
|
||||
void insertBatch(@Param("list") List<Settings> list);
|
||||
Collection<Settings> findAll();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package ru.nbch.indicsearchservice.repository.indic;
|
|||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import ru.nbch.indicsearchservice.repository.MyBatisRepository;
|
||||
|
|
@ -11,78 +10,169 @@ import ru.nbch.indicsearchservice.repository.MyBatisRepository;
|
|||
public interface IndicMapper extends MyBatisRepository {
|
||||
List<LinkedHashMap<String, String>> getTableColumnsByTableNames(List<String> tables);
|
||||
|
||||
// GUTDF/RUTDF tables
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuUid(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuApplication(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuObligPartTake(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuBankruptcy(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSettled(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuOtherLegal(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuCapability(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuDebtBurdenInfo(Set<Integer> fids);
|
||||
List<LinkedHashMap<String, Object>> findAllByAcctNumAndMemberCodeFromRuUid(String columns, String acctNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAcctNumAndMemberCodeFromRuUidCursor(String columns, String acctNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByApplicationNumberAndMemberCodeFromRuApplication(String columns, String applicationNumber, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByApplicationNumberAndMemberCodeFromRuApplicationCursor(String columns, String applicationNumber, String memberCode);
|
||||
Long countAllByApplicationNumberAndMemberCodeFromRuApplication(String applicationNumber, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByUuidFromRuUid(String columns, String uuid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByUuidFromRuUidCursor(String columns, String uuid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByOgrnFromId(String idNorm);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByOgrnFromIdCursor(String idNorm);
|
||||
List<String> findAllDistinctFidByOgrnFromId(String idNorm);
|
||||
List<LinkedHashMap<String, Object>> findAllByOgrnTutdfFromId(String idNorm);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByOgrnTutdfFromIdCursor(String idNorm);
|
||||
List<String> findAllDistinctFidByOgrnTutdfFromId(String idNorm);
|
||||
List<LinkedHashMap<String, Object>> findAllByPassportFromId(String idNorm);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByPassportFromIdCursor(String idNorm);
|
||||
List<String> findAllDistinctFidByPassportFromId(String idNorm);
|
||||
List<LinkedHashMap<String, Object>> findAllByPassportTutdfFromId(String idNorm);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByPassportTutdfFromIdCursor(String idNorm);
|
||||
List<String> findAllDistinctFidByPassportTutdfFromId(String idNorm);
|
||||
List<LinkedHashMap<String, Object>> findAllByOldAppNumFromRuApplication(String columns, String oldAppNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByOldAppNumFromRuApplicationCursor(String columns, String oldAppNum, String memberCode);
|
||||
Long countAllByOldAppNumFromRuApplication(String oldAppNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByAcctNumFromAccount(String columns, String acctNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAcctNumFromAccountCursor(String columns, String acctNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllBySerialNumFromAccount(String columns, String serialNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllBySerialNumFromAccountCursor(String columns, String serialNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByUuidFromAccount(String columns, String uuid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByUuidFromAccountCursor(String columns, String uuid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllBySerialNumAndMemberCodeFromInformation(String columns, String serialNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllBySerialNumAndMemberCodeFromInformationCursor(String columns, String serialNum, String memberCode);
|
||||
Long countAllBySerialNumAndMemberCodeFromInformation(String serialNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByAppNumAndMemberCodeFromInformation(String columns, String appNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAppNumAndMemberCodeFromInformationCursor(String columns, String appNum, String memberCode);
|
||||
Long countAllByAppNumAndMemberCodeFromInformation(String appNum, String memberCode);
|
||||
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAcctNumAndMemberCodeFromRuUid(String acctNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByUuidAndMemberCodeFromRuUid(String uuid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByApplicationNumberAndMemberCodeFromRuApplication(String applicationNumber, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByOldAppNumAndMemberCodeFromRuApplication(String oldAppNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuTrade(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuTradeCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAccountAmt(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAccountAmtCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuCoborrower(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuCoborrowerCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuPaymtCondition(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuPaymtConditionCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuOverallval(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuOverallvalCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAmendment(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAmendmentCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuFunddate(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuFunddateCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuArrear(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuArrearCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuDuearrear(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuDuearrearCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuPastduearrear(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuPastduearrearCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuPaymt(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuPaymtCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuMonthaverpaymt(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuMonthaverpaymtCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuSourcenonmonetoblig(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuSourcenonmonetobligCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuSubjectnonmonetoblig(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuSubjectnonmonetobligCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuCollateral(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuCollateralCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuGuarantor(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuGuarantorCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuIndepguarantor(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuIndepguarantorCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuCollatinsured(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuCollatinsuredCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuCollatrepay(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuCollatrepayCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuGuaranteerepay(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuGuaranteerepayCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuObligtermination(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuObligterminationCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuSubmithold(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuSubmitholdCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAcquirerlegal(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAcquirerlegalCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAcquirerindivid(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAcquirerindividCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuServiceco(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuServicecoCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuObligaccount(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuObligaccountCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuLegalrecord(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuLegalrecordCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuObligsrcbankrupt(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuObligsrcbankruptCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuObligsrcliquid(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuObligsrcliquidCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAmountInfo(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAmountInfoCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuContractTermsChanges(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuContractTermsChangesCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAllArrears(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromRuAllArrearsCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromAccountAmend(String columns, String accSerialNum, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromAccountAmendCursor(String columns, String accSerialNum, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromPayment(String columns, String accSerialNum, String memberCode, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromPaymentCursor(String columns, String accSerialNum, String memberCode, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromCollateral(String columns, String accSerialNum, String memberCode, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromCollateralCursor(String columns, String accSerialNum, String memberCode, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromGuarantor(String columns, String accSerialNum, String memberCode, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromGuarantorCursor(String columns, String accSerialNum, String memberCode, String fid);
|
||||
List<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromBankGuarantee(String columns, String accSerialNum, String memberCode, String fid);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAccSerialNumAndFidFromBankGuaranteeCursor(String columns, String accSerialNum, String memberCode, String fid);
|
||||
|
||||
Cursor<LinkedHashMap<String, Object>> findFidsByOgrnFromId(String idNorm);
|
||||
Cursor<LinkedHashMap<String, Object>> findFidsByPassportFromId(String idNorm);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuUid(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuUidCursor(String columns, String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuUidWithoutRealMemberCode(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuUidWithoutRealMemberCodeCursor(String columns, String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuApplication(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuApplicationCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromRuApplication(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuObligparttake(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuObligparttakeCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromRuObligparttake(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuBankruptcy(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuBankruptcyCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromRuBankruptcyWithBlocks(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuSettled(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuSettledCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromRuSettled(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuOtherlegal(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuOtherlegalCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromRuOtherlegal(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuCapability(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuCapabilityCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromRuCapability(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuDebtBurdenInfo(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromRuDebtBurdenInfoCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromRuDebtBurdenInfo(String fid, String memberCode);
|
||||
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuTrade(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuAccountAmt(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuAcquirerIndivid(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuAcquirerLegal(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuAllArrears(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuAmendment(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuAmountInfo(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuArrear(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuBankruptcyBlocks(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuCoborrower(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuCollateral(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuCollateralBlocks(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuCollatInsured(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuCollatRepay(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuContractTermsChanges(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuDueArrear(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuFundDate(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuGuaranteeRepay(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuGuarantor(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuIndepGuarantor(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuLegalRecord(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuMonthAverPaymt(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuObligAccount(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuObligsRcBankrupt(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuObligsRcLiquid(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuObligTermination(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuOverallval(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuPastDueArrear(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuPaymtCondition(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuPaymt(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuServiceCo(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSourceNonMonetOblig(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSubjectNonMonetOblig(Set<Integer> fids);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidsFromRuSubmitHold(Set<Integer> fids);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromAccount(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromAccountCursor(String columns, String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromInformation(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromInformationCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromInformation(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromBankruptcy(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromBankruptcyCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromBankruptcy(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromConsumerBankruptcy(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromConsumerBankruptcyCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromConsumerBankruptcy(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromLegal(String columns, String fid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndMemberCodeFromLegalCursor(String columns, String fid, String memberCode);
|
||||
Long countAllByFidAndMemberCodeFromLegal(String fid, String memberCode);
|
||||
|
||||
// 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);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndParentSerialNumFromRuCollateralBlocks(String columns, String fid, String parentSerialNum);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndParentSerialNumFromRuCollateralBlocksCursor(String columns, String fid, String parentSerialNum);
|
||||
List<LinkedHashMap<String, Object>> findAllByFidAndParentSerialNumFromRuBankruptcyBlocks(String columns, String fid, String parentSerialNum);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByFidAndParentSerialNumFromRuBankruptcyBlocksCursor(String columns, String fid, String parentSerialNum);
|
||||
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAcctNumAndMemberCodeFromAccount(String acctNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllBySerialNumAndMemberCodeFromAccount(String serialNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByUuidAndMemberCodeFromAccount(String uuid, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllBySerialNumAndMemberCodeFromInformation(String serialNum, String memberCode);
|
||||
Cursor<LinkedHashMap<String, Object>> findAllByAppNumAndMemberCodeFromInformation(String appNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> countAllRuUidChildTablesByAcctNum(String acctNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> countAllRuUidChildTablesByFid(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> countAllRuUidChildTablesByFidWithoutRealMemberCode(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> countAllRuUidChildTablesByUuid(String uuid, 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);
|
||||
List<LinkedHashMap<String, Object>> countAllAccountChildTablesByAcctNum(String acctNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> countAllAccountChildTablesByFid(String fid, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> countAllAccountChildTablesBySerialNum(String serialNum, String memberCode);
|
||||
List<LinkedHashMap<String, Object>> countAllAccountChildTablesByUuid(String uuid, String memberCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,143 +1,14 @@
|
|||
package ru.nbch.indicsearchservice.service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import org.apache.commons.lang3.mutable.MutableLong;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StopWatch;
|
||||
import ru.nbch.indicsearchservice.aggregator.FileAggregator;
|
||||
import ru.nbch.indicsearchservice.dto.request.AddSearchJobRequestDto;
|
||||
import ru.nbch.indicsearchservice.dto.response.AddSearchJobResponseDto;
|
||||
import ru.nbch.indicsearchservice.dto.response.JobStatusResponseDto;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.exporter.ExcelExporter;
|
||||
import ru.nbch.indicsearchservice.exporter.JsonExporter;
|
||||
import ru.nbch.indicsearchservice.loader.FirstLevelTableLoader;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.util.TableMetaDataUtil;
|
||||
|
||||
@Service
|
||||
public class IndicSearchService {
|
||||
private static final Logger log = LoggerFactory.getLogger(IndicSearchService.class);
|
||||
|
||||
private static final boolean IS_EXPORT_AS_EXCEL = false;
|
||||
|
||||
private final List<FirstLevelTableLoader> tableLoaders;
|
||||
private final List<FileAggregator> fileAggregators;
|
||||
private final ExcelExporter excelExporter;
|
||||
private final JsonExporter jsonExporter;
|
||||
private final SettingsService settingsService;
|
||||
private final TableMetaDataUtil tableMetaDataUtil;
|
||||
|
||||
public IndicSearchService(List<FirstLevelTableLoader> tableLoaders,
|
||||
List<FileAggregator> fileAggregators,
|
||||
ExcelExporter excelExporter,
|
||||
JsonExporter jsonExporter,
|
||||
SettingsService settingsService,
|
||||
TableMetaDataUtil tableMetaDataUtil) {
|
||||
this.tableLoaders = tableLoaders;
|
||||
this.fileAggregators = fileAggregators;
|
||||
this.excelExporter = excelExporter;
|
||||
this.jsonExporter = jsonExporter;
|
||||
this.settingsService = settingsService;
|
||||
this.tableMetaDataUtil = tableMetaDataUtil;
|
||||
}
|
||||
|
||||
public AddSearchJobResponseDto addSearchJob(AddSearchJobRequestDto request) {
|
||||
UUID taskId = UUID.randomUUID();
|
||||
|
||||
StopWatch sw = new StopWatch();
|
||||
|
||||
// Подготовительный этап. Получение мета данных из БД
|
||||
log.info("Prep step started. Getting metadata from database");
|
||||
sw.start();
|
||||
|
||||
Map<String, TableMetaData> tableMetaDataMap = tableMetaDataUtil.prepareTableMetaData(request.getDataType(), request.getSearchParameter());
|
||||
long rowLimit = Long.parseLong(settingsService.getSettingsValueByName("LimitDB"));
|
||||
|
||||
sw.stop();
|
||||
log.info(sw.prettyPrint());
|
||||
sw = new StopWatch();
|
||||
|
||||
// Первый этап. Получение данных из БД и заполнение файлов
|
||||
log.info("First step started. Getting data from database and filling csv files");
|
||||
sw.start();
|
||||
|
||||
Map<String, Path> tableFileMap = new ConcurrentHashMap<>();
|
||||
tableLoaders.parallelStream().forEach(tl -> tl.searchBy(
|
||||
taskId,
|
||||
request.getDataType(),
|
||||
request.getSearchParameter(),
|
||||
request.getSearchValue(),
|
||||
request.getMemberCode().substring(0, 6),
|
||||
tableFileMap,
|
||||
tableMetaDataMap
|
||||
));
|
||||
|
||||
sw.stop();
|
||||
log.info(sw.prettyPrint());
|
||||
sw = new StopWatch();
|
||||
|
||||
// Второй этап. Объединение файлов в один
|
||||
log.info("Second step started. Aggregating table files into one.");
|
||||
sw.start();
|
||||
|
||||
MutableLong rowCounter = new MutableLong();
|
||||
Path aggregatedFile = fileAggregators.stream().map(fa -> fa.aggregateFiles(
|
||||
taskId,
|
||||
request.getDataType(),
|
||||
request.getSearchParameter(),
|
||||
request.getSearchValue(),
|
||||
request.getMemberCode().substring(0, 6),
|
||||
tableFileMap,
|
||||
rowCounter))
|
||||
.filter(Objects::nonNull)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
sw.stop();
|
||||
log.info(sw.prettyPrint());
|
||||
sw = new StopWatch();
|
||||
|
||||
for (Path tableFilePath : tableFileMap.values()) {
|
||||
try {
|
||||
Files.deleteIfExists(tableFilePath);
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to delete file " + tableFilePath + " " + e);
|
||||
}
|
||||
}
|
||||
|
||||
// Третий этап. Экспорт агрегированного файла в JSON или XLSX
|
||||
log.info("Third step started. Exporting aggregated file into JSON/XLSX.");
|
||||
sw.start();
|
||||
|
||||
if (rowCounter.longValue() < rowLimit && !IS_EXPORT_AS_EXCEL) {
|
||||
jsonExporter.writeJsonFile(aggregatedFile, taskId, request.getSearchParameter(), tableMetaDataMap);
|
||||
} else {
|
||||
tableMetaDataUtil.fillTableMetaDataWithLocalization(tableMetaDataMap);
|
||||
excelExporter.writeExcelFile(aggregatedFile, taskId, rowCounter.longValue(), tableMetaDataMap);
|
||||
}
|
||||
|
||||
sw.stop();
|
||||
log.info(sw.prettyPrint());
|
||||
|
||||
try {
|
||||
if (aggregatedFile != null) {
|
||||
Files.deleteIfExists(aggregatedFile);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to delete file " + aggregatedFile + " " + e);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,15 +4,14 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.event.DataSourceChangedEvent;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.Settings;
|
||||
import ru.nbch.indicsearchservice.repository.bank.SettingsMapper;
|
||||
import ru.nbch.indicsearchservice.util.DataSourceUpdater;
|
||||
|
|
@ -33,7 +32,7 @@ public class SettingsService {
|
|||
|
||||
public String getSettingsValueByName(String name) {
|
||||
return settingsMapper.findByName(name)
|
||||
.orElseThrow(() -> new InternalException("Setting with key: " + name + " was not found in database!"))
|
||||
.orElseThrow(() -> new RuntimeException("Setting with key: " + name + " was not found in database!"))
|
||||
.getValue();
|
||||
}
|
||||
|
||||
|
|
@ -42,25 +41,12 @@ public class SettingsService {
|
|||
return Map.of();
|
||||
}
|
||||
|
||||
Map<String, Optional<String>> resultMap = new HashMap<>();
|
||||
for (String name : names) {
|
||||
if (name != null) {
|
||||
resultMap.put(name, Optional.empty());
|
||||
}
|
||||
}
|
||||
|
||||
List<Settings> foundValues = settingsMapper.findAllByNames(names);
|
||||
if (foundValues == null || foundValues.isEmpty()) {
|
||||
return resultMap;
|
||||
return Map.of();
|
||||
}
|
||||
|
||||
for (Settings setting : foundValues) {
|
||||
if (setting != null && setting.getName() != null) {
|
||||
resultMap.put(setting.getName(), Optional.ofNullable(setting.getValue()));
|
||||
}
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
return foundValues.stream().collect(Collectors.toMap(Settings::getName, s -> Optional.ofNullable(s.getValue())));
|
||||
}
|
||||
|
||||
public Optional<String> getOptionalSettingsValueByName(String name) {
|
||||
|
|
@ -76,7 +62,7 @@ public class SettingsService {
|
|||
try {
|
||||
Files.createDirectories(Paths.get(newStorageDirectory.get()));
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to create directory " + newStorageDirectory.get() + " " + e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
localSettings.setStorageDirectory(new File(newStorageDirectory.get()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,10 +4,8 @@ import com.zaxxer.hikari.HikariConfig;
|
|||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Consumer;
|
||||
|
|
@ -26,7 +24,6 @@ import org.springframework.stereotype.Component;
|
|||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.config.settings.DataSourceSettings;
|
||||
import ru.nbch.indicsearchservice.event.DataSourceChangedEvent;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.repository.MyBatisRepository;
|
||||
import ru.nbch.indicsearchservice.repository.indic.IndicMapper;
|
||||
import ru.nbch.indicsearchservice.service.SettingsService;
|
||||
|
|
@ -176,13 +173,13 @@ public class DataSourceUpdater {
|
|||
|
||||
SqlSessionFactory sessionFactory = sqlSessionFactoryBean.getObject();
|
||||
if (sessionFactory == null) {
|
||||
throw new InternalException("Failed to create SqlSessionFactory");
|
||||
throw new IllegalStateException("Failed to create SqlSessionFactory");
|
||||
}
|
||||
|
||||
return sessionFactory;
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to build SqlSessionFactory", e);
|
||||
throw new InternalException("Failed to build SqlSessionFactory " + e);
|
||||
throw new RuntimeException("Failed to build SqlSessionFactory", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -204,31 +201,18 @@ public class DataSourceUpdater {
|
|||
case INDIC -> "indic";
|
||||
};
|
||||
|
||||
Map<String, Optional<String>> fetchedSettings = settingsService.getSettingsValuesByNames(List.of(
|
||||
"datasource." + key + ".driver",
|
||||
"datasource." + key + ".url",
|
||||
"datasource." + key + ".username",
|
||||
"datasource." + key + ".password",
|
||||
"datasource." + key + ".connection-timeout",
|
||||
"datasource." + key + ".validation-timeout",
|
||||
"datasource." + key + ".idle-timeout",
|
||||
"datasource." + key + ".max-pool-size",
|
||||
"datasource." + key + ".max-lifetime",
|
||||
"datasource." + key + ".keep-alive-time"
|
||||
));
|
||||
|
||||
DataSourceSettings dataSourceSettings = new DataSourceSettings();
|
||||
dataSourceSettings.setDriver(fetchedSettings.get("datasource." + key + ".driver").orElseThrow(() -> new InternalException("Key datasource." + key + ".driver" + " was not found in SETTINGS!")));
|
||||
dataSourceSettings.setUrl(fetchedSettings.get("datasource." + key + ".url").orElseThrow(() -> new InternalException("Key datasource." + key + ".url" + " was not found in SETTINGS!")));
|
||||
dataSourceSettings.setUsername(fetchedSettings.get("datasource." + key + ".username").orElseThrow(() -> new InternalException("Key datasource." + key + ".username" + " was not found in SETTINGS!")));
|
||||
dataSourceSettings.setPassword(fetchedSettings.get("datasource." + key + ".password").orElseThrow(() -> new InternalException("Key datasource." + key + ".password" + " was not found in SETTINGS!")));
|
||||
dataSourceSettings.setDriver(settingsService.getSettingsValueByName("datasource." + key + ".driver"));
|
||||
dataSourceSettings.setUrl(settingsService.getSettingsValueByName("datasource." + key + ".url"));
|
||||
dataSourceSettings.setUsername(settingsService.getSettingsValueByName("datasource." + key + ".username"));
|
||||
dataSourceSettings.setPassword(settingsService.getSettingsValueByName("datasource." + key + ".password"));
|
||||
|
||||
dataSourceSettings.setConnectionTimeout(Long.valueOf(fetchedSettings.get("datasource." + key + ".connection-timeout").orElse("30000")));
|
||||
dataSourceSettings.setValidationTimeout(Long.valueOf(fetchedSettings.get("datasource." + key + ".validation-timeout").orElse("5000")));
|
||||
dataSourceSettings.setIdleTimeout(Long.valueOf(fetchedSettings.get("datasource." + key + ".idle-timeout").orElse("600000")));
|
||||
dataSourceSettings.setMaxPoolSize(Integer.valueOf(fetchedSettings.get("datasource." + key + ".max-pool-size").orElse("100")));
|
||||
dataSourceSettings.setMaxLifetime(Long.valueOf(fetchedSettings.get("datasource." + key + ".max-lifetime").orElse("1800000")));
|
||||
dataSourceSettings.setKeepAliveTime(Long.valueOf(fetchedSettings.get("datasource." + key + ".keep-alive-time").orElse("120000")));
|
||||
dataSourceSettings.setConnectionTimeout(Long.valueOf(settingsService.getOptionalSettingsValueByName("datasource." + key + ".connection-timeout").orElse("30000")));
|
||||
dataSourceSettings.setValidationTimeout(Long.valueOf(settingsService.getOptionalSettingsValueByName("datasource." + key + ".validation-timeout").orElse("5000")));
|
||||
dataSourceSettings.setIdleTimeout(Long.valueOf(settingsService.getOptionalSettingsValueByName("datasource." + key + ".idle-timeout").orElse("600000")));
|
||||
dataSourceSettings.setMaxPoolSize(Integer.valueOf(settingsService.getOptionalSettingsValueByName("datasource." + key + ".max-pool-size").orElse("100")));
|
||||
dataSourceSettings.setMaxLifetime(Long.valueOf(settingsService.getOptionalSettingsValueByName("datasource." + key + ".max-lifetime").orElse("1800000")));
|
||||
dataSourceSettings.setKeepAliveTime(Long.valueOf(settingsService.getOptionalSettingsValueByName("datasource." + key + ".keep-alive-time").orElse("120000")));
|
||||
|
||||
settingsConsumer.accept(dataSourceSettings);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,44 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.util;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
public class IndicSearchCommon {
|
||||
private static final Map<String, List<String>> CASTABLE_FIELDS = Map.ofEntries(
|
||||
Map.entry("RU_UID", List.of("ACCT_NUM")),
|
||||
Map.entry("RU_APPLICATION", List.of("OLD_APP_NUM")),
|
||||
Map.entry("ID", List.of("ID_NORM")),
|
||||
Map.entry("ACCOUNT", List.of("ACCT_NUM")),
|
||||
Map.entry("INFORMATION", List.of("APP_NUM"))
|
||||
);
|
||||
|
||||
public static Map<String, List<String>> getCastableFields() {
|
||||
return CASTABLE_FIELDS;
|
||||
}
|
||||
|
||||
public static boolean isCastableField(String tableName, String fieldName) {
|
||||
if (tableName == null || tableName.isEmpty() || fieldName == null || fieldName.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (CASTABLE_FIELDS.containsKey(tableName.toUpperCase())) {
|
||||
return CASTABLE_FIELDS.get(tableName).contains(fieldName.toUpperCase());
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Optional<String> getRowValue(String string, String key) {
|
||||
return getRowValue(Arrays.asList(string.split("%%%", -1)), key);
|
||||
}
|
||||
|
||||
public static Optional<String> getRowValue(List<String> stringValues, String key) {
|
||||
int keyIndex = stringValues.indexOf(key);
|
||||
if (keyIndex != -1) {
|
||||
return Optional.of(stringValues.get(keyIndex + 1));
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,129 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.util;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.apache.ibatis.cursor.Cursor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
import ru.nbch.indicsearchservice.model.LocalizationObject;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.repository.bank.LocalizationObjectMapper;
|
||||
|
||||
@Component
|
||||
public class IndicSearchUtils {
|
||||
private static final Set<String> REQUIRED_FIELDS = Set.of(
|
||||
"FID",
|
||||
"SERIAL_NUM",
|
||||
"ACC_SERIAL_NUM",
|
||||
"PARENT_SERIAL_NUM"
|
||||
);
|
||||
|
||||
private final ApplicationSettings settings;
|
||||
private final LocalizationObjectMapper localizationObjectMapper;
|
||||
|
||||
public IndicSearchUtils(ApplicationSettings settings,
|
||||
LocalizationObjectMapper localizationObjectMapper) {
|
||||
this.settings = settings;
|
||||
this.localizationObjectMapper = localizationObjectMapper;
|
||||
}
|
||||
|
||||
public Path writeRowsToFile(UUID taskId,
|
||||
String tableName,
|
||||
Cursor<LinkedHashMap<String, Object>> databaseCursor,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
return writeRowsToFile(taskId, tableName, databaseCursor, null, tableMetaDataMap);
|
||||
}
|
||||
|
||||
public Path writeRowsToFile(UUID taskId,
|
||||
String tableName,
|
||||
Cursor<LinkedHashMap<String, Object>> databaseCursor,
|
||||
Set<Integer> foundFids,
|
||||
Map<String, TableMetaData> tableMetaDataMap) {
|
||||
|
||||
Path resultFile = settings.getStorageDirectory().toPath().resolve(tableName + "_" + taskId + ".csv");
|
||||
|
||||
TableMetaData tableMetaData = tableMetaDataMap.get(tableName);
|
||||
Set<String> configuredFields = tableMetaData != null ?
|
||||
tableMetaData.getFieldMetaData().keySet() :
|
||||
new HashSet<>();
|
||||
|
||||
try (BufferedWriter writer = Files.newBufferedWriter(resultFile, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) {
|
||||
for (LinkedHashMap<String, Object> row : databaseCursor) {
|
||||
if (foundFids != null) {
|
||||
Object fidValue = row.get("FID");
|
||||
if (fidValue != null) {
|
||||
foundFids.add(Integer.parseInt(fidValue.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(tableName).append("%%%");
|
||||
|
||||
for (Map.Entry<String, Object> entry : row.entrySet()) {
|
||||
String columnName = entry.getKey();
|
||||
String columnNameUpper = columnName.toUpperCase();
|
||||
|
||||
if (configuredFields.contains(columnName) || REQUIRED_FIELDS.contains(columnNameUpper)) {
|
||||
sb.append(columnNameUpper).append("%%%");
|
||||
|
||||
Object columnValue = entry.getValue();
|
||||
if (columnValue != null) {
|
||||
sb.append(columnValue).append("%%%");
|
||||
} else {
|
||||
sb.append("%%%");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (sb.length() >= 3) {
|
||||
sb.setLength(sb.length() - 3);
|
||||
}
|
||||
|
||||
writer.write(sb.toString());
|
||||
writer.newLine();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to write file " + resultFile + " " + e);
|
||||
}
|
||||
|
||||
return resultFile;
|
||||
}
|
||||
|
||||
public Map<String, Optional<String>> getOptionalLocalizationStrings(List<String> localizationCodes) {
|
||||
if (localizationCodes == null || localizationCodes.isEmpty()) {
|
||||
return Map.of();
|
||||
}
|
||||
|
||||
Map<String, Optional<String>> resultMap = new HashMap<>();
|
||||
for (String code : localizationCodes) {
|
||||
if (code != null) {
|
||||
resultMap.put(code, Optional.empty());
|
||||
}
|
||||
}
|
||||
|
||||
List<LocalizationObject> foundValues = localizationObjectMapper.findAllByCodes(localizationCodes);
|
||||
if (foundValues == null || foundValues.isEmpty()) {
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
for (LocalizationObject localization : foundValues) {
|
||||
if (localization != null && localization.getCode() != null) {
|
||||
resultMap.put(localization.getCode(), Optional.ofNullable(localization.getText()));
|
||||
}
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.util;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.Closeable;
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
import ru.nbch.indicsearchservice.exception.InternalException;
|
||||
|
||||
public class MovableBufferedReader implements Closeable {
|
||||
private final BufferedReader reader;
|
||||
private String currentLine;
|
||||
|
||||
public MovableBufferedReader(BufferedReader reader) {
|
||||
this.reader = reader;
|
||||
try {
|
||||
this.currentLine = reader.readLine();
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read next line in file " + e);
|
||||
}
|
||||
}
|
||||
|
||||
public String nextLine() {
|
||||
try {
|
||||
this.currentLine = reader.readLine();
|
||||
} catch (IOException e) {
|
||||
throw new InternalException("Failed to read next line in file " + e);
|
||||
}
|
||||
return this.currentLine;
|
||||
}
|
||||
|
||||
public BufferedReader getReader() {
|
||||
return reader;
|
||||
}
|
||||
|
||||
public String getCurrentLine() {
|
||||
return currentLine;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
MovableBufferedReader that = (MovableBufferedReader) o;
|
||||
return Objects.equals(reader, that.reader) && Objects.equals(currentLine, that.currentLine);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(reader, currentLine);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MovableBufferedReader{" +
|
||||
"currentLine='" + currentLine + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
this.reader.close();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,233 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.util;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.JDBCType;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.sql.DataSource;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.jdbc.datasource.DataSourceUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
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.service.SettingsService;
|
||||
|
||||
@Component
|
||||
public class TableMetaDataUtil {
|
||||
private final List<FirstLevelTableLoader> tableLoaders;
|
||||
private final SettingsService settingsService;
|
||||
private final MapperHolder mapperHolder;
|
||||
private final SettingsMapper settingsMapper;
|
||||
private final LocalizationObjectMapper localizationObjectMapper;
|
||||
private final IndicSearchUtils indicSearchUtils;
|
||||
private final DataSource indicDataSource;
|
||||
|
||||
public TableMetaDataUtil(List<FirstLevelTableLoader> tableLoaders,
|
||||
SettingsService settingsService,
|
||||
MapperHolder mapperHolder,
|
||||
SettingsMapper settingsMapper,
|
||||
LocalizationObjectMapper localizationObjectMapper,
|
||||
IndicSearchUtils indicSearchUtils,
|
||||
@Qualifier("indicDataSource") DataSource indicDataSource) {
|
||||
this.tableLoaders = tableLoaders;
|
||||
this.settingsService = settingsService;
|
||||
this.mapperHolder = mapperHolder;
|
||||
this.settingsMapper = settingsMapper;
|
||||
this.localizationObjectMapper = localizationObjectMapper;
|
||||
this.indicSearchUtils = indicSearchUtils;
|
||||
this.indicDataSource = indicDataSource;
|
||||
}
|
||||
|
||||
public 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.get(key);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
// Получаем размеры некоторых полей
|
||||
for (Map.Entry<String, List<String>> entry : IndicSearchCommon.getCastableFields().entrySet()) {
|
||||
String tableName = entry.getKey();
|
||||
List<String> tableFields = entry.getValue();
|
||||
|
||||
if (!tableMetaDataMap.containsKey(tableName)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
try (Connection connection = DataSourceUtils.getConnection(indicDataSource);
|
||||
ResultSet resultSet = connection.getMetaData().getColumns(null, null, tableName, null)) {
|
||||
while (resultSet.next()) {
|
||||
String columnName = resultSet.getString("COLUMN_NAME");
|
||||
if (tableFields.contains(columnName) && tableMetaDataMap.get(tableName).getFieldMetaData().containsKey(columnName)) {
|
||||
TableMetaData.FieldMetaData foundFieldMetaData = tableMetaDataMap.get(tableName).getFieldMetaData().get(columnName);
|
||||
foundFieldMetaData.setJdbcType(JDBCType.valueOf(resultSet.getInt("DATA_TYPE")));
|
||||
foundFieldMetaData.setColumnSize(resultSet.getInt("COLUMN_SIZE"));
|
||||
}
|
||||
}
|
||||
|
||||
DataSourceUtils.releaseConnection(connection, indicDataSource);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
return tableMetaDataMap;
|
||||
}
|
||||
|
||||
public 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.get(tableKey);
|
||||
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.get(primaryKey);
|
||||
|
||||
if (primaryLoc.isPresent() && StringUtils.isNotBlank(primaryLoc.get())) {
|
||||
metaData.addLocalization(field, primaryLoc.get());
|
||||
} else {
|
||||
Optional<String> fallbackLoc = localizationValues.get(fallbackKey);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -12,7 +12,4 @@ app.data-source.validation-timeout=5000
|
|||
app.data-source.idle-timeout=600000
|
||||
app.data-source.max-pool-size=10
|
||||
app.data-source.max-lifetime=1800000
|
||||
app.data-source.keep-alive-time=120000
|
||||
|
||||
app.storage-directory=C:\\Users\\inikolaev\\Desktop\\1
|
||||
#app.storage-directory=C:\\Users\\ivan\\Desktop\\storage
|
||||
app.data-source.keep-alive-time=120000
|
||||
|
|
@ -28,13 +28,35 @@
|
|||
FROM LOCALIZATION_OBJECT
|
||||
</sql>
|
||||
|
||||
<select id="findByCode" resultMap="localizationObjectResultMap">
|
||||
<include refid="baseSelect"/>
|
||||
WHERE CODE = #{code}
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<select id="findAllByCodes" resultMap="localizationObjectResultMap">
|
||||
<include refid="baseSelect"/>
|
||||
WHERE CODE IN
|
||||
<foreach item='code' collection='codes' open='(' separator=',' close=')'>#{code}</foreach>
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO LOCALIZATION_OBJECT (VERSION,
|
||||
CODE,
|
||||
DATE_CREATED,
|
||||
LAST_UPDATED,
|
||||
LOC,
|
||||
RELEVANCE,
|
||||
TEXT)
|
||||
VALUES (0,
|
||||
#{code},
|
||||
CURRENT_TIMESTAMP,
|
||||
CURRENT_TIMESTAMP,
|
||||
#{loc},
|
||||
#{relevance},
|
||||
#{text})
|
||||
</insert>
|
||||
|
||||
<insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO LOCALIZATION_OBJECT (VERSION,
|
||||
CODE,
|
||||
|
|
|
|||
|
|
@ -27,14 +27,10 @@
|
|||
<include refid="baseSelect"/>
|
||||
WHERE NAME IN
|
||||
<foreach item='name' collection='names' open='(' separator=',' close=')'>#{name}</foreach>
|
||||
WITH UR
|
||||
</select>
|
||||
|
||||
<insert id="insertBatch">
|
||||
insert into SETTINGS (VERSION, NAME, "VALUE")
|
||||
values
|
||||
<foreach collection="list" item="s" separator=",">
|
||||
(0, #{s.name}, #{s.value})
|
||||
</foreach>
|
||||
</insert>
|
||||
<select id="findAll" resultMap="settingsResultMap">
|
||||
<include refid="baseSelect"/>
|
||||
WITH UR
|
||||
</select>
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,85 +0,0 @@
|
|||
package ru.nbch.indicsearchservice.exporter;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import ru.nbch.indicsearchservice.config.settings.ApplicationSettings;
|
||||
import ru.nbch.indicsearchservice.model.TableMetaData;
|
||||
import ru.nbch.indicsearchservice.model.enums.SearchParameter;
|
||||
|
||||
@SpringBootTest
|
||||
class JsonExporterTest {
|
||||
@Autowired
|
||||
ApplicationSettings settings;
|
||||
@Autowired
|
||||
JsonExporter jsonExporter;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
settings.setStorageDirectory(Path.of("src/test/resources/storage").toFile());
|
||||
}
|
||||
|
||||
@Test
|
||||
void writeJsonFile_shouldCreateJsonFilePASSPORT() throws IOException {
|
||||
Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("test-json-aggregated.csv");
|
||||
UUID uuid = UUID.fromString("c3805074-e840-4d4e-bfa3-eee1fefd4907");
|
||||
|
||||
TableMetaData ruUidTableTableMetaData = new TableMetaData("RU_UID");
|
||||
ruUidTableTableMetaData.addField("FID");
|
||||
ruUidTableTableMetaData.addField("SERIAL_NUM");
|
||||
TableMetaData ruApplicationTableTableMetaData = new TableMetaData("RU_APPLICATION");
|
||||
ruApplicationTableTableMetaData.addField("FID");
|
||||
ruApplicationTableTableMetaData.addField("SERIAL_NUM");
|
||||
|
||||
Map<String, TableMetaData> tableMetaDataMap = new HashMap<>();
|
||||
tableMetaDataMap.put("RU_UID", ruUidTableTableMetaData);
|
||||
tableMetaDataMap.put("RU_APPLICATION", ruApplicationTableTableMetaData);
|
||||
|
||||
jsonExporter.writeJsonFile(aggregatedFile, uuid, SearchParameter.PASSPORT, tableMetaDataMap);
|
||||
|
||||
Path resultFile = settings.getStorageDirectory().toPath().resolve("c3805074-e840-4d4e-bfa3-eee1fefd4907.json");
|
||||
List<String> resultFileStrings = Files.readAllLines(resultFile);
|
||||
|
||||
Files.deleteIfExists(resultFile);
|
||||
|
||||
assertThat(resultFileStrings.getFirst())
|
||||
.isEqualTo("{\"datasheets\":[[{\"table_name\":\"RU_UID\",\"field_data\":[{\"key\":\"FID\",\"value\":\"1\"},{\"key\":\"SERIAL_NUM\",\"value\":\"11\"}],\"related_data\":[]},{\"table_name\":\"RU_UID\",\"field_data\":[{\"key\":\"FID\",\"value\":\"1\"},{\"key\":\"SERIAL_NUM\",\"value\":\"21\"}],\"related_data\":[{\"table_name\":\"RU_TRADE\",\"field_data\":[],\"related_data\":[]}]}],[{\"table_name\":\"RU_APPLICATION\",\"field_data\":[{\"key\":\"FID\",\"value\":\"2\"},{\"key\":\"SERIAL_NUM\",\"value\":\"12\"}],\"related_data\":[]}],[{\"table_name\":\"RU_APPLICATION\",\"field_data\":[{\"key\":\"FID\",\"value\":\"3\"},{\"key\":\"SERIAL_NUM\",\"value\":\"22\"}],\"related_data\":[]}]]}");
|
||||
}
|
||||
|
||||
@Test
|
||||
void writeJsonFile_shouldCreateJsonFileUUID() throws IOException {
|
||||
Path aggregatedFile = settings.getStorageDirectory().toPath().resolve("test-json-aggregated.csv");
|
||||
UUID uuid = UUID.fromString("c3805074-e840-4d4e-bfa3-eee1fefd4907");
|
||||
|
||||
TableMetaData ruUidTableTableMetaData = new TableMetaData("RU_UID");
|
||||
ruUidTableTableMetaData.addField("FID");
|
||||
ruUidTableTableMetaData.addField("SERIAL_NUM");
|
||||
TableMetaData ruApplicationTableTableMetaData = new TableMetaData("RU_APPLICATION");
|
||||
ruApplicationTableTableMetaData.addField("FID");
|
||||
ruApplicationTableTableMetaData.addField("SERIAL_NUM");
|
||||
|
||||
Map<String, TableMetaData> tableMetaDataMap = new HashMap<>();
|
||||
tableMetaDataMap.put("RU_UID", ruUidTableTableMetaData);
|
||||
tableMetaDataMap.put("RU_APPLICATION", ruApplicationTableTableMetaData);
|
||||
|
||||
jsonExporter.writeJsonFile(aggregatedFile, uuid, SearchParameter.UUID, tableMetaDataMap);
|
||||
|
||||
Path resultFile = settings.getStorageDirectory().toPath().resolve("c3805074-e840-4d4e-bfa3-eee1fefd4907.json");
|
||||
List<String> resultFileStrings = Files.readAllLines(resultFile);
|
||||
|
||||
Files.deleteIfExists(resultFile);
|
||||
|
||||
assertThat(resultFileStrings.getFirst())
|
||||
.isEqualTo("{\"datasheets\":[[{\"table_name\":\"RU_UID\",\"field_data\":[{\"key\":\"FID\",\"value\":\"1\"},{\"key\":\"SERIAL_NUM\",\"value\":\"11\"}],\"related_data\":[]}],[{\"table_name\":\"RU_UID\",\"field_data\":[{\"key\":\"FID\",\"value\":\"1\"},{\"key\":\"SERIAL_NUM\",\"value\":\"21\"}],\"related_data\":[{\"table_name\":\"RU_TRADE\",\"field_data\":[],\"related_data\":[]}]}],[{\"table_name\":\"RU_APPLICATION\",\"field_data\":[{\"key\":\"FID\",\"value\":\"2\"},{\"key\":\"SERIAL_NUM\",\"value\":\"12\"}],\"related_data\":[]}],[{\"table_name\":\"RU_APPLICATION\",\"field_data\":[{\"key\":\"FID\",\"value\":\"3\"},{\"key\":\"SERIAL_NUM\",\"value\":\"22\"}],\"related_data\":[]}]]}");
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
spring.application.name=indic-search-service
|
||||
|
||||
logging.level.org.springframework.boot.context.config=DEBUG
|
||||
|
||||
# Database properties
|
||||
app.data-source.driver=com.ibm.db2.jcc.DB2Driver
|
||||
app.data-source.username=ros9lk
|
||||
app.data-source.password=ros9lk
|
||||
app.data-source.url=jdbc:db2://10.230.227.21:2667/DEVSUPPL:currentSchema=ROS9LK;
|
||||
app.data-source.connection-timeout=40000
|
||||
app.data-source.validation-timeout=5000
|
||||
app.data-source.idle-timeout=600000
|
||||
app.data-source.max-pool-size=10
|
||||
app.data-source.max-lifetime=1800000
|
||||
app.data-source.keep-alive-time=120000
|
||||
|
||||
app.storage-directory=C:\\Users\\inikolaev\\Desktop\\1
|
||||
#app.storage-directory=C:\\Users\\ivan\\Desktop\\storage
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
RU_UID%%%FID%%%1%%%SERIAL_NUM%%%11%%%
|
||||
RU_UID%%%FID%%%1%%%SERIAL_NUM%%%21%%%
|
||||
RU_TRADE%%%FID%%%1%%%SERIAL_NUM%%%31%%%ACC_SERIAL_NUM%%%21%%%
|
||||
RU_APPLICATION%%%FID%%%2%%%SERIAL_NUM%%%12%%%
|
||||
RU_APPLICATION%%%FID%%%3%%%SERIAL_NUM%%%22%%%
|
||||
EOF
|
||||
|
Loading…
Add table
Reference in a new issue