table filters added

This commit is contained in:
Ivan Nikolaev-Axenov 2026-05-19 12:22:06 +03:00
parent b65c17bc28
commit 89eb94afc2
43 changed files with 247 additions and 1777 deletions

View file

@ -1,5 +1,5 @@
package ru.nbch.indicsearchservice.filter;
public interface TableFilter {
String getTableName();
}

View file

@ -0,0 +1,43 @@
package ru.nbch.indicsearchservice.filter.firstlevel;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.model.TableData;
@Component
public class DefaultFirstLevelTableFilter implements FirstLevelTableFilter {
private static final Set<String> SUPPORTED_TABLE_NAMES = Set.of(
"RU_UID",
"RU_APPLICATION",
"RU_OBLIGPARTTAKE",
"RU_BANKRUPTCY",
"RU_SETTLED",
"RU_OTHERLEGAL",
"RU_CAPABILITY",
"RU_DEBT_BURDEN_INFO",
"ACCOUNT",
"INFORMATION",
"BANKRUPTCY",
"CONSUMER_BANKRUPTCY",
"LEGAL"
);
@Override
public List<TableData> applyFilter(Map<String, List<TableData>> tableDataMapByFid) {
List<TableData> result = new ArrayList<>();
for (Map.Entry<String, List<TableData>> entry : tableDataMapByFid.entrySet()) {
String tableName = entry.getKey();
List<TableData> tableRows = entry.getValue();
if (SUPPORTED_TABLE_NAMES.contains(tableName)) {
result.addAll(tableRows);
}
}
return result;
}
}

View file

@ -1,6 +1,10 @@
package ru.nbch.indicsearchservice.filter.firstlevel;
import java.util.List;
import java.util.Map;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
public interface FirstLevelTableFilter extends TableFilter {
List<TableData> applyFilter(Map<String, List<TableData>> tableDataMapByFid);
}

View file

@ -1,28 +0,0 @@
package ru.nbch.indicsearchservice.filter.firstlevel;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import ru.nbch.indicsearchservice.model.TableData;
public class SameLevelTableFilter implements FirstLevelTableFilter {
private static final Set<String> levelAvailableFor = Set.of("RU_UID");
@Override
public String getTableName() {
return "";
}
public Map<String, List<TableData>> filterTableData(Map<String, List<TableData>> allTableData) {
Map<String, List<TableData>> filteredTableData = new HashMap<>();
for (Map.Entry<String, List<TableData>> entry : allTableData.entrySet()) {
if (levelAvailableFor.contains(entry.getKey())) {
filteredTableData.put(entry.getKey(), entry.getValue());
}
}
return filteredTableData;
}
}

View file

@ -1,44 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.List;
import java.util.Optional;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.model.TableData;
@Component
public class RuAccountAmtTableFilter implements SecondLevelTableFilter {
@Override
public String getTableName() {
return "RU_ACCOUNT_AMT";
}
public void filterTableData(List<TableData> parentTableDataList, List<TableData> childTableDataList) {
for (TableData parentTableData : parentTableDataList) {
if (!parentTableData.getTableName().equals("RU_UID")) {
continue;
}
Optional<TableData.FieldData> serialNumFieldData = parentTableData.getFieldData().stream()
.filter(d -> d.columnName().equals("SERIAL_NUM"))
.findFirst();
if (serialNumFieldData.isEmpty()) {
continue;
}
for (TableData childTableData : childTableDataList) {
Optional<TableData.FieldData> accSerialNumFieldData = childTableData.getFieldData().stream()
.filter(d -> d.columnName().equals("ACC_SERIAL_NUM"))
.findFirst();
if (accSerialNumFieldData.isEmpty()) {
continue;
}
if (serialNumFieldData.get().equals(accSerialNumFieldData.get())) {
parentTableData.getRelatedTableData().add(childTableData);
}
}
}
}
public void filterTableDataV2(List<TableData> parentTableDataList, List<TableData> childTableDataList) {}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuAcquirerIndividTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuAcquirerIndividTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_ACQUIRERINDIVID";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAcquirerIndivid(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuAcquirerLegalTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuAcquirerLegalTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_ACQUIRERLEGAL";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAcquirerLegal(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuAllArrearsTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuAllArrearsTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_ALL_ARREARS";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAllArrears(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuAmendmentTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuAmendmentTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_AMENDMENT";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAmendment(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuAmountInfoTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuAmountInfoTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_AMOUNT_INFO";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuAmountInfo(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuArrearTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuArrearTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_ARREAR";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuArrear(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuCoborrowerTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuCoborrowerTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_COBORROWER";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCoborrower(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuCollatInsuredTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuCollatInsuredTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_COLLATINSURED";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCollatInsured(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuCollatRepayTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuCollatRepayTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_COLLATREPAY";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCollatRepay(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuContractTermsChangesTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuContractTermsChangesTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_CONTRACT_TERMS_CHANGES";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuContractTermsChanges(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuDueArrearTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuDueArrearTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_DUEARREAR";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuDueArrear(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuFundDateTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuFundDateTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_FUNDDATE";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuFundDate(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuGuaranteeRepayTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuGuaranteeRepayTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_GUARANTEEREPAY";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuGuaranteeRepay(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuGuarantorTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuGuarantorTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_GUARANTOR";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuGuarantor(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuIndepGuarantorTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuIndepGuarantorTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_INDEPGUARANTOR";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuIndepGuarantor(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuLegalRecordTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuLegalRecordTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_LEGALRECORD";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuLegalRecord(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuMonthAverPaymtTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuMonthAverPaymtTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_MONTHAVERPAYMT";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuMonthAverPaymt(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuObligAccountTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuObligAccountTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_OBLIGACCOUNT";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligAccount(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuObligTerminationTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuObligTerminationTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_OBLIGTERMINATION";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligTermination(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuObligsRcBankruptTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuObligsRcBankruptTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_OBLIGSRCBANKRUPT";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligsRcBankrupt(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuObligsRcLiquidTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuObligsRcLiquidTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_OBLIGSRCLIQUID";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuObligsRcLiquid(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuOverallvalTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuOverallvalTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_OVERALLVAL";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuOverallval(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuPastDueArrearTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuPastDueArrearTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_PASTDUEARREAR";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuPastDueArrear(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuPaymtConditionTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuPaymtConditionTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_PAYMT_CONDITION";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuPaymtCondition(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuPaymtTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuPaymtTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_PAYMT";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuPaymt(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuServiceCoTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuServiceCoTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_SERVICECO";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuServiceCo(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuSourceNonMonetObligTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuSourceNonMonetObligTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_SOURCENONMONETOBLIG";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuSourceNonMonetOblig(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuSubjectNonMonetObligTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuSubjectNonMonetObligTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_SUBJECTNONMONETOBLIG";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuSubjectNonMonetOblig(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuSubmitHoldTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuSubmitHoldTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_SUBMITHOLD";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuSubmitHold(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuTradeTableFilter implements SecondLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuTradeTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_TRADE";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuTrade(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -0,0 +1,77 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.model.TableData;
@Component
public class RuUidSecondLevelTableFilter implements SecondLevelTableFilter {
private static final Set<String> SUPPORTED_TABLE_NAMES = Set.of(
"RU_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"
);
@Override
public void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid) {
if (firstLevelTableDataList == null || firstLevelTableDataList.isEmpty() || tableDataMapByFid == null) {
return;
}
Map<Object, List<TableData>> relatedTablesByAccSerialNum = new HashMap<>();
for (String supportedTableName : SUPPORTED_TABLE_NAMES) {
List<TableData> childTables = tableDataMapByFid.get(supportedTableName);
if (childTables != null) {
for (TableData childTable : childTables) {
Object accSerialNum = getFieldValue(childTable, "ACC_SERIAL_NUM");
if (accSerialNum != null) {
relatedTablesByAccSerialNum
.computeIfAbsent(accSerialNum, k -> new ArrayList<>())
.add(childTable);
}
}
}
}
for (TableData parentTable : firstLevelTableDataList) {
Object serialNum = getFieldValue(parentTable, "SERIAL_NUM");
if (serialNum != null) {
List<TableData> matchedParentTables = relatedTablesByAccSerialNum.get(serialNum);
if (matchedParentTables != null) {
parentTable.getRelatedTableData().addAll(matchedParentTables);
}
}
}
}
private Object getFieldValue(TableData tableData, String targetColumnName) {
if (tableData.getFieldData() == null) {
return null;
}
for (TableData.FieldData field : tableData.getFieldData()) {
if (targetColumnName.equals(field.columnName())) {
return field.columnValue();
}
}
return null;
}
}

View file

@ -1,6 +1,10 @@
package ru.nbch.indicsearchservice.filter.secondlevel;
import java.util.List;
import java.util.Map;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
public interface SecondLevelTableFilter extends TableFilter {
void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid);
}

View file

@ -0,0 +1,88 @@
package ru.nbch.indicsearchservice.filter.thirdlevel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.model.TableData;
@Component
public class BlocksThirdLevelTableFilter implements ThirdLevelTableFilter {
private static final Set<String> SUPPORTED_TABLE_NAMES = Set.of(
"RU_COLLATERAL_BLOCKS",
"RU_BANKRUPTCY_BLOCKS"
);
@Override
public void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid) {
if (firstLevelTableDataList == null || firstLevelTableDataList.isEmpty() || tableDataMapByFid == null) {
return;
}
Map<String, Map<Object, List<TableData>>> childTablesByParentAndSerial = new HashMap<>();
for (String tableName : SUPPORTED_TABLE_NAMES) {
String parentTableName = tableName.replace("_BLOCKS", "");
String childTableName = tableName;
List<TableData> childTables = tableDataMapByFid.get(childTableName);
if (childTables != null) {
Map<Object, List<TableData>> groupedChildTables = new HashMap<>();
for (TableData childTable : childTables) {
Object parentSerialNum = getFieldValue(childTable, "PARENT_SERIAL_NUM");
if (parentSerialNum != null) {
groupedChildTables
.computeIfAbsent(parentSerialNum, k -> new ArrayList<>())
.add(childTable);
}
}
childTablesByParentAndSerial.put(parentTableName, groupedChildTables);
}
}
for (TableData firstLevelTable : firstLevelTableDataList) {
if (firstLevelTable.getRelatedTableData() == null) {
continue;
}
for (TableData secondLevelTable : firstLevelTable.getRelatedTableData()) {
String tableName = secondLevelTable.getTableName();
String parentTableName = tableName;
String childTableName = tableName + "_BLOCKS";
if (SUPPORTED_TABLE_NAMES.contains(childTableName)) {
Map<Object, List<TableData>> availableChildTables = childTablesByParentAndSerial.get(parentTableName);
if (availableChildTables != null) {
Object serialNum = getFieldValue(secondLevelTable, "SERIAL_NUM");
if (serialNum != null) {
List<TableData> matchingChildTables = availableChildTables.get(serialNum);
if (matchingChildTables != null) {
secondLevelTable.getRelatedTableData().addAll(matchingChildTables);
}
}
}
}
}
}
}
private Object getFieldValue(TableData tableData, String targetColumnName) {
if (tableData.getFieldData() == null) {
return null;
}
for (TableData.FieldData field : tableData.getFieldData()) {
if (targetColumnName.equals(field.columnName())) {
return field.columnValue();
}
}
return null;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.thirdlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuBankruptcyBlocksTableFilter implements ThirdLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuBankruptcyBlocksTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_BANKRUPTCY_BLOCKS";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuBankruptcyBlocks(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,53 +0,0 @@
package ru.nbch.indicsearchservice.filter.thirdlevel;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import org.springframework.stereotype.Component;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
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 RuCollateralBlocksTableFilter implements ThirdLevelTableFilter {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuCollateralBlocksTableFilter(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public List<DataType> getSuitableDataTypes() {
return List.of(DataType.GUTDF, DataType.RUTDF);
}
@Override
public List<SearchParameter> getSuitableSearchParameters() {
return List.of(SearchParameter.FID);
}
@Override
public String getTableName() {
return "RU_COLLATERAL_BLOCKS";
}
@Override
public List<TableData> searchByFid(Set<Integer> fids) {
List<LinkedHashMap<String, Object>> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuCollateralBlocks(fids);
List<TableData> resultTableData = new ArrayList<>();
for (LinkedHashMap<String, Object> row : foundTableRows) {
TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row);
resultTableData.add(parsedTableData);
}
return resultTableData;
}
}

View file

@ -1,6 +1,10 @@
package ru.nbch.indicsearchservice.filter.thirdlevel;
import java.util.List;
import java.util.Map;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.model.TableData;
public interface ThirdLevelTableFilter extends TableFilter {
void applyFilter(List<TableData> firstLevelTableDataList, Map<String, List<TableData>> tableDataMapByFid);
}

View file

@ -2,7 +2,6 @@ package ru.nbch.indicsearchservice.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -11,7 +10,9 @@ import org.springframework.stereotype.Service;
import ru.nbch.indicsearchservice.dto.request.AddSearchJobRequestDto;
import ru.nbch.indicsearchservice.dto.response.AddSearchJobResponseDto;
import ru.nbch.indicsearchservice.dto.response.JobStatusResponseDto;
import ru.nbch.indicsearchservice.filter.TableFilter;
import ru.nbch.indicsearchservice.filter.firstlevel.DefaultFirstLevelTableFilter;
import ru.nbch.indicsearchservice.filter.secondlevel.SecondLevelTableFilter;
import ru.nbch.indicsearchservice.filter.thirdlevel.ThirdLevelTableFilter;
import ru.nbch.indicsearchservice.loader.TableLoader;
import ru.nbch.indicsearchservice.model.TableData;
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
@ -19,14 +20,20 @@ import ru.nbch.indicsearchservice.util.IndicSearchUtils;
@Service
public class IndicSearchService {
private final List<TableLoader> tableLoaders;
private final List<TableFilter> tableFilters;
private final DefaultFirstLevelTableFilter firstLevelTableFilter;
private final List<SecondLevelTableFilter> secondLevelTableFilters;
private final List<ThirdLevelTableFilter> thirdLevelTableFilters;
private final IndicSearchUtils indicSearchUtils;
public IndicSearchService(List<TableLoader> tableLoaders,
List<TableFilter> tableFilters,
DefaultFirstLevelTableFilter firstLevelTableFilter,
List<SecondLevelTableFilter> secondLevelTableFilters,
List<ThirdLevelTableFilter> thirdLevelTableFilters,
IndicSearchUtils indicSearchUtils) {
this.tableLoaders = tableLoaders;
this.tableFilters = tableFilters;
this.firstLevelTableFilter = firstLevelTableFilter;
this.secondLevelTableFilters = secondLevelTableFilters;
this.thirdLevelTableFilters = thirdLevelTableFilters;
this.indicSearchUtils = indicSearchUtils;
}
@ -49,9 +56,9 @@ public class IndicSearchService {
tableDataMapByFid.put(tableLoader.getTableName(), tableLoader.searchByFid(foundFids));
}
Map<String, List<TableData>> firstLevelTables = new HashMap<>();
Map<String, List<TableData>> secondLevelTables = new HashMap<>();
Map<String, List<TableData>> thirdLevelTables = new HashMap<>();
List<TableData> result = firstLevelTableFilter.applyFilter(tableDataMapByFid);
secondLevelTableFilters.forEach(f -> f.applyFilter(result, tableDataMapByFid));
thirdLevelTableFilters.forEach(f -> f.applyFilter(result, tableDataMapByFid));
return null;
}

View file

@ -4,6 +4,7 @@ import java.sql.Date;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@ -71,4 +72,14 @@ public class IndicSearchUtils {
default -> value;
};
}
public List<TableData> getFirstLevelTables(Map<String, List<TableData>> tableDataMapByFid) {
List<TableData> result = new ArrayList<>();
for (Map.Entry<String, List<TableData>> entry : tableDataMapByFid.entrySet()) {
if (entry.getKey().equals("RU_UID")) {}
}
return result;
}
}